2011年1月13日木曜日

ATmega1284P Bootloader Arduino-ISP on UNOもどきから書き込めました。

 一応Arduino-ISPから書き込めたので、これでいいやーーで、1284Pを一個しか持ってない私の探求は終わりにします。
理由不明のままですし、64KBより先にアクセス出来るか未保証なので、動いたとしても、まともな物が発表されるまでの暫定に考えて下さい。動かなかったら、ごめんなさい。
私は、Optibootを、あるがまま・・位置だけずらしただけなので、それで大丈夫かどうかさえちょいと解りません。ただ、128KBのメモリーの最後端に、Bootloaderを置いて、ロックかけてみただけです。
予想としては、最初の64KBのFC00辺りに、ページみたいな感じで、ロック領域が残るのかも知れません。こんなに大きなソース持ってないので実験出来ませんでした。(そうだとしたら、コードの問題じゃなくてチップの問題?)
8x8=64KBのとこに、壁が有るんじゃない?って言う、madoelec氏の意見でした。

と言う事で、一応壁の向こう側にBootloderを置いてみたにすぎないかも知れません。


HEXダンプしてるので、ジャンプ命令じゃなく、律儀に、最初から、コードで埋めて行くので、時間がかかりますが、そのずーっと埋めた最後に、ブートローダーを書く・・はなんとかなった気がします。(ジャンプ命令がおかしいのかもね・・何かの)

なお、掲示してある、HEXは動作試験のために、LEDチカチカのPB0版が入ったままですので、チカチカしても誤作動じゃないです。(ローダー入れてみて、LEDチカチカ入れて動かしてみなきゃ動作してるか解らないって言う状態でした)

動いてる感じだったと思うと、Arduinoが上書きしちゃったり・・いきなりベリファイエラーが出たり・使う、Avrdudeでこんなに違うもんかと・・ややあきれ顔でした。

いったい何処が問題なんでしょうね。

Sanguino 1284P名で公開されてた、Bootloaderも書き込んだら、64KBしか無く・・そりゃ無理なので・いじいじやってみました。
出来たと思ったら、再現出来ないとか・・この理由のほとんどは、今回、Avrdudeを疑って、ここのAvrdudeでMCUから抜き出した、HEXなら、書き込めるだろう・・って言う予測でなんとかなりましたが・・なぜこうなるんでしょうねえ?
(ちなみに、Avedude.confの1284Pの欄は、みんな共通にしてやりました・・5,10から引用しました。これが無いと、もしかすると、Arduino -ISPや、IDEからの書き込みは出来ないかも知れません)

あーー一応肩の荷が降りた事にします。

私この分野、完全に専門外なので、デタラメにいい加減な事やってる確率は十分ありますが、うちのSanguino1284Pは、ちゃんと動いてます。

0 件のコメント:

コメントを投稿