21天学通Linux嵌入式开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第6章 基于ARM Cortex-M3的STM32在应用编程

在应用编程是目前微处理器比较热门的一项增值功能。STM32提供了完善的在应用编程能力,同时所有出厂的芯片都内置了用于在应用编程的BootLoader程序。用户可以通过串口来方便地进行固件程序升级。本章将详细讲解基于ARM Cortex-M3的STM32在应用编程及BootLoader的使用方法。通过本章的学习,读者应该实现如下几个目标。

· 了解在应用编程。

· 了解STM32的在应用编程及BootLoader。

· 掌握基STM32的启动配置。

· 掌握STM32的在应用编程。

6.1 在应用编程简介

对于大部分基于闪存的系统来说,一项重要的需求就是当这些系统安装在终端产品上后,具有更新固件的能力,这个能力称为在应用编程(In-Application Programming IAP)。很显然,在应用编程的好处是可以摆脱昂贵、复杂的编程器和仿真器,为用户的最终产品提供方便的固件程序的更新能力。另外,对于资源有限的开发者来说,也提供了一种极低成本的固件下载方法。

基于ARM Cortex-M3的STM32同样具备了在应用编程能力。意法半导体公司提供了完善的在应用编程方案,用户可以在网站www.st.com上下载相关的说明。除此之外,STM32在每个芯片出厂之前,保存了一段BootLoader程序供用户快速实现在应用编程。BootLoader程序的主要任务是通过USART1端口下载固件程序到内置的Flash存储器中。STM32的BootLoader主要特点如下:

· BootLoader程序在每个芯片出厂的时候已经内置,无须用户干预。

· BootLoader程序烧写在ROM中,也就是系统存储器中。

· BootLoader程序通过USART1端口下载固件程序到内置的Flash存储器中。

· 占用引脚少,与计算机的串口只需RX和TX两根引脚即可完成固件升级工作。

· 支持任意波特率,BootLoader程序本身会对波特率进行计算并适应。

· 通过BOOT[1:0]引脚电平可以启动BootLoader,简单地完成固件升级。

· 除了下载固件外,还提供了读取固件及校验功能。

· 用做BootLoader程序的USART1端口在正常运行时,还可以用做其他用途。

同时,意法半导体公司还提供了一个PC端的免费程序供用户通过BootLoader升级固件,同样可以通过访问网站www.st.com来获得。