2400513_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2400513_ja-JP

2400513_ja-JP

S32K311 RTD 5.0 - リンカーエラー: .non_cacheable_bss.int_resultsとのオーバーフローおよび重複

こんにちは、NXP チームの皆様、

私は以下の環境を使用してS32K311プロジェクトに取り組んでいます。

  • MCU: S32K311

  • IDE: S32 Design Studio 3.6.7

  • RTD: S32K3_RTD_5.0.0_D2408_ASR_REL_4_7_REV_0000_20241002

  • AUTOSAR: 4.7

問題

当初、プロジェクトは順調にビルディングされていました。

プロジェクトが進むにつれて、ADC、eMIOS、LCU、ICU、PIT、PORT、LPUART、LPSPI、TRGMUX、MCLなど、いくつかのRTDドライバを有効化・設定し、アプリケーションに必要なその他のペリフェラルを活用しました。

これらのドライバを統合した後、プロジェクトはリンク段階で以下のエラーで失敗します。

.non_cacheable_bss will not fit in region 'int_sram_no_cacheable'

section .int_results overlaps section .non_cacheable_bss

region 'int_sram_no_cacheable' overflowed by 440 bytes

collect2.exe: error: ld returned 1 exit status

メモリレイアウト

デフォルトのリンカスクリプトには、以下のSRAM領域が含まれています。

int_sram              : ORIGIN = 0x20400000, LENGTH = 0x00003F00
int_sram_fls_rsv      : ORIGIN = 0x20403F00, LENGTH = 0x00000100
int_sram_no_cacheable : ORIGIN = 0x20404000, LENGTH = 0x00003B00
int_sram_results      : ORIGIN = 0x20407B00, LENGTH = 0x00000100
int_sram_shareable    : ORIGIN = 0x20407C00, LENGTH = 0x00000400

リンカーは、 .non_cacheable_bssがこのセクションは、割り当てられた int_sram_no_cacheable 領域を約440 バイト超過しています。

質問

  1. 複数のRTDドライバがS32K311で有効になっている場合、このメモリ使用は予想されますか?

  2. .non_cacheable_bssのサイズを減らすための推奨方法はありますか?

  3. リンカースクリプトを修正してint_sram_no_cacheable領域を増やすことは推奨されますか?もしそうなら、S32K311の推奨メモリ配置はどうなっていますか?

  4. キャッシュできないセクションに割り当てられるメモリを減らすRTDの設定オプションはありますか?

  5. 複数のRTDペリフェラルを統合する際に同じような問題に遭遇した方はいらっしゃいますか?

何かご助言や解決策をご提案いただければ大変ありがたいです。

よろしくお願いします。

Re: S32K311 RTD 5.0 - Linker error: .non_cacheable_bss overflow and overlap with .int_results

こんにちは、 @Esakkiさん

以下のディスカッションThreadは、似たような問題を扱い、有用なトラブルシューティングの提案を提供してくれるので役立つかもしれません。

さらに、S32K3のアプリケーションノートには、リンカーファイルやスタートアップコードについてより詳しく説明されており、メモリ領域の変更やカスタマイズ方法も含まれています。

AN14893 : S32K3xx リンカーファイルとスタートアップコード

この最後のThreadでは、コード最適化技術に関するいくつかの提案が含まれています。

S32K3xxでAPPのコードを最適化してパフォーマンスを向上させる方法


BR、VaneB

タグ(1)
評価なし
バージョン履歴
最終更新日:
2 週間前
更新者: