嵌入式 Linux入门 环境篇第四课,开发工具软件的安装与说明  ......  by 矜辰所致

前言

前面的环境篇我们把开发的基本环境安装好了:Ubuntu虚拟机,网络配置。

为了从 0 开始说明,还特意买了一台新电脑 = =! 就问是不是不将就!!!

在我们接下来做嵌入式 Linux 开发学习的时候,还需要在我们的平台上安装各种开发软件,比如开发 STM32 时候可能需要到 Keil、IAR、STM32CubeMX 等。

所以本文就介绍一些 嵌入式 Linux 开发常用的工具。

说明,文章虽然会把常用的工具罗列介绍,但是部分工具需要在后期学习过程中使用到的时候才方便介绍,有些现在说了对于入门者来说,也不知道干什么的,安装了可能到时候就忘了,还不如等使用到的时候再介绍。

❤️ 嵌入式 Linux 入门 环境篇系列博文:
嵌入式 Linux 入门 环境篇(一、开发板初体验)
嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)
嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)
.
我是矜辰所致,一名摸爬滚打于物联网行业十多年的嵌入式工程师,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

目录

  • 前言
  • 一、软件源说明
  • 二、Windows 端软件
    • 2.1 MobaXterm
    • 2.2 VScode
      • VScode 下载速度慢问题
    • 2.3 Sourceinsight
      • Sourceinsight 新建工程
      • Sourceinsight 中文乱码
    • 2.4 FileZilla
      • SSH 与 FTP
      • Ubuntu 开启 FTP 服务
      • FileZilla 的安装使用
  • 三、Ubuntu 虚拟机端软件
    • 3.1 vi/vim
      • Ubuntu 自带 vi 功能输入异常方向键乱码
    • 3.2 GCC
    • 3.3 arm-linux-gnueabihf-gcc
      • lsb-core lib32stdc++6 安装问题
  • 结语

一、软件源说明

先说明下本 环境篇系列文章所用到的软件都在哪里下载,软件包括前面文章说到的,也包括后面需要用到的。

我接触过的做 Linux 开发板带视频文档教程的有 正点原子、韦东山老师、野火,其实他们都有做 STM32 的开发板和教程。现在他们几家做开发板,那么他们的资料都是免费的,大家都可以自己去网上搜索他们几家的关于 嵌入式开发板的配套资料,里面需要用到的软件都帮大家下载好了。

截取一小段给大家看看:

现在流行的嵌入式 Linux 开发板有两款:i.MX6ULL 和 STM32MP1 系列。对于开发所用的工具和环境都是一样的,就算不是使用的他们这几家的开发板学习,也是大差不差,环境搭建都是通用的。

当然,他们的资料大都放在网盘,也是需要下载的,对于某些我们自己直接可以方便下载到的软件,我们可以直接去对应软件的官网进行下载,这样版本也能够新一点,对于有些境外资源,下载特别慢的情况下,我们可以直接使用提供的配套版本软件。

二、Windows 端软件

先来说 Windows 端的常用软件。

为了使得文章更加完善,即便前面我们安装过的软件,本文中也会列出一个目录,只是不再做过多的介绍。

2.1 MobaXterm

全能型终端软件,支持多种协议,嵌入式开发必备,使用说明见前面文章:《嵌入式 Linux 入门 环境篇(一、开发板初体验)》

下载地址,网上搜一下就有官网,很好找,我就不放外站连接,下载免费版本即可:

2.2 VScode

代码编辑器 VScode ,现在没有人不知道把,都不知道怎么介绍了,微软出品,免费的、跨平台的、功能强大的编辑器。

现在我做 STM32 的开发已经完全抛弃了 IDE,使用 VScode 环境:

在window下使用 VScode 搭建 ARM 开发环境—— 详细版

个人感觉现在估计占了编辑器的半边天 = =!

下载地址,也是网上搜索官网下载就好,如下图:

但是 VScode 下载有一个问题,就是特别慢。

VScode 下载速度慢问题

因为 VScode 官网点击下载的安装包镜像地址在国外,我们可以手动换成国内的镜像源。

具体方式如下,我们在官网点击下载以后,找到下载进度条,不同浏览器会有不同,但是都能够复制下载链接,比如我使用的火狐浏览器,如下图所示:

