《DNK210使用指南 -CanMV版 V1.0》第四章 基CanMV的C开发环境搭建

第四章 基CanMV的C开发环境搭建


不论是使用CanMV提供的基于C语言和FreeRTOS的应用开发方式开发应用程序或是编译CanMV固件,都需要搭建基于CanMV的C开发环境,用于编译CanMV源码。

本章分为如下几个小节:

4.1 开发环境搭建说明

4.2 安装VMware Workstation Player

4.3 创建虚拟机并安装Ubuntu

4.4 开启SSH服务并进行远程连接

4.5 创建工作目录

4.6 运行开发环境搭建脚本


4.1 开发环境搭建说明

CanMV提供了基于C语言和FreeRTOS的应用开发方式以及基于MicroPython语法的应用开发方式,其中基于C语言和FreeRTOS的应用开发方式依靠直接编译CanMV源码和应用代码来生成应用程序的可执行文件,而基于MicroPython语法的应用开发方式则是需要先编译CanMV源码并得到CanMV固件,然后在目标芯片上运行CanMV固件,以此来解析并运行MicroPython脚本的应用程序。

可以发现,无论使用那种开发方式进行CanMV的应用开发,都是需要编译CanMV的源码,因此本章介绍的开发环境实际上就是CanMV源码的编译环境,因此在搭建好CanMV的源码编译环境后,便可使用基于C语言和FreeRTOS的应用开发方式开发应用程序以及编译CanMV固件。

在CanMV项目仓库源码编译相关的文档(build.md)中有这么一句话,如下所示:

Only support Linux(recommend) and macOS

那么,这意味着CanMV源码的编译只能在Linux或macOS操作系统下完成,在Windows下是无法完成CanMV源码编译的,并且也推荐在Linux操作系统下进行CanMV源码的编译。为此本教程文档将选用Linux操作系统来搭建CanMV的编译环境,具体选用的Linux发行版本是Ubuntu Server 20.04.6。当然,对于具有能够解决所遇到问题的能力的读者,也可以选用其他Linux发行版本或macOS。

至此,确定了使用Ubuntu Server 20.04.6作为开发环境的操作系统,但是可能大部分读者的电脑安装的都是Windows操作系统,身边并没有装有Ubuntu Server 20.04.6操作系统的电脑,那怎么办呢?以下列出一个解决方案:

一,以购买、租借等方式新增一台安装Ubuntu Server 20.04.6操作系统的电脑

二,使用Windows下的WLS(适用于Linux的Windows子系统)

三,使用VMware Workstation Player等应用程序在Windows下创建虚拟机,并运行Ubuntu Server 20.04.6操作系统

四,其他

本教程文档将就以上解决方案中的第三点(使用VMware Workstation Player等应用程序在Windows下创建虚拟机,并运行Ubuntu Server 20.04.6操作系统)提供详细的教程步骤,具体将介绍在Windows操作系统下使用VMware Workstation Player 17.0.0创建虚拟机并安装运行Ubuntu Server 20.04.6操作系统。

除此了操作系统之外,CanMV源码编译的开发环境,还需要Python、pip、Git、CMake、适用于目标芯片的Toolchain和kflash等软件的支持,下面列出了本教程文档使用的部分软件的版本信息:

表4.1.1 本教程文档所使用部分软件的版本信息

从本章节开始,将会有很多命令行操作,为了方便读者区分是在Window环境下的命令行操作还是Linux环境下的命令行操作,在此约定,下文中出现的命令都将以所需操作系统环境的名称作为命令的注释,且放置在首行。

例如,Windows环境下的命令行操作,如下所示:

# Windows

echo "Hello, World"

Linux环境下的命令行操作,如下所示:

# Linux

echo "Hello, World"

4.2 安装VMware Workstation Player

本教程使用的VMware Workstation Player版本为17.0.0,VMware Workstation

Player是一个能够在Windows操作系统下创建虚拟机并在所创建虚拟机上运行Ubuntu Server

20.04.6操作系统的程序软件,该软件的下载地址,读者也可以在A盘à软件资料à软件àVMware Workstation Player安装程序下找到该软件的安装程序。

