使用STM32 内部flash 模拟 EEPROM
就是为了存放一些 掉电丢失的数据,比如 “我们设置的一些参数” 掉电后 不能丢失否则
再次上电后 这些参数我们需要用就没有办法了。
1, 如果使用库函数 对内部flash 的读写都有现成的 库函数。
2, 最最重要的是 知道自己的 选择的单片机 stm32 是哪个型号的,
支持最大的容量 flash 的容量。这个很关键很多无法实现的工程可能就是这里出的问题。
但是还不是最大的。
3, 最大的问题,程序按照历程 编译后 没有 出现想要的试验效果,这是因为我们选择的存放地址不对
在说1遍 可能是 我们选择的存放位置 超界了。 或越界了
这就需要你知道自己的编写的代码 大概有多大
如果计算代码由多大 如何??????
Memory Map of the image
Image Entry point : 0x08000131
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002774, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00002680])
// Base 是加载到执行空间的基地址 都是 0x08000000
// 也正好是 STM32 内部 flash 的首地址
// 他们大小 SIZE 分别是
Execution Region ER_IROM1 (Base: 0x08000000, Size: 0x00002628, Max: 0x00010000, ABSOLUTE)
//分别是 0x00002628 0x00002774
//本历程 内部 flash 是从 0x08000000 至 (0x08000000 + 0x00002774)
// 0x08002774 也就是这个程序
//所占用的空间
这就是 一个.map 文件 给出的代码所占空间的大小
切忌切忌
否则如我一样浪费了2天时间
suk732001 原创文章 13获赞 1访问量 628 关注 私信 展开阅读全文