伙计们、
我再次提出另一个问题。
尝试通过 M3端的引导加载程序更新应用软件时、我遇到了有关应用软件生成的 Intel 十六进制格式的问题。
因此、在我的引导加载程序应用中、我使用 以下 API 一次对全部64位或8字节的数据进行编程。 其中 data_buffer 是指向我的8个字节数组的指针。
oReturnCheck = fapi_issueProgrammingCommand ((UINT32 *) flash_address、data_buffer、8、0、0、 Fapi_AutoEccGeneration);
来自应用程序项目生成的 Intel hex 文件的每一字节数据都将得到良好的编程、直到我到达以下两行:
044DA000200030B906
:204DA4004000400040058000400050004005900040000004005A000400070004005B0001B
当我解析第一行时、地址 I 窗体为0x00214DA0、数据 I 窗体为0x200030B9。 现在、由于我一次对8个字节进行编程、剩余的4个字节我写入0xFFFFFFFF 并传递 DATA_buffer。 该数据会得到很好的编程。
但是当我到达地址为0x00214DA4的第二行时, 我想、由于在上一步中对该地址执行了 ECC 检查、我将无法使用我要写入的数据覆盖0xFFFFFFFF、因此当我验证闪存部分时、我最终会进入错误状态。
下面是我的应用项目的"Memory"部分。 请注意、我将从0x0020C000开始应用闪存部分。
我能否得到一些提示,说明我应该在哪里进行更改,以便不会最终出现这种情况??
谢谢