导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编译问题[blueteeth1225]

 *第18671篇: C51编译问题

  
楼 主:blueteeth1225 2004年1月15日09:53
 C51编译问题
[color=#000000][[color=#00FFFF]color=#FF00FF]我第一次用C编写51程序,用了ICE16编译器,可是,我的数组定不能大于77个BYTE,大于这个数就编译不过,出现的提示语为:[/[/color]color]
[color=#DC143C]'DATA': SEGMENT TOO LARGE[/color[color=#000000]][color=#00FFFF]请问大家有没遇上过这样的问题啊,我每次编译都把数组给注释掉才能通过,可这样的程序我能写入程序存储器么??我的外部程序存储器有32K,用64K的也行,是不是我的编译器的设置要更改啊??[/color[/color]望请高手指教,晚辈在此先行谢过了![/color]
  
2楼:kuolongfei 2004年1月15日15:18
 说明!
你的CPU内部DATA区空间不够,你应该将你的数组定义到外部空间。
  
3楼:blueteeth1225 2004年1月15日16:14
 多谢了,还有一点想请教
[color=#000000]是说我的C51的片内程序存储器空间不够么?
我要是把数组都烧到片外程序存储器,
是不是数组就应该定义为
          code char[2];
对么?不好意思,第一次用C编,很多东西都不清楚,劳烦您多多指教,多谢!
  
4楼:kuolongfei 2004年1月18日10:06
 再说明!
第一个问题我也不太清楚,但你的第二中定义方法是将数组定义到内部程序存储空间,要定义到外部好象是有IDATA,你可以查看一下C51的书籍,都有介绍,我也记不清了,哈哈
  
5楼:WuMing 2004年1月15日20:08
 你如果用的52的话可以将数组定义为idata型
  
6楼:blueteeth1225 2004年1月16日17:29
 为什么啊?
为什么啊
idata不是片内直接寻址RAM空间么?
请问52的内部存储定义和51有什么区别么?
我从哪里可以找到这些资料啊,特别是编程用到的,
谢了,

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:高频功率放大器设计与制作-各位帮个忙

[下一篇主题]:关于IAP一问