当前位置:文档之家› 嵌入式开发环境搭建——基于ubuntu10.04

嵌入式开发环境搭建——基于ubuntu10.04

嵌入式开发环境搭建——基于ubuntu10.04
嵌入式开发环境搭建——基于ubuntu10.04

环境搭建教程

目录

环境搭建教程 (1)

1、虚拟机ubuntu安装 (2)

2、建立Windows和虚拟机Ubuntu共享文件夹 (2)

3、ubuntu配置tftp服务器 (4)

第1步:安装tftp (4)

第2步:配置/etc/xinetd.conf (4)

第3步:配置/etc/default/tftpd-hpa (4)

第4步:配置/etc/default/xinetd.d/tftp (5)

第5步:修改权限 (5)

第6步:重启服务 (5)

总结: (6)

4、ubuntu配置nfs服务器 (6)

一安装NFS (6)

二配置NFS (7)

三配置hosts.deny (7)

四配置hosts.allow (7)

五配置/etc/exports (8)

六启用 (8)

挂载测试 (8)

5、使用SecureCRT远程登录Ubuntu (9)

6、ubuntu中配置静态IP (9)

7、ubuntu中安装arm-linux-gcc-4.1.2 (10)

1、虚拟机ubuntu安装

---by aston--- 嵌入式开发学习中目前最常用的方式是在Windows下安装VMWare虚拟机,然后在虚拟机中安装Ubuntu作为嵌入式linux开发宿主机使用。关于WMWare和Ubuntu的安装网上资料很多,这里就不赘述了,谨强调以下:

●VMWare一般选用7.1及以上版本。因为已经内置了VMWareTools,不需要再另外安装

(VMWareTools最有用的功能莫过于在Windows和Ubuntu之间建立共享文件夹)配置。

●虚拟机网络连接选择桥接方式(Bridged network),不要选择NAT。

2、建立Windows和虚拟机Ubuntu共享文件夹

---by aston--- 在Windows和虚拟机Ubuntu之间共享文件有好几种方法,包括tftp,samba,VMWareTools等。每种方法在网上都能找到不少对应的介绍文档,大家可先了解一下再根据自己的喜好选择一种使用。

在这里介绍通过VMWareTools建立共享文件夹的方法,这也是我最常使用的方法。首先选择VMWare软件的菜单栏VM->Settings->Options->SharedFolders,然后在右侧选择Always Enable,点击下方Add按钮,浏览添加一个事先建立好的Windows下的文件夹作为共享文件夹。如下图是添加好共享文件夹后的样子,我定义的共享文件夹为F:/windows_share。

启动Ubuntu,进入/mnt目录,可见该目录下有一个名为hgfs的文件夹,其内有一个和我们在Windows中建立的共享文件夹同名的文件夹,此即为我们在Ubuntu中访问该共享文件夹的目录。

为了访问方便,我一般会为该共享文件夹建立一个符号链接。首先切换到root用户(我们在做开发时一般都是在root下,以避免因为权限问题造成的一些不必要的麻烦。),然后进入root用户的根目录/root,并执行ln –s /mnt/hgfs/windows_share /root/windows_share,即可在/root下成功创建共享文件夹的符号链接,便于以后实验时与Windows下交互。

使用su或su root命令切换到root时需要输入root用户的密码,很多人觉得奇怪我在安装ubuntu时并没有要求输入root用户的密码啊。其实root账户密码是我们安装好ubuntu 以后再设置的,我们在终端中自己的用户下输入sudo su root,然后输入自己账户的密码,系统即会允许我们为root账户设置密码,重复输入两次即可完成设置。建议root用户和本用户使用同样的密码,并且不要太长,否则经常输入会很麻烦。密码也不宜太生僻否则长时间不用会忘记。

3、ubuntu配置tftp服务器

---来源于网络--- 第1步:安装tftp

安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和

tftpd-hpa。然后还需要安装xinetd,在终端下输入sudo apt-get install xinetd,安装好xinetd。

第2步:配置/etc/xinetd.conf

配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:

# Simple configuration file for xinetd

#

# Some defaults, and include /etc/xinetd.d/

defaults

{

# Please note that you need a log_type line to be able to use log_on_success

# and log_on_failure. The default is the following :

# log_type = SYSLOG daemon info

}

includedir /etc/xinetd.d

第3步:配置/etc/default/tftpd-hpa

配置tftp服务器

