私はRTOSを学ぶためにしたくないですか? RTOSを学ぶメリットは何ですか? 私は私のプロジェクトのRTOSを実行しましょうか?
?????? RTOSについての質問とあなたがRTOSを知っているためように、実際には、最終的な分析が十分ではありませんが、またなど、プロジェクトの開発における経験不足します。
友人のこの部分のために、今日、いくつかの関連コンテンツを共有する:
組み込みシステムを、タスクのスケジューリングを達成するための多くの方法があります。限られた機能を持つ小型のシステムは、無限ループは、システム機能のために十分です。ソフトウェアの設計は、大規模で複雑になると、設計者は、リアルタイム・オペレーティング・システムの使用を検討すべきです。
ここでRTOS 8の理由の使用を共有します:
1.ハード・リアルタイム応答
優先度ベースのプリエンプティブRTOS、リアルタイムデマンドタスク実行優先度スケジューリングに基づきます。タスク実行優先順位の厳密なタイミング制約は、タイムクリティカルなイベントへのアプリケーションのレスポンスを向上させる、があります。
前記最大システム性能
イベント駆動型のRTOSを使用して大規模で複雑な組込みアプリケーションのために、代わりにポーリングベースの超周期構造と、それは、より効率的な設計、小さなメモリフットプリントを生成することがあり、アプリケーションは、より多くのプロセッサ時間を取得します。
複雑さを軽減3.
RTOSは、アプリケーションがタスクの小さな自律運転に分割することができます。彼らのタスクの実行コンテキスト、または他のタスクではない依存スケジューラ。
4.ピーク負荷管理
RTOSは、システムのピーク活性を管理するための効果的な方法を提供しています。彼らはこの期間中に、重要な時間内にプロセッサにアクセス可能であることを保証するために、タスクのピーク負荷活動を行うために割り当てられた優先順位の高い、優先度の低いタスクが遅れています。
緊密な統合ミドルウェア
RTOSモジュラー設計を簡単にミドルウェアを追加することが可能となります。ミドルウェアコンポーネントと増加タスク駆動型の方法。彼らは、通信リソースとRTOSが提供する他のタスクを使用します。対応するイベントに基づくRTOSスケジューリング。
6.大きな開発チーム
各タスクはプロジェクトとみなすことができます。入力と出力を定義するためにRTOSによって提供されるリソース(キュー、セマフォなど)。このシステムは、より簡単にプロジェクトに多くの開発者を展開することができます一つのタスクとして定義されます。
デバッグと検証に簡単に7.
システムは、それが他のタスクに依存しない、機能的な明確な権限に分かれています。全体のシステム統合の前に、あなたは簡単にデバッグし、各タスクを確認することができます。
8.コードの再利用
RTOS系统中的模块化设计,鼓励将软件功能创建为独立的、验证过的任务。其独立性使得在其它设计中重用这些模块变得很简单。
当然,以上理由针对的大众需求,如你项目有特殊需求另当别论。
================================================================================================
之前,我就是收到一个项目中,就不要我使用rtos,但是发现其实这个是可以使用rtos来完成的。
其实有的项目可以用两种方式分别实现,但是rtos有任务切换,可能会带来不确定因素,但是我个人认为,rtos只要会用,一般是没有问题的,因为主流的rtos基本上已经比较稳定的。
裸机系统将是不用考虑任务切换,全局变量随便用,不存在可重入等问题,一个while大循环+定时器就基本解决了。但是函数之间耦合强,阅读性就不那么强。