搜索
bottom↓
回复: 15

keil c51 怎样绝对定位数组的起始地址

[复制链接]

出0入0汤圆

发表于 2013-3-13 11:12:36 | 显示全部楼层 |阅读模式
   我有个数组:
unsigned char code table[3] = {1, 2, 3};
   假如要求在flash的0x1000处开始存放,怎么做呢?

网上有说:
   常量定位及初始化:
   新建一个TABLE.C, 写入
   char code table[]={ 初始值};
    KEIL定位:选择 option-->BL51 Locate, 在CODE:栏中写入如:
   ?CO?TABLE(0x7000)
   这样,table[]表就定位到了0x7000开始的程序段。

按照这种方法,我试了,不行

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-3-13 11:27:40 | 显示全部楼层
当然是 _at_

出0入0汤圆

 楼主| 发表于 2013-3-13 11:29:25 | 显示全部楼层
xiaobendan001 发表于 2013-3-13 11:27
当然是 _at_

at 是变量的,,我的是常量,保存在flash区的常量

出0入0汤圆

发表于 2013-3-13 11:43:29 | 显示全部楼层
本帖最后由 Tliang 于 2013-3-13 11:50 编辑

汇编
ORG

出0入0汤圆

发表于 2013-3-13 12:16:53 | 显示全部楼层
我用你那方法试了下完全正确啊

出0入0汤圆

 楼主| 发表于 2013-3-13 12:31:23 | 显示全部楼层
jsjjccc 发表于 2013-3-13 12:16
我用你那方法试了下完全正确啊

我用这方法解决了

在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值(假设是code变量):char code myVer = {"COPYRIGHT 2001-11"};然后将该文件加入工程,编译,打开M51文件,若定义的是code型,则在* * * C O D E M E M O R Y * * *下可找到:CODE xxxxH xxxxH UNIT ?CO?INITVARS然后在:Project->Options for Target ...->BL51 Locate:Code中填入:?CO?INITVARS(0x200)再次编译即可。
头像被屏蔽

出0入0汤圆

发表于 2013-3-13 12:56:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2013-3-13 13:39:51 | 显示全部楼层
本帖最后由 Alimy 于 2013-3-13 13:50 编辑

准备烧流水号什么的吧。。  KEIL 程序定位(转) http://blog.csdn.net/hanhc1989/article/details/6215367

出0入0汤圆

发表于 2013-3-13 13:56:16 | 显示全部楼层
Alimy 发表于 2013-3-13 13:39
准备烧流水号什么的吧。。  KEIL 程序定位(转) http://blog.csdn.net/hanhc1989/article/details/6215367 ...

学习了,打开连接就是图片怎么不显示了?

出0入0汤圆

发表于 2013-3-13 14:03:25 | 显示全部楼层
本帖最后由 Alimy 于 2013-3-13 14:09 编辑
GZLJZ 发表于 2013-3-13 13:56
学习了,打开连接就是图片怎么不显示了?


  这个是放在ROM里面的。(Rand[3]数组分别放在 ROM中的 0x3ff0(Rand[0])  0x3ff1(Rand[1])  0x3ff2(Rand[2]))。。对了。flash不是xdata么?  图片貌似失效了。这帖子本来就是阿莫论坛出去的。。http://blog.csdn.net/hanhc1989/article/details/6215367 这个我是可以看到的。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-3-13 14:06:44 | 显示全部楼层
哦,那是我的IE浏览器有问题了,

出0入0汤圆

发表于 2013-3-13 14:36:15 | 显示全部楼层
char code dx516[3] _at_ 0x00ff;   code定义到rom里
头像被屏蔽

出0入0汤圆

发表于 2013-3-13 14:57:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2013-3-13 16:42:46 | 显示全部楼层
Alimy 发表于 2013-3-13 14:03
这个是放在ROM里面的。(Rand[3]数组分别放在 ROM中的 0x3ff0(Rand[0])  0x3ff1(Rand[1])  0x3ff2(Rand ...

谢谢,,,flash是code

出0入0汤圆

发表于 2013-12-6 17:46:36 | 显示全部楼层
我试验了一下,成功了,上传工程,方便后面的人快速搞定

本帖子中包含更多资源

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

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 14:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表