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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、私はリンカファイルに取り組んでいます。 私はこのようなグループを持っています:

グループ XYZ (順序付き、run_addr = mem:mpe:pspr0、コピー)

{

「.text.xyz」を選択します。

}このPSPRセクションにコードを配置しようとしていますが、次のようなリンカエラーが発生します:ltc E121:relocation error in "task1":relocation value 0x80225c20、type rel24またはabs24、offset 0x10、section ".text.アドレス 0x7010028c の CPU1_CODE" は、R_TRICORE_24REL で有効なアドレスではありません。 ヒント: mapfile で、このアドレスを占有するセクションを確認してください。

ltc F019: リカバリー不能なエラー: 致命的な位置特定エラー。 誰かがこれを解決するのを手伝ってもらえますか?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/td-p/665006

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

これはクーモンの問題です。 FAQをご覧ください。

タスク TriCore™ ツールリンカーエラーE121を軽減する方法
https://resources.tasking.com/tasking-whitepapers/how-to-mitigate-the-tasking-tricore-tools-linker-e...

使用例:

E121 エラー: 関数が 2 MB のセグメント オフセットより上のアドレスから始まる別のセグメントで呼び出された場合

あなたの状況を説明します。

PSPR0 メモリで初期化されたコードを実行しており、このコードはセグメント 0x8 の最初の 2MB より上にある pflash0 メモリ内の関数を呼び出します。 これには、間接的な呼び出しまたはベニヤ セクションの使用が必要です。

呼び出し先関数の名前は、マップ ファイルの内容を確認することで判断できます。 アドレス 0x80225c20 のシンボルは、グローバル関数の場合、関数名を開示する必要があります。呼び出し元モジュールでこの関数の関数宣言を調整し、__indirect キーワードを追加して、コンパイラに間接関数呼び出しを強制的に発行させることができます。

呼び出し元の関数名はアドレス 0x7010027c にあります。 これは0x7010028c重要な呼び出しが関数コード セクション内の 0x10 バイト オフセットに表示されるため、0x10 を差し引いた値です。

よろしくお願いいたします

ウルリッヒ・クロイド
タスキングツールのサポート

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/m-p/665408

元の投稿で解決策を見る

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

こんにちは @User13836

 

ここで手伝ってくれませんか?

 

よろしくお願いいたします

アヌパマ。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/m-p/665248

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

これはクーモンの問題です。 FAQをご覧ください。

タスク TriCore™ ツールリンカーエラーE121を軽減する方法
https://resources.tasking.com/tasking-whitepapers/how-to-mitigate-the-tasking-tricore-tools-linker-e...

使用例:

E121 エラー: 関数が 2 MB のセグメント オフセットより上のアドレスから始まる別のセグメントで呼び出された場合

あなたの状況を説明します。

PSPR0 メモリで初期化されたコードを実行しており、このコードはセグメント 0x8 の最初の 2MB より上にある pflash0 メモリ内の関数を呼び出します。 これには、間接的な呼び出しまたはベニヤ セクションの使用が必要です。

呼び出し先関数の名前は、マップ ファイルの内容を確認することで判断できます。 アドレス 0x80225c20 のシンボルは、グローバル関数の場合、関数名を開示する必要があります。呼び出し元モジュールでこの関数の関数宣言を調整し、__indirect キーワードを追加して、コンパイラに間接関数呼び出しを強制的に発行させることができます。

呼び出し元の関数名はアドレス 0x7010027c にあります。 これは0x7010028c重要な呼び出しが関数コード セクション内の 0x10 バイト オフセットに表示されるため、0x10 を差し引いた値です。

よろしくお願いいたします

ウルリッヒ・クロイド
タスキングツールのサポート

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/m-p/665408

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

@User13836

はい、同意します、この解決策は機能します。 しかし、このような関数がたくさんあり、PFLASHによって呼び出されている場合はどうでしょうか。 これらすべての関数に__indirectキーワークを追加し続ける必要があり、ソースコードの変更につながりますか?

大きな変化を避けるために従うことができるアプローチはありますか?

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/m-p/669536

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

256MBセグメントの2MBオフセットの外側にあるRAMで実行される関数から呼び出された関数が多数ある場合、この状況に対処するには3つのアプローチがあります。

1) 呼び出されたすべての関数がフラッシュ メモリ セグメントの最初の 2 MB 内にあることを確認します。 次に、呼び出し先の機能コードを含むすべてのセクションが選択され、このグループが次のようなセグメントの最初の 2MB 内に配置する必要があるリンカー LSL グループを定義する必要があります。

グループCALLED_FROM_RAM (順序付け、run_addr=[0x80000000..0x801FFFFF])
{
    select ".text.";
    select ".text.";
    select ".text.";
}

2) TASKING TriCore™ tools v6.3r1 を使用している場合は、リンカオプションを追加できます

--long-branch-veneers (長枝ベニヤ)

次に、リンカーは、256 MB セグメントの最初の 2MB 内に配置されるベニヤ セクション (トランポリン セクション) を作成し、このトランポリンは、この範囲外にある関数へのジャンプを含みます。

3) C コンパイラ オプションを適用する

--インダイレクト

その後、C コンパイラは常に間接関数呼び出しを使用します。 ただし、これは、間接関数呼び出しが不要なときにも使用することを意味し、間接関数呼び出しには 1 つではなく 2 つのアセンブリ命令が必要なため、パフォーマンスが低下し、コード サイズが大きくなります。

 

よろしくお願いいたします

ウルリッヒ・クロイド
タスキングツールのサポート

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/ltc-E121-relocation-error-in-quot-task1-quot-relocation-value-0x80225c20-type/m-p/672343

0 件の賞賛