RAMモニタ

RAMモニタとは、組込みソフトウェア開発においてプログラム内部の動的検証に役立つ強力な組込みソフトウェア開発支援ツールです。

ユーザプログラム実行中でもプログラムの複数の変数をRAMデータからモニタリングし、トーレスすることでプログラムのデータフローや振る舞いなどの機能検証が可能になります。

こちらのページでは、RAMモニタとデバッガの違いや、RAMモニタの有用性などをご紹介します。

 

RAMモニタのご紹介

RAMモニタとは?

RAMモニタとは、マイコンのRAMの値をモニタリングする組込みソフトウェア開発支援ツールです。

通常、デバッガなどで組込みプログラムの変数等を参照する場合は、実行中のプログラムを一旦ブレークしながら値を取って来る作業が必要になります。それに対してRAMモニタは、マイコンで実行中のプログラムをブレークすることなく変数が格納されるRAMデータをモニタリングできることが特長です。
RAMモニタならばプログラム動作に影響を与えずに複数のRAMデータをリアルタイムにモニタすることが可能です。

 

デバッガとRAMモニタ比較

 

RAMモニタはなぜ重要か?デバッガとの違いは?

デバッガとRAMモニタの役割の違いはどのようなものでしょうか。
また、RAMモニタが得意なことやRAMモニタが活躍する場面はどこでしょうか。

 

デバッガはアルゴリズムをテストする

デバッガは単一、数個の変数をみるのは得意で、プログラムを止めながらアルゴリズムを検証することが可能です。
反面、多くの変数を時系列に見ていくことはデバッガにはできません。
デバッガは、たくさんのデータを使って依存関係を見ることは苦手です。

 

RAMモニタはデータフローを検証テストする

RAMモニタは、プログラムの動的な機能検証を目的に使用されます。
RAMモニタは内部変数だけではなく、入力データ、出力データの推移など、入出力するデータをオシロスコープと同じように検証することが可能です。
また、複数のデータを同時にモニタリングすることで、関連する機能の動作検証に役立ちます。

 

MicroPeckerコラム

プログラム実行中のデータの流れが設計通りになっているかを検証する際に、入力データを様々に変更して調整をする場面ではデバッガは向いていません。

例えば、モータを回している最中にデバッグのためにプログラムを突然止めると、モータは制御から離れて暴走する恐れがあります。
デバッガではプログラム処理が動いたり、動かなかったりするために一連の動的検証が難しくなります。
つまり、デバッガではデータフローを検証するためにもアルゴリズムが停止することになります。

Motor

一方、RAMモニタの一番の特長はプログラムを止めないことです。
RAMモニタは最終的なプログラムの状態での動作検証が可能です。

昔は、マイコンから空いてる端子を出してRAMデータを参照するなどもしていましたが、近年では参照するアドレス点数が増えたため出来なくなってきています。
また、RAMデータをモニタリングするためにはユーザプログラムにモニタ用のデバッグプログラムを入れるなど、手を加える必要がありました。
デバックプログラムの状態で動いていたものが、RAMモニタのためのモニタ用プログラムを外すと動かなくなるなんてこともあるかもしれません。

 

RAMモニタは開発プロセスのどこで使用するか?

RAMモニタは組込みソフトウェア開発におけるVモデル開発プロセスの右側を網羅するデータ検証ツールになります。

ソフトウェア開発プロセスの単体テスト、機能テスト、システムテストの各開発フェーズの中で、動的な状態でプログラム検証するためにはRAMモニタが必要になります。
また、動的検証の結果をRAMモニタのロギングファイルとして残すことで検証結果のエビデンスとなります。

Vモデル開発でのRAMモニタ適用範囲

 

組込み開発環境の変化によるRAMモニタの必要性

組込みソフトウェア開発において成果物の信頼性が求められるところでは、設計通りにできているのか、信頼性の検証やその証明のためのエビデンスを残すことが必要になってきます。
これはデバッガだけでは十分でなく、RAMモニタによる検証テストが必要になります。

RAMモニタは、実行中プログラムのデータがどのように変わったのかをログファイルからトレースが可能なので、検証結果のエビデンスを残すことに最適なツールになります。

自動車向けの車載ECU開発では、ISO26262の発行により機能検証のエビデンスが一層重要になってきています。
このような環境の中でRAMモニタが果たす役割は大きく、車載ECU開発では必須のツールとなってきています。

 

MicroPeckerコラム

モデルベース開発が導入されることによって、アルゴリズムの検証は、設計段階で可能になってきています。

昨今の組込みソフトウェア開発では、プログラムデバッグ段階でもアルゴリズムを検証する作業だけでなく、データの流れやデータ検証を重要視するようにシフトしてきています。

 

サニー技研のRAMモニタの特長

サニー技研のRAMモニタは、車載向けマイコンに搭載されているデバッグインターフェイスを利用してRAMデータをモニタリングしているため、ユーザプログラム側にRAMデータを吐き出すモニタリング用のソフトを組み込む必要がありません。
そのため、モニタリングのためのメモリ占有もなく、実行中プログラムに対してマイコンのリソースに負荷をかけずにリアルタイムなRAMモニタリングを実現します。

RAMモニタは、実行中プログラムの変数値、入力値、出力値などがモニタリング可能になることで、プログラム内の入出力といったデータフローの検証に役立ちます。

サニー技研のRAMモニタは、ルネサスエレクトロニクス製コンパイラHEWや、GreenHillsコンパイラが生成するマップファイルを読込み、シンボルによるアドレス設定が可能なので、参照するデータアドレスの設定にも迷うことはありません。
参照するRAMデータはリアルタイムにグラフ表示が可能なので、オシロスコープのように複数のデータの動きを視覚的に参照することもできます。

