Arduino上传机制介绍-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9722|回复: 1

[拓展] Arduino上传机制介绍

[复制链接]
发表于 2021-2-1 11:41 | 显示全部楼层 |阅读模式
本文将编入《Arduino程序设计基础(第3版)》,转载请注明出处

在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传来的应用程序。


发表于 2021-2-1 21:51 | 显示全部楼层
顶了,讲的言简意赅
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:40 , Processed in 0.129346 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表