WonderWitch.Com
■TOP>ネタ |
(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」と表示されます。 |