命令:

sudo vim /etc/default/tftpd-hpa

将内容修改成

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"

#这是你tftp服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为777,命令sudo chmod 777 /tftpboot

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"

第4步:配置/etc/xinetd.d/tftp

然后进入xinetd.d文件夹(cd xinetd.d),查看是否有一个tftp文件,如果没有就新建一个,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:service tftp

{

socket_type = dgram

wait = yes

disable = no

user = root

protocol = udp

server = /usr/sbin/in.tftpd

server_args = -s /tftpboot

#log_on_success += PID HOST DURATION

#log_on_failure += HOST

per_source = 11

cps =100 2

flags =IPv4

}

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的

第5步:修改权限

修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,以我的配置文件为例,创建一个文件夹(sudo mkdir /tftpboot),然后把它可以设置成访问权限最宽松的(sudo chmod 777 /tftpboot),也可以设置成合适的权限。

第6步:重启服务

重新启动服务。sudo service tftpd-hpa restart,这也是我经常疏忽的一步,当配置好tftp 的配置文件后,需要重新启动一下xinetd,在终端中输入sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入sudo /etc/init.d/xinetd restart,重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务。

执行次序:

sudo service tftpd-hpa restart

sudo /etc/init.d/xinetd reload

sudo /etc/init.d/xinetd restart

总结:

通过以上四步就可以建立好tftp服务器了,可以在本地先进行一下测试。还是以我的配置文件为例,首先在/tftpboot中新建一个文件file,然后在其中随便输入内容;然后进入一个不是/tftpboot的目录下(原因是避免混淆,因为在获取文件是,默认是将想要获取的文件存放在当前目录下的);再在终端中输入sudo tftp localhost,进入tftp命令符下(可以在其中输入help查看命令和命令的作用),输入get file,如果没有任何提示,就说明传输成功了,然后输入q 退出tftp命令符,在当前目录下就可以看到一个file文件,内容是与开始新建的那个file的内容是一致的。同样也可以在tftp命令符中输入put xx,把xx文件上传到服务器文件夹中。如果一切ok,那就么一个可用的tftp服务器就顺利搭建成功了。

对于上面的测试是针对本地测试的,如果想要对其他电脑或者开发板进行tftp传输,则在终端输入sudo tftp xxx(即目标电脑或目标开发板的ip地址),而且还要关闭ubuntu自带的防火墙(书上说的),我是直接把防火墙给卸载了(sudo apt-get remove iptables,或sudo ufw disable可以关掉防火墙),因为我觉得对于Linux来说,防火墙可能没什么需要把,至少目前为止我还没有受到过攻击。。。当然,想要与其他局域网内的电脑或开发板互联进行传输,还要将这些机器的ip改到同一个段内。好了,通过以上的步骤,就可以通过tftp协议,在电脑和开发板之间进行文件传输了,目前的目的就是下载Linux内核和文件系统到开发板。如果有朋友发现了我的不足,都可以给我提出来,我们也可以进行讨论。不过还要强调一点,我的这些配置都是针对于ubuntu的,对于其他的系统可能会有所出入的。

4、ubuntu配置nfs服务器

---来自网络--- 环境ubuntu 10.4 vm 7.1

终端

ifconfig 得到ubuntu资料

INET ADDR 192.168.1.116

BCAST 192.168.1.255

MASK 255.255.255.0

一安装NFS

$ sudo apt-get install nfs-kernel-server

$ sudo apt-get install nfs-common

二配置NFS

1 $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N

2 $ sudo vi /etc/default/portmap末行清除"-i 127.0.0.1"

三配置hosts.deny

$ sudo vi /etc/hosts.deny

文本末添加

### NFS DAEMONS

portmap: ALL

lockd: ALL

mountd: ALL

rquotad: ALL

statd: ALL

四配置hosts.allow

$ sudo vi /etc/hosts.allow

文本末加入

### NFS DAEMONS

portmap: 192.168.1.

lockd: 192.168.1.

rquotad: 192.168.1.

mountd: 192.168.1.

statd: 192.168.1.

$ sudo /etc/init.d/portmap restart重启portmap daemon.

显示如下

Since the script you are attempting to invoke has been converted to an

Upstart job, you may also use the restart(8) utility, e.g. restart portmap

portmap start/running, process XXXX

五配置/etc/exports

$ sudo vi /etc/exports

文本末添加

