打印
[KungFu32位 MCU]

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

[复制链接]
1132|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#
敲重点前提:在我们定义flash起始地址后,假设程序区起始地址为A,那么在A+0x1C-0x1F的这四个字节是通过链接器创建的特征值,代码在此处编写0。所以在中断向量表里面的这几个数也是放置的0。

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

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

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

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

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

3、获取的编辑效果,可将HEX用PRO加载查看,结果如下图
![在这里插入图片描述]()
![在这里插入图片描述]()

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

使用特权

评论回复
沙发
tpgf| | 2023-3-6 16:20 | 只看该作者
我们都可以通过哪些方式来实现指定位置存数据呢

使用特权

评论回复
板凳
木木guainv| | 2023-3-6 16:58 | 只看该作者
我们如何避免这个指定的地址是一个错误的地址呢

使用特权

评论回复
地板
磨砂| | 2023-3-6 17:07 | 只看该作者
对于起始地址的选择 我们有没有什么需要注意的地方呢

使用特权

评论回复
5
晓伍| | 2023-3-6 17:19 | 只看该作者
当我们在指定地址存储数据的时候,如何避免这个数据被误操作或者误擦除呢

使用特权

评论回复
6
八层楼| | 2023-3-7 08:09 | 只看该作者
这个界面中的中断向量表 我们可以在哪里进行更改啊

使用特权

评论回复
7
观海| | 2023-3-7 08:58 | 只看该作者
看楼主的图片 我想咨询一下 我怎么知道我需要看哪些地址的数据呢

使用特权

评论回复
8
jxdear| | 2023-3-14 16:39 | 只看该作者
学习学习

使用特权

评论回复
9
小小蚂蚁举千斤| | 2023-3-15 16:30 | 只看该作者
怎么知道哪些是我需要的地址?

使用特权

评论回复
10
leileigood1230| | 2023-5-17 15:46 | 只看该作者
有没有用过#pragma section这种方式实现指定位置存储的? 不同的编译器都有不同的指令,但是我没找到这个编译器指令是什么,尝试了很多都不行,楼主用过吗?

使用特权

评论回复
11
AdaMaYun| | 2023-5-18 14:10 | 只看该作者
怎么做到指定存储

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