動体検知システムを、カメラ入力可能なSoCとRTOSで簡単に実現
2つの画像の差分を検出する「動体検知」をRTOSで実装するために、京都マイコンのSOLID Starter Kit for AG903を使って、IoT駐車場管理システム第2弾のデモアプリを作ってみました。
2つの画像の差分を検出する「動体検知」をRTOSで実装するために、京都マイコンのSOLID Starter Kit for AG903を使って、IoT駐車場管理システム第2弾のデモアプリを作ってみました。
初心者講座「CARTOS編」で連載した組み込みアプリ開発を実践しました。作ったアプリケーションは、簡易データーロガーです。GPIO2本使用して、ロガーの開始とロガーの停止の操作をします。ロガーデータは、RZ/A1Hで内蔵しているADCを使用しています。
組み込みシステムにおけるローダーとは、電源が入り、RESET信号が解除されて動き出す最初のプログラムです。ローダーの役割は、プログラムをメモリ上に読み込むためにメモリコントローラの初期化を行い、プログラムが保存されているフラッシュメモリからSRAMやDRAMなどのメモリに展開して実行するまでの動作を行います。
組み込みアプリ開発において、リアルタイムOS(RTOS)を使うメリットをこれまでに十分説明してきました。今回は、いよいよタスクの実装です。組み込みアプリを構築する上で、最も重要な部分です。使用する「SOLID-OS」は、Toppers/ASP3をベースにしたμITRON準拠のRTOSです。
組み込みシステムのアプリケーションを作っている場合、CPUの機能だけを使うことはほぼないと言っていいでしょう。通常、ハードウェアの操作を行うために用意するソフトウェアを「デバイスドライバ」と呼んでおり、パソコンなどでも頻繁に利用されています。
「システムが暴走してRESETしなければいけなくなった」という経験は誰にでもあるかと思いますが、組み込みシステムでは、そのリスクを限りなく0にする必要があります。WDTなど周辺機能がサポートしてくれることもありますが、その時点で中核となるソフトウェアが停止してしまっている状況は、誰にとってもメリットは少ないものです。
タスク設計といっても、難しい作業ではありません。機能ごとに分ける作業は誰でも一度は経験があることです。それに、万人に対する正解があるわけではなく、1番念頭に置いておくべきことは、作りやすいか?メンテナンスしやすいか?です。
Arm Cortex-AとRTOSを使って、組み込みシステムのアプリケーションを開発するステップを、動画とテキストを使ってわかりやすく紹介しています。使用するハードウェアは、京都マイクロコンピュータ社からリリースされた「SOLID」を使用します。
R-Carは第二世代から内部バスのトラフィックが計測可能な機能を追加し、京都マイクロコンピュータ(以下、KMC)のJTAGエミュレータ「PARTNER-Jet2」で、バストラフィックがリアルタイムかつビジュアルに計測できるようになった。