RT スレッドを STM32 にポート

この記事は [ Wild Fire EmbedFire ]「RT スレッド カーネルの実装とアプリケーション開発の実践 - STM32 に基づく」を参照しており、個人的な学習メモとしてのみ使用されます。さらに詳しい内容と手順については、原文をご覧ください (Wildfire Information Download Center からダウンロードできます)。

目次

1. STM32 ベアメタル プロジェクト テンプレートを入手します。

2. RT-Thread Nano ソース コードをダウンロードする

3. RTスレッドパッケージをインストールする

4. RT-Thread ソース コードをプロジェクトに追加します

5. RT-Thread ヘッダー ファイルのパスを指定します

6. rtconfig.h を変更します。

7.board.cを変更する

        1.「board.h」ヘッダーファイルを追加します

        2. システムクロックの設定機能をシールドする

        3. 元のシステム クロック設定関数の呼び出しをシールドし、このチップに対応するシステム クロック設定を後で追加します。

8. コンパイル


1. STM32 ベアメタル プロジェクト テンプレートを入手します。

Wildfire の情報から STM32 ベアメタル プロジェクト テンプレートをコピーします。私のチップ モデルは STM32F103VET6 (ガイド)です。ファームウェア ライブラリのプロジェクトを使用して、プロジェクト テンプレートとして LED ライト実験を点灯します。

2. RT-Thread Nanoソース コードをダウンロードする

リンク: Arm Keil | RealThread RT-Thread

 最新バージョンをダウンロードするだけです

3. RTスレッドパッケージをインストールする

.pack ファイルをダウンロードしたら、直接インストールします。インストール パスを覚えておいてください。後で RT-Thread のソース コードをそのパスにコピーする必要があります。

4. RT-Thread ソース コードをプロジェクトに追加します

以下に示すように、先ほどのパスから、RT-Thread フォルダーをベア メタル プロジェクトのルート ディレクトリにコピーします。
board.c と rtconfig.h を user/ ディレクトリにコピーします。

 

プロジェクトに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. 元のシステム クロック設定関数の呼び出しをシールドし、このチップに対応するシステム クロック設定を後で追加します。
SysTick初期化関数は 、ファームウェア ライブラリ ファイル core_cm3/4/7 の SysTick_Config() 関数に置き換えられました。

8. コンパイル

コンパイル後、定義の繰り返しが原因で 3 つのエラーが表示されます。

 

 解決策は、Usr/stm32f10x_it.c内部の 3 つの関数すべてにアノテーションを付け、コンパイルして実行すれば成功します。

おすすめ

転載: blog.csdn.net/weixin_51244415/article/details/131592179