7月の技術講座

2016-07-01

論題: 組み込み用スレッドライブラリChopstx

開催日時 2016年7月22日(金曜日)18:30 〜

場所:東京体育館第四会議室

概要

Chopstxは組み込み用スレッドライブラリです。

Chopstxは、GnukとNeuGで用いられている組み込み用スレッドライブラリです。

個々人の情報セキュリティの要となるデバイスを実現するGnukとNeuGでは、正確にデバイスをコントロールすることが求められ、利用するライブラリが「謎の動きをしない」ことが大切になります。見通しの良いプログラム構成が可能となる仕組みが求められ、それぞれの部分で、余分なことをしない最小限の機能が重要となります。通常のアプリケーションと違って、「動くからOK」とはいかない事情があります。

歴史的には、いかんとも使いようがないスレッドのAPIに「豊富な」スレッド間通信の機能をゴタゴタと付け足し、これでは誰もドライバを書けないから提供者の側が様々なドライバなどを追加していかざるを得ない... この集大成を "RTOS" と呼ぶあんまり嬉しくない慣習があったりなかったり。

こういう状況で、素晴らしいRTOSではなくてスレッドライブラリ(だけ)が必要、だったので、21のAPIを持つChopstxができました。

ChopstxはPthreadsのAPIを参考にしています。裏技を用いることが必要となってしまうPthreadsのプログラミングや "RTOS" のプログラミングと異なり、Chopstxで提供されるAPIだけで見通しの良いアプリケーションを構成するのが狙いです。

chopstx_poll という関数で condition variable とほかの thread の exitと割り込みイベントと3種の待ちが同時にできるのが特徴です。

現在、ARMアーキテクチャのCortex-M3, Cortetex-M0, Cortetex-M0plusをサポートしています。Cortex-a7の開発が試みられています。

話題提供

  • g新部 裕