格物致知、诚意正心
在Arduino核心MCU的Flash存储上,通常分有两个区域——应用程序区(Application)和引导程序区(Boot)。
应用程序区存放着用户应用程序,即开发者通过IDE编写的代码编译生成的程序,其功能由开发者定义和实现;
引导程序区,通常存放有一段启动加载程序(bootloader),该程序可以将PC发送来的应用程序,存储到应用程序区中。
Arduino每次启动后,都会先运行bootloader程序,如果PC没有向Arduino传输新的应用程序,Arduino则会很快开始运行现有的用户应用程序。
因此要更新Arduino上的程序,就要先将Arduino复位,让其运行bootloader,以备接收新上传的应用程序。
在Arduino UNO/Mega上串口芯片DTR引脚和AVR RST引脚间串联了一个100nf的电容,Arduino IDE在上传程序前,会通过发送串口DTR脉冲让Arduino开发板复位,进而让Arduino运行bootloader。然后Arduino IDE再按照规定的协议传输应用程序,即可在bootloader的协助下,将应用程序写入到应用程序区中。
对于不同的Arduino开发板,其上传与复位方式不同,如Leonardo、Due都带有原生的USB端口,可以模拟成串口设备和PC通信。其上传程序是通过DFU(Device Firmware Upgrade)模式进行的。当PC以1200波特率打开设备串口时,Arduino即会切换到DFU模式,接收PC传来的应用程序。
您的电子邮箱地址不会被公开。 必填项已用 * 标注
评论 *
显示名称 *
电子邮箱地址 *
网站
在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。