RTOSの使い方がなっちゃいない2006年12月08日 00時46分32秒

業務委託でμITRONベースで開発されたシステムの一部のテストを行っていますが、RTOSの使い方がなっちゃいない。

通信ループ中でFlashROMの書き換えを行っている部分があるのですが、FlashROMの場合ブロック単位でしか消去できないので、少しの書き換えでも書き換える以外の同一ブロック上のほかのデータを読み込んで退避させて、消去、その後、退避データと書き換え対象データをマージして書き込み。

当然、消去処理などは時間がかかり、書き換え対象によっては複数ブロックを消去する必要があるので同一データサイズでも書き換えにかかる時間が変わります。

こんな処理の場合、通信処理とFlashROMの書き換え処理は別タスクにして非同期に処理させて通信処理は独立して動作させないとRTOSを使う意味なんかない。それを通信処理の合間で消去処理やら書き込み処理やらをやらせている。この結果、通信相手との間で通信エラーなどが発生することになります。

RTOSの使い方って書きましたけど、RTOSを使わなくたってこんな作り方をしたらだめ。ったく、メーカにはまともなエンジニアはいないのでしょうか?こんなくだらない作り方をしなければちょっとしたデータの配列が変わった程度の修正でデバッグする必要などないのに。