本编程手册介绍了如何对STM32F101xx、STM32F102xx和STM32F103xx微控制器的闪存进行编程。为方便起见,除非另有规定,否则本文件其余部分将称为STM32F10XXX。
STM32F10XXX嵌入式闪存可通过电路内编程或应用程序编程进行编程。
电路内编程(ICP)方法用于更新闪存的全部内容,使用JTAG、SWD协议或引导加载程序将用户应用程序加载到微控制器中。国际比较项目提供了快速和有效的设计迭代,并消除了不必要的包装处理或设备套接。
与ICP方法相比,应用程序编程(IAP)可以使用微控制器支持的任何通信接口(I/OS、USB、CAN、UART、I2C、SPI等)将编程数据下载到内存中。IAP允许用户在应用程序运行时重新编程闪存。然而,部分应用程序必须事先使用ICP在闪存中进行编程。
闪存接口基于AHB协议实现指令访问和数据访问。它实现了一个预取缓冲区,加速了CPU代码的执行。它还执行执行闪存操作(程序/擦除)所需的逻辑。程序/擦除操作可以在整个产品电压范围内执行。还实现了读/写保护和选项字节。
本节介绍如何读取或编程到STM32F10XXX嵌入式闪存。
嵌入式闪存模块可以作为公共存储空间直接寻址。任何数据读取操作都通过专用的读取感测器访问闪存模块的内容,并提供请求的数据。
读接口包括一个读控制器在一边访问闪存和一个AHB接口在另一边与CPU接口。读取接口的主要任务是生成控制信号,从闪存中读取,并预取CPU所需的块。预取块仅用于通过I代码总线获取指令。通过D代码总线访问文本池。由于这两条总线与目标具有相同的闪存,所以D代码总线访问优先于预取访问。
本节简要定义了本文件中使用的缩略语和缩略语:
●低密度设备为STM32F101xx、STM32F102xx和STM32F103xx微控制器,其中闪存密度在16至32千字节之间。
●中密度设备为STM32F101xx、STM32F102xx和STM32F103xx微控制器,其中闪存密度在64至128千字节之间。
●高密度设备为STM32F101xx和STM32F103xx微控制器,其中闪存密度在256至512 kbytes之间。
●Cortex-M3核心集成了两个调试端口:
-JTAG调试端口(JTAG-DP)提供基于联合测试行动组(JTAG)协议的5针标准接口。
–SWD调试端口(SWD-DP)提供基于串行线调试(SWD)协议的2针(时钟和数据)接口。对于JTAG和SWD协议,请参考Cortex M3技术参考手册。
●字:32位长度的数据/指令
●半字:16位长度的数据/指令
●字节:8位长度的数据
●fpec(闪存程序/擦除控制器):对主存储器和信息块的写入操作由嵌入式闪存程序/擦除控制器(fpec)管理。
●iap(在应用程序编程中):iap是在用户程序运行时对微控制器的闪存重新编程的能力。
●ICP(电路编程):ICP是在设备安装在用户应用板上时,使用JTAG协议、SWD协议或引导加载程序对微控制器的闪存进行编程的能力。
●I-代码:该总线将Cortex-M3内核的指令总线连接到Flash指令接口。在此总线上执行预取。
●D-代码:该总线将Cortex-M3的D-代码总线(文字加载和调试访问)连接到闪存数据接口。
●选项字节:存储在闪存中的产品配置位
●obl:可选字节加载器。
●AHB:高级高性能总线。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !