SMT32的软件程序在线升级的设计与实现毕业论文
2021-10-25 21:29:00
摘 要
随着信息时代、互联网通信技术的高速发展,人们越来越注重于实时通信的体验。这其中就包括日常中的通话以及视频聊天等等,而实现这些通讯的功能必然都要依靠所使用设备中的软件程序。如今嵌入式设备广泛应用于工业开发、医疗卫生、生物研究以及日常生活的多个领域,人们对于设备功能的要求在日益变化,面对人们多样化的需求有时需要对设备的软件程序进行更新完善。传统的对于嵌入式设备内固件更新升级的方式多为返厂后让专业人员用仿真器进行软件程序的重新烧写,这种方式可能具有交通不便、花销昂贵等诸多不利因素。为了解决这个问题,就需要有一种能够让用户通过网络或者通信接口等传输方式接收固件文件并自行进行更新升级,即在线升级。
本设计为基于STM32的软件程序在线升级的设计与实现,意在通过在STM32程序应用中编程使其能完成固件的在线更新升级,即IAP(In Application Programming)的更新操作。论文设计了通过加入引导加载程序Bootloader来实现IAP升级的方法和流程,分析了STM32单片机的程序在一般情况下以及加入了IAP功能之后的基本运行流程和对比,之后设计了通过划分STM32单片机内的FLASH区域然后用引导加载程序来完成对于升级操作的选择,之后通过单片机自带串口发送用户app程序的bin文件然后根据Bootloader中的代码来实现软件程序的在线升级。程序设计采用C语言来编写,利用了Keil软件平台运行程序并烧写至STM32开发板完成成果检验。所得结果对于嵌入式设备中软件的在线更新与升级具有一定的指导意义。
关键词:STM32;IAP;Bootloader;在线升级
Abstract
With the rapid development of information age and Internet communication technology, people pay more and more attention to the experience of real-time communication. These include everyday phone calls, video chats and the like, all of which depend on software programs on the device being used. Nowadays, embedded devices are widely used in industrial development, medical care, biological research and many fields of daily life. People's requirements on the functions of devices are changing day by day. In the face of people's diversified demands, software programs of devices need to be updated and improved sometimes. The traditional way to update and upgrade firmware in embedded devices is to let professionals re-burn software programs with emulators after returning to the factory, which may have many disadvantages such as inconvenient transportation and expensive expenses. To solve this problem, there is a need for an online update that allows users to receive firmware files over a network or communication interface and update them themselves.
This design is based on STM32 software program online upgrade design and implementation, the intention is through STM32 program Application Programming to enable it to complete the firmware update online upgrade, namely IAP (In Application Programming) update operation. Paper designed by joining the boot loader Bootloader to realize the IAP upgrade method and process, analyses the STM32 MCU program in the general case, and joined the IAP function after the basic operation process and contrast, after designed by division within the STM32 MCU FLASH area and then use the boot loader to complete the upgrade, the choice of operation by single chip microcomputer after the onboard serial port to send the user app bin file and then according to the Bootloader code to implement online upgrade of software programs. The program design is written in C language, and the Keil software platform is used to run the program and burn it to the STM32 development board to complete the result test. The results have a certain guiding significance for online updating and upgrading of software in embedded devices.
Key Words:STM32;IAP;Bootloader;Online upgrade
目录
摘 要 I
Abstract II
第1章 绪论 1
1.1 课题研究背景及意义 1
1.2 国内外研究现状 2
1.3 课题研究内容及文章结构 3
第2章 相关系统设计原理及研究 5
2.1 Bootloader的分析及研究 5
2.2 IAP的分析及系统设计研究 6
2.2.1 IAP基本功能分析研究 6
2.2.2 IAP方案及流程设计 6
2.3 STM32系统运行流程分析及研究 9
2.4 本章小结 12
第3章 程序在线升级方案流程与设计 13
3.1 IAP程序在STM32中的具体设计 13
3.2 程序在仿真中的实现方案 14
3.2.1 软件平台中工程设计 14
3.2.2 IAP在程序中的实现 18
3.2.3 STM32硬件设计 24
3.3 本章小结 25
第4章 程序测试与结果分析 26
4.1 程序运行与分析 26
4.2 本章小结 29
第5章 总结与展望 30
参考文献 31
致谢 33
绪论
1.1 课题研究背景及意义
随着全球信息化的进程的迅速推进,嵌入式系统由于其软硬件的可裁剪性、小型的体积性、技术的集成性等优点被广泛应用于电子家电、工业化控制和信息终端等领域[1]。人们的日常生活中充斥着各种各样具有不同功能和外形的嵌入式设备或包含嵌入式系统零件的设备。大到航空航天所用的宇宙飞船、航空母舰以及人们外出交通所使用的公交、地铁、轮船等。小到我们所使用的手机、电子手表以及照相机微波炉等。可以说嵌入式系统无论是在与电子技术有关的计算机、通信、电子以及目前正发展迅速的VR技术等行业,还是在与自然物理学有关的生物学、材料分子学、等学科,亦或是在医学方面都无孔不入,都扮演了相当重要的角色。嵌入式设备和人们的生活息息相关,换言之人们的生活水平也正因嵌入式行业的快速发展进步而有了不断的进步和改善。
嵌入式设备的定义一般为:用于探测、操控以及用于辅控的设备。普遍认为嵌入式是核心为应用,建立在计算机技术的基础上并在其生产成本、产品功耗、体积和功能以及可靠性等方面表现优异的的由应用软件层、系统软件层、中间层以及硬件层组成的计算机系统[2]。其具有可剪裁的软硬件特点,拥有实时性强、提供用户友好的GUI界面而操作简单方便、良好的硬件移植性、以及强稳定弱交互等许多的优点。嵌入式系统设备由于面向应用,其更新和优化一般与时俱进,正是由于这个原因使得嵌入式产品一旦面世便很难以被淘汰。
由于嵌入式设备的内部集成度高,一般对应其具体功能具有完善的模块,且大部分都具有全面的人机交互功能,因此人们在大部分情况下使用嵌入式设备都十分地方便。而考虑到人们使用设备时,由于对设备的需求发生了改变或设备由于使用时间过长或出现意外等造成了内部的损坏或者程序文件的丢失等情况。在这种时候就需要对设备进行维修维护,如果是出现了大规模的损坏,则必须得到设备的来源地或者找购买的厂家去更换维修。而要是只是文件出现损毁或丢失,或者部分文件需要更新,由于需要的路费、人力费等因素,专门返厂来达到目的就显得很不方便,且十分的不划算。因为这个原因,如果存在一种能够让使用嵌入式设备的用户或者开发人员们无需返厂就可以在线完成嵌入式设备文件的更换或者更新,就可以节省很多的开销和时间。从长远的意义上来看,这样的一种方案可以为人们带来很多的便利以及经济效益。