在Windows操作系统下双击打开VMware Workstation Player 17.0.0的安装程序运行安装程序,并根据提示点击“下一步”按钮,如下图所示:

图4.2.1 VMware Workstation Player 17.0.0安装程序

认真阅读该软件的“最终用户许可协议”,确认无误后,即可勾选“我接受许可协议中的条款”复选框,随后点击“下一步”按钮,如下图所示:

图4.2.2 VMware最终用户许可协议

若提示“更改Windows功能的兼容性设置”,则根据需要勾选“自动安装 Windows

Hypervisor Platform (WHP)”复选框,随后点击“下一步”按钮,如下图所示:

图4.2.3 更改Windows功能的兼容性设置

接着自定义安装选项,包括软件的位置、是否安装增强型键盘驱动程序、是否将软件的控制台工具添加到系统环境变量,配置好这些自定义安装选项后,点击“下一步”按钮,如下图所示:

图4.2.4自定义安装选项

接着是一些用户体验的配置项,读者可根据自己的喜好进行配置,配置好后点击“下一步”按钮,如下图所示:

图4.2.5 用户体验设置选项

再接着就是配置是否创建快捷方式的界面,读者可根据需要进行配置,配置好后点击“下一步”按钮,如下图所示:

图4.2.6 快捷方式配置选项

接下来,点击“安装”按钮,安装程序便会自动安装VMware Workstation Player,如下图所示:

图4.2.7 确认安装VMware Workstation Player

随后安装程序便会自动安装VMware Workstation Player,静静等待安装完成即可,如下图所示:

图4.2.8 正在安装VMware Workstation Player

安装程序完成VMware Workstation Player安装后,读者若拥有软件的许可证密钥,可点击“许可证”按钮添加许可证木密钥,若无软件的许可证密钥,直接点击“完成”按钮即可,如下图所示:

图4.2.9 完成安装VMware Workstation Player

至此,VMware Workstation Player安装完成,读者可在软件的安装路径中找到并运行软件,或通过安装程序创建的快捷方式运行软件,如下图所示:

图4.2.10 VMware Workstation Player主界面

4.3 创建虚拟机并安装Ubuntu

要使用VMware Workstation Player创建虚拟机并安装Ubuntu Server 20.04.6操作系统,请读者先根据4.2小节在Windows主机下正确安装VMware Workstation Player。

安装Ubuntu Server 20.04.6操作系统需要使用Ubuntu Server 20.04.6的系统安装镜像文件,该镜像文件可前往其官方的发布网站进行下载,进入网站后,在“Select an image”处选择“Server install image”进行下载,如下图所示:

图4.3.1 发布网站下载镜像文件

读者也可以在A盘à软件资料à软件àUbuntu Server安装镜像下找到Ubuntu Server 20.04.6的系统安装镜像文件。

准备好镜像文件后,打开VMWare Workstation Player并点击“创建新虚拟机(N)”按钮打开新建虚拟机向导,如下图所示:

图4.3.2 新建虚拟机向导

打开新建虚拟机向导后,选择“安装程序光盘映像文件(iso)(M)”,并浏览选中Ubuntu Server 20.04.6的系统安装镜像文件,如下如所示:

图4.3.3 选择映像文件

点击“下一步”按钮后,填写简易安装信息,如下图所示:

图4.3.4 填写简易安装信息

简易安装信息的说明,如下表所示:

表4.3.1 简易安装信息说明

点击“下一步”按钮后,填写虚拟机的名称和位置,如下图所示:

图4.3.5 填写虚拟机信息

点击“下一步”按钮后,填写虚拟机的磁盘容量等信息,如下图所示:

图4.3.6 配置虚拟机磁盘信息

虚拟机的磁盘将占用虚拟机安装位置磁盘的空间,因此确保主机的磁盘空间足够。读者可以根据自己的实际情况来确定虚拟机的磁盘大小,另外,虚拟机的磁盘大小是可以在创建好虚拟机后再次调整的。

点击“下一步”按钮后,自定义虚拟机的硬件信息,如下图所示:

图4.3.7 自定义硬件信息

主要自定义的硬件信息有内存、处理器、网络适配器,其余的硬件信息,读者也可以根据实际情况进行调整。

硬件信息中的内存、处理器、网络适配器说明,如下表所示:

