编译 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 固件。

相关推荐
别动我齐刘海16 小时前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
傻啦嘿哟16 小时前
英雄联盟皮肤爬虫:爬取全皮肤价格与特效,做比价工具
java·c++·爬虫
码匠许师傅17 小时前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
闻道且行之17 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
莫浅子18 小时前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
小欣加油19 小时前
leetcode3069 将元素分配到两个数组中I
数据结构·c++·算法·leetcode·职场和发展
不会代码的小猴19 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json
沫璃染墨19 小时前
《Qt从零入门系列(六):信号与槽进阶——从多种连接方式到Lambda表达式》
开发语言·c++·qt·代码规范·设计规范·qt5
小小龙学IT20 小时前
ZeroMQ(libzmq)开源消息库深度解析:brokerless 时代的轻量消息内核
c++·开源
Benny_Tang21 小时前
题解:P10230 [COCI 2023/2024 #4] Lepeze
c++·算法