搜档网
当前位置:搜档网 › 嵌入式交叉开发环境的建立

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

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

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

与通用计算机上的软件开发不同,嵌入式的编译过程被称为交叉编译,嵌入式系统的软件开发环境被称为嵌入式交叉开发环境。交叉编译就是把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种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)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链;

(2)通过Crosstool脚本工具来实现一次编译生成交叉编译工具链;

(3)直接通过网上下载已经制作好的交叉编译工具链。

Crosstool是一组脚本工具集,可构建和测试不同版本的gcc和glibc,用Crosstool构建交叉工具链要比分步编译容易得多,也方便许多。

本次实验采用cross-0.43来制作基于gcc4.1.1和glibc-2.3.2 的工具链。主要步骤如下:

1.从https://www.sodocs.net/doc/e37499184.html,/crosstool上下载crosstool-0.43.tar.gz压缩包,并在/opt下解压。由于S3C2440是基于ARM920T内核的,所以要建立基于ARM9TDMI的工具链。在crosstool-0.43目录下,打开demo-arm9tdmi.sh,修改如下内容:

(1)在第37行后面添加一行:(第37行应该为

注释)

eval `cat arm9tdmi.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh –notest

上面语句表示执行demo-arm9tdmi.sh后,它将根据arm9tdmi.dat、gcc-4.1.1-glibc-2.3.2.dat这两个文件中定义的环境变量调用all.sh脚本来进行编译。gcc-4.1.1-glibc-2.3.2.dat文件指明了要下载或使用的文件。出的

(2)修改第7、8行内容如下:

TARBALLS_DIR=/opt/downloads

RESULT_TOP=/opt/crosstool

其中,TARBALLS_DIR表示要使用文件源码存放的位置,RESULT_TOP表示编译结果存放位置。

2.修改arm9tdmi.dat文件。打开arm9tdmi.dat,将第2行修改为:

TARGET=arm-linux

修改后,编译生成的工具样式为arm-linux-gcc、arm-linux-ld等。

3.修改gcc-

4.1.1-glibc-2.3.2.dat文件,并下载相关源码。打开gcc-4.1.1-glibc-2.3.2.dat文件,由于我们要移植的Linux内核版本为2.6.24,所以修改第5行为:

LINUX_DIR=linux-2.6.24

在编译过程中,系统会根据gcc-4.1.1-glibc-2.3.2.dat文件内容下载所需要的相关源代码,但系统自动下载速度较慢,所以我们应根据该文件的内容自行下载文件代码,将其放在/opt/downloads下。须下载的源代码包括:

binutils-2.16.1.tar.bz2 glibc-2.3.2.tar.bz2

gcc-3.3.6.tar.bz2

glibc-linuxthreads-2.3.2.tar.gz

gcc-4.1.1.tar.bz2 linux-2.6.24.tar.bz2

gdb-6.5.tar.bz2

linux-libc-headers-2.6.12.0.tar.bz2

4.回到crosstool-0.43目录下,切换用户为其他用户,运行demo-arm9tdmi.sh脚本文件。直接在root 用户下运行该脚本文件会出现:

Don't run all.sh or crosstool.sh as root, it's dangerous

的出错信息,无法进行编译。

5.其他用户下运行demo-arm9tdmi.sh;出现提示后再切换到root,再运行demo-arm9tdmi.sh脚本文件2-3个小时后,将在/opt/crosstool/目下生成gcc-4.1.1-glibc-2.3.2子目录。设置并保存PATH环境变量,则交叉工具链构建完成。运行以下命令:

arm-linux-gcc –v

显示如下内容:

Using built-in specs.

Target: arm-linux

Configured with: /opt/crosstool/crosstool0.43/build/arm-linux/gcc-4.1. 1-glibc-2.3.2/gcc-4.1.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu

--prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linu x --with-cpu=arm9tdmi --enable-cxx-flags=-mcpu=arm9tdmi

--with-headers=/opt/crosstool/gcc-4.1.1-glibc-2.3.2/ arm-linux/arm-linux/include

--with-local-prefix=/opt/crosstool/gcc-4.1.1-glibc-2.3. 2/arm-linux/arm-linux --disable-nls

--enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long Thread model: posix

gcc version 4.1.1

在Linux环境下,采用cross-0.43制作了基于gcc4.1.1和glibc-2.3.2 的工具链,从而建立了如图2所示的嵌入式交叉开发环境。

Cd /opt/croostool

Cd gcc-4.1.1-glibc-2.3.2.dat

Cd arm-linux

Cd bin

pwd

windows安装交叉编译环境

Duanxx的嵌入式学习: Win7安装交叉编译环境 ——Duanxx ——2015-09-15 ARM-linux的交叉编译环境,一般的教程都是在linux系统(比如ubuntu)上安装linaro的arm-linux-gnueabihf编译环境,然后再安装Eclipse和CDT,这样来实现交叉编译环境的安装。 我个人使用这种方法已经使用了几年了,因为我个人比较喜欢使用Linux系统(我使用的是CentOS),所以感觉很自然。但对于初学者而言,如果对linux系统不熟悉,这个方法非常的麻烦,仅仅是为了编译一个可以在ARM-linux上运行的elf文件,还要装虚拟机,学习linux系统的很多使用方法,挺麻烦的。 这两天试了一下在windows平台上安装交叉编译环境,成功了,这里将详细教程写下来,就当是做个记录。 目录 一、安装Eclipse (2) 二、安装CDT (3) 2.1Eclipse Marketplace 安装CDT (4) 2.2 Install New Software 安装CDT方案1 (4) 2.3 Install New Software 安装CDT方案2 (7) 2.4 手动安装CDT (9) 三、安装minGW (10) 四、安装Linaro ToolChain (10) 五、搭建交叉编译开发环境 (13) 六、RSE将可执行文件传输到ARM上 (26)

一、安装Eclipse Eclipse的下载网址是:https://www.sodocs.net/doc/e37499184.html,/downloads/ 会有下面的这个网页,我打红色框的都可以直接使用,这里其实是无所谓的,因为Eclipse是基于插件的开发环境,如果只是为了开发C++的,可以考虑选择后面一个“Eclipse IDE for c/C++ Developers”。 Eclipse解压后就可以直接使用,见下图中的eclipse.exe,同时注意一下freatures和plugins文件夹。

Ubuntu8.04下的ARM交叉编译工具链(arm-linux-)详细介绍.

原文链接与:https://www.sodocs.net/doc/e37499184.html,/u1/58901/showart_1335004.html 实验室的机器配置太低,速度太慢实在是受不了。说是已经升级了,内存从128M升级到了256M。My god!这年头还能到什么地方找那么多128的内存条去阿?哇嘎嘎。真是服了。。。哈哈 打开一个pdf文件要等老半天。基本上没有办法工作。于是想在自己的笔记本上做一个交叉编译环境。我的机器配置也不高,但是相对于实验室的机器来说已经相当不错了。我的机器是单操作系统:只有Ubuntu8.0.4。感觉和windows XP差不多。XP下有的东西,ubuntu下基本上也有。 ps:昨天是我的生日。昨天上午有课,一下午还有今天上午就是在交叉编译的过程中度过的。感觉整个过程挺考验耐心的。下面进入正题。 待续。。。最近两天内补充完整。 ************************************************************************************* 在进行嵌入式在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文结合自己做嵌入式交叉编译开发工作的经验,同时结合自己的体会,做了一个介绍 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要由binutils、gcc 和glibc 几个部分组成。有时出于减小libc 库大小的考虑,你也可以用别的c 库来代替glibc,例如uClibc、

嵌入式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软件工具栏上的【绿色箭头】启动虚拟机,如下图所示:

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

与通用计算机上的软件开发不同,嵌入式的编译过程被称为交叉编译,嵌入式系统的软件开发环境被称为嵌入式交叉开发环境。交叉编译就是把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 宿主机(Host)是用于开发嵌入式系统的计算机。一般为PC机(或者工作站),具备丰富的软硬件资源,为嵌入式软件的开发提供全过程支持。目标机(Target)即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的。物理连接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有串口、以太网接口和OCD(On Chip Debug)三种方式。逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接。在开发过程中,目标机端需接收和执行宿主机发出的各种命令如设置断点、读内存、写内存等,将结果返回给宿主机,配合宿主机各方面的工作。 宿主机上用于嵌入式软件开发的工具软件一般

包括:文本编辑器、交叉编译器、交叉调试器、仿真器、下载器等。 当我们建立完成了嵌入式交叉开发环境后,我们就可以按照如图1所示,在宿主机上编写程序的源代码,使用交叉编译器编译成各个目标模块,使用交叉链接器链接生成可供下载调试或固化的目标程序,通过目标机和宿主机之间的物理连接(串口或网络接口)将目标程序下载到目标机。 图1嵌入式软件编译过程 在这里中,我们是在宿主机的虚拟机(VMware Workstaion )上安装Red Hat Enterprise Linux 5。在Linux环境下,我们一般采用arm-linux-gcc作为交叉编译器,glibc是应用程序编程的函数库文件软件包,binutils用作二进制程序处理工具。这样一些软件构成了Linux下的交叉编译工具链。 通常构建交叉工具链有3种方法: (1)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链;

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

实验三搭建嵌入式系统开发环境 一、实验目的: 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。

嵌入式交叉编译环境的搭建

实验二、嵌入式交叉编译环境的搭建 1、实验目的: 通过本实验使学生掌握交叉编译环境的建立,了解在S3C2440上交叉编译环境搭建的原理及步骤。 2、实验设备及说明 1、安装ubuntu10及vmware的计算机 2、天嵌2440的开发板 3、实验指导书 4、天嵌开发板的超级终端设置 5、天嵌开发板开发文档 6、TQ2440使用手册v2.3---20100125 3、实验内容和步骤 1、安装交叉编译器:EABI4.3.3 ●解压EABI 工具包 命令:tar zxvf /mnt/hgfs/(根据本机压缩包存储路径输入)/EABI 4.3.3.tar.gz –C / ##将压缩包解压到根目录下 ●添加路径至全局变量PATH中 命令:PATH=$PAHT:/opt/EmbedSky/4.3.3/bin (此路径应根据本机的具体情况输入) ●查看全局变量PATH 命令:echo PATH ###查看刚才的添加是否成功 ●查看交叉编译命令是否能够使用 命令:arm-linux-gcc –v ###如果刚才解压、添加变量成功,此时输入命令后,即可以显示命令的版本信息。

2、minicom

●在线安装minicom 命令:apt-get install minicom ●在命令行中键入“minicom”,这就启动了minicom软件。 ●Minicom在启动时默认会进行初始化配置minicom -s ?CTRL+A Z,来查看minicom的帮助 ?CTRL-A O配置minicom的串口参数,选择“Serial port setup”子项,上面列出的配置是minicom启动是的默认配置,用户可以通过键入每一项前的大写字母,分别对每一项进行更改.要对波特率、数据位和停止位进行配置,键入“E”,在该配置界面中,可以键入相应波特率、停止位等对应的字母,即可实现配置,配置完成后按回车键就退出了该配置界面。在确认配置正确后,可键入回车返回上级配置界面,并将其保存为默认配置。 ?

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

实验1(嵌入式开发环境实验)

实验1:嵌入式Linux开发环境 一、实验目的 熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。 二、实验内容 1、在linux系统下,利用C语言来编写应用程序,并进行交叉编译,生成可在目标实验台上运行的目标文件。 2、建立宿主机与目标实验台仿真终端连接,为目标实验台建立Linux系统终端窗口。 3、建立宿主机与目标实验台的共享连接,以便下载和运行最终可执行文件。 三、预备知识 C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。 四、实验设备及工具(包括软件调试工具) 硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。 软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境 五、主要实验步骤: 1、打开PC宿主机电源,选择进入Linux系统。在PC宿主机的/arm2410s/exp/Basic目录中创建用户个人工作目录,例如“cao”。 2、单击鼠标右键选择“新建终端”,建立宿主机Linux命令终端窗口,在[root@localhost root]#命令提示符下进入个人工作目录“cao”中。 即:[root@localhost root]#cd /arm2410s/exp/basic/cao 3、利用“vi”编辑hello应用程序,并保存为hello.c文件。 即:#cd /arm2401s/exp/Basic/cao #vi hello.c 进入vi编辑窗口,编辑hello.c文件…… 4、利用“gcc –o”命令对hello.c文件进行编译,生成可在PC宿主机上执行的目标文件hello.pc。 即:#gcc –o hello.pc hello.c, 为了验证结果正确性,可在PC宿主机上执行hello.pc文件。 即:#./hello.pc 5、为了在实验台上下载运行hello文件,需要对hello源文件进行交叉编译,以便生成能够在实验台上运行的目标文件。利用“armv4l-unknown–Linux-gcc –o命令”进行交叉编译,生存目标文件hello.o。 即:# armv4l-unknown-Linux-gcc -o hello.o hello.c (注意:这里的“armv4l-unknown–Linux-gcc –o”交叉编译命令输入方法是使用键盘输

ubuntu10.04全过程创建交叉编译环境

ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程 参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。 用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。以下操作在用户权限下进行。 ======================================================================= arm-linux-gcc-3.4.1.tar.gz glibc-2.3.3.tar.gz linux-2.6.8.tar.gz crosstool-0.43.tar.gz binutils-2.15.tar.gz glibc-linuxthreads-2.3.3.tar.gz binutils-2.18.tar.gz --安装用 编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。 sudo apt-get install bison flex build-essential patch libncurses5-dev 由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。方法如下: $cd downloads $tar xzvf binutils-2.18.tar.gz $cd binutils-2.18 $./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义) $make all $make install 编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件 重新链接/usr/bin/ld 和/usr/bin/as文件 $sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as $sudo ln –s /tmp/binutils/bin/ld /usr/bin/ $sudo ln –s /tmp/binutils/bin/as /usr/bin/ 然后可运行ld –v 和as –v 查看版本是否为2.18。 安装2.18版本可解决出现的 ld as " version too old "问题。 2. ubuntu10.04下默认的GCC版本是4.4.3,但这个不是版本越高越好,版本太高,对语法什么的要求也高,编译不成功,降低版本吧: #sudo apt-get install gcc-4.1 //安装4.1的GCC,需要联网 #sudo rm /usr/bin/gcc //删除之前4.4.3的快捷方式,4.4.3的GCC并未删除#sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc //建立4.1的快捷方式 这是由于crosstool中定义了GCC的版本的上下线,最高也就到4.1,在其配置的时候会对这个版本信息进行检测,不在其规定范围就报错了。 3.修改sh版本 如果运行

嵌入式系统开发环境实验

嵌入式系统开发环境实验 一实验目的与要求 1.熟悉Linux系统环境。 2.了解实验板的结构组成。 3.了解嵌入式系统开发的基本知识。 4. 熟悉嵌入式Linux交叉编译环境的建立过程,并通过一个HelloWorld程序的编写、编译、下载运行及调试过程,了解嵌入式开发的基本方法和流程。 二实验设备与软件环境 1.硬件:SemitARM9200开发板,PC机PIII800MHz,256MB以上,串口线(公母)1条,网线1条,7.5V 电源1个。 2.软件:RedHat 9.0以上Linux操作系统. 三实验原理 1.宿主机开发环境 绝大多数的Linux软件开发都是以Native方式进行的,即本机(Host)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板。如下图所示。 开发时使用宿主机上的交叉编译、汇编及链接工具形成可执行的二进制代码,(这种可执行代码不能在宿主机上执行,而只能在目标板上执行)然后把可执行文件下载到目标机上运行。一般调试的方法包括串口调试和以太网口调试。对于本实验板,目前可采用串口调试,操作系统经过修改可以实现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD处理器,而目标板如本实验板的处理器为ATMEL AT91RM9200 。GNU编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,宿主机上的操作系统一般要求安装Linux,但Linux由多个发行版本,在此,我们推荐使用Redhat 9.0作为本实验板的宿主机PC操作系统(https://www.sodocs.net/doc/e37499184.html,可以下载)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在只要安装我们提供的光盘,开发软件包及GNU编译工具已完全自动完成了。 当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。

嵌入式Linux开发交叉编译器的安装

实验三嵌入式Linux开发交叉编译器的安装 班级:B08511 姓名:张媛媛学号:20084051112 成绩: 一、实验目的 安装ARM平台下的嵌入式Linux开发的交叉编译器arm-linux-gcc,编译简单的程序并通过NFS方式运行于开发板上,比较与gcc生成的可执行文件的不同; 二、实验设备 硬件:PC机开发板 三、实验原理 嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。在采用宿主机/目标机模式开发嵌入式应用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后通过串口或者用网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最后目标机在特定环境下脱离宿主机单独运行。 本次实验涉及到的是嵌入式Linux开发的交叉编译器arm-linux-gcc,从体系结构角度来讲,借助其编译生成的程序是由ARM平台下机器指令构成的可执行程序。 四、实验内容 (1)arm-linux-gcc-3.4.1.tgz为编译器的文件压缩包(实验室机器中位于windows系统的“c:\嵌入式Linux实验\Tools”),为3.4.1版本的交叉编译工具,用来编译常用的一些代码;可通过虚拟机与Windows系统的共享文件夹将其拷贝到Linux系统中; 安装命令:tar xvfz arm-linux-gcc-3.4.1.tgz –C / (2)设置环境变量 可以在/etc/bash.bashrc文件中加入: export PATH=$PATH:/usr/local/arm/3.4.1/bin 就可以直接使用arm-linux-gcc的一些命令; (3)查看arm-linux-gcc编译器版本 输入arm-linux-gcc –v可查看编译器版本,如图3-1: 图3-1 编译器版本

2014完整ARM嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新编著 院系: 姓名: 专业: 学号: 电子通信工程系 2014年3月制

实验一ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容 1.ADS1.2 IDE的安装、环境配置及工程项目的建立; 2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加; (2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制; (4)使用查表法实现程序跳转; (5)使用BX指令切换处理器状态; (6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上; 内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2; 集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

Linux交叉编译环境

开发编译环境 1.交叉编译器的安装,与使用 以ubuntu-14.04.4-desktop-amd64 为例 将附录1的arm_toolchain.tar.gz 选择一个目录COPY过去,(此处以/opt为例) tar zxvf arm_toolchain.tar.gz 修改~/.bashrc 在最后一行添加 将/opt/X3改成你解压的所在目录即可 source ~/.bashrc 在终端查看是否正确,输入arm后按TAB键若出现 安交叉编译器安装正确 若不添加该环境变量,则在使用该编译器时,请使用绝对路径 如: 部分LINUX操作系统,可能存在所需的库并未安装,在编译时若提示未能找到相关库,请自行搜索该库的相应安装 若出现 arm-Linux-gcc /usr/local/arm/4.3.2/bin/arm-linux-gcc: 行3: /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc: 没有那个文件或目录(No such file or directory) 且进入external-toolchain/bin/ 直接运行./ arm-none-linux-gnueabi-gcc出现同样提示,则可能原因是64位系统需要安装32位相应库 解决方法: 方法一: sudo apt-get install lib32z1 方法二: sudo apt-get install g++-multilib 方法三: $ sudo dpkg --add-architecture i386 $ sudo apt-get update $ sudo apt-get install ia32-libs (工具:附录1-arm_toolchain.tar.gz)

【整理】Ubuntu 16.04[64bit]交叉编译环境搭建过程图解

开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。 安装步骤 1、准备工具安装目录 将压缩包arm-Linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。 1. .tar.gz 和.tgz 2. 解压:tar zxvf FileName.tar.gz 3. 压缩:tar zcvf FileName.tar.gz DirName

2、安装软件 使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。通过下图可以看到解压成功了,并且解压后的文件存放在了 1. /home/aldrich/arm/arm-linux-gcc-4.3.2 文件夹下,如下图所示,这个存放路径可得记住,如下图 3、配置系统环境变量 配置环境前先坐下普及: Ubuntu不同目录下profile与bashrc的区别

/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。 /etc/bash.bashrc为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。 ~/.bash_profile每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 ~/.bashrc该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。 ~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件。 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。 ~/.bash_profile是交互式、login 方式进入bash 运行的。 ~/.bashrc是交互式non-login 方式进入bash 运行的。 通常二者设置大致相同,所以通常前者会调用后者。 登陆系统时shell读取的顺序应该是 /etc/profile ->/etc/enviroment -->$HOME/.profile -->$HOME/.env 原因应该是jtw所说的用户环境和系统环境的区别了 如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment)有不同的值那应该是以用户环境为准了

搭建ppc交叉编译环境

搭建powerpc交叉编译环境 V0.1 ALL Rights Reserved, Copyright ? FUJITSU LIMITED 2013

改版履历 修改日期修改原因版本修改者2013/2/18 初版制成V0.1 yaoxt

目录 1 下载交叉编译器 (4) 1.1从本地共享下载 (4) 1.2 从ftp下载 (4) 2 安装交叉编译器 (4) 2.1 创建挂载点 (4) 2.2 挂载镜像文件 (4) 2.3 安装交叉编译器 (5) 3 配置用户.bashrc文件 (5) 3.1 在用户目录下打开.bashrc文件: (5) 3.2 添加交叉编译器可执行文件路径: (5) 3.3 指定目标机架构类型: (5) 3.4 指定交叉编译器: (5) 4 安装后测试 (6) 5 编译mpc85xx内核 (6) 5.1 下载linux内核源码 (6) 5.2 编译mpc85xx内核 (6) 5.2.1 生成.config配置文件 (7) 5.2.2 配置内核编译选项 (7) 5.2.3 编译内核 (7) 5.2.4 编译动态模块 (7) 5.2.5 安装模块 (7) 5.2.6 生成开发板mpc8544ds的dtb文件 (8)

1下载交叉编译器 ELDK是Embeded Linux Development Kit的缩写,它是德国denx提供的供PowerPC嵌入式Linux移植的完整开发环境编译套件,有:gcc,gdb,binutils等。Eldk目前支持多种PowerPC 处理器: ●ppc_8xx ------> MPC8xx处理器 ●ppc_4xx ------> 不带FPU的IBM 4xx处理器 ●ppc_4xxFP ------> 带FPU 的IBM 4xx 处理器 ●ppc_6xx ------> 6xx处理器 ●ppc_74xx ------> 74xx处理器 ●ppc_85xx ------> 不带DPU的MPC85xx处理器 ●ppc_85xxDP ------> 带DPU 的MPC85xx处理器 1.1从d enx的ftp下载 下载地址:http://ftp.denx.de/pub/eldk/ 本文选用的交叉编译工具的版本为ppc-2008-04-01.iso,下载地址: http://ftp.denx.de/pub/eldk/4.2/ppc-linux-x86/iso/ 1.2 从本地ftp下载 为方便公司内部下载使用,已将ppc-2008-04-01.iso镜像文件下载后上传至本地ftp,ftp地址为:xxxxx 2 安装交叉编译器 2.1 创建挂载点 命令:mkdir /mnt/cdrom 说明:该命令的目的是创建一个镜像文件的挂载点,挂载点/mnt/cdrom 的目录名称和路径可自定义 2.2 挂载镜像文件 命令:sudo mount –o loop ppc-2008-04-01.iso /mnt/cdrom

实验一_嵌入式Linux交叉开发环境的搭建

实验一 嵌入式Linux 交叉开发环境的搭建 一、实验目的 1.明白交叉编译环境的意义 2.能够独立搭建嵌入式交叉编译环境 3.嵌入式交叉编译环境的使用 二、实验内容 1.搭建嵌入式交叉编译环境 2.嵌入式交叉编译环境的使用 三、实验步骤 1.主机交叉开发环境的配置 A .配置控制台程序 Windows 操作系统中有超级终端(HyperTerminal )工具;Linux/Unix 操作系统有NFS (使用“NFS ”命令启动该软件)等工具 B. 虚拟机和开发板通信 设置开发板IP

Ifconfig eth0 192.168.0.115 设置虚拟机IP Ifconfig eth0 192.168.0.2 重启NFS服务 service portmap restart service nfs-kernel-server restart 超级终端挂载 mount –t nfs 192.168.0.2:/mnt/nfs /host C.NFS文件系统 NFS为Network FileSystem的简称,最早是由Sun公司提出发展起来的,其目的就是让不同的机器、不同的操作系统之间可以彼此共享文件。 NFS配置 配置文件:/etc/exports 配置文件每一行格式: [共享的目录] [客户端主机名称或IP]([参数1,参数2…]) NFS配置文件常用参数: NFS配置文件举例: cat /etc/exports /mnt/nfs *(rw,sync,no_root_squash) NFS服务启动 设置NFS服务在每次系统引导时自动开启: # /sbin/chkconfig nfs on (在Ubuntu中应该输入/sbin/chkconfig nfs-kernel-server on) 2.Linux配置与编译 编译内核之前要先配置。为了正确、合理地设置内核编译配置选项,从而只编译系统需

交叉编译环境搭建

交叉编译环境搭建 一、Emdebian介绍 Emdebian vision In the Emdebian vision someone wishing to build a GNU / Linux based device would: 1. Port the linux kernel to their hardware (including writing any specific device drivers). 2. Select the prebuilt emdebian packages needed to support their application. 3. Package their application as Debian package(s) using Debian and Emdebian tools. 4. Build a root filesystem using Emdebian tools from the steps above. Emdebian is involved in steps 2,3,4 above (there are far too many embedded device hardware variations to make prebuilt kernels practical). Thus EmDebian is a binary distribution for embedded devices (whereas most of the other contenders in this space are source distributions [of course being Debian and open source the source code is still available if required]. What emdebian does In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets. 二、搭建GCC编译开发环境 安装G++/GCC编译环境 sudo apt-get install gcc g++ make gdb

相关主题