跳转到内容

avr-devel

avr-devel 是 esp32-devel 在 8 位 AVR 上的对应物:avr 交叉工具链、构建规则、烧写和 blink 模板。

载荷提供什么
toolchains/avr所选开发板的 avr 交叉工具链
rules/app生成可烧写镜像、报告固件大小,xmake install 时烧写
includes/board板级选项,以及 avr-gcc / avrdude 的包定义
templates/c/avr.blinkxmake create -t avr.blink
modules/*板级表、镜像生成、烧写器和工具探测模块

支持的开发板:unonano(ATmega328P)和 mega2560(ATmega2560)。

工具链由这个 addon 自带的包定义提供,不用手动装:avr-gcc 自带 avr-libc、启动代码和器件链接脚本 —— 入口就是普通的 int main(void)avrdude 通过板载串口 bootloader 烧写,不需要额外的编程器。

安装

sh
$ xmake addon --install avr-devel

创建并构建工程

sh
$ xmake create -t avr.blink -l c blink
$ cd blink
$ xmake f --board=uno
$ xmake
[ 38%]: linking.release blink.elf
[ 56%]: generating.release blink.hex

AVR Memory Usage
----------------
Device: atmega328p

Program:     296 bytes (0.9% Full)
Data:         50 bytes (2.4% Full)

烧写和串口

sh
$ xmake install                    # 烧写,串口自动探测
$ xmake run                        # 烧写完顺带看串口输出
$ xmake f --port=/dev/ttyUSB0 --baud=57600

在自己的工程里使用

lua
add_addons("avr-devel")
includes("@addon/avr-devel/board")

target("blink")
    add_rules("@addon/avr-devel/app")
    add_files("src/*.c")
参数默认值说明
--boardunounonanomega2560
--f_cpu板子的频率cpu 频率(Hz),比如 8MHz 的变种用 8000000
--port自动探测串口
--baud板子 bootloader 的波特率烧写波特率
--monitor_baud9600串口监视波特率

已知限制

只支持串口 bootloader 烧写,不支持 ISP 编程器。预编译工具链没有 macOS arm64 版本,在 Rosetta 下运行。