KPIT GNU Tools (18) GNUSH v0601 Windows Tool Chain (ELF)2011年08月25日 21時40分34秒

追加した SH7231
今回追加するデバイスは SH7231
まだ入手していないので動作テストするのは先の話になる。
コンパイラのバージョンは KPIT GNU Tools GNUSH v0601
HEW のバージョンは 4.09.00


まずスペックを整理してみる。
ROM Start : 0x00000000
Vector Table End : 0X000003FF
ROM End : 0x000BFFFF  (SH72315=0x000FFFFF)
Ram1 Start : 0xFFF80000
Ram1 End : 0xFFF87FFF
Ram2 Start : 0xFFFD8000
Ram2 End : 0xFFFDAFFF
ここでは SH72314 の設定だけにする。


ではさっそく始める。


①デバイス名を追加。(一箇所)
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\capp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\cppapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\lib.det
 SH2a の項目に SH7231 を追加。


②デバイス名とそれに対応するヘッダーファイル指定を追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\slib.det
SH2a の項目に SH7231 を追加してヘッダーファイルを指定する。
例)
 [SH7231]
 header\7231.h


③ヘッダーファイルを追加。
作成したヘッダーファイルを指定ディレクトリに入れる。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\SH2a\header\7231.h


④vectshead が未修正の場合は修正する。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\SH2a\vectshead

 


⑤セクション情報を追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\scppapp.det
SH2a の項目に SH7231 のセクション情報を追加して項目の後にヘッダーファイルを指定する。
[SH7231]
header\7231.h

 


⑥ベクターテーブルを追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\vcapp.det

 




例によってFPU なしの設定で使わなければならない。
さらにレジスタバンクも使えない。


環境: (High-performance Embedded Workshop Version 4.09.00.007) + (KPIT GNUSH v0601 Windows Tool Chain (ELF))
参考: KPIT GNU Tools and Support

FRK-RX62N (19) printf (7) KPIT GNURX Simulator2011年07月10日 19時40分09秒

Simulator から printf
KPIT GNURX でも printf で Simulator Window に表示できるのではないかと思い試してみる。


使用するプロジェクトは先日作成した 、FRK-RX62N (14) printf (3) KPIT GNURX SCI にする。
serial_printf.c をビルドから除外して lowlvl_Sim.src と read_write.c を追加する。
lowlvl_Sim.src は RX600 Series Adding Printf and Scanf Support の中のサンプルをそのままコピーする。
そして read_write.c は以下のとおりだ。

 

そのほかは前回と同じ、でもこれだけじゃ動かない。もう一つやらなければならないことがある。
I/Oシミュレーションアドレス有効にチェック
そう、I/Oシミュレーションアドレス有効にチェックを入れること。


RX62N KPIT GNURX printf Sample


参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
環境:High-performance Embedded Workshop Upgrade 4.09.00
    KPIT GNURX v11.02 Windows Tool Chain (ELF)

HEW (6) Tools の登録 (2)2011年06月25日 16時34分45秒

FDT V.4.07 Tools の登録
以前 HEW に FDT をTools として登録をしていたがどうも使い勝手が悪い。
起動した時に、開いているプロジェクトのコンフィグディレクトリの中にある S-format ファイルを読み込んで欲しい。


そこで FDT のドキュメントを読みながら引数の設定をいろいろ試してみた。ドキュメントも分かりにくいし、マクロがどのように展開されるのかも分かりにくい。
たったこれだけの設定だが結構苦労した。しかし、まだ初期ディレクトリの設定がうまくいかない。
忘れないうちにここまでの所をメモしておこう。


    名前:FDT V4.07
    コマンド:C:\Program Files\Renesas\FDT4.07\FDT.exe
    引数:/DISCRETESTARTUP "SimpleInterfaceMode /r /u "$(CONFIGDIR)\$(PROJECTNAME).mot""
    初期ディレクトリ:$(PROJDIR)


参照:Flash Development Toolkit

FRK-RX62N (15) KPIT GNURX NewDevice 登録2011年06月23日 21時24分17秒

