前言
上一篇文章介绍了S32K324 UDS Bootlodaer开发中的Bootloader软件,本文接着介绍UDS相关的更改。
本文参考NXP官网的S32K324 UBL,其中有一些Bug,也有一些和上位机不兼容的地方,在本文进行修改
注意:该booloader不适用于量产,只适用与个人学习。
UDS协议栈
初始化
除了时钟及其他必要模块的初始化之外,调用Boot初始化
void BOOTLOADER_MAIN_Init(void (*pfBSP_Init)(void), void (*pfAbortTxMsg)(void))
{
/*Is power on ?*/
if(TRUE == Boot_IsPowerOnTriggerReset())
{
Boot_PowerONClearAllFlag();
}
#ifndef EN_DELAY_TIME
/*Check jump to APP or not.*/
Boot_JumpToAppOrNot();
#endif
/*User Init: clock CAN Lin etc..*/
if(NULL_PTR != pfBSP_Init)
{
/*do BSP init*/
(*pfBSP_Init)();
}
BOOTLOADER_DEBUG_Init();
if(TRUE != CRC_HAL_Init())
{
APP_DebugPrintf("CRC_HAL_Init failed!\n");
}
WATCHDOG_HAL_Init();
TIMER_HAL_Init();
TP_Init();
if(TRUE != F