この記事は [ Wild Fire EmbedFire ]「RT スレッド カーネルの実装とアプリケーション開発の実践 - STM32 に基づく」を参照しており、個人的な学習メモとしてのみ使用されます。さらに詳しい内容と手順については、原文をご覧ください (Wildfire Information Download Center からダウンロードできます)。
目次
1. STM32 ベアメタル プロジェクト テンプレートを入手します。
2. RT-Thread Nano ソース コードをダウンロードする
4. RT-Thread ソース コードをプロジェクトに追加します
5. RT-Thread ヘッダー ファイルのパスを指定します
3. 元のシステム クロック設定関数の呼び出しをシールドし、このチップに対応するシステム クロック設定を後で追加します。
1. STM32 ベアメタル プロジェクト テンプレートを入手します。
Wildfire の情報から STM32 ベアメタル プロジェクト テンプレートをコピーします。私のチップ モデルは STM32F103VET6 (ガイド)です。ファームウェア ライブラリのプロジェクトを使用して、プロジェクト テンプレートとして LED ライト実験を点灯します。
2. RT-Thread Nanoソース コードをダウンロードする
リンク: Arm Keil | RealThread RT-Thread
最新バージョンをダウンロードするだけです
3. RTスレッドパッケージをインストールする
4. RT-Thread ソース コードをプロジェクトに追加します
プロジェクトにboard.cファイルとrtconfig.hファイルを追加します。
新しい rtt/source グループと rtt/ports グループを作成します
RT-Thread 下の src ファイルを rtt/source に追加します。
私の開発ボードのモデルは M3 シリーズなので、RT-Thread->libcpu->ARM->cortex-m3 フォルダー内の context_rvds.S と cpuport.c を rtt/ports に追加します。
最終的な結果は図のようになりますが、ファイルに小さなキーが含まれている場合は、読み取り専用を解除してプロジェクトを再度開きます。
5. RT-Thread ヘッダー ファイルのパスを指定します
6. rtconfig.h を変更します。
7.board.cを変更する
1.「board.h」ヘッダーファイルを追加します
2. システムクロックの設定機能をシールドする
3. 元のシステム クロック設定関数の呼び出しをシールドし、このチップに対応するシステム クロック設定を後で追加します。
8. コンパイル
コンパイル後、定義の繰り返しが原因で 3 つのエラーが表示されます。
解決策は、Usr/stm32f10x_it.c
内部の 3 つの関数すべてにアノテーションを付け、コンパイルして実行すれば成功します。