H8SX1544用(AHE-KIT) - エーワン

文書 OSEK-RENE-CAT302.doc
【H-debugger 対応】
TOPPERS/OSEK カーネル
アプリケーションノート
H8SXシリーズ(H−UDI)
H8SX/1544F ルネサスC[Hew]版
2008/09/24
Rev1.50(2008/09/24)
-1-
文書 OSEK-RENE-CAT302.doc
TOPPERS/OSEK Kernel
Toyohashi Open Platform for Embedded Real-Time Systems/
OSEK Kernel
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
Copyright (C) 2004-2006 by Witz Corporation, JAPAN
Copyright (C) 2008 by A-one Corporation, JAPAN
上記著作権者は,以下の (1)∼(4) の条件か,Free Software Foundation によって公表され
ている GNU General Public License の Version 2 に記述されている条件を満たす場合に限
り,本ソフトウェア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・
再配布(以下,利用と呼ぶ)することを無償で許諾する.
(1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
権表示,この利用条件および下記の無保証規定が,そのままの形でソー
スコード中に含まれていること.
(2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
用できる形で再配布する場合には,再配布に伴うドキュメント(利用
者マニュアルなど)に,上記の著作権表示,この利用条件および下記
の無保証規定を掲載すること.
(3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
用できない形で再配布する場合には,次のいずれかの条件を満たすこ
と.
(a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
作権表示,この利用条件および下記の無保証規定を掲載すること.
(b) 再配布の形態を,別に定める方法によって,TOPPERS プロジェクトに
報告すること.
(4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
害からも,上記著作権者および TOPPERS プロジェクトを免責すること.
本ソフトウェアは,無保証で提供されているものである.上記著作権者および TOPPERS プロ
ジェクトは,本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わない.ま
た,本ソフトウェアの利用により直接的または間接的に生じたいかなる損害に関しても,その責
任を負わない.
-2-
文書 OSEK-RENE-CAT302.doc
目
第1章
次
概要 .............................................................................................................................. 5
1−1.はじめに ...................................................................................................................... 5
1−2.関連文書 ...................................................................................................................... 5
1−3.開発環境 ...................................................................................................................... 5
1−4.製品梱包内容............................................................................................................... 5
1−5.サポート ...................................................................................................................... 5
第2章
TOPPERS/OSEK カーネルの開発階層........................................................................ 6
第3章
サンプルアプリケーションの概要(cat302)................................................................... 7
3−1. サンプルアプリケーションの構成........................................................................... 7
3−2. 動作フロー(ゼネラル) ......................................................................................... 8
3−3.
H-debugger 対応に必要なポーティング............................................................... 15
3−4.
H-debugger でのプロファイル表示(DEF 7.00B 以上) ......................................... 16
第4章
ハード構成およびシステム構成 ................................................................................. 17
4−1. ハード構成............................................................................................................. 17
4−2.システム構成............................................................................................................. 19
4−2−1.システムブロック図(サンプル) ................................................................. 19
4−2−2.CAT302 のプログラムメモリ MAP ............................................................... 20
4−2−3.プログラムサイズの詳細 MAP ...................................................................... 20
4−2−4.評価ボード(AHE261)のディップ SW の設定と I/O マップ表 ....................... 21
4−2−5.CAT302 と AHE261 を接続する変換ケーブルの配線表 ............................... 23
第5章
サンプルアプリケーションの準備 .............................................................................. 25
5−1.Hew での準備(ルネサス製) .................................................................................. 25
5−2.H-debugger(DEF.exe)での準備(Aone 製)............................................................ 28
5−3.サンプルアプリケーションを走らせる前の準備 ...................................................... 32
5−4.サンプルアプリケーションを走らせます。.............................................................. 32
-3-
文書 OSEK-RENE-CAT302.doc
第6章
新規プロジェクトを追加する場合の手順例................................................................ 34
6−1.プロジェクトタイプの作成 ....................................................................................... 34
6−2.新規プロジェクトを登録します。 ............................................................................ 36
第7章
備考 ............................................................................................................................ 43
7−1.おわりに .................................................................................................................... 43
-
-4-
文書 OSEK-RENE-CAT302.doc
第1章
概要
1−1.はじめに
本アプリケーションノートは、TOPPERS/OSEK カーネルをもとに「H-debugger」と
「CAT302」用にポーティングしたサンプルソフトです。
サンプルソフトの他アプリケーションへの利用/変更に関しての制限は一切ありませんので自
由にお使い下さい。ただし、このサンプルソフトの不具合により発生した損害に対しての責任、
及び、修正の義務は負いません。また、このサンプルソフトに関する質問の回答義務も負えませ
んが、メールでのお問い合わせに関しては、弊社責任の範囲内でしたら出来るだけ御答えするよ
うに努めます。Mail: cat-i@aone.co.jp
1−2.関連文書
本アプリケーションは、下記ドキュメントを参考にして作成しました。
1)TOPPERS/OSEK カーネル外部仕様書 −−−−−−−−−−−
株式会社ヴィッツ製
2)TOPPERS/OSEK カーネル SG 取扱説明書 −−−−−−−−−
株式会社ヴィッツ製
3)TOPPERS/OSEK カーネルアプリケーションノート −−−−
株式会社ヴィッツ製
4)OSEK/VDX Operating System Ver2.2.1
−−−−−−−
OSEK/VDX 仕様
5)OSEK/VDX Binding Specification Ver1.4.2 −−−−−−
OSEK/VDX 仕様
6)OSEK/VDX OIL Specification Ver2.5
OSEK/VDX 仕様
−−−−−−−
*OSEK/VDX が公開している仕様書は、http://www.osek-vdx.org/ よりダウンロードにより入
手して下さい。
1−3.開発環境
1)Hew Version 4.04.01.001−−−−−−−−−−−−−−−−Renesas 製
2)H8S,H8/300 Standard Toolchain Version 6.2.00 −−−−−Renesas 製
にて作成しましたので各自用意をして下さい。
1−4.製品梱包内容
1)サンプルソフト用 CD(本書 PDF ファイルも含む)−−−− 1枚
・本製品の価格体系は、CD 配布の実費のみになっております。
・AHE-KIT(AHE261)と、サンプル確認用ケーブル(AHC-SAMP1)は、本製品に含まれ
ていません。
(別売り)
1−5.サポート
TOPPERS/OSEK に関するサポートが必要な場合は、TOPPERS ホームページの「関連製品」
「サポート・サービス」の項をご覧になり、御利用下さい。
http://www.toppers.jp/ <−− TOPPERS ホームページ
-
-5-
文書 OSEK-RENE-CAT302.doc
第2章
TOPPERS/OSEK カーネルの開発階層
¥toppers_osek
¥config
// 機種依存階層
¥h8sx-renesas-1544
// 開発環境分類
+CPU 依存部
¥cat302
// システム依存部
¥h8sx1544st
// システム依存部
¥include
// インクルードファイル階層
¥kernel
// カーネル共通部階層
¥sample
// サンプル階層(未使用)
¥sg
// システムジェネレータ階層
¥impl_oil
// OIL 記述の実装定義部階層
¥syslib
// システムライブラリ階層
¥h8sx-renesas-1544
// 開発環境分類
+CPU 依存部
¥cat302
// システム依存部
¥h8sx1544st
// システム依存部
¥tools
// Hew 管理階層
¥h8sx-renesas-1544
// 開発環境分類
+ワークスペース
¥cat302
// プロジェクト1
¥appsrc
// サンプルソース [*.c]
¥debug
// オブジェクト
¥h8sx1544st
[*.abs]
// プロジェクト2
¥appsrc
// サンプルソース [*.c]
¥debug
// オブジェクト
¥Project
[*.abs]
// 新規プロジェクト作成用
// テンプレート
本サンプルソフトは、2 本のプロジェクトを用意しています。
1)プロジェクト1
¥cat302
実行オブジェクト【cat302.abs/cat302.mot】
本アプリケーションノートのサンプルプロジェクト
2)プロジェクト2
¥h8sx1544st 実行オブジェクト【h8sx1544st.abs/h8sx1544st.mot】
【株式会社ヴィッツ】殿作成のサンプルを H8SX/1544 用にポーティングしたプロジェクト
・TOPPERS/OSEK カーネルアプリケーションノート【株式会社ヴィッツ製】
青字部分は、TOPPERS/OSEK 正式リリース(オープンソース)になります。その他は弊社で改造
および作成をしました。
-
-6-
文書 OSEK-RENE-CAT302.doc
第3章
サンプルアプリケーションの概要(cat302)
3−1.
サンプルアプリケーションの構成
サンプルアプリケーションは、下記の構成にて作成しました。
6 個のタスク
1)
① MainTask --------- 各 Task の起動処理
② Task1 --------------- LCD 表示タスク(50ms 毎のサイクル処理)
③ Task2 --------------- LED 出力タスク(20ms 毎のサイクル処理)
④ Task3 --------------- ブザー出力タスク(イベントによる起動)
⑤ Task4 --------------- シリアル(SIO)送受信タスク(200ms 毎のサイクル処理)
⑥ Task5 --------------- メロディタスク(1ms 毎のサイクル処理)
8 個の割込み処理
2)
① システムタイマー
TPU0(TGR0A)1ms 割込み SysTimerInt()
② 動作確認用タイマー
TPU1(TGR1A)1 ショット
CounterInt()
③ SCI0 受信エラー
ERI_0
ErrHwSerialInt0()
④ SCI0 受信
RXI_0
RxHwSerialInt0()
⑤ SCI0 送信終了
TEI_0
TxHwSerialInt0()
⑥ SCI2 受信エラー
ERI_2
ErrHwSerialInt2()
⑦ SCI2 受信
RXI_2
RxHwSerialInt2()
⑧ SCI2 送信終了
TEI_2
TxHwSerialInt2()
3)6個のイベント
MainEvt/T1Evt/T2Evt/T3Evt/T4Evt/T5Evt
4)
5個のアラーム
MainCycArm/SetEvt1Arm/SetEvt2Arm/SetEvt4Arm/SetEvt5Arm
5)
2個のコールバック処理
CallBackArm(TimerCallBack コールバック利用のソフトタイマ)/SampleArm
6)
1個のウォッチドッグタイマー
WatchDogClear
7)
スタートアップフックルーチン
ErrorHook
8)
シャットダウンフックルーチン
ShutdownHook
9)
プレタスク/エラーフックルーチン
PreTaskHook/ErrorHook
10)1 個のアプリケーションモード
AppMode1
-
-7-
文書 OSEK-RENE-CAT302.doc
3−2.
動作フロー(ゼネラル)
PRIORITY = 14
MainTask
イベント待
WatchDog クリア
ウォッチドッグクリア WatchDogClear()
全 Task の Status Get
全 Task の状態を取得 GetTaskState(....)
SW 入力処理
P40SW ON
P41SW ON
P42SW ON
P43SW ON
P44SW ON
PA0PB ON
P45SW ON
P47SW ON
Task3 Wait
-
20ms 毎のサイクル起動 WaitEvent(MainEnv)
Task 起動の為、SW 入力
SwInput()
Yes LCD Task1 起動 サイクル(50ms 毎)
Yes LED Task2 起動 サイクル(20ms 毎)
Yes Buz Task3 起動
イベント起動
Yes SIO Task4 起動
サイクル(200ms 毎)
Yes Mel Task5 起動
サイクル(1ms 毎)
システムテストの起動タイミング
Yes TPU1 アラームコールバック起動
Yes ShutDown 起動/WDG.TimeUP により再起動
Yes Task3 にイベント発行 SetEvent(Task3,T3Evt)
-8-
文書 OSEK-RENE-CAT302.doc
PRIORITY = 10
LCD Task1
LCD 表示タスク(50ms 毎に LCD 表示する。)
イベント待
50ms 毎のサイクル起動 WaitEvent(T1Env)
P40SW ON
yes
LCD 表示して良いかの判
自タスクをサスペンドす
定と処理数カウントする。
る。
① ProcessCntDisp()
③AppSuspendTask()
表示 OK
yes
LCD にデモ表示
(..
...
..
.を表示する。
)
LCD の全画面表示処理
内部メモリにセットされ
た表示データを表示する。
②AllLcdDisp()
①
ProsessCntDisp()
現在のアクティブ Task と自 Task の関係で、LCD デバイスを使用して良いか判断し、
かつ、処理ループ数をカウント表示する。(Task1:10000~19999)
②
AllLcdDisp()
内部メモリ「LcdBuf[LCDY][LCDX]」に登録された表示データを LCD デバイスに表
示する。
③
AppSuspend()
自タスクのサスペンド情報を表示後、TerminateTask()を呼ぶ。
-
-9-
文書 OSEK-RENE-CAT302.doc
PRIORITY = 11
LED Task2
LED 表示タスク(20ms 毎に LED 表示する。)
イベント待
20ms 毎のサイクル起動 WaitEvent(T2Env)
P41SW ON
yes
LCD 表示して良いかの判
自タスクをサスペンドす
定と処理数カウントする。
る。
① ProcessCntDisp()
③AppSuspendTask()
20ms 毎に左シフト LED
表する。
表示 OK
yes
LCD にデモ表示
(:::::を表示する。
)
①
ProsessCntDisp()
現在のアクティブ Task と自 Task の関係で、LCD デバイスを使用して良いか判断し、
かつ、処理ループ数をカウント表示する。(Task2:20000~29999)
③
AppSuspend()
自タスクのサスペンド情報を表示後、TerminateTask()を呼ぶ。
-
- 10 -
文書 OSEK-RENE-CAT302.doc
PRIORITY = 12
ブザー出力タスク
Bzz Task3
MainTask からのイベント待ち
イベント待
WaitEvent(T3Env)
P42SW ON
yes
LCD 表示して良いかの判
自タスクをサスペンドす
定と処理数カウントする。
る。
① ProcessCntDisp()
③AppSuspendTask()
PF7-PB ON にて、
ブザー出力(+100Hz)
PC5-PB ON にて、
ブザー出力(-100Hz)
表示 OK
yes
LCD 現周波数表示する。
周波数変化
有り
ブザー出力する。
②Buzzer(周波数)
①
ProsessCntDisp()
現在のアクティブ Task と自 Task の関係で、LCD デバイスを使用して良いか判断し、
かつ、処理ループ数をカウント表示する。(Task3:30000~39999)
②
Buzzer()
TPU1 から、Buzzer に対して指定周波数を出力する。
③
AppSuspend()
自タスクのサスペンド情報を表示後、TerminateTask()を呼ぶ。
-
- 11 -
文書 OSEK-RENE-CAT302.doc
PRIORITY = 13
SIO Task4
SIO 送受信タスク(2chの送受信を割込み処理で記述)
イベント待
200ms 毎のサイクル起動 WaitEvent(T4Env)
P43SW ON
yes
LCD 表示して良いかの判
自タスクをサスペンドす
定と処理数カウントする。
る。
① ProcessCntDisp()
③AppSuspendTask()
SCI0 受信待ち管理タイマ
スタートする。
SCI0(TxD0)より、指定文
字を送信割り込み処理に
て送信する。
SCI1 受信待ち管理タイマ
スタートする。
SCI1(TxD1)より、指定文
字を送信割り込み処理に
て送信する。
②受信処理
RxD0/RxD1 の受信
割込み終了を待つ
受信処理終了?
yes
RxD0/RxD1 の受信データ
を LCD に表示する。
-
- 12 -
文書 OSEK-RENE-CAT302.doc
②受信処理
Task4 の受信処理
RxD1 受信データを待つ
RecvSerialTxt1(.....)
RxD1 受信終了
yes
yes
受信待 TimeUp
RxD1 受信データを LCD
TimeUp 通知用表示をセ
表示用バッファにセット
ットして RxD1 処理終了
RxD0 受信データを待つ
RecvSerialTxt0(.....)
RxD0 受信終了
yes
yes
受信待 TimeUp
RxD0 受信データを LCD
TimeUp 通知用表示をセ
表示用バッファにセット
ットして RxD0 処理終了
2ch 処理終了?
yes
終了
①
ProsessCntDisp()
現在のアクティブ Task と自 Task の関係で、LCD デバイスを使用して良いか判断し、
かつ、処理ループ数をカウント表示する。(Task4:40000~49999)
②
INT8 *txt = {"AHE-ToppersCD1 for TOPPERS/OSEK by Aone"}を各 Ch から 8 文字づつ
リング方式により送信し、受信した文字を LCD に表示する。
TxD2 --> RxD0 で受信し、LCD の横 8 文字目から 8 文字表示する。
TxD0 --> RxD2 で受信し、LCD の横 1 文字目から 8 文字表示する。
③
AppSuspend()
自タスクのサスペンド情報を表示後、TerminateTask()を呼ぶ。
-
- 13 -
文書 OSEK-RENE-CAT302.doc
PRIORITY = 14
メロディータスク(Buzzer で「ネコフンジャッタ」を演奏)
Mel Task5
イベント待
1ms 毎のサイクル起動 WaitEvent(T5Env)
P44SW ON
yes
LCD 表示して良いかの判
自タスクをサスペンドす
定と処理数カウントする。
る。
① ProcessCntDisp()
③AppSuspendTask()
表示 OK
yes
LCD に案内を表示する。
PC2PB ON
yes
自動演奏を開始する。
「猫踏んじゃった」演奏
② AutoMelody()
①
ProsessCntDisp()
現在のアクティブ Task と自 Task の関係で、LCD デバイスを使用して良いか判断し、
かつ、処理ループ数をカウント表示する。(Task5:50000~59999)
②
AutoMelody()
Buzzer より、
「ネコフンジャッタ」を演奏する。
③
AppSuspend()
自タスクのサスペンド情報を表示後、TerminateTask()を呼ぶ。
-
- 14 -
文書 OSEK-RENE-CAT302.doc
3−3.
H-debugger 対応に必要なポーティング
CAT302(H8SX/1544)は、JTAG(H-UDI)仕様の為、デバッガ用のポーティングは不要です。
-
- 15 -
文書 OSEK-RENE-CAT302.doc
3−4.
H-debugger でのプロファイル表示(DEF 7.00B 以上)
ターゲット側の RAM を使用して、各 Task のプロファイル表示をします。
1)ポーティング手続き
.¥syslib¥h8sx-renesas-1544¥sys_timer.h
#define USE_PROFILE
#ifdef USE_PROFILE
#define PROFILESIZE
1024
#define PROFILEPRETASK
1
#endif
①「USE_PROFILE」を有効にすると、プロファイル表示が可能になります。不要になった場
合は、コメントアウトして下さい。
②「PROFILESIZE」は、ターゲット側で確保する RAM のバイト数になります。
アプリケーションに応じて調整して下さい。
③「USE_PROFILE」を有効にする事により、下記変数が確保されます。
UINT8
_TaskProFile[PROFILESIZE];
UINT8
TaskProFlg;
UINT16
TaskProFileIdx;
④システムタイマー割り込みのタイミングで現 Running 中の TaskID を「_TaskProFile」に
順次記憶していきます。(リングバッファ)
⑤サンプリング場所は、「プレタスクフックルーチン」と「ISR(SysTimerInt)」の 2 箇所です。
⑥プロファイル表示させたい場合は、
DEF メニュー<データ>−<プロファイル表示>をクリックして下さい。
[3-4-1]表示例
「更新」PB をクリックしますと最新データを表示します。
「周期更新」にチェックしますと、常時最新状態をターゲットからオンザフライ機能により、
データを収集し、Task 状態を表示します。
-
- 16 -
文書 OSEK-RENE-CAT302.doc
第4章
ハード構成およびシステム構成
4−1.
ハード構成
この解説書を進めるにあたり、下記ハード構成の準備をお願いします。
DC5V(+)
CN13 にサンプル確認用ケーブルを
C
C
C
N
N
N
1
1
1
1
2
3
接続(AHC-SAMP1)
CN11/CN12 にサンプル確認用ケー
ブルを接続(自作変換ケーブル)
LCD 表示器
評価ボード AHE261
CN1
CN2
AHC-10
専用ケーブル
H-debugger
AH7000
CAT302
(H8SX1544)
Windows
PC
-
- 17 -
USB
文書 OSEK-RENE-CAT302.doc
1)CAT302 と H-debugger を専用接続ケーブル(AHC-10)で接続します。
2)H-debugger と PC 機を USB ケーブルで接続します。
3)評価ボード「AHE261」の CN13 にブザーの付いたコネクタ(AHC-SAMP1)を装着します。
(無い場合は、未装着でも構いません)
4)評価ボード「AHE261」の CN11/CN12 に変換ケーブル(自作)を装着します。
5)変換ケーブル(自作)を CPU 基板「CAT302」の CN1/CN2 に接続します。
6)CPU 基板「CAT302」の SW1 を A 側にします。(SCI0 を RS232C で使用)
7)CPU 基板「CAT302」の SW3 を B 側にします。(オンチップエミュレーションモード)
8)評価ボード「AHE261」に電源(+5V)を供給できるように接続します。
[接続例]
-
- 18 -
文書 OSEK-RENE-CAT302.doc
4−2.システム構成
サンプルのシステムブロック図およびメモリマップと I/O 表を記述します。
[評価ボード回路図]
AHE261_man_sch.pdf
[CAT302取り説] CAT302_SBC-1544 取説.pdf
4−2−1.システムブロック図(サンプル)
マイコン基板
CAT302(エーワン製)
H8SX/1544
CPU クロック(4.608×8)MHz
AHE261 用変換ケーブルを使用(自作)
キャラクタタイプ LCD モジュール
PJ0→PJ7
LCD1
DM1602F
P30:P31
LED1->LED8
PK0→PK7
8点
◎◎◎◎◎◎◎◎
BUZZER 1 個
P36/TIOCA2
外取り付け必要(AHC-SAMP1)
DIP-SW11
RS232C(TXD0)
ループバックテスト用
RS232C(TXD2)
DIP-SW11
2点
RS232C(RXD0)
RS232C(RXD2)
押しボタンスイッチ[PB]
PA0[PI4] PC2[PI5]
PI4,PI5,PI6,PI7
PC5[PI6] PF7[PI7]
4点
P50→P57
-
トグルスイッチ
P40->P47[SW] 8 点
- 19 -
文書 OSEK-RENE-CAT302.doc
4−2−2.CAT302 のプログラムメモリ MAP
0x0--------------ベクタテーブル①
CPU 内部
H8SX/1544
フラッシュ ROM
0x400-----------アプリケーションプログラム開始番地②
512Kbyte
0x7FFFF------FROM 最終
CPU 内部 RAM
0xFF6000----アプリケーション使用 RAM の開始番地③
24Kbyte
0xFFC000---初期スタックポインタ位置(0xFFC000)④
<セクション名>
① ベクタテーブル----------------------------------------- V
②アプリケーションプログラムの開始番地---------- P,C,D
③アプリケーション使用 RAM の開始番地---------- B,R
④初期スタックポインタ位置---------------------------- S −(スタックサイズ)
4−2−3.プログラムサイズの詳細 MAP
開始番地
0x400
0x14B6
0x2620
0x4096
0x44B3
-
サイズ
0x10B6
0x116A
0x1A76
0x41D
分類
アプリケーション(main....etc)
割込みハンドラ、内部 I/O 関係の関数
TOPPERS/OSEK カーネル
C ライブラリ、ROM テーブル、etc
最終アドレス
- 20 -
文書 OSEK-RENE-CAT302.doc
4−2−4.評価ボード(AHE261)のディップ SW の設定と I/O マップ表
SW11 の設定
ON
OFF
SW11-1
(AHE261)
シリアル I/O の
TXD0,RXD2 を折り返し
シリアル I/O の
TXD0,RXD2 間オープン
SW11-2
(AHE261)
シリアル I/O の
TXD2,RXD0 を折り返し
シリアル I/O の
TXD2,RXD0 間オープン
RS232C関係
ポートシンボル
(CAT302)
TXD0
RXD0
TXD2
RXD2
ピン番号
(CAT302)
CN1-8A
1-8B
1-11A
1-11B
方向
ポートシンボル
(CAT302)
ピン番号
(CAT302)
CN2-13A
2-13B
2-14A
2-14B
2-15A
2-15B
2-16A
2-16B
CN2-5A
-5B
ピンシンボル
(CAT302)
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
P30
P31
ピン番号
(CAT302)
CN2-9A
2-9B
2-10A
2-10B
2-11A
2-11B
2-12A
2-12B
ピンシンボル
(CAT302)
PK0
PK1
PK2
PK3
PK4
PK5
PK6
PK7
信号名
出力
入力
出力
入力
LCD関係
ポートアドレス
(CAT302)
0xfffba6
PJDR
0xffff52
P3DR
方向
出力
出力
出力
出力
出力
出力
出力
出力
出力
出力
信号名
(AHE261)
D0 LCD-module
D1
D2
D3
D4
D5
D6
D7
RS LCD-module
E LCD-module
LED関係
ポートアドレス
(CAT302)
0xfffba7
ポートシンボル
(CAT302)
PKDR
ブザー関係(タイマ/TPU3
ポートアドレス
(CAT302)
0xffffe8
-
ポートシンボル
(CAT302)
TGRA_2
TIOCA3
ピン番号
(CAT302)
CN2-8A
方向
出力
出力
出力
出力
出力
出力
出力
出力
アウトプットコンペア出力)
ピンシンボル
(CAT302)
P36/TIOCA2
- 21 -
信号名
(AHE261)
LED1
LED2
LED3
LED4
LED5
LED6
LED7
LED8
仕様
PWMモード パルス出力
文書 OSEK-RENE-CAT302.doc
押しボタンスイッチ関係
ポートアドレス
(CAT302)
0xfffba1
ポートシンボル
(CAT302)
PORTI
ピン番号
(CAT302)
CN2-17A
2-17B
2-18A
2-18B
ピンシンボル
(CAT302)
PI4
PI5
PI6
PI7
方向
ピン番号
(CAT302)
CN1-1A
1-1B
1-2A
1-2B
1-3A
1-3B
1-4A
1-4B
ピンシンボル
(CAT302)
P50
P51
P52
P53
P54
P55
P56
P57
方向
入力
入力
入力
入力
信号名
(AHE261)
SW12 PB[PA0]
SW13 PB[PC2]
SW14 PB[PC5]
SW15 PB[PF7]
トグルスイッチ関係
ポートアドレス
(CAT302)
0xffff44
ポートシンボル
(CAT302)
PORT5
入力
入力
入力
入力
入力
入力
入力
入力
信号名
(AHE261)
SW16 SW[P40]
SW17 SW[P41]
SW18 SW[P42]
SW19 SW[P43]
SW20 SW[P44]
SW21 SW[P45]
SW22 SW[P46]
SW23 SW[P47]
外部ブザー回路図 (型式 AHC-SAMP1)別売りで用意しております。
47K
CN13-8B(AHE261-TIOCA3)
2.2K
-
1
2
CN13-2A(AHE261-GND)
BZ(PKM13EPY-4002-B0)
- 22 -
文書 OSEK-RENE-CAT302.doc
4−2−5.CAT302 と AHE261 を接続する変換ケーブルの配線表
使用するコネクタの型番
CAT302 側
CN1
CN2
34P
40P
AHE261 側
HIF3C-34D-2.54C(メス)
HIF3C-40D-2.54C(メス)
CN11 34P
CN12 30P
XG4C-3432(オス)
XG4C-3031(オス)
配線表
CAT302 側(34P)
コネクタ
CN1
-
AHE261 側
PIN 番号
1A
1B
2A
2B
3A
3B
4A
4B
シンボル
P50/AN0
P51/AN1
P52/AN2
P53/AN3
P54/AN4
P55/AN5
P56/AN6
P57/AN7/DA1
コネクタ
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
PIN 番号
13B
13A
12B
12A
11B
11A
10B
10A
8A
8B
TXD0(RS232)
RXD0(RS232)
CN12
CN12
14A
14B
TXD0
RXD0
11A
11B
TXD2(RS232)
RXD2(RS232)
CN12
CN12
15A
15B
TXD1
RXD1
- 23 -
用途
SW(P40/AN0)
SW(P41/AN1)
SW(P42/AN2)
SW(P43/AN3)
SW(P44/AN4)
SW(P45/AN5)
SW(P46/AN6)
SW(P47/AN7)
文書 OSEK-RENE-CAT302.doc
配線表
CAT302 側(40P)
コネクタ
CN2
-
PIN 番号 シンボル
1A
+5V
AHE261 側
コネクタ
CN11
CN11
CN11
CN11
PIN 番号
1A
1B
2A
2B
用途
+5V
+5V
GND
GND
1B
GND
5A
5B
P30/TIOCA0
P31/TIOCB0
CN12
CN12
9A
9B
LCD(RS)-PC6
LCD(E)-PC7
8A
P36/TIOCA2
CN12
10A
Bzz(PB0/TIOCA3)
9A
9B
10A
10B
11A
11B
12A
12B
13A
13B
14A
14B
15A
15B
16A
16B
17A
17B
18A
18B
PK0/PWM2A
PK1/PWM2B
PK2/PWM2C
PK3/PWM2D
PK4/PWM2E
PK5/PWM2F
PK6/PWM2G
PK7/PWM2H
PJ0/PWM1A
PJ1/PWM1B
PJ2/PWM1C
PJ3/PWM1D
PJ4/PWM1E
PJ5/PWM1F
PJ6/PWM1G
PJ7/PWM1H
PI4/D12
PI5/D13
PI6/D14
PI7/D15
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN11
CN12
CN12
CN12
14A
14B
15A
15B
16A
16B
17A
17B
7B
7A
6B
6A
5B
5A
4B
4A
3B
7A
8B
5B
LED1-P10/PO8
LED2-P11/PO9
LED3-P12/PO10
LED4-P13/PO11
LED5-P14/PO12
LED6-P15/PO13
LED7-P16/PO14
LED8-P17/PO15
LCD0-PD0
LCD1-PD1
LCD2-PD2
LCD3-PD3
LCD4-PD4
LCD5-PD5
LCD6-PD6
LCD7-PD7
PB(PA0)-PA0
PB(PC2)-PC2
PB(PC5)-PC5
PB(PF7)-PF7
- 24 -
文書 OSEK-RENE-CAT302.doc
第5章
サンプルアプリケーションの準備
5−1.Hew での準備(ルネサス製)
1)TOPPERS のホームページより、OSEK カーネル最新リリースをダウンロードして下さい。
URL:http://www.toppers.jp/osek-os.html
2)ダウンロードした「osek_os-x.x.lzh」を、適当なディレクトリに置き解凍して下さい。
3)サンプルアプリケーション用 CD の「.¥toppers_osek_Renesas_1544」の指定ファイルを、
OSEK カーネルにコピーします。
<DL した OSEK 側>
<CD 側>
.¥toppers_osek_Renesas_1544¥config¥h8sx-renesas-1544 --> .¥toppers_osek¥config
.¥toppers_osek_Renesas_1544¥syslib¥h8sx-renesas-1544 --> .¥toppers_osek¥syslib
.¥toppers_osek_Renesas_1544¥tools¥h8sx-renesas-1544
--> .¥toppers_osek¥tools
上記ディレクトリ下の全ファイルを、OSEK カーネルにディレクトリごと全コピーして下
さい。
4)Hew を起動します。
・Hew Version 4.04.01.001−−−−−−−−−−−−−−−−Renesas 製
・H8S,H8/300 Standard Toolchain Version 6.2.00 −−−−−Renesas 製
5)Hew メニューの<ファイル>−<ワークスペースを開く>でワークスペースを開きます。
・".¥toppers_osek¥tools¥h8sx-renesas-1544¥h8sx-renesas_1544.hws"を指定します。
・ディレクトリ情報が変わりますので、下記ウォーニングが表示されますが、気にせず
「はい」を指定して下さい。
[5-1-1]
-
- 25 -
文書 OSEK-RENE-CAT302.doc
6)アクティブプロジェクトが「cat302」になっていることを確認します。cat302 になってい
ない場合は、Hew メニューの<プロジェクト>−<アクティブプロジェクトに設定>で
「cat302」を指定して下さい。
[5-1-2]
7)Hew メニューの<ビルド>−<すべてをビルド>をクリックして下さい。
[5-1-3]
-
- 26 -
文書 OSEK-RENE-CAT302.doc
8)ウォーニングが表示されますがライブラリの上書きメッセージですので無視して下さい。
[5-1-4]
Build Finished
0 Errors, 1 Warning
と表示されます。
-
- 27 -
文書 OSEK-RENE-CAT302.doc
5−2.H-debugger(DEF.exe)での準備(Aone 製)
1)H-debugger コントロールソフト「DEF.exe」を起動します。
2)DEF メニューの<オプション>−<環境設定>の「本体機種設定」が正しい機種と COM
ポートの選択をされているか確認して下さい。
3)DEF メニュー<オプション>−<CPU 設定>をクリックします。
[5-2-1]
CPU シリーズ名
:H8SX/1544
クロック(MHz)
:4.6080
周波数逓倍率(Iφ) :x8
リセット遅延防止タイマ使用しない:チェック
外部 RAM 時の BSC 設定スクリプト指定
「レ」許可 「CAT302-BSC.log」を指定する。
最低上記 5 項目を設定後、
「設定」にクリック
します。
4)DEF メニュー<ファイル>−<アブソリュートファイル設定>をクリックします。
[5-2-2]
左図のように 3 箇所にチェックしま
す。
-
- 28 -
文書 OSEK-RENE-CAT302.doc
5)DEF 画面、左下隅の「Start」をクリックします。(ターゲット側の電源は ON の事)
[5-2-3]
6)エミュレーションモードに遷移させます。
[5-2-4]
「OK」をクリックします。
[5-2-4-1]
CAT302 を初めて電源 ON する場合は、
「する」側にチェックします。
1 回以上、H-debugger からダウンロード
した場合は、「しない」側にチェックしま
す。
「開始」をクリックして下さい。
-
- 29 -
文書 OSEK-RENE-CAT302.doc
7)ターゲット側と正常な通信を確立しますと下図の様な画面になります。
[5-2-5]
8)DEF メニュー<ファイル>−<ダウンロード>をクリックします。
.¥toopers_osek¥tools¥h8sx-renesas-1544¥tools¥cat302¥debug まで降ります。
[5-2-6]
cat302.abs を選択後
「開く」をクリック
します。
[5-2-7]
ダウンロード中は、このようなインジケータ表示します。
-
- 30 -
文書 OSEK-RENE-CAT302.doc
9)ダウンロードが成功しますと、下図のような DEF 画面になります。
[5-2-8]
ShortPB[RstMon]On でこの View 画面になります
-
- 31 -
文書 OSEK-RENE-CAT302.doc
5−3.サンプルアプリケーションを走らせる前の準備
1)評価ボード「AHE261」の SW「P40~P47」の 8 点全て OFF(下側)にします。
2)評価ボード「AHE261」の DIP-SW11 の 1・2 の 2 点を ON(上側)にします。
5−4.サンプルアプリケーションを走らせます。
1)DEF のショート PB「Go」をクリックします。[5-2-8]図を参照
(1)評価ボードの LCD に下図のようになれば正常です。
TOPPERS/OSEK 1.1
[5-4-1]
for CAT302[P4xS]
(2)評価ボードの SW-P40 を ON(上側)にする。
LCDTask1 [xxxxx]
[5-4-2]
................
LCD Task1 が起動します。
(3)評価ボードの SW-P41 を ON(上側)にする。
LEDTask2 [xxxxx]
[5-4-3]
::::::::::::::::
LED Task2 が起動します。
(4)評価ボードの SW-P42 を ON(上側)にする。
BzzTask3 [xxxxx]
[5-4-4]
xxxxHz[+PF7-PC5]
Bzz Task3 が起動します。
(ブザー出力タスク)
PF7-PB ON で、+100Hz の周波数を出力します。
PC5-PB ON で、-100Hz の周波数を出力します。 (100~1100Hz)
TPU2 TIOCA2 アウトプットコンペア出力を利用しています。
(5)評価ボードの SW-P43 を ON(上側)にする。
-
SioTask4 [xxxxx]
[5-4-5]
AHE-ToppersCD1 f
SioTask4 が起動します。
- 32 -
文書 OSEK-RENE-CAT302.doc
{"AHE-ToppersCD1 for TOPPERS/OSEK by Aone"};
SIO 通信が正常送受信を継続している間は、上記文字が流れて表示します。
<動作>
①SCI-TxD0 より 8 文字送信
−> SCI-RxD2 で受信 −> 受信データを LCD 表示
①SCI-TxD2 より 8 文字送信
−> SCI-RxD0 で受信 −> 受信データを LCD 表示
評価ボード「AHE261」の DIP-SW11 の 1・2 の 2 点を ON(上側)にすることにより、
SCI-2CH のループテストになります。
試しにどちらかを OFF にしてみて下さい。タイムアップ表示されます。
(6)評価ボードの SW-P44 を ON(上側)にする。
MelTask5 [xxxxx]
[5-4-6]
ネコフンジャッタ PC2{S}
MelTask5 が起動します。
PC2-PB を ON しますと、ブザーより「ネコフンジャッタ」の曲が流れます。
(6)評価ボードの SW-P44・P43・P42・P41・P40 と順番に OFF(下側)にする。
LcdTask1 suspend
[5-4-7]
OFF 順番に各タスクが Suspend していきます。
(6)評価ボードの SW-P47 を ON(上側)にして、PA0-PB を ON にします。
ShutDown WaitWDG
[5-4-8]
E_OK
シャットダウンフックルーチンが実行されます。
このサンプルは、ウォッチドッグタイマーを起動させています
ので、
「1.82sec」後にリセットされ再起動します。
以上です。
-
- 33 -
文書 OSEK-RENE-CAT302.doc
第6章
新規プロジェクトを追加する場合の手順例
6−1.プロジェクトタイプの作成
TOPPERS/OSEK 下で新規プロジェクトを追加する場合、Hew 設定を簡略化するための手順案
を記述します。
cat302 用のプロジェクトテンプレートは作成してありますので、下記手順でプロジェクト
タイプ(カスタム)を作成して下さい。
1)空プロジェクト「Project」をアクティブプロジェクトに指定します。
[6-1-1]
2)Hew メニュー<プロジェクト>−<プロジェクトタイプの作成>をクリックします。
[6-1-2]
保存を促すメッセージです。
「はい」をクリックします。
-
- 34 -
文書 OSEK-RENE-CAT302.doc
[6-1-3]
プロジェクト新規登録時に指定
するタイプ名を入力する。
ex)toppers_osek_new_project
はい(Y)側をチェック
「次へ」をクリックします。
[6-1-4]
左図の様に「デフォルト」のま
まで、
「完了」をクリックします。
-
- 35 -
文書 OSEK-RENE-CAT302.doc
6−2.新規プロジェクトを登録します。
1)Hew メニュー<プロジェクト>−<プロジェクトの挿入>をクリックします。
[6-2-1]
新規プロジェクト
側チェックにて
「OK」をクリッ
クします。
2)プロジェクト名を登録します。
[6-2-2]
①プロジェクトタイプを前項で登録した「toppers_osek_new_project」を指定します。
②プロジェクト名に任意な目的プロジェクト名を入力します。後の説明でプロジェクト名が
必要になりますので、ここでは新規プロジェクト名を「cat302new」とします。
③上記設定で「OK」をクリックします。
3)Hew に新規プロジェクトが作成されます。
[6-2-3]
左図のように、新規プロジェクトが
Hew に登録されます。
-
- 36 -
文書 OSEK-RENE-CAT302.doc
4)新規プロジェクト用に新規ディレクトリ作成とファイルをコピーします。
① .¥toopers_osek¥config¥h8sx-renesas-1544 の下に、
新規プロジェクト名「cat302new」のディレクトリを作成します。
[6-2-4-1]
<追加1>
②作成した「cat302new」に、「cat302」下の全ファイルをコピーします。
[6-2-4-2]
コピー確認
-
- 37 -
文書 OSEK-RENE-CAT302.doc
① .¥toopers_osek¥syslib¥h8sx-renesas-1544 の下に、
新規プロジェクト名「cat302new」のディレクトリを作成します。
[6-2-4-3]
<追加2>
②作成した「cat302new」に、「cat302」下の全ファイルをコピーします。
[6-2-4-4]
コピー確認
-
- 38 -
文書 OSEK-RENE-CAT302.doc
5)システムジェネレータ用バッチファイルの一部を変更します。
.¥toopers_osek¥tools¥h8sx-renesas-1544¥cat302new¥call_sg.bat
のファイルを何らかのエディタで開きます。
<元ファイル> [6-2-5-1]
@REM SG 実行バッチファイル
@REM カーネルコンフィグレーション
del kernel_cfg.c
del kernel_id.h
del kernel_support.src
..¥..¥..¥sg¥sg.exe
main.oil
-template=..¥..¥..¥config¥h8sx-renesas-1544¥Project¥Project.sgt
-odep=kernel_support.src -I..¥..¥..¥sg¥impl_oil -os=ECC2
<変更ファイル> [6-2-5-2]
@REM SG 実行バッチファイル
@REM カーネルコンフィグレーション
del kernel_cfg.c
del kernel_id.h
del kernel_support.src
..¥..¥..¥sg¥sg.exe
main.oil
-template=..¥..¥..¥config¥h8sx-renesas-1544¥cat302new¥Project.sgt
-odep=kernel_support.src -I..¥..¥..¥sg¥impl_oil -os=ECC2
上記の様に、Project を新規プロジェクト名「cat302new」に変更します。
-
- 39 -
文書 OSEK-RENE-CAT302.doc
6)新規プロジェクト「cat302new」にユニット「ソースファイル」を登録します。
①フォルダ名「config_h8x-renesas-1544」に登録
Hew メニュー<プロジェクト>−<ファイルの追加>をクリックします。
.¥toppers_osek¥config¥h8sx-renesas-1544 に移動します。
[6-2-6-1]
①cpu_config.c
②cpu_support.src
③start.src
の 3 ファイルを「追
加」します。
ファイル選択後「追加」をクリックしますと、Hew ツリーでは一旦「Assembly souce file」
と「C souce file」のフォルダに入りますので、マウスドロップにて目的フォルダに移動し
て下さい。
[6-2-6-2]
移動後の状
態
-
- 40 -
文書 OSEK-RENE-CAT302.doc
②フォルダ名「config_h8x-renesas-1544_Project」に登録
Hew メニュー<プロジェクト>−<ファイルの追加>をクリックします。
.¥toppers_osek¥config¥h8sx-renesas-1544¥cat302new に移動します。
[6-2-6-3]
①sys_config.c
②sys_suport.src
の 2 ファイルを「追
加」します。
前項と同じ様に、別フォルダに入りますので、マウスドロップで目的フォルダに移動して下
さい。
③フォルダ名「kernel」に登録
Hew メニュー<プロジェクト>−<ファイルの追加>をクリックします。
.¥toppers_osek¥kernel に移動します。
[6-2-6-4]
①alarm.c
②event.c
③interrupt.c
④osctl.c
⑤resource.c
⑥task.c
⑦task_manage.c
の 7 ファイルを
「追加」します。
前項と同じ様に、別フォルダに入りますので、マウスドロップで目的フォルダに移動して下
さい。
-
- 41 -
文書 OSEK-RENE-CAT302.doc
④フォルダ名「syslib_h8sx-renesas-1544」に登録
Hew メニュー<プロジェクト>−<ファイルの追加>をクリックします。
.¥toppers_osek¥syslib¥h8sx-renesas-1544 に移動します。
[6-2-6-5]
①sys_timer.c
②osek_lib.c
の 2 ファイルを「追
加」します。
前項と同じ様に、別フォルダに入りますので、マウスドロップで目的フォルダに移動して下
さい。
⑤フォルダ名「syslib_h8sx-renesas-1544_Project」に登録
Hew メニュー<プロジェクト>−<ファイルの追加>をクリックします。
.¥toppers_osek¥syslib¥h8sx-renesas-1544¥cat302new に移動します。
[6-2-6-6]
①cat_serial.c
②hw.config.c
③hw_serial.c
④hw_sw_led_bz_
lcd.c
⑤hw_sys_timer.c
の 5 ファイルを「追
加」します。
前項と同じ様に、別フォルダに入りますので、マウスドロップで目的フォルダに移動して下
さい。
以上の作業で、新規プロジェクトの追加作業は終了です。目的のプロジェクト仕様に合わせた
「main.c」を作成して下さい。
フォルダ名「tools_h8sx-renesas-1544_Project_appsrc」
ディレクトリ「.¥toppers_osek¥tools¥h8sx-renesas-1544¥cat302new¥appsrc」に空ファイル
として用意してあります。
-
- 42 -
文書 OSEK-RENE-CAT302.doc
7)OS 定義および Task の追加やプライオリティを変更したい場合は、ディレクトリ
「.¥toppers_osek¥tools¥h8sx-renesas-1544¥cat302new」にある、「main.oil」のテキスト
ファイルを変更して下さい。
定義仕様に関しては、「OPPERS/OSEK カーネル SG 取扱説明書」株式会社ヴィッツ製をご覧下さ
い。
第7章
備考
7−1.おわりに
本アプリケーションノートは、いたらない所が多々有ると思います。意味不明な箇所がありま
したら、遠慮なくメールにて申し付け下さい。積極的に改訂し、より判り易いノートにしたく思
っていますので、皆様の御協力を御願い申し上げます。
2008 年 7 月
-
- 43 -
著者
文書 OSEK-RENE-CAT302.doc
〒486−0852
愛知県春日井市下市場町 6-9-20
エーワン株式会社
Tel
0568-85-8511
Fax
0568-85-8501
E-mail cat-i@aone.co.jp
http://www.aone.co.jp
URL
-
- 44 -