@S32K144芯片调试ucos操作系统bug经历
背景介绍
在调试ucos操作系统的时候,该操作系统被前同事修改过,发现,只要一运行就进入异常中断中,通过debug,打断点调试,发现是在一个初始化函数上出了问题。
过程
通过单步运行(汇编语言单步调试):
1.找到程序跑飞之前的语句,经过发现,是没有对指针进行赋值,但是在ccs编译器可以调试通过,在s32中调试就通不过,所以为了避免这种情况,一定要对指针进行初始化;
2.解决的方法是通过代码屏蔽,因为是进入异常中断,所以肯定是代码进行了非法操作,先屏蔽大函数,然后一个语句一个语句屏蔽加测试。
3.关键点在画红线中,源代码是没有第二条代码,即定义的指针未被初始化,加上之后,则可正常运行;
4.为方便大家查看,调试代码在下图中
##代码图片如下