复制后直接粘贴直接到浏览器,然后将下载地址中开头的 az764295.vo.msecnd.net 更改为
vscode.cdn.azure.cn ,更改完成直接回车确定即可开始下载,如下图:

安装下载完成,配置自己喜欢的主题,安装一些必备的插件,就可以开始使用了:

2.3 Sourceinsight

Sourceinsight 也是一款编辑器,本来同样的东西,选择一种就行,比如 SecureCRT 和 MobaXterm 。

但是这里得破例一下, 因为 Sourceinsight 的源码导航,代码框架查看 没有任何其他的编辑器比它更出色。 这只是我个人最喜欢的点,它还有其他的很多优点就不多说了。

在10年前还没有 VScode 的年代,我就一直使用的 Sourceinsight ,在后来出了 Vscode 之后,因为在 Vscode 中可以直接编译下载 STM32 的工程,工作接触 STM32 比较多,才更多的使用了 Vscode 。

STM32开发 相对于Linux 开发来说,代码量少得可怜,所以对于工程结构(也就是 VScode 中的大纲)查看需求没那么高,但是现在要做代码量大的 Linux 工程,所以是时候用上 Sourceinsight 了。

但是要说明的 Sourceinsight 不是免费的,没有购买序列号只能试用 30 天,这个看大家自己需求吧。 然后再给大家一个表情 o( ̄︶ ̄)o 自己体会。

下载地址页面如下:

我这里直接使用的配套资料中提供的版本安装:

步骤就省略了,安装很快,最后安装完成没有序列号试用就选择第二项:

最后可以尽情的用起来了,使用和配置方式大家可以自己网上搜索,这要说明太多东西,编辑器嘛,大家可以自行摸索,这里简单说明一下新建工程的步骤。

这里要特别说明一下, Sourceinsight 的工程路径不能有中文!!!

Sourceinsight 新建工程

打开 Sourceinsight ,在 Project 栏目选择新建工程,如下图:

在弹出的界面输入工程名字,选择工程路径:

然后弹出下一个界面,一般都是默认不用设置,直接点击 OK ,如下图:

上图完成点击 OK 后,就弹出添加文件的界面了,相对来说这里比较重要,但还是很简单:

点击 Add tree,会给出提示:

点击确定,在上图下面的白色方框内会显示所有的文件,如下图:

上面添加完成就可以点击 Close 关闭界面,然后在 Sourceinsight 界面栏右边一点击 Project windows 窗口,如下图:

然后就可以尽情的操作了:

Sourceinsight 中文乱码

对于没有设置过的 Sourceinsight ,中文应该会是乱码,比如我刚才添加的工程 :

我们需要进行设置,如下图操作:

在弹出的界面框内选择,做如下设置,把 Default encoding 改成 GB2312 形式,如下图:

这个设置是对全部文件生效的,但是不巧,设置之后我的文件还是乱码? 怎么办?

那么只能针对单个文件进行设置了,如下图:

在弹出的界面,选择 GB2312 编码,如下图:

然后就能正常的显示中文了:

2.4 FileZilla

FileZilla 是什么?一个免费的 FTP 客户端软件。

那什么是 FTP ??

专业的名词解释还是引用一下百度百科:

简单理解就是: FTP 是一个文件传输协议。

咦 ? 这里不知道小伙伴们有没有发现,我们上一篇文章《嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)》 里面讲过一个 SSH 协议?

SSH 与 FTP

先来回顾一下我们上一篇文章中提到的 SSH 协议:

两个联系我们这里不深入研究,但是记住:SSH 适用于远程登录会话。FTP 适合远程传输文件。

具体的介绍推荐一篇博文:SSH 与 FTP

Ubuntu 开启 FTP 服务

我们知道了 FTP 是一个协议, FileZilla 是一个 FTP 客户端软件,那么有客户端就得有服务器端,这单与 SSH 类似,我们在上一篇文章中,开始 Ubuntu 中没有开启 SSH 服务,导致我们无法远程登录 Ubuntu ,所以我们在使用 FileZilla 之前,需要在我们需要文件传输的 Ubuntu 中开启 FTP 服务。

