一、简答题
1.简述什么是在应用编程及其优点。
答:对于大部分基于闪存的系统来说,一项重要的需求就是当这些系统安装在终端产品上后,具有更新固件的能力,这个能力称为在应用编程(In-Application Programming,IAP)。很显然,在应用编程的好处是可以摆脱昂贵、复杂的编程器和仿真器,为用户的最终产品提供方便的固件程序的更新能力。另外,对于资源有限的开发者来说,也提供了一种成本极低的固件下载方法。
2.简述STM32的在应用编程及其BootLoader。
答:基于ARM Cortex-M3的STM32具备了在应用编程能力。STM32在每个芯片出厂之前,保存了一段BootLoader程序供用户快速实现在应用编程。BootLoader程序的主要任务是通过USART1端口下载固件程序到内置的Flash存储器中。
3.简述STM32的启动模式及启动配置。
答:在STM32中提供了三种不同的启动模式,一般由BOOT[1:0]引脚电平来选择。
● BOOT1=x,BOOT0=0:用户闪存被选作启动区,x表示任意电平。
● BOOT1=0,BOOT0=1:系统内存被选作启动区。
● BOOT1=1,BOOT0=1:嵌入式SRAM被选作启动区。
4.简述STM32的三种启动模式对应的存储介质。
答:STM32的三种启动模式对应的存储介质都是芯片内置的,如下所示:
用户闪存,也就是芯片内置的Flash。
SRAM,芯片内置的RAM区,也就是内存。
系统存储器,STM32 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段BootLoader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。
5.简述STM32启动时序。
答:在系统上电的时候,CPU首先根据BOOT0和BOOT1引脚来确定是哪种模式的启动,然后把相应模式的起始地址映射到0地址处,并从0地址处开始执行。
BOOT[1:0]引脚电平的值是在复位后SYSCLK的第4个上升沿时被锁定的。当退出standby模式时,BOOT[1:0]引脚被重新采样。因此,BOOT[1:0]引脚必须在standby模式下也保持需要的启动模式配置。
6.通过实际操作来练习STM32的在应用编程。
答:首先需要在硬件电路上对BOOT0和BOOT1引脚进行配置,然后通过意法半导体公司提供的BootLoader程序下载固件。详细步骤可以参阅本章正文。