0

Atmega 328P のプログラム フラッシュにデータを保存することを説明する優れたチュートリアルを教えてもらえますか? ポート B から 1 Mhz の周波数で 8 ビット データを受信する予定で、受信したデータの最初の 19200 バイトを 32k メモリのプログラム フラッシュに保存したいと考えています。私はAVRアセンブリに不慣れで、Googleでできることをすべて読んだ後、少し混乱しているので、直接の回答または読むべき良いチュートリアルをいただければ幸いです。

今のところ、私はそれを次のようにコーディングしました

LDI XL, LOW(NRWW_START_ADDR)
LDI XH, HIGH(NRWW_START_ADDR)
loadBuffer:
IN R0,PORTB
ST X+,R0
CPI XH,0x4B
BRNE loadBuffer

しかし、これが正しいことかどうかはわかりません。ブートローダーを上書きしたくありません。また、アセンブラでの解決策を探しています。

どんな助けやポインタも大歓迎です。

4

1 に答える 1

1

2 つの注意事項:

  1. この例ではよくある間違いを犯しています: 同じポートで入力と出力をシャッフルします。Bポートから読み取りたい場合は、読み取る必要がありますPINB。それに書き込みたい場合は、に書き込む必要がありますPORTB。(以前に設定されていると仮定DDRBします。)

  2. 本当にフラッシュ メモリをデータ ストレージに使用しますか? データシートには次のように記載されています。

    書き込み/消去サイクル: 10,000

于 2015-07-05T23:05:09.057 に答える