我们打开我们虚拟机,输入下面指令安装 FTP 服务:

sudo apt-get install vsftpd

安装完成我们进行一下简单的配置,打开 /etc/vsftpd.conf 文件进行配置。

允许本地用户访问,以及允许本地用户对FTP服务器文件具有写权限,如下图:

然后使用命令

sudo /etc/init.d/vsftpd restart

重启一下 FTP 服务

那么我们在 windows 端就可以使用 FileZilla 与 Ubuntu 虚拟机互传文件了。

☆ 这里又有人会问了,我们使用的虚拟机不是安装了 VMware Tools 吗? 直接可以在主机与虚拟机之间拖动文件了。

这个当然是没有问题,但是正如我以前讲过很多次一样,如果你开发的 Ubuntu 不是你自己的电脑, 是其他地方的一个系统,那么就不存在 VMware Tools 这种东西了,但是 FTP、 SSH 这种客户端还是可以正常的连接使用。

FileZilla 的安装使用

讲了这么多,回到我们需要安装的 FileZilla 软件上来,我们直接在网上搜索一下这个软件,然后在软件官方下载客户端,如下图:

下载安装很简单,过程省略,最后安装完成打开界面如下图:

我们做个简单说明,我们 windows 下的是 FTP 客户端是如何与我们的 Ubuntu (FTP服务器)建立连接然后如何文件传输的。

首先在 FileZilla 软件点击文件 -> 站点管理器,如下图:

在弹出的界面按照如下步骤操作:

上面设置完成点击连接,在弹出的界面直接点击确定,因为我们自己开发的电脑,所以默认保存密码没有问题:

点击确定后,正常就能连接上了,连接好的界面如下图:

又乱码了,设置一下:

设置完成就重新连接就好了。

操作简单,文件传输直接拖拽就行了,双击也可以,这个就不做演示了,大家可以自行尝试。

这样我们就可以实现 windows 和 Ubuntu 虚拟机的文件互传。

对于我们的嵌入式开发,在 windows 部分,上面介绍的几个软件可以说是必备的工具,其他的一些工具,我们在后期学习到需要使用的时候,我们再进行说明。

三、Ubuntu 虚拟机端软件

Ubuntu 上的软件相对 windows 来说就相对复杂一些,还是因为相对于 windows 来说,Ubuntu 使用对新手不是那么友好。不仅是安装,还有各种配置,相对来说没那么容易理解。

所以有厂家把 Linux 下的环境配置写成脚本,一键自动安装,这样方便了新手快速的配置环境。 我们本文挑了一个重要的软件,交叉编译器 来说明。

☆ 交叉编译器 重要,因为我们最终下载到我们开发板的程序都是在 Ubuntu 中通过 交叉编译器编译成的 文件。☆

3.1 vi/vim

vi 编辑器是 Ubuntu 系统自带的,本来没什么好说的,我们还有一篇单独的文章介绍:

嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )

在环境第二篇文章安装虚拟机完成后我们也查看过 vi 的版本:

但是实际上在使用过程中,我发现了问题,键盘 i 并不能正常的进入插入模式,左下角都没有插入提示,按完 i 以后,方向键也会乱码?

刚开始还以为输入法的问题,后来花了一点时间,网上查看了一下问题才解决。

Ubuntu 自带 vi 功能输入异常方向键乱码

Ubuntu 12.04 自带的 vi 安装完成后出现上面的问题,只需要先卸载再重新安装,我们依次执行下面的两句操作即可:

sudo apt-get remove vim-common
sudo apt-get install vim

最后安装完成以后,可以看到版本好像还是一样,但是就已经可以正常使用了:

3.2 GCC

GCC 本身虽然与我们的 嵌入式 Linux 开发并没有直接关联,但是必须要了解。

简单来说, GCC 是一个编译器,就像 Keil 中的 ARMCC,还不懂得话就是 Keil 中负责编译程序的那部分东西。

GCC 是 LInux 下的标准的编译器,GCC 原本作为 GNU 操作系统的官方编译器,现已被大多数类 Unix 操作系统(如 Linux、 BSD、 MacOS X 等)采纳为标准的编译器, 目前 GCC 是 Linux 下重要的软件开发工具之一。

