导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:我的程序连接时出现的错误,请大侠指教![luckyzhu]

 *第7831篇: C51编程:我的程序连接时出现的错误,请大侠指教!

  
楼 主:luckyzhu 2003年1月21日14:41
 C51编程:我的程序连接时出现的错误,请大侠指教!
我选的是AT89C52型单片机,编译通过,连接时,出现11个类似的错误,我不明白是怎么造
成的。
。。。
***WARNING L15 : MULTIPLE CALL TO SEGMENT ***
    SEGMENT : ?PR?_WDATAR?MEAS
    CALLER1 : ?PR?SERVICE_INTO?MEAS
    CALLER2 : ?C_C51STARTUP
***WARNING L15 : MULTIPLE CALL TO SEGMENT ***
    SEGMENT : ?PR?_WDATAR?MEAS
    CALLER1 : ?PR?SERVICE_INTO?MEAS
    CALLER2 : ?PR?SERVICE_TO?MEAS
。。。
meas是我的程序名,service_int0和service_to是我的外部中断0、定时器0中断服务程序,
wdatar是我的一个子程序名,其余的错误就是与wdatar相类似的子程序出现的相同错误。
这是怎么回事呀,我百思不得其解。
:(((
  
2楼:qingtao 2003年1月21日18:53
 你的程序如果不是可重入的话,问题就大了
这个告警表示多个地方调用了同一个函数。如果在顺序程序环境下的程序体中多次调用同一
个函数编译器是不会告警的。但是现在你在中断服务程序里面和主程序体里面调用了同一个
函数。或者是在多任务环境下不同的任务调用了同一个函数,编译器会产生告警。如果你的
函数是可重入的(所有的变量都是局部变量)的话,你可以忽略这个告警。如果不是可重入
的,那么可能在主程序(或者任务1)调用这个函数时产生了中断(或者发生了任务切
换),中断服务程序(或者任务2)也调用了这个函数,这时可能会修改了前一次调用使用
的全局变量或者静态变量。当主程序(任务1)再次获得控制权将这个函数执行完时,产生
的结果可能已经不是预期得到的结果了。

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

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


[上一篇主题]:C51编程:我需要关于程序的稳定性的相关资料,哪位DX有的请给我一份:voiletsky@163.c

[下一篇主题]:硬件:请问:谁知道上海这边ALTIMA的代理,我公司急需购买AC101芯片。多谢!!!