3 开发环境搭建

一、Ubuntu和Windows文件互传

① 开启Ubuntu的FTP服务:

下载vsftpd:sudo apt-get install vsftpd;

打开vsftpd.conf:sudo nvim /etc/vsftpd.conf;

确保这两行代码没有被注释:

之后重启FTP服务:

② Windows下载FTP客户端:客户端 - FileZilla中文网

③ FileZilla软件设置:

  Ubuntu作为FTP服务器,FileZilla作为FTP客户端。

  FileZilla->文件->站点管理器,创建新站点。

由于这时候是乱码,所以先关闭连接,服务器->断开连接。然后按着以下图设置即可。

二、Ubuntu下的NFS和SSH服务开启

① 后面驱动开发的时候要用到NFS,所以提前下载。

sudo apt-get install nfs-kernel-server rpcbind

② 在用户根目录下创建"linux"文件夹,在linux文件夹下创建"nfs"文件夹。nfs文件夹给nfs服务器使用。

③ 配置nfs。

sudo nvim /etc/exports 打开nfs配置文件

在配置文件添加 /home/luoxuesong/linux/nfs *(rw, sync,no_root_squash)

重启NFS服务

④ SSH服务开启:

sudo apt-get install openssh-server

三、Ubuntu交叉编译工具链安装

1.交叉编译器安装

  Ubuntu自带的gcc是针对X86架构, 现在要编译的是 ARM 架构的代码,所以需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器。

总结:

1、是一个 GCC 编译器。

2、这个 GCC 编译器是运行在 X86 架构的 PC 上的。

3、这个 GCC 编译器是编译 ARM 架构代码的,也就是编译出来的可执行文件是在 ARM 芯
片上运行的。

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。

  这个下载地址是:Linaro Snapshots

之后把文件放在Ubuntu创建的文件夹nfs里面。

创建目录: /usr/local/arm :sudo mkdir /usr/local/arm

把交叉编译器压缩的文件放在 usr/local/arm:sudo cp gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f cp是复制,gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar.xz是需要复制的文件名,/usr/local/arm/是目标路径, -f是强制,他会忽略目标文件是否已存在,直接覆盖原文件。

之后解压tool.tar:sudo tar -vxf gcc-linaro-14.0.0-2023.06-x86_64_arm-linux-gnueabihf.tar.xz  -v是显示压缩过程,-x是解压缩操作,-f指定要解压的tar文件。

完成之后修改环境变量,先进入/etc 文件夹,用sudo进,然后输入以下指令,修改完成后重启Ubuntu就可以啦。

arm-linux-gnueabihf-gcc -v

1、 arm 表示这是编译 arm 架构代码的编译器。 

2、 linux 表示运行在 linux 环境下。 

3、 gnueabihf 表示嵌入式二进制接口,后面的 hf 是 hard float 的缩写,也就是硬件浮点,说明此交叉编译工具链支持硬件浮点。

4、 gcc 表示是 gcc 工具。 

2.安装相关库

在安装之前先更新其他库

sudo apt-get update

sudo apt-get install lsb-core lib32stdc++6

如果第二个安装lib32stdc++6失败,试一下sudo aptitude -f install lib32stdc++6

四、安装VS Code

① 方法1:

直接在Ubuntu Software搜索Visual Studio Code 点击安装即可。

② 方法二:

在火狐搜索Vs code下载linux版本即可。

③ 安装插件:

我安装了这些插件:

五、其他安装

1.STM32CubeProgrammer安装

首先下载STM32CubeProgrammer,直接在Windows电脑上下载后,用FileZillz传过去。

我在/linux/下新建了tool文件夹和在tool文件夹里建了STM32CubeProgrammer文件夹。

用以下命令解压:

unzip en.stm32cubeprg-lin-v2-14-0.zip

解压完成后用以下命令安装:

./SetupSTM32CubeProgrammer-2.14.0.linux

完成安装后再安装Libusb1.0软件包:sudo apt-get install libusb-1.0.0-dev 

2.USB DFU和STLink驱动安装

首先应该先安装STM32CubeProgrammer,因为这里面有我们需要的相关驱动文件。

找到此路径,可以看到如下文件。

 这些.rules 文件全部拷贝到 Ubuntu 的/etc/udev/rules.d 目录下:

cd /home/luoxuesong/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules

sudo cp * /etc/udev/rules.d

这时候重启Ubuntu,用USB连接到USB_OTG开发板的USB上。

这时候鼠标移到右下角有这样的字体,

,然后连接主机。连接成功会显示这样的图标

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

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

相关文章

LinuxBasicsForHackers笔记 -- 控制文件和目录权限

对于每个文件和目录,我们可以指定文件所有者、特定用户组以及所有其他用户的权限状态。 不同类型的用户 在Linux中,root用户是拥有一切权力的。 root 用户基本上可以在系统上执行任何操作。 系统上的其他用户具有有限的能力和权限,并且几乎…

为什么 SQL 不适合图数据库

背景 “为什么你们的图形产品不支持 SQL 或类似 SQL 的查询语言?” 过去,我们的一些客户经常问这个问题,但随着时间的推移,这个问题变得越来越少。 尽管一度被忽视,但图数据库拥有无缝设计并适应其底层数据结构的查询…

