打印

求助:Keil里定义在code区的数组应用出错

[复制链接]
2911|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gezhi|  楼主 | 2007-8-10 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

代码1:
uint code relay_dis[4]={0x00,0Xaa2a,0Xeef8,0Xf81e};
void r1(void){    
static uchar item=40; 

if(40==item){
    item=relay_config[relay_term-1];
    }
      
DISBYTE_cfg((relay_dis[item]>>8),relay_dis[item]);
}
以上部分运行正常。


代码2:
uint code relay_dis[4]={0x00,0Xaa2a,0Xeef8,0Xf81e};
void r1(void){    
static uchar item=40; 
uint temp1;

temp1=1;

if(40==item){
    item=relay_config[relay_term-1];
    }
      
DISBYTE_cfg((relay_dis[item]>>8),relay_dis[item]);
}
加上红字部分就提示递归调用错误*** WARNING L13: RECURSIVE CALL TO SEGMENT
有人提示说是访问了代码区,我定义成uint data relay_dis[4]={0x00,0Xaa2a,0Xeef8,0Xf81e};后问题确实解决了。不过为什么我的这两个应用,一个能行一个就不行了呢?望各位指教!

相关帖子

沙发
gjg191| | 2007-8-10 22:55 | 只看该作者

dd

跟你定义静态变量有关系

使用特权

评论回复
板凳
ayb_ice| | 2007-8-11 07:47 | 只看该作者

是警告,不是错误,有递归调用的危险....

使用特权

评论回复
地板
gezhi|  楼主 | 2007-8-11 21:19 | 只看该作者

求助:Keil里定义在code区的数组应用出错

大家帮帮忙啊!还没解决呢!

使用特权

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

本版积分规则

24

主题

112

帖子

0

粉丝