文章目录
开发环境的搭建
要进行裸机开发肯定要先搭建好开发环境,,要想在Ubuntu下进行 Cortex-A(I.MX6U)开发也需要安装一些软件,也就是网上说的开发环境搭建,环境搭建好以后我们就可以进行开发了。环境搭建分为 Ubuntu 和 Windows,因为我们最熟悉 Windows,所以代码编写、查找资料啥的肯定是在 Windows 下进行的。但是 Linux 开发又必须在 Ubuntu 下进行,所以还需要搭建 Ubuntu 下的开发环境,主要是交叉编译器的安装。
一、文件互传
在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传输,比如在 Windwos 下进行代码编写,然后将编写好的代码拿到 Ubuntu 下进行编译。Windows 和 Ubuntu 下的文件互传我们需要使用 FTP 服务,设置方法如下:
1、开启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 以后保存退出,使用如下命令重启 FTP 服务:
sudo /etc/init.d/vsftpd restart
2、Windows下FTP客户端安装
Windows 下 FTP 客户端我们使用 FileZilla,这是个免费的 FTP 客户端软件,可以在 FileZilla官网下载。
安装好之后打开软件
点击:文件->站点管理器
点击:新站点
然后点击连接即可。
拷贝文件只需在连接后,将Windows 区域选中要拷贝的文件或者文件夹,然后直接拖到右侧的 Ubuntu 中指定的目录即可。
将 Ubuntu 中的文件或者文件夹拷贝到 Windows 中也是直接拖放。
二、Ubuntu 下 NFS 和 SSH 服务开启
1、NFS 服务开启
后面进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:
sudo apt-get install nfs-kernel-server rpcbind
等待安装完成,安装完成以后在用户根目录下创建一个名为“linux”的文件夹,以后所有的东西都放到这个“linux”文件夹里面,在“linux”文件夹里面新建一个名为“nfs”的文件夹,使用如下命令打开 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打开/etc/exports 以后在后面添加如下所示内容:
/home/你的用户名/linux/nfs *(rw,sync,no_root_squash)
重启 NFS 服务,使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
2、SSH 服务开启
开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu,比如使用 SecureCRT,Ubuntu 下使用如下命令开启 SSH 服务:
sudo apt-get install openssh-server
三、Ubuntu 交叉编译工具链安装
1、 交叉编译器安装
ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,而我们现在要编译的是 ARM 架构的代码,所以我们需要一个在 X86 架构的 PC 上运行,可以编译 ARM 架构代码的 GCC 编译器,这个编译器就叫做交叉编译器。
总结一下交叉编译器就是:
1、 GCC 编译器。
2、运行在 X86 架构的 PC 上。
3、编译 ARM 架构代码的,编译出来的可执行文件是在 ARM 芯片上运行的。
交叉编译器中“交叉”的意思就是在一个架构上编译另外一个架构的代码,相当于两种架构“交叉”起来了。
交叉编译器有很多种,我们使用 Linaro 出品的交叉编译器,Linaro 是一间非营利性质的开放源代码软件工程公司,Linaro 开发了很多软件,最著名的就是 Linaro GCC 编译工具链(编译器),关于 Linaro 详细的介绍可以到 Linaro 官网查阅。
因为我们所使用的 I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,我们要先将交叉编译工具拷贝到 Ubuntu 中,在 linux 文件夹里面再创建一个名为“tool”的文件夹,用来存放一些开发工具。使用前面已经安装好的 FileZilla 将交叉编译器拷贝到 Ubuntu 中刚刚新建的“tool”文件夹中
在 Ubuntu 中创建目录:/usr/local/arm,命令如下:
sudo mkdir /usr/local/arm
将文件拷贝到创建的目录中:
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
拷贝完成以后在/usr/local/arm 目录中对交叉编译工具进行解压,解压命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
修改环境变量,使用 VI 打开/etc/profile 文件,命令如下:
sudo vi /etc/profile
打开/etc/profile 以后,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。
2、安装相关库
在使用交叉编译器之前还需要安装一下其它的库,命令如下:
sudo apt-get install lsb-core lib32stdc++6
3、交叉编译器验证
首先查看一下交叉编译工具的版本号,输入如下命令:
arm-linux-gnueabihf-gcc -v
如果交叉编译器安装正确的话就会显示版本号
四、VScode的安装
进入官网下载Linux版本的.deb然后将文件拷贝到Ubuntu系统中
1、安装Vscode
sudo dpkg -i code_1.32.3-1552606978_amd64.deb
2、安装插件
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 Assembly,即支持 ARM 汇编语法高亮显示。
10)、Chinese(Simplified),即中文环境。
11)、vscode-icons,VSCode 图标插件,主要是资源管理器下各个文件夹的图标。
12)、compareit,比较插件,可以用于比较两个文件的差异。
13)、DeviceTree,设备树语法插件。
14)、TabNine,一款 AI 自动补全插件。
五、CH340 串口驱动安装
我们一般在 Windwos 下通过串口来调试程序,或者使用串口作为终端,I.MX6U-ALPHA 开发板使用 CH340 这个芯片实现了 USB 转串口功能。
先通过 USB 线将开发板的串口和电脑连接起来起来,安装驱动
六、SecureCRT的配置
SecureCRT 功能很强大,支持 SSH,可以用来远程登陆;支持串口,可以用来作为 Linux 开发板的串口终端。我们用的最多的就是将 SecureCRT 作为串口终端来使用。
连接开发板后打开“设备管理器”,在设备管理器中查看当前连接到电脑的端口都有哪些
我们已经知道了当前开发板所使用的串口号了,比如我的是 COM3,打开 SecureCRT,然后点击 File->Quick Connect
按下reset