正点原子嵌入式linux驱动开发——开发环境搭建

在进行 Linux驱动 开发之前肯定需要先将 Linux系统 移植到开发板上去 。 Linux的移植要复杂的多,在移植 Linux之前我们需要先移植一个 bootloader代码,这个 bootloader代码用于启动 Linux内核, bootloader有很多,常用的就是 U-Boot。移植好 U-Boot以后再移植 Linux内核,移植完 Linux内核以后 Linux还不能正常启动,还需要再移植一个根文件系统 (rootfs),根文件系统里面包含了一些最常用的命令和文件。所以 U-Boot、 Linux Kernel和 rootfs这三者一起构成了一个完整的 Linux系统,一个可以正常使用、功能完善的 Linux系统。

同样的,要想在 Ubuntu下进行 Cortex-A(STM32MP157)开发也需要安装一些软件,也
就是网上说的开发环境搭建,环境搭建好以后我们就可以进行开发了。环境搭建分为 Ubuntu和
Windows,因为我们最熟悉 Windows,所以代码编写、查找资料啥的肯定是在 Windows下进行
的。但是 Linux开发又必须在 Ubuntu下进 行,所以还需要搭建 Ubuntu下的开发环境,主要是
交叉编译器的安装
,本章我们就分为 Ubuntu和 Windows,讲解这两种操作系统下的环境搭建。

Ubuntu和Windows文件互传

在开发的过程中会频繁的在 Windows和 Ubuntu下进行文件传输,比如在 Windwos下进行代码编写,然后将编写好的代码拿到 Ubuntu下进行编译。 Windows和 Ubuntu下的文件互传需要使用 FTP服务,设置方法如下:

开启Ubuntu下的FTP服务

打开Ubuntu的终端窗口,然后执行如下命令来安装 FTP服务

sudo apt-get install vsftpd
等待软件自动安装,安装完成以后使用如下 VI命令打开 /etc/vsftpd.conf,命令如下:
sudo vi /etc/vsftpd.conf
打开以后 vsftpd.conf文件以后找到如下两行:
local_enable=YES
write_enable=YES
**确保上面两行前面没有“ “#”**,有的话就取消掉,完成以后如图所示: ![vsftpd.conf修改结果](https://img-blog.csdnimg.cn/97081697a92d408baa3dfe45853e4ab0.png) 修改完 vsftpd.conf以后保存退出,使用如下命令**重启 FTP服务**:
sudo /etc/init.d/vsftpd restart
## Windows下FTP客户端安装

Windows下 FTP客户端使用FileZilla,这是个免费的 FTP客户端软件,可以在 FileZilla官网下载,下载地址如下: FileZilla下载地址,也可以直接在正点原子的文件夹中直接找到这个setup.exe并安装。安装完成后打开界面如下图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第1张图片

FileZilla软件设置

Ubuntu作为 FTP服务器, FileZilla作为 FTP客户端,客户端肯定要连接到服务器上,打开
站点管理器,点击:文件 ->站点管理器,打开以后如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第2张图片
点击上图中的“新站点 (N)”按钮来创建站点,新建站点以后就会在“我的站点”下出现新建的这个站点,站点的名称可以自行修改,选中新创建的“ Ubuntu”站点,然后对站点的**“常规”进行设置**,设置如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第3张图片
Ubuntu文件目录下的中文目录未经编码选择都是乱码的,这是因为编码方式没有选对,选中要设置的站点“ Ubuntu”,选择“字符集”,设置如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第4张图片
设置完成后,连接到FTP服务器,就如下图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第5张图片
如果要将 Windows下的文件或文件夹拷贝到 Ubuntu中,只需要在上图中左侧的
Windows区域选中要拷贝的文件或者文件夹,然后直接拖到右侧的 Ubuntu中指定的目录即可
将 Ubuntu中的文件或者文件夹拷贝到 Windows中也是直接拖放

Ubuntu下NFS和SSH服务开启

NFS服务开启

进行 Linux驱动开发的时候需要 NFS启动,因此要先安装并开启 Ubuntu中的 NFS服
,使用如下命令安装 NFS服务:

sudo apt-get install nfs-kernel-server rpcbind

