AT90USB162 的 LUFA 编码示例
我有一个开源 USB 库,用于支持 USB 的 AVR 微控制器,LUFA (2011-10-09),我正在尝试编码我的 AT90USB162 芯片。示例代码位于文件夹 /Bootloads/CDC
中,准备为
在 makefile 中,我更改了以下内容:
- MCU = at90usb162
- F_CPU = 16000000
- FLASH_SIZE_KB = 16
- BOOT_SECTION_SIZE_KB = 4
并构建了代码。发生这种情况时没有错误,但当我尝试使用 .hex 文件刻录芯片时,它返回消息:
地址超出范围
为什么会发生这种情况?
更新
在makefile
中,BOOT_START
配置为:
BOOT_START = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc)
也许错误会出现在BOOT_START记帐中?我应该配置更多东西吗?
I'm with an open-source USB library for the USB-enabled AVR microcontrollers, LUFA (2011-10-09), and I am trying to code the CDC (a bootloader) example to my AT90USB162 chip. The sample code is in folder /Bootloads/CDC
and comes prepared for building a CDC for AT90USB1287. So I needed to change the makefile parameters to set the proper microchip.
In the makefile I changed the following:
- MCU = at90usb162
- F_CPU = 16000000
- FLASH_SIZE_KB = 16
- BOOT_SECTION_SIZE_KB = 4
and built the code. This occurred without errors but when I tried to burn the chip with the .hex file, it returns the message:
Address is out of range
Why could this happen?
Update
In makefile
, the BOOT_START
is configured as:
BOOT_START = 0x$(shell echo "obase=16; ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024" | bc)
Maybe the error would be in the BOOT_START accounting? Should I configure something more?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据 at90usb162 数据表第 239 页,对于 4Kb 引导加载程序,熔丝 BOOTSZ0 和 BOOTSZ1 需要为 0。你检查过这个吗?您还需要检查 at90usb1287 和 at90usb162 之间的其他内容是否匹配(例如 BOOT_START 等)。
您如何尝试将新的引导加载程序刻录到 AVR 中?您是否有合适的编程器或者您正在尝试使用嵌入式 USB 引导加载程序来完成此操作?
只是补充@avra评论中的@avra答案
According to page 239 of at90usb162 datasheet, fuses BOOTSZ0 and BOOTSZ1 need to be 0 for a 4Kb boot loader. Have you checked this? You also need to check if other things are matched between at90usb1287 and at90usb162 (like BOOT_START and others).
How do you try to burn new boot loader into an AVR? Do you have a proper programmer or you are trying to do it with embedded USB boot loader?
Just complementing @avra answer from @avra comment