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.

[参考译文] TMS320F280049:有关 serial_flash_programmer 的问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1209495/tms320f280049-question-about-serial_flash_programmer

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

大家好、

我的客户正在使用 SCI 引导程序、计划根据 flashapi_ex2_sci_kernel 更改一些未成年人、并将其编程到闪存中作为自定义引导加载程序。

由于他们不熟悉主机软件的开发、因此我们正在研究能否利用 我们在 C2000WARE 中提供的 serial_flash_programmer。

在原始 serial_flash_programmer 中、我们需要首先将 MCU 置于 SCI 引导中、并在应用代码之后对 SCI 内核进行编程。

在我们当前的需求中、由于内核已经处于 CPU 中、因此我们只需要通过编程器对 app 进行编程。

 serial_flash_programmer 是否支持此类操作?  

此致、

布赖恩

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

    您好、Brian、

    serial_flash_programmer_appln 可执行文件支持器件上已存在的内核。 如果内核加载到该器件的闪存中、则可以使用 serial_flash_programr_appln.exe、这将绕过必须下载内核并为用户提供一组可使用的命令。  

    此致、

    查理

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

    尊敬的 Charles:

    很好,我尝试了一些测试,这里有一些小问题。

    我做了一个简单的 LED 闪烁测试、 从0X84000开始。

    如果 先加载原始 SCI_kernal、 然后使用  PLN_FLASH_programmer_aperial 下载测试用例。 代码可以成功下载、但编程后、如果我选择运行在命令器链接器中、并且输入地址为0x80040000、则代码无法成功分支至0x84000。

    但是,如果我在原始的 SCI_kernal 中做这个简单的修改,将 return ()更改为 LB 汇编命令。 然后我重复上述所有操作。 然后一切都能正常工作!

    问题:

    1.为什么 返回(EntryAddr)会 使 MCU 指向 EntryAddr 地址? 我不明白为什么从 C 语言的角度。

    2.如果我需要使用 LB 命令,我怎么能 LB 到一个可变地址而不是一个固定的地址?

    此致、

    布赖恩

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

    您好、Brian、

    要回答您的问题、请执行以下操作:

    返回(EntryAddr)对于 RUN_CPU1函数获取应用程序的入口地址并返回到 main 非常有用。 一旦我们返回到 flashapi_ex2_sci_kernel 文件、它应该具有与 LB '0x84000'相同的功能。  

    这就是为什么 return (EntryAddr)命令在问题1中很重要的原因,因为它允许 EntryAddr 更改。  

    谢谢。

    查理