打印
[热门应用]

芯旺微flash的指定位置存数据定义方式

[复制链接]
2316|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-5-6 09:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
芯旺微flash的指定位置存数据定义方式,以及flash地址的相对地址第0x1C-0x1F位说明
敲重点前提:在我们定义flash起始地址后,假设程序区起始地址为A,那么在A+0x1C-0x1F的这四个字节是通过链接器创建的特征值,代码在此处编写0。所以在中断向量表里面的这几个数也是放置的0。

客户常见需求 :
在我们做bootloader的时候,经常有工程师需要在APP区的前面放置一些校验或者程序版本之类的固定数据。如果此时数据过长达到了特征值位置的话会导致数据错误的现象。

下面就来提供三种方式来解决此问题:
1、缩减自身需要的数据字节长度,当未达到此相对位置的时候就不会出现数据异常的可能 ; (此方式根据需求可缩减的话)

2、在程序区的后面找一片区域来进行储存,这样就不会遇到遇到前面的额特征值啦;

3、重点说一下第三种,也是为了满足客户需求的前提下又不破坏数据也不会破坏程序
(1)、将程序区再划分出一段单独拎出来做为数据存储区,实现方式在ld文件中进行如下操作:



2、在主程序进行指定位置定义,主要指定端 定义方式



3、获取的编辑效果,可将HEX用PRO加载查看,结果如下图





好啦,其实本章不单单是讲解特征值的位置,也是将指定区域的如何单独开辟做为flash_data的方式也讲解了。RAM的定义方式和flash其实本质上一样的只是基地址不同,其他基本没有区别。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Fanshijun1/article/details/129143133

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1530

主题

14513

帖子

9

粉丝