打印
[PIC®/AVR®/dsPIC®产品]

关于C语言下自定义程序保留空间的数据

[复制链接]
1422|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
彗星回归|  楼主 | 2020-3-30 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
汇编下常用
ORG 1800
DA  0X1233 0X1244 0X1255。。。。。
或者
ORG 1800
DA "THIS IS MY DATA"  
这种方法在指定程序位置保存查表数据,然后利用读取程序空间的方法查表,在C下边,这种用法是怎么实现呢,请大家指教,谢谢

使用特权

评论回复
沙发
ynwa| | 2020-3-30 10:47 | 只看该作者
看你用什么系列对应的C编译器。C编译器都支持在程序存储器中定义数据并指定地址。具体语法参照各个C编译器的用户指南

使用特权

评论回复
板凳
彗星回归|  楼主 | 2020-3-30 10:58 | 只看该作者
ynwa 发表于 2020-3-30 10:47
看你用什么系列对应的C编译器。C编译器都支持在程序存储器中定义数据并指定地址。具体语法参照各个C编译器 ...

xc8

使用特权

评论回复
地板
ynwa| | 2020-3-30 11:04 | 只看该作者

看XC8用户指南 4.4.8.1 CONST TYPE QUALIFIER

使用特权

评论回复
5
彗星回归|  楼主 | 2020-3-30 11:28 | 只看该作者
ynwa 发表于 2020-3-30 11:04
看XC8用户指南 4.4.8.1 CONST TYPE QUALIFIER

谢谢,我找找

使用特权

评论回复
6
CoolSilicon| | 2020-3-31 09:23 | 只看该作者
C语言里面的定义字符串的语法, 很常用啊

如果你需要定义到ROM区, 前面加个const修饰符.
如果需要指定到 特定的地址, 可以参考const char str[]@0x500; 但是不建议这样用, 尽量少用绝对地址的做法.

使用特权

评论回复
7
彗星回归|  楼主 | 2020-3-31 10:41 | 只看该作者
CoolSilicon 发表于 2020-3-31 09:23
C语言里面的定义字符串的语法, 很常用啊

如果你需要定义到ROM区, 前面加个const修饰符.

是这样,在汇编里用da ,可以在rom里设定自己所需的内容。比如
ORG 1800
DA  0X1233 0X1244 0X1255。。。。。
在14位系列里,1800地址可以保存一个14位的数字,,如果采用const 这种方式,是生成一系列的retlw指令
,我希望的是在rom里充分利用空间保留我的数据,程序里采用读取flash的方法读出,而不是查表法

使用特权

评论回复
8
CoolSilicon| | 2020-4-1 10:42 | 只看该作者
彗星回归 发表于 2020-3-31 10:41
是这样,在汇编里用da ,可以在rom里设定自己所需的内容。比如
ORG 1800
DA  0X1233 0X1244 0X1255。。。 ...

你所需要存储的数据量有多大?
如果就几十个而已, 真的没必要这么省.....
即使数据非常大的话, 只要整个flash放得下你的代码+数据, 也没必要折腾...

使用特权

评论回复
9
彗星回归|  楼主 | 2020-4-1 11:49 | 只看该作者
CoolSilicon 发表于 2020-4-1 10:42
你所需要存储的数据量有多大?
如果就几十个而已, 真的没必要这么省.....
即使数据非常大的话, 只要整个fl ...

用flash存储采集的数据,量有些大,得省着点。如果没有办法,也只好将就了

使用特权

评论回复
10
CoolSilicon| | 2020-4-1 13:32 | 只看该作者
彗星回归 发表于 2020-4-1 11:49
用flash存储采集的数据,量有些大,得省着点。如果没有办法,也只好将就了 ...

存储采集数据的话,  预留一片区域出来,直接用flash读/写函数来操作就可以了嘛...
不过,如果太频繁的话, 要注意flash擦写次数是有限制的..

使用特权

评论回复
11
彗星回归|  楼主 | 2020-4-1 18:04 | 只看该作者
CoolSilicon 发表于 2020-4-1 13:32
存储采集数据的话,  预留一片区域出来,直接用flash读/写函数来操作就可以了嘛...
不过,如果太频繁的话,  ...

有预存对比,这种操作并不频繁。估计产品周期内几百次吧,还真没太注意寿命问题

使用特权

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

本版积分规则

5

主题

20

帖子

0

粉丝