编译 CanMV 固件

前言

上一章节中已经搭建好了基于 CanMV 的 C 开发环境,这么一来便可以进行基于 C 语言和 FreeRTOS 的应用开发或者编译基于 MicroPython 语法的应用开发方式所需的 CanMV 固件,本 章就将带领读者体验一下 CanMV 固件的编译流程。 本章分为如下几个小节: 5.1 CanMV 固件编译说明 5.2 获取 CanMV 源码 5.3 编译 CanMV 源码

CanMV 固件编译说明

CanMV 固件可由 CanMV 项目编译得到,如果读者对 CanMV 固件有裁剪或自定义功能的需 求,那么可根据本章介绍的内容,亲自编译 CanMV 固件。 但对于大部分读者,编译 CanMV 固件并不是必须的,因为在 A 盘→软件资料→软件 →CanMV 固件中提供了编译好的固件,读者可以直接使用。 因此,需不需要读者自行编译 CanMV 固件,完全由读者的实际情况决定,若以提供的固件 不能满足读者的使用需求,那遍需要自行编译 CanMV 固件。当然,自行编译 CanMV 固件,也 能对 CanMV 项目有更多的了解。

获取 CanMV 源码

CanMV 项目的开源地址为:https://github.com/kendryte/canmv.git,因此可以使用 Git 工具获 取 CanMV,在新安装的 Git 工具使用前需要先配置用户名和用户邮箱地址: # Linux git config --global user.name "Your user name" git config --global user.email "Your user email" 使用 Git 工具获取 CanMV 项目源码仓库: # Linux git clone https://github.com/kendryte/canmv.git WORKSPACE/canmv/ cd WORKSPACE/canmv/ git submodule update --init --recursive 获取到 CanMV 项目源码仓库后,查看仓库的 Tag: # Linux git tag -l 在列出的所有 Tag 中,找到最新的 Tag,然后切换到该 Tag,以 v1.0.5 为例: # Linux git checkout v1.0.5 至此,已经成功获取到最新发布的 CanMV 源码了,若读者后续有修改 CanMV 源码并提交 修改的需求,可以在此基础上创建一个分支: # Linux git switch -c dev 为方便读者使用,在 A 盘→软件资料→软件→CanMV 项目仓库压缩包中提供了 CanMV 项 目仓库的仅克隆无修改的压缩包(可能不是最新版本)。 关于 Git 工具软件的使用介绍不是本教程文档的重点,请读者在使用中遇到问题时,善用搜 索引擎。

编译 CanMV 源码

关于 CanMV 源码的编译,建议读者先详细阅读 CanMV 仓库下的 build.md 文档。 编译 CanMV 源码前,需要先安装一下 Python 依赖库: # Linux cd $WORKSPACE/canmv/ pip install -r requirements.txt

随后,读者请根据使用的板子,进入对应的工程目录下,对工程进行配置: # Linux cd projects/canmv_atk_dnk210/ python project.py \ --toolchain $TOOLS/kendryte-toolchain/bin \ --toolchain-prefix riscv64-unknown-elf- \ config

以上的配置,主要是配置编译工程所使用的工具链,如果读者有对 CanMV 固件功能裁剪或 自定的的需求,可以执行一下命令,然后对工程进行更加详细的配置: # Linux python3 project.py menuconfig 工程配置完成后,便可对工程进行编译: # Linux python project.py build 编译完成后,将在工程的 build 目录下生成 canmv.bin 文件,即 CanMV 固件。

相关推荐
王老师青少年编程7 小时前
2025年【江苏“信息与未来”编程思维】真题及题解(T2:坐标变换)
c++·题解·真题·坐标变换·编程思维·江苏·信息与未来
2023自学中10 小时前
C++ 内存追踪器
linux·c++
DogDaoDao15 小时前
【GitHub】 LLVM Project 深度解析:现代编译器基础设施的基石
java·c++·python·程序员·github·编译器·llvm
KuaCpp15 小时前
C++进程(下)
c++
来一碗刘肉面16 小时前
C++中的引用语法
c++·算法
杜子不疼.16 小时前
【Qt初识】工程起步:项目创建、代码解读与对象树
数据库·c++·qt
知无不研17 小时前
算法:Fizz Buzz解题思路
c++·算法·leetcode
汉克老师17 小时前
GESP2026年6月认证C++八级( 第二部分判断题(1-10))精讲
c++·归并排序·dijkstra·二分·互斥·gesp8级·可重复组合
nianniannnn18 小时前
c++复习自存--流、异常处理、多线程与C++工程规范
开发语言·c++
诚信定制83918 小时前
C++23新特性实战与CLion深度支持
开发语言·c++·算法