我有一块带有 ATMEGA88 芯片的电路板,它的引导加载程序位于地址 0x1800,固件位于地址 0x0000。两者都可以访问 USB。引导加载程序可以编写新固件,但现在我需要编写新的引导加载程序。
当然,这在使用 AVR 编程器时没有问题,但是否也可以通过 USB 执行此操作?我的想法是通过旧的引导加载程序刷新一个特殊的固件,然后可以编写一个新的引导加载程序。那可能吗?如果是,如何?
我目前的尝试没有成功。所有命令(boot_page_erase、boot_page_fill 和 boot_page_write)都以与引导加载程序相同的方式成功执行(唯一的区别是它从索引 0x1800 而不是 0x0000 开始写入)但是当我重新启动设备时,旧的引导加载程序仍然存在所以没有真正写入闪存。