表4.3.2 部分硬件信息说明

点击“完成”按钮后,虚拟机创建完毕,勾选“创建后开启此虚拟机”复选框,虚拟机将自动开启。

开启虚拟机后,Ubuntu Server 20.04.6的安装程序将自动运行,安装程序启动后,首先进入“选择语言”界面,读者可根据实际情况选择语言,但建议选择“English”,如下图所示:

图4.3.8 选择语言

回车确认后,若此时安装程序已经连接网络,且检测到有新发布的Ubuntu Server安装程序,则弹出更新界面,建议选择“Continue without updating”,如下图所示:

图4.3.9 不更新安装程序

回车确认后,进入键盘配置界面,键盘配置一般保持默认即可,如下图所示:

图4.3.10 配置键盘

回车确认后,进入网络配置界面,读者请根据实际的网络情况配置网络,或等待DHCP服务器自动分配IP地址,如下图所示:

图4.3.11 配置网络

回车确认后,进入网络代理配置界面,读者请根据实际情况配置网络代理,若无需网络代理,留空即可,如下图所示:

图4.3.12 配置网络代理

回车确认后,进入软件镜像源配置界面,读者可以根据实际的网络情况填写软件镜像源,也可保持默认,如下图所示:

图4.3.13 配置软件镜像源

常用的软件镜像源,如下表所示:

软件镜像源镜像地址

表4.3.3 常用软件镜像源

回车确认后,进入磁盘分区布局的选择界面,读者可根据实际情况进行选择,一般保持默认即可,如下图所示:

图4.3.14 磁盘分区布局

回车确认后,进入磁盘分区界面,读者可根据实际情况进行分区配置,一般保持默认即可,如下图所示:

图4.3.15 配置磁盘分区

回车确认后,弹出磁盘分区确认提示,磁盘分区会擦除磁盘且无法恢复,确认无误后,选择“Continue”并回车,如下图所示:

图4.3.16 确认磁盘分区

随后进入系统信息配置界面,读者可根据实际情况配置系统信息,如下图所示:

图4.3.17 配置系统信息

系统配置信息的说明,如下表所示:

项目描述

表4.3.4 系统配置信息说明

回车确认后,进入SSH配置界面,SSH服务用于远程连接Ubuntu Server,本教程将在Ubuntu Server安装完成后手动安装SSH服务,因此这里无需重复配置,如下图所示:

图4.3.18 配置SSH

回车确认后,进入热门软件安装界面,读者可自行选择安装与否,如下图所示:

图4.3.19 安装热门软件

回车确认后,安装程序便自动开始安装Ubuntu Server,如下图所示:

图4.3.20 Ubuntu Server安装中

等待安装程序安装Ubuntu Server完成后,会出现“Reboot Now”选项,如下图所示:

图4.3.21 Ubuntu Server安装完成

选中“Reboot Now”并回车后,虚拟机会重新启动,直到弹出Ubuntu Server的登录界面后,根据提示输入上文系统信息配置中输入的“Your name”和“Choose a password”分别作为用户名和用户密码登入Ubuntu Server系统,如下图所示:

图4.3.22 登入Ubuntu Server

至此,完成Ubuntu操作系统在虚拟机上的安装,由于在创建虚拟机的时候选择了Ubuntu Server 20.04.6的系统安装镜像文件,因此虚拟机在每次开机时都会加载该镜像文件,为了避免在之后的虚拟机开机时再次自动进入Ubuntu Server的安装程序,导致无法正常进入已安装好的Ubuntu Server 20.04.6操作系统,因此需要关闭系统安装镜像文件的“启动时连接”,具体方法为:在VMware Workstation Player软件中选择创建好的Ubuntu虚拟机并依次点击菜单栏的“Playerà可移动设备àCD/DVD 2(SATA) à设置”,如下图所示:

图4.3.23 打开系统安装镜像设置

接着找到并取消勾选“启动时连接”复选框后点击“确认”按钮,如下图所示:

图4.3.24 取消勾选“启动时连接”复选框

4.4 开启SSH服务并进行远程连接

为了方便开发操作以及主机与虚拟机之间的文件传输,建议在Ubuntu Server下开启SSH服务,这样一来,并可在Windows下使用Visual Studio Code、Windows Terminal等软件访问Ubuntu Server。