等待安装完成,安装完成以后在用户根目录下创建一个名为“linux”的文件夹,在 “linux”文件夹里面新建一个名为“nfs”的文件夹,该文件夹提供nfs服务器使用,可以在开发板上通过网络文件系统来访问nfs文件夹,还需要先配置nfs,使用如下命令打开 nfs配置文件 /etc/exports:

sudo vi /etc/exports

打开后添加如下内容,这里要根据自己的用户名进行相应位置的修改

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

添加后/etc/exports如下图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第6张图片

SSH服务开启

开启 Ubuntu的 SSH服务以后我们就可以在 Windwos下使用终端软件登陆到 Ubuntu,比如
使用 SecureCRT Ubuntu下使用如下命令开启 SSH服务:

sudo apt-get install openssh-server

上述命令安装 ssh服务, ssh的配置文件为 /etc/ssh/sshd_config,使用默认配置即可

Ubuntu交叉编译工具链安装

交叉编译器安装

ARM裸机、 Uboot移植、 Linux移植这些都需要在 Ubuntu下进行编译,编译就需要编译器,之前使用 GCC编译器进行代码编译,但是 Ubuntu自带的 gcc编译器是针对 X86架构的!而我们现在
要编译的是 ARM架构的代码,所以需要一个在 X86架构的PC上运行,可以编译 ARM架构代码的 GCC编译器,这个编译器就叫做交叉编译器。

交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。交叉编译器有很多种,ST也有推荐的通用交叉编译器,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第7张图片
正点原子的教程用的就是ARM官方的交叉编译器。首先需要进行下载,下载链接:ARM官方交叉编译器链接,打开以后如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第8张图片
如果直接下载,在之后编译TF-A会有问题,报错会有stm32wrapper4dbg这个命令!之后会有解决方法

可以直接从资料中的开发工具中,找到gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz,这就是下载好的文件。

可以在之前创建好的“linux”文件夹中再创建“tool”来存放开发工具。使用FileZilla将交叉编译器拷贝到Ubuntu的“tool”文件夹中,操作如图:
正点原子嵌入式linux驱动开发——开发环境搭建_第9张图片
拷贝完成后,在Ubuntu中创建目录:/usr/local/arm,命令如下:

sudo mkdir /usr/local/arm

创建完成后将刚刚拷贝的交叉编译器拷贝进入这个目录,首先要“cd”进入刚才存放有交叉编译器的目录,然后拷贝,命令如下:

sudo cp gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz /usr/local/arm/ -f

拷贝完成以后在 /usr/local/arm目录中对交叉编译工具进行解压,解压命令如下:

sudo tar -vxf gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz

解压完成后,就会有一个名为“ gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。

最后修改环境变量,打开/etc/profile文件:

sudo vi /etc/profile

打开后,在最后输入如下内容:

export PATH=$PATH:/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin

修改完之后保存退出,重启Ubuntu,交叉编译工具链就安装成功了。

安装相关库

在使用交叉编译器之前还需要安装一下其它的库,命令如下:

sudo apt-get update //先更新,否则安装库可能会出错
sudo apt-get install lsb-core lib32stdc++6 //安装库

交叉编译器验证

首先查看 一下交叉编译工具的版本号,输入如下命令:

arm-none-linux-gnueabihf-gcc -v

如果交叉编译器安装正确的话就会显示版本号,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第10张图片
要使用刚刚安装的交叉编译器的时候使用的命令是“ arm-none-linux-gnueabihf-gcc arm-none-linux-gnueabihf-gcc”的含义如下:

  1. arm表示这是编译 arm架构代码的编译器;
  2. none表示厂商,一般半导体厂商会修改通用的交叉编译器,此处就是半导体厂商的名字, ARM自己做的交叉编译这里为 none,表示没有厂商;
  3. linux表示运行在 linux环境下;
  4. gnueabihf表示嵌入式二进制接口,后面的 hf是 hard float的缩写,也就是硬件浮点,说明此交叉编译工具链支持硬件浮点;
  5. gcc表示是 gcc工具。

Visual Studio Code软件安装使用