/root/rootfs *(rw,sync,no_root_squash)

然后在终端执行$chmod 777 -R /root/rootfs

$ sudo showmount -e

显示clnt-create : RPC : Program not registered

$ sudo exportfs -r更新

$ sudo showmount 192.168.1.116 -e

显示

Export list for 192.168.1.116

/root/rootfs *

六启用

$ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务

显示如下

* Stopping NFS kernel daemon

[ OK ]

* Unexporting directories for NFS kernel daemon... [ OK ]

* Exporting directories for NFS kernel daemon...

exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/work".

Assuming default behaviour ('no_subtree_check').

NOTE: this default has changed since nfs-utils version 1.0.x

* Starting NFS kernel daemon

[ OK ]

挂载测试

$ mount -t nfs localhost:/root/rootfs /mnt

$ mount -t nfs -o nolock localhost:/root/rootfs /mnt

执行后,进入/mnt目录中,如果可以看到/root/rootfs中的内容,则说明nfs搭建成功!

5、使用SecureCRT远程登录Ubuntu

---by aston--- 1. 首先要明白什么是ssh?

可以把ssh看做是telnet的加强版,telnet的密码和信息都是不加密的,而ssh则加密。

2. 开启ubuntu上的ssh功能

先安装ssh,安装后就自动开启了.

$ sudo apt-get install openssh-server openssh-client

3. 安装SecureCRT

安装过程省略

4. 查看ubuntu的ip

$ ifconfig(注意是ifconfig,不是windows上的ipconfig)。

5. 连接

SecureCRT => Quick Connect, 在打开的对话框中:协议一栏选择SSH2。主机名输入ubuntu的IP地址。端口号默认为22不用更改。用户名输入自己要登录的ubuntu用户,这里我们选择使用root账户登录,因此直接输入root。最后选择“在一个标签中打开”,勾选这个选项可以让我们在同一个SecureCRT窗口内打开多个链接,这样用起来很方便。

最后点击连接。在弹出的对话框中输入正确的密码就可以看到登录信息了。推荐选上保存密码,这样就不用每次都输入密码这么麻烦了。

如果还连接不上,可能是Ubuntu上的ssh服务没有开启。可以使用$ /etc/init.d/ssh

restart以启动ssh-server。使用$ netstat –tlp来确认ssh-server已经正常工作。

tcp6 0 0 *:ssh *:* LISTEN -

看到上面这一行输出说明ssh-server已经在运行了。

6、ubuntu中配置静态IP

---by aston--- 首先要明白为什么要在Ubuntu中配置静态IP。在整个uboot移植、linux移植和驱动开发过程中,经常需要开发板与宿主机(ubuntu)通往网络连接。而IP地址正是开发板找到宿主机的索引地址,因此将宿主机更改成一个固定好记的静态IP,可以在实验中省不少事。

在ubuntu中设置静态IP比较简单,设置前首先确定虚拟机网络设置为桥接方式(NAT

等模式不要)。然后在ubuntu的终端中输入$ sudo vi /etc/network/interfaces,在打开的网络配置文件中输入以下内容:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 192.168.1.100

netmask 255.255.255.0

gateway 192.168.1.1

这里我将静态地址设置为192.168.1.100。要注意的是在桥接方式下,虚拟机相当于是局域网中一台独立的主机,因此这个静态地址不能和局域网中别的主机冲突。

如果对网络设置做了更改后无法连接网络,可以尝试使用

$ sudo /etc/init.d/networking restart命令来重启网络。

7、ubuntu中安装arm-linux-gcc-4.4.3

编译uboot和linux kernel都需要gnu交叉工具链支持,这里我们选择的是

arm-linux-gcc-4.4.3版本。使用eabi版本有诸多优势,具体大家可以到网上搜索,此文档以在ubuntu中安装arm-linux-gcc-4.4.3为主要内容。

首先得到arm-linux-gcc-4.4.3工具的压缩包,解压后重命名为4.4.3。然后按照以下步骤:

1、首先切换到root用户。$ su root

2、在/usr/local/文件夹下建立名为arm的文件夹。

# cd /usr/local/ $ mkdir arm

3、通过共享文件夹或者samba的方式拷贝arm-linux-gcc-4.4.3.tar.gz到本目录下

# cp /root/winshare/s3c2440/arm-linux-gcc-4.4.3.tar.gz /usr/local/arm 4、解压到当前目录