我在前面文章《嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)》中体验的时候已经安装了 GCC :

有了他我们可以进行 C 语言的程序编译测试。

当然我们做嵌入式开发,最终使用的不是标准的 GCC,而且是 专门针对 ARM 平台的 GCC,就是交叉编译器,对于这个问题,我计划在下一篇文章《嵌入式 Linux 入门(十、Linux 下的 C 编程)》 进行详细说明。

3.3 arm-linux-gnueabihf-gcc

其实这个名字一看,如果看过我文章学习过 STM32 的小伙伴应该了解,我在 windows 下开发 STM32 也使用的是 gcc 工具链,如下图:

那么这个 arm-linux-gnueabihf-gcc 就是我们 Linux 下的交叉编译器。

那么如何安装这个编译器,对于 Linux 来说我们有可以使用 apt-get install 命令安装软件包,这个在我们入门文章 《嵌入式 Linux 入门(八、Linux 下的软件安装)》中说明过。

使用如下命令安装:

sudo apt-get install gcc-arm-linux-gnueabihf

但是网上说,使用此命令编译器的版本可能存在某些问题,而且下载也需要时间,我这里已经直接下载好了正点原子提供的安装包(自己到https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/网站去下载这个安装包也会很慢),所以我决定手动安装,这里我就参考正点原子教材的方式 。

我们使用上面刚装的 FileZilla 工具把压缩文件 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz传至 虚拟机 :

接下来我们就在虚拟机进行操作:

使用下面的代码给个权限,习惯问题,直接拷贝过来的东西大多权限不够:

chmod 777 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

在 Ubuntu 中,解压完成就等于安装好了,但是道理同 windows 里面类似,我们在以前开发 STM32 进行一些工具链安装的时候,安装完成需要配置环境变量,在 Ubuntu 中也是需要把工具链配置到环境变量。

这个在我们学习过文章 嵌入式 Linux 入门(七、Linux 下的环境变量) 应该不难理解,配置全局变量的相关文件:

我们就直接修改 /etc/profile 文件,在文件最后加上刚才交叉编译器的环境变量设置,保存退出:

接着执行 source /etc/profile 手动生效一下刚才的环境变量:

这样我们就手动的安装了 arm-linux-gnueabihf-gcc 交叉编译器。

lsb-core lib32stdc++6 安装问题

根据文档,我们还需要添加一些对应的库:

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

但是这里安装遇到了点问题:

在网上找了一个解决办法,先安装一个 aptitude ,然后再进行库的安装。

aptitude 是什么?


我们在 Ubuntu 进行如下操作:

sudo apt-get install aptitudesudo aptitude -f install lib32stdc++6

注意在第二部安装的时候,出现的选项,第一个选择 “N”, 后面都选择 “Y” ,如下图:

正常安装完成即可。

对于我们的嵌入式开发,在 Ubuntu 部分,也只是介绍说明几个必备的软件,其他的我在后期学习到需要使用的时候再进行说明。

结语

本文写下来,基本上可以当做一个从 0 开始配置开发环境的参照,虽然只是简单的介绍了一些常用必备工具的安装使用,但是过程中还是遇到一些不同的问题,也算是给记录类型的文章增加了一些有意义的东西。

希望对大家有所帮助,到这里基本的开发环境就已经搭建完成,看看下一篇文章是讲一讲 Linux 下的 C 编程还是再看看环境配置里面,有哪些东西还需要说明,容我整理一下。

好了,本文就到这里,谢谢大家!

