第四章 基于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. JUC并发编程学习笔记(二)Lock锁(重点)

    Lock锁(重点) 传统的synchronized 传统的解决多线程并发导致的一些问题我们会使用synchronized关键字来解决,synchronized的本质就是队列.锁. Lock的实现类有: ...

  2. 微服务从代码到k8s部署应有尽有系列全集

    微服务从代码到k8s部署应有尽有系列全集 https://mp.weixin.qq.com/s/8U2h85YJHy3H3hzlBakPPw 实战项目地址:https://github.com/Mik ...

  3. SQL使用ROW_NUMBER() OVER函数自动生成序列号

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说ROW_NUMBER()从1开始,为每一条分组记录返回一个数字,这里的ROW ...

  4. Mac远程控制工具有哪些

    适用于Mac的远程控制工具有很多,这里我们给大家列举五个常用软件. 1.Apple Remote Desktop 苹果自带远程桌面正如其名称所承诺的那样.作为 Apple 出品的应用程序,您可以想象它 ...

  5. PyQt5自定义信号

    一.简介 在 PyQt5 中,自定义信号是一个常见的任务,通常用于在对象之间传递信息或触发特定行为.自定义信号需要继承自 QtCore.pyqtSignal 并定义其参数类型. 二.操作步骤 1.导入 ...

  6. grafana模板参考

    空的,把面板都删除了 { "__inputs": [ { "name": "DS_PROMETHEUS", "label" ...

  7. VS Code 代码片段编写教程

    VS Code 代码片段编写教程 最近要做一个vs code的代码片段插件,于是搜索和学习相关内容,整理分享给大家! [!TIP] 本篇博客50%+内容由BingChat提供,然后作者对内容进行验证和 ...

  8. Maven项目中整合SSH(pom.xml文件的配置详解)

    Maven项目中整合SSH比较繁琐,需要解决版本冲突问题,博主在下面给出了pom.xml文件的配置信息,改配置文件整合的是:struts2-2.3.24.spring4.2.4.hibernate5. ...

  9. WPF DataGrid使用 自动显示行号、全选、三级联动、拖拽

    1.DataGrid的使用自动显示行号(修复删除行时行号显示不正确)   dgTool.LoadingRow += new EventHandler<DataGridRowEventArgs&g ...

  10. .NET6之MiniAPI(九):基于角色的身份验证和授权

    身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统.数据库.应用或资源中的凭据进行比较. 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作. 授权指判断允许用户执行 ...