また、サニー技研のMicroPecker RAMモニタは、プログラム実行中でも任意のRAMアドレスに対してユーザ指定値への書き換えが可能です。
車載ECU開発の場面では、「適合」と呼ばれる最終的なパラメータ調整が行われます。プログラム実行中にパラメータテーブルを書き換えて機能調整に使われます。

サニー技研のMicroPecker RAMモニタは、付属のGUIアプリケーションからボタンひとつでRAMデータの書き換えが可能です。

RAMモニタイメージ

 

サニー技研RAMモニタ製品ラインナップ

MicroPecker ECU適合RAMモニタ for Highspeed Single Wire 《S810-MP-R1》

MP-R1

ルネサスエレクトロニクス製NSD一線式デバッグインターフェイス搭載32bitマイコンに対応したリアルタイムRAMモニタです。

マイコンのデバッグインターフェイスに接続することで、プログラム実行中のマイコンに負荷をかけずにリアルタイムにマイコンからのRAMデータのモニタリング、ロギングが可能です。
また、プログラム実行中に、任意のアドレスのRAM値の読み出し、書き換えが可能であるため、プログラム実行を止められない状態でのデバッグ、パラメータ適合に最適です。

オプション製品のインターフェイス変換ユニットを装着することで、AUD、NBD、N-Wireなど各種デバッグインターフェイス搭載マイコンにも対応します。

 

デバッグI/F 対応マイコン オプションユニット
NSD ルネサスエレクトロニクス製マイコン
R32C/100シリーズ
AUD ルネサスエレクトロニクス製マイコン
SH7047, SH7050, SH7147, SH72Ax, SH7450
S810-MP-EX1
NBD ルネサスエレクトロニクス製マイコン
V850E/PG2
S810-MP-EX4
N-Wire ルネサスエレクトロニクス製マイコン
V850E2/Fx4, V850E2/PJ4, RH850/C1x, RH850/P1M, RH850/F1K, RH850/F1L
S810-MP-EX5
OCD ルネサスエレクトロニクス製マイコン
RL78/F13, RL78/F14, RL78/F15
S810-MP-EX6
Nexus Freescale Semiconductor製マイコン
MPC564xA, MPC5777M
S810-MP-EX7
BDM Freescale Semiconductor製マイコン
S12ZVx
S810-MP-EX8

 

MicroPecker ECU適合RAMモニタ for Highspeed Single Wire 《S810-MP-R1》

MicroPecker ECU適合RAMモニタ for Highspeed Single Wireの詳細はこちらのページをご覧ください。

 

MicroPecker ECU適合RAMモニタ for Renesas OCD 《S810-MP-R2》

MP-R2

ルネサスエレクトロニクス製OCDインターフェイス搭載16bitマイコンに対応したリアルタイムRAMモニタです。

マイコンのOCDインターフェイスを利用することにより、RAMモニタ用の常駐プログラムは不要なのでローエンド・マイコンでもマイコンに余計な負荷をかけずリアルタイムにRAMデータのモニタリング、ロギングが可能です。

プログラム実行中に、任意のアドレスのRAM値の読み出し、書き換えが可能であるため、プログラム実行を止められない状態でのデバッグ、パラメータ適合に最適です。

 

デバッグI/F 対応マイコン
OCD ルネサスエレクトロニクス製マイコン
R8C/32, R8C/33, R8C/34, R8C/54, R8C/56, M16C/5M, M16C/5L

 

MicroPecker RAMモニタ for Renesas OCD 《S810-MP-R2》

MicroPecker ECU適合RAMモニタ for Renesas OCDの詳細はこちらのページをご覧ください 。

 

MicroPecker ECU適合RAMモニタ for JPwire 《S810-MP-R3》

MP-R3

1線式デバッグインターフェイスのJPwire搭載マイコンに対応したリアルタイムRAMモニタです。

車載電子制御システム標準化団体のJasParが策定した1線式標準インターフェースを利用することにより、マイコンに余計な負荷をかけずリアルタイムにRAMデータのモニタリング、ロギングが可能です。

プログラム実行中に、任意のアドレスのRAM値の読み出し、書き換えが可能であるため、プログラム実行を止められない状態でのデバッグ、パラメータ適合に最適です。

 

デバッグI/F 対応マイコン
JPwire Spansion製マイコン
FR81S MB91520シリーズ, FR81S MB91580Mシリーズ, FR81S MB91580Sシリーズ

 

MicroPecker RAMモニタ for JPwire 《S810-MP-R3》

MicroPecker ECU適合RAMモニタ for JPwireの詳細はこちらのページをご覧ください 。

 

RTD RAM Monitor for M32R/ECU 《S810-RTDM32R》

S810-RTDM32R

RTD RAMモニタは、M32R/ECUに組み込まれているリアルタイムデバッガ(これを略してRTD) 機能を利用して実行中の内蔵RAM内容をモニタリング、ファイルとして記録、 書き換えを行うことが可能です。

このRTD機能はMCUの外部からのコマンドを使用して、リード/ライトするための特別なシリアルI/Oです。 RTDと内蔵RAM間のデータ転送はM32R内部バスとは別の専用バスを通じて行うため、 M32R/ECUのコード実行を停止させることなくリード/ライト可能です。

 

デバッグI/F 対応マイコン
J-TAGまたはRTDインターフェイス(5V) ルネサスエレクトロニクス製マイコン
M32R/ECUシリーズ
32170/32174グループ, 32172/32173グループ, 32171グループ, 32176グループ, 32180グループ, 32182グループ, 32192グループ

 

RTD RAM Monitor for M32R/ECU 《S810-RTDM32R》

RTD RAM Monitor for M32R/ECUの詳細はこちらのページをご覧ください 。