タグ付けされた質問 「rtos」

9
組み込みシステム向けRTOS
時間管理とリソース管理にRTOSを使用する必要があることを伝える多くの記事を見てきました。私の時間は私自身の研究を許可していないので、私はチップハッカーに助言を求めに来ます。 低リソースのマイクロコントローラー(MSP430、PIC)を使用しており、使用できるRTOSを探していました。 ポイントへ: システムのリソースコスト システムの利点 システムの欠点 実装のコツ RTOSを使用すべき/すべきでない状況。 私はarduinoのようなシステムを使用していません。一緒に作業するプロジェクトでは、そのようなシステムのコストをサポートできません。

6
PICマイクロコントローラーでのマルチタスク
最近ではマルチタスクが重要です。マイクロコントローラや組み込みプログラミングでどのように実現できるのでしょうか。PICマイクロコントローラーをベースにしたシステムを設計しています。Cを使用してMplabX IDEでファームウェアを設計し、C#を使用してVisual Studioでアプリケーションを設計しました。 デスクトップのC#プログラミングでスレッドを使用して並列タスクを実装することに慣れてきたので、マイクロコントローラーコードで同じことを行う方法はありますか?MplabX IDEは提供しますpthreads.hが、実装のない単なるスタブです。FreeRTOSのサポートがあることは知っていますが、それを使用するとコードがより複雑になります。一部のフォーラムでは、割り込みもマルチタスクとして使用できると述べていますが、割り込みはスレッドと同等ではないと思います。 一部のデータをUARTに送信すると同時に、(有線)イーサネット経由でWebサイトにデータを送信する必要があるシステムを設計しています。ユーザーはWebサイトから出力を制御できますが、出力は2〜3秒の遅延でオン/オフになります。それが私が直面している問題です。マイクロコントローラーでマルチタスクを実行するためのソリューションはありますか?

1
リアルタイムと他の種類のOSを区別する機能は何ですか?
私は、基本的に次の素数に数えることしかできない、いわゆるリアルタイムカーネルで実験しています。割り込み駆動型I / Oを使用します。しかし、なぜリアルタイムカーネルなのでしょうか? 2002年にLinuxがリアルタイムカーネルになったことを読みましたが、それは正しいですか? アルテラDE2を使用しており、ベースとするコードは1つのアセンブリファイル、1つのヘッダーファイル、2つのCファイルです。理解してください。 # Uart_0 at 0x860 .equ de2_uart_0_base,0x860 # Timer_1 at 0x920, interrupt index 10 (mask 2^10 = 0x400) .equ de2_timer_1_base,0x920 .equ de2_timer_1_intmask,0x400 # Timeout value for 0,1 ms tick-count interval (CHANGED in every version) .equ de2_timer_1_timeout_value,4999 # Required tick count per time-slice, meaning # the number …

2
誰かがNuttX RTOSを評価しましたか?
今日Linux User's Journalを読んでいると、NuttX RTOS についてのちょっとした宣伝文句に出会いました。私は彼らのウェブサイトをチェックアウトし、その機能セットと8052にそれを入れる能力にかなり感銘を受けました!POSIXをサポートしていることは興味深いと思います。POSIXは、社内RTOSのクライアントの1人のために取り組んできたものです。これは、社内のRTOSよりももう少し豊富な機能のようです。 他の誰かがNuttXのことを聞いて、試してみましたか?その場合、FreeRTOSなどの他のRTOSと比較してどうですか?
15 embedded  rtos 


6
RTOSのキューの置換
タスク間通信またはRTOSの2つのタスク間でデータを共有するために、キューを使用します。しかし、キューの問題は、処理が遅いことです。...バッファ内のデータをコピーし、次にミューテックス処理を行い、次にデータ転送を行います。大きなデータを転送する必要がある場合、イライラするほど遅くなります。別の問題は、複数のタスクが同じキューにアクセスする場合です。次に、画像は次のようになります。-最初にキューへのアクセスを待機してから、内部ミューテックス処理をキューに入れ、データ転送を行います。 これにより、システムのオーバーヘッドが増加します。キューの効率的な代替品は何ですか? (この質問は、使用しているRTOSに依存しないと思います。ほとんどのRTOSは、この方法でのみキューを処理します)
12 rtos 