Visual Stuio Code是一个编辑器,可以用来编写代码, Visual Studio Sode本教程以后就简称
为 VSCode, VSCode是微软出的一款免费编辑器。 VSCode有 Windows、 Linux和 macOS三个版本的,是一个跨平台的编辑器。 VSCode下载地址是:VSCode下载地址。下载界面如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第11张图片

Windows版本安装

这个比较简单,双击下载好的exe,然后一直下一步就可以了,最后安装完打开,默认界面如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第12张图片

Linux版本安装

我们有时候也需要在 Ubuntu下阅读代码,所以还需要在 Ubuntu下安装 VSCode。 Linux下的 VSCode安装包可以直接下载,也可以从开源文档中找到, 将资料中的 .deb软件包拷贝到 Ubuntu系统中,然后使用如下命令安装:

sudo dpkg -i code_1.50.1-1602600906_amd64.deb

可以将图标添加到 Ubuntu桌面上,安装的所
有软件图标都在目录 /usr/share/applications中,在这其中找到VSCode的图标,然后鼠标右键,选择复制到->桌面,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第13张图片

VSCode插件的安装

VSCode支持多种语言,比如 C/C++、 Python、 C#等等,本教程我们主要用来编写 C/C++程序的,所以需要安装 C/C++的扩展包,扩展包安装很简单,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第14张图片
需要安装的插件有以下:

  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汇编语法高亮显示;这个现在已经没有了,可以用Arm Assembly代替;
  10. Chinese(Simplified),即中文环境;
  11. vscode-icons VSCode图标插件,主要是资源管理器下各个文件夹的图标;
  12. compareit,比较插件,可以用于比较两个文件的差异;
  13. DeviceTree,设备树语法插件;
  14. TabNine,一款 AI自动补全插件。
    安装完成以后重新打开 VSCode,如果要查看已经安装好的插件,可以按照图展示方法查看:
    正点原子嵌入式linux驱动开发——开发环境搭建_第15张图片

VSCode新建工程

新建一个文件夹用于存放工程,路径尽量不要有中文和空格打开 VSCode。 然后在 VSCode上点击 文件 ->打开文件夹 …,选刚刚创建的“1_test”文件夹,打开后如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第16张图片
打开后,可以看到文件夹“1_TEST”是空的,点击 文件->将工作区另存为…,打开工作区命名对话框,输入要保存的工作区路径和工作区名字,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第17张图片
工作区保存成功以后,点击“新建文件”按钮创建 main.c和 main.h这两个文件,创建成功以后 VSCode如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第18张图片
从上图中可以看出,此时“1_test”中有 .vscode文件夹、 main.c和 main.h,这三个文件和文件夹同样会出现在“1_test”文件夹中,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第19张图片
输入如下所示的代码:
main.h

#include 

int add(int a, int b);

main.c

#include 

int add(int a, int b)
{
    return (a + b);
} 

int main(void)
{
    int value = 0;
    value = add(5, 6);
    printf("5 + 6 = %d", value);
    return 0;
}

正点原子嵌入式linux驱动开发——开发环境搭建_第20张图片
提示找不到“ main.h”,同样的在 main.h文件中会提示找不到“ stdio.h”。这是因为我们没有添加头文件路径按下“ Ctrl+Shift+P”打开搜索框,然后输入 “Edit configurations”,选择“ C/C++:Edit configurations…”,之后会生成一个C/C++的配置文件,是一个json文件,名为:c_cpp_properties.json,此文件默认内容如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第21张图片
c_cpp_properties.json中的变量“ includePath”用于指定工程中的头文件路径,但是 stdio.h
是 C语言库文件,而 VSCode只是个编辑器,没有编译器,所以肯定是没有 stdio.h的,除非自行安装一个编译器,比如 CygWin,然后在includePath中添加编译器的头文件。这里我们
就不添加了,因为我们不会使用 VSCode来编译程序,这里主要知道如何指定头文件路径就可以了,后面有实际需要的时候再来讲。

我们在 VScode上打开一个新文件的话会覆盖掉以前的文件,这是因为 VSCode默认开启
了预览模式,预览模式下单击左侧的文件就会覆盖掉当前的打开的文件
。如果不想覆盖的话采用双击打开即可,或者设置 VSCode关闭预览模式,设置如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第22张图片

