Honmeng Hi3861 学習 12-Huawei LiteOS-M (osXX および LOS_XX)

1.LOS_XXとは何ですか

LOS_XX は、LiteOS_M または LiteOS_A カーネルによって提供されるインターフェイス        です例: LOS_TaskCreate、LOS_TaskCreate、LOS_SemCreate など。LiteOS_M と LiteOS_A は異なるカーネル用であるため、LOS_XX の実装も異なります。言い換えれば、LOS_XX は特定のカーネル タイプに関連しています

        ここではソース ファイルの場所についてのみ説明します。興味がある場合は、自分で調べてください。

        バージョン 1.0、LiteOS_M

code-1.0\kernel\liteos_m\kernel\base

         バージョン 1.0.1、LiteOS_M

code-1.0.1\L01\kernel\liteos_m\kernel\src

        バージョン 1.1、LiteOS_M

code-1.1.0\code-1.1.0\kernel\liteos_m\kernel\src

 2.osXXとは何ですか

        osXX は、osThreadNew、osTimerNew、osSemaphoreNew などのcmsis 標準インターフェイスです。

        これらの機能については以前の記事で詳しく紹介しているので、ここではあまり紹介せず、これらのファイルの場所だけを紹介しますので、興味のある方はご自身で調べてください。

        バージョン1.0

code-1.0\kernel\liteos_m\components\cmsis\2.0

        バージョン1.0.1

code-1.0.1\L01\kernel\liteos_m\kal\cmsis

 

        バージョン1.1.0

code-1.1.0\code-1.1.0\kernel\liteos_m\kal\cmsis

         cmsis_liteos2.c には、osXX のすべての関数の実装が含まれています

バージョン 1.0では、osMemoryXX 関連関数は cmsis ファイルに含まれておらず、定義されているだけで         あることに注意してくださいしたがって、バージョン 1.0 で osMemoryXX 関連関数を呼び出すと、コンパイル時にエラーが報告されます。

3. 二人の関係

       osXX は、実際には LOS_XX の上位レベルのカプセル化です前述したように、LOS_XX は LiteOS_M と Lite_OSA で異なります。実際、より多くのコアがあった場合、LOS_XX にはさらに異なる名前が付けられた可能性があります。開発者がさまざまなカーネルで開発および実行できるようにするために、osXX が誕生しました。

        たとえば、A コア システムに AOS_XX があり、B コアには BOS_XX、C コアには COS_XX があるとします。アプリケーション開発者が AOS_XX を呼び出すと、A コアでのみ実行でき、BOS_XX を呼び出すと、B コアでのみ実行できます。これにより、コア全体の複雑さが明らかに増加しますまた、アプリケーション開発者が osXX を呼び出した場合、A カーネル、B カーネル、および C カーネルがすべて osXX の実装を提供している限り、アプリケーション開発者は調整を行う必要がなく、A カーネル、B カーネル上で実行できます。 、および C カーネル システムを実行します

        注:バージョン 1.0 は cmsis 標準のみをサポートします。バージョン 1.0.1 以降、cmsis 標準および posix 標準をサポート

        バージョン1.0.1

code-1.0.1\L01\kernel\liteos_m\kal

         実際、osXX と LOS_XX の関係はコードからもわかります。ここでは osThreadNew 関数を例として取り上げます。まず、この関数の実体を見てください。

osThreadNew 関数のエンティティでは、タスクを作成するために        LOS_TaskCreate が実際に呼び出されていることがわかります

おすすめ

転載: blog.csdn.net/qq_26226375/article/details/130621092