RT-スレッド最強の研究ノートは、RT-スレッドはSTM32F103(ライブラリ)最も完全なチュートリアルに移植しました

 

:Iプロジェクトの移植の成功は、必要がある、私のリソースにアップロードされたがでダウンロードすることができhttps://download.csdn.net/download/qq_40831778/11862568

                                  ワン:はじめにRT-スレッド

1.RTスレッドのプロフィール

RTOSの初心者として、多分あなたはRT-スレッドに新しいです。しかし、連絡先の深化あなたと、あなたは徐々にRT-スレッドの魅力と様々な重要な利点を持つRTOSの他のタイプにその比較を見つけるでしょう。RT-スレッドは、組み込みリアルタイムオペレーティングシステムのメンテナンスチーム(RTOS)によって完全に先進国で完全に独立した知的財産権を有しています。降水量のほぼ12年後、物事の上昇に伴い、それは物事のオペレーティングシステムの強力かつ豊富なコンポーネントに進化しています。

2.RTスレッドの概要

名前が示すようにRT-スレッドは、基本的な属性の一つは、マルチタスクをサポートすることで、複数のタスクが同時に同じ時刻にプロセッサを実行できるようにすることは本当に意味するものではありません、それが埋め込まれたリアルタイムのマルチスレッドのオペレーティングシステムで、リアルタイム・スレッドの略タスクの数を実行します。実際に、中央プロセッサは、決定された優先度に基づいてスケジューラタスクスケジューラによって(非常に迅速なタスクとタスクスイッチとの間に、非常に短いの各タスクの実行時間ので、一度に一つのタスクを実行することができ同時に実行されている、一度に複数のタスクによって引き起こされる錯覚を与える現時点ではタスクの実行)、。RT-スレッドシステム、実現タスクのスレッドでは、RT-スレッドスレッドスケジューラは、上記のタスクスケジューラです。

RT-スレッドは、主に簡単に簡単に移植し、理解するために、C言語で書かれました。これは、オブジェクト指向の設計手法は、リアルタイムシステムの設計に適用され、エレガントなスタイルは、コード、明確なアーキテクチャ、モジュラーシステムを作り、非常によくカットすることができます。リソースに制約のマイクロコントローラ(MCU)のシステムの場合は、使いやすいツールを使用して、唯一の3キロバイトのフラッシュの必要性を切り出し、NANOバージョン1.2キロバイトのRAMメモリリソースが(NANO RT-スレッドが正式に2017年7月にリリースされましたミニマリストカーネルのバージョン);と物事デバイスの豊富な資源のために、RT-スレッドが急速モジュラー切断を達成するための直感的なシステム構成ツールを使用してオンラインのパッケージ管理ツールを使用することができ、シームレスにインポート機能が豊富なソフトウェアパッケージ、複雑な機能のグラフィカル・インターフェースとタッチスライド効果、Androidのに似たインテリジェントな音声対話効果を実装します。

Linuxオペレーティングシステムと比較して、RT-スレッド小型、低コスト、低消費電力、高速で起動し、ほかにも、リアルタイムRT-スレッドは非常に限られた資源(各種のための高い、小さなフットプリントなど、ありましたそのようなコスト、消費電力制限、等)アプリケーションなど。32ビットMCUは、その主オペレーティングプラットフォームであるが、実際には、MMUとの多くは、ARM9に基づいて、ARM11のCortex-AシリーズもレベルCPUのアプリケーションプロセッサはまた、特定のアプリケーションRTスレッドでの使用に適しています。

3.ライセンス契約

RT-スレッドシステムは、GPL V2 +オープンソースライセンス契約に従うことを完全にオープンソース、3.1.0およびそれ以前のバージョンです。バージョン3.1.0から以降はApacheライセンス2.0オープンソースライセンス、商用製品に無料でご利用に従う、と独自のコードのオープンを必要としません。

4.RTスレッドアーキテクチャ

近年では、モノのインターネット(モノのインターネット、IOT)という概念が広く普及し、ネットワーキング市場が活況を呈している、ネットワーク化組み込み機器は、傾向となっています。ソフトウェアの複雑さが大幅に増加するように、伝統的なRTOSカーネルは、市場のニーズを満たすことはますます困難になってきた端末のネットワークは、この場合には、物事のオペレーティングシステム(OSのIoT)の概念がされて入ってきました。物事のオペレーティングシステムは、ファイルシステム、および他のグラフィックスライブラリ、低消費電力、セキュリティ、通信接続プロトコルのサポートとドライブなどのより完全なミドルウェアコンポーネントを含む、ベース(RTOSやLinux、等であってもよい)オペレーティングシステムカーネルを指しソフトウェアプラットフォームは、 RT-スレッドはIoTをOSです。

主な相違点のFreeRTOSの他の多くの1つに記載のRT-スレッドRTOSは、のuC / OSは、それがあることを、さらに中間層の豊富な成分を含む、ちょうどリアルタイムカーネルではありません以下に示すように、。

RT-スレッド図・ソフトウェア・フレームワーク

