共2条
1/1 1 跳转至页
RAM 请教各位大侠一个关于片外RAM定位的问题。
问
我采用51单片机做了一个东西,片内RAM不够,用到了片外的RAM,片外RAM的地址范围是8000H~FFFFH,我现在想将8000h~80ffh单独划分出来作为变量存储区,请问应该怎么做?(借助KEIL或者写一些连接命令的方法都行)
请各位大侠多多指教。谢谢。
答 1: 用 _at_ 定位 答 2: 也可以这样!包含ABSACC.H
#define data1 XBYTE[0x8000]
#define data2 XBYTE[0x8001]
.
.
.
data1=XX ;
data2=XX ; 答 3: 有个简单方法可以不定义绝对地址变量,用Keil的话,在工程设置里将memory mode 设置为xdata,在下面的off-chip xdata memory里将你的地址范围填入就可以了 答 4: 多谢指点。请能在KEIL编译器里直接设定吗?因为变量很多,有大概100多个。 答 5: 回windcity大侠。
我打开413FATX.M51文件查看,发现如下,是不是没有设置成功啊?
* * * * * * * X D A T A M E M O R Y * * * * * * *
XDATA 0000H 0001H INPAGE ?PD?WRITE_12887?413FATX
XDATA 0001H 0001H INPAGE ?PD?_PRINT?413FATX
XDATA 0002H 0006H INPAGE ?PD?WCJS?413FATX
XDATA 0008H 001AH INPAGE ?PD?413FATX
XDATA 0022H 0063H INPAGE _PDATA_GROUP_ 答 6: 感谢大侠,又重试了一下,可以了,多谢。 答 7: 又有点问题麻烦各位大侠。刚才变量地址范围是改对了,但是用仿真器运行的时候,程序好像没有执行,是不是设置的变量地址不在仿真器的控制范围内啊。
我的前32K地址用的是片外IO设备,会不会有冲突啊?
请各位大侠指点。 答 8: 自己顶一下,哪位大侠能够给点提示,谢谢。
请各位大侠多多指教。谢谢。
答 1: 用 _at_ 定位 答 2: 也可以这样!包含ABSACC.H
#define data1 XBYTE[0x8000]
#define data2 XBYTE[0x8001]
.
.
.
data1=XX ;
data2=XX ; 答 3: 有个简单方法可以不定义绝对地址变量,用Keil的话,在工程设置里将memory mode 设置为xdata,在下面的off-chip xdata memory里将你的地址范围填入就可以了 答 4: 多谢指点。请能在KEIL编译器里直接设定吗?因为变量很多,有大概100多个。 答 5: 回windcity大侠。
我打开413FATX.M51文件查看,发现如下,是不是没有设置成功啊?
* * * * * * * X D A T A M E M O R Y * * * * * * *
XDATA 0000H 0001H INPAGE ?PD?WRITE_12887?413FATX
XDATA 0001H 0001H INPAGE ?PD?_PRINT?413FATX
XDATA 0002H 0006H INPAGE ?PD?WCJS?413FATX
XDATA 0008H 001AH INPAGE ?PD?413FATX
XDATA 0022H 0063H INPAGE _PDATA_GROUP_ 答 6: 感谢大侠,又重试了一下,可以了,多谢。 答 7: 又有点问题麻烦各位大侠。刚才变量地址范围是改对了,但是用仿真器运行的时候,程序好像没有执行,是不是设置的变量地址不在仿真器的控制范围内啊。
我的前32K地址用的是片外IO设备,会不会有冲突啊?
请各位大侠指点。 答 8: 自己顶一下,哪位大侠能够给点提示,谢谢。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |