基于linux平台的嵌入式开发每日一练(一)

序言:

学习基于linux平台的嵌入式开发之前我已经经过了基于纯单片机开发》》》基于实时系统ucosIII、freeRTOS平台的嵌入式开发两个阶段的学习和实战。基于linux平台的嵌入式开发是我学习嵌入式开发的第三个阶段,也是步入复杂的嵌入式系统开发的开始。之所以打算把自己每天的学习经过记录下来,一方面是为了做记录方便随时看,加深记忆,最重要的还是由于我自己怕自己在这个过程中懈怠,每日都写可以时刻提醒我。过程肯定是痛苦的,不过每日进步一点,我相信在我设定的时间内一定可以完成我的学习目标。

下边是我的学习线路,我也会严格按照这个顺序进行学习:
基于正点原子阿尔法开发板裸机开发 > uboot初级研究 > linux内核初级研究 > 文件系统初级研究 > 基于linux系统和阿尔法开发板的底层驱动开发 > 使用QT完成linux 嵌入式平台上物联网网关开发 > 阿里云连接

之前已经有一定linux C的基础,所以学习内容里面没有关于linux C入门方面的知识;因为基于正点原子的开发板,有些笔记也是正点原子相关教程上的内容。

废话不多说,开始今天的学习。今天是2020.07.30,雨天。

=====================================================

第一天:开发环境搭建

开发环境的搭建包含两部分的内容,一部分是在windows下的开发环境搭建,另一部分是ubuntu(linux的一个发行版本)下的开发环境搭建。

1. ubuntu和windows文件互传
在开发的过程中会频繁的在 Windows 和 Ubuntu 下进行文件传 输,比如在 Windwos 下进行代码编写,然后将编写好的代码拿到 Ubuntu 下进行编译。

Windows 和 Ubuntu 下的文件互传需要使用 FTP 服务,设置方法如下:

  • 开启 Ubuntu 下的 FTP 服务
    (1)在linux平台上安装FTP服务并在安装完成后打开ftp服务配置文件:
    sudo apt-get install vsftpd
    sudo vi /etc/vsftpd.conf

    (2)修改并保存ftp服务配置文件
    打开以后 vsftpd.conf 文件以后找到如下两行:
    local_enable=YES
    write_enable=YES
    确保上面两行前面没有“#”,有的话就取消掉,即是**允许本地用户登录和允许启用任何形式的 ftp 写命令两项功能。

    (3)重启FTP服务
    sudo /etc/init.d/vsftpd restart

  • 在windows下安装FTP服务软件
    (1)安装FileZilla软件

(2)配置FileZilla软件

Ubuntu 作为 FTP 服务器, FileZilla 作为 FTP 客户端,客户端肯定要连接到服务器上,打开
站点管理器,点击:文件->站点管理器,如下所示:
基于linux平台的嵌入式开发每日一练(一)

  • 点击图中的“新站点(N)”按钮来创建站点,新建站点以后就会在“我的站点”下出现新建的这个站点,站点的名称可以自行修改,比如我将新的站点命名为“Ubuntu”,如图所示:
    基于linux平台的嵌入式开发每日一练(一)

  • 选中新创建的“Ubuntu”站点,然后对站点的“常规”进行设置,设置如图所示:
    基于linux平台的嵌入式开发每日一练(一)

  • 设置好以后,点击“连接”按钮,第一次连接可能会弹出提示是否保存密码的对话框,点击确定即可。连接成功以后如图所示:
    基于linux平台的嵌入式开发每日一练(一)
    上图中Ubuntu 文件目录下的中文目录都是乱码的,这是因为编码方式没有选对,先断开连接,点击>服务器(S)->断开连接,然后打开站点管理器,选中要设置的站点“Ubuntu”,选择“字符集”,
    设置如图:
    基于linux平台的嵌入式开发每日一练(一)
    设置好字符集以后重新连接到 FTP 服务器上,重新链接到 FTP 服务器以后Ubuntu 下的文件目录中文显示就正常了。
    如果要将 Windows 下的文件或文件夹拷贝到 Ubuntu 中,只需要将Windows 区域选中要拷贝的文件或者文件夹,然后直接拖到右侧的 Ubuntu 中指定的目录即可。将 Ubuntu 中的文件或者文件夹拷贝到 Windows 中也是直接拖放。

2.Ubuntu 下 NFS 和 SSH 服务开启
NFS服务在后续linux平台上驱动开发会用到,现在暂时不进行安装**。