nodejs微信小程序+python+PHP就业求职招聘信息平台的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(1)》(22)

《Linux操作系统原理分析之文件管理(1)》(22) 7 文件管理7.1 文件与文件系统7.1.1 文件7.1.3 文件系统及其功能 7.2 文件的组织结构7.2.1 文件的逻辑结构7.2.2 文件的物理结构一、顺序结构(顺序文件或连续文件&#xf…

微信小程序uni.chooseImage()无效解决方案

Bug场景: 微信小程序在上传图片时可以通过 uni.chooseImage()方案进行上传,这里不再赘述具体参数。一直项目都可以正常使用,突然有一天发现无法使用该方法,于是查了一下,发现是用户隐私协议问题。故记录一下解决方案。…

Linux中的网络配置

本章主要介绍网络配置的方法 网络基础知识查看网络信息图形化界面修改通过配置文件修改 1.1 网络基础知识 一台主机需要配置必要的网络信息,才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS 1.1.1 IP地址 在计算机中对IP的标记使用的是3…

逻辑回归 使用Numpy实现逻辑回归

使用Numpy实现逻辑回归 sigmoid 函数 g ( z ) 1 ( 1 e − z ) g(z)\frac{1}{(1e^{−z} )} g(z)(1e−z)1​ # sigmoid 函数 def sigmod(z):return 1/(1np.exp(-z))线性计算与梯度下降 J ( θ ) − 1 m [ ∑ i 1 m y ( i ) l o g ⁡ ( h θ ( x ( i ) ) ) ( 1 − y ( i ) …

【计算机网络笔记】物理层——物理介质

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

Linux socket编程(10):UDP详解、聊天室实现及进阶知识

首先来回顾以下TCP的知识,TCP是一种面向连接的、可靠的传输协议,具有以下特点: TCP通过三次握手建立连接,确保通信的可靠性和完整性使用流控制和拥塞控制机制,有效地调整数据传输的速率,防止网络拥塞TCP提…

redis的keys命令和scan命令性能对比

项目场景 Redis的keys *命令在生产环境是慎用的,特别是一些并发量很大的项目,原因是Redis是单线程的,keys *会引发Redis锁,占用reids CPU,如果key数量很大而且并发是比较大的情况,效率是很慢的&#xff0c…

vivado实现分析与收敛技巧9-分析使用率统计数据

实现问题的常见原因之一是未考量显式和隐式物理约束。例如 , 管脚分配 (pinout) 在逻辑布局上变为显式物理约束。 slice( 分片 ) 逻辑在大部分器件中都是一致的。但如下专用资源表示的是隐式物理约束 , 因为这些资源仅在某些位置…

C语言碎片知识

sizeof 1.sizeof是C语言中的一个操作符,同时也是关键字!!!! 2.sizeof的操作数可以是类型,变量或表达式 如图,第一个为什么是6?,因为先计算了3的大小,占4个字…

【模电】放大电路的组成原则

放大电路的组成原则 组成原则常用的两种共射放大电路 组成原则 通过对基本共射放大电路的简单分析可以总结出,在组成放大电路时必须遵循以下几个原则:    1. 必须根据所用放大管的类型提供直流电源,以便设置合适的静态工作点,并…

【unity3D】unity中如何查找和获取游戏物体

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于游戏开发的学习笔记 🈶本篇是unity中游戏物体的查找与获取 这里写自定义目录标题 获取当前物体的基本属性查找其它物体- 通过名称查找其它物体- 通过标签查找- 通过类…

互联网Java工程师面试题·Spring Boot篇·第二弹

目录 8、什么是 YAML? 9、如何实现 Spring Boot 应用程序的安全性? 10、如何集成 Spring Boot 和 ActiveMQ? 11、如何使用 Spring Boot 实现分页和排序? 12、什么是 Swagger?你用 Spring Boot 实现了它吗? …

MySQL之时间戳(DateTime和TimeStamp)

MySQL之时间戳(DateTime和TimeStamp) 文章目录: MySQL之时间戳(DateTime和TimeStamp)一、DateTime类型二、TimeStamp类型三、DateTime和TimeStamp的区别 当插入数据时,需要自动记录一个时间时候&#xff0c…

【springboot】整合redis

1.前提条件:docker安装好了redis确定redis可以访问 可选软件: 2.测试代码 (1)redis依赖 org.springframework.boot spring-boot-starter-data-redis (2)配置redis (3) 注入 Resource StringRedisTemplate stringRedisTemplate; 对键进行操作 –o…

SCTransform normalization seurat

完成了前面的基础质控、过滤以及去除细胞周期的影响后,我们可以开始SCTransform normalization。 SCTransform normalization的优势: 1️⃣ 一个SCTransform函数即可替代NormalizeData, ScaleData, FindVariableFeatures三个函数;2️⃣ 对测序深度的校正…

[足式机器人]Part2 Dr. CAN学习笔记-Ch0-1矩阵的导数运算

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Ch0-1矩阵的导数运算 1. 标量向量方程对向量求导,分母布局,分子布局1.1 标量方程对向量的导数1.2 向量方程对向量的导数 2. 案例分析,线性回归3. 矩阵求导的链…
最新文章