# tar -xvf arm-linux-gcc-4.4.3.tar.gz

5、重命名

# mv opt/FriendlyARM/toolschain/4.4.3/ 4.4.3

# rm –rf opt

6、导出路径到环境变量。

# Vi /root/.bashrc

然后在打开的文件中最后空白处添加以下内容:

# aston added for export arm-linux-gcc-4.4.3

export PATH=$PATH:/usr/local/arm/4.4.3/bin

#end of aston added

保存后退出。然后在终端中执行# source .bashrc以使刚才添加的内容生效。

5、测试。在终端内输入#arm-linux-gcc –v 如果可以看到arm-linux-gcc的版本信息则说明成功。若提示找不到或者不识别等错误信息,请详细检查以上各步骤。

嵌入式Linux开发环境搭建

第一章Ubuntu 8.10的安装和网络配置 1.安装虚拟机软件Vmware 6.0.2 虚拟机安装版本Vmware 6.0.2的版本 在winxp操作系统下用鼠标双击VMware-workstation-6.0.2-59824图标,开始安装虚拟机Vmware,如下图所示: 双击VMware-workstation-6.0.2-59824图标,出现vmware的安装界面,所有的选项都采用默认值,用鼠标点【下一步】,然后出现安装进度条,系统开始安装vmware,等待安装完成后,出现如下安装完成界面: 用鼠标点【Finish】,虚拟机安装完成。系统提示重新启动计算机,选择【是】重新启动计算机,电脑重新启动后,虚拟机安装完成。 2.新建虚拟机 打开Vmware虚拟机软件,选【File】->【New】->【Virtual Machine】,弹出新建虚拟机向导对话框,注意以下几个重要的选项,其他都采用默认选项即可。 选择操作系统和版本,如下图所示:

选择虚拟机名称和存放的路径,如下图所示: 设置虚拟机硬盘大小为20G ,如下图所示:

点击【完成】按钮,这样我们就新建了一个虚拟机,下面我们设置一下虚拟机的内存,步骤如下: 点击虚拟机Vmware的【VM】->【settings】时菜单,弹出虚拟机设置对话框,设置虚拟机使用的内存为512M或1024M,如下图所示:

点击【OK】按钮,这样我们就新建了一个虚拟机,该虚拟机的硬盘为20G, 内存为512M .接着我们就可以在该虚拟机上安装ubuntu操作系统了。 注: 键盘和鼠标控制权在虚拟机和Windows系统之间的切换是通过组合键【Ctrl】+【Alt】来实现的。 3 安装Linux操作系统ubuntu Ubuntu安装版本ubuntu 8.10 点击vmware软件工具栏上的【绿色箭头】启动虚拟机,如下图所示:

实验三 搭建嵌入式系统开发环境

实验三搭建嵌入式系统开发环境 一、实验目的: 1.掌握嵌入式开发环境的配置; 2.掌握开发工具链的安装与配置; 3.掌握嵌入式系统内核和根文件系统的烧写的过程。 二、实验内容: 1)安装配置嵌入式开发环境; 2)安装与配置工具链; 3)内核和根文件系统的烧写 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、实验步骤: 1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中 2.进入目录,输入make menuconfig,对内核进行裁剪配置 3.编译内核之前输入make clean清理编译环境 4.输入make dep 编译相关依赖文件 5.输入make zImage 输出最终编译后的镜像文件 6.将镜像文件共享至windows环境下 7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中 五、实验总结: 通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。在实验

过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。 实验四嵌入式驱动程序设计 一、实验目的: 1.学习在LINUX 下进行驱动设计的原理 2.掌握使用模块方式进行驱动开发调试的过程 二、实验内容: 在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、预备知识: 1.有 C 语言基础。 2.掌握在Linux 下常用编辑器的使用。 3.掌握Makefile 的编写和使用。 4.掌握Linux 下的程序编译与交叉编译过程。 5.有驱动开发的基本知识。 五、实验步骤: 1.进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码 2.使用makefile编译驱动模块与测试程序,编译器采用armv4l-unknown-linux-gcc 3.将编译后的驱动模块demo.o和测试程序test_demo挂载到实验箱上 4.插入驱动模块demo.o 执行命令insmod demo.o 5.查看驱动是否插入成功,执行命令lsmod demo.o 6.运行测试程序,查看执行结果

嵌入式开发环境搭建步骤

