WonderWitch.Com ■TOPネタ
・「ROM0への読み込み/書き込み」
(2003/05/26更新)Flash ROMに書き込みできるか検証してみる。

【フリートーク掲示板】「ファイルが書けない? [tree] No.15652003/05/21(水) 03:39:16」

ファイルの読み書きをするテストプログラム作ってみました。Aボタンを押すと、“testfile.dat”というファイルを作成して、「999」というint型の適当な値を書き込みます。Bボタンを押すと読み込みます。

【Download】(ramrw.lzh/ 3891Bytes)
(ソースだけダウンロードする場合はこちら)
こちらがワークエリア「ram0」(SRAM)に書き込んでから、読み込んだ状態です。ちゃんと、 「999」が書き込まれました。成功です。


【Download】(romrw.lzh/ 3969Bytes)
(ソースだけダウンロードする場合はこちら)
今度は、プログラムエリア「rom0」(FLASH ROM)に書き込んでから、読み込んだのですが、、、 「999」ではなく、「0」が書き込まれてました。失敗です。 うーん。
実は、フラッシュROMに対応してるとは思わず、ずっと書き込んだことがありませんでした。とりあえず、ワークエリア(ram0)を使った方が無難だと思います。

ちなみに「MiracleMaze」で、フラッシュROMへの書き込んだ場合、うまく書き込めました。


(5/26追記)
ROM0に書き込めない問題について、2件ほど情報提供を頂きました。どうもありがとうございます。

まず、FancyRaRaさんからのお便り。こちらによると、動作は問題なし。ただ、コンパイラにDMC(ちなみにバージョンは8.28n)の場合、引数の「(const void far *)」でエラーが出てしまうので、「(void far *)」に直すと良いそうです。あと、書き込み前に「fflush」関数でバッファをクリアにしてみては、とのご提案を頂きました。

あと、won-wanさんによる掲示板の書き込み。こちらでも「何の問題も無く正常動作しました」「Witch側のOSとPC側のライブラリのどちらかが古いままじゃないですか?」とのこと。

そこで、以下のように、対策してみました。
・まず、TransMagicで 「エリア整頓」 をメニュー選択。そして、テストプログラム“foptest.fx”を実行。ここで、Aボタンを押すと、今度はハングアップして処理が固まってしまいました。何分待っても応答なし。なんじゃこれは!? しかたないので、電源をオフ。
・次に、TransMagicで 「エリア全クリア」 をメニュー選択。これでフラッシュROM内を全部消してみました。
・次に、使用してるWonderWitchのバージョンをチェックしてみました。
WonderWitch 1.1.2
FreyaOS 1.2.0
FreyaBIOS 1.0.0
c/w Meg 1.1.2
、、、古くはなさそうですが、最新版のアップデートをサポートサイトからダウンロードして、 “WWitch”以下のファイルを更新 。さらに FreyaOSをアップグレード してからリブートしました。

ソースをリビルド してプログラムを作り直し。WonderWitchに転送。
、、、とまあ、できることを全部やってみたら、 無事にROM0に書き込みできるようになりました。 ばんざーい、と言いたいところですが、なにか釈然としないような。
このうち、どれかに効果があったと思うんですが、どれが決定打だったのかよくわかりません。とりあえず、 「怪しくなったらアップデート」 というのが教訓になりました。


(おまけ)FreyaOSのアップデート方法
Bボタンを押しながら、電源スイッチを押す。

「recv system」を選択してAボタンを押す。

接続中。通信待機。

TransMagicを起動して、「アップグレード」をメニュー選択。

binファイルを選択。一番新しい、バージョンのファイルを選ぶ。

転送中、、、。成功すると、「complated」と表示されます。


■TOP ▲BACK >NEXT

Presented by WonderWitch.Com 運営委員会