CH340串口驱动安装

我们一般在 Windows下通过串口来调试程序,或者使用串口作为终端, STM32MP157开发板使用 CH340这个芯片实现了 USB转串口功能。。
先通过USB线将开发板的串口和电脑连接起来,连接方式如图所示:

CH340是需要安装驱动的,驱动我们已经放到了资料中,双击 SETUP.EXE,打开安装界面,之后直接点击安装按钮等待完成即可。

安装完成后,重新插拔一下串口线。打开设备管理器,打开后,点击左侧“计算机管理 (本地 )”中的“设备管理器”,在右侧选中“端口 (COM和 LPT)”,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第23张图片
如果在上图中界面找到了有“USB-SERIAL CH340”字样的端口设备就说明 CH340驱动成
功了
一定要用 USB线将开发板的串口和电脑连接起来!!!!

MobaXterm软件安装使用

MobaXterm软件安装

MobaXterm是一款终端软件,功能强大而且免费 (也有收费版 )!正点原子的教程推荐使用此软件作为终端调试软件, MobaXterm软件在其官网下载即可, MobaXterm下载链接,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第24张图片
点击下载选择免费版然后下载安装,当然正点原子的开原资料也已经下载好安装包了,在软件盘里面找到MobaXterm_Installer_v12.3.zip,解压之后双击MobaXterm_installer_12.3.msi进行安装,安装方法很简单,一步一步进行即可。

MobaXterm软件使用

双击打开后,界面如下图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第25张图片
点击菜单栏中的“ Sessions->New session”按钮,打开新建会话窗口,打开后如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第26张图片
从上图可以看出, MobaXterm软件支持很多种协议,比如 SSH、 Telnet、 Rsh、 Xdmcp、
RDP、 VNC、 FTP、 SFTP、 Serial等等
,我们使用 MobaXterm的主要目的就是作为串口终端使用点击上图中的“Serial”按钮,打开串口设置界面,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第27张图片
打开串口设置窗口以后先选择要设置的串口号,因此要先用串口线将开发板连接到电脑上,然后设置波特率为 115200(根据自己实际需要设置 );MobaXterm软件可以自动识别串口,因此我们直接下拉选择即可,波特率也是同样的设置方式,下拉选择即可。完了以后还要设置串口的其他功能,下方一共有三个设置选项卡,点击“Advanced Serial settings”选项卡,设置串口的其他功能,例如串口引擎、数据位、停止位、奇偶校验和硬件流控等,按照下图所示设置即可:
正点原子嵌入式linux驱动开发——开发环境搭建_第28张图片
如果要设置终端相关的功能的话点击“ Terminal settings”即可,比如终端字体以及字体大小等。设置完成以后点击下方的“ OK”按钮即可。串口设置完成以后就会打开对应的终端窗口如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第29张图片
如果开发板里面烧写了系统的话就会在终端中打印出系统启动的 log信息,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第30张图片

Windows下ST官方软件安装

ST官方软件简介

在开发 STM32MP157的时候我们还需要用到一些 ST官方提供的软件,一共有三种:
STM32CubeMX、 STM32CubeIDE、 STM32CubeProgrammer,这三个软件的功能如下图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第31张图片

STM32CubeMX

STM32CubeMX是图形化配置工具,可以直观的选择 MCU/MPU型号,可以动态地配置引脚、
配置时钟树、配置中间件、配置内存,可以生成初始化代码、 MPU设备树源码,可以进行 DDR测试等。 STM32CubeMX的好处是具有直观的图形配置界面,而且它把很多东西封装的比较好,例如硬件抽象层、中间层、外围器件和示例代码以及 Arm Cortex-A内核部分 Linux设备树等等,它可以独立使用或作为 Eclipse 插件使用,例如在 STM32CubeIDE上就集成了 STM32CubeMX。STM32CubeMX开源且跨平台,支持在 Windows、 Linux和 macOS 操作系统上运行( 64位),STM32CubeMX与 STM32之间的关系如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第32张图片
STM32CubeMX可以直接在 ST官网下载到 STM32CubeMX已经放到了开发板光盘中。