NewDevice RX62NCQ
KPIT GNURX デフォルトのセクション設定ではプロジェクトを作成する毎に修正しなくてはならない。ここらでプロジェクトジェネレータにデバイスの追加又は変更をすることにする。Original は現在の設定、SerialMonitor も使うことを考えると NewSetting の値でちょうどいいかなと思う。
Original	NewSetting	SerialMonitor	SectionName
0xFFFFFFA0	0xFFFFFFA0	0x0000FFF8	.fvectors
0xFFFC0000	0xFFFA0000	0x00002000	.text
0x00001808	0x0000F000	0x0000F000	.istack
0x00001708	0x0000EF00	0x0000EF00	.ustack
0x00001000	0x00000400	0x00000400	.data
				0x00000000	.rvectors


RX62NCQ という名前で新規登録ということにする。


①scapp.det と scppapp.det にデバイス RX62NCQ を追加
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\scppapp.det

 



②RX62N.PGD の名前を RX62NCQ.PGD と変えてコピーする。RX62NCQ.PGD 8行目を以下のように修正
5=vecttbl\rx62ncq.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Support\RX600\RX62NCQ.PGD


③rx62ncq.dat を作成
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\Hardware\RX600\rx62ncq.dat

 



④ベクタテーブル rx62n.c に少々変更を加え SerialMonitor で扱いやすくする。ここに示すのは FVECT_SECT の部分だけ、後の部分は変更なし。修正後 rx62ncq.c として保存する。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNURX-ELF\GNURX_Info\Generate\VECTTBL\rx62ncq.c
SerialMonitor を使う場合 Debug_RX600_Serial_Monitor を define する。

 



これでプロジェクトジェネレータを起動した時に新しいデバイスが現れるはずだ。


環境:High-performance Embedded Workshop Upgrade 4.09.00
    KPIT GNURX v11.01 Windows Tool Chain (ELF)

FRK-RX62N (8) KPIT GNURX + 新規デバイスの登録2011年04月25日 23時43分39秒

RX630
以前、作成していて中断した新規デバイスの作成、中途半端ながらここにまとめておこう。ビットフィールドの並びの問題が解決できれば追加も容易なのだが...。
作成するのはRX630。


新規作成ファイル
Hardware\RX600\RX630.dat
GNURX_Info\Support\RX600\RX630.PGD
GNURX_Info\Generate\iodefine\rx630.h
GNURX_Info\Generate\hwsetup\rx630.c
GNURX_Info\Generate\IntPRG\rx630.c
GNURX_Info\Generate\RESETPRG\rx630.asm
GNURX_Info\Generate\vect\rx630.h
GNURX_Info\Generate\VECTTBL\rx630.c


項目を追加
GNURX_Info\Support\scapp.det
GNURX_Info\Support\scppapp.det


それでは scapp.det と scppapp.det 内容は同じでリンカースクリプト情報を追加する。

 



GNURX_Info\Support\RX600\RX630.PGD、プロジェクトに含めるファイルやセクション情報を記述する。

 



GNURX_Info\Generate\hwsetup\rx630.c、初期化関数で start.asm から呼び出される。(文字がない部分もコピーして張り付ける)

 



GNURX_Info\Generate\IntPRG\rx630.c、割り込みプログラム中身は空。(文字がない部分もコピーして張り付ける)

 



GNURX_Info\Generate\iodefine\rx630.h、問題のI/Oヘッダーファイル白紙状態だ。(文字がない部分もコピーして張り付ける)

 



GNURX_Info\Generate\vect\rx630.h、ベクター定義ヘッダー(文字がない部分もコピーして張り付ける)

 



GNURX_Info\Generate\VECTTBL\rx630.c、ベクターテーブル(文字がない部分もコピーして張り付ける)

 



GNURX_Info\Generate\RESETPRG\rx630.asm、リセット時に最初に動くプログラム。

 



Hardware\RX600\RX630.dat、ハードウェア情報。

 



環境: HEW Version 4.09.00.007 + KPIT GNURX v11.01 Windows Tool Chain (ELF)

KPIT GNU Tools (17) GNU Windows Tool Chain2010年11月17日 19時46分51秒

統廃合が進む Renesas の CPU。
今後残るのは RL78 RX SuperH V850 あたりだろうか?
しかし、SuperH V850 は統合されて別のものになりそうな気がする。


