uC-OS2 V2.93 STM32L476 移植: システム移植

序文

  • 前回の記事では、STM32L476RGのベアメタルプロジェクトを でSTM32CubeMXビルドしNUCLEO-L476RGuC-OS2 V2.93のソースコードをダウンロードしてシステム移植を開始しました。

開発環境

  • win10 64ビット

  • Keil uVision5、MDK V5.36

  • uC-OS2 V2.93

  • 開発ボード:NUCLEO-L476RG、MCUはSTM32L476RG

  • STM32CubeMX 6.9.1、STM32 のベアメタル プロジェクトの生成に使用

uC-OS2 ディレクトリクリッピング

  • まず、Git 経由でクローンした uC-OS2 のディレクトリ全体を STM32 プロジェクトにコピーします。

ここに画像の説明を挿入

  • uC-OS2 コードのカットを開始し、最初に他のプラットフォームのポート ファイルを削除して、uC-OS2\Ports\ARM-Cortex-M\ARMv7-M

  • uC-OS2 に含まれるディレクトリを含める場合は.git削除することもできますが、もちろん Git サブモジュールの管理も考慮することもできます

ここに画像の説明を挿入

  • 使用していないTLSと を削除するTraceと、uC-OS2 のコード ディレクトリは次のようになります。

ここに画像の説明を挿入

uC-OS2 を Keil MDK5 プロジェクトに追加

  • 現在 Keil MDK5 プロジェクト管理を使用しており、そのディレクトリ下に 3 つのuC-OS2 Port Cfgディレクトリをそれぞれ追加し、ソース ファイルを追加すると、コード リストは次のようになります。uC-OS2

  • を追加するとコンパイルの再定義が発生するため、追加する必要はありませんucos_ii.c。このファイルを確認すると、C のソース ファイルが直接含まれていることがわかります。

  • 追加しないように注意してください。追加しないと、os_dbg_r.cポートの下のos_dgb.c再定義に従います。

ここに画像の説明を挿入

構成ヘッダー ファイルへのパス

  • 次のパスを Keil MDK5 プロジェクトに追加します。

  • ..\uC-OS2\Source

  • ..\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM

  • ..\uC-OS2\Cfg\Template

ここに画像の説明を挿入

コンパイルの問題を修正する

  • 直接コンパイルすると、定義する必要があるマクロが 2 つあることがわかります:CPU_CFG_KA_IPL_BOUNDARYCPU_CFG_NVIC_PRIO_BITS

  • uC-OS2\Cfg\Template\app_cfg.hこれら 2 つの [マクロ定義] を次のように変更して追加します。

#ifndef CPU_CFG_KA_IPL_BOUNDARY
#define CPU_CFG_KA_IPL_BOUNDARY             4u
#endif

#ifndef CPU_CFG_NVIC_PRIO_BITS
#define CPU_CFG_NVIC_PRIO_BITS              4u
#endif

ここに画像の説明を挿入

  • 上記の操作を行うと、基本的に uC-OS2 V2.93 が STM32L476 に移植されます。次に、uC-OS2 が正常に動作するかどうかを確認するためのいくつかのタスクを作成します。

まとめ

  • この記事では、Keil MDK5 をベースにして STM32L476 プラットフォームに移植された uC-OS2 V2.93 の動作を記録することに注目します。主にプロジェクトの構築、プロジェクトにコードを追加します。

  • Keil MDK5 のベアメタル プロジェクトのおかげで、uC-OS2 の追加は比較的スムーズに行えます。ソース ファイルを追加し、uC-OS2 のヘッダー ファイルのパスを設定し、必要な 2 つの[マクロ定義]を定義すると、正常にコンパイルされました。

  • 次に、ユーザーのタスクを記述し、uC-OS2を実行させ、[デバッグ]プロジェクトを使用してuC-OS2をデバッグし、uC-OS2の起動処理、タスクの切り替え、各モジュールのワークフローを理解します。

おすすめ

転載: blog.csdn.net/tcjy1000/article/details/132071966