アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法

Similar documents
MB-LCD1 アセンブラ・ライブラリによる制御

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

uPC1093 DS

uPC258,4558 DS

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

スライド 1

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

MB-LCD1 標準入出力関数による表示

Microsoft Word - Cubesuite+_78K0R.doc

Microsoft Word - Cubesuite+_V850_AM.doc

RD2.0S~RD150S DS

HD74HCT564, HD74HCT574

Microsoft Word - TC4011BP_BF_BFT_J_P8_060601_.doc

2SC1213, 2SC1213A データシート

Microsoft Word - TA79L05_06_08_09_10_12_15_18_20_24F_J_P11_070219_.doc

2SD667. 2SD667A データシート

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

Microsoft Word - TC4013BP_BF_J_P9_060601_.doc

RL78/F13, F14 割り込み要因判別方法

2SC458, 2SC2308 データシート

Microsoft Word - TC4538BP_BF_J_2002_040917_.doc

V850ES/KE2, V850ES/KF2, V850ES/KG2, V850ES/KJ2 デバイス・ファイル DF (V1.00) ユーザーズ・マニュアル

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

Microsoft Word - TC4017BP_BF_J_P10_060601_.doc

2SC460, 2SC461 データシート

uPA2000 Series DS

V850ES/HE3, V850ES/HF3, V850ES/HG3, V850ES/HJ3 デバイス・ファイル DF703757(V1.01) ユーザーズ・マニュアル

CR02AM-8 データシート <TO-92>

V850ES/FE3-L,V850ES/FF3-L,V850ES/FG3-L デバイス・ファイル DF703622(V1.00)ユーザーズ・マニュアル

HPシンクライアントイメージ入れ替え手順書

HD74LV2GT34A

The DatasheetArchive - Datasheet Search Engine

TDK Equivalent Circuit Model Library

AC08DSMA, AC08FSMA DS

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

HD74LV2G74A

V850ES/IE2 デバイス・ファイル DF703714(V1.01) ユーザーズ・マニュアル

TC74HC00AP/AF

アプリケーションノート AS-E402サンプルプログラム

タッチディスプレイランチャー

OTRS10 他社システムOTRS呼出利用手順書

TC74HC14AP/AF

評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

AN1609 GNUコンパイラ導入ガイド

CS+ RL78コンパイラ CC-RL V リリースノート

PN-T321

1

免責事項 Samsung Electronics は 製品 情報 および仕様を予告なく変更する権利を留保します 本書に記載されている製品および仕様は 参照のみを目的としています 本書に記載されているすべての情報は 現状有姿 のまま 何らの保証もない条件で提供されます 本書および本書に記載されているす

TRENDフォトビューアの起動方法と使い方

RL78開発環境移行ガイド RL78ファミリ間の移行 (コンパイラ編:コンパイラオプション・アセンブラオプション)(CA78K0R→CC-RL)

評価ボード キット 開発ツールご使用上の注意事項 1. 本評価ボード キット 開発ツールは お客様での技術的評価 動作の確認および開発のみに用いられることを想定し設計されています それらの技術評価 開発等の目的以外には使用しないで下さい 本品は 完成品に対する設計品質に適合していません 2. 本評価

TC7SET08FU_J_

2SK2313

MAC アドレス変更ツール MAC アドレスチェンジャー ユーザーズマニュアル User's Manual エレコム株式会社

Notes and Points for ADuCM320 Internal Flash memory

EIZO ScreenSlicer 取扱説明書

Visual DSP++ install and tutorial

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

EX-フォトビューアの起動方法と使い方

HP Primeバーチャル電卓

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

OSの切替えについて

HD74LS54 データシート


Cisco Start Switch 設定マニュアル設定のバックアップとリストア Cisco Small Business 年 1 月 20 日 第 1.0 版 株式会社ネットワールド

Sharpdesk V3.5インストレーションガイド:プロダクトキー編

スライド 1

HP ThinUpdateを使用したWESシンクライアントイメージリストア手順書

ColorNavigator 7使い方ガイド(ColorNavigator 6アップグレード編)

TC7WT126FU

HP Elitex3 評価ガイド シン クライアント 編

Notes and Points for TM4C123Gx Internal Flash memory

