关于
STM32
?/p>
FLASH
操作
说到
STM32
?/p>
FLSAH
,我们的第一反应是用来装程序的,实际上,
STM32
的片?/p>
FLASH
不仅用来装程序,还用来装芯片配置、芯?/p>
ID
、自举程序等等?/p>
当然?/p>
FLASH
还可以用来装数据?/p>
FLASH
分类
根据用途,
STM32
片内?/p>
FLASH
分成两部分:主存储块、信息块?/p>
主存储块用于存储程序,我们写的程序一般存储在这里?/p>
信息块又分成两部分:系统存储器、选项字节?/p>
系统存储器存储用于存放在系统存储器自举模式下的启动程序(
BootLoader
),
当使?/p>
ISP
方式加载程序时,就是由这个程序执行。这个区域由芯片厂写?/p>
BootLoader
,然后锁死,用户是无法改变这个区域的?/p>
选项字节存储芯片的配置信息及对主存储块的保护信息?/p>
FLASH
的页?/p>
STM32
?/p>
FLASH
主存储块按页组织?/p>
有的产品每页
1KB
?/p>
有的产品每页
2KB
?/p>
页面?/p>
型的用途就是用于按页擦?/p>
FLASH
。从这点来看,页面有点像通用
FLASH
的扇区?/p>
STM32
产品的分?/p>
STM32
根据
FLASH
主存储块容量、页面的不同,系统存储器的不同,分为小容
量、中容量、大容量、互联型,共四类产品?/p>
小容量产品主存储?/p>
1-32KB
,每?/p>
1KB
。系统存储器
2KB
?/p>
中容量产品主存储?/p>
64-128KB
,每?/p>
1KB
。系统存储器
2KB
?/p>
大容量产品主存储?/p>
256KB
以上,每?/p>
2KB
。系统存储器
2KB
?/p>
互联型产品主存储?/p>
256KB
以上,每?/p>
2KB
。系统存储器
18KB
?/p>
对于具体一个产品属于哪类,
可以查数据手册,
或根据以下简单的规则进行区分?/p>
STM32F101xx
?/p>
STM32F102xx
?/p>
STM32F103xx
产品?/p>
根据其主存储块容量,
一定是小容量、中容量、大容量产品中的一种,
STM32F105xx
?/p>
STM32F107xx
是互联型产品?/p>
互联型产品与其它三类的不同之处就?/p>
BootLoader
的不同,小中大容量产品的
BootLoader
只有
2KB
?/p>
只能通过
USART1
进行
ISP
?/p>
而互联型产品?/p>
BootLoader
?/p>
18KB
,能通过
USAT1
?/p>
4
?/p>
CAN
等多种方式进?/p>
ISP
。小容量产品、中容量
产品?/p>
BootLoader
与大容量产品相同
?/p>
关于
ISP
?/p>
IAP
ISP
?/p>
In
System
Programming
)在系统编程,是指直接在目标电路板上对芯片进
行编程,
一般需要一个自举程?/p>
?/p>
BootLoader
?/p>
来执行?/p>
ISP
也有?/p>
ICP
?/p>
In Circuit
Programming
?/p>
、在电路编程、在线编程?/p>
IAP
?/p>
In
Application
Programming
)在应用中编程,是指最终产品出厂后,由最
终用户在使用中对用户程序部分进行编程?/p>
实现在线升级?/p>
IAP
要求将程序分?/p>
两部分:
引导程序?/p>
用户程序?/p>
引导程序总是不变的?/p>
IAP
也有叫在程序中编程?/p>
ISP
?/p>
IAP
的区别在于,
ISP
一般是对芯片整片重新编程,用的是芯片厂的自?/p>
程序。?/p>
IAP
只是更新程序的一部分,用的是电器厂开发的
IAP
引导程序。综