我正在 Tc387
开发板上开发引导加载程序。应用程序通过引导加载程序主机编程到 Tc387 triborad 后,程序 CAN 不会跳转到0x80020000。我的JumpToMainApp函数代码如下,无论地址(Diagnosis_Mirror.MainAppEntryAddress)是0x80020000还是0x80020020或0xA0020000或0xA0020020, CAN 都不能跳转到APP。
void(*mainAppentryFunctrion)(voi
void jumptoMainApp (void)
{
布尔中断状态;
mainAppentryFunc
tion = (void (*) (void)) diagnosis_mirror.mainappentryAddress;disgput
12 ();//rameTimersConders中断,防范跳跃到应用程序发未知中断状态 = ifxcpu_disableIntructrupts ();frame.id = 0x703;frame.length = 4;frame.data [3]
= diagnosis_mirror.mainappentryAddress 0xff;frame.data [2]
= (diagnosis_mirror.mainappentryAddress 0xff00) 8; frame.dat a [1] > >
= (diagnosis_mirror.mainappentryAddress 0xff0000) 16;frame.dat a [0] > >
= (diagnosis_mirror.mainappentryAddress 0xff000000) > > 24;
//can_txData (0,Fr ame);//ifx_ssw_ asm (ji A0);if (interruptState == TRUE)}
__setAddressReg(A0,0xA0020000);
// __ " "
{
CAN_TxData(0, Frame);
// __asm("ja (0xA0020020)");
//MainAppEntryFunction();
(*MainAppEntryFunction)();
}
UDS 11 服务后,主板将重置。 程序 CAN 不会跳转到0xA0020000。 程序已运行到 JumptoMainApp。 0x703 CAN发送CAN ID。但是软件还没有跳转到APP。
我的引导加载程序和应用程序项目都使用了 Tasking。 Lsl 文件如下所示。
CAN 你帮我找到这个问题的原因吗?