嵌入式开发,通常都是在Linux环境下编译Uboot、Linux和android代码。编译uboot/Linux可以选择任何的Linux发行版,如redhat,suse,ubuntu,fedora,debian等,只要你配置好ARM交叉工具编译工具就可以了。 编译android,搭建环境最容易的就是ubuntu。google的官方网站上,也有搭建编译android的简单介绍,可以搜索下,网络上有相当多这方面的说明。 考虑到我们学习嵌入式的平台是Fast Models,以及自动的Realview EB模型硬件平台。而ARM官方推荐是在Redhat Enterprise(4,5,6)下安装Fast Models。所以,我们采用Redhat Enterprise 6作为开发环境。我们可以直接在电脑上安排RHEL6,也可以先安装vmware,然后在vmware中创建一个虚拟机,在虚拟机上安装RHEL6。在这里,小编是采用后者方式。 搭建Redhat Enterprise 6开发环境,建议做以下配置: 1)设置静态IP。在之前使用vmware的经历,发现如何网站采用dhcp方式,那么rhel6的IP地址有可能会发现改变。而我们需要网络IP最好是固定的,所以需要设置静态IP。RHEL6的静态IP的设置方法,可以搜索到。 2)开启ssh,samba服务 ARM嵌入式开发,基本上都是在命令(shell)方式下进行的,不需要图形界面。所以,在windows上运行vmware,vmware上虚拟机再运行rdel6的情况下,为了不增加windows系统的负荷,可以把vmware放在后台运行,使用ssh服务登陆到rdel6就可 以进行嵌入式开发了。 小编在开发嵌入式时,通常都是使用sourceinsight阅读、修改代码,然后在shell运 行命令进行编译。所以,开通samba服务,然后使用windows已安装的sourceinsight 工具,阅读放在rdel6上的Linux/uboot代码。 在Redhat发行版下,有关服务器的开启或关闭,可以在root用户下,使用setup命 令进入配置选项的“System Services”菜单下进行设置。 samba服务在菜单选项为:“smb”;ssh服务在菜单选项为:“sshd” 需要注意的是:windows下,要使用ssh服务/samba服务登陆vmware虚拟机上的rhel6,必须把rhel6上的防火墙关掉。setup命令--->Firewall Configuration--->去掉Enable。

嵌入式开发环境搭建

第一章开发环境搭建 要想进行嵌入式开发,首先,必须搭建一套完整的嵌入式开发环境。本章讲解在windows xp + Vmware虚拟机(安装Ubuntu10.04)环境下嵌入式开发环境的搭建。 1.1 交叉编译工具链的安装 嵌入式开发必须使用交叉编译工具链。你可以使用里仁提供的交叉编译工具(arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2),也可以使用crosstool-0.43或crosstool-ng自己编译交叉编译工具链。如何用工具自己编译交叉编译工具链,请参考其他资料。本节只讲解如何使用里仁提供的交叉编译工具链。 交叉编译工具链的安装步骤主要包括拷贝、解压和设置环境变量三部分。 1)拷贝 在主目录中建立工作目录liren,将交叉编译工具链拷贝到该目录下。 在/opt目录下建立virt.arm目录,将交叉编译工具解压到该目录下。操作时注意权限问题,需要加sudo执行命令。 其中,-C参数是制定解压后的存放目录。若不制定默认为当前目录。 查看/opt/virt.arm目录下的交叉编译工具。 arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2是两个版本的交叉编译器,以备以后使用。其中,arm-linux-gcc-3.4.5将在编译U-boot、文件系统及应用程序时使用;arm-linux-gcc-4.3.2将在编译内核时使用。 2)设置环境变量 把交叉编译工具解压到/opt/virt.arm目录后,编译程序时需要制定交叉编译工具的全路径。例如,在~/liren/test目录下编译“helloworld”。

