基 CanMV 的 C 开发环境搭建

news2024/11/26 10:48:21
不论是使用 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 ”,如下图所示:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

读AI新生:破解人机共存密码笔记04计算的极限

1. 计算的极限 1.1. 光靠速度是无法给我们带来人工智能的 1.1.1. 在速度更快的计算机上运行糟糕的算法并不会使算法变得更优秀,这只意味着你会更快地得到错误的答案 1.1.2. 数据越多,错误答案出现的机会就越大 1.…

EE trade:现货黄金杠杆比例的计算方法

现货黄金杠杆交易是一种利用保证金进行交易的方式,允许投资者用较少的资金控制较大的交易量,从而放大收益或损失。杠杆比例的计算方法相对简单,主要取决于交易所需的保证金和实际交易金额之间的关系。 杠杆比例的计算公式 杠杆比例 实际交…

使用插件永久解决IDEA使用Shift+F10失效问题(不需要换老版本输入法)

在日常编程中,使用快捷键可以大大提高开发效率。然而,有时候我们会遇到IDEA 中,ShiftF10 快捷键失效。这个蛋疼的问题现在终于可以得到解决,上个月在逛V2EX的时候看见一位大佬做的插件。 大佬链接:https://www.v2ex.c…

物联网技术-第4章物联网通信技术-4.1计算机网络

目录 1.1计算机网络拓扑与组成 (1)全连通式网络 (2)星型网 (3)环形网 (4)总线网 (5)不规则型网 1.2数据交换类型 (1)电路交换网 &…

STM32单片机DMA存储器详解

文章目录 1. DMA概述 2. 存储器映像 3. DMA框架图 4. DMA请求 5. 数据宽度与对齐 6. DMA数据转运 7. ADC扫描模式和DMA 8. 代码示例 1. DMA概述 DMA(Direct Memory Access)可以直接访问STM32内部的存储器,DMA是一种技术,…

C++ | Leetcode C++题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution { public:int findPeakElement(vector<int>& nums) {int n nums.size();// 辅助函数&#xff0c;输入下标 i&#xff0c;返回一个二元组 (0/1, nums[i])// 方便处理 nums[-1] 以及 nums[n] 的边界情况auto get …

【漏洞复现】泛微OA E-Cology ln.FileDownload 任意文件读取漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

Debian12的#!bash #!/bin/bash #!/bin/env bash #!/usr/bin/bash #!/usr/bin/env bash

bash脚本开头可写成 #!/bin/bash , #!/bin/env bash , #!/usr/bin/bash , #!/usr/bin/env bash #!/bin/bash , #!/usr/bin/bash#!/bin/env bash , #!/usr/bin/env bash Debian12的 /bin 是 /usr/bin 的软链接, /sbin 是 /usr/sbin 的软链接, (Debian12默认没有ll命令,用的ls …

网络安全:数据库安全性

文章目录 网络安全&#xff1a;数据库安全性引言数据库安全性的重要性常见的数据库安全威胁数据库安全性的最佳实践数据加密访问控制审计和监控 结语 网络安全&#xff1a;数据库安全性 引言 在前两篇文章中&#xff0c;我们讨论了SQL注入的概念和防范措施。本篇文章将聚焦于…

5216万!国内自动化巨头,拟剥离旗下子业务

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 近日&#xff0c;中控技术发布公告称&#xff0c;为进一步优化资产结构和产业布局&#xff0c;提升公司核心竞争力&#xff0c;公司拟将其全资子…

Python | Leetcode Python题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution:def findPeakElement(self, nums: List[int]) -> int:n len(nums)# 辅助函数&#xff0c;输入下标 i&#xff0c;返回 nums[i] 的值# 方便处理 nums[-1] 以及 nums[n] 的边界情况def get(i: int) -> int:if i -1 or…

canvas实现画布拖拽效果 适配Uniapp和Vue (开箱即用)

需求:我司是做AIGC项目最近和地铁项目有关需要实现海报效果图&#xff0c;并且需要使用画布拖拽和修改上传删除等等功能 当时连续加班花了10个工作日搓出来 实现挺简单的但是Canvas数据处理还是挺麻烦的 大概功能如图下 首先我们需要引入Fabric.js 这个库封装好了原生的Canva…

如何实现element表格合并行?

前两天我一个朋友咨询我element表格合并行的问题,他研究了很久,已经开始怀疑是不是element UI出现了bug,然后跟我一阵沟通,最终解决了问题,他的问题在于他把事情想复杂了,接下来我们一起来看一下这个经典“案例”,很多人真的很有可能走入这个误区,当然老鸟就不用看了,…

Pyqt QCustomPlot 简介、安装与实用代码示例(二)

目录 前言实用代码示例彩色图演示散点像素图演示实时数据演示多轴演示对数轴演示 结语 所有文章除特别声明外&#xff0c;均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nixgnauhcuy’s blog&#xff01; 如需转载&#xff0c;请标明出处&#xff01; 完整代码我已经上传到…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 内存访问热度分析(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

《EDA技术》十六选一数据选择器实验报告

摘 要&#xff1a; 本实验通过Quartus软件完成对十六选一数据选择器的四种VHDL程序&#xff0c;分别为if;case;when else;when select四种方式&#xff0c;实现波形图的生成。同时&#xff0c;加深对VHDL语言的理解和使用多种方式完成任务的能力&#xff0c;提高实验操作能力。…

[WTL/Win32]_[中级]_[MVP架构在实际项目中应用的地方]

场景 在开发Windows和macOS的界面软件时&#xff0c;Windows用的是WTL/Win32技术&#xff0c;而macOS用的是Cocoa技术。而两种技术的本地语言一个主打是C,另一个却是Object-c。界面软件的源码随着项目功能增多而增多&#xff0c;这就会给同步Windows和macOS的功能造成很大负担…

vue:对三种获取更新后的dom的方式进行分析

一、问题分析 由于vue的异步更新机制&#xff0c;我们在同步代码中是无法获取到更新后的dom的信息的 针对这个问题&#xff0c;我们有三种解决方案获取更新后的dom: 1.nextTick() 2.setTimeout() 3.在微任务中获取 因为更新是在同步任务结束后&#xff0c;执行微任务之前…

Java项目常用包的分层和作用

一个好的Java项目要有好的分层&#xff0c;不仅简洁明了&#xff0c;而且降低代码的耦合度&#xff0c;方便维护和升级。 web层 在Java Web应用程序中&#xff0c;Web层通常指的是处理HTTP请求和响应的层次&#xff0c;它直接与客户端&#xff08;通常是Web浏览器&#xff09…

【idea】gradle多模块构建项目内存溢出终止问题解决

背景 idea构建多模块项目&#xff0c;构建报错 Daemon is stopping immediately JVM garbage collector thrashing and after running out of JVM memory 解决 进到下图目录下 在文件管理中进入上面目录添加gradle.properties文件&#xff0c;内容如下 org.gradle.jvmargs-…