我先说一下背景吧,公司用的是LM3S811做控制,数码管显示,带遥控,DSP解音频,无线模块。最近在811上添加对DSP寄存器的操作,无非就是写好多寄存器,可是异象开始出现了。在改写完第一个函数的时候,发现要遥控的两个按键不起作用了!就算把此函数不调用,只要那一段函数定义还在,遥控按键就是不起作用。好吧,怀疑遥控解码有问题,单步进去,发现遥控接收解码正常,可是在对比键值的时候就是对比失败,(键值是存储在100的数组中),返回0.如果整个对比过程全程单步,即单步对比100次,没问题,但是全速运行就是出错,返回0。很诡异啊!
怀疑过堆栈是否溢出,但是不是。恰好同事的方案也用我这个芯片,只不过DSP不一样。于是我花了好长时间把他的代码根据我的硬件配置修改下在我上面运行。在没改DSP设置的时候运行正常,可是当我开始修改DSP后,异常也开始出现。要么就是按键不起作用,要么就是显示乱码。我的神啊 ,到底怎么回事?DSP设置就是通过I2C操作寄存器,和mcu本身没多大关系吧,为什么会影响到自己呢?
本来项目都开始试产了,可是现在代码根本不敢修改,添加代码如履薄冰,请教下高人,大侠么,这个现象因何而起啊?程序代码不严谨,还是其他设置问题啊?
|