基 CanMV 的 C 开发环境搭建(Linux,Ubuntu篇)

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

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 操作系统。

2. 安装 VMware Workstation Player

本教程使用的 VMware Workstation Player 版本为 17.0.0 VMware Workstation Player 是一个
能够在 Windows 操作系统下创建虚拟机并在所创建虚拟机上运行 Ubuntu Server 20.04.6 操作系
统的程序软件

2.1 创建虚拟机并安装 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 ”进行下载,如下图所示:
准备好镜像文件后,打开 VMWare Workstation Player 并点击“创建新虚拟机 (N) ”按钮打开
新建虚拟机向导,如下图所示:
点击“下一步”按钮后,填写简易安装信息,如下图所示
简易安装信息的说明,如下表所示:
虚拟机的磁盘将占用虚拟机安装位置磁盘的空间,因此确保主机的磁盘空间足够。读者可以
根据自己的实际情况来确定虚拟机的磁盘大小,另外,虚拟机的磁盘大小是可以在创建好虚拟机
后再次调整的。
点击“下一步”按钮后,自定义虚拟机的硬件信息,如下图所示:
主要自定义的硬件信息有内存、处理器、网络适配器,其余的硬件信息,读者也可以根据实
际情况进行调整。
点击“完成”按钮后,虚拟机创建完毕,勾选“创建后开启此虚拟机”复选框,虚拟机将自
动开启。
开启虚拟机后, Ubuntu Server 20.04.6 的安装程序将自动运行,安装程序启动后,首先进入
“选择语言”界面,读者可根据实际情况选择语言,但建议选择“ English ”,如下图所示:

小贴士:ALT+CTAL放出鼠标

回车确认后,若此时安装程序已经连接网络,且检测到有新发布的 Ubuntu Server 安装程序, 则弹出更新界面,建议选择“Continue without updating”,如下图所示:
回车确认后,进入键盘配置界面,键盘配置一般保持默认即可,如下图所示
一直回车直到常用的软件镜像源,如下表所示:
软件镜像源 镜像地址 Ubuntu 官方中国镜像 http://cn.archive.ubuntu.com/ubuntu 清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/ubuntu 阿里巴巴开源镜像站 https://mirrors.aliyun.com/ubuntu
一般保持默认 即可
随后进入系统信息配置界面,读者可根据实际情况配置系统信息,如下图所示
回车确认后,进入 SSH 配置界面,SSH 服务用于远程连接 Ubuntu Server,本教程将在 Ubuntu Server 安装完成后手动安装 SSH 服务,因此这里无需重复配置,如下图所示
等待安装程序安装 Ubuntu Server 完成后,会出现“Reboot Now”选项,如下图所示:
选中“Reboot Now”并回车后,虚拟机会重新启动,直到弹出 Ubuntu Server 的登录界面后, 根据提示输入上文系统信息配置中输入的“Your name”和“Choose a password”分别作为用户名和用户密码登入 Ubuntu Server 系统,如下图所示:
至此,完成 Ubuntu 操作系统在虚拟机上的安装,由于在创建虚拟机的时候选择了 Ubuntu Server 20.04.6 的系统安装镜像文件,因此虚拟机在每次开机时都会加载该镜像文件,为了避免在 之后的虚拟机开机时再次自动进入 Ubuntu Server 的安装程序,导致无法正常进入已安装好的 Ubuntu Server 20.04.6 操作系统,因此需要关闭系统安装镜像文件的“启动时连接”,具体方法为: 在 VMware Workstation Player 软件中选择创建好的 Ubuntu 虚拟机并依次点击菜单栏的“Player→ 可移动设备→CD/DVD 2(SATA) →设置”,如下图所示
接着找到并取消勾选“启动时连接”复选框后点击“确认”按钮,如下图所示

开启 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 -

接下来便可在 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 中用 户的密码,成功连接后,如下图所示:

若找不到ip,则下载net工具,来进行ip查询
靠这个ip来链接ssh
输入密码
链接成功
其中“user”是 Ubuntu Server 中用户的用户名,“host”是 Ubuntu Server 的 IP 地址,若 Ubuntu Server 的 SSH 服务配置正确且网络连接正常,便会提示输入“password”,即 Ubuntu Server 中用 户的密码,成功连接后,如下图所示:
关于 Windows PowerShell、Windows Terminal、Visual Studio Code 等工具软件的安装和使用 介绍不是本教程文档的重点,请读者在使用中遇到问题时,善用搜索引擎。 至此,便可在 Windows 下通过 SSH 服务直接访问 Ubuntu Server,非常方便操作
Ubuntu Server 20.04.6 安装完成后,便可在 Ubuntu Server 20.04.6 下安装相关的软件以搭建 CanMV 的开发环境,但为了方便文件管理,本教程文档将创建三个目录来存放 CanMV,具体如 下表所示:

运行开发环境搭建脚本

为方便开发环境的搭建,本教程文档是使用脚本程序来搭建开发环境,读者可在 A 盘→软件资料→软件→CanMV 固件开发环境搭建脚本中找到该脚本文件,脚本文件的文件名为 “canmv_dev_env_setup.sh”。 该脚本文件是在 Ubuntu Server 下运行的脚本程序,因此首先需要将该脚本文件传输到 Ubuntu Server 的文件系统中。主机与虚拟机之间传输文件的方法有很多,本文档教程将介绍使用 SSH 的方式进行文件传输。 在 Windows 环境下可以借助 scp 命令发送文件至 SSH 服务器或从 SSH 服务器复制文件,使 用起来就和 cp 命令一样方便。将脚本文件从 Windows 的文件系统传输到 Ubuntu Server 的文件 系统,如下:
如果需要脚本文件私信我
至此,基于 CanMV 的 C 开发环境基本搭建完成。 下面列出脚本程序的运行流程: 1,检查脚本运行环境 2,更新软件源和软件 3,创建 python 软链接 4,安装 pip 5,安装 Git 6,安装 CMake 7,安装 Toolchain 8,安装 kflash 9,安装 build-essential 有能力的读者可以自行阅读该脚本文件,有需要的话也可以根据需求修改该脚本文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/355024.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive笔记-3

3.2.2 查看表 1) 展示所有表 (1) 语法: 语法: SHOW TABLES [IN database_name] LIKE [identifier_with_wildcards]; In database_name 写的是查哪个数据库,一般不写默认是当前数据库 Like 后面跟通配符表达式 (2) 案例: 查看在 db_hive1 数据库里有没有以 stu 开头的表 …

Zookeeper 一、Zookeeper简介

1.分布式系统定义及面临的问题 分布式系统是同时跨越多给物理主机,独立运行的多个软件所组成的系统。类比一下,分布式系统就是一群人一起干活。人多力量大,每个服务器的算力是有限的,但是通过分布式系统,由n个服务器组…

【Python日志模块全面指南】:记录每一行代码的呼吸,掌握应用程序的脉搏

文章目录 🚀一、了解日志🌈二、日志作用🌈三、了解日志模块⭐四、日志级别💥五、记录日志-基础❤️六、记录日志-处理器handler🎬七、记录日志-格式化记录☔八、记录日志-配置logger👊九、流程梳理 &#x…

RTSP/Onvif安防监控平台EasyNVR抓包命令tcpdump使用不了,该如何解决?

安防视频监控汇聚EasyNVR智能安防视频监控平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。平台可提供的视频能力包括:…

SpringSecurity实战入门——认证

项目代码 gson/spring-security-demo 简介 Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因为相比…

HTML静态网页成品作业(HTML+CSS+JS)—— 美食企业曹氏鸭脖介绍网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现 图片轮播切换,共有4个页面。 二、…

宕机了, redis如何保证数据不丢?

前言 如果有人问你:"你会把 Redis 用在什么业务场景下?" 我想你大概率会说:"我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。…

分支结构相关

1.if 语句 结构: if 条件语句: 代码块 小练习: 使用random.randint()函数随机生成一个1~100之间的整数,判断是否是偶数 import random n random.randint(1,100) print(n) if n % 2 0:print(str(n) "是偶数") 2.else语…

【网络安全产品】---网闸