6
PIC16マルチタスクRTOSカーネルが機能しない理由は何ですか?
PIC x16マイクロコントローラー用のセミプリエンプティブ(協調)RTOSを作成しようとしています。私には、前の質問、私は、ハードウェアスタックポインタにアクセスすると、これらのコアは不可能であることを学びました。私はPIClist でこのページを見てきましたが、これはCを使用して実装しようとしているものです。 私のコンパイラはMicrochip XC8で、現在、構成ビットで4MHzの内部RC発振器が選択されたPIC16F616で作業しています。 コンパイラのヘッダーファイルを確認しながら、CでPCLATHおよびPCLレジスタにアクセスできることを学びました。そこで、簡単なタスクスイッチャーを実装してみました。 カーソルが最初の行(TRISA=0;)ではなく別の行(などANSEL=0;)にあるときに、再起動後にデバッガを一時停止してリセットし、カーソルにPCを設定すると、デバッガで必要に応じて機能します。デバッガーの最初の起動時に、これらのメッセージがに表示されますDebugger Console。 Launching Programming target User program running No source code lines were found at current PC 0x204 編集:私はそれがうまくいった理由はわかりませんが、デバッガは完全に動作するようになりました。したがって、上記の出力と段落は省略してください。 編集:このようにメイン定義を変更すると、以下のコードが機能します。これはプログラムアドレスでメイン機能を開始します0x0099。何が原因なのかわかりません。これは実際の解決策ではありません。コンパイラ固有のエラーがあると思います。 void main(void) @ 0x0099 { これが私のCコードです: /* * File: main.c * Author: abdullah * * Created on 10 Haziran 2012 Pazar, 14:43 */ #include …

5
RTOSが決定論的であると見なされるのはなぜですか?
PC(もちろんOS)では、どのCプログラムもタイミングの点で不確定になります。たとえば、「別のウィンドウを移動する速さ」に応じて、ループは1.2〜1.3秒かかります。これは、OSがプロセス(またはスレッド)に処理能力を共有させるためです。 RTOSに関する限り(組み込みシステム上)、マルチスレッドアプリケーションを作成すると、同時に実行されているスレッドの数に応じて、同じことが起こると思います。 組み込みシステムでこれを正確にテストするための機器がありません。したがって、私は尋ねたかった。私の懸念は合理的ですか、それとも非常に根本的なものを見逃していますか? 編集:例を挙げます。task1(10ミリ秒)とtask2(20ミリ秒)があります。彼らは同時に別々の2つのスレッドで開始しました。私の主張(これも心配ですが、よくわかりません)は、task1がtask2と処理能力を共有しているため、10ms以上かかることです。
8 embedded  rtos 

3
802.15.4 / 6LoWPANスタックを備えたCortex M4のRTOS
モノのインターネットプロジェクトで使用するオペレーティングシステムを評価していますが、次に進むための最良の方法がわかりません。 32k RAMとCC2520 802.15.4トランシーバーを備えたTM4C123GH6PM MCUを使用していますが、システムがすでにそれらのドライバーを提供しているとしたらすばらしいでしょう。 システムは、ドットマトリックス画面を描画し、ユーザー入力に反応する1つの(インタラクティブな)タスクを実行します。設定とアプリケーションデータをspiフラッシュに保存します。モジュール間でデータを同期し、モジュールからセンサーデータを抽出してゲートウェイに転送し(rplが頭に浮かびます)、またゴシップでOtAファームウェアの更新を配布するために、複数のモジュールのメッシュ(802.15.4に基づく)があります。ファッションのように。同様に、メモリを大量に消費するアプリケーションも実行しています。 これまでのところ、これらのシステムを調べてきました。 RIOT: 長所 優れたハードウェア抽象化 小さな足跡 とても活発で親切なコミュニティ 完全な802.15.4 / 6LoWPANスタック 短所 不安定であり、根本的な変化をまだ受けている まだ競合状態/クラッシュが含まれています ファイルシステムのサポートなし いくつかのネットワークプロトコル Contiki: 長所 成熟したシステム、商用製品で使用 多くの有用なプロトコルを備えた完全な802.15.4 / 6LoWPANスタック ファイルシステムのサポート cc2520サポート 短所 開発が古くなっている 「成長した」コードベース、たくさんのビット腐敗 品質の悪いTiva Cポート 最新のプラットフォームのサポートはほとんどありません 非プリエンプティブスケジューリングはアプリケーションに問題を引き起こす可能性があります FreeRTOS: 長所 少し追加の複雑さ 使いやすく信頼性の高いスケジューラ 多くの製品で使用される成熟したプロジェクト たくさんのポート 短所 ファイルシステムなし ドライバーのハードウェア抽象化なし/ハードウェアドライバーなし ネットワークスタックなし 動的メモリの使用率がやや高い NuttX: 長所 非常に機能が豊富で、ほとんどLinuxのように感じますが、まだ小さいです ファイルシステムのサポート …

4
シリアル-USBアダプターを介してPCに接続されているこれらのシリアルポートからの遅延を減らすにはどうすればよいですか?
組み込みシステムの必要性を誤って見つけたと思います。すごい!そしてちょっと怖い。そして、私は助けが必要です。 背景:2つのSICK LMS-291からスキャンを取得し、それらをサブインチ精度のGPSと統合するGUIアプリケーションの構築を依頼されたため、各スキャンがどこで発生したかがわかります。私はナイーブWebプログラマーとして、タイミングが重要であることを理解していましたが、それが難しいことにも気付きませんでした。各GPSポイントと各スキャンがいつ発生したのかわからない場合、スキャンがどこで発生したのか把握できません。おっとっと。 彼らはプラットフォームとしてWindows 7を指定し、センサーとGPSを接続するためにSeaLevel RS422 to USBボックスを購入しましたが、すぐに私の愚かさを発見しました。センサーと私のコンピュータープログラムの間のどこかで、何かがスキャンがタイムリーに到着しないようにしていました。LMSは1秒あたり75スキャン、つまり13.32 ms /スキャンで吐き出します。私のプログラムはそれらをタイムリーに取得しません。100ミリ秒ごとに7、8、10などのグループで取得します。また、十分なスキャンが表示されない場合や、スキャンが破損している場合もあります。このSeaPortアダプターは1秒に10回しか送信していない(それは可能ですか?USBの仕組みがわからない)か、Windowsがバッファーをチェックしていません(どこかにバッファーがあるはずですよね?)。 今日:これは、クライアントが基本的に大丈夫であるいくつかの不正確さにつながります。私はそうではありませんが、クライアントに対して同様の作業を行う機会があるので(より多くのセンサー入力を統合する!)、たとえばGPSの精度を考慮して、それを正しく行う方法を見つけたいと思います、スキャン位置の精度と正確性を保証できる。 それはどのように見えますか?UIが必要で、これらの3つのデバイスからの入力を13.32ミリ秒ごとにチェックできるようにする必要があります。たとえば、GUIにNano-Xを使ってFreeRTOSを使用し、それらが提供するラップトップで実行した場合、それは正気なソリューションのように聞こえますか?RS-422-USBアダプターがこれらの遅延を引き起こしている可能性はありますか?Windowsを使用しても実際にはこの目的で問題ありませんか?
8 usb  rs232  rtos  rs422 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.