<分区>
我一直在网上搜索,但没有找到任何有用的信息告诉我如何开始。
我有一个 Atmega328p。我认为这是最容易入手的 Controller 。
我想编写自己的引导加载程序。我应该从哪里开始编写代码?
<分区>
我一直在网上搜索,但没有找到任何有用的信息告诉我如何开始。
我有一个 Atmega328p。我认为这是最容易入手的 Controller 。
我想编写自己的引导加载程序。我应该从哪里开始编写代码?
最佳答案
Bootloader 本质上是一个在您的微处理器上运行的裸机程序,它使用特定协议(protocol)监听一个或多个通信接口(interface)(串行、SPI、USB 或您命名的......)。然后,在 PC/程序员端有一个“客户端”软件,它可以处理一些二进制文件(但不限于),并使用该协议(protocol)将其发送到引导加载程序。然后在接收后,引导加载程序会将接收到的数据存储在某个已知的内存位置,并发出“跳转”(或“分支”或“转到”或其他)到该数据的开头,从而触发执行它假设它是一个可执行文件代码。因此,您的引导加载程序至少应该能够:
1) 使用其中一种沟通 channel
2) 实现一个特定的协议(protocol)
3) 将接收到的可执行文件存储在内存中
4) 触发该代码的执行
从这里开始,您可以选择实现。
关于c - 为atmega328p写一个bootloader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31728795/