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.

[参考译文] TM4C1294NCPDT:引导加载程序 CRC32

Guru**** 2507445 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1434659/tm4c1294ncpdt-bootloader-crc32

器件型号:TM4C1294NCPDT

工具与软件:

大家好、我已经在引导加载程序中启用了 CRC32检查、之后我 注意到了我的问题。

我已经添加了16字节标头并添加了标记字、计算了 CRC32值 binpack 可执行文件。

我注意到的第一个问题是这个

    pui32App = (uint32_t *)APP_START_ADDRESS;
    if((pui32App[0] == 0xffffffff) ||
       ((pui32App[0] & 0xfff00000) != 0x20000000) ||
       (pui32App[1] == 0xffffffff) ||
       ((pui32App[1] & 0xfff00001) != 0x00000001))
    {
        return(1);
    }


由于标头位于二进制的顶部,因此该代码将始终返回1 (标记字: 0xFF01FF02和 0xFF03FF04 )。

在我更改此代码后  

    pui32App = (uint32_t *)APP_START_ADDRESS;
    if((pui32App[4] == 0xffffffff) ||
       ((pui32App[4] & 0xfff00000) != 0x20000000) ||
       (pui32App[5] == 0xffffffff) ||
       ((pui32App[5] & 0xfff00001) != 0x00000001))
    {
        return(1);
    }






它已通过 CRC32检查、但我的代码未启动。

我需要做更多的修改吗 ?