STM32CubeIDE

STM32CubeIDE是 ST于 2019年新推出的一款多功能的集成开发工具,它集成TrueSTUDIO和 STM32CubeMX插件,并基于 GDB进行调试,它允许集成数百个现有插件,这些插件完成 Eclipse的功能。
TrueSTUDIO插件是一款建立在 Eclipse CDT、 GCC和 GDB的 C/C++集成开发工具 ,其具有项目创建和管理、代码编辑、代码编译以及代码调试等功能
STM32CubeIDE可以直接在 ST官网下载到 STM32CubeIDE已经放到了开发板光盘中。

STM32CubeProgrammer

STM32CubeProgrammer看名字就知道和编程有关,它属于多合一软件工具,它将 ST Visual Programmer、 DFUse Device Firmware Update、 Flash Loader和 ST-Link等软件功能整合到了一起,为用户提供 STM32 微控制器代码烧写和固件安全安装、更新功能,帮助用户更快地开发特定外部存储器的加载程序
STM32CubeProgrammer支持对外部存储器进行编程、擦除 和验证,用户烧写 STM32微控制器既可使用片上 SWD (单线调试 )或 JTAG调试端口,也可以用程序引导装入端口 (例如UART和 USB)。它支持 Motorola S19、 Intel HEX、 ELF 和 二进制格式( BIN文件),支持 ST-LINK固件更新,支持图形化界面操作也支持命令行操作,在命令行界面,可通过脚本实现自动化编程。目前STM32CubeProgrammer支持 Windows、 Linux和 macOS多个操作系统( 64位版本)。
STM32CubeProgrammer可以直接在 ST官网下载到 这里也已经放到了开发板光盘中。

Java环境安装

在安装STM32CbeMX和 STM32CubeIDE前我们要先安装 Java的环境, Java 运行环境版
必须是 V1.7 及以上,否则会导致这两个无法使用。大家可以到Java官网查找下载最新的 64位 Java 软件。
一定要用64位的 JAVA运行环境,否则使用 STM32CubeProgrammer烧写系统的时候会失败!

下载安装包之后,直接根据提示安装就可以了。

安装完 Java 运行环境之后,为了检测是否正常安装,我们可以打开 Windows 的 cmd命令输入框,输入如下命令:

java -version //命令查询 Java版本

如果安装成功就会打印出Java版本号,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第33张图片

STM32CubeMX安装

STM32CubeMX安装方法很简单,解压开发板光盘中的CubeMX压缩包,然后双击解压得到的“SetupSTM32CubeMX-6.0.1.exe”进行安装。安装方法很简单,一路“Next”,然后根据提示接受许可学习、设置安装路径即可。

安装完成后双击打开CubeMX,打开后界面如图:
正点原子嵌入式linux驱动开发——开发环境搭建_第34张图片

STM32CubeIDE安装

将下载好的STM32CubeIDE安装包解压到非中文路径下,双击解压出来的st-stm32cubeide_1.4.0_7511_20200720_0928_x86_64.exe可执行文件进行安装,安装路径中同样不能有中文,否则会导致无法安装,即使安装后也会导致无法正常创建和保存工程

安装全部按照默认即可。STM32CubeIDE是进行 STM32MP157的 M4开发的,不能开发 Linux部分

STM32CubeProgrammer

解压STM32CubeProgrammer安装压缩包,然后双击解压出来的SetupSTM32CubeProgrammer-2.5.0.exe”,安装过程很简单,根据提示进行安装即可,双击打开STM32CubeProgrammer,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第35张图片

Ubuntu下ST官方软件安装

Java环境安装

在Ubuntu下安装这三个软件也是需要 JAVA运行环境的, Ubuntu可能会默认安装了OpenJDK环境,但是 STM32CubeProgrammer是用 Oracle的 JDK编写的,所以需要先卸载掉默认的 OpeJDK,首先输入 java -version”查看一下当前 Ubuntu系统下有没有 OpenJDK,有的话会输出如图所示信息:
Java运行环境版本号
如果有就要卸载,如果没有输出那就等下直接安装就可以了。卸载OpenJDK,输入以下命令:

