历史上的今天
今天是:2024年09月25日(星期三)
2019年09月25日 | 如何合理的运用stm32的flash内存
2019-09-25 来源:eefocus
关于stm32的flash操作,网上已经有很多详细的介绍了,这里只是总结一些告诫。
在使用flash存储数据的时候,对于新手来说,并不知道该把数据存在哪一个地址上,怕存到程序区域,或者越界。
关于这一点很容易搞清楚,首先我们需要看我们编译出的程序有多大。
上图可以计算出程序的大小,
bin=Code+RO+RW
17984+440+152=18576 字节
由于stm32的flash是按页计算大小的,所以程序写入时会是19K,或者20K,这个关系到flash大小问题,小容量的一个页是1K,大容量是2K,因为在写入数据时会先擦除该页,如果此时写入的数据在18576-19000K之间,那么18000-18576属于程序段的数据将被擦除,可能导致程序无法运行了。所以此时应该把数据保存在19K后。
如果你的芯片是64K,那么可以用于存数据的地址范围为19k——64K直接,也就是0x08004A38——到0x080010000.
说一下 ZI 数据,这个数据全是0xFF,所以是无效数据,所以在编译时并没有编译到程序中,在运行时才会有内存使用,所以应该也需要留出这个区域的大小供程序运行。
下一篇:stm32模拟输出PPM信号
史海拾趣
|
两个单片机相互通讯,数据包 = 3字节指令 + 1~4字节的数据。 一次大概有50个数据包。 一个单片机发送数据包,另外一个接收。 两个单片机都在一块板子内。 请问:这两个串口的程序该怎么设计,才能保证数据不会出错。(对数据的正确性要求很高) ...… 查看全部问答> |
|
我用 S3C2440 Samsung 官方的 Windows CE 5.0 BSP,休眠后,按下唤醒按钮,程序跳到 Stepldr 中继续执行,执行到 WAKEUP_POWER_OFF 子程序,进行对休眠的唤醒,详细代码如下: WAKEUP_POWER_OFF ; Release SCLKn after wake-up fro ...… 查看全部问答> |
|
在wince 6.0中如何进行应用程序开发?是直接在platform builder中写应用程序吗?我在vs2005中建立一个smart device的工程,无论是用自己导出的sdk,还是用自带的pocket pc sdk,运行时总是出现这样的错误:There were deployment errors.不知怎么解决 ...… 查看全部问答> |
|
由于笔记比较多,慢慢整理!!!会在原帖中以跟帖的形式的更新资料的!大家可以的根据讲义的资料自己动手的!有STM32的板子就行了。。。。。。记得下载STM32的固件库和手册啊!… 查看全部问答> |
|
再转一个,是苏州大学飞思卡尔实验室写的目前飞思卡尔芯片推广做的是糟糕透了,大概也只有我们几个大学教师写了点东西,用他们芯片做东西的工程师几乎是没有任何贡献高校学生对其芯片的了解也微乎其微。飞思卡尔真应该支持下学校,而不仅仅是苏大一 ...… 查看全部问答> |
|
【转】Intel 的东进与 ARM 的西征 (1)-- 九韶定音剑 vs 九耳连环刀 本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 对于 Intel CEO 欧德宁来说,2012 年的冬天注定会是一个漫长的时节,冬令时的钟摆刚刚拨过,他就披上了过冬棉衣。虽然一众下属没有人敢于在他面前说出“寒冷”二字,但,全世界都已经知道,Int ...… 查看全部问答> |