SSH服务安装后可以在windows下使用终端软件登陆到ubuntu,此处使用Putty作为windows下的终端软件。

  • 在ubuntu下开启SSH服务
    (1)安装SSH服务
    sudo apt-get install openssh-server
    (2)打开SSH服务配置文件(/etc/ssh/sshd_config)但此处不做修改保持默认状态
    sudo vi /etc/ssh/sshd_config
  • 在windows下安装Putty软件
    (1)双击Putty软件安装文件进行软件安装。
    (2)Putty软件的使用
  • 使用USB线将开发板串口和电脑连接起来,打开Putty软件,打开配置界面,如图所示:
    基于linux平台的嵌入式开发每日一练(一)
  • 要用到串口功能,所以在左侧选择“Serial”,然后在右侧配置串口,配置完成以后如图所示:
    基于linux平台的嵌入式开发每日一练(一)
  • 配置好以后不要点击“Open”,没反应的!!我们还需要设置“Session”,设置如图所示:
    基于linux平台的嵌入式开发每日一练(一)按照图设置好以后,点击“Open”打开串口,如果开发板里面烧写了 Linux 系统的话, Putty 就会显示 Linux 启动过程的信息,并且作为开发板的终端,如图所示:
    基于linux平台的嵌入式开发每日一练(一)
    3.ubuntu 交叉编译工具
    (1)交叉编译器的安装
    使用Linaro GCC 编译器。编译器有很多,选择哪一个?使用的 I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf。
    (1)下载交叉编译器
    下载地址:https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
    下载的交叉编译器压缩包:
    gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

(2)在ubuntu下进行解压,编译

  • 先将交叉编译工具拷贝到 Ubuntu 的用户根目录下创
    建了一个名为“linux/tool”的文件夹中。
  • 在ubuntu中创建目录:/usr/local/arm,命令如下:
    sudo mkdir /usr/local/arm
    创建完成以后将刚刚拷贝的交叉编译器复制到/usr/local/arm 这个目录中,在终端使用命令“ cd ” 进 入 到 存 放 有 交 叉 编 译 器 的 目 录 “/home/zuozhongkai/linux/tool”中,然后使用如下命令将交叉编译器复制到/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
    等待解压完成,解压完成以后会生成一个名为“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夹,这个文件夹里面就是我们的交叉编译工具链。
    (3)修改环境变量,使用 VI /VIM打开/etc/profile 文件,命令如下:
    sudo vim /etc/profile
    打开/etc/profile 以后,在最后面输入如下所示内容:
    export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
    添加完成以后的/etc/profile 如图所示:
    基于linux平台的嵌入式开发每日一练(一)修改好以后就保存退出,重启 Ubuntu 系统,交叉编译工具链(编译器)就安装成功了。
    (4)安装相关库
    在使用交叉编译器之前还需要安装一下其它的库,命令如下:
    sudo apt-get install lsb-core lib32stdc++6,等待这些库安装完成。
    (5)交叉编译器验证
    查看一下交叉编译工具的版本号,输入如下命令:
    arm-linux-gnueabihf-gcc -v
    如果交叉编译器安装正确的话就会显示版本号。

4. Source Insight 软件安装和使用
该软件一直有使用,此处对软件的安装和使用不做赘述。

5.CH340串口驱动安装
使用串口调试一直有使用,该处对驱动的安装和使用串口进行调试不做赘述。

6.MobaXterm软件的安装与使用

  • MobaXterm安装
    MobaXterm 也是一个类似Putty 的终端软件,双击MobaXterm软件的安装文件进行软件安装。安装成功后打开可以看到如下界面:
    基于linux平台的嵌入式开发每日一练(一)
  • 使用MobaXterm软件
    (1)点击菜单栏中的“Sessions->New session”按钮,打开新建会话窗口,如图所示:
    基于linux平台的嵌入式开发每日一练(一)
    MobaXterm 软件支持很多种协议,比如 SSH、 Telnet、 Rsh、 Xdmcp、RDP、 VNC、 FTP、 SFTP、 Serial 等等。
    如何建立 Serial 连接,也就是串口连接?因为我们使用MobaXterm的主要目的就是作为串口终端使用。

(2)点击上图中的“Serial”按钮,打开串口设置界面,如图所示:
基于linux平台的嵌入式开发每日一练(一)
(3)打开串口设置窗口以后先选择要设置的串口号,因此要先用串口线将开发板连接到电脑上,然后设置波特率为 115200(根据自己实际需要设置),完成以后如下图所示:
基于linux平台的嵌入式开发每日一练(一)
(4)点击 Advanced Serial settings 选项卡,设置串口的其他功能,比如串口引擎、数据位、停止位、奇偶校验和硬件流控等,按照图所示设置即可:
基于linux平台的嵌入式开发每日一练(一)
(5)如果要设置终端相关的功能的话点击“Terminal settings”即可,比如终端字体以及字体大小等。设置完成以后点击下方的“OK”按钮即可。串口设置完成以后就会打开对应的终端窗口,如图所示:
基于linux平台的嵌入式开发每日一练(一)
如果开发板里面烧写了系统的话就会在终端中打印出系统启动的 log 信息,如图所示:
基于linux平台的嵌入式开发每日一练(一)