Tc387ブートローダー CAN APPにジャンプしません

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

      私はTc387開発ボードでブートローダーを開発しています。アプリがブートローダーホストコンピューターによってTc387トライボラッドにプログラムした後、プログラムは0x80020000にジャンプ CAN ません。私のJumpToMainApp関数コードは、アドレス(Diagnosis_Mirror.MainAppEntryAddress)が0x80020000でも0x80020020でも0xA0020000でも0xA0020020でも、APPにジャンプ CAN ません。

void (*MainAppEntryFunction)(void);

void JumpToMainApp(void)
{
ブール割り込み状態;
MainAppEntryFunction = (void(*)(void))Diagnosis_Mirror.MainAppEntryAddress;
DisGPT12();关定时器中断,防止跳到应用程序触发未知中断问题
割り込み状態 = IfxCpu_disableInterrupts();
Frame.id = 0x703;
フレームの長さ = 4;
フレームデータ[3] = Diagnosis_Mirror.MainAppEntryAddress & 0xff;
フレームデータ[2] = (Diagnosis_Mirror.MainAppEntryAddress & 0xff00) >> 8;
フレームデータ[1] = (Diagnosis_Mirror.MainAppEntryAddress & 0xff0000) >> 16;
フレームデータ[0] = (Diagnosis_Mirror.MainAppEntryAddress & 0xff000000) >> 24;
CAN_TxData(0,&フレーム);
Ifx_Ssw___setAddressReg(A0,0xA0020000);
    // __asm("ji A0");
if(interruptState == TRUE)
    {
        CAN_TxData(0,&Frame);
       // __asm("ja (0xA0020020)");
      //MainAppEntryFunction();
       (*MainAppEntryFunction)();
     }
}

UDS 11 サービスの後、ボードがリセットされます。 プログラム CAN 0xA0020000にジャンプしません。 プログラムはJumpToMainAppに実行されました。 CAN ID 0x703 CAN 送信します。 しかし、ソフトウェアはAPPにジャンプしていません。

私のブートローダーとアプリプロジェクトはタスクです。 LSLファイルは以下の通りです。

       この質問の原因を見つけるのを手伝ってくれCAN?

0 件の賞賛
4 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、デバッガーはありますか? を呼び出した後はどうなりますか?

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
    // Ifx_Ssw___setAddressReg(A0,0xA0020000);
    // __asm("ji A0");

CAN構造とFrame構造を利用する前に、これらの2行のコードをテストしていただけますか?

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、UDEデバッガーを使用すると、UDEでリセットをポイントした後、プログラム CAN 0xA0020000にジャンプします。

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
Ifx_Ssw___setAddressReg(A0,0xA0020000);
__asm("ji A0");

こんにちは、これは役に立たない。 リセット後、プログラムはAPP(0xA0020000)にジャンプしません。

0 件の賞賛