RL78 系统库函数重入问题咨询

专家好:

IDE: CS+ CACX V4.00.01 / Win10

chip:  R5F10WMG(RL78/L13)

RL78代码运行过程中偶尔发现主函数中RAM变量被改变,单步仿真后发现是定时器中断函数中有 乘/除法操作导致。屏蔽此语句后 结果正确。请问此情况是什么原因导致的?如何从根本上解决此问题?谢谢!

备注:

1. 正常数组累加取反结果应为0xFFFFFFFF, 异常时结果却为0xFFFFFF00 (最后一个字节数据被改变);

2. 中断函数不只有 乘/除操作会影响,类似a+=b函数也会有相同问题。查看汇编代码有调用系统库函数

@@lsadd, @@lscom等;
 
3.屏蔽中断函数里 乘/除操作或a+=b后, 数据累加取反结果正确;
4.编译器禁止优化,问题依旧;

 

请问此情况是什么原因导致的?如何从根本上解决此问题?谢谢!

Parents Reply Children