[原创] 28335flash烧写的奇怪现象

jinkun   2015-8-31 14:28 楼主
最近一直在调试28335程序固化到flash中的问题,现在已经可以将程序固化了但是遇到一些奇怪的现象和问题解决不了,希望TI的大神可以帮忙看一下,小弟万分感谢。
1.png
如上图红框中的两句程序所示程序所示,未注释的和注释的分别是经过LMS算法处理输出和直接录音输出送给编码器的数据,如果我连上仿真器在线调试,则用其中任何一句输出结果都是正确的。但是假设我烧写第一句A=ActualEcho,同时注释第二句时,也就是直接录音输出,程序固化在flash,拔掉仿真器,断电上电,运行正确,录音也正确;但是如果我将直入直出的语句注释掉,换成第二句也就是A=FilterOut这一句时,程序输出就和在线调试状态不一样了,同时也就不正确了。在这两句程序中,ActualEcho是在主函数中的读取编码器数据,这个可以断定固化之后是正确的,而FilterOut是经过我的LMS自适应算法计算出来的值。我自己刚开始考虑觉得可能是算法函数没有固化好,但是后来我在算法函数中设置led灯,固化后断电重现上电LED可以正常点亮闪烁的,说明算法是固化好了,因为断电重启之后在算法中定义的LED灯都正常闪烁了,但是读取FilterOut的值还是不对,说明算法输出的值还是错的,为什么呢???头疼的问题已经困扰好几天了,希望大神帮助,对了我的算法是进行LMS滤波的,计算量可能有点大,并且在主函数中有DMA中断程序,不知道会不会影响

回复评论 (2)

我在做FFT运算的时候也遇到过类似的问题。用DMA搬运数据。然后在主函数里面计算。然后也会被DMA中断打断。你的actualecho也是用DMA搬运的吗?我当时是在这儿发现了的问题。后来找不到DMA配置的问题。就只好改成手动搬运数据。然后勉强算解决了。
点赞  2015-8-31 17:44
没看懂,帮顶
点赞  2015-8-31 20:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复