atmel_atsamd21e17通过串口更新代码的bootloader代码例程
标题中的“atmel_atsamd21e17通过串口更新代码的bootloader代码例程”是指使用Atmel公司的ATSAMD21E18微控制器(MCU)设计的一个Bootloader程序,该程序允许通过串行通信接口(UART)对设备上的固件进行远程更新。Bootloader是嵌入式系统中的一小段程序,它负责加载和启动应用程序或者操作系统。在这种情况下,Bootloader设计用于接收和验证通过UART传输的新固件数据,并将其写入MCU的闪存。 描述中提到,“atsamd21e17通过uart进行代码更新”,这表明ATSAMD21E17 MCU具有内置的UART模块,可以用来实现串行通信。用户程序应该从地址20K开始存储,这个位置可以根据具体需求进行调整。更新过程中,Bootloader一次处理1K的数据块,这样的分块处理有助于提高更新的稳定性和效率。虽然这个例程没有包含数据校验功能,但在实际应用中,为了确保数据的完整性和正确性,通常会添加CRC(循环冗余校验)或其它校验算法。 ATSAMD21E17是Atmel SAM D21系列的一部分,这是一个基于ARM Cortex-M0+内核的低功耗微控制器,拥有高性能、低功耗的特点。其内部闪存可用于存储程序代码,而UART(通用异步收发传输器)是一种常见的串行通信接口,常用于设备间的短距离通信。 在Bootloader的设计中,有以下几个关键步骤: 1. 初始化:Bootloader首先执行初始化任务,包括设置时钟、配置UART、设置中断等。 2. 通信协议:Bootloader需要定义一套通信协议,以便主机设备(如PC)与目标设备(ATSAMD21E17)之间交换数据。通常包括握手、命令识别、数据传输和确认等步骤。 3. 数据接收:Bootloader通过UART接收主机发送的固件数据块,可能需要使用中断处理来实现非阻塞接收。 4. 数据校验:为了保证更新的可靠性,应在校验过程中检查接收到的数据是否正确,如使用CRC计算。 5. 写入闪存:验证无误后,Bootloader将数据块写入到指定的MCU闪存地址。 6. 更新管理:Bootloader还需要处理固件更新过程中的错误,如断电恢复,以及更新成功后的复位操作,以加载新的固件。 在压缩包中的"atsamd21e17_bootloader(通过串口进行更新程序代码例程)"文件,可能包含了实现上述功能的C代码或汇编代码,开发者可以通过研究这些代码了解Bootloader的实现细节,并根据自己的项目需求进行修改和优化。同时,为了更好地理解和使用这个例程,建议查阅相关的ATSAMD21E17数据手册和UART通信的相关资料。
- 1
- 2
- 3
- heruihung2019-08-09学习学习,看看
- 萌新求求带2019-05-23学习学习,看看。CoolLoser2019-05-24有疑问可以联系我
- 粉丝: 60
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助