首先在Ubuntu Server下安装openssh-server:

# Linux

sudoapt update

sudo apt install openssh-server -y

安装好openssh-server后便自动开启了SSH服务,这么一来,同局域网的SSH客户端便可通过Ubuntu Server的IP地址与Ubuntu Server建立SSH连接。

查看Ubuntu Server的IP地址:

# Linux

hostname -I

接下来便可在Windows主机下通过Windows PowerShell、Windows Terminal、Visual Studio Code等软件的终端与Ubuntu Server建立SSH连接:

# Windows

# ssh user@host

ssh alientek@192.168.6.666

其中“user”是Ubuntu Server中用户的用户名,“host”是Ubuntu Server的IP地址,若Ubuntu Server的SSH服务配置正确且网络连接正常,便会提示输入“password”,即Ubuntu Server中用户的密码,成功连接后,如下图所示:

图4.4.1 使用Windows PowerShell进行SSH连接

关于Windows PowerShell、Windows Terminal、Visual Studio Code等工具软件的安装和使用介绍不是本教程文档的重点,请读者在使用中遇到问题时,善用搜索引擎。

至此,便可在Windows下通过SSH服务直接访问Ubuntu Server,非常方便操作

4.5 创建工作目录

Ubuntu Server 20.04.6安装完成后,便可在Ubuntu Server 20.04.6下安装相关的软件以搭建CanMV的开发环境,但为了方便文件管理,本教程文档将创建三个目录来存放CanMV,具体如下表所示:

表4.5.1 工作目录说明

创建以上三个目录:

# Linux

mkdir -p ~/Kendryte_K210/Resources

mkdir -p ~/Kendryte_K210/Tools

mkdir -p ~/Kendryte_K210/Workspace

为了方便访问这三个目录,接着将这三个目录的路径添加到环境变量:

# Linux

echo 'export

RESOURCES='"$HOME"'/Kendryte_K210/Resources' >> ~/.bashrc

echo 'export

TOOLS='"$HOME"'/Kendryte_K210/Tools' >> ~/.bashrc

echo 'export

WORKSPACE='"$HOME"'/Kendryte_K210/Workspace' >> ~/.bashrc

source ~/.bashrc

这么一来,便可在命令行中直接使用“$RESOURCES”、“$TOOLS”、“$WORKSPACE”来分别访问以上三个目录了,例如:

# Linux

cd $RESOURCES

4.6 运行开发环境搭建脚本

为方便开发环境的搭建,本教程文档是使用脚本程序来搭建开发环境,读者可在A盘à软件资料à软件àCanMV固件开发环境搭建脚本中找到该脚本文件,脚本文件的文件名为“canmv_dev_env_setup.sh”。

该脚本文件是在Ubuntu Server下运行的脚本程序,因此首先需要将该脚本文件传输到Ubuntu

Server的文件系统中。主机与虚拟机之间传输文件的方法有很多,本文档教程将介绍使用SSH的方式进行文件传输。

在Windows环境下可以借助scp命令发送文件至SSH服务器或从SSH服务器复制文件,使用起来就和cp命令一样方便。将脚本文件从Windows的文件系统传输到Ubuntu Server的文件系统,如下:

# Windows

# scp source ... target

scp ./canmv_dev_env_setup.sh alientek@192.168.6.666:/tmp

接着到Ubuntu Server下运行该脚本程序:

# Linux

chmod +x /tmp/canmv_dev_env_setup.sh

/tmp/canmv_dev_env_setup.sh

rm /tmp/canmv_dev_env_setup.sh

脚本程序运行过程中可能需要输入用户密码,脚本程序运行完毕后,需重启以生效所有配置:

# Linux

sudo reboot

至此,基于CanMV的C开发环境基本搭建完成。

下面列出脚本程序的运行流程:

1.检查脚本运行环境

2.更新软件源和软件

3.创建python软链接

4.安装pip

5.安装Git

6.安装CMake

7.安装Toolchain

8.安装kflash

9.安装build-essential

有能力的读者可以自行阅读该脚本文件,有需要的话也可以根据需求修改该脚本文件。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容