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.

[参考译文] LP-AM243:SMEK

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1391854/lp-am243-smek

器件型号:LP-AM243

工具与软件:

您好!

为了测试加密/解密、我使用 gen_keywr_cert.sh -g 创建了一个新的 SMEK。
我使用该 smek 构建"hello_world"、并创建了"hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage.hs"。
我想使用 SBL UART 启动创建的 appimage、并检查 appimage 是否无法启动、但运行"uart_bootloader.py"时发生了错误。
我期望引导加载程序中出现错误、但这是正确的过程吗?

我做了什么错了吗?

1.创建密钥使解密失败
gen_keywr_cert.sh -g

2.将 smek.key 转换为 smek.txt
xxd -p -c 10000 smek.key | tr -d $\n'> smek.txt

3.编辑 devconfig.mk
#CUST_MEK=$(signing_tool_path)/custMek_am64x_am243x.txt
 CUST_MEK=$(signing_tool_path)/smek.txt

4.构建 hello_world

5.使用 SBL UART 进行引导

C:\ti\mcu_plus_sdk_am243x_09_02_01_05\tools\boot>python uart_bootloader.py -p COM4 --bootloader=../../../../Users/hasinoguti/workspace_v12/sbl_uart_am243x-lp_r5fss0-0_nortos_ti-arm-clang/sbl_uart.Debug.hs.tiimage --file=../../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage.hs
正在发送 UART bootloader ..UART /../../../Users/hasinoguti/workspace_v12/sbl_uart_am243x-lp_r5fss0-0_nortos_ti-arm-clang/sbl_uart.Debug.hs.tiimage……
已发送引导加载程序../../../../Users/hasinoguti/workspace_v12/sbl_uart_am243x-lp_r5fss0-0_nortos_ti-arm-clang/sbl_uart.Debug.hs.tiimage、大小为330996字节、时间为31.0667002秒。

正在发送应用程序../../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage.hs ...
正在发送../../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.apSending
/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.apSending
/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.apSending
/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.apSending
/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.apSending
/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.ap

已发送大小为104372字节的应用程序/../../../Users/hasinoguti/workspace_v12/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang/Debug/hello_world_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage.hs (10.8174202s)。
[STATUS]错误:应用程序加载失败!!!

此致、
Yukinobu

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

    尊敬的 Yukinobu:

    [status]错误:应用程序加载失败!!

    此错误不源自"uart_bootloader.py"脚本。 相反、接收到 appimage 后 SBL_UART 返回一个错误响应、表示由于某种原因、它无法加载接收到的 appimage。

    在这里、原因主要是身份验证失败。

    由于 SBL_UART 通过 UART0接收映像、因此默认情况下会禁用 UART 日志记录。 但是、您可以通过 UART1实例在 SBL_UART 中启用 UART 日志记录、如下所示

    然后、使用以下补丁、您应该会在 MAIN_UART1端口上看到"Authentication Failed"消息。

    diff --git a/source/drivers/bootloader/bootloader.c b/source/drivers/bootloader/bootloader.c
    index 3aa46db1..aad3608f 100644
    --- a/source/drivers/bootloader/bootloader.c
    +++ b/source/drivers/bootloader/bootloader.c
    @@ -666,6 +666,12 @@ int32_t Bootloader_parseMultiCoreAppImage(Bootloader_Handle handle, Bootloader_B
                 status = SystemP_SUCCESS;
             }
     
    +        if(status == SystemP_SUCCESS) {
    +            DebugP_log("Authentication passed\r\n");
    +        } else {
    +            DebugP_log("Authentication failed\r\n");
    +        }
    +
             if(SystemP_SUCCESS == status)
             {
                 memset(&mHdrCore[0], 0xFF, BOOTLOADER_MAX_INPUT_FILES*sizeof(Bootloader_MetaHeaderCore));

    此致、

    Prashant