そこで気になるのが KPIT GNU Tools の対応。
M16C/M32C H8 のサポートはいずれなくなるのか?
RL78 V850 には対応するのか?


おっと、そういえば Renesas はHEW もやめる。
そうすると HEW ベースの GNU Tools は困ったことになる。
新しい IDE は KPIT の Tool Chain と共存できるのか?
あ、いやいや KPIT には Eclipse もあった。


参照: Renesas

KPIT GNU Tools (16) GNUSH v0601 Windows Tool Chain (ELF)2010年11月11日 21時56分04秒

SH7237/7239
今回追加するデバイスは SH7237/SH7239
まだ入手していないので動作テストするのは先の話になる。
コンパイラのバージョンは KPIT GNU Tools GNUSH v0601
HEW のバージョンは 4.07.00.007


まずスペックを整理してみよう。
ROM Start : 0x00000000
Vector Table End : 0X000003FF
ROM End : 0x0003FFFF  (SH723x5=0x0007FFFF)
Ram1 Start : 0xFFF80000
Ram1 End : 0xFFF87FFF
Ram2 Start : 0xFFF90000  (SH723x5)
Ram2 End : 0xFFF97FFF  (SH723x5)
ここでは SH723x4 の設定だけにしよう。


ではさっそく始める。


①デバイス名を追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\capp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\cppapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\lib.det
 SH2a (No FPU) の項目に SH7237 を追加。
 SH2a の項目に SH7239 を追加。


②デバイス名とそれに対応するヘッダーファイル指定を追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\slib.det
SH2a (No FPU)の項目に SH7237 を追加してヘッダーファイルを指定する。
SH2a の項目に SH7239 を追加してヘッダーファイルを指定する。
例)
 [SH7237]
 header\7237.h


③ヘッダーファイルを追加。
作成したヘッダーファイルを指定ディレクトリに入れる。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\SH2a (No FPU)\header\7237.h
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\SH2a\header\7239.h


④リンカースクリプトを追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\scppapp.det
SH2a (No FPU)の項目に SH7237 を追加してヘッダーファイルを指定する。
SH2a の項目に SH7239 を追加してヘッダーファイルを指定する。

 

 

[SH7237]
header\7237.h


 

 

[SH7239]
header\7239.h


⑤ベクターテーブルを追加。
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\vcapp.det

 

 




ただし、 SH7239 は FPU なしで使わなければならない。
さらにレジスタバンクも使えない。
Kpit GNUSH v0601 はこの2点がいまいちだ。


環境: (HEW Version 4.07.00.007) + (KPIT GNUSH v0601 Windows Tool Chain (ELF))
参考: KPIT GNU Tools and Support

KPIT GNU Tools (15) Debugger2010年05月05日 21時42分58秒

さて、今度はデバッガーを使ってみよう。
いやシミュレータというのかな?

一度こういうのをやってみたかった。
写真をたくさん使ったやつ

先日、作成したデバイス SH7262CQ でワークスペースを作成する。
これはワークスペースを読み込んでコンパイルを行った直後の画面だ。
DefaultSession

まずセクション情報を確認してみよう。
ここでは 0x1c000000 から 0x00000000 に変更してある。
実を言うと 0x1c000000 のまま動かす方法を知らないからだ。
Linker Sections

次に Debug Session を確認しよう。
Debug Session
DefaultSession
SessionSH-2A_Serial_Monitor
SimSessionSH2A-FPU_Cycle
SimSessionSH2A-FPU_Func
ができている。
これはワークスペース作成時に、以下の項目にチェックを入れると自動的に作成される。
Target System for Debugging

もう一つ、デバッグの設定も見てみよう。
これも自動的にできるので確認するだけだ。
デバッグの設定

ここまで問題がなければセッションを切り替える。
SimSessionSH2A-FPU_Cycle
もちろん、はい。
ChangeSession

これはよくわからないが CMT をシミュレートするのだろうか?
でも、CMT 以外は出てこない。
CMT

そしてダウンロード。
Download

