親愛なるNXPサポートチームへ、
現在は NXP Layerscape LX2080Aプロセッサ を使い、 CodeWarrior Development Studioを使ってベアメタル環境でアプリケーションを開発しています。
以下の内容について、入手可能な資料、参考プロジェクト、またはサンプルコードがあればご提供いただきたいです。
私の目的は、オペレーティングシステムなしでベアメタルアプリケーションを開発・デバッグすることです。参考資料やサンプルプロジェクトがあればぜひ教えてください。
役員情報:
このユースケースにおすすめのドキュメント、リポジトリ、トレーニング・マテリアル、コミュニティリソースがあれば教えてください。
サポートありがとうございます
サイ・チャンドゥ
こんにちは、
QorIQ LSシリーズARMv8用のCodeWarriorをインストールすると、以下の 文房具や例プロジェクト がIDE上で直接利用可能です。
場所:
この例には以下が含まれます。
start.S )exceptions.c 、exceptions.S )___DDR_ADDRESS 、 ___MEMORY_SIZE 、 ___CORE_NUMBERを含むリンカースクリプトマルチコアに関するヒント(LX2160A/LX2080A):コア0とコア1以外のコアで実行するには、
LX2160A_RDBターゲット接続を複製し、追加する各コアに対して適切なCORE_CONTEXTとSAP_CORE_CONTEXTを使用してターゲット初期化ファイルを変更します。セカンダリコアのDDR/PHY再初期化を無効にします。
場所: {CW_ARMv8}\ARMv8\CodeWarrior_Examples\
UART_C_Static_Lib_Bare — UARTポートを通じたprintfサポート(注:このライブラリはLSシリーズUARTを対象としており、LX2160A/LX2080Aは異なるUARTコントローラを使用しています — 下記の注釈参照) simrdimon.specs を uart.specs に置き換える LX2080Aの場合、ベアメタル環境でのDDR初期化はLX2160Aと同じ手順で行われます。
ddr_init.c生成に使用されます。 fip_ddr.bin )XSPIフラッシュの0x00800000番地に配置する必要があります。 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コントローラは、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設計と互換性があります):
コミュニティナレッジベース記事: リアルタイムエッジソフトウェアにおけるベアメタルフレームワークに基づくアプリケーション開発
よろしくお願いします。