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

[复制链接]
930|9
 楼主| juventus9554 发表于 2019-12-13 21:49 | 显示全部楼层 |阅读模式
想知道怎么在定义数组时候将数组首地址指定为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 语言编程?
 楼主| juventus9554 发表于 2019-12-13 22:06 | 显示全部楼层
dingy 发表于 2019-12-13 22:08 | 显示全部楼层
楼主问的是 Designer 吗?
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
 楼主| juventus9554 发表于 2019-12-13 22:15 | 显示全部楼层
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦
stormwind123 发表于 2024-1-17 10:28 | 显示全部楼层
使用指针
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里面去验证一下:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部