|
|
FJCニュ−ス 9月号
9月、10月、11月は H8/3664 のCプログラムのご紹介をいたします。
H8デバッカ−上で、動作する、時計ソフトをC言語を使ってプログラムします。
表示部は デバッカ−動作中の パソコンCRTとLCDです。
紹介ファイルはC言語ファイルと、同時コンパイルするMARファイル、ヘッダ−
ファイルです。
汎用レジスターを多用するので、変数の宣言なども気をつけないとすぐに暴走します。
Cだけではスタックのセットができアセンブラで作ったOBJファイルを
同時にリンクします。アセンブラでRAMデバック時の仮想割り込みベクタ、スタック
RAM,ROMの先頭アドレスを指定します。
今月号では、そのアセンブラファイルを紹介いたします。
ーーーーーー64Rres.marーーーーーーーー
.CPU 300HN ; H8-3664
.PRINT LIST
; 割り込み アドレス
.IMPORT _nmi ;外部割り込み CでNMI割り込みサブルーチン nmi()
.IMPORT _trp0i ;トラップ命令#0
.IMPORT _trp1i ;トラップ命令#1
.IMPORT _trp2i ;トラップ命令#2
.IMPORT _trp3i ;トラップ命令#3
.IMPORT _bkseti ;ブレーク条件成立
.IMPORT _sleepi ;スリープ
.IMPORT _irq0i ;IRQ0 外部割り込み
.IMPORT _irq1i ;IRQ1
.IMPORT _irq2i ;IRQ2
.IMPORT _irq3i ;IRQ3
.IMPORT _wkpi ;WKP
.IMPORT _tmai ;TMA オバーフロー
.IMPORT _tmwi ;TMW
.IMPORT _tmvi ;TMV
.IMPORT _sci3i ;RS232C
.IMPORT _iici ;I2C
.IMPORT _adi ;A/D
.IMPORT _main ;main()
.DATA.L H'F870 ;リセットベクトル
; 仮想割り込みアドレスの設定
.SECTION INIT_7,CODE,LOCATE=H'FC4E
.DATA.W _nmi
.SECTION INIT_8,CODE,LOCATE=H'FC50
.DATA.W _trp0i
.SECTION INIT_9,CODE,LOCATE=H'FC52
.DATA.W _trp1i
.SECTION INIT_10,CODE,LOCATE=H'FC54
.DATA.W _trp2i
.SECTION INIT_11,CODE,LOCATE=H'FC56
.DATA.W _trp3i
.SECTION INIT_12,CODE,LOCATE=H'FC58
.DATA.W _bkseti
.SECTION INIT_13,CODE,LOCATE=H'FC5A
.DATA.W _sleepi
.SECTION INIT_14,CODE,LOCATE=H'FC5C
.DATA.W _irq0i
.SECTION INIT_15,CODE,LOCATE=H'FC5E
.DATA.W _irq1i
.SECTION INIT_16,CODE,LOCATE=H'FC60
.DATA.W _irq2i
.SECTION INIT_17,CODE,LOCATE=H'FC62
.DATA.W _irq3i
.SECTION INIT_18,CODE,LOCATE=H'FC64
.DATA.W _wkpi
.SECTION INIT_19,CODE,LOCATE=H'FC66
.DATA.W _tmai
.SECTION INIT_21,CODE,LOCATE=H'FC6A
.DATA.W _tmwi
.SECTION INIT_22,CODE,LOCATE=H'FC6C
.DATA.W _tmvi
.SECTION INIT_23,CODE,LOCATE=H'FC6E
.DATA.W _sci3i
.SECTION INIT_24,CODE,LOCATE=H'FC70
.DATA.W _iici
.SECTION INIT_25,CODE,LOCATE=H'FC72
.DATA.W _adi
.SECTION A,DATA,LOCATE=H'F780
MOV.L #H'FF7F,ER7 ;スタックポインタ設定
jmp @_main ;Cのプログラム main()へジャンプ
.END
http://homepage2.nifty.com/JG1FJC/
|
|