打印

想知道怎么在定义数组时候将数组首地址指定为ROM的某一个位置

[复制链接]
597|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
想知道怎么在定义数组时候将数组首地址指定为ROM的某一个位置

使用特权

评论回复
沙发
zwll| | 2019-12-13 21:52 | 只看该作者
什么意思啊?

使用特权

评论回复
板凳
juventus9554|  楼主 | 2019-12-13 21:55 | 只看该作者
比如keil中可以这样做:char array[5] @ 0x50,ROM 中 0x50 就是数组的首地址。

使用特权

评论回复
地板
stly| | 2019-12-13 22:02 | 只看该作者
用C 语言编程?

使用特权

评论回复
5
juventus9554|  楼主 | 2019-12-13 22:06 | 只看该作者
是的

使用特权

评论回复
6
dingy| | 2019-12-13 22:08 | 只看该作者
楼主问的是 Designer 吗?

使用特权

评论回复
7
pengf| | 2019-12-13 22:10 | 只看该作者

可以参考下面的KB:
Placing Code at Absolute Location in Flash http://www.cypress.com/?id=4&rID=39802
Allocation of Variables at Absolute Address in RAM http://www.cypress.com/?id=4&rID=39611

使用特权

评论回复
8
juventus9554|  楼主 | 2019-12-13 22:15 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

评论回复
9
stormwind123| | 2024-1-17 10:28 | 只看该作者
使用指针

使用特权

评论回复
10
IFX_Lingling| | 2024-1-17 15:17 | 只看该作者
一般不定义在固定的ROM,会定义在固定的Flash section。
在ld文件中添加section,指定这个section到你需要放置的地址。比如PSoC6的工程,你想在M4里面定义一个变量放在固定的flash位置,你可以找到ld的文件,搜索.cy_app_signature这个段,然后在这个段的上面定义一个自己的段。
然后在main.c的文件里面定义一个变量放到这个段里面。
const uint8 Test[512]

CY_SECTION(".my_var") = {0xFFu,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF,0x55};

然后编译,可以看map文件,map文件在build文件夹里面:

可以再到hex里面去验证一下:



2698265a77caf54448.png (454.41 KB )

2698265a77caf54448.png

7283265a77e0d0fe03.png (537.47 KB )

7283265a77e0d0fe03.png

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