【Linux ARM 裸机】开发环境搭建

1、Ubuntu 和 Windows 文件互传

使用过程中,要频繁进行 Ubuntu 和 Windows 的文件互传,需要使用 FTP 服务;

1.1、开启 Ubuntu 下的 FTP 服务

//安装 FTP 服务
sudo apt-get install vsftpd
//修改配置文件
sudo vi /etc/vsftpd.conf//重启 FTP 服务
sudo /etc/init.d/vsftpd restart

修改结果,保证这两行命令前面没有 # ,保存退出;
在这里插入图片描述
重启 FTP 服务;
在这里插入图片描述

1.2、Windows 下安装 FTP 客户端 FileZilla

ifconfig     //查看 Ubuntu 的 IP 地址

在这里插入图片描述
安装好 FileZilla 客户端之后,点击文件选项进入站点管理器,编号4输入的是 iffconfig 获取的Ubuntu 的 IP 地址,编号6输入的 Ubuntu 系统的登录名和密码;
在这里插入图片描述
连接成功如下图;传文件只需要拖动即可;
在这里插入图片描述

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

2.1、安装 NFS 服务(裸机其实不用)

sudo apt-get install nfs-kernel-server portmap     //安装 NFS 服务

安装完成之后,在根目录下创建一个 linux 目录,进入 linux 目录,创建一个 nfs 目录;
在这里插入图片描述

sudo vi /etc/exports    //配置 nfs

在文件末尾添加以下内容;

/home/zsw/linux/nfs *(rw,sync,no_root_squash)

在这里插入图片描述
重启 NFS 服务;

sudo /etc/init.d/nfs-kernel-server restart

在这里插入图片描述
2.2、安装 SSH 服务

sudo apt-get install openssh-server   //安装 SSH 服务

ssh 的配置文件为 /etc/ssh/sshd_config,使用默认配置即可。

3、CH340 驱动安装

之后使用的开发板使用 CH340 这个芯片实现了 USB 转串口功能,安装之前记得把开发板连接电脑;
在这里插入图片描述

4、交叉编译工具链

在这里 Linux C 编程 学了如何在 Linux 进行 C 语言开发,里面使用 gcc 编译器进行代码编译,但是 Ubuntu 自带的 gcc 编译器是针对 X86 架构的,而我们现在要编译的代码,需要在 ARM 架构上运行,所以我们需要一个能在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 gcc 编译器,这个编译器就叫做交叉编译器,交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了

下载链接:arm-linux-gcc在这里插入图片描述
在 /home/zsw/linux 目录下创建 tool 目录,将下载的压缩包复制到 tool 目录下;
在这里插入图片描述
在这里插入图片描述
将刚刚拷贝的交叉编译器复制到 /usr/local/arm 这个目录中,需要创建这个目录;
在这里插入图片描述

sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/

在这里插入图片描述
解压压缩包;

sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

在这里插入图片描述

修改环境变量;

sudo vi /etc/profile

在文件末尾添加以下内容,保存退出,然后重启 Ubuntu 系统(终端输入:reboot);

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

在这里插入图片描述
重启之后检查交叉编译工具安装是否成功;

arm-linux-gnueabihf-gcc -v

在这里插入图片描述

5、SecureCRT 的安装

在后续的学习过程中,需要在 Windows 下使用 SecureCRT 作为终端,SecureCRT 支持 SSH 以及串口;
下载链接:SecureCRT 百度网盘
在这里插入图片描述
安装完成之后要激活,以管理员方式运行 Crack 文件夹下的 keygen.exe 文件;
在这里插入图片描述
在这里插入图片描述
出现 Patch has been done successfully 后点击确定;
在这里插入图片描述
把这个框中的内容复制;
在这里插入图片描述
双击运行 SecureCRT ,默认打开 SecureCRT 时候会是一个输入key的页面,什么都不输入,点击下一步,选择输入自己的相关信息,就会看到分别让你输入名称、序列号等相关日期了,完成结束。
在这里插入图片描述
在这里插入图片描述
差一张图片

6、VScode 安装

