CC1110 应用程序中有一个中断函数使用了SLEEP TIMER,中断周期是1s。ST中断后点亮/关闭LED,发现奇怪的现象是:ST前期工作良好,随着后期代码量的增加,不知何时开始ST就发生偶尔一次会不准的现象。通过测试发生的条件是主程序main中加上一个执行按键判断并对LCD上的菜单进行显示的函数(子程序)就会发生,而main中其他的小的子程序没影响。其实这个发生问题的子程序在没有按下按键的情况下程序只是进行了2个BOOL变量判断,并没有执行实质代码,但仍然出问题。看汇编代码
发现在调用此函数后城西先调用了FUNC_ENTER_XDATA(作用?),退出函数之前先调用FUNC_LEAVE_XDATA。其实在不发生问题的小程序里其中一个的汇编代码也是这样的,但没有发现ST不准,唯独这个大点的程序这样。(注;整个应用代码32218byte接近饱和,试过各种优化级别和不优化,现象都一样)请版主提供下建议。谢谢!