第五章 編譯CanMV固件
1)實驗平台:正點原子DNK210開發板
2) 章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0
3)購買鏈接:https://detail.tmall.com/item.htm?&id=782801398750
4)全套實驗源碼+手冊+視頻下載地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html
5)正點原子官方B站:https://space.bilibili.com/394620890
6)正點原子K210技術交流企鵝羣:605557868
上一章節中已經搭建好了基於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項目的開源地址。因此可以使用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工具軟件的使用介紹不是本教程文檔的重點,請讀者在使用中遇到問題時,善用搜索引擎。
5.3 編譯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固件。