MaixCAM2 系统烧录
获取系统文件
对于 MaixCAM2, 有三种系统文件和烧录方法:
- 方法一:芯片原厂烧录
.axp格式。需要使用AXDL 进行烧录。- 优点:无论 EMMC 内是否有启动分区和系统都能成功烧录。
- 缺点:只支持Windows,烧录速度慢。
- 方法二: USB 卡烧录
.img.xz格式的系统,包含了完整的系统,使用通用工具比如etcher / rufus / win32diskimager / imageUSB等即可烧录。- 优点:烧录简单,不受烧录系统和软件限制,速度快(TF > USB2.0 > AXDL)。
- 缺点:只有在 EMMC 内有启动分区时才能正常使用。如果没有启动分区或者损坏,则需要用方法一烧录一次
*.axp系统才能使用方法二。
- 方法三: TF 卡烧录
.img.xz格式的系统,包含了完整的系统。- 优点:烧录简单,无需三方软件,速度快(TF > USB2.0 > AXDL)。
- 缺点:需要一张 TF 卡;只有在 EMMC 内有启动分区时才能正常使用。如果没有启动分区或者损坏,则需要用方法一烧录一次
*.axp系统才能使用方法三。
推荐选择:正常情况下出厂已经烧录过一次启动分区,所以可以直接用方法二烧录.img文件,遇到启动分区损坏的情况再考虑用方法一烧录。
按照MaixPy 系统烧录文档 中的说明,下载对应型号的系统镜像文件 和 注意备份数据。
系统启动流程简介
为了让你更好理解烧录系统,这里介绍一下启动流程(简单版本):
开机上电,芯片内部程序(bootrom)检测
boot/Func引脚是否拉低(MaixCAM2 的Func按键按下),如果拉低则进入AXDLUSB 下载固件模式,会等待 AXDL 软件通过 USB 通信至少 5 秒以上。
没有按下或者超过5s没有通信则正常启动。加载内部
EMMC储存(启动分区、系统和资料放在这里)中的启动分区的固件,这个固件也会判断boot/Func按键是否按下,如果按下,进入 USB / TF 升级模式。
没有按下则正常加载EMMC 中的系统启动。
方法一: USB 烧录 .axp 系统到 EMMC
如文章开头所说,烧录分为三种方法,各有其优点,这里先详细介绍第一种。
下载 AXDL 软件
下载 AXDL。(只支持 Windows)。
打开 AXDL 软件界面
准备系统
前面下载的.axp格式的系统,注意,一般提供两种.axp系统文件,如:
maixcam2-2025-09-01-maixpy-v4.11.9.axp: 完整的 MaixCAM2 可以使用的.axp文件,文件大小8GB左右。boot_parts_maixcam2-2025-09-01-maixpy-v4.11.9.axp: 只包含启动分区的烧录文件,文件大小<50MB。
也就是说你可以:
- 选择一次 AXDL 烧录完整系统,烧录完即可启动运行系统。
- 你更喜欢 USB / TF 卡烧录的方式,但是启动分区意外受损(“变砖”),只想快速恢复启动分区,则选择
boot_parts_xxx.axp再用方法二烧录完整系统。
加载和烧录系统文件
- 点击加载系统文件按纽,选择加载下载的
.axp格式的系统。 - 等待加载完毕后,点击开始按纽,就会开始自动检测 USB。
- 按住
boot/Func按纽不放,再插上 USB 到电脑, AXDL 就会自动开始下载系统,然后松开按纽等待即可。 - 或者先插上 USB 到电脑,再按住
boot/Func按纽不放,拨动电源开关重新上电,等 AXDL 检测到后再松开按纽。 - 下载过程中建议不要触碰 USB 线和板子,以免接触不良失败。
- 下载完成后会自动重启进入系统,第一次启动请至少等到启动进入主界面后才能断电,防止第一次文件初始化丢失。
方法二(推荐): USB 烧录 .img 系统到 EMMC
相比烧录 .axp格式的文件,这种方式会更快更方便,任何操作系统都能烧录,而且速度更快(~=40MiB/s)。
选择合适的烧录软件
这里以 Etcher 为例,其它软件使用方法类似。
Windows 也可以用 Win32DiskImager 或 Rufus 或 imageUSB。 如果 Etcher 无法烧录可以试试这两个。
如果遇到了出了点问题。如果源镜像曾被压缩过,请检查它是否已损坏 Error spawning the child process,可能是权限不够造成的,右键应用图标,使用管理员身份打开即可。
如果仍然无法解决,或者烧录后无法启动,可以用rufus或者win32diskimager等其它软件烧录。
加载和烧录系统文件
- 加载前面下载的系统,注意不要下载错了,比如
MaixCAM2是下载的maixcam2-2025-09-01-maixpy-v4.11.9.img.xz。
大多数软件烧录时软件会自动解压xz为img文件,如果软件不支持则需要先手动解压为img文件。
Etcher会报错Missing partition tablenot a bootable image ...即检测不到分区表,对于MaixCAM2是正常现象,点击Continue继续即可。 - 上电进入 USB / TF 卡升级模式,两种方式:
- 方式1:USB 一端插电脑,然后另一端插上板子的
1秒内按住boot/Func按纽不放,3秒后即可松开。 - 方式2:先关机,USB 连接电脑和板子,打开电源开关的
1秒内按住boot/Func按纽不放,3秒后即可松开。
这里不先按住
Func按纽再开机的原因是按住再开机会进入 AXDL 下载模式,要等待至少 5秒才能进入,太慢了。 - 方式1:USB 一端插电脑,然后另一端插上板子的
- 然后等待几秒,就能在下载软件选择烧录磁盘,可以看到板子虚拟的 U盘设备了。另外也可以看到蓝色 LED 按照
灭-亮-亮进行双闪。 - 点击软件的烧录(Flash)按纽,开始进行烧录(可能会需要管理员权限)。这时板子蓝色 LED开始
亮0.5s-灭0.5s闪烁。 - 烧录过程或者完成后,如果电脑弹出
使用驱动器 G: 中的光盘之前需要将其格式化这样的字符,不要点击格式化磁盘!不然刚烧录好的系统又被格式化了! 关掉窗口即可。 - 等待烧录完毕,
蓝色 LED 会变成常亮表示烧录完毕,软件可能还没完成,比如软件会读取 EMMC 内容检验是否出错(也可以跳过,不过校验是加一层保险,建议还是等待其校验完成)。 - 如果烧录软件不会自动弹出 U 盘,建议手动弹出 U盘保证数据都写入了。
- 手动重启(重新上电)即可进入新系统,第一次进入系统注意至少要等到进入主界面后才能关机断电,防止初始化出错。
方法三: TF 卡烧录 .img 系统到 EMMC
方法和 USB 烧录 .img 类似,一般速度更快(取决于你的 TF卡速度,比如 ~=90MiB/s)。
制作 TF 升级卡
- 使用读卡器将 TF 卡插到电脑。
- 格式化 TF 卡,可以选择
exFAT或者ext4格式(不要选择FAT32)。 - 将
xxx.img.xz文件解压为xxx.img并且拷贝到 TF 卡。 - 点击弹出 U 盘保证数据玩全写入后再拔出读卡器,防止数据未写入完成系统文件损坏。
- 将 MaixCAM2 断电。
- 将 TF 卡插入 MaixCAM2,然后上电开机。
- 开机后板子会自动检查 TF 卡中的系统文件,自动进行烧录,此时蓝色 LED开始
亮0.5s-灭0.5s闪烁。
如果不是这样闪烁可能前面的步骤有误。
- 烧录完成后
蓝色 LED 会变成常亮。如果亮0.3s-灭0.3s快闪则表示烧录失败(一般不会出现),不要关机,直接用方法二 USB 烧录补救,如果关机了可以再试试重启会不会进入升级模式,不会的话说明启动分区受损,就需用 AXDL 烧录启动分区了。 - 手动重启(重新上电)即可进入新系统,第一次进入系统注意至少要等到进入主界面后才能关机断电,方式初始化出错。
加载和烧录系统文件
- 加载前面下载的系统,注意不要下载错了,比如
MaixCAM2是下载的maixcam2-2025-09-01-maixpy-v4.11.9.img.xz。 - 烧录时软件会自动解压
xz为img文件,你也可以自己先手动解压为img文件。 - 上电进入 USB / TF 卡升级模式,两种方式:
- 方式1:USB 一端插电脑,然后另一端插上板子的
1秒内按住boot/Func按纽不放,3秒后即可松开。 - 方式2:先关机,USB 连接电脑和板子,打开电源开关的
1秒内按住boot/Func按纽不放,3秒后即可松开。
这里不先按住
Func按纽再开机的原因是按住再开机会进入 AXDL 下载模式,要等待至少 5秒才能进入,太慢了。 - 方式1:USB 一端插电脑,然后另一端插上板子的
- 然后等待几秒,就能在下载软件选择烧录磁盘,可以看到板子虚拟的 U盘设备了。另外也可以看到蓝色 LED 按照
灭-亮-亮进行双闪。 - 点击软件的烧录(Flash)按纽,开始进行烧录(可能会需要管理员权限)。这时板子蓝色 LED开始
亮0.5s-灭0.s闪烁。 - 等待烧录完毕,蓝色 LED 会变成常亮表示烧录完毕,软件可能还没完成,比如软件会读取 EMMC 内容检验是否出错,可以等待其校验完成。
- 手动重启(重新上电)即可进入新系统,第一次进入系统注意至少要等到进入主界面后才能关机断电,方式初始化出错。
使用系统供电注意点
断电和关机
除了上诉情况直接断电(包括拨动开关机按纽也是强制断电),平时正常使用系统时不建议强制断电来关机,如果你的系统正在写入内容到 TF 卡,可能会造成数据写入失败,以及系统有缓存机制,可能只是写入到内存,还没同步到磁盘。
另外系统仍在运行,强制拔掉电源和按reset按钮的是同样的问题,尽量先软件关机再拔电源。
正常使用请软件关机或者重启,方法:
- 方法一: 主界面长按
Func按纽选择关机,或者设置->电源进行软件关机或者重启。 - 方法二: 终端使用
poweroff或者reboot命令进行软件关机或者重启。 - 方法三:其它软件调用,比如
Python调用import os;os.system("poweroff")进行关机或者重启。
文件写入和内容丢失问题
系统做了缓存机制,当你的代码在写入文件时,可能只是写入到了内存,过一段时间后系统自动写入到磁盘,如果在这中间断电了,那么内容就没有写入到磁盘(TF卡),下次开机就会发现之前写入的内容不存在。
解决方法:
- 尽量不直接断电或者按
reset按键,使用上面说的软关机。 - 保存重要的内容,可以手动调用强制写入内容到磁盘的 API,比如在
Python里面可以用os.sync()来告诉系统把所有缓存的文件立即写入到磁盘,其它的方式比如写入指定文件,以及其它语言请自性搜索类似Linux 刷新内容到磁盘的关键词。