本帖最后由 正点原子官方 于 2024-6-27 15:16 编辑
第五章 编译CanMV固件
上一章节中已经搭建好了基于CanMV的C开发环境,这么一来便可以进行基于C语言和FreeRTOS的应用开发或者编译基于MicroPython语法的应用开发方式所需的CanMV固件,本章就将带领读者体验一下CanMV固件的编译流程。 本章分为如下几个小节: 5.1 CanMV固件编译说明 5.2 获取CanMV源码 5.3 编译CanMV源码
5.1 CanMV固件编译说明 CanMV固件可由CanMV项目编译得到,如果读者对CanMV固件有裁剪或自定义功能的需求,那么可根据本章介绍的内容,亲自编译CanMV固件。 但对于大部分读者,编译CanMV固件并不是必须的,因为在A盘à软件资料à软件àCanMV固件中提供了编译好的固件,读者可以直接使用。 因此,需不需要读者自行编译CanMV固件,完全由读者的实际情况决定,若以提供的固件不能满足读者的使用需求,那遍需要自行编译CanMV固件。当然,自行编译CanMV固件,也能对CanMV项目有更多的了解。
5.2 获取CanMV源码 CanMV项目的开源地址为:https://github.com/kendryte/canmv.git,因此可以使用Git工具获取CanMV,在新安装的Git工具使用前需要先配置用户名和用户邮箱地址: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>git</b> config <b>--</b>global user.name "Your user name"</font></div><div align="left"><font face="黑体"><b>git</b> config <b>--</b>global user.email "Your user email"</font></div>
使用Git工具获取CanMV项目源码仓库: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>git</b> clone https<b>://</b>github.com<b>/</b>kendryte<b>/</b>canmv.git <b>$WORKSPACE</b><b>/</b>canmv<b>/</b></font></div><div align="left"><font face="黑体"><b>cd</b> <b>$WORKSPACE</b><b>/</b>canmv<b>/</b></font></div><div align="left"><font face="黑体"><b>git</b> submodule update <b>--</b>init <b>--</b>recursive</font></div>
获取到CanMV项目源码仓库后,查看仓库的Tag: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>git</b> tag -l</font></div>
在列出的所有Tag中,找到最新的Tag,然后切换到该Tag,以v1.0.5为例: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>git</b> checkout v1.0.5</font></div>
至此,已经成功获取到最新发布的CanMV源码了,若读者后续有修改CanMV源码并提交修改的需求,可以在此基础上创建一个分支: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>git</b> switch -c dev</font></div>
为方便读者使用,在A盘à软件资料à软件àCanMV项目仓库压缩包中提供了CanMV项目仓库的仅克隆无修改的压缩包(可能不是最新版本)。 关于Git工具软件的使用介绍不是本教程文档的重点,请读者在使用中遇到问题时,善用搜索引擎。 5.3 编译CanMV源码 关于CanMV源码的编译,建议读者先详细阅读CanMV仓库下的build.md文档。 编译CanMV源码前,需要先安装一下Python依赖库: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>cd</b> <b>$WORKSPACE</b><b>/</b>canmv<b>/</b></font></div><div align="left"><font face="黑体">pip install -r requirements.txt</font></div>
随后,读者请根据使用的板子,进入对应的工程目录下,对工程进行配置: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>cd</b> projects<b>/</b>canmv_atk_dnk210<b>/</b></font></div><div align="left"><font face="黑体"><b>python</b> project.py <b>\</b></font></div><div align="left"><font face="黑体"> <b>--</b>toolchain <b>$TOOLS</b><b>/</b>kendryte-toolchain<b>/</b>bin <b>\</b></font></div><div align="left"><font face="黑体"> <b>--</b>toolchain-prefix riscv64-unknown-elf- <b>\</b></font></div><div align="left"><font face="黑体"> config</font></div>
以上的配置,主要是配置编译工程所使用的工具链,如果读者有对CanMV固件功能裁剪或自定的的需求,可以执行一下命令,然后对工程进行更加详细的配置: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>python3</b> project.py menuconfig</font></div>
工程配置完成后,便可对工程进行编译: <div align="left"><font face="黑体"># Linux</font></div><div align="left"><font face="黑体"><b>python</b> project.py build</font></div><font face="黑体"></font>
编译完成后,将在工程的build目录下生成canmv.bin文件,即CanMV固件。
|