×
单片机 > 单片机程序设计 > 详情

Linux及Arm-Linux程序开发笔记(零基础入门篇)

发布时间:2020-06-08 发布时间:
|

前言:本文记录了自己从一个完全不懂Linux的人如何一步步学会Linux程序开发的过程。当然也希望本文能够达到它的目的,让那些和我一样没有任何基础的人也能快速入门Linux程序开发。


一、Arm-Linux程序开发平台简要介绍

    Arm-Linux程序的开发并不像我们以前接触的Windows程序开发那样,关于平台的搭建就繁琐很多,所以在正式进入程序开发之前先对这种开发模式进行简要介绍,让一个即使没有任何Linux开发经验的程序员也能够看懂后面的内容。

1.1程序开发所需系统及开发语言

    开发arm-linux程序至少需要三种系统:

    Windows系统。 
    主要用来文件传送和一些简单的文本文件编辑。这个系统其实并非必需,只是因为目前PC机上最流行的系统仍然是Windows系统,我们的很多关于PC的文件和数据的操作习惯都是在Windows系统上养成的,已经对其形成了严重的依赖,所以Windows系统扮演着的“辅助开发系统”的角色。

    PC-Linux系统。 
    在此系统上安装arm-Linux交叉编译器后,就可以对代码文本文件进行编译,生成可在arm-Linux系统中运行可执行程序。此系统被称为“Linux宿主机”,我们对Linux程序的开发工作(包括代码编写、调试和编译生成可执行文件)基本上就是在此系统上进行的。

    Arm-Linux系统。 
    Arm-Linux程序运行的平台。此系统的硬件载体是一块小型的嵌入式arm板,我们在Linux宿主机上开发好程序并编译生成arm-linux可执行程序后,将可执行程序文件传送到嵌入式arm板中,然后就可以在arm板上直接运行此程序了。

三种系统的职能和联系如下图:

“三系统”职能和关联图

  关于每个系统的职能及操作还有文件如何传送交流都在后面详细介绍。

  关于开发语言,因为目前购买的Arm-Linux嵌入式板提供的编译库都是C/C++的,所以一般选择C/C++进行程序设计。

1.2系统平台搭建方式

  关于“三系统”的搭建方式,有两种方法:三台分立的单系统机器组合或者一台双系统PC机和一台单系统Arm板机器。但是不管采用哪种组合方式,各种系统的职能都是一样的,而且都是通过FTP、Telnet或者SSH等网络协议进行文件传输交流。

  “三机器”组合模式。将三个系统分别安装在三台机器上并将三台机器组建局域网。

  “两机器”组合模式。在PC机上利用虚拟工作站可以同时运行两个系统,虚拟机上的Linux系统基本可以完成所有的实体PC-Linux机器的所有任务,当然也能够组建局域网。

“三机器”组合模式图

“两机器”组合模式图

  如果开发人员对机器性能要求比较高,那么建议采用“三机器”组合模式。因为“两机器”组合模式要求一台机器运行双系统,每个系统都需要分配一定的硬件资源,可能会对每个系统运行的流畅程序都造成影响。

  如果开发人员只进行一些简单的程序开发,则建议采用“两机器”组合模式。这样可以节省硬件设备的投资,而且开发环境的搭建、开发的流程等等都会简单一些。而且下面的内容都是基于这种“两机器”组合的开发模式。


二、Linux开发平台搭建

2.1安装虚拟工作站

  目前比较流行的虚拟工作站比较多,推荐使用VM-ware WorkStation。建立虚拟工作站的目的就是为了使一台机器同时运行多个不同类型的系统,方便开发人员进行跨平台开发应用程序。

  (关于VMware,可以到网上搜索到详细介绍和使用方法,在此不再赘述)

2.2安装Linux虚拟机

  安装虚拟机的过程和安装实体机一样,唯一的区别是,虚拟机安装是从VMware中打开并安装的。先准备Linux安装文件,一般可以到网上下载到Linux的iso安装文件,然后从VMware中安装此系统。

  (关于虚拟机安装,在网上可以搜索到详细的步骤,在此不再赘述)

  几点建议:

  1.安装Fedora-10并选择完全安装,即把所以的包和选项都勾上。这样在安装完毕后,系统就自带了很多开发工具和相关的库,避免自己去重新进行烦琐的基本开发平台搭建。

  2.在VMware中为虚拟系统配置硬件资源。建议分配硬盘空间16G,内存1G以上。因为今后主要的Linux程序开发工作是在虚拟机上进行了,所以为了保证虚拟机流畅运行,需要分配比较丰富的硬件资源。

  在第一次从ISO文件中安装完毕虚拟机后,在安装目录下面会生成一系列的文件,将这些文件进行备份后,在其它机器上安装虚拟机的时候就花几个小时去从ISO中安装了,将这个目录下的文件复制到相应的目录下面(在第一次从ISO中安装的时候设定的目录相同),然后只需要从VMware中打开此目录下的文件就行了。

