项目简介
本项目是名为USBaspLoader的基于AVR微控制器的USB引导加载器,适用于多数具有至少2 kB引导加载区的AVR微控制器,像常见的ATMega8。固件烧录到闪存的引导加载区,复位后立即接管控制权。若满足特定硬件条件,引导加载器会在USB接口等待数据并加载到闪存其余部分;不满足则将控制权交给已加载的固件。
项目的主要特性和功能
- 便捷的固件上传:无需单独命令行工具,模拟Thomas Fischl的USBasp编程器,用AVRDUDE上传闪存数据,启用选项可上传EEPROM数据。
- 与Arduino兼容:能和Arduino软件配合上传闪存数据。
- 多平台支持:可在Unix(Linux、FreeBSD或Mac OS X)和Windows上构建。
- 更新功能:支持“make update”更新引导加载程序,适用于生产后无法用HVPP或ISP的电路板。
- 数据校验:实现CRC校验功能,确保数据传输的完整性和正确性。
- 良好兼容性:支持多种AVR微控制器,兼容性和可扩展性好。
- 调试方便:提供调试模块,用于开发过程中的调试和数据打印。
安装使用步骤
前提条件
已下载本项目的源码文件。
配置参数
首先,在“firmware/bootloaderconfig.h”中描述硬件和布局特定参数(如要使用的PIN等);可通过修改“firmware/usbconfig.h”进行一些USB调优;编辑“Makefile.inc”以反映目标设备和不同于默认设置的功能集。
不同平台构建步骤
Windows
- 安装WinAVR,参考 http://winavr.sourceforge.net/。
- 进入“USBaspLoader”目录,按需编辑上述文件(如更改设备设置、编程器硬件、时钟速率等)。
- 输入“make”编译完整的源代码。
- 使用“make flash”将代码上传到设备。
- 使用“make fuse”设置熔丝位。
- 若控制器上已有可用的USBaspLoader,可使用“make update”将“updater”固件烧录到其中进行更新。
Unix(Linux、FreeBSD和Mac)
- 安装GNU工具链和avr - libc,Unix系统参考 http://www.nongnu.org/avr - libc/user - manual/install_tools.html,Mac OS X使用预编译包 http://www.obdev.at/avrmacpack/。
- 进入“USBaspLoader”目录,按需编辑上述文件。
- 输入“make”编译源代码。
- 使用“make flash”将代码上传到设备。
- 使用“make fuse”设置熔丝位。
- 同样可使用“make update”进行更新。
使用引导加载器
设置目标硬件上用于引导加载的跳线(或其他配置条件),将其连接到主机,并(若不是总线供电)对AVR进行复位。然后通过“虚拟”USBasp编程器使用AVRDUDE对设备进行烧录。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】