打印

SH66P12 RAM高128位是怎么定义及访问

[复制链接]
1711|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guoyt|  楼主 | 2012-11-7 21:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SH66P12 RAM是不是有256个?那它的高128位是怎么定义及访问的?
沙发
hanwe| | 2012-11-7 21:27 | 只看该作者
直接定义就好了

使用特权

评论回复
板凳
guoyt|  楼主 | 2012-11-7 21:29 | 只看该作者
我的程序在定义变量到大于80H时编译会出错啊

使用特权

评论回复
地板
llia| | 2012-11-7 21:31 | 只看该作者
可以定义到外部RAM

使用特权

评论回复
5
llia| | 2012-11-7 21:33 | 只看该作者
pdata unsigned int xx;

使用特权

评论回复
6
wangpe| | 2012-11-7 21:37 | 只看该作者
编译时出错的图片能否上传来看看?

使用特权

评论回复
7
guoyt|  楼主 | 2012-11-7 21:40 | 只看该作者
MONL                EQU        0A5H
MONM                EQU        0A6H
MONH                EQU        0A7H

我定义的寄存器地址如上,但是在编译时会提示 Memory Address is out of range,truncated to 7 bits.

使用特权

评论回复
8
guoyt|  楼主 | 2012-11-7 21:41 | 只看该作者
SH66P12的RAM不是有256个吗?怎么会提示溢出呢?

使用特权

评论回复
9
langgq| | 2012-11-7 21:44 | 只看该作者
这样定义不会有错,你是不是没有没有正确选择芯片的型号?

使用特权

评论回复
10
guoyt|  楼主 | 2012-11-7 21:49 | 只看该作者
unsigned int *ser;                //定义一个16位指针
unsigned char com[900];     //定义了一组8位数组
ser=(unsigned int *)com;                             //指针指向设置

没问题,ser每次访问2个字节,c语言要求程序员必须知道自己这样做的所有的可能性

使用特权

评论回复
11
wangzsa| | 2012-11-7 21:55 | 只看该作者
一般"Memory Address is out of range,truncated to 7 bits"只是"warnning",只是提醒一下,不会有问题.

使用特权

评论回复
12
zhuww| | 2012-11-7 21:59 | 只看该作者
估计不是定义变量的问题,是使用变量的问题.

使用特权

评论回复
13
zhanglli| | 2012-11-7 22:01 | 只看该作者
定义没有问题,应该是你程序中的语句使用这个变量出错了。因为这个变量已经不在bank0里面,所以不能直接对他进行立即数的操作。

使用特权

评论回复
14
lium| | 2012-11-7 22:04 | 只看该作者
根据判断,应该是LZ对这些寄存器进行了立即数操作才出的问题。

使用特权

评论回复
15
wangpe| | 2012-11-7 22:06 | 只看该作者
warning不要紧的

使用特权

评论回复
16
guoyt|  楼主 | 2012-11-7 22:09 | 只看该作者
好的,我知道了

使用特权

评论回复
17
guoyt|  楼主 | 2012-11-7 22:09 | 只看该作者
先结贴了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

粉丝