表紙
La foneraで無線LAN ON-OFF(ATMEL AT90S2323で制御)

H8S ブートモードROM書込みとデバッグ


H8S デバッグプログラム

                                           2008.9.1   下村
                                           2008.10.20 修正
                                           ea7k−smmr@asahi-net.or.jp

1.北斗電子HSB8S2638Q用デバッグプログラム
    メモリはROM先頭割り込みベクタ、200Hよりプログラムです。
    スタックはCPU内臓のRAMの後ろから使います。デバッグプログラムで600バイト弱使います。
    CPU内臓のRAMの先頭部分は未使用。
    テストプログラムのロードはCPU・RAM域 FFB000Hに書き込み実行するようできています。
    このときのテストプログラム割り込みベクタは FFB000H固定にし、その後ろにプログラム、データが
    位置づくようリンクします。
    実行アドレス指定のプログラム実行をする場合はスタックをいじらないとデバッグプログラムが使ったものを
    そのまま使います。mainでreturnすればデバッグプログラムに戻ります。

    実行アドレスで示したアドレスにあるアドレスを実行アドレスとします。
    (割り込みベクタの先頭アドレスを指定)

2.北斗電子HSB8S2638Q用TESTプログラム
  各CPU共通WinPC側デバッグプログラムで、test_H2638.motをプログラムのロードは
    CPU・RAM域 FFB000Hに書き込み。
    FFB000Hで実行。ボードのLED点滅プログラム。TPU1により10msec割込みを作る
    UART0は38400BPS,8ビットデータ、1ストップビット。
    ハイパーターミナル等で見ることができる。
    RS232C割込み、TPU2でLED点滅。RS232Cより文字0、1、2、3、4で点滅間隔が変わる。
    CTRL+Cでデバッグプログラムにもどる。

3.北斗電子HSB8S2638Q用外付けフラッシュROM書込みプログラム
    各CPU共通WinPC側デバッグプログラムで、romwrt.motをプログラムのロードはRAM域
    FFB000Hに書き込み。
    FFB000Hで実行。
    各CPU共通WinPC側デバッグプログラム(V1.2)でそのままで、レジスタ『ROM-EraseSec1(308000)』
    を指定し、リードボタンをクリックする。"00"表示で消去される。
    消去セクタアドレスは300000h,304000h,306000h,308000,310000h,320000h,330000h,340000h,350000h,360000h,
    370000hです。37FFFFhを指定するとROM全部消去。
    フラッシュROMへの書込みはRAM領域へのロードと同じようにしてアドレスをROMにする。
    ROM書込みプログラムがロードされ、実行されたかは書込み・消去アドレスのメモリダンプで確認する。
    フラッシュROMは0xFFデータ以外のアドレスには書き込めないので必ず消去してから書込みする。
    フラッシュROMはATMEL AT49BV040B。
【注意】
   KPIT GCC KPIT GNUツールV0803
    c:\program files\renesas\hew\tools\kpit cummins\gnuh8-elf\v0803\h8300-elf\h8300-elf\include\functions.h(30)
    c:\program files\renesas\hew\tools\kpit cummins\gnuh8-elf\v0803\h8300-elf\h8300-elf\optlibinc\functions.h(30)

    30行目:extern __inline__ void ovfnegw(int dst,int *rst) __attribute__ ((always_inline));

    extern のあとに空白追加
   直したら、function.h をソースに一緒になっているものと置き換える。

プログラムはInterface 2008年5月号 FRボード

H8S ブートモードROMライタ

書込み   ボード
                                           2007.4.2  下村
                                           2007.10.4  修正
                                           ea7k−smmr@asahi-net.or.jp

1.概要
    
    ・USBシリアルでも書けるROMライタ
    ・デバッグができる。(RAMが必要)


    動作確認はUSBシリアル FTDI FT232R チップTTLレベル書込みしました。
    ターゲットボードは北斗電子 HSB8S2638Q ボードです。
    20MHzクロック1逓倍です。

    アドレス 0x280000 - 0x29FFFF 1MbitSARM    M68AF127B
              0x300000 - 0x37FFFF 4MbitFLASH ROM   AT49BV040B
             (アドレスデコーダ 74HC138)

回路図

    ポート  PF0       LED 1Hz点滅
         P12       LED 未使用
         P16       LED TPU2 TGRA出力
    RS232C  SCI0   4800BPS, 38400BPS 接続

    添付ファイル

    2638_20Mhz-38KBPS.mot   ---- 20MHzクロック H8 2638ブート書込みプログラム
    2638_20MHz_RAM-38KBPS.mot ---- 20MHzクロック H8 2638ブート書込みもどきデバッグプログラム
                    が動作しているときCPU RAMに転送・実行してメモリ転送するプログラム
    bootsim.mot ------------------ 北斗電子HSB8S2638Q用で上記メモリ追加のブート書込みもどきデバッグプログラム
                    これをCPU-ROMに書き込むとRAM 128KBが本体ROMのような感覚で使えるように
                    なる。
                    (リンク時は割込みベクタ、プログラムロードアドレスをRAMアドレスにしておくこと)
                    レジスタは破壊されないでRAMの割込み処理プログラムが実行される。
                    12バイト多くスタックを一時的に消費する。
    rom_writer.exe ---------------- PC Win32書込みプログラム
    書込み.JPG  ------------------- 書込み時の接続例
    本体.JPG ---------------------- 本体の写真
    書込みPROG.jpg ---------------- プログラムウィンドウ
  testg01.mot ------------------- 割込み処理テストプログラム
                  TPU1割込みでPF0 LED点滅、RS232C割込みで受信とP16 LED点滅感覚を変化させる
                  bootsim.motを書き込んで使用するもの


