RXCubeSuite+のRAMモニタ機能について(rx_qs_RAM_monitor-TTS

RX⽤CubeSuite+のRAMモニタ機能について
CubeSuite+はユーザプログラム実行中にメモリやIOレジスタの値の変化を
確認できるRAMモニタ機能を持っています。
本資料はRAMモニタ機能について説明します。
株式会社ルネサス ソリューションズ
ツール技術部
2014/2/20
Rev. 1.01
©2014 Renesas Solutions Corp., All rights reserved.
TTS-UD-13-0105-02
RAMモニタ機能(プログラム実⾏中のメモリ内容表⽰)について
*1 CS+の設定
 2種類の⽅法があります。
ここで切り替え
 デバッグ専⽤のDMAを使⽤して実現する⽅法。
 リアルタイムRAMモニタ機能を使⽤して実現する⽅法。
デバッグ専⽤のDMAを
使⽤して実現する⽅法
「はい」を選択
リアルタイムRAMモニタ機能
を使⽤して実現する⽅法
使⽤可能なエミュレータ
E1/E20の両⽅で使⽤可能
E20でのみ使⽤可能
表⽰パネル
メモリパネルおよびウォッチパネル(下記の設定で切り替え)
「実⾏中を⼀瞬停⽌して
アクセスする」の設定 *1
はい
メリット
・タイマのカウントレジスタや
・プログラムを⼀切⽌めずに監視が可
DMAC,DTCによるアクセスなどCPU
能です。
とは無関係に値が変化する領域も監視 ・R/Wといったアクセス履歴も監視可
可能です。
能です。
・監視できる範囲に制限はありません。
デメリット
・デバッグ専⽤DMAによるアクセス
とCPUからのアクセスが競合すると
DMAによるアクセスサイクル分(通常
1サイクル)プログラムが停⽌します。
・R/Wといったアクセス履歴は監視で
きません。
いいえ
・タイマのカウントレジスタや
DMAC,DTCによるアクセス等CPUと無
関係に値が変化する領域はCPUが読み
ださないかぎり監視できません。
・監視できる範囲は最⼤4096バイト
(最⼤1024バイト×4)です。
リアルタイムRAMモニタを使⽤する場合は、38ピンコネクタを使⽤してマイコンのトレース端⼦をE20に接
続する必要があります。
2
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(デバッグ専⽤DMAを使⽤)の使⽤⽅法(E1,E20)
 デバッグ・ツールプロパティの[デバッグ・ツール設定]タブの[実⾏中のメ
モリアクセス]カテゴリの内容を以下のように設定してください。
「はい」を選択
「はい」を選択
表⽰更新間隔(100〜65500まで
を100単位)を設定します。
 表⽰したい領域をメモリパネルで開いてください。
変数、IOレジスタの内容を表⽰したい場合は対象をウォッチパネルに登録
してください。
3
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(デバッグ専⽤DMAを使⽤)の使⽤⽅法(E1,E20)
 プログラムを実⾏すると設定した表⽰間隔でメモリパネル、ウォッチパネ
ル上にデータを表⽰します。
メモリパネル表示
ウォッチパネル表示
プログラム実行中のデータを表示
 メモリパネル、ウォッチパネルからプログラム実⾏中に書き込みを⾏うこ
とができます。
4
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(デバッグ専⽤DMAを使⽤)の使⽤⽅法(E1,E20)
 デバッグ専⽤のDMA使⽤時のプログラムの停⽌について
デバッグ専⽤のDMAによるメモリ参照/変更によってユーザプログラムは⼀
瞬停⽌しますが、お客様のプログラム実⾏に⼤きな影響は与えません。
理由の⼀つ⽬は、デバッグ専⽤のDMAを使⽤していることで、従来製品の
ようにmSオーダでプログラムを⽌めるということは無く、数サイクルでアク
セスできるためです。
⼆つ⽬は、RXの内部バスはハーバードアーキテクチャとなっているため、
同⼀資源へのアクセスが発⽣しない限り、ユーザプログラムの停⽌が発⽣す
ることはありません。
たとえば、ユーザプログラムがコードフェッチ中にエミュレータからRAM
を読みだした場合、フェッチには影響はありません。
5
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(リアルタイムRAMモニタを使⽤)の使⽤⽅法(E20)
 デバッグ・ツールプロパティの[デバッグ・ツール設定]タブの[トレース]
カテゴリおよび[実⾏中のメモリアクセス]カテゴリの内容を以下のように
設定してください。
「リアルタイムRAMモニタ」を選択
「CPU実⾏優先」(推奨):プログラムを停⽌
しないでRAMモニタします。ただし、取得する
情報にロスト(P7を参照ください)が発⽣する
可能性があります。
「トレース出⼒優先」:ロストはありませんが、
プログラムが停⽌する可能性があります。
「いいえ」を選択
「はい」を選択
表⽰更新間隔(100〜65500
を100単位)を設定します。
6
 表⽰したい領域をメモリパネルで開いてください。 「はい」を選択
変数、IOレジスタの内容を表⽰したい場合はウォッチパネルに登録してウ
ォッチパネルで確認してください。
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(リアルタイムRAMモニタを使⽤)の使⽤⽅法(E20)
 プログラムを実⾏すると設定した表⽰間隔でメモリパネル上にデータおよび
アクセス履歴、ウォッチパネル上にデータを表⽰します。
メモリパネル表示
ウォッチパネル表示
ライトした領域
リードした領域
プログラム実行中のデータを表示
未アクセス
領域
 DMAC,DTCによるアクセス、タイマのカウントレジスタ等CPUがアクセス
しない内容は更新されません。
 メモリパネル、ウォッチパネルからプログラム実⾏中に書き込みを⾏うこと
ができますが、書き込み時はデバッグ専⽤DMAを使⽤するためプログラム
が⼀瞬停⽌します。
7
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(リアルタイムRAMモニタを使⽤)でロストが発⽣し
た場合(E20)
マイコンから出⼒されるトレース情報にロスト(情報抜け)が発⽣する場合があります。
メモリパネル、ウォッチパネルはロストが発⽣した時点でロスト表⽰(メモリパネルは灰⾊
表⽰、ウォッチパネルは?を表⽰します)し、新規に情報を取得し直します。
頻繁にロストが発⽣する場合は、メモリパネル上で表⽰しているアドレス範囲や、ウォ
ッチパネルに登録している変数の数を減らしてください。
それでもロストが発⽣する場合は、デバッグ・ツールプロパティの[デバッグ・ツール設
定]タブの[トレース]カテゴリの外部トレース出⼒を[トレース出⼒優先]にしてください。
ただしこの場合、ロストは発⽣しませんがプログラムが停⽌しますので、リアルタイム性
は失われます。
ロスト発生
RAMモニタ表示中
8
表示データが全て
ロスト表示(灰色表
示)されます。
ロスト発生時の処理
©2014 Renesas Solutions Corp., All rights reserved.
ロスト発生後新規にアクセスが
あったアドレスが更新されます。
RAMモニタ機能(リアルタイムRAMモニタを使⽤)の注意事項(E20)
1. リアルタイムRAMモニタ機能の対象領域は,最⼤4096バイト(最⼤1024バイ
トまでの領域を4つ)です。
次に⽰す決定規則(優先順位)に従い,CubeSuite+がリアルタイム表⽰更新対
象を⾃動的に決定します(プログラム実⾏直前において,前⾯に表⽰しているパ
ネルのみが対象となります)。
(1)ウォッチパネルに表⽰しているウォッチ式を上から順に設定(複数のウォッ
チパネルをオープンしている場合,パネルの番号の⼩さい順)
(2)メモリパネルに表⽰しているメモリをアドレスの⼩さい順に設定(複数のメ
モリパネルをオープンしている場合,パネルの番号の⼩さい順)
なお,対象領域にリード禁⽌領域が含まれている場合は,その領域の表⽰更新は
⾏いません。
⾃動的に設定したリアルタイムRAMモニタ機能の対象領域外のメモリはプログ
ラム実⾏中に表⽰できません。(メモリパネルでは**、ウォッチパネルでは?を表
⽰します。)
リアルタイムRAM
モニタ機能対象領
域外の表示例
9
©2014 Renesas Solutions Corp., All rights reserved.
RAMモニタ機能(リアルタイムRAMモニタを使⽤)の注意事項(E20)
例1:
ウォッチパネルに変数を5つ以上登録している場合、5つ⽬以降の変数はプログラ
ム実⾏中に表⽰できません。
例2:
ウォッチパネルに変数を4つ登録して、メモリパネルを1つ開いている場合、メモ
リパネルはプログラム実⾏中に表⽰できません。
2.プログラム実⾏中に端⼦リセットやウォッチドッグタイマなどによるリセット
が発⽣した場合,それ以降のリアルタイムRAMモニタの動作は保証できません。
(正しい値を表⽰できない可能性があります。)
10
©2014 Renesas Solutions Corp., All rights reserved.
株式会社ルネサス ソリューションズ