keil c51 怎样绝对定位数组的起始地址
我有个数组:unsigned char code table = {1, 2, 3};
假如要求在flash的0x1000处开始存放,怎么做呢?
网上有说:
常量定位及初始化:
新建一个TABLE.C, 写入
char code table[]={ 初始值};
KEIL定位:选择 option-->BL51 Locate, 在CODE:栏中写入如:
?CO?TABLE(0x7000)
这样,table[]表就定位到了0x7000开始的程序段。
按照这种方法,我试了,不行 当然是 _at_ xiaobendan001 发表于 2013-3-13 11:27 static/image/common/back.gif
当然是 _at_
at 是变量的,,我的是常量,保存在flash区的常量 本帖最后由 Tliang 于 2013-3-13 11:50 编辑
汇编
ORG 我用你那方法试了下完全正确啊 jsjjccc 发表于 2013-3-13 12:16 static/image/common/back.gif
我用你那方法试了下完全正确啊
我用这方法解决了
在工程中建立一个新的文件,如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)再次编译即可。 本帖最后由 Alimy 于 2013-3-13 13:50 编辑
准备烧流水号什么的吧。。KEIL 程序定位(转) http://blog.csdn.net/hanhc1989/article/details/6215367 Alimy 发表于 2013-3-13 13:39 static/image/common/back.gif
准备烧流水号什么的吧。。KEIL 程序定位(转) http://blog.csdn.net/hanhc1989/article/details/6215367 ...
学习了,打开连接就是图片怎么不显示了? 本帖最后由 Alimy 于 2013-3-13 14:09 编辑
GZLJZ 发表于 2013-3-13 13:56 static/image/common/back.gif
学习了,打开连接就是图片怎么不显示了?
这个是放在ROM里面的。(Rand数组分别放在 ROM中的 0x3ff0(Rand)0x3ff1(Rand)0x3ff2(Rand))。。对了。flash不是xdata么?图片貌似失效了。这帖子本来就是阿莫论坛出去的。。http://blog.csdn.net/hanhc1989/article/details/6215367 这个我是可以看到的。 哦,那是我的IE浏览器有问题了, char code dx516 _at_ 0x00ff; code定义到rom里 Alimy 发表于 2013-3-13 14:03 static/image/common/back.gif
这个是放在ROM里面的。(Rand数组分别放在 ROM中的 0x3ff0(Rand)0x3ff1(Rand)0x3ff2(Rand ...
谢谢,,,flash是code 我试验了一下,成功了,上传工程,方便后面的人快速搞定
页:
[1]