sudo apt-get remove openjdk*

安装Oracle的JAVA环境,可以在开发盘中找到jre-8u271-linux-x64.tar.gz,将此压缩包拷贝到Ubuntu下,然后解压到Ubuntu的/usr/lib/jvm目录下,输入如下命令:

sudo mkdir /usr/local/java //创建目录
sudo tar vzxf jre-8u271-linux-x64.tar.gz -C /usr/local/java //解压

修改/etc/profile,在文件最后追加如下内容:

export CLASSPATH=.:/usr/local/java/jre1.8.0_271/lib
export PATH=$PATH:/usr/local/java/jre1.8.0_271/bin

完成后的/etc/profile如下图所示:
追加JAVA相关内容
重启电脑,输入“java -version”查看 java安装是否成功,安装成功的话就会打印出 java环境的版本号。

STM32CubeMX安装

在Ubuntu下新建一个名为“STM32CubeMX”的文件夹,然后将开发板光盘中的STM32CubeMX安装包en.stm32cubemx_v6-0-1.zip发送到此文件夹下,然后进行解压,命令如下:

unzip en.stm32cubemx_v6-0-1.zip

解压出来的文件一个都不要删除,防止安装的时候出错,在终端里面执行 SetupSTM32CubeMX-6.0.1.linux,输入如下命令:

chmod 777 SetupSTM32CubeMX-6.0.1.linux //给予可执行权限
chmod 777 SetupSTM32CubeMX-6.0.1.exe //给予可执行权限
./SetupSTM32CubeMX-6.0.1.linux

输入上述命令以后打开安装界面,按照提示操作即可,安装完成后可能在/usr/share/applications目录下找不到STM32CubeMX图标。需要直接搜索,Ubuntu主界面左上角的“活动”按钮,打开搜索条,输入“STM32CubeMX”查找相应的文件,结果如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第36张图片
搜索得到的结果第一个就是安装文件夹,双击打开下图所框选图标即可。
正点原子嵌入式linux驱动开发——开发环境搭建_第37张图片

STM32CubeIDE安装

STM32CubeIDE有专门的 Linux版本,它并不是和 Windows版放到一起的,在开发盘中可以找到。

在Ubuntu下新建一个名为“STM32CubeIDE”的文件夹,然后将开发板光盘中的STM32CubeMX安装包en.st-stm32cubeide_1.4.0_7511_20200720_0928_amd64_sh.zip发送到此文件夹下,然后进行解压,命令如下:

unzip en.st-stm32cubeide_1.4.0_7511_20200720_0928_amd64_sh.zip

解压后,在终端中执行中的 st-stm32cubeide_1.4.0_7511_20200720_0928_amd64.sh,输入如下命令:

chmod 777 st-stm32cubeide_1.4.0_7511_20200720_0928_amd64.sh //给予可执行权限
./st-stm32cubeide_1.4.0_7511_20200720_0928_amd64.sh

输入上述命令以后会先解压压缩包,然后打开安装许可,阅读完安装许可,然后输入’y’表示接受许可,接下来会出现多个询问,根据实际情况填写即可,最后等待安装完成。安装完成以后到/usr/share/applications目录下将STM32CubeIDE的图标复制到桌面上,这样我们就可以通过点击桌面图标打开STM32CubeIDE软件了。

STM32CubeProgrammer安装

在Ubuntu下新建一个名为“STM32CubeProgrammer”的文件夹,然后将开发板光盘中的STM32CubeMX安装包en.stm32cubeprog_v2-5-0.zip发送到此文件夹下,然后进行解压缩,命令如下:

unzip en.stm32cubeprog_v2-5-0.zip

解压出来的文件一个都不要删除,防止安装的时候出错,在终端里面执行SetupSTM32CubeProgrammer-2.5.0.linux即可,输入如下命令:

./SetupSTM32CubeProgrammer-2.5.0.linux

根据提示一步步安装下去, 不要修改安装路径,采用默认路径即可 。以后我们就可以直接在 Ubuntu下通过 STM32CubeProgrammer来烧写系统了