直接在 Ubuntu 下安装 VScode ,软件安装参考:Ubuntu 软件安装 ,第 3 种方法是安装 .deb 软件,首先可以下载软件的安装包(.deb 文件),下载好之后将压缩包拷贝到 /home/zsw/linux/tool/ 目录;

sudo cp code_1.88.0_amd64.deb /home/zsw/linux/tool/

在这里插入图片描述
安装命令

sudo dpkg -i code_1.32.3-1552606978_amd64.deb

安装完成之后把图标放到桌面上,参考:Ubuntu 软件安装 ,第 3 种方法有写如何将图标放到桌面;
在这里插入图片描述
现在还需要安装一些插件如下图;
在这里插入图片描述

1)、C/C++,这个肯定是必须的。
2)、C/C++ Snippets,即 C/C++重用代码块。
3)、C/C++ Advanced Lint,即 C/C++静态检测 。
4)、Code Runner,即代码运行。
5)、Include AutoComplete,即自动头文件包含。
6)、Rainbow Brackets,彩虹花括号,有助于阅读代码。
7)、One Dark Pro,VSCode 的主题。
8)、GBKtoUTF8,将 GBK 转换为 UTF8。
9)、ARM,即支持 ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
14)、TabNine,一款 AI 自动补全插件,强烈推荐 !

插件安装完成之后重启 VScode 软件即可;
在这里插入图片描述
现在开发环境已经搭建好了,下一步就可以正式进入学习了 。

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

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

相关文章

rsync 远程同步----------安全高效的异地备份策略

目录 一、rsync介绍 rsync和cp的区别 rsync和scp的区别 二、rsync同步方式 rsync备份的方式 三、配置rsync源服务器 ①本地复制 ②下行同步 ③上行同步 四、常用Rsync命令 五、配置源的两种表达方法 六、部署rsync下行同步 ①环境准备 ②配置rsync源服务器-------…

【Leetcode每日一题】 动态规划 - LCR 166. 珠宝的最高价值(难度⭐⭐)(52)

1. 题目解析 题目链接:LCR 166. 珠宝的最高价值 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了 2.算法原理 想象一下,你正在玩一个寻宝游戏,游戏地图是一个二维网格,每个格子都藏有一…

单片机IGBT驱动电路一例

概述: 驱动的作用有三个: 1.是作为放大器获得所需要的驱动电压。 2.是提高输出电流能力。 3.是进行功率回路和控制回路的隔离 信号从MCU到IGBT驱动芯片 首先驱动电流需要放大 MCU的输出电流是mA级别,而IGBT需要的驱动电流可能达到几安培…

SpringCloud Alibaba Sentinel 简介和安装

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十三篇,即介绍 SpringCloud Alibaba Sentinel 简介和安装。 二、Sentinel 简介 2.1 Sent…

Qt使用iostream的cout

在QT想使用iostream的cout。 参考以下博客: (转载)Qt中使用cout输出的方法 pro里加上; CONFIG console勾选 Run in Terminal clean工程,重新构建 上面是cout的,下面是我的另一个函数的qDebug输出的。

编译原理实验3(基于算符优先文法分析的语法分析器 )

实验目的 加深对语法分析器工作过程的理解;加强对算符优先分析实现语法分析程序的掌握;能够产用一种编程语言实现简单的语法分析程序;能够使用自己编写的分析程序对简单的程序段进行语法分析。 实验要求 根据简单表达式文法构造算符优先分…

jupyter python paramiko 网络系统运维

概述 通过使用jupyter进行网络运维的相关测试 设备为H3C 联通性测试 import paramiko import time import getpass import re import os import datetimeusername "*****" password "*****" ip "10.32.**.**"ssh_client paramiko.SSHCli…

小红薯笔记一键克隆

此工具是用于一键克隆同行笔记的 点击启动浏览器后 扫码登录小红书账号 不需要填写ck 直接输入作品链接,记住是纯链接,不要带文字并点击一键获取 然后软件会全自动解析并发布笔记 操作很简单,一看就懂,所以就没有录制教程哈兄…