Microsoft PowerPoint - TLP184,185_TLP290,291 比較表 ppt

LTE モバイルルータ ソフトウェア更新手順 第 2 版 2017 年 9 月 富士通株式会社

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

TRENDフォトビューアの起動方法と使い方

[STEP2] アップデートの実行 1 起動中のソフトウェアを終了する 2 コントロールパネル を開き 表示方法を 小さいアイコン にし 管理ツール サービス を選択する お知らせ お使いのサーバーコンピューターが Windows 7 の場合は Windows スタートメニューから Windows

Microsoft Word - Training10_プリプロセッサ.docx

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

MEDIAPOINT HD ファームウェアリリースノート

Visual DSP++ install and tutorial

DF2B29FU_J_

DF2B6.8FS_J_

TM Bluetooth® Connector ユーザーズマニュアル

INDEX ソフトウェア使用許諾契約書 インストール時に必要なシステム NAVI OFFICE 2のセットアップ お問い合わせ NAVI OFFICE 2 セットアップマニュアル < NAVISTUDIO_EV_7-B >

RY_R8C38ボード RY-WRITER基板 自動書き込み・実行解説マニュアル

DF10G5M4N_J_

Total Disc Makerサイレントインストールガイド

目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

Windows Graphic Loader for Label Printers

Microsoft Word - プログラムをRAM.doc

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