2.最初の書込み

    (1)ブートモードピン設定でリセット
       ブートモードSW ON、 FWEピンSW ON。電源ON。
       CPUとの接続はTTLレベルのインターフェースが必要。
    (2)PC WIN32の書込みプログラムを起動
       1)各CPU用のブートロードプログラムMOTファイルの指定
          例えば "2638_20Mhz-38KBPS.mot" で "CPU選択"ボタンをクリック
       2)チェックボックスはすべてはずす
       3)"参照"ボタンで書込みMOTファイルを指定する
          CPU ROMに書き込むプログラム.motファイル
       4)"書込"ボタンをクリック
       書込み終了でおわり。

      Xtal 20MHz 1逓倍 クロック20MHz H8 2638, 2639, 2630用
       「2638_20MHz-38KBPS.MOT」


3.デバッグプログラムとの連携でRAMメモリにロードしてプログラム実行

    (1)通常モード
       ブートモードSW OFF、 FWEピンSW OFF。電源ON。
    (2)HSB8S2638Qボード SCI0とPCをRS232Cケーブルで接続。
    (3)PC WIN32の書込みプログラムを起動
       1)チェックボックスはRAM転送[x]セット。他ははずす。
       2)"参照"ボタンで書込みMOTファイルを指定する
             例えば、"testg01.mot"
       3)"書込"ボタンをクリック
        書込み終了でおわり。
      4)"実行" ボタンをクリック
      異常な動作はないかを検討する。


4.デバッグプログラムとの連携でブートモードで動作しているかのように見せかける

    (1)通常モード
       ブートモードSW OFF、 FWEピンSW OFF。電源ON。
    (2)HSB8S2638Qボード SCI0とPCをRS232Cケーブルで接続。
    (3)PC WIN32の書込みプログラムを起動
       1)各CPU用のブートロードプログラムMOTファイルの指定
          例えば "2638_20Mhz-38KBPS.mot" で "CPU選択"ボタンをクリック
       2)チェックボックスはすべてはずす
       3)"参照"ボタンで書込みMOTファイルを指定する
             例えば、"testg01.mot"
       4)"書込"ボタンをクリック
         ブートロードプログラムは読み捨てられる。
       書込み終了でおわり。
       5)チェックボックはRAM転送[x]セット。他ははずす。
      6)"実行" ボタンをクリック
      異常な動作はないかを検討する。


5.デバッグプログラムとの連携でブートモードのようにCPU RAMにブートロードプログラムを格納する

    (1)通常モード
       ブートモードSW OFF。
       FWEピンSW OFF。
       FWEピンSW ON にすればユーザプログラムモードが検証できる。
       (ブートモードはSCI1を使う)
       電源ON。
    (2)HSB8S2638Qボード SCI0とPCをRS232Cケーブルで接続。
    (3)PC WIN32の書込みプログラムを起動
       1)各CPU用のブートロードプログラムMOTファイルの指定
        たとえば添付の「2638_20MHz_RAM-38KBPS.mot」128バイト毎RAMに転送する。
         "CPU選択"ボタンをクリック
       2)チェックボックスはすべてはずす
       3)"参照"ボタンで書込みMOTファイルを指定する
             例えば、"testg01.mot"
       4)"書込"ボタンをクリック
         ブートロードプログラムはCPU RAMの0xFFC000−0xFFDFFF に格納。
         格納し終わったら、CPU RAM 0xFFC000番地へジャンプ。その後は「2638_20MHz_RAM-38KBPS.mot」が受信して
         転送・書込み等を行う。
       書込み終了でおわり。
       5)チェックボックはRAM転送[x]セット。他ははずす。
      6)"実行" ボタンをクリックプログラム
      異常な動作はないかを検討する。


6.開発環境

  OS:Windows XP 
  コンパイラ:KPIT GCC KPIT GNUツールV0701
        (HEW Ver 4)
  評価ボード:北斗電子 HSB8S2638Q
                STマイクロ M68AF127B RAM
                ATMEL  AT49BV040B   フラッシュROM
                74HC138 1個
                抵抗、コンデンサ、LED、SW、コネクタ、配線少々

               動作確認はUSBシリアル FTDI FT232R チップの出力、TTLレベル書込みでした。
    
    コンパイル: オプティマイズ可能 サイズ&スピード
    リンク情報:

      2638_20Mhz-38KBPS.mot ----
                            0xFFC000 .text.startup
                                     .text.*
                            0xFFEFC0 .stack

        2638_20MHz_RAM-38KBPS.mot ---- 

                            0xFFC000 .text.startup
                                     .text.*
                            0xFFEFC0 .stack

        bootsim.mot ------------------
                                0x000000 .vects
                            0x000200 .text.startup
                                     .text.*
                                     .rodata.*
                            0xFFEFC0 .stack

       testg01.mot -------------------
                                0x280000 .vects
                               0x280200 .text.startup
                                        .text.*
                                         割込み処理テストプログラム
                            0xFFD000 .stack
  

    参考資料:
        ルネサス標準ヘッダファイル
        ルネサス H8/300H Tinyシリーズ ユーザモードフラッシュ書き換え
                  H8/3664F    RJJ06B0474-0100/Rev.1.00 2004.09
        KPIT GNUツール サポートサイトにようこそ。http://www.kpitgnutools.com/index-ja.php


7.注意事項

  動作は検証してありますが、万全ではないかもしれません。利用者で十分検証してお使いください。

ダウンロード:h8wrtr.zip(195KB)


表紙


Last update: 2008.10.8