不能够像gcc那样,直接使用arm-linux-gcc来编译,这是因为还没有设置环境变量。 在~/liren/sh/目录下创建两个脚本文件arm-linux-gcc-3.4.5.sh和arm-linux-gcc-4.3.2.sh。 分别为以下内容: arm-linux-gcc-3.4.5.sh arm-linux-gcc-4.3.2.sh 这两个脚本文件是用来设备环境变量的。 例如,执行source arm-linux-gcc-3.4.5.sh就会把交叉编译器arm-linux-gcc-3.4.5的路径加到PATH环境中。这样,就可以直接使用使用arm-linux-gcc编译程序了。 但是,用这种方法只能临时改变环境变量,退出终端后就失效,因此,在下次使用时需要重新设置。要想让设置长期生效,可以修改/etc/profile文件,在最后一行加上“export PATH=$PATH:/opt/virt.arm/arm-linux-gcc-x.x.x/bin”保存退出即可。不用重启系统,在终端运行“source /etc/profile”设置立即生效。 2.2 网络服务器的安装 在进行嵌入式开发时常常需要目标板和宿主机进行通信。因此,就会用到宿主机的网络服务。常用的网路服务有TFTP和NFS。下面介绍在Ubuntu10.04环境下安装TFTP和NFS 的方法。 2.2.1 安装配置TFTP服务 安装TFTP服务的步骤为: 安装tftp-hpa(客户端)和tftpd-hpa(服务器); 修改配置文件; 根据配置文件的路径,建立tftp目录,并修改目录权限; 重启tftp服务; 本地传输测试。

实验一 ARM嵌入式系统开发环境搭建

实验一ARM嵌入式系统开发环境搭建 一、虚拟机安装配置 ARM嵌入式系统开发需要linux环境,为了在windows下使用linux,需要安装虚拟机。虚拟机软件采用Virtualbox,linux操作系统的版本使用lubuntu。lubuntu系统已制成镜像文件,只需导入到virtulbox即可。 1. 安装VirtualBox虚拟机软件。采用默认安装。 2. 运行Virtualbox虚拟机软件,导入lubuntu虚拟机。 在“管理”菜单中,选择“导入虚拟电脑”项,在后续对话框中选择镜像文件,其余参数按照默认。 3. 启动lubuntu虚拟电脑进入linux界面。 二、建立交叉编译环境 1. 查看arm gcc 编译工具 # cd /opt/host/armv4l # ls bin 列出的以“armv4l-unkown –linux-”开头的系列文件就是gcc编译工具软件。 #armv4l-unknown-linux-gcc –v 应该显示以下信息:

如果没有出现该信息,则检查~/.bashrc文件,在其中加入“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/”。 2. 建立桥接网络 当使用tftp下载程序时,为了使开发板能够访问虚拟机中的数据,需要对网络加以设置。开发板的IP为192.168.0.115;虚拟机的IP 设为:192.168.0.100 (1) 在lubuntu虚拟机的网卡配置中,选择“桥接网卡”, (2) 在windows操作系统网络配置界面中,将本地网卡和虚拟机的网卡桥接起来。桥接参数如下: IP设置为:192.168.0.2 掩码:255.255.255.0 网关:192.168.0.2 (3)lubuntu虚拟机的IP设置: 虚拟机IP:192.168.0.100 掩码:255.255.255.0 网关:192.168.0.2 3. 配置minicom参数 minicom程序用于在linux环境下通过串口和开发板通信。串口在烧写boot代码、操作系统内核及文件系统时使用。

嵌入式交叉开发环境的建立

实验四嵌入式交叉开发环境的建立 与通用计算机上的软件开发不同,嵌入式的编译过程被称为交叉编译,嵌入式系统的软件开发环境被称为嵌入式交叉开发环境。交叉编译就是把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 宿主机(Host)是用于开发嵌入式系统的计算机。一般为PC机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。目标机(Target)即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的。物理连

接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有串口、以太网接口和OCD(On Chip Debug)三种方式。逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接。在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。 宿主机上用于嵌入式软件开发的工具软件一般包括:文本编辑器、交叉编译器、交叉调试器、仿真器、下载器等。 当我们建立完成了嵌入式交叉开发环境后,我们就可以按照如图1所示,在宿主机上编写程序的源代码,使用交叉编译器编译成各个目标模块,使用交叉链接器链接生成可供下载调试或固化的目标程序,通过目标机和宿主机之间的物理连接(串口或网络接口)

将目标程序下载到目标机。 图1嵌入式软件编译过程 在这里中,我们是在宿主机的虚拟机(VMware Workstaion 6.5)上安装Red Hat Enterprise Linux 5。在Linux环境下,我们一般采用arm-linux-gcc作为交叉编译器,glibc是应用程序编程的函数库文件软件包,binutils用作二进制程序处理工具。这样一些软件构成了Linux下的交叉编译工具链。 通常构建交叉工具链有3种方法: (1)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链;

相关主题
文本预览
相关文档 最新文档