ページへ戻る

− Links

 印刷 

SH7145F Bootloader のソース :: Besttechnology

knowledge:SH7145F Bootloaderのソース

  
TITLE:SH7145F Bootloader
#norelated
#contents
**はじめに [#te30cd54]
SH7145Fマイコンボードに対応した弊社オリジナルブートローダです。~
マイコンに備わったSCIを経由してホストからマイコンボードのSRAMないしフラッシュROMへユーザプログラムを転送及び書き込んだり、書き込まれたユーザプログラムを実行するといった機能を持ちます。~
付属のバッチファイルにてソースプログラムからコンパイルでき、ユーザ自身による改造も可能です。~
ファイルの送受信にはXMODMプロトコルを使用しますが、全てのXMODEMに対応したターミナルクライアントに対応するものではありません。

**基本仕様 [#y715a5e1]
***適用コンパイラとコンパイル方法 [#q09196c7]
弊社提供のGCC Developer Lite最新版のインストール先に「C:\Program Files\BestTech」フォルダを指定し、インストールコンポーネントとして「SH7145Fでのみ使用」、もしくは「フルインストール」が選択されている必要があります。~
+ソースをダウンロードし適宜解凍
+GCC Developer Liteにてtimsh7145.cを開き、コンパイラオプションで「SH7145F (Intenal Flash)」を選択してコンパイル
+マイコンボードをブートモードにし、timsh7145.motをFLASH WRITERにて書き込む
+マイコンボードをモード2にして作業完了

***ソースのダウンロード [#DOWNLOAD]
#ref(SH7145F_BL_1.33.zip)
公開日: 2009/06/25

更新内容
-ダウンロード成功時のメッセージ送信タイミングを遅く

***メモリマップ [#g9d88ae1]
ブートローダはマイコン内蔵のフラッシュROMに書き込まれ、内蔵フラッシュROM及び外部バスが使用できるMCUモード2で動作するプログラムです。
#ref(sh7145bootloader_map,100%)
ユーザが使用できるメモリエリアは外部メモリ全般となります。

***ブートローダの動作フロー [#g9fc9896]
#ref(SH7145_SCI_BOOT_FLOW,80%)
マイコンがリセットされるとユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。~
ユーザプログラムへ実行が遷移する前にユーザ自らの操作でコマンドモードに遷移させる場合は、リセット直後に'!'を素早く3回入力する必要があります。全ての外部メモリにユーザプログラムが書き込まれていなければ、常にコマンドモードとなります。~
なお、最新バージョンでは外部フラッシュROMにSRAM上で動作するプログラムを書き込んでおき、外部フラッシュROMからSRAM上にコピーして実行させる機能が盛り込まれているため、起動フローが少々複雑になっています。

**使用方法 [#pae541f2]
[[SIMPLE TERM>GDL#STERM]]からのキー入力にて各種機能を実行します。
***コマンド [#ieacf9d6]
****ヘルプ 'h'[#le03027c]
コマンドのリストを表示します。
 >h
  --< TIM7145 Ver1.32 by BestTechnology >--",
  [w]:UPLOAD TO ExRAM [f]:UPLOAD TO ExFLASH
  [r]:DOWNLOAD [g]:BOOT [x]:REBOOT
  [i]:FLASH INFO [e]:ERASE ExFLASH [c]:CLEAR ExRAM
 >
また、以下に紹介するコマンドキー以外の入力でも、コマンドのリストが表示されます。

****外部SRAMへの書き込み 'w' [#d701275b]
ホストからマイコンボードに搭載されたSRAMへファイルを転送及び書き込みを行います。
 >w
  START UPLOAD TO ExRAM...
  ARE YOU SURE? (Y/N)
ここでyを入力すると転送を待ち受ける状態となりますので、STERMから任意のファイルを選択しXMODEMプロトコルで転送を開始させます。~
成功すれば<SUCCESS>、失敗すると<ERROR>と表示されます。
 >w
  START UPLOAD TO ExRAM...
  ARE YOU SURE? (Y/N) y
  <SUCCESS>
 >
本コマンドはユーザプログラムの実行は行わず、処理が完了するとコマンドモードに戻ります。

****外部フラッシュROMへの書き込み 'f' [#l1e29a27]
ホストからマイコンボードに搭載されたフラッシュROMへファイルを転送及び書き込みを行います。
 >f
  START UPLOAD TO ExFLASH...
  ARE YOU SURE? (Y/N)
ここでyを入力すると転送を待ち受ける状態となりますので、STERMから任意のファイルを選択しXMODEMプロトコルで転送を開始させます。~
成功すれば<SUCCESS>、失敗すると<ERROR>と表示されます。
 >f
  START UPLOAD TO ExFLASH...
  ARE YOU SURE? (Y/N) y
  <SUCCESS>
  ERASE ExFLASH 0000
  FLASH WRITE .........................................
  VERIFY CHECK .........................................
  <SUCCESS>
 >
本コマンドはユーザプログラムの実行は行わず、処理が完了するとコマンドモードに戻ります。

****実行 'g' [#jd6158b2]
外部フラッシュROMないし外部SRAMに書き込まれたユーザプログラムを実行します。~
実行には外部FLASH>外部SRAMという優先順位がありますので、常時外部SRAMから実行させる場合は外部FLASHを消去しておく必要があります。~
いずれのメモリにもユーザプログラムが書き込まれていなければ、
 >g
  EMPTY
 >
というメッセージを表示してコマンドモードに戻ります。
-''外部SRAM上にのみユーザプログラムが書き込まれている場合''
 >g
  GO ExRAM PROGRAM !!
このメッセージが表示された後、外部SRAMのユーザプログラムが実行されます。
-''外部フラッシュROMに外部SRAMを想定したユーザプログラムが書き込まれている場合''~
本来外部SRAMに書き込んで実行されるべきですが、電源を切った状態で外部SRAMの内容が維持される時間には制限があります。その場合は外部フラッシュROMに書き込んでおけば、実行時に外部フラッシュROMから外部SRAMに全データコピーした後、外部SRAM上から実行を開始します。
 >g
  CPY ExFLASH TO ExRAM & EXEC FROM ExRAM
このメッセージが表示された後、外部SRAMのユーザプログラムが実行されます。
-''外部フラッシュROM上で動作するプログラムが外部フラッシュROMに書き込まれている場合''~
 >g
  EXEC FROM ExFLASH
このメッセージが表示された後、外部フラッシュROMのユーザプログラムが実行されます。

|CENTER:BGCOLOR(red):||c
|&nbsp; :idea:|外部バスに関する諸設定は再初期化されず、活性化された状態のままユーザプログラムが実行されます。&br;また、ユーザプログラムにてバスを再設定すると、その瞬間に実行中のコード自身が行方を失い暴走します。|

****外部フラッシュステータス 'i' [#d8f65fee]
マイコンボードに搭載されたフラッシュROMの情報を表示します。
 >i
  Manufactur ID:$01
  Device ID:$22C4
  Sector Protect SA[30..0]:$b0000000000000000000000000000000
  Execute Status:Empty
 >
本コマンドは処理が完了するとコマンドモードに戻ります。

****外部フラッシュROMの消去 'e' [#p10f0524]
外部フラッシュROMを完全消去します。
 >e
  ERASE ALL ExFLASH
  ARE YOU SURE? (Y/N)
ここでyを入力すると消去を開始します。
 >e
  ERASE ALL ExFLASH
  ARE YOU SURE? (Y/N) y...........................................
  COMPLETED.
 >
本コマンドは処理が完了するとコマンドモードに戻ります。

****外部SRAMの消去 'c' [#qf81f7c3]
外部SRAMを完全消去します。
 >c
  ERASE ALL ExRAM
  ARE YOU SURE? (Y/N)
ここでyを入力すると消去を開始します。
 >c
  ERASE ALL ExRAM
  ARE YOU SURE? (Y/N) y
  COMPLETED.
 >
本コマンドは処理が完了するとコマンドモードに戻ります。

****再起動 'x' [#ya74b9d3]
マイコンを再起動し、その後ブートローダのコマンドモードになります。
**その他 [#t4993c95]
ユーザプログラムにてWDTを使用してシステムをりブートさせると、必ずブートローダのコマンドモードになります。

  

  • SH7145F Bootloader のバックアップソース(No. All)