技术大揭秘:如何通过JVM状态定位问题,提升阿里巴巴面试胜率?

欢迎关注我的公众号“知其然亦知其所以然”,获取更多技术干货! 大家好,我是小米!今天我要和大家分享的是关于Java虚拟机(JVM)状态定位问题和优化的技巧。在阿里巴巴的面试中,这个话题常常被提及,因为它对于保障系统性能和稳定性至关重要。接下来,让我们逐个来了解如何…

Python常用算法--解决数据结构问题【附源码】

一、约瑟夫环问题 解释:约瑟夫环(Josephus Problem)是一个著名的数学问题,它描述了一个关于围坐一圈的人进行游戏的场景。游戏规则是从一个人开始,顺序报数,每报到特定数目的人将会被排除出圈子,然后从被排除的下一人开始继续报数,游戏继续进行直到最后剩下一个人。 …

【蓝桥杯嵌入式】第十三届省赛(第二场)

目录 0 前言 1 展示 1.1 源码 1.2 演示视频 1.3 题目展示 2 CubeMX配置(第十三届省赛第二场真题) 2.1 设置下载线 2.2 HSE时钟设置 2.3 时钟树配置 2.4 生成代码设置 2.5 USART1 2.5.1 基本配置 2.5.2 NVIC 2.5.3 DMA 2.6 TIM 2.6.1 TIM2 2.6.2 TIM4 2.6.3 …

企业组网异地组网区别是什么?

在现代企业运营过程中,随着企业规模的不断扩大和业务的全球化趋势,企业内部不可避免地需要进行组网工作。在组网过程中,有时可能需要实现异地组网,以便连接位于不同地理位置的分支机构或远程办公室。本文将对企业组网和异地组网进…

如何在社交媒体中使用增强现实来提高客户参与度?

目录 1. 增强现实在社交媒体中的应用是如何发展的 2. 社交媒体营销和广告中的增强现实 3. 社交媒体上的增强现实滤镜和镜头 4. 社交媒体平台上的增强现实购物 5. 利用社交媒体的增强现实事件和品牌激活 6. 增强现实在社交媒体中的未来是什么 7. 社交媒体中的增强现实常见…

Java常用API_正则表达式_分组——捕获分组与非捕获分组介绍与练习

在正则表达式中,从左到右第一个左括号确定为第一组,继续往右看再有左括号它表示的组数就加一。我们可以在正则表达式中使用 \\组数 的方法表示第几组,如\\1表示第一组的内容。 1.捕获分组 捕获分组就是把这一组的数据捕获出来,后…

vscode 安装vim插件配置ctrl + c/v功能

搜索Vim插件 插件介绍部分有提示操作 首先安装该插件,然后按照下述步骤设置ctrl相关的快捷键,以便于脱离im快捷键而愉快的敲代码。 1.在“设置”搜索框内搜索vim.handleKeys,选择 Edit in settings.json 2. 设置ctrl-c,ctrl-v等快捷键置为fa…

【Java集合进阶】list常见的方法和五种遍历方式数据结构

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

会话控制 与 IMS基本概念

目录 1. 因特网和电信网的介绍 2. 7号信令的分层结构及其作用 3. 基本的呼叫过程(ISUP流程) 4. 多媒体通信中的会话的概念 5. 关于IMS 5.1 IMS介绍 5.2 IMS控制层中的主要网元(主要分为两类) 5.3 现在来了解呼叫会话控制功能这一类的网元 6. 总…

2024/4/1—力扣—BiNode

代码实现: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/void convertBiNode_pro(struct TreeNode *root, struct TreeNode **p) {if (root) {convertBiNode_pro(roo…

python修改抖动图facecolor和箱型图alpha

抖动图和箱型图在数据分析和可视化中具有重要的作用,可以帮助人们更好地理解数据的特征和变化趋势。当我们想使用Python绘制抖动图的时候,可以使用seaborn的库来绘制,但其自身的参数限制了我们更改facecolor,绘制箱型图使更改透明…

什么是MQ ?为什么用MQ?

什么是MQ? MQ(message queue)(消息队列),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息…