PageSH72531にてユーザブートプログラムはじめまして兎家と申します。ハードウェア編に組み込みプログラム格納マットのプログラムがRAM上にロードされ、実行されてからユーザブートマットのリセットベクタアドレスから実行とあります。組み込みプログラム格納マットのプログラムが何をしているのかよくわかりません。使用したユーザプログラムモードフラッシュ書き換え動作例というのも見てみましたが、あまり参考にはなりませんでした。RAM上のサブルーチンをユーザブートマットから呼び出して使うような構造だと推測していますが、参考になるようなユーザブートプログラムのサンプルプログラムなどはあるのでしょうか?よろしくお願いします。18:14わわいです組み込みプログラム格納マットのプログラムってのは、単にRAM上にプログラムを展開してそれを実行するだけ、ですねまず、なにをするためにユーザブートプログラムを作るんでしょうか。様、早速の返信ありがとうございます。以外に情報が少ないですね。組み込みプログラム格納マットのプログラムを前もって動作させるのか気になっております。様、返信ありがとうございます。ハードウエアマニュアルからの情報でなんとか挑戦してみます。ありがとうございました。兎家:SHのマニュアルにはフローチャートで丁寧に処理手順が書かれているので、23.7ユーザブートモードをそのまま記述すれば良いと思います。いずれにしても23.ROMを一通り読んでおいた方が良さそうです。RX,RH,RX,RLに主軸が移ってます。現時点でネットからSHのサンプルコード等の情報を得るのは困難だと予想します。様返信ありがとうございます。ユーザブートモードの起動シーケンスの組み込みプログラム格納マットのプログラムをRAMにコピーとあるのですが、このRAMの内容使ってプログラムするようですが詳細が見つかりませんでした。兎家:兎家さん<このRAMの内容使ってプログラムする>というのは、1.SCIやLANやCANポートの初期化をする2.フラッシュROMをイレーズする3.SCIやLANやCANポートからデータをもらう4.もらったデータをフラッシュROMにプログラムする5.データをベリファイして3.から繰り返すのような処理ではないかと思います。SH72531にこだわらなければ資料は見つかると思いますよ。兎家:兎家さんが全体像をつかめていないような感じがします。"ブートモードで起動すると、組み込みプログラム格納マット上のプログラムが実行されます"とあります。図23.5の制御コマンド解析実行ソフト(内蔵)が組み込みプログラム格納マット上のプログラムで良いと思います。間の通信を実現"とありますが、1.ホストから内臓RAMにブート書き込みツールをロード2.ブート書き込みツールを起動も実行していると予想されます。ブート書き込みツールは、FDTなどからのコマンド入力に従って、1.ROMのデータを消去2.ホストから書き込みデータを内臓RAM経由でROMに書き込み3.検証を実行していると思います。関連モード概要に記載がありますが、ユーザブートモードでは任意のIFを使えます。ユーザブートマットに希望するIFの組み込みプログラム格納マット上のプログラムのようなものをブートモードで書き込んでおきます。ユーザブートモードで起動したときは組み込みプログラム格納マットではなくユーザブートマットが実行されるので、"のようなもの"で設定したIFでの通信が実現されます。さま返信ありがとうございます。ユーザーブートモードで起動するとRAMに展開される”組み込みプログラム格納マットのプログラム”に関する資料は未だ発見できていませんが(探し方が悪いのか)、MAT切り替えとかMAT書き込みとか書き込み内容の検証などのプログラム”部品”が格納されているっぽいことが分かってきました。このプログラム部品をユーザーブートマットから必要な時RAMにジャンプして呼び出して利用できるようになっているのだと思います。(でないとリセット毎にわざわざRAMにプログラムを展開する意味が分かりません)資料がないので今回はこの部品は直接は利用せず、(暇なときに資料を探しつつ)自分で全て組んでユーザーブートマットに格納する方向で実装中です。手抜きができるかも・・・と思ったのですが^^;ちなみに、どうやらユーザーブートマットはE10A-USBではデバッグできないようです。ここにも謎な壁が存在しました。兎家:>自分で全て組んでユーザーブートマットに格納する方向で実装中です。釈迦に説法だとは思いますが、一応、他のメンバーのために書き込んでおきます。マニュアルの23.5ブートモードの23.5.1システム構成に記載されている通り組み込みプログラム格納マットはRAMとは別物です。”組み込みプログラム格納マットのプログラム”はユーザーブートモードで起動してもRAMに展開されません。間の通信を実現と明確に書かれています。ビットレートの自動調整方法も記憶にあるので、ドキュメントやソースコードはどこかにあるのかもしれません。FCUが書き込み内容の検証などのプログラム”部品”と呼べそうですが、兎家さんは異なるイメージを持っていると予想されます。FCUに関しては私が使ったことのあるSHに無かったので私の勘違いかもしれません。23.4ROM関連モード概要に記載がありますが、MDA~MDD端子の設定値でユーザモード/ユーザプログラムモード/ユーザブートモード/ブートモードの切り替えが行われます。表23.4にそれぞれのモードの比較があります。ユーザモードもユーザマットから起動されます。MAT切り替えとかMAT書き込みはMDA~MDD端子の設定で変わります。書き込み内容の検証などのプログラムはブートモードでFDTなど使う場合は、FDTのパッケージに含まれていて組み込みプログラム格納マットのプログラムでホスト(PC)からターゲットマイコンのRAMに展開されます。ユーザブートモードの場合はこれもホストとのIFや書き込みデータのフォーマットに合わせて自分で用意する必要があります。確かに、ユーザーブートマットは32Kもあるので、すべてをユーザーブートマットや組み込みプログラム格納マットのプログラムに入れた方がすっきりしそうですが、将来的な書き込みデータのフォーマットなどの拡張を考えるとユーザーブートマットや組み込みプログラム格納マットのプログラムは最小にしてその都度書き込みツールをRAMに展開する方が良さそうです。ユーザーブートマットを使う場合は、ホストや作業者などでユーザーブートマットにすべてを組み込むのも良いかもしれません。ユーザーマットで開発しておいて、ユーザーブートマットに最適化したプログラムをロードする方がメモリーサイズの制限などから利点があるように感じます。私は通常のソフトウエア作成でもほとんどデバッガを使わないので、なんとなくですがユーザーブートマットはE10A-USBでデバッグできなくても困らないように感じます。さま>マニュアルの23.5ブートモードの23.5.1システム構成に記載されている通り組み込みプログラム>格納マットはRAMとは別物です。これにつきましては同意です。組み込みプログラム格納マットは私も別物だと思います。本来マニュアルでは何か別の名称を付けるべきだったのではないでしょうか。>FCUが書き込み内容の検証などのプログラム”部品”と呼べそうですが、兎家さんは異なるイメージを持っていると予想されます。CPUリセット時に既にロードされている”ユーザーブートモード”の組み込みプログラム格納マットのRAMコピーを読んでみても呼び出し元が存在しない複数の有用そうな関数で埋められているだけでした。少なくとも私の中の判断ではプログラム部品としか思えない内容でしたので普通に資料が公開されているものと思ったのですが・・・謎です。>ユーザーブートマットはE10A-USBでデバッグできなくても困らないように感じます。ややこしいですが”ユーザーブートモード”リセット時のRAMを予めダンプしておき、ユーザプログラムモードにてデバッグする前にダンプておいたRAMをロードしておけばユーザーマット側でデバッグできるとは思います。兎家:兎家さんが確認された複数の有用そうな関数はFCUファームウエア等ではないでしょうか?SH72531のユーザプログラムモードとユーザブートモードではFCUのコマンドを使ってROMを操作することになっているようです。ボリュームがあるので面倒になり私は読んでませんが、すでにSHは終息のようでアプリケーションノートなども見当たらず、ユーザブートモードを使う場合には、23.ROM全体をしっかり読んで進めるしかなさそうです。私の経験のあるSHマイコンにはFCUがありませんでした。FCUの知識なしに書き込みをしたのは逆に混乱させたと今は感じております。申し訳ありませんでした。兎家さんがどのようなライターを予定しているか不明ですがAF430/CANはまだ健在のようです。このあたりから探せばSH72531版無償ソフトがありそうな予感もします。