gpt4 book ai didi

arduino - STK500v2 引导加载程序仅在上电复位时加载,而不是在引脚/WDT 复位时加载

转载 作者:行者123 更新时间:2023-12-02 04:58:12 25 4
gpt4 key购买 nike

我正在为基于此 code 的自定义 Atmega2560 开发板破解 stk500v2 引导加载程序, 所以它使用 UART2 而不是 UART0它增加了启动超时而不是直接进入应用程序代码。请参阅下文了解我在板上所做的详细更改和设置。

我的问题是,当我进行引脚复位或 WDT 复位时,MCU 不会运行引导加载程序,而只会在进行掉电复位(插入/拔出)或上电复位(闪烁后首次启动时)时运行固件)。我试着寻找关于内管主题的文档,我已经阅读了 Atmega2560 的数据表(虽然它很长而且我可能错过了相关部分),但我没有找到解决该问题的相关内容。

我想,我在我的代码和/或设置中做错了什么,但我不知道是什么。

所以基本上,我更新了代码以添加预处理器条件 (_USE_UART2_),在 line 315 block 中启用以下功能:

[...]
#elif defined(_M2560_UART2_)
#define UART_BAUD_RATE_LOW UBRR2L
#define UART_STATUS_REG UCSR2A
#define UART_CONTROL_REG UCSR2B
#define UART_ENABLE_TRANSMITTER TXEN2
#define UART_ENABLE_RECEIVER RXEN2
#define UART_TRANSMIT_COMPLETE TXC2
#define UART_RECEIVE_COMPLETE RXC2
#define UART_DATA_REG UDR2
#define UART_DOUBLE_SPEED U2X2
[...]

并且还在 line 155 附近对引脚进行了另一次更改:

[...]
#elif defined(_M2560_UART2_)
#define PROGLED_PORT PORTJ
#define PROGLED_DDR DDRJ
#define PROGLED_PIN PINJ0
[...]

我还在努力根据它是欠压复位还是 WDT/引脚复位来更改启动超时值(我的目标是让引导加载程序在 WDT/引脚复位时等待更长时间)。所以我在 line 545 做了以下更改:

    unsigned long long  boot_timeout    =   1200000;

line 560 :

    WDTCSR    =    0;
__asm__ __volatile__ ("sei");
// check if WDT generated the reset, if so, go straight to app
#ifndef SOFTWARE_RESET
if (mcuStatusReg & _BV(WDRF))
{
app_start();
}
#else
// if WDT generated the reset, increase the boot timeout time
if (mcuStatusReg & _BV(WDRF))
boot_timeout = 3500000; // 7 seconds
#endif

最后,我设置 fuse 如下:

  • BOOTRST 设置为 0(启用)
  • BOOTSZ 设置为 00(4096 字引导加载程序部分)
  • WDTON 设置为 1(禁用)
  • BODLEVEL 设置为 101(VBOTmin=2.5V,但我认为 100 更有意义,尽管 Vcc 是受监管的并且除了电源故障外永远不会改变)

感谢您阅读所有内容,如果您能回答就更感谢您!

最佳答案

虽然看起来很愚蠢,但直到那时我还不清楚的是,分别刷新引导加载程序和固件是行不通的。需要做的是使用srec_cat工具加入bootloader和固件,并上传加入的固件。

srec_cat firmware.hex -Intel bootloader.hex -Intel -o combined-bootloader.hex -I

The Bootloader FAQ 的第 3-4 页以某种方式描述了它

关于arduino - STK500v2 引导加载程序仅在上电复位时加载,而不是在引脚/WDT 复位时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com