TM4C1294的FLASH读写问题

你好,请教一下,我现在做在线升级功能,这个更新的文件字节大小不是4的倍数,而FlashProgram(uint32_t *pui32Data, uint32_t ui32Address, uint32_t ui32Count)这个函数地址和字节数都必须是4的倍数,请问这个要怎么解决呢?

  • 我会在测试后给您回复
  • 这取决于开始编程之前闪存中的内容。

    假设您从字边界开始,但需要编程6个字节。用两个字节的0xFF填充缓冲区,并编程8个字节。

    若是您再想向数组中再添加6个字节,但要从最后一个有效数据的末尾开始。则需要首先读取包含最后两个数据字节和两个字节0xFF的字。在新缓冲区前添加前一个数据的后两个字节,后跟新的6个字节。从地址偏移量4开始将8个字节编程到闪存阵列中。

    编程时,只能将1变为0。在同一位置编程相同的值不会影响数据。将字节编程为0xFF的值将使其保持不变。