目次 本書の取り扱いについて... 3 事前準備... 4 MultiPoint Server 2011 OEM 版のインストール (OS リカバリー用のディスク領域を使う場合の起動方法 )... 5 MultiPoint Server 2011 OEM 版のインストール (OS リカバリー用のメデ

HD74AC00 データシート

Notes and Points for TMPR454 Flash memory

Touch Pen Utility

EB-RL7023+SB/D2

はじめにお読みくださいfor HP Smart Zero Client v5.0

FC4510HT2バージョンアップマニュアル

Transcription:

アプリケーションノート マイコントレーニングボード MT-R300 割り込みプログラムのモニタデバッグ方法 1. 概要 マイコントレーニングボード MT-R300 に搭載しているルネサステクノロジ社の 16 ビットマイコン HD64F3062BF ( 以下 H8/3062BF マイコン ) では H8/300H 用モニタプログラム ( 以下モニタプログラム ) を内蔵フラッシュメモリに書込むことで 簡単なプログラムの評価をすることができます モニタプログラムは ユーザプログラムを RAM に書込んで実行します ユーザプログラムで割り込みの機能を使用している場合は RAM 上に仮想のベクタテーブルを設定し 本来のフラッシュメモリのベクタテーブルから仮想ベクタテーブルを介して割り込みプログラムを実行します 本アプリケーションノートでは 例として 16 ビットタイマチャネル 0 の割り込みを使っているプログラム (LED_PICOPICO_H8_Int) に仮想ベクタテーブルを設定する方法と HEW での必要な設定について説明します 本アプリケーションノートで使用するツール類は MT-R300 に付属する CD-ROM(Ver1.00) に収録されているバージョンのものとします H8/300H モニタプログラムは ルネサステクノロジ社が提供している H8/300H シリーズ用のモニタプログラムです ( ルネサステクノロジ社のサポート対象外 ) MT-R300 に付属する CD-ROM(Ver1.00) に収録している H8/300H モニタプログラムは MT-R300 用にサンハヤト株式会社がモディファイしたものです 2. 仮想ベクタテーブルのしくみ モニタプログラムでは ユーザープログラムの実行中に割り込みが発生すると 本来の割り込みベクタ ( フラッシュメモリに配置 ) が示すモニタプログラムの割り込みプログラムを実行します モニタプログラムの割り込みプログラムでは 仮想ベクタテーブル (RAM に配置 ) の該当するベクタが示すアドレス ( ユーザープログラムの割り込みプログラム ) にジャンプします ( ラッシ メモリ ) 128 ベクタテーブル 割り込みの発生 ユーザープログラム実行中に ユーザープログラムで設定した割り込みが発生した場合 本来のベクタアドレスが示すモニタプログラムの割り込みプログラムを実行します モ タプログラム PC( プログラムカウンタ ) 割り込みプログラム 仮想ベクタテーブル モニタプログラムの割り込みプログラムでは RAM 上の仮想ベクタテーブルの 発生した割り込みに該当するベクタが示すユーザープログラムの割り込みプログラムを実行します ー ープログラム PC( プログラムカウンタ ) 割り込みプログラム ー ープログラム ( モード 7 の場合 ) 図 1 仮想ベクタテーブルのしくみ ( モード 7 の場合 イメージ図 )

3. 仮想ベクタテーブルの設定 以下に仮想ベクタテーブルの C 言語の記述例を示します 仮想テーブルを配置する領域として新しいセクション ( 名前は任意 リストでは "V_Vector") を設定します #include <machine.h> #include "LED_PICOPICO_H8.h" #pragma interrupt (INT_IMIA0) ; 割り込み関数の拡張機能の設定とプロトタイプ宣言 INT_IMIA0 ; セクション ( 名前は任意 ) を宣言し 仮想ベクタテーブルに 割り込みプログラムの先頭アドレスを設定 static int counter_1sec; /*1 */ ITU.TISRA.BIT.IMFA0 = 0; /* */ counter_1sec++; /*1 */ 割り込みプログラム本体 if (counter_1sec>=100) /*1 100 10ms 100=1 */ counter_1sec=0; /*1 */ LED1 = ~LED1; /*LED1 */ LED2 = ~LED2; /*LED2 */ リスト 1 intprg_debug.c 4. HEW でのリンカオプションの設定 新しく設定したセクションとユーザープログラムが RAM の正しいアドレスに配置されるように リンカオプションを設定します モニタプログラム (MT-R300 に付属の CD-ROM に収納 ) では ユーザープログラムが使用できる RAM の先頭アドレス ( モード 7 の場合は FF040H モード 5 の場合は 1F8000H) に仮想ベクタテーブルの先頭アドレスを割り当てています したがって設定する仮想ベクタテーブルのアドレスは RAM の先頭アドレス+プログラムで使用する割り込みのベクタアドレスのオフセットとなります 16 ビットタイマのチャネル 0 コンペアマッチ A0 の割り込みベクタは アドバンストモードの場合 0060H ~ 0063H なので オフセットは 60H となります 表 1 各モードの仮想テーブル先頭アドレスと 16 ビットタイマチャネル 0 コンペアマッチ A0 割り込みのベクタアドレス 仮想テーブル先頭アドレス ( リセットベクタ ) ~ 全ての割り込みベクタを含む最終アドレス 16ビットタイマチャネル 0 コンペアマッチ A0 割り込みの仮想テーブルベクタアドレス モード 7 モード 5 FF040H ~ FF13Fh FF0A0H(FF040H + 60H) ~ FF0A3H 1F8000H ~ 1F80FFH 1F8060H(1F8000H + 60H) ~ 1F8063H

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法 ユーザープログラムやデータは 設定した仮想ベクタテーブルに重ならないように配置します 以下に HEW での設定方法を示します HEW の ビルド メニューより H8S,H8/300 Standard Toolchain... をクリックしてください 最適化リンカ タブをクリックし カテゴリ を セクション に設定します 編集 ボタンをクリックして 配置するアドレスとセクション名を設定します 図 2 HEW によるセクションの追加設定 ( モード 7 の場合 ) 仮想ベクタテーブル ( モード 7 の場合は FF0 0 ~ FF13FH) の下に配置 図 3 セクションの設定例 ( モード 7 の場合 ) 上記の設定例では リザーブ領域を含めた全ての割り込みベクタを含めた領域 ( モード 7 の最終アドレスは FF13F モード 5 では 1F80FFH) を仮想テーブルのセクションとして設定しています プログラムでタイマ割り込みのみを使っている場合 ベクタアドレスは FF0A0H ~ FF0A3H に設定されるので ( アドバンストモードの場合はアドレスは 4 バイトで表現します ) CV_Vector 以降の各セクションを FF0A4H から割り当てることもできます この設定はタイマ割り込みのみを使用する場合となりますので タイマ割り込み以外の割り込みをプログラムに追加した場合は 各セクションのアドレスを追加した割り込みの仮想テーブルのセクションに重ならないように考慮する必要があります FF0A0H タイマ割り込み ベクタアドレス FF0A3H FF0A H FF13FH FF1 0H 使用する割り込みのベクタアドレスのす 下から他のセクションを設定すると A を なく使えますがプログラムに他の割り込みを追加した場合 意が必要です 全ての割り込みベクタを含んだアドレスの下から他のセクションを設定した場合は A の 使用領域ができますがプログラムに他の割り込みを追加しても変更する必要はありません

5. 複数の割り込みを使用している場合 ユーザープログラムで複数の割り込みを使用している場合は 割り込みごとに新しいセクションとテーブルを設定するか 該当するベクタテーブルのアドレスが近い場合はダミーアドレスを挿入して設定します 以下に 6 ビットタイマのチャネル 0 とチャネル 1 の割り込みを使う場合の設定例を示します ( ヘッダファイルのインクルード 割り込み関数の拡張機能の設定とプロトタイプ宣言は省略しています ) INT_IMIA0, dummy, /* IMIB0 */ dummy, /* OVI0 */ dummy, /* Reserved */ INT_IMIA1 ; 使っていないベクタに アドレスを設定する 省略 void INT_IMIA1(void) 割り込みプログラム本体 省略 void dummy(void) ; リスト 2 複数の割り込みベクタの設定例 (1 つのセクション テーブルに設定する例 ) INT_IMIA0 ; _02 ベクタごとにセクションを設定する リンカオプションで つのセクションを配置する必要があります void (*const VEC_TBL2[])(void)= INT_IMIA1 ; 省略 割り込みプログラム本体 void INT_IMIA1(void) 省略 リスト 3 複数の割り込みベクタの設定例 ( セクション別に設定する例 )

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法 6. HEW でのコンフィギュレーションごとの設定例 MT-R300 で割り込みプログラムをモニタプログラムでデバッグする場合と フラッシュメモリに書込む場合とでは 仮想ベクタテーブルの設定等内容が異なります HEW ではビルド対象となるファイルを コンフィギュレーション ごとに分けて設定することができます ここでは デバッグ時の設定を Debug コンフィギュレーション リリース時 ( フラッシュメモリに書込む ) の設定を Release コンフィギュレーションに分けて保存しておくこととします 条件コンパイルで分ける方法とビルド対象の設定で分ける方法の 2 つを紹介します 条件コンパイルでソースを分ける方法 条件コンパイル (#ifdef ~ #else ~ #end) でコンフィギュレーションによってコンパイルするソースを分けます 以下にソース例を示します この例ではマクロ名 debug が定義されていたら #ifdef 以下がコンパイルされます debug の定義は コンパイルオプション -DEFine で設定できます Debug コンフィギュレーションでのみ設定します #include <machine.h> #include "LED_PICOPICO_H8.h" #ifdef debug #pragma interrupt (INT_IMIA0) ; #endif INT_IMIA0 ; が定義されていたら仮想ベクタテーブルに割り込みプログラムの先頭アドレスを設定 #ifdef debug #else interrupt(vect=24) #endif が定義されている場合の関数の まり が定義されていない場合は本来のベクタテーブルに割り込み関数の先頭アドレスを設定する static int counter_1sec; /*1 */ ITU.TISRA.BIT.IMFA0 = 0; /* */ counter_1sec++; /*1 */ if (counter_1sec>=100) /*1 100 10ms 100=1 */ counter_1sec=0; /*1 */ 割り込みプログラム本体 LED1 = ~LED1; /*LED1 */ LED2 = ~LED2; /*LED2 */ リスト 4 条件コンパイルで分ける例 HEW のコンフィグレーションは ビルドを行う際のフェーズ ( アセンブラ コンパイラ リンカ ) の構成や 各フェーズでのオプション設定を保存しています コンフィグレーションを切り替えることによって 異なるオプションの組み合わせを効率良く切り替えてビルドすることができます

以下に HEW でのマクロ名の定義の設定方法を示します HEW の ビルド メニューより H8S,H8/300 Standard Toolchain... をクリックしてください コンパイラ タブをクリックし カテゴリ を その他 に設定します 設定するコンフィギュレーションが Debug になっていることを確認して ユーザ指定オプション のウィンドウに -DEFine=debug と設定してください F マクロ名 図 4 コンパイラオプション (-DEFine オプションによるマクロ名の設定 ) ビルド対象のファイルをコンフィギュレーションごとに設定する方法 フラッシュメモリに書込む割り込みプログラムとモニタプログラムでデバッグする割り込みプログラムを別のファイルにしておき コンフィギュレーションごとにビルド対象を変えます フラッシュメモリに書込む割り込みプログラムを intprg.c ファイル モニタプログラムでデバッグする割り込みプログラムを intprg_debug.c ファイルとしています Debug コンフィギュレーションでは intprg.c をビルド対象から除外し Release コンフィギュレーションでは intprg_debug.c をビルド対象から除外します ビルド対象から外すファイルを右クリックして ビルドから除外 をクリックしてください ファイル上に赤矢印が表示され ビルド対象から外されます 現在のコンフィギュレーション コンフィギュレーションでは を除外します 図 5 ビルド除外の設定

アプリケーションノート MT-R300 割り込みプログラムのデバッグ方法 以下に二つのプログラム例を示します #include <machine.h> #include "LED_PICOPICO_H8.h" #pragma interrupt (INT_IMIA0) ; INT_IMIA0 ; static int counter_1sec; /*1 */ ITU.TISRA.BIT.IMFA0 = 0; /* */ counter_1sec++; /*1 */ if (counter_1sec>=100) /*1 100 10ms 100=1 */ counter_1sec=0; /*1 */ LED1 = ~LED1; /*LED1 */ LED2 = ~LED2; /*LED2 */ #include <machine.h> #include "LED_PICOPICO_H8.h" interrupt(vect=24) static int counter_1sec; /*1 */ ITU.TISRA.BIT.IMFA0 = 0; /* */ counter_1sec++; /*1 */ if (counter_1sec>=100) /*1 100 10ms 100=1 */ counter_1sec=0; /*1 */ LED1 = ~LED1; /*LED1 */ LED2 = ~LED2; /*LED2 */ リスト 5 ビルド対象を設定することで分ける例 上記の例では 同じ割り込みプログラムの本体が二つのファイルに存在することになるので 割り込みプログラムの内容を変更する場合は 必ず二つのファイルの割り込みプログラムの内容を一致させるようにしてください

本資料について 本資料は 電子工作や電子回路 パーソナルコンピュータの操作について一般的な知識をお持ちの方を対象にしています 本資料を元に操作するには ルネサステクノロジ社製 H8/300H シリーズマイコンについての知識や開発環境などが必要です Microsoft Windows は米国 Microsoft 社の米国およびその他の国における登録商標です その他 記載されている製品名は各社の商標または登録商標です 本資料のご利用にあたって 本資料に掲載している内容は お客様が用途に応じた適切な製品をご購入頂くことを目的としています その使用により当社及び第三者の知的財産権その他の権利に対する保証 又は実施権の許諾を意味するものではありません また 権利の侵害に関して当社は責任を負いません 本資料に記載した情報を流用する場合は お客様のシステム全体で充分評価し適用可能かご判断願います 当社では適用可能判断についての責任は負いません 本資料に記載してある内容は 一般的な電子機器 ( 学習教材 事務機器 計測機器 パーソナル機器 コンピュータ機器など ) に使用されることを目的としています 高い品質や信頼性が要求され 故障や誤作動が直接人命を脅かしたり人体に危害を及ぼす恐れのある 医療 軍事 航空宇宙 原子力制御 運輸 移動体 各種安全装置などの機器への使用は意図も保証もしておりません 本資料の一部 又は全部を当社の承諾なしで いかなる形でも転載又は複製されることは堅くお断りします 全ての情報は本資料発行時点のものであり 当社は予告なしに本資料に記載した内容を変更することがあります 本資料の内容は慎重に制作しておりますが 万一記述誤りによってお客様に損害が生じても当社はその責任を負いません 本資料に関してのお問合せ その他お気付きの点がございましたら 当社ホームページのお問い合わせページ (https:// www.sunhayato.co.jp/inquiry/) よりお問合せください 本資料に関する最新の情報はサンハヤト株式会社ホームページ (http://www.sunhayato.co.jp/) に掲載しております Copyright 2008 Sunhayato Corp. 2008 年 8 月 20 日発行 REV.1.00 SG043273 ホームページ :www.sunhayato.co.jp