执行VMware Workstation中的【View】--【Home】,调出Home视图,然后打开虚拟工作站系统文件。

  打开后,就可以看到一个虚拟机的硬件资源配置了。这些参数有一部分是在只能在初次使用iso安装的时候配置的,比如硬盘大小。另外一些参数比如内存大小、共享目录等等可以在后期随时人工更改的。

(详细设置内容,到网上可以找到很多相关内容,在此不再赘述)

  两种方法的区别就是WinXp的安装盘和Ghost盘的区别吧。

  安装完毕Fedora后,就可以从虚拟工作站中启动Fedora Linux系统了。系统桌面如下:

2.3虚拟机的一些基本配置

  在第一次安装完毕虚拟机后开启虚拟机,默认的分辨率是800*600,同时没有全能共享目录。为了获得比较好的操作界面,同时方便文件共享和转移,需要进行一些基本的配置。

2.3.1建立共享目录

  在同一个硬件PC机上运行的两个系统。Windows实体系统用来做一般的用途,比如联网,处理文档等等;Fedora Linux虚拟系统则用来开发Linux程序并进行编译生成可执行文件。

  先需要安装vmware tools

  在VMware上面,选择菜单【VM】--【Install VM tools】,然后在Linux虚拟机上会生成目录/media,同时里面产生一个rpm文件。

  然后打开控制终端并su登录超级用户:

cd /media

rpm –ivh VMwareTools-7.8.5-156735.i386.rpm

cd /usr/bin

然后在/usr/bin下面看到wmware-config-tools.pl

再在Teminal中输入wmware-config-tools.pl

    然后一路回车下去。然后今后就可以建立共享目录。

  (详细过程也可以在网上搜索相关内容)

    共享目录的好处是可以将这些文件在Windows系统中提取出来,然后可以通过我们熟悉的windows系统进行网络传输和一些其它命令操作。这个设置在后面程序开发的时候会提到其使用方法。

    在VMware中建立共享目录,执行菜单命令【VM】--【Settings…】

  然后在Linux虚拟机文件系统中可以找到对应的共享目录:/mnt/hgfs/xplinux

  建立共享目录可以方便虚拟机和实体机进行文件交流。例如,我们可以将在Linux机器上编译生成好执行文件放置到共享目录中,然后可以通过Windows机器提取出来并通过网络传送到arm-linux嵌入式板上。

2.3.2调整桌面分辨率

    在VMware工作站中调整虚拟机桌面分辨率。一般默认是800*600,而且现在的显示器,一般是1024*768甚至更高,以我目前使用的电脑显示器为例,分辨率是1440*900。需要将虚拟机桌面分辨率进行适当调整,然后全屏,那么就可以获得比较友好的操作界面。

    在VMware中启动虚拟机,虚拟机启动后的登录界面如下:

    然后登录系统,设置分辨率,系统菜单:

    【System】--【Preferences】--【Hardware】--【Screen Resolution】

    设置好分辨率后,就可以在获得全屏状态的Linux操作界面了。

2.3.2其它设置

    比如设置桌面背景,系统字体,还有资源管理器的模式等等,这些可以自己去实地操作并进行熟悉。

2.4安装软件

    虽然Fedora已经自带了一些必要的软件,如Open Office办公软件,gedit记事本软件,Firefox网页浏览器等等。但是既然是操作系统,我们也可以安装一些我们需要的软件。比如中文输入法(如:小企鹅输入法),聊天工具(如QQ)等等。

    注意:在Terminal终端中安装程序的时候需要启用su超级用户权限。


三、Fedora-linux系统

    Fedora-linux虚拟机安装完毕并进行基本设置后,就可以开始了程序开发环节了。在正式开始程序开发时,还需要对Linux的一些基本编程工具进行简要介绍,当然如果已经有此基础的,可以直接略过这一章。

3.1控制终端的基本操作命令

    执行系统菜单命令【Applications】--【System Tools】--【Terminal】,打开Terminal终端:

    熟悉Windows系统的DOS操作界面的人肯定也会对此操作终端也不会陌生。通过在Terminal中输入命令,用户可以很方便地完成Linux下的一系列操作,在正式进入自主程序设计之前,用户有必要对下面一些最基本命令进行熟悉(其它的命令在项目需要的时候再到网上查找相关资料)。

文件操作命令

文件/文件夹的创建、修改、复制、删除、移动等等。(如rm/mv/vi/


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的