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.

[参考译文] TMS320F28388D:使用 SSBL 更新 CPU1固件时出现问题

Guru**** 2604715 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1083222/tms320f28388d-problems-with-updating-cpu1-fw-using-ssbl

部件号:TMS320F28388D
“Thread:SysBIOS”中讨论的其它部件

大家好,

我正在使用 F28388D 进行产品开发。

我想使用 SSBL 更新 CPU1固件,我正在 CPU1中使用 SYS/BIOS,而用于 CPU1的 SSBL 是 BareMetal,我已分配

SBL 的闪光区1,2和3

Flash 扇区13用于模式选择->要了解我们是需要保持在程序模式还是引导模式,
       ——这样,该闪存扇区将使用自定义关键字读取和验证,以确定是否保持 SSBL 模式以更新通过 IPC 从 CM 核心通过以太网接收的 FW

剩余闪存扇区将分配给应用程序固件。

RAM 的分区方式也相应,SSBL 和应用程序固件将不会使用相同部分的 RAM。

取得的进展:

到目前 为止,我们能够擦除闪存扇区,通过 IPC <-以太网(CM)将应用程序固件总数写入闪存,并将所需关键字写入所需闪存扇区,以便应用程序固件发生跳转。

我们已确保在 SSBL 和应用程序固件中不会重新初始化外围设备。

问题陈述:

因此,每当我们在输入关键字后尝试从 SSBL 跳转到应用程序固件时,都会调用“__ASM(”LB 0x86000“);/*跳转到入口点*/

我看到执行在主程序开始之前就停止了。 主命令甚至无法执行。

我在拆分过程中进一步陷入僵局,发现执行在 startup.c 的->XDC_runruntime _startup_exec_e 函数中挂起

调试1:

我尝试在 Application FW 的.cfg 文件中添加启动挂钩配置,该文件添加了“Startup.resetFxn = Startup.reset;”,认为这会有所帮助,但没有帮助。

自从过去几周以来,一直在关注这个问题,你们能帮我解决吗? 如果需要更快的解决方案,我可以在个人消息中共享源代码。

谢谢,此致,

普拉奈。

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

    如果您使用 CCS 加载应用程序以进行闪存,然后在关机后从闪存启动应用程序,它是否按预期运行? 是否具体而言,当您尝试从 SSBL 加载并运行它时,您会遇到此问题?

    0x86000存储了什么? SYS/BIOS ti_SysBIOS_family_c28_f2838x_init_begin 部分?

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083222/tms320f28388d-问题-更新-CPU1-FW-Use-ssl/4009508#4009508]\n 如果您使用 CCS 加载应用程序以闪存方式加载应用程序并在闪存后按预期的电源循环运行应用程序? [/引用]

    是的,我忘了提到这是我们面临的另一个根本问题,我们怀疑这种情况没有发生,因为我们的《开始》讨论发生了变化。
    基本上,我们可以在调试模式下无缝运行,但一旦我们使用 CCS 闪存,然后重置/重新启动板,FW 就无法启动,无法确定要更改的位置和更改的内容。我们在.cfg 文件中进行了更改- Boot.loadSegment =“FLASH3 page = 0”; 但这也没有帮助。

    [引用 userid="123578" url="~/support/icros/c2000微控制器-组/CC2000 /f/c2000微控制器-论坛/1083222/tms320f28388d-问题-更新-CPU1-FW-Use-ssl/4009508#4009508]0x86000中存储了什么? SYS/BIOS ti_SysBIOS_family_c28_f2838x_init_begin 部分?

    在0x86000中,我们正在存储 CPU1应用程序固件的入口点,该入口点在.cmd 文件中提到。

    编辑1:

    我在这里有一个更新。

    每当我们尝试启动时,它都会尝试从 SSBL 跳到应用程序固件,在启动 main()之前,它会从已经存储在 RAM 中.data 部分的“rts2800_fpu64_eabi.lib”库中执行一些启动功能。 因此,它将找到并执行此 rtsc 库,并跳到 main()并开始执行。

    现在我们来讨论这个问题,如果我们在调试模式下运行,那么这件事就会起作用,但是当我们尝试使用 SSBL 刷新固件时,我发现 RAM 中的相应位置已填充 ITRAP,即: 无法找到启动函数。因此,它无法找到库位置,因此跳转到非法的 handler()。

    如果我的理解有误,请纠正我,并告诉我如何解决这个问题。

    普拉奈。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用用户名="457894" url="~/support/icros/c2000-icroms-group/c2f/c2000微控制器-forume/1083222/tms320f28388d-问题-更新-CPU1-fw-使用-ssbL/4009525#4009525"],我们正在0x86000中存储应用程序中提到的入口点[引用.CPU1]。

    最好也检查.map 文件,以确认您认为的0x86000的文件实际上位于该文件中。

    [引用 userid="457894" url="~/support/icros/c2000-icroms-group/c2f/c2000微控制器-forume/1083222/tms320f28388d- problems with -updating-CPU1-fw-usbl/4009525#4009525"],所以现在出现问题,如果我们正在尝试在相应的闪存模式下运行,例如在该模式下,请参阅在该模式下的调试,如果我们正在使用 SRAM,但在该模式下运行,则在该模式下。 无法找到启动函数。因此无法找到库位置,因此跳转到非法的处理程序()。

    您是否正在尝试在 RAM 初始化之前从 RAM 执行功能? 您是否能够将启动功能置于闪存而不是 RAM 中,或者在需要执行启动功能之前,执行从闪存复制到 RAM 中的模量?

    惠特尼