最后,在Ubuntu中安装 libusb1.0软件包,输入如下命令:

sudo apt-get install libusb-1.0.0-dev

USB DFU以及STLink驱动安装

Windows下 USB DFU驱动不需要安装,所以只需要安装 STLink驱动, STLink驱动已
经放到了开发板光盘中,解压该压缩包得到如图 所示内容:
正点原子嵌入式linux驱动开发——开发环境搭建_第38张图片
如果是 64位的电脑,则双击: dpinst_amd64.exe 进行安装。在 ST LINK驱动安装完成以后,我们在电脑设备管理器里面可以看到会多出一个设备(此时 ST LINK必须通过 USB连接到电脑, ST LINK红灯常亮)。

Ubuntu下USB DFU以及STLink驱动安装

如果想要在Ubuntu下通过 USB烧写系统,那么必须要安装 USB DFU驱动
必须先在Ubuntu下安装 STM32CubeProgrammer,因为 STM32CubeProgrammer安装过程
中会解压出 USB DFU以及 STLink相关驱动文件,我们需要用到这些驱动文件!

找到Ubuntu里面的 STM32CubeProgrammer安装路径,如果安装的时候选择的默认路径,
那么就会在用户根目录下生成一个名为“ STMicroelectronics”的文件夹,进入之后,将所有该文件夹下的.rules文件全部拷贝到Ubuntu的/etc/udev/rules.d目录下,命令如下:

cd /home/zuozhongkai/STMicroelectronics/STM32Cube/STM32CubeProgrammer/Drivers/rules
sudo cp * /etc/udev/rules.d/

拷贝完成以后重启 Ubuntu,用 USB Type-C线将开发板的 USB OTG接口与电脑连接起来
默认情况下,拨码开关设置为 000,也就是 USB启动,然后按下复位按键,此时电脑就会发出
USB枚举的叮咚声。默认情况下, USB会连接到 Windows下,我们需要将 USB连接到 Ubuntu
所以需要设置一下 VMware WMware右下角会有当前电脑所有连接的 USB设备
,鼠标放上去
以后会显示每个 USB设备的名字,我们找到含有“ STMicroelectronics DFU”字样的 USB设备,模式,此时图标是灰色的,说明并没有连接到 Ubuntu下,需要我们进行设置。鼠标放上去以后点击鼠标右键,再点击“连接”按钮,此时 USB DFU就会断开与主机 (Windows)的连接,从而
连接到虚拟机 (Ubuntu)上。连接成功以后对应的 USB图标颜色就会深,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第39张图片
连接成功以后就可以使用 STM32CubeProgrammer软件进行测试,打开 Ubuntu下的STM23CubeProgrammer软件,选择“ USB”字样,查看一下端口是否有 USB1”字样,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第40张图片
点击上图右上角的“ Connect”按钮即可通过 USB接口连接到开发板上,左下角的 log区就会输出相应的信息,如图所示:
正点原子嵌入式linux驱动开发——开发环境搭建_第41张图片
可以看出此时 USB DFU已经成功工作,说明 Ubuntu下 STM32 USB DFU驱动成功。
最后,测试下STLink,这个测试比较简单,将 STLink连接到 Ubuntu下,如果 STLink工作成功的话就会在 /dev目录下生成相应的设备文件,如图所示:
STLink设备文件

总结

这一章节的内容,如果跟我一样之前是看过正点原子的其他课程,玩过stm32f1的精英板或者战舰板的,像类似CH340串口和STLink驱动应该是装完的;然后我自己本身也是玩过VSCode写C++的,所以VSCode我自己Windows也有,编译环境我甚至都是配过的;至于Ubuntu上其实是一个道理,我双系统的Ubuntu就配过,gdb的版本,所以Ubuntu里的Vscode状态来也简单;

ST公司官方的三件套,开源而且做得很好,装起来无论是哪个系统都很简单;主要是文件互传这边的FileZilla没搞过,装完了确实互传文件很简便!交叉编译器的安装也是,按照教程走下来就可以,最后再配一个USB和STLink的驱动就大功告成了!

你可能感兴趣的:(linux学习,linux,驱动开发,学习,笔记,visual,studio,code)