打印

79SH161A编译报错?

[复制链接]
1962|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
daseagg|  楼主 | 2011-6-15 22:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题一:编译时,报错:“CRROR C249 "DATA" : SEGMENT TOO LARGE.”
源程序由几个文件组成,如:x.c , y.c, z.c... 编译时,x.c,  y.c 报上述错误,而z.c没有。我知道是文件中的变量,超出了内部数据程储器,请问该如果设置?

问题二:
如果数组定义如下,为什么报错?
typedef unsigned char u8;
static const u8 tab1[14]={2,3,1,4,1,9,1,9,1,9,1,9,1,9};
沙发
bananarer| | 2011-6-16 08:37 | 只看该作者
static const u8 xdata tab1[14]={2,3,1,4,1,9,1,9,1,9,1,9,1,9};
试试?

使用特权

评论回复
板凳
daseagg|  楼主 | 2011-6-16 10:16 | 只看该作者
谢谢。问题二已经解决。
但问题一:说有源文件还是报错:“CRROR C249 "DATA" : SEGMENT TOO LARGE.”

使用特权

评论回复
地板
bananarer| | 2011-6-16 11:16 | 只看该作者
不要用u8 xxx;定义变量,将一些变量用 unsigned char idata xxx;来定义,这个可以将变量移动到idata内;unsigned char xdata xxx;可以将变量移动到xdata内

使用特权

评论回复
5
daseagg|  楼主 | 2011-6-16 12:32 | 只看该作者
谢谢bananarer:)

使用特权

评论回复
6
dingy| | 2011-6-16 17:44 | 只看该作者
效率真高,哈哈

使用特权

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

本版积分规则

0

主题

31

帖子

1

粉丝