文章目录
前言
上一篇文章介绍了S32K324 UDS Bootlodaer开发中的UDS相关的更改,本文总结一下调试过程中出现的一些问题,及解决方案
本文参考NXP官网的S32K324 UBL,其中有一些Bug,也有一些和上位机不兼容的地方,在本文进行修改
注意:该booloader不适用于量产,只适用与个人学习。
校验算法
需要保证APP,Bootloader,上位机三者的校验算法保持一致,之前出现过APP校验算法和boot不一致导致Boot_IsInfoValid函数验证失败,此处我们采用CRC32校验
static void CreatSoftwareCrc32 (const uint8 *i_pDataBuf, const uint32 i_dataLen, uint32 *m_pCurCrc)
{
uint32 index = 0u;
*m_pCurCrc = 0xFFFFFFFF;
for (index = 0u; index < i_dataLen; index++)
{
*m_pCurCrc = (*m_pCurCrc << 8) ^ crc32_table[((*m_pCurC