为atmega328p写一个bootloader

write a bootloader for atmega328p

我一直在网上搜索,但没有找到任何有用的信息告诉我如何开始。

我有一个 Atmega328p。我认为这是最容易入手的控制器。

我想编写自己的引导加载程序。我应该从哪里开始写代码?

Bootloader 本质上是一个裸机程序,它在您的微型计算机上 运行,使用特定协议侦听一个或多个通信接口(串行、SPI、USB 或您命名的......)。然后,在 PC/programmer 端有一个 "client" 软件可以使用该协议将一些二进制文件(但不限于)发送 到引导加载程序。然后在接收后,引导加载程序会将接收到的数据存储在某个已知的内存位置,并向该数据的开头发出 "jump"(或 "branch" 或 "goto" 或其他),从而触发执行它假设它是一个可执行代码。因此,您的引导加载程序至少应该能够:

1) 使用其中一种沟通渠道

2) 实现特定协议

3) 将接收到的可执行文件存储在内存中

4) 触发该代码的执行

从这里开始,您可以选择实施方式。

有一份 PDF 文件详细介绍了 discussion/explanation 为 AVR 编写引导加载程序的步骤:

http://www.avrfreaks.net/sites/default/files/bootloader_faq.pdf

这是 Google 中搜索 "atmega write bootloader"

的第三次命中