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.

[参考译文] TMS320F280025C:CAN 的引导加载程序(带加密功能)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1113301/tms320f280025c-bootloader-for-can-with-encryption

器件型号:TMS320F280025C
主题中讨论的其他器件: LAUNCHXL-F280025CC2000WARE

您好!

我在评估板 LAUNCHXL-F280025C 上使用 TMS320F280025C、目前为止一切都正常。

现在、我需要一个引导加载程序、在该程序中、我可以通过 CAN 在现场进行一些固件更新。 现在我已经挂断了

查找 F280025C 的引导加载程序示例(未加密且通过 UART/SCI 进行加密)、因为 中根本没有示例(甚至没有闪烁的 LED)  

F280025C 的 C2000Ware_4_00_00_00 SDK 文件夹。  

您是否在某个位置通过串行接口提供引导加载程序示例? 能否从应用程序触发引导加载程序而不是使用 GPIO 引脚?

我能否捕获数据并手动将其提供给引导加载程序、以便我可以事先进行说明?

我已经在 STM32控制器上做过很多次了、在那里可以获得令人惊叹的支持。 希望您可以提供类似的内容。

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

    您可以从应用程序调用引导加载程序 API。但我将完成到 RAM 的完整传输、然后返回。因此、您无法并行进行解密。

    C2000ware 中提供了使用 SCI 来使用引导加载程序的示例- C:\ti\c2000Ware_4_01_00_00_new\driverlib\f28002x\examples\fflash  

    TRM 中的"4.8使用引导加载程序的应用手册"部分可能会有所帮助。

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

    谢谢、这是非常有益的。 因此、借助应用闪存 API、我可以 通过我选择的通信接口接收加密的数据包、并始终将解码 后的数据包作为 RAM 的整个扇区进行闪存。  

    我目前不确定的是、如何 从引导加载程序本身跳转到应用程序闪存地址。  尤其是我需要在链接器文件中更改什么?

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

    我发现、在示例 flash_kernel_ex3_sci_flash_kernel 中、flash_kernel_ex3_codestartbranch 中存在以下代码:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ;-----------------------------------------------
    ; ExitBoot
    ;-----------------------------------------------
    ;-----------------------------------------------
    ;This module cleans up after the boot loader
    ;
    ; 1) Make sure the stack is deallocated.
    ; SP = 0x400 after exiting the boot
    ; loader
    ; 2) Push 0 onto the stack so RPC will be
    ; 0 after using LRETR to jump to the
    ; entry point
    ; 2) Load RPC with the entry point
    ; 3) Clear all XARn registers
    ; 4) Clear ACC, P and XT registers
    ; 5) LRETR - this will also clear the RPC
    ; register since 0 was on the stack
    ;-----------------------------------------------
    ExitBoot:
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    当我在闪存扇区5刷写我的应用并启动此应用时、当 main 返回跳转地址时、它将运行代码、但在我重置控制器后、引导加载程序永远不会再次启动、它会立即跳转到该应用程序。 我是否可以在启动时始终运行引导加载程序? 为了实现这一点、我需要在.asm 文件中修改哪些内容?

    编辑:我认为我错了、引导加载程序似乎永远不会跳转到地址、它会以某种方式引导始终位于扇区5开始闪存地址的应用程序

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

    您不需要使用 asm 文件进行跳转。 您可以使用下面的示例等简单指令、并跳转至应用的起始地址。

    asm ("  lb 0x8EFF0");

x 出现错误。请重试或与管理员联系。