stm32的flash做什么用???下载程序吗???保存可以配置的系统参数吗???这么区分啊
以前用avr的,叫flash还是叫rom都无所谓,反正都是程序空间。eeprom用来保存配置的参数。stm32这个就不是很明白了。stm32可以flash中运行,也可ram中运行。加入程序烧在flash里面,还可以用来保存参数吗?况且nandflash好像容易坏的。
或者说stm32的flash只能下载程序??库函数中提供了对很多flash操作的函数。
或者桌他的flash不是nandflash,保存可以配置的参数必须接外部的非易失性存储器?????
晕了!!
1.STM32的Flash不是NandFlash. NandFlash的位跳转比较厉害,必须加上一定的校验和备份机制才能很好地应用。
2.STM32的Flash可以用于存储代码,也可以用于存储数据。一般来说我们会将代码保存在从Flash开始的区域中,余下的部分用来保存数据(你的参数就可以保存在这个部分,该部分的大小取决于Flash的大小和代码占用空间的大小)。
3.STM32对Flash的操作必须遵循一定的步骤,可以参看“STM32F10xxx Flash 编程”手册,当然你可以直接调用STM32的库函数来操作。擦除必须以PAGE(页)位单位,写(编程)必须以Word(两字节)为单位,只用时0xFFFF的地方才能被正确地写入。
4.读保护和写保护
配置了读保护之后,Flash中的代码和数据无法通过JTAG和RAM中的程序读出,起到了加密的作用。
配置写保护是以页(或多页)为单位的,配置之后无法被擦除或修改,加强了代码的可靠性。
读保护和写保护都是在自己的程序中配置的。你可以在第一次运行程序是配置相关选择字。
5.STM32的Flash有读写次数和寿命的限制。