2405758_ja-JP

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

2405758_ja-JP

2405758_ja-JP

CodeWarrior Studioを使用したLX2080Aのベアメタルリファレンスコードとサンプルに関するリクエスト

親愛なるNXPサポートチームへ、

現在は NXP Layerscape LX2080Aプロセッサ を使い、 CodeWarrior Development Studioを使ってベアメタル環境でアプリケーションを開発しています。

以下の内容について、入手可能な資料、参考プロジェクト、またはサンプルコードがあればご提供いただきたいです。

  • LX2080A用のベアメタル起動コード
  • DDRの初期化、クロック、ペリフェラル
  • コアの起動とマルチコアの例
  • コンソール出力用のUARTドライバの例
  • GPIOとタイマーのプログラミング例
  • 割り込み処理の例
  • リンカースクリプトとメモリマップ構成
  • LX2080A上でのベアメタル開発に関するSDKsやアプリケーションノート、ドキュメントなど
  • LX080A向けに特化して開発されたCodeWarriorプロジェクトの例

私の目的は、オペレーティングシステムなしでベアメタルアプリケーションを開発・デバッグすることです。参考資料やサンプルプロジェクトがあればぜひ教えてください。

役員情報:

  • プロセッサー:NXP LX2080A
  • 開発環境:CodeWarrior開発スタジオ
  • アプリケーションタイプ:ベアメタル開発

このユースケースにおすすめのドキュメント、リポジトリ、トレーニング・マテリアル、コミュニティリソースがあれば教えてください。

サポートありがとうございます
サイ・チャンドゥ

Re: Request for Bare-Metal Reference Code and Examples for LX2080A Using CodeWarrior Studio

こんにちは、

CodeWarriorに組み込まれているサンプルプロジェクト

QorIQ LSシリーズARMv8用のCodeWarriorをインストールすると、以下の 文房具や例プロジェクト がIDE上で直接利用可能です。

ベアメタルプロジェクトの作成(新規プロジェクトウィザード)

  1. 新しい>ARMv8文具> CodeWarrior IDE →ファイルを開く
  2. 選択: ARMv8 > ベアボード > Hello World Cプロジェクト
  3. ベアメタルプロジェクトをビルドしてデバッグする

AMPマルチコアの例(HelloWorld_C_AMP_Bare)

場所: \CW_ARMv8\ARMv8\CodeWarrior_Examples\HelloWorld_C_AMP_Bare\

この例には以下が含まれます。

  • ベアメタル起動コード ( start.S )
  • 例外ハンドラ ( exceptions.cexceptions.S )
  • 設定可能な___DDR_ADDRESS___MEMORY_SIZE___CORE_NUMBERを含むリンカースクリプト
  • SMP/AMPマルチコアサポート

マルチコアに関するヒント(LX2160A/LX2080A):コア0とコア1以外のコアで実行するには、 LX2160A_RDBターゲット接続を複製し、追加する各コアに対して適切なCORE_CONTEXTSAP_CORE_CONTEXTを使用してターゲット初期化ファイルを変更します。セカンダリコアのDDR/PHY再初期化を無効にします。

図書館プロジェクト(再コンパイル用のソースコードあり)

場所: {CW_ARMv8}\ARMv8\CodeWarrior_Examples\

  • UART_C_Static_Lib_Bare — UARTポートを通じたprintfサポート(注:このライブラリはLSシリーズUARTを対象としており、LX2160A/LX2080Aは異なるUARTコントローラを使用しています — 下記の注釈参照)
  • セミホストI/OからUARTへの切り替えには、リンカーフラグで simrdimon.specsuart.specs に置き換える

DDR初期化

LX2080Aの場合、ベアメタル環境でのDDR初期化はLX2160Aと同じ手順で行われます。

  • QCVS DDRvツール(CodeWarriorに同梱)は、DDRの検証とddr_init.c生成に使用されます。
  • 生成されたコードは、ベアメタルのスタートアップやATFベースの初期化の参考として利用できます
  • DDR PHYファームウェア( fip_ddr.bin )XSPIフラッシュの0x00800000番地に配置する必要があります。
  • GPP DRAM領域#1は0x0000_8000_0000から始まります。領域#1を含める必要があります(DPAA/QMANの依存関係)。

リンカースクリプトのDDR設定例:

PROVIDE (___DDR_ADDRESS = 0x80000000);
PROVIDE (___MEMORY_SIZE = 0x1effffff);
PROVIDE (___CORE_NUMBER = 0);
PROVIDE (___START_RAM_ADDRESS = ___DDR_ADDRESS + ___CORE_NUMBER * ___MEMORY_SIZE);


LX2080AのUARTに関する重要な注意事項

LX2080A UARTコントローラは、LSシリーズプロセッサで使用されているPrimeCell UARTとは後方互換性がありません。内蔵の UART_C_Static_Lib_Bare ライブラリはLSシリーズUARTのみをサポートしています。UART出力LX2080Aには、LX2160A リファレンス・マニュアル UARTレジスタマップやSDK UARTドライバの例を参照して独自のドライバーを実装する必要があります。

LX2160A/LX2080AにおけるUARTに関するコミュニティリソース:


リアルタイムエッジソフトウェア(ベアメタルフレームワーク)

NXPの Real-Time Edgeソフトウェア には、LX2160ARDB-REV2用のベアメタルフレームワーク(LX2080A設計と互換性があります):

  • 低レイテンシシナリオ向けのU-Bootベースのベアメタルフレームワーク
  • GPIO、IPI、コア間通信の例を含む
  • 入手可能情報: Real-Time Edge Software

コミュニティナレッジベース記事: リアルタイムエッジソフトウェアにおけるベアメタルフレームワークに基づくアプリケーション開発

 

よろしくお願いします。

タグ(1)
評価なし
バージョン履歴
最終更新日:
火曜日
更新者: