IAR Visual Stateの機能概要IAR Visual State とは •...
Transcript of IAR Visual Stateの機能概要IAR Visual State とは •...
組込みに最適な状態遷移設計ツールを使って効率的な開発を ~ IAR Visual State ~
IARシステムズ 技術チーム 岩野歩
組込み開発の実状
• 仕様・設計の不具合発見はコーディング後に集中 手戻りが多発
• ハードウェアの制約や仕様変更はソフトウェアでカバー 開発終盤ではドキュメントは後回しでコードのみ修正
ドキュメントがメンテされず、ソースコードが最新仕様
• チーム内でのレビューはソースコードレベル 他人のコードは見たくない
• 増え続ける機能。増えないリソース
モデルベース開発の薦め!
状態遷移図
• 組込み機器では様々なイベントに対して、その時の状態に応じた処理が必要➡ 状態遷移図による設計が最も効果的
• 状態遷移適用例 オーディオ スマートフォン 自動運転システム 自動販売機(ドリンク、ATM、etc) 洗濯機 etc
IAR Visual Stateとは• 組込みアプリの設計、テスト、実装をグラフィカルに行うツール
• UMLベースの状態遷移図 (Designer)
• 高度な形式検証と機能検証機能(Verificator, Validator)
• C/C++コードの生成 (Coder)
• ドキュメント生成 (Documenter)
• IAR Embedded Workbenchとの連携でターゲット上での状態遷移デバッグが可能
開発をより早く、より高い品質で!
プロジェクトワークフロー• IAR Visual Stateで状態遷移図を作成• ターゲットボード用ファイルを追加• デバイスドライバやFWライブラリを作成or入手
ユーザーコード
入力をイベントに変換
(一度作ればOK)
ユーザーコード
アクションを出力に変換(一度作ればOK)
入力button_pressed
入力sensor_triggered
入力temperature_gauge
入力stop_button
入力key_pressed
出力turn_on_LED
出力step_motor
出力close_valve
出力shut_down
出力display_LCD
状態遷移Visual State生成コードVisual
StateのAPIを使用
ユーザコードのAPIを使用
ユーザーコードチップ初期化処理(一度作ればOK)
モデルの再利用可能
なぜIAR Visual Stateなのか?
1. 高品質• 仕様通りのモデルになるよう動作を確認しながら設計が行える
• モデルの検証がすぐに行える デッドエンド 遷移の衝突 どこからも遷移しない状態 etc
• MISRA-C/C++に準拠したバグのないコードを生成できる
バグの混入しやすい状態遷移部分のコードを自動生成
2. レビュー・進捗管理が容易• 設計モデルをグラフィカルに共有・レビュー
コードレビューは不要 ライセンス不要のビューアーを利用して
カスタマーやパートナーとも簡単に共有
• モデル検証結果をドキュメント化 確認項目、エラー、ワーニング内容
起動時のスイッチ状態チェックの有無
ライトのOn/Offコントロールの条件判定の位置車内灯
モデルA
車内灯モデルB
3. 開発期間の短縮
• 状態遷移のコーディング作業は 1 Click
• 面倒なドキュメント化作業も 1 Click
• モデルとコードが一致しているかどうかを確認するためのテストや検証が不要
4. 仕様変更・機能追加に強い• 仕様変更や機能追加が必要になったらモデルを書き換えるだけ
• 常にモデル・コード・ドキュメントが100%一致した状態
1 clickでコード生成
1 clickでドキュメント生成
5. シミュレートから実機評価までシームレスに
Visual Stateプラグイン:IAR Embedded Workbenchでのデバッグ時に状態を可視化
形式検証
機能検証(シミュレート)
実機評価