嵌入式 Linux 入门 环境篇(四、必备开发工具安装)相关推荐

  1. 嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)

    嵌入式 Linux入门 环境篇第三课,开发板与PC的网络配置, 我们要实现 windows.ubuntu 和开发板三者的互通. ...... by 矜辰所致 前言 在环境篇前面的文章我们通过终端工具使 ...

  2. 嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)

    嵌入式 Linux入门 环境篇第二课,正好换了新电脑,更新 Ubuntu 虚拟机的安装, 体验一下 Ubuntu 22.04 ...... by 矜辰所致 前言 因为以前的电脑虚拟机环境我都配置好了, ...

  3. Ubuntu必备开发工具安装

    1.安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get install build-essential 2.安装常见开发工具 $sudo apt-get install ...

  4. 嵌入式 Linux 入门(十、Linux 下的 C 编程)

    嵌入式 Linux 入门第十课,聊聊 linux 下的 C 编程...... 矜辰所致 插一句,问题讨论群在文末的推广,以后大家提问可以在群中,即便我不在也能看到历史记录. 目录 前言 一.C 语言编 ...

  5. 嵌入式 Linux 入门(七、Linux 下的环境变量)

    嵌入式 Linux 入门第七课,学习理解 linux 的环境变量 ......矜辰所致 前言 学习完 Linux 的 Shell 命令 和 Shell 脚本,我们还需要理解一个东西 :环境变量,理解了 ...

  6. 嵌入式 Linux 入门(五、Shell 脚本编程上:认识 Shell 脚本)

    大家好,是矜辰所致,嵌入式 Linux入 门第五课,本课开始简单学习一下 Shell 脚本编程. 目录 前言 一.Shell 脚本基础说明 1.1 什么是 Shell 脚本 1.2 Shell 脚本的 ...

  7. 嵌入式linux入门学习规划

    嵌入式linux入门学习规划 如何理解嵌入式系统 ◆嵌入式系统是面向用户.面向产品.面向应用的,它必须与具体应用相结合才会具有生命力.才更具有优势.因此可以这样理解上述三个面向的含义,即嵌入式系统是与 ...

  8. 嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)

    嵌入式 Linux入 门第二课, linux 文件系统.文件类型及权限管理. ...... 矜辰所致 目录 前言 一.Linux 文件属性 1.1 Linux 文件类型 1.2 Linux 文件权限及 ...

  9. python开发工具排名-Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 每一位Python程序员都会有套工具来应对开发工作上的挑战.多年来,Python程序员使用开发工具来完成他们的工作.有很多工具对他们是有用的,不过对于初入 ...

  10. python界面开发工具免费_Python程序员必备的四款开发工具

    原标题:Python程序员必备的四款开发工具 Python自学与交流中心QQ群:260308621 大家今晚利用1个小时看python基础视频教程 23-27节 ,自己监督自己.跟着学习哈!一定要做到 ...

最新文章

  1. Yii2.0 limit(1)与one()
  2. 电脑打字学习_VOL.3,NO.2 | 小学一年级,爸爸管学习,完全就是个笑话!
  3. 关于Linux你了解多少?Linux由来!
  4. SAP 电商云 Spartacus UI 的 CORS 设置
  5. 2021牛客暑期多校训练营7 xay loves monotonicity 线段树区间合并
  6. Bug2算法的实现(RobotBASIC环境中仿真)
  7. nodejs 创建一个静态资源服务器 +路由
  8. Android2D绘图一
  9. POJ3414 Pots —— BFS + 模拟
  10. 卡巴斯基的离线更新以及病毒库备份
  11. 那个超级浏览器好(跨境浏览器哪个好)
  12. python3调用arcpy地理加权回归_分析地理加权回归分析结果的操作方法
  13. mysql下载与安装 win10 64位
  14. java外文文库_java外文文献毕业设计
  15. [FJOI2018]所罗门王的宝藏
  16. 哔哩哔哩面试经验分享
  17. 微信小程序-template模板使用
  18. html2canvas没有样式,html2canvas没有抓住svg(html2canvas not grabbing svg)
  19. dropzone js video上传使用frame-grap.js生成缩略图
  20. 8种常用排序算法稳定性分析

热门文章

  1. 稳压芯片TPS54531的设计和分析
  2. 64位 java 数据类型_java 数据类型
  3. 阿里云企业邮箱用smtp发送邮件失败解决
  4. 计算机技术应用于测量,在测量绘图中计算机技术的应用分析
  5. think-cell 加载项在 Office 出现故障后消失,怎么解决?
  6. springboot毕设项目北理珠青协志愿素拓系统eaa9n(java+VUE+Mybatis+Maven+Mysql)
  7. golang实现家庭收支记账软件项目
  8. 个人收支统计小软件-个人理财(PersonalFinace)- 2009-03-27
  9. 原生js实现的日期选择插件
  10. dos2unix命令解决 Shell 脚本无法执行的问题