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

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语言和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操作系统的程序软件,该软件的下载地址为https://www.vmware.com/cn/products/workstation-player.html,读者也可以在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的系统安装镜像文件,该镜像文件可前往其官方的发布网站进行下载,网址为:https://releases.ubuntu.com/focal,进入网站后,在“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
sudo apt 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

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

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

  1. (0)ASP.NET Core 简单介绍 和开发环境搭建 - ASP.NET从MVC5升级到MVC6

    ASP.NET从MVC5升级到MVC6 总目录 ASP.NET Core 首先,ASP原本只是一种技术,这种技术从上个世纪90年代就有了. Active Service Page 和 Java Ser ...

  2. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  3. J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...

  4. [原创] RestartPC64-中文版v1.0.0.9

    原来发布的RestartPC-中文版和英文版v1.0.0.5,在PE64下无效.所以重新编译了64位版的RestartPC64-中文版v1.0.0.9,可以在PE64下面.正常Win64系统下面重启关 ...

  5. 《C++Primer》第五版习题解答--第四章【学习笔记】

    [C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...

  6. Windows下C,C++开发环境搭建指南

    Windows下C,C++开发环境搭建指南 前情提要 基于近一段时间很多网友发邮件反馈,说一些项目编译出现问题,诸如此类的情况. 就觉得很有必要写一篇C,C++开发环境的小指南,统一回复. 1.君欲善 ...

  7. (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

    原文传送门(http://blog.csdn.net/bingtianxuelong/article/details/17843111) 版本说明:     V1:         2014-2-13 ...

  8. CC++初学者编程教程(2) Microsoft Visual C++ 6.0开发环境搭建

    上一篇演示的是如何安装VS2010,本文演示的是如何安装Microsoft Visual C++ 6.0 简称VC6. 有同学经常VC6都是很古董的版本了,为啥他还存在,不得不说VC6是微软一个很经典 ...

  9. vue开发环境搭建Mac版

    一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对  ...

  10. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

随机推荐

  1. Ubuntu 安装谷歌中文输入法

    Ubuntu 安装谷歌中文输入法 下载谷歌拼音:sudo apt-get install fcitx-googlepinyin 点击设置: 第一次打开需要点击安装: 设置完成后重启系统 点击右上角键盘 ...

  2. 远程协助软件哪个好,IT远程支持用什么软件

    软件行业做售后支持,有时候需要远程控制客户电脑以实现远程协助,远程解决客户问题. IT远程支持用什么软件比较好?这个我们可以逐个分析下. 一.QQ远程 一看就不专业,的确也不专业.QQ远程协助可以实现 ...

  3. 4G EPS 中的消息类型

    目录 文章目录 目录 消息 MIB(主消息块) SIBs(多个系统消息块) 系统消息的映射和调度 系统信息的更改通知 消息 LTE 的系统消息是蜂窝网络与 UE 互相交互的与 LTE 系统相关的.特殊 ...

  4. vue多页面应用

    多页面应用本身和单页面应用没什么差别,无非是多了几个入口点. 入口点多的话,还可以写个函数扫描路径取添加入口点. 比较让人好奇的是路径的问题.我们要开发的时候要体现目录层级接口,所以入口文件是一层套一 ...

  5. FolkMq v1.4.6 发布(可以内嵌的消息中间件)

    功能简表 角色 功能 生产者(客户端) 发布消息.定时消息(或叫延时).顺序消息.可过期消息.事务消息.支持 Qos0.Qos1 消费者(客户端) 订阅.取消订阅.消费-ACK(自动.手动) 服务端 ...

  6. C# 泛型里使用四则运算的办法,委托的妙用

    直接上代码 public static class TestGenricCalc { public static T Clac<T>(T t1, T t2,Func<T,T,T> ...

  7. c#事件的实际应用场景

    最简单的定义事件的语法 public event Action<bool> Refreash; 先介绍这个Action 这个Action是委托的快速实现方式,我用.net framewor ...

  8. Android OpenMAX(三)高通OMX组件实现基础

    上一节了解了OMX组件实现的基础内容,这一节我们以高通OMX实现为例,简单看看如何实现一个OMX组件.本节代码参考自: omx_core_cmp.cpp qc_omx_component.h omx_ ...

  9. K8S POD控制器:从基础到高级实战技巧

    本文深入探讨了Kubernetes POD控制器的基础知识.配置示例.最佳实践,并通过一个电子商务公司的案例分析,展示了如何在复杂的生产环境中应用POD控制器,以优化云服务架构. 关注[TechLea ...

  10. docker——health(容器的健康检查)

    容器的健康检查机制 了解在dockerfile中容器的健康检查 # 在dockerfile中使用healthcheck指令,声明健康检测配置,用于判断容器主进程的服务状态是否正常,反映容器的实际健康状 ...