我们需要通过串行闪存编程器开发固件更新的修改版本、因为我们的 TX/Rx 引脚对不在 SCIA 引导的接受列表中。 传输速度也很慢,因为基于 VS C++的串行闪存编程器中的 ReadFile()需要15ms 才能返回每个字节,即使波特率为115200也是如此。
解决方案的一部分是将3个闪存内核(3个而不是4个、因为我们不使用 CPU2)放置在 F28386的闪存中、然后复制到 RAM 并从 RAM 执行。 我不理解运行时设置等的复杂性、因此我必须提出一些愚蠢的问题。
每个内核项目都会生成一个.out 文件和多个目标文件。
Q1:是否可以将.out 文件从闪存复制到 RAM、然后运行?
我认为可能有效的另一种选择是使用来自每个内核项目的目标文件。 例如、flash_kernel_C28x_dual_ex1_c28x1工程会生成7个唯一对象。
问题2:能否在段中像这样指定目标文件? 当然、需要一个复制例程。
部分
{
(笑声)
flashKernelCPU1:>> FLASH5 | Flash6、运行>> RAMM1
{
FLASH_kernel_C28x_dual_ex1_sci_flash_kernel_cpu1.obj
FLASH_kernel_C28x_dual_ex1_sci_get_function_cpu1.obj
}
(笑声)
}
Q3:如何确定加载、运行和起始地址(函数 main()被剥离)?
我在 TI 文档中看到的另一种链接方法是使用输入段“.TI.ramfunc”来连接需要不同加载和运行地址的代码。
问题4:要使用此概念、是否需要在这些项目中使用以下类似的功能来预处理数十个功能:
#pragma CODE_SECTION (ldfuLoad、".TI.ramfunc")?
我们非常感谢您提供的任何帮助或建议、因为我非常期待提供此解决方案。
谢谢、
John