TI中文支持网
TI专业的中文技术问题搜集分享网站

F2812程序运行不正常?

程序下载到flash中,程序能运行,并且大部分输出结果都正确,但是会有某一段程序的结果不正确?

尝试解决办法:1、将一些局部变量改为全局变量、或将一些全局变量改为局部变量,有时可以使程序正常运行;

2、使用命令“#pragma DATA_SECTION”,改变变量的位置,有时可以使程序正常运行;

3、或者在程序中加一些不相干的代码,也能使程序正常运行;

上述3种方法并不能从根本上解决问题,有时需要增加一些新功能,增加代码后,就会出现新的问题。

而且有时仿真运行结果和在flash中运行的结果不一致?

有可能是什么原因引起的呢?网上说的很多方法我都试过了,没有解决问题,求解答?

Martin Yu:

根据现象描述建议检查下CMD文件,也许是内存分配问题,如空间不够,重叠等,特别是RAM和Flash等,谢谢!

程序下载到flash中,程序能运行,并且大部分输出结果都正确,但是会有某一段程序的结果不正确?

尝试解决办法:1、将一些局部变量改为全局变量、或将一些全局变量改为局部变量,有时可以使程序正常运行;

2、使用命令“#pragma DATA_SECTION”,改变变量的位置,有时可以使程序正常运行;

3、或者在程序中加一些不相干的代码,也能使程序正常运行;

上述3种方法并不能从根本上解决问题,有时需要增加一些新功能,增加代码后,就会出现新的问题。

而且有时仿真运行结果和在flash中运行的结果不一致?

有可能是什么原因引起的呢?网上说的很多方法我都试过了,没有解决问题,求解答?

junchuang ren:

回复 Martin Yu:

我最开始怀疑的也是cmd文件的问题,我更换了官网例程的cmd文件,并做了稍微修改;

并且通过map文件查看,没有发现异常;

也怀疑过中断函数运行时间过长,超过2次中断的间隔时间,但用示波器测试过,时间在允许范围内;

也用MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart)这个函数进行了flash到ram的搬移;

程序下载到flash中,程序能运行,并且大部分输出结果都正确,但是会有某一段程序的结果不正确?

尝试解决办法:1、将一些局部变量改为全局变量、或将一些全局变量改为局部变量,有时可以使程序正常运行;

2、使用命令“#pragma DATA_SECTION”,改变变量的位置,有时可以使程序正常运行;

3、或者在程序中加一些不相干的代码,也能使程序正常运行;

上述3种方法并不能从根本上解决问题,有时需要增加一些新功能,增加代码后,就会出现新的问题。

而且有时仿真运行结果和在flash中运行的结果不一致?

有可能是什么原因引起的呢?网上说的很多方法我都试过了,没有解决问题,求解答?

junchuang ren:

回复 junchuang ren:

我之前专门改过cmd文件,每一个位置都尽量分配了一个大的空间,长度应该是够的;

并且不同种类的,都分配在了不同的区域中,应该也不会游重叠,但是还是没有解决问题,后来我就没有特意改过cmd文件了;

附件中是我现在用的cmd文件,以及map文件。

赞(0)
未经允许不得转载:TI中文支持网 » F2812程序运行不正常?
分享到: 更多 (0)