4

USB対応のAVRマイクロコントローラーLUFA(2011-10-09)用のオープンソースUSBライブラリを使用しており、 CDC(ブートローダー)の例をAT90USB162チップにコーディングしようとしています。サンプルコードはフォルダにあり、 AT90USB1287/Bootloads/CDC用のCDCを構築するために用意されています。そのため、適切なマイクロチップを設定するためにmakefileパラメーターを変更する必要がありました。

makefileで、次のように変更しました。

  • MCU = at90usb162
  • F_CPU = 16000000
  • FLASH_SIZE_KB = 16
  • BOOT_SECTION_SIZE_KB = 4

コードを作成しました。これはエラーなしで発生しましたが、.hexファイルを使用してチップを焼き込もうとすると、次のメッセージが返されます。

アドレスが範囲外です

なぜこれが起こるのでしょうか?

アップデート

makefileBOOT_STARTは次のように構成されます。

BOOT_START = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc)

おそらく、エラーはBOOT_STARTアカウンティングにありますか?もっと何かを設定する必要がありますか?

4

1 に答える 1

4

at90usb162データシートの239ページによると、4Kbブートローダーの場合、ヒューズBOOTSZ0とBOOTSZ1は0である必要があります。これをチェックしましたか?また、at90usb1287とat90usb162の間で他のものが一致しているかどうかを確認する必要があります(BOOT_STARTなど)。どのようにして新しいブートローダーをAVRに焼き込もうとしますか?あなたは適切なプログラマーを持っていますか、それとも組み込みのUSBブートローダーでそれをやろうとしていますか?

@avraコメントからの@avra回答を補完するだけ

ブートローダーを使用して、既存のブートローダーの上に別のブートローダーを格納することはできません。今すぐ入手しますか?;-)それはブートローダーの制限された領域であり、それがあなたにとって失敗する理由です。ブートローダーはそれを自分で上書きすることはできません。この制限がない他のタイプのプログラマーが必要です。ブートローダーを備えたすべてのAVRは、この特別なタイプのプログラマー(JTAG / ISP / SPI / PDIプログラマー)で初期プログラミングを行う必要があります。

于 2011-11-03T10:05:46.763 に答える