登陆
|
注册
|
搜索
|
最近新帖
发帖子
|
共享我的资料
|
精华帖子
|
热门话题
导航:
老古网
→
老古论坛
→
XMOS公共讨论区
→
XMOS开源项目区
→
单片机程序设计
→
嵌入式系统
→
广告区域
→
→请教一个关于C51存储器分配的问题[rain_cxp]
*第23754篇: 请教一个关于C51存储器分配的问题
楼 主:
rain_cxp
2004年7月15日16:22
请教一个关于C51存储器分配的问题
1. uchar xdata *y; 是指y这个变量是存在外部存储器中呢还是说Y这个变量指向外部存储器?如果是后者的话那Y这个变量又是放在哪里的?
2. Uchar xdata x[8000]; X这个数组是被定义在外部存储器中的。那么,我要是想要给这个数组指定一个固定的地址该怎么做呢?比如我想把这个数组定义在0X2000开始的地址,可以这样定义吗?
Uchar xdata x[8000];
X=0x2000;
第
2
楼:
dongshan
2004年7月15日17:03
1.是向外部存储区的指针
2。可以先编
1.是向外部存储区的指针
2。可以先编译,然后在BL51中指定地址。
Uchar xdata x[8000];
X=0x2000;
是错误的,因为数组名是常量,是个右值。不能被赋值!
第
3
楼:
rain_cxp
2004年7月16日09:01
还是有些不太明白
1.当这个指向外部存储区的指针被赋值的时候,这个值是被放在内部存储区里的吗?
2。先编译,然后在BL51中指定?能说得具体一点吗?
谢谢
第
4
楼:
lenglianxi
2004年7月16日13:47
偏见。
1、uchar xdata * y;
y 是指向xdata的指针,本身在data区。
2、如果要指定地址,可以
*1 在LINK中指定
*2 或者 uchar xata x[8000] _at_ 0x2000;
这些问题都可以解决。
我不是说汇编不好,确实一些频繁执行的代码,你可以用汇编提高速度。
但如果是一个大型的程序,一些不是经常执行的代码,你可以用C,加快开发进度。
你知道80-20的概念吗?80%的执行时间是在20%的代码上。
第
5
楼:
rain_cxp
2004年7月16日14:10
非常感谢这位仁兄,简单明了,句句切中要害
>>>>>>对该主题发表你的看法
本主题贴数
5
,分页:
[第1页]
[上一篇主题]:
想知道2051配置FPGA的情况
[下一篇主题]:
向斑竹求教