最近在用freescale的9s12HA的片子,程序一致莫名其妙跑飞。
跟踪Debug,发现会在某些自减代码处崩溃,看其汇编,发现去汇编是trap 0x73,应该有问题,自减汇编指令应该是DEC,继续查,发现HA的这款MCU,CPU是9S12系列,而编译器配置的编译指令是9S12X的CPU指令集,将按照9S12X算法编译出的可执行代码里会出现9S12不支持的指令,则在不支持的指令处就会出现指令陷阱,进而进入unimplemented instruction isr中断处理函数。
最近在用freescale的9s12HA的片子,程序一致莫名其妙跑飞。
跟踪Debug,发现会在某些自减代码处崩溃,看其汇编,发现去汇编是trap 0x73,应该有问题,自减汇编指令应该是DEC,继续查,发现HA的这款MCU,CPU是9S12系列,而编译器配置的编译指令是9S12X的CPU指令集,将按照9S12X算法编译出的可执行代码里会出现9S12不支持的指令,则在不支持的指令处就会出现指令陷阱,进而进入unimplemented instruction isr中断处理函数。