工具与软件:
大家好、我已经在引导加载程序中启用了 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检查、但我的代码未启动。
是否需要更改调用应用值