これは、以下の部分を含みます:

  • コア層:RTスレッドカーネルは、システム内のカーネルオブジェクト、例えば、マルチスレッドおよびスケジューリング、セマフォ、メールボックス、メッセージキュー、メモリ管理、タイマーの実装を含む、RTスレッドのコアである。libcpu / BSP (チップ移植関連ファイル/ BSP)が密接にハードウェア、CPU及び周辺グラフト構築物によって駆動さに関連しています。
  • そしてコンポーネントサービス層:上部のソフトウェアコンポーネントは、仮想ファイルシステム、Finshコマンド・ライン・インターフェース、ネットワーク・フレーム、フレームやその他の機器として、RTスレッドのコアに基づいています。モジュラー設計、高度に凝集アセンブリの内部構成要素との間のように低い結合。
  • RT-スレッドパッケージ:RT-スレッドはオペレーティングシステムのプラットフォーム上で実行されているもの、異なるアプリケーションのための共通のソフトウェアコンポーネント、記述の情報源またはライブラリファイルから。RT-スレッドパッケージは、彼が公式に提供するために、パッケージまたは開発者を格納し、オープンなプラットフォームを提供し、プラットフォームは多くの開発者のための選択の再利用可能なパッケージを提供し、これはRT-スレッド生態学の重要な部分です。これらのパッケージは、モジュールの再利用性の高い、高度なので、オペレーティングシステムを選択する生態学の重要なパッケージは、大幅に変更するシステムを作成するために、最短時間でアプリケーション開発を促進します。例えば、次のように+パッケージのRT-スレッド数は、すでにサポートが60に達しています。

  • 物事関連のパッケージ:PAHO MQTT、Webクライアント、マングース、WebTerminalなど。

  • 関連するパッケージのスクリプト言語:現在MicroPython、JerryScriptをサポートしています。
  • Openmv、mupdf:に関連するマルチメディアパッケージ。
  • ツールパッケージ:CmBacktrace、EasyFlash、EasyLogger、SystemView。
  • パッケージシステム関連:RTGUI、柿UI、lwext4、パーティション、SQLiteのと上のようにします。
  • ペリフェラル・ドライバライブラリとクラスパッケージ:のRealTek RTL8710BN SDK。
  • その他。

                                2:取得し、RT-スレッドの源

公式のソースRT-スレッドhttps://github.com/RT-Thread/rt-thread/を、それをダウンロードするには、場所を見つけるためにマップの下のリンクをクリックしてください。

                       3:RT-スレッドソースディレクトリの説明

1.rtスレッドディレクトリ

図は、RTスレッドのソースディレクトリを開いて、以下の表は、ディレクトリの簡単な説明です。

ソースディレクトリ

     

ディレクトリ名 説明
BSP Board support package,RT-Thread 板级支持包 
(IAR/MDK 工程在 BSP 目录下的具体的 BSP 中)
components RT-Thread 的各个组件目录
documentation 一些说明文件,如代码风格说明
include RT-Thread 内核的头文件
libcpu 各类芯片的移植代码,此处包含了 STM32 的移植文件
src RT-Thread 内核的源文件
tools RT-Thread 命令构建工具的脚本文件

2.BSP 目录

打开 BSP 目录,里面包含 RT-Thread 已经支持的所有 bsp

BSPディレクトリ

3.打开一个 bsp

如打开bsp stm32f407-atk-explorer,下表是该目录的简单说明。

エクスプローラbsp-

目录名 描述
applications RT-Thread 应用程序
board 与开发板相关的配置文件
project.eww
project.uvproj
project.uvprojx
iar 的工程文件 
keil4 工程文件 
keil5 工程文件

 

1.下载完成之后,双击安装这个pack。这是pack的安装路径和你的keil路径是一样的,我们到keil的路径下面去找RT-Thread的源码。一般在keil路径中的PACK/RealThread/RT-Thread里面,我这个是3.12版本。

2.找到一份STM32F1的库函数版的代码,这里我用的是自己前两天编写的STM32基本外设的demo,已经上传到我的资源,如果有需要的可以直接下载,这里是链接https://download.csdn.net/download/qq_40831778/11829809我们先在工程里面新建一个文件夹,名字自己任意取,我在这里新建的文件夹的名字叫RT-Thread,然后将我们刚才复制的RT-Thread的源码复制到里面。

3.我找到并代开keil工程,新建一个文件夹,起名为RT-Thread,并向里面添加文件,文件都在刚刚复制过来的3.1.2的源码里,我们按照下图将其找全。

4.文件添加完成之后,我们在将文件路径添加进去,其实我们上一步添加的文件都在下面的路径里。

 5.然后我们将 rtconfig.h 里面的#include "RTE_Components.h" 注释掉。。。。。。。

6.在新建一个文件起名叫 board.h,其实就是为board.c文件新建一个.h文件。 

7. 然后在将stm32f10x_it.c文件中的 void HardFault_Handler(void)、void PendSV_Handler(void)、void SysTick_Handler(void)、注释掉,一个RT-Thread的32工程就移植完成了。

 

如果我的文章帮助了你,记得点一个赞,如果有兴趣一起学习,探讨的话,记得关注我,本人QQ:2992789432.

                                                          

发布了45 篇原创文章 · 获赞 96 · 访问量 1万+

おすすめ

転載: blog.csdn.net/qq_40831778/article/details/102458413