基 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 有能力的读者可以自行阅读该脚本文件,有需要的话也可以根据需求修改该脚本文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何调用讯飞星火认知大模型的API以利用其卓越功能

摘要 讯飞星火认知大模型,作为科大讯飞精心打造的一款人工智能模型,在自然语言理解和生成方面展现出了卓越的能力。这款模型通过深度学习技术和大量数据的训练,具备了强大的语言理解、文本生成和对话交互等功能。 一、模型功能概述 讯飞星…

XXL-Job实战(一)

​需求介绍:构建一个分布式短信发送系统,应对双十一活动需向1000万用户快速推送营销短信的挑战,每条数据的业务处理逻辑为0.1s。对于普通任务来说,只有一个线程来处理 可能需要10万秒才能处理完,业务则严重受影响。 常…

【Maven】项目的Maven插件报错

1. 找到本地maven库 2. 删除本地插件 3. 在IDEA上更新pom.xml

从零开始学代码写了一个心理学知识导航站

我从零编码经验开始开发一个网站。最初我只是想把自己收集到的心理学知识和一些资源分享出来,希望能够让更多的用户受益。 然而,在写作时,我意识到,尽管函数和界面是使用 GPT 从头开始​​手工编写的,而且我没有使用所…

【Axure教程】移动端多选图片上传

在移动端应用中,提供多选图片上传功能对于用户体验和功能性具有重要意义,尤其是在像微信、微博等社交媒体平台上。 例如用户可以快速上传多张图片进行分享,发布相册或创建图文并茂的动态;卖家可以一次性上传多个产品图片&#xf…

求职难遇理想offer!!【送源码】

现在的求职行情确实不太好,有很多抱怨自己找到的工作技术栈落后的同学,我也是建议他们接下先干着。不能幻想毕业之后还能找到更合适的工作,那个时候就基本只能参加社招了,没有工作经验参加社招想要获得满意 offer 的更是地狱难度。…

如何在软件开发时代实现技术+业务的双重突破?【含资源】

在当前的软件开发时代,许多企业面临着核心技术缺失、专业人才短缺以及产品能力单一等问题, 迫切需要加强技术实力,补充和扩展原有的业务和行业能力。 将技术与业务需求深度结合,构建适应时代需求的技术业务模式,成为软…

深入了解常用负载均衡软件

在构建高性能、高可用的分布式系统时,负载均衡技术扮演着至关重要的角色。它通过合理分发网络请求到后端服务器集群,从而有效提升系统吞吐量、减少响应延迟、并保障系统的稳定运行。本文将介绍几种常用的负载均衡软件,包括它们的优缺点、应用…

算法体系-23 第二十三节:暴力递归到动态规划(五)

一 求K次打击之后,英雄把怪兽砍死的概率 1.1 描述 给定3个参数,N,M,K 怪兽有N滴血,等着英雄来砍自己 英雄每一次打击,都会让怪兽流失[0~M]的血量 到底流失多少?每一次在[0~M]上等概率的获得一个…

小摩法兴纷纷转多,看涨港股的时机来了吗?

恒生指数今日高开一度上涨89点报18520点,创近两周高。之后持续震荡下行;恒指临近中 午跌幅扩大,恒生科技指数一度跌近1.5%。截止收盘,恒生指数跌0.52%,盘面上,石油、煤炭、环保、建筑节能等板块涨幅居前&a…

Opencv学习项目3——pytesseract

上一次我们使用pytesseract.image_to_data(img)来检测文本,这次我们来只检测数字 项目演示 可以看到,我们只检测了数字其他的并没有检测出来 代码实现 前面两次介绍了opencv的画矩形和设置文本,这次就直接用了,不太明白的可以看…

增加了redis分布式锁,但是还是生成了重复数据

增加了redis分布式锁,但是还是生成了重复数据 原因 两个线程 第一个线程先获取锁,然后进行新增,此时第二个线程也进入方法体,尝试获取锁,结果没获取到,继续在5s内尝试,在redis获取锁等待5s的过…

DevExpress WPF中文教程:Grid - 如何将更改发布到数据库(设计时)?

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

RapidLayout:中英文版面分析推理库

引言 继上一篇文章之后,我这里想着将360发布的版面分析模型整合到现有的rapid_layout仓库中,便于大家快速使用。 不曾想到,我这整理工作越做越多了,好在整体都是往更好方向走。 起初,rapid_layout项目是在RapidStru…

ES中下载ik解决版本不一致问题

1.链接: https://github.com/infinilabs/analysis-ik/releases/tag/v7.17.7 2.我的ES版本是7.17.9 但是Ik没有7.19,只有7.17 3.下载之后创建ik,然后把下载的导入进去: 4.因为版本不一致 我们修改 把所有的7.17.7改为7.17.9然…

Spring AI 整合openAI的chatGpt

Spring AI支持ChatGPT,这是OpenAI的AI语言模型。ChatGPT在激发人们对人工智能驱动文本生成的兴趣方面发挥了重要作用。 SpringAi与Spring Boot 的整合详见上一篇文章: Spring AI 介绍以及与 Spring Boot 项目整合 下面分四个部分来分别说明和演示&#…

Day01 数据结构概述

目录 一、数据结构概述 1、基本概念 2、数据结构 3、逻辑关系(线性结构&非线性结构) 4、物理结构(存储结构) 5、算法 6、算法特征 二、时空复杂度 1、时间复杂度 2、空间复杂度 3、结构类型 一、数据结构概述 1、…

体育时间:“中国第一”的出海代表们,一致瞄准了这一赛道?

2024年无疑又是一个体育赛事超级大年。 从1月的亚洲杯,2月的世乒团体锦标赛、第14届冬运会、到6月欧洲杯与美洲杯隔空对决,巴黎奥运会也将在7月盛大开赛,随后则还有8月的巴黎残奥会,对于期待万分的体育粉丝们,这将是极…

后端不提供文件流接口,前台js使用a标签实现当前表格数据(数组非blob数据)下载成Excel

前言:开发过程中遇到的一些业务场景,如果第三方不让使用,后端不提供接口,就只能拿到table数据(Array),实现excel文件下载。 废话不多说,直接上代码,方法后续自行封装即可: functio…

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…