問題タブ [rtos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - タスクの UML 表現
私は、多くのタスクと多くのタスク間メッセージを含むシステムを設計中です。システムは基本的にCで開発されます。
私のデザインでは、UML 表現を使用して、タスク間で渡されるメッセージを表示しようとしています。しかし、意思決定などを表現することは難しくなっています。
多くのメッセージを使用するタスクベースのシステムのフローチャートを作成するための定義済みの方法はありますか?
UML である必要はありません。この設計に使用できる他の標準的な方法はありますか?
multithreading - RTOSの明示的なスタックの代替手段-削除演習?
現在商用優先度ベースのプリエンプティブRTOSを使用しているARM7上のCでプログラムされた組み込みアプリケーション(移植性要件あり)では、そのRTOSと顧客の義務ごとのRTOS依存関係を削除する必要があります。多くのHWインターフェース、スリープステートメント、I2C通信を使用する8つのタスクがあります。現状では、SWはコードを簡素化するためにRTOS機能をうまく利用していますが、タイミング要件はRTOSなしで管理できます。
現在、多くの場所で呼び出されるルーチンを含むいくつかの関数は、I2cドライバー関数への(そのスレッドの)呼び出しのブロック、スリープステートメントなどのシーケンスを実装しています。I2C呼び出し/スリープでのポーリングは顧客に受け入れられないという前提に基づいて、そのような呼び出しはその後、非ブロッキングになり、戻ります。もちろん、問題は「ステートメント」に「戻る」ことです。I2Cが完了するか、スリープ時間が経過すると、トップレベルのタスクエントリから4回コールダウンする可能性があります。
単純なスケジューラーを上にして、各タスクの階層型ステートマシンの設計に向かって収束しています。しかし、ブロック呼び出しのシーケンスを作成し、それぞれがステートマシンになり、複数の場所でさまざまな関数呼び出しの深さで呼び出されるようになったいくつかのルーチンを処理するには、タスクごとに明示的なスタック機能が必要になるようです。サブステートマシンを起動するたびに、そのプロセスに状態を割り当てて、そのタスクの「状態スタック」にプッシュできるため、そのタスクへの次のスケジューラ呼び出しですべての状態を停止できます。階層状態は、「中断」したところから処理を続行します。
この問題に適用できる他の設計アーキテクチャ、非プリエンプティブパラダイムへのコードの高速移植に関する考慮事項、または「RTOS除去」技術と設計に関する思考を豊かにするリソースと議論を指摘できますか?
3つの答えはすべて、ステートマシンベースの開発の関連性と、車輪の再発明を回避するための関連ツールの全体像を示しています。私たちの顧客は、GPLを含むいかなる種類のライセンスも取得しません。回答から、RTOSを使用せず、ポーリング呼び出しを禁止した階層型ステートマシンを使用したい場合、状態をキャッシュする方法はないようです。階層型SMは、その構造を保存することで既存のコードの移植に大いに役立ちます(ルーチンへの関数呼び出しはサブステートマシンの呼び出しになります)ので、提供されたツールを良い例として使用して、そのようにします。- ありがとう。
rtos - ハイパーバイザーを使用してWindows/Linuxと並行してリアルタイムOSを実行するためのアドバイス
ハイパーバイザー( RTS Real-Time Hypervisorなど)を使用して非リアルタイムOSと並行してRTOSを実行することについてのアドバイス/経験は何ですか。パフォーマンスへの影響はありますか?リスクはありますか?(たとえば、非リアルタイムOSがRTOSのリアルタイムの側面に干渉しないようにする方法など)
私の理解では、各OSに独自のコアを割り当てることができるように、デュアルコア(またはハイパースレッディング)CPUを使用する必要があります。
networking - (無料の) 組み込み TCP / IP スタックの経験はありますか?
次の組み込み TCP / IP スタックのいずれかで特に良い (または悪い) 経験をした人はいますか?
- uIP
- lwIP
- Bentham のTCP/IP リーン実装
- この本の TCP/IP スタック
私のニーズは、堅牢で移植しやすいスタックです。コードサイズはそれほど重要ではなく、パフォーマンスは比較的重要ですが、使いやすさと移植性は非常に重要です。
システムはおそらく RTOS を使用しますが、これは未定ですが、私の経験では、ほとんどのスタックは RTOS の有無にかかわらず使用できます。ほとんどの場合、プラットフォームは ARM バリアント (ARM7 または CM3 の可能性が高い) になります。
スタックをイーサネット ドライバーにボルトで固定することについてはあまり心配していないため、選択の優先順位は高くありません。
Linux、RTEMS などの OS からスタックを抽出することにはあまり興味がありません。
また、Interniche、Micrium などの商用サービスにも興味がありません...
スタックにはあらゆる種類の付属品は必要なく、IPv6 も必要なく、その上に何か (Web サーバー、FTP サーバーなど) も必要ありません。 UDP のみを使用しますが、TCP が望ましいいくつかのシナリオを想定できます。
もちろん、私が見逃した他のスタックでの経験も非常に興味深いものです。
お時間とご意見をお寄せいただきありがとうございます。
python - リアルタイム オペレーション システム (RTOS) 上の Python
RTOS プラットフォームに小規模なデータ収集システムを実装することを計画しています。(QNX または RT-Linux システムのいずれか)。
私の知る限り、これらのジョブは C / C++ を使用して実行され、システムを最大限に活用しています。しかし、コーディング作業にやみくもに飛び込む前に、経験豊富な人々の意見を知りたいと思っており、Python ですべてを書くことが実現可能で賢明であるかどうか (光沢のあるグラフィカル ユーザー インターフェイスを介した低レベルの計測器のインターフェイスから) を知りたいと思っています。そうでない場合は、デザインのタイミングが重要な部分を "C" で混在させるか、すべてを C で記述し、Python コードを 1 行も配置しません。
または、少なくとも Python を使用して C コードをラップし、システムへのアクセスを容易にします。
どのような方法で作業するようアドバイスしていただけますか? 似たようなデザインの事例や参考文献なども教えていただければ幸いです。
ありがとうございました
注 1: QNX を強調する理由は、大気測定実験用にQNX 4.25 ベースのデータ収集システム ( M300 ) が既にあるためです。これは独自のシステムであり、内部にアクセスすることはできません。6.4 には無料のアカデミック ライセンス オプションがあり、Python 2.5 と最近の GCC バージョンが付属しているため、QNX をさらに検討することは私たちにとって有利かもしれません。私は RT-Linux システムをテストしたことがなく、安定性と効率の点で QNX にどの程度匹敵するかはわかりませんが、Python の生息地と非 Python ツール (Google Earth など) のすべてのメンバーが新しいシステムを使用していることは知っています。ほとんどの場合、すぐに使用できる作品で開発できます。
embedded - msp430用の組み込みアプリケーションを作成していますか?
ハイエンドMSP430、おそらくMSP430F5438用の基本的なOSと基本的なファイルシステムを用意したいと思います。FreeRTOS、IAR PowerPac、Micriumなどを使用して、OSとファイルシステムのオプションの一部に名前を付けることができます。ただし、後で小さなアプレットやスレッドをロードして、理想的にはこの余分なコードをファイルシステムから削除できるようにしたいと思います。私の目標は、組み込みデバイスの機能を変更または実装するために、デバイス全体を再フラッシュする必要がないことです。この機能を実装するためにどこに向かうべきか、またはARMなどの別のプロセッサに切り替える必要があるかどうかがわかりません。
c++ - C / C ++を使用してシステム時刻をどのように設定しますか?
RTOS、IARツールを実行する組み込みシステム(ARM 9263)があります。システムは、現在の時刻を取得する標準のtime()関数をサポートしています。逆の呼び出しが必要です。つまり、時間を設定する必要があります。これを行うための「C」標準の方法はありますか?私はグーグルで調べましたが、それは明らかだと思いましたが、おそらくそれはプラットフォームに依存していますか?time()はそうではないので、理由はわかりません-何かアイデアはありますか?ありがとう!
rtos - VRTXに詳しい方
VRTX ( A RTOS) の内部を理解する必要があります。
- 他の商用/無料 RTOS とどう違うのですか?
- 組込みシステムで VRTX がユニークな理由は何ですか?
java - なぜ RTOS は c だけでコーディングされているのですか?
RTOS は必ず C 言語でコーディングする必要がありますか? Javaやその他のテクノロジーでコーディングできないのはなぜですか..?? それは、Java にポインターの概念がないためですか?