ARMアセンブリにおけるデータ同期とタスク切り替え処理

ARMプロセッサにおける基本的な操作 基本操作1: 汎用レジスタから変数への値転送 基本操作2: ラベルジャンプと条件分岐 基本操作3: 特殊レジスタへの値書き込み 基本操作4: 特殊レジスタからの値読み出しと変数格納 メモリバリア命令の解説 マルチコアプロセッサ環境では、各コアが独自のキャッシュを持っているため、共有メモリへのアクセス時にデータ不整合が発生する ...

8月3日 23:56 投稿

FreeRTOSにおけるタスクハンドルの正体と二重ポインタの重要性

タスクハンドルとは何か? FreeRTOSを扱う際、タスクの作成には「タスクハンドル」が必要です。このハンドルは、タスクの制御情報を保持する「タスク制御ブロック(TCB)」へのポインタです。タスク作成APIの引数として、このハンドルを渡すことで、作成されたタスクの参照を取得できます。 タスクの動的生成例 以下は、FreeRTOSでタスクを動的に生成するコード例で ...

7月29日 02:02 投稿

FreeRTOSにおけるタスク作成とクリティカルセクションの基礎

タスクとは何か FreeRTOSにおけるタスクは、戻り値を持たず、無限ループで実行されるC言語関数として定義される。この関数は一度開始されると終了せず、システムのシャットダウンまたは明示的な削除まで継続的に動作する。 タスクの構成要素 1. タスクスタック ベアメタル環境では全関数が共通のスタックを使用するが、RTOS環境では各タスクが独自のスタック領域を持つ。 ...

7月12日 18:57 投稿

ESP-IDFにおけるキュー処理の実践的な活用方法

FreeRTOSベースのESP-IDFキュー処理の実装 キューの基本概念 ESP-IDFで提供されるキュー(queue)は、タスク間および割込みコンテキスト間の安全なデータ交換を実現するための仕組みです。FIFO方式に基づき、構造体や基本型データのやり取りが可能です。 タスク間通信のためのデータパイプとして機能 ブロッキング/ノンブロッキングモードをサポート 割込みコンテキスト ...

6月17日 19:19 投稿

合宙Air780EG開発ボードチュートリアル - sysライブラリの紹介 (LuatOSベース)

sysライブラリ sysライブラリのインターフェース関数については、sysインターフェース関数を参照してください。 一、sys.taskInit(func, arg1, arg2, argN) タスク(コルーチン)を作成します。 パラメータ: function: 実行する関数。匿名関数、ローカル関数、またはグローバル関数を指定できます。 any: 渡す引数1(任意) any: 渡す引数2(任意) any: 渡す引数N(任意 ...

5月25日 08:31 投稿