查看: 1209|回复: 0

米尔工控板试用笔记二——搭建开发环境及程序演示

[复制链接]
  • TA的每日心情
    开心
    2016-10-12 17:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2016-10-24 08:55:46 | 显示全部楼层 |阅读模式
    分享到:
    上一期,主要是米尔开发板的开箱介绍及上手体验。给人的第一印象就是开发板做工精良,配件齐全,很容易上手;然后也分别通过了串口和以太网进行了远程登录。最后,还外接显示器和鼠标进行了图形界面操作。
    在本期中,主要从软件资源角度入手。重点关注操作系统的体验和应用程序的演示。
    一、软件资源介绍
    手册里有详细介绍,这里简单提一下,软件体系,由引导程序、Linux内核、设备驱动、文件系统和应用程序组成。从中可以看到,设备驱动种类非常全面,基本上覆盖了这款微处理器所有的外设,相信米尔科技一定做了大量的技术支持工作。这样一来,就方便工程师进行应用开发了。
    二、Linux开发环境搭建
    开发前的准备工作:安装虚拟机软件和Ubuntu操作系统。
    嵌入式Linux开发需要使用Linux系统下的交叉编译工具。由于需要安装Ubuntu系统进行开发,为了便于开发,我们先安装一个虚拟机软件,附带光盘里有虚拟机软件VirtualBox-4.1.18-78361-Win,安装过程和常规软件一样,一路选择Next就好了,驱动提示之类的选择安装。装好后的虚拟机软件就是下面这个样子。

    新建一个虚拟电脑,按照安装向导进行即可。大部分选择默认配置,少部分需要调整。安装好后再安装Ubuntu系统(附带光盘里面也有)。也很简单,按照提示进行即可。顺便提一下,基本都是中文环境。这里插一句题外话,使用虚拟机需要用到两个重要功能:主机与虚拟机之间的双向拷贝和共享文件夹功能。可以参考此篇博文:https://blog.csdn.net/pan_tian/article/details/22619687
    然后我们可以查看Rico Board Linux开发手册。从中可以看到软件资源非常丰富,包含引导程序、Linux内核、设备驱动、文件系统、应用程序和工具。有了如此强大的软件资源,相信我们可以快速进行程序开发。我通过共享文件夹,把Windows平台下的光盘内容直接挂载到了虚拟机中,可以看到光盘内容:

    接下来开始在Ubuntu系统内安装一些必要的工具了。这里提示一下,虚拟机内的Ubuntu系统安装应用程序方法。正常情况下,可以使用Ubuntu Software Center进行,也可以在终端中使用命令行sudo apt-get install <Software Name>;但是在这个过程中,我遇到了一些问题,软件源有问题,导致无法安装程序,后来我改成了Ubuntu Software Center->Edit->Software Source->mirror.bjtu.edu.cn/ubuntu;这个源后,安装就很顺利。
    三、Linux系统编译
    第一步,进入Bootloader目录,解压U-boot源码,编译BootLoader,生成所需要的MLO、uboot.bin和uboot-img,这里我选择的是Q-SPI Flash启动模式,所以会生成u-boot.bin文件;

    第二步,编译Linux内核,按照说明进行就好了,编译内核真的需要很长时间。编译完内核后,就可以找到我们移植系统需要的内核镜像zImage了。在dts目录下还有个设备树的二进制文件。

    四、Linux系统烧写
    就是将上一步编译好的uboot和Linux内核文件下载到开发板上;由于原来的开发板已经完成了这一步,这里我就省略了。顺便提一下,开发板默认启动方式为QSPI Flash启动,就是QSPI Flash上只包含BootLoader,内核和设备树在eMMC的第一个分区上,EXT4文件系统将从eMMC的第二个分区挂载。
    五、应用程序开发
    这一部分是重点。我决定花较多篇幅进行介绍。进行到了这一步,Linux系统已经正常移植到了米尔开发板上,现在可以在上面开发应用程序了。
    嵌入式开发,通常先在PC(Linux系统环境下)上交叉编译后,再通过某种方式(如以太网或串口),这里我使用以太网方式,将文件复制或传输到目标开发板上执行。为了方便调试,进行应用程序开发前,应该先配置好一个文件共享环境。这里我使用的TFTP协议。这里我要说个坑,我用的是虚拟机,然后要使用TFTP的话,需要虚拟机与开发板在同一网段,然后我试着将主机与虚拟机桥接,用了网上那种流行方式,但还是一直提示我“界面名称未指定”,搞了半天都没弄好,我决定暂时不弄这方法了,后面用了xftp才把文件传送到开发板上,虽然要经过虚拟机里的Ubuntu到win10,再到开发板,过程有点曲折,总算可以使用。这里记得把环境变量添加到PATH路径中,省的每次都手动配置。这里我要提箱一下大家,如果直接按照手册里的方法,之前没有把路径写入配置文件时,会提示找不到命令,然后我又去第2章里找到那个工具:arm-linux-gnueabihf-gcc,到时候是要用到这个工具进行编译make的,在这里我也花了很多时间,也怪我Linux知识不够扎实啊,看来以后还要多学习。这里我把自己的方法贴出来,在Ubuntu主机中,输入sudo vim /etc/profile,补充以下内容:     
    export PATH=$PATH:/home/soda/rico_board/rico/04-Linux_Source/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin
    export CROSS_COMPILE=arm-linux-gnueabihf-
    保存退出后,输入source /etc/profile,注销登录后再登录就可以了。怎么查看设置文件是否生效,输入arm后再按下Tab键有以下内容就说明OK啦。

    SSH登录在第一篇上手体验就提到过了,这种方式非常实用。
    之前的准备工作都做好后,就开始动手写程序了。
    这里我试图安装一些软件,发现apt-get指令无法识别,应该是没有移植相应的程序和必备的工具链,在裁剪过程中拿掉了,所以也意味着很多实用的工具暂时用不了,就这点来说,树莓派更好玩一些。
    现在就可以开心的去体验那些example了。进入example的目录,使用make指令就好了。
    把编译好的文件传到开发板上,然后执行就可以了。这里需要注意为程序添加运行权限,只需要输入chmod  +x  <program>。以下是运行的log,现象就是三个LED灯依次亮灭。然后一直在检测是否有按键按下。

    限于篇幅,其他应用程序就不一一进行展示了。实际上我基本上把案例都跑了一遍。
    小结一下:在开发板上跑的系统是经过裁剪后的Linux系统,能够支持基本的命令行操作,但是与Debian和Ubuntu这类桌面系统还是有区别,也无法直接在其上安装应用程序。就这点而言,与树莓派还是有很大区别的,可玩性也下降了不少,但是因为此款是工控板,也许是基于稳定、性能和实用方面的考虑吧。
    原本以为这次测评能够进入实质编程环节,没有想到还是经历了很多曲折。主要是第一次在虚拟机里使用Linux系统,所以出现了不少新问题需要解决,比如说文件在PC主机,虚拟机和开发板三者之间的共享。好在基本上解决了,下一期,我们就开始正式编程吧。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 07:58 , Processed in 0.122528 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.