This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F2809: 怎么判断f2809的程序是运行在flash中还是运行在ram中?

Part Number: TMS320F2809

在使用SCI的过程中,把程序烧录到了flash中,看F2809.cmd中有ramfuncs,在main()中也增加了如下语句:

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();

但还是在接手过程中,出现了字符丢失的现象,请问怎么判断f2809的程序是运行在flash中还是运行在ram中?由于程序的体量已经不适合直接进行ram调试了,疑似跟程序的运行位置(flash或ram)有关。

  • 哪些函数需要加载到RAM执行,是需要你来声明的。

  • 如上面那位工程师所述,在main()中加入了memcopy函数也不代表某段程序就被搬运至ram运行了,还是要看ramfuncs的具体定义,就是具体搬运了哪个部分的程序段。

    判断是否在ram中运行的话,最简单的就是看程序执行时间,比如在搬运的程序中加入一个GPIO延时翻转的程序,看延时时间是否正常。一般ram和flash的延时程序执行时间是有肉眼可见的差距的

  • 哦,谢谢

  • 如果认为问题已经解决的话可以点击绿色的“确认答案”按钮,方便其他工程师参考。