2017-01-12 8 views
2

私は組み込みアプリケーションの中に低消費電力管理を配置する方法をアドバイスしています。私の考えは、RTOS info +アプリケーション制約に基づいてIDLEタスク内で有効にされたWFIを処理することです。RTOSの内部でWFIを処理する方法

  1. アプリケーションはWFI最大スリープ時間を算出RTOSタイミング(タスク、タイマー、セマフォタイムアウト、...)に基づいて

  2. を有効に可能にするかどうかを知るために、アプリケーションの機能を有しています。

  3. は、いくつかのいずれかが既にこの種のアプリケーションを管理しているのであれば、私はこれらのソリューションを知って興味があると多分にウェイクアップするためのシステム(多分EXTI)

HW機能を使用しますコードサンプルを入手する

+0

あなたはどういうことを言っていますか? WI-FI?またはWFI? –

+1

'WFI' ARM命令は**" WiFi待ち "を意味しません! – Olaf

+0

@Olaf私は彼がそのことを意味していなかったOPのために願っています... –

答えて

2

RTL実装では、バックグラウンドワークやユーザフックが処理されていないと、デフォルトでWFIをアイドルループに配置しているため、FreeRTOSはそれほど違いはありません。システムは、RTOSシステムを含むあらゆる割り込みでウェイクアップし、低電力動作をサポートするために何も実行する必要はありません。アイドルループにない場合は、低電力に移行することはできません。

さらなる電力削減のために、一部のRTOSでは、RTOSシステムの割り込みインターバルが可変であり、最も長いアクティブな残りのタイムアウトまたは遅延に設定され、その後ティックカウンターがスタートアップ時に修正されます実際に眠っているダニの数。もちろん、他の割り込みでも目を覚ますことができます。

割り込みが比較的多く、タイミング間隔が(RTOSのティックレートと比較して)大きいシステムでは、ダニレス操作が有効です。すべてのダニで作業している場合、それは目を覚ましてどんな場合でもそれを行うため、目的がほとんどありません。

FreeRTOSは、Low Power RTOS For ARM Cortex-M MCUsで説明されているように、configUSE_TICKLESS_IDLEを使用してARM Cortex-Mでティックレス演算をサポートしています。

関連する問題