了解了不少安全产品,但是对网闸的理解一直比较模糊,今天 what 网闸是安全隔离与信息交换系统的简称,使得在不影响数据正常通信的前提下,让络在不连通的情况下数据的安全交换和资源共享,对不同安全域/网络之间实现真正…

【总线】AXI总线:FPGA设计中的通信骨干

目录 AXI4:高性能地址映射通信的基石 AXI4-Lite:轻量级但功能强大的通信接口 AXI4-Stream:高速流数据传输的利器 结语:AXI总线在FPGA设计中的重要性 大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计…

简单分享github

一、官网 GitHub: Let’s build from here GitHub 二、注册 通过简单的注册步骤,你就可以拥有一个属于自己的GitHub账号。再简单注册完成之后会需要验证你所输入的邮箱才能正常使用你的GitHub。 三、设置自己的库 在注册完成之后,完成一些简单的设置之…

Python第二语言(十三、PySpark实战)

目录 1.开篇 2. PySpark介绍 3. PySpark基础准备 3.1 PySpark安装 3.2 掌握PySpark执行环境入口对象的构建 3.3 理解PySpark的编程模型 4. PySpark:RDD对象数据输入 4.1 RDD对象概念:PySpark支持多种数据的输入,完成后会返回RDD类的对…

5款堪称变态的AI神器,焊死在电脑上永不删除!

一 、AI视频合成工具——Runway: 第一款RunWay,你只需要轻轻一抹,视频中的元素就会被擦除,再来轻轻一抹,直接擦除,不喜欢这个人直接擦除,一点痕迹都看不出来。 除了视频擦除功能外,…

从复用性角度阐述中台建设

目录 复用性中台定义深思中台建设产品线形态何时演变中台能力落地中台 业务中台架构总结 技术学习永不止步,最近也是看了很多关于架构设计相关的专栏,慢慢总结出来一部分知识,代入自己的思考与理解,以及结合并反思自己之前公司的架…

Sping源码(九)—— Bean的初始化(非懒加载)— Bean的创建方式(factoryMethod)

序言 前面文章介绍了在Spring中多种创建Bean实例的方式,包括采用FactoryBean的方式创建对象、使用反射创建对象、自定义BeanFactoryPostProcessor。 这篇文章继续介绍Spring中创建Bean的形式之一——factoryMethod。方法用的不多,感兴趣可以当扩展了解。…

php反序列化的一些知识

问题 <?php $raw O:1:"A":1:{s:1:"a";s:1:"b";}; echo serialize(unserialize($raw)); //O:1:"A":1:{s:1:"a";s:1:"b";}?> php反序列化的时按理说找不到A这个类&#xff0c;但是他没有报错&#xff0c;…

【前端技巧】css篇

利用counter实现计数器 counter-reset&#xff1a;为计数器设置名称&#xff0c;语法如下&#xff1a; counter-rese: <idntifier><integer>第一个参数为变量名称&#xff0c;第二个参数为初始值&#xff0c;默认为0 counter-increment&#xff1a;设置计数器增…

基于51单片机的篮球计分器设计

一.硬件方案 本设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩等功能。 电路主要由STC89C52单片机最小系统数码管显示模块数码管驱动模块蜂鸣器模块按键模块&#xff1b; 二.设计功能 &…

电子书(chm)-加载JS--CS上线

免责声明: 本文仅做技术交流与学习... 目录 cs--web投递 html(js)代码 html生成chm工具--EasyCHM 1-选择powershell 模式 生成 2-选择bitsadmin模式生成 chm反编译成html cs--web投递 cs配置监听器--->攻击---->web投递---> 端口选择没占用的, URL路径到时候会在…

Openldap集成Kerberos

文章目录 一、背景二、Openldap集成Kerberos2.1kerberos服务器中绑定Ldap服务器2.1.1创建LDAP管理员用户2.1.2添加principal2.1.3生成keytab文件2.1.4赋予keytab文件权限2.1.5验证keytab文件2.1.6增加KRB5_KTNAME配置 2.2Ldap服务器中绑定kerberos服务器2.2.1生成LDAP数据库Roo…