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.

[参考译文] RTOS/TMS320F28335:CAN't 在 DSP28335中将程序的.text 段从闪存加载到 RAM、参考 SPRA958H

Guru**** 2394405 points
Other Parts Discussed in Thread: C2000WARE, TMS320F28335

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/805470/rtos-tms320f28335-can-t-load-text-section-of-program-from-flash-to-ram-in-dsp28335-referring-to-spra958h

器件型号:TMS320F28335
主题中讨论的其他器件:C2000WARE

工具/软件:TI-RTOS

在 DSP28335中、我成功地将程序的.econst 段从闪存加载到了 RAM、参考了 SPRA958H (从 TMS320F28xxx DSP 上的内部闪存运行一个应用)、所以我尝试加载.text  

从闪存到 RAM 的程序部分
首先、我在 F28335_BIOS_flash.cmd 中定义.text 段

部分

/***抢先链接.text 段***/
/*必须在评估 DSP/BIOS 连接器命令文件之前提供*/
.text:load = flash、page = 0
运行= L6SARAM、页= 1
run_start (_text_runstart)、
load_start (_text_loadstart)、
load_end (_text_loadend)

然后、我在 main 函数中将.text 段从闪存复制到 RAM

void main (void)


#ifdef example_flash
/*复制.text 段*/
memcpy (&text_runstart、
text_loadstart (&T)、
&text_loadend -&text_loadstart);

memcpy (&secureRamFuncs_runstart、
secureRamFuncs_loadstart (&S)、
secureRamFuncs_loadend -&secureRamFuncs_loadstart);

//--初始化闪存和 OTP
InitFlash();//初始化闪存
#endif
(笑声)

CCS 通常编译并编译程序后、我会将.out 文件刻录到 DSP28335中、但程序无法启动并运行。

在.map 文件中、.text 段被定义:

段页原点长度输入段
---- -------- ------ --------
.text 0 00300f0b 00000d66运行 ADDR = 0000e000

如何解决此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Quanting、
    如果您在 C2000Ware 中查看其中一个示例、您应该会看到一个名为 CodeStartBranch 的.asm 文件、其中包含该文件以指向闪存入口点、并提供了一些有关调试器设置的详细信息、以允许在 main 开始仿真连接。

    最棒的
    Matthew
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    马修:
    感谢您的回复。 您的意思是在 CodeStartBranch.asm 中的 main 函数之前将程序的.text 段从闪存加载到 RAM 中? 但我不知道这样做,你能举个例子吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。



    由于您正在尝试从 RAM 执行整个文本段、因此在 main 函数(它是文本段的一部分)中、将.text 内容从闪存复制到 RAM 不会有所帮助。

    请参阅此应用手册 :www.ti.com/.../litabsmultiplefilelist.tsp
    这可能会有所帮助。

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Vamsi:

            感谢您的回复。 此实现方案的限制因素是 TMS320F28335 DSC 上可用的内部 RAM 数量。我的项目太大、无法装入内部 RAM、无法实现此功能。

          我  应该 有外部 RAM、如何 在 DSP28335中将程序的.text 段从闪存加载到外部 RAM?

       谢谢、此致、

           

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我将要求我们的主持人将此帖子分配给相应的专家。

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于您正在另一个主题(https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/804789/2993095#2993095)中讨论此问题、我想关闭此主题。  这是好吗?  

    谢谢、此致、
    Vamsi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vamsi:

            感谢您的回复。 您可以关闭此主题。

            谢谢、此致、