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.

[参考译文] TMS570LS3137:引导加载程序在刷写2个不同的.bin 文件时未按预期工作

Guru**** 2618835 points

Other Parts Discussed in Thread: TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/784348/tms570ls3137-boot-loader-not-working-as-expected-for-flashing-2-different-bin-files

主题中讨论的其他器件:TMS570LS3137

ART 编号:TMS570LS3137

我正在使用  processors.wiki.ti.com/index.php/TMS570_Hercules_MCU_Bootloader 网页上的 TMS570LS3137引导加载程序参考示例。

要下载2个附加文件,

1)对于.bin 文件的初始值为0x00000000 (ApplicationFlashAreaDummy_With_initial_f零点.bin),其工作方式与预期一致,并完全下载文件,而不会出现任何错误。

2)但 对于具有除0x00000000以外的初始数据的.bin 文件(ApplicationFlashAreaDumin_not_hase_initial_f零点)、当处理器在 BL_FLASH_c 中的以下指令挂起时、无法下载(仅烧录8个字节、而失败)

    while (fapi_get_FSM_status!= fapi_Status_Success);

e2e.ti.com/.../8270.ApplicationFlashAreaDummy_5F00_not_5F00_having_5F00_initial_5F00_Zeros.7z

e2e.ti.com/.../1411.ApplicationFlashAreaDummy_5F00_with_5F00_initial_5F00_Zeros.7z

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

    我会检查并很快回来。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chandre、

    我看不到任何数据、除了从0x20000开始的闪存中为零(第一个屏幕截图)。 在将任何数据写入闪存之前、必须先擦除闪存。 擦除闪存内容后、其内容为0xFFFFFFFF。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,王先生,

    抱歉,这些图像没有完全解释,我更新了图像,更详细地解释了使用 TMS 570LS3137 CAN 引导加载程序时看到的故障。
    我已更新图像请查看图像。

    谢谢、
    Chandreshekar Kalvacherla
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这适用于使用此引导加载程序并发生故障的其他用户。
    我发现引导加载程序始终接受8个字节的倍数,如果.bin 文件在文件末尾有6个字节要写入,它是可以的,并按预期工作。
    如果.bin 文件的大小为8002字节、并且您开发了脚本以首次写入2字节、而不是下次继续写入8字节、则会发生故障




    while (bytes_ele> 0)

    fapi_issueProgrammingCommand ((uint32_t *) dst、
    (uint8_t *) src、
    (uint32_t)字节、 //应始终写入8个字节的倍数,不小于字节,除非 EOF
    0、
    0、
    Fapi_AutoEccGeneration);

    while (fapi_check_FSM_ready_busy =fapi_Status_FsmBusy);
    while (fapi_get_FSM_status!= fapi_Status_Success);

    src += bytes;//size_in_bytes;
    dst +=字节;//size_in_bytes;
    bytes_elee_ele= bytes;//size_in_bytes;
    if (bytes_elsage < 16){
    bytes = bytes_eles;