基于STM32的脱机程序下载器设计与制作开题报告
2020-02-18 19:26:51
1. 研究目的与意义(文献综述)
早期的单片机开发时使用仿真器开发应用项目,这么做是因为用户需要将开发好的应用程序交给单片机工厂制作掩模。程序一旦写进就不可修改,于是使用仿真器解决这个问题,用软件来模拟目标系统中mcu(microcontrollerunit)的运行情况。如此做的缺点是无法实现100%的模拟硬件,出现问题时无法确定是仿真器的问题还是目标板的问题,加大了开发的难度和时间消耗。
随着flash技术的日渐成熟,现在许多mcu(microcontroller unit)内部集成了flash存储器,单片机允许内部运行的程序修改flash存储器的内容,这样就使单片机开发不再需要仿真器。flash存储器可反复擦除高达10万次以上,因此开发过程中不必担心寿命问题。同时,直接在目标版上运行应用程序,是在真实的硬件环境中进行的,相对于以前的仿真器开发更加可靠省力。
现在的flash是可以在线系统编程(isp-in system programming)的,是指电路板上的空白器件可以依靠某种外部工具写入最终的用户代码,而不需要从电路板上取下器件。外部工具多种多样,不同的处理器供应商会提供不同的方案。尽管接口不同,但原理都是一样的,即依靠外部条件触发,处理器不执行内部常规用户应用程序代码的进程,而是执行保存在flash内某个固定位置处的控制擦和写程序处理器的代码,然后将编译好的二进制代码文件装载到处理器的程序存储器。isp技术的优势是不需要仿真器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即为成品,免去了调试时由于频繁地插入取出芯片和电路板带来的不便,这一技术是未来发展的大方向。
2. 研究的基本内容与方案
本文主要研究的是在系统编程(isp)的基础上设计flash编程方法,原来的isp编程只有jtag接口编程方法,现在arm cortex-m3内核支持swd接口编程方法。本文深入研究未完全开放资源的swd协议,从swd的基本结构入手,首先阐述swd接口的逻辑电路结构及工作原理,重点分析swd技术中访问端口、访问端口控制器、swd指令寄存器和数据寄存器。接着,本文会以意法半导体公司生产的嵌入式芯片stm32f407为主芯片设计一款基于swd协议的脱机程序下载器,从硬件和软件两个方面阐述,包括各子模块电路结构和寄存器功能描述等。最后,在电路设计的基础上搭建验证平台,对脱机程序下载器进行验证,说明设计的合理性与可行性。
现在市场上使用的支持swd模式的程序调试下载器有segger公司的jlink、keil公司的ulink和st公司的stlink,但是由于国外公司并没有完全开放swd协议的相关资料说明,因此在国内开发swd模式的程序下载器具有一定难度。而多数单片机具有实时性和功耗低的要求,管脚资源非常紧张,使用swd协议的程序下载器既可以节省开支也可以提高性能。本文正是在研究已有swd协议资料的基础上,通过大量实验摸索出swd协议的使用方法,设计制作了一款脱机程序下载器,系统总体框图如图1。
3. 研究计划与安排
第1周:确定论文主题方向,进行论文题目的筛选;
第2周:以论文题目为核心,对相关资料进行收集和学习;
第3周:对已搜集的资料加以整理,论证分析论文的可行性、实际性,将论文题目和大致范围确定下来,完成开题报告;
4. 参考文献(12篇以上)
[1]任玉帅.arm和t-kernel系统的远程调试工具设计[j].单片机与嵌入式系统应用,2018,18(5):44-48.
[2]曾洁,贾世杰,陈少华.基于串口通信方式实现对工控微处理器的代码下载与调试[j].化工自动化及仪表,2009,36(1):86-88. doi:10.3969/j.issn.1000-3932.2009.01.023.
[3]游海量,葛海通,严晓浪.一种基于jtag协议的嵌入式调试接口设计方法[j].江南大学学报(自然科学版),2007,6(5):523-527.doi:10.3969/j.issn.1671-7147.2007.05.005.