最後に Simulator Memory Resource を確認しよう。
これもプロジェクトジェネレータが自動的に作成してくれるが、いかんせん間違いが多い。(私が間違えた。)
ここで修正して問題がなければ
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\Hardware\SH-2A\SH7262CQ.dat
を修正すればいいだろう。
この Simulator Memory Resource が間違っていると Memory Access Error などになる。
Simulator Memory Resource

あとは Reset Run でよい。
ハードウェアや割り込みはシミュレーションできないと思うが、安定度は高い。


環境: (HEW Version 4.07.01.004) + (KPIT GNUSH v1001 Windows Tool Chain (ELF))

KPIT GNU Tools (14) GNUSH v1001 Windows Tool Chain (ELF)2010年04月23日 23時23分35秒

Kpit GNUSH v1001 Windows Tool Chain Project Generator
Kpit GNUSH v1001 Windows Tool Chain (ELF) に
SH7216 SH7262 SH7264 を追加した。

これで FRK-SH2A の準備は完了だ。
Project Generator 1


でも、Renesas の環境を使えば何の問題もないのだけど...


これは SH7216 の場合
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Support_3\scapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Support_3\scppapp.det
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Support_3\SH-2A\SH7216.PGD
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Generate\hwsetup\7216.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Generate\IntPRG\SH7216.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Generate\iodefine\7216.h
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Generate\vect\SH7216.h
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\GNUSH_Info\Generate\VECTTBL\SH7216.c
C:\Program Files\Renesas\Hew\System\Pg\KPIT GNUSH-ELF\Hardware\SH-2A\SH7216.dat

まず、scapp.det と scppapp.det 、これらは同じ内容でリンカースクリプトの集合体だ。
追加するデバイスのリンカースクリプト情報を書き加える。
以下は、SH7216 の例だ。

  


次に SH7216.PGD 、プロジェクトジェネレータ・データファイルでプロジェクトに含めるファイルやセクション情報を記述する。

  


hwsetup¥7216.c は start.asm から呼び出される初期化関数だ。(文字がない部分もコピーして張り付ける)

  


IntPRG¥SH7216.c は割り込みプログラム。もちろん中身は空。(文字がない部分もコピーして張り付ける)

  


iodefine¥7216.h ご存じのとおりI/Oヘッダーファイル Renesas のものがそのまま使える。

  


vect¥SH7216.h ベクター定義ヘッダー(文字がない部分もコピーして張り付ける)

  


VECTTBL¥SH7216.c ベクターテーブル(文字がない部分もコピーして張り付ける)

  


Hardware¥SH-2A¥SH7216.dat ハードウェア情報

  


FPU 付が SH-2A で FPU なしが SH2A-NoFPU となっている。
Renesas の場合は
FPU 付が SH2A-FPU で FPU なしが SH2A となっている。
紛らわしいのでそのうち整理しよう。


環境: (HEW Version 4.07.01.004) + (KPIT GNUSH v1001 Windows Tool Chain (ELF))

KPIT GNU Tools (13) GNUSH/H8 v0601 Windows Tool Chain (ELF)2010年03月30日 22時32分25秒

Kpit GNUSH v0601 PG
SH/H8 の環境は今でも GNUSH/H8 v0601 Windows Tool Chain (ELF) を使っている。


古いバージョンなので最近の CPU はサポートされてない。
最新のバージョンを使えばいいのかもしれないが v0703 からプロジェクトジェネレータの形式が変わってしまい共存ができなくなってしまった。
それ以来、必要なデバイスのみ追加して使っている。
追加した主な CPU は
SH: 7083 7084 7085 7086 7124 7125 7211 7243 7285 7286
H8: 1653 1655 1658 1663 1664 1668 といったところだ。





GNUSH v0601 PG 追加ファイル
GNUH8 v0601 PG 追加ファイル





次に追加したいと思っているのは
sh7214、sh7216、sh7262、sh7264、sh7730、sh7731





環境: (HEW Version 4.06.00.047) + (KPIT GNUSH/H8 v0601 Windows Tool Chain (ELF))
参考: KPIT GNU Tools and Support
FC2無料カウンターFC2無料カウンターFC2無料カウンターFC2無料カウンターFC2無料カウンターFC2無料カウンターFC2無料カウンター FC2無料カウンターFC2無料カウンター