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

与通用计算机上的软件开发不同,嵌入式的编译过程被称为交叉编译,嵌入式系统的软件开发环境被称为嵌入式交叉开发环境。

交叉编译就是把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种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)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链;
(2)通过Crosstool脚本工具来实现一次编译生成交叉编译工具链;
(3)直接通过网上下载已经制作好的交叉编译工具链。

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

本次实验采用来制作基于gcc4.1.1和的工具链。

主要步骤如下:
1.从crosstool上下载压缩包,并在/opt下解压。

由于S3C2440是基于ARM920T内核的,所以要建立基于ARM9TDMI的工具链。

在目录下,打开,修改如下内容:
(1)在第37行后面添加一行:(第37行应该为注释)
eval `cat 4.1.1 sh –notest
上面语句表示执行后,它将根据、4.1.1这两个文件中定义的环境变量调用脚本来进行编译。

文件指明了要下载或使用的文件。

出的
(2)修改第7、8行内容如下:
TARBALLS_DIR=/opt/downloads
RESULT_TOP=/opt/crosstool
其中,TARBALLS_DIR表示要使用文件源码存放的位置,RESULT_TOP表示编译结果存放位置。

2.修改文件。

打开,将第2行修改为:
TARGET=arm-linux
修改后,编译生成的工具样式为arm-linux-gcc、arm-linux-ld等。

3.修改
4.1.1文件,并下载相关源码。

打开文件,由于我们要移植的Linux内核版本为,所以修改第5行为:
LINUX_DIR=linux-2.6.24
在编译过程中,系统会根据4.1.1文件内容下载所需要的相关源代码,但系统自动下载速度较慢,所以我们应根据该文件的内容自行下载文件代码,将其放在/opt/downloads下。

须下载的源代码包括:
2.16.1
3.3.6
4.1.1
2.6.12回到目录下,切换用户为其他用户,运行脚本文件。

直接在root用户下运行该脚本文件会出现:
Don't run or as root, it's dangerous 的出错信息,无法进行编译。

5.其他用户下运行;出现提示后再切换到root,再运行脚本文件2-3个小时后,将在/opt/crosstool/
目下生成4.1.1子目录。

设置并保存PATH环境变量,则交叉工具链构建完成。

运行以下命令:
arm-linux-gcc –v
显示如下内容:
Using built-in specs.
Target: arm-linux
Configured with: /opt/crosstool/build/arm-linux/4.1.1
--target=arm-linux
--host=i686-host_pc-linux-gnu
--prefix=/opt/crosstool/ --with-cpu=arm9tdmi --enable-cxx-flags=-mcpu=arm9tdmi
--with-headers=/opt/crosstool/
--with-local-prefix=/opt/crosstool/
--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环境下,采用制作了基于gcc4.1.1和的工具链,从而建立了如图2所示的嵌入式交叉开发
环境。

Cd /opt/croostool
Cd 4.1.1 arm-linux
Cd bin
pwd
2 嵌入式交叉开发环境
1.Vi /etc/profile 光标移动到最后一行末尾,
点击“回车”
2.输入PATH=SPATH:/OPT/...
设置路径
3.Source /etc/profile
4.切换到根目录等处输入:arm-linux-gcc –-v
5.出现版本信息则成功。

如下:
范例一:将整个 /etc 目录下的文件全部打包成为/tmp/
tar -cvf /tmp/ /etc<==仅打包,不压缩!
tar -zcvf /tmp/ /etc<==打包后,以 gzip 压缩
tar -jcvf /tmp/ /etc<==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

# 如果加 z 参数,则以 . 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 . 来作为附档名啊~。

合集下载

4.1 嵌入式系统开发工具链

4.1 嵌入式系统开发工具链

ARM公司的开发工具(续)
RealView MDK是完备的嵌入式开发环 境,它包括多个组成部分: uVision3集成 开发环境、RealView C/C++编译器、 RealView宏汇编器、RealView工具 集、RTL-ARM实时库、uVision调试器以 及GNU GCC。 RealVw MDK有评估版和完整版,评估 版具有很大的限制。
../gcc-4.1.1/configure --prefix=/usr/local/gcc-4.1.1 -enable-threads --disable-checking --enable-long-long -host=i386-redhat-linux --with-system-zlib --enablelanguages=c,c++
源码安装gcc过程(8)
测试 用新的编译命令(gcc4、g++4等)编 译你以前的C、C++程序,检验新安装的 GCC编译器是否能正常工作。 根据需要,可以删除或者保留${srcdir}和 ${objdir}目录。
★★
4、二进制方式安装arm-elf-gcc
cygwin下安装交叉工具链
arm-elf-tools-cygwin.sh armtools.tar.gz EmbestArmTool.exe

组件介绍(续)
2. binutils
是一组二进制工具程序集合,是辅助GCC的主 要软件。 主要包括:
as:GNU汇编器 ld:GNU链接器 ar:创建归档文件,向库中添加/提取obj文件 nm:列出obj文件中的符号 objcopy:复制和转化obj文件
组件介绍(续)
2. binutils

Qt嵌入式开发环境的建立

Qt嵌入式开发环境的建立

Qt嵌入式开发环境的建立Qt是一种跨平台的C++应用程序开发框架,它可以用于开发桌面应用程序、移动应用程序和嵌入式应用程序。

在嵌入式领域,Qt可以用于开发各种类型的应用程序,例如智能家居系统、医疗设备、工业自动化设备等。

本文将介绍如何建立Qt嵌入式开发环境。

第一步:选择嵌入式平台在建立Qt嵌入式开发环境之前,需要先选择嵌入式平台。

Qt支持多种嵌入式平台,例如Linux、Windows Embedded、Android、iOS等。

选择嵌入式平台的时候需要考虑硬件性能、系统稳定性、开发成本等因素。

第二步:安装Qt开发工具在选择嵌入式平台之后,需要安装Qt开发工具。

Qt提供了多种开发工具,例如Qt Creator、Qt Designer、Qt Linguist等。

其中,Qt Creator是一种集成开发环境,可以用于编写、调试和部署Qt应用程序。

Qt Designer是一种可视化界面设计工具,可以用于设计Qt应用程序的用户界面。

Qt Linguist是一种多语言翻译工具,可以用于翻译Qt应用程序的界面文本。

第三步:配置Qt开发环境在安装Qt开发工具之后,需要配置Qt开发环境。

配置Qt开发环境的过程包括以下几个步骤:1. 配置Qt版本:在Qt Creator中,需要选择正确的Qt版本。

如果没有安装Qt版本,需要先下载并安装Qt版本。

2. 配置编译器:在Qt Creator中,需要选择正确的编译器。

如果没有安装编译器,需要先下载并安装编译器。

3. 配置调试器:在Qt Creator中,需要选择正确的调试器。

如果没有安装调试器,需要先下载并安装调试器。

4. 配置嵌入式平台:在Qt Creator中,需要配置嵌入式平台。

配置嵌入式平台的过程包括选择嵌入式平台、设置交叉编译工具链、设置Qt库路径等。

第四步:编写Qt应用程序在配置好Qt开发环境之后,可以开始编写Qt应用程序了。

Qt应用程序可以使用C++语言编写,也可以使用QML语言编写。

Qt嵌入式开发环境搭建

Qt嵌入式开发环境搭建

Qt嵌入式开发环境搭建一、Qt版本介绍按照不同的图形界面来划分,分为四个版本:1、Win32版:适用于windows平台2、X11版:适用于各种X系统的Linux和Unix平台3、Mac版:适用于苹果的MacOS4、Embedded版:适用于具有帧缓冲(Frame buffer)的linux 平台Qtopia是基于qt开发的一个软件平台,Qtopia是构建于Qt/E 之上的一系列应用程序,在这个平台上我们可以开发各种应用程序。

2008年,TrollTech公司被Nokia收购后,Qtopia被重新命名为Qt Extended。

Nokia在推出了Qt Extended的最新版Qt Extended 4.4.3之后的2009年3月3日,决定停止Qt Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分Qt Extended 的功能移植到Qt的开发框架中。

所以总的来说,QT也就三种:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式带各种应用程序的Qtopia桌面系统二、比如是Qt的各种版本介绍1、Qt的安装程序(包含了QtCreator,QtAssistant)Windows--x86--msvc2012_64_opengl :表示window平台,msvc2012可以与VS2012进行结合使用,64位应用程序,要求电脑装的是64位操作系统;opengl表示支持openGL的绘图模式Windows--x86--mingw48_opengl :window平台下的mingw48编译器进行编译。

2、Qt的库的源码包3、Qt安装包的下载网址:如果想下载Qt的以前版本,可以在上面网址的最下面的一栏有个Archive for old versions ,进去就可以下载qt的以前版本了。

三、嵌入式Qt开发环境的搭建1.预备知识,嵌入式qt开发环境的安装方法很多,qt的版本也很多。

有点让人不知所措,不知该按哪种方法去安装。

基于Linux的嵌入式交叉编译环境的建立及实现

基于Linux的嵌入式交叉编译环境的建立及实现

不紊 的进 行 。 iu Ln x操 作 系统 的建立 可 以选 择在 P C机
上 安装 L n x操 作 系统 或 者 在 Wid w iu n o s下 安 装 虚 拟 Ln x环 境 软件 [ 。L n x开发 环境 方案 有 以下 几种 : iu 2 iu ]
进 行 项 目开发 的 时候必 须 搭建 一 套 开发 环 境 , 包括 操
Env r n e s d o Li ux i o m ntBa e n n 刘永 林 梁 莹 王诗 琴 师 惠萍 ( 中北大 学山西省 现代 无损检 测工程 技 术研 究 中心 太原 ( 中北大 学山西省 光 电信 息与仪 器 工程技 术研 究 中心 太原 。 00 5 ) 3 0 1 0 05 ) 3 0 1
CCROSS
—ห้องสมุดไป่ตู้
⑧ 系统 头 文件 gich a e : 编译过 程 中函数声 l —edr对 b
明 , 果 缺 少 了头 文 件 , 统 功 能 的很 多 C程 式 将 无 如 系 法 编译 。
C OM PI E — a m—i u L r l x # ma e n k
me c nu onfg i
现 代嵌 入 式行 业 的交 叉 编译 环 境 多种 多样 , 多 很
都 有 各 自的特点 和使 用 的便 利性 , 入 式开 发 人 员往 嵌
往 需要 搭建 一套适 合 自己的交 叉编译 环境 。本 文根 据
硬 件 结 构 和 软 件 需 求 搭 建 了 一 套 工 具 链 , 用 采
“ no s Wid w +Vmwae虚拟 机 ( iu ) 目标 系 统 ” r Ln x + 的 结 构 模 式 , 成交 叉 编译 环 境 的构 建 , 进行 开 发 测 完 并

交叉编译环境搭建

交叉编译环境搭建
交叉开发工具
进行嵌入式开发时,首先要建立交叉编译开发环境。下面将从建立交叉编译环境的原因、方法以及使用等几个方面入手。
1, 交叉编译
交叉编译就是在一个平台上生成另一个平台上的可执行代码。这里注意的是所谓的平台,实际上它包含两个概念:体系结构(Architecture)和操作系统(Operation System)。
一般而言,需要交叉编译的原因有两个。首先,在项目的起始阶段,目的平台尚未建立,因此需要做交叉编译,以生成我们所需要的Bootloader(启动引导代码)以及操作系统核心;其次,当目的平台能启动之后,由于目的平台上资源的限制,当我们编译大型程序时,依然可能需要用到交叉编译。
2, 制作工具链
建立交叉编译开发工具链有两种方法。自己动手编译一个工具链,或者直接下载
同一个体系结构可以运行不同的操作系统;同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上市Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
#file hello_arm
Hello_arm:ELF 32-bit LSB executable,ARM,version 1 (ARM),for GNU/Linux 2.0.0,dynamically linked (uses shared libs),not stripped.
如果做到了这一步,就说明你的交叉编译环境已经构建好了,接下来你就可以就行嵌入式开发了。
制作好的工具链。一般而言,如果客户自己购买开发板,厂家都提供交叉编译工具链,读者只要在Linux环境中解压安装并配置环境变量就可使用。

ARM Cortex-A9多核嵌入式系统开发教程(杨福刚)章 (14)

ARM Cortex-A9多核嵌入式系统开发教程(杨福刚)章 (14)

第4章 构建嵌入式开发环境
5. 目录选项(Directory Option) (2) -I-。任何在“-I-”前面用“-I”选项指定的搜索路径只 适用于“-I”这种情况;它们不能用来搜索“#include < >” 包含的头文件。 (3) -Ldir。在“-l”选项的搜索路径列表中添加dir目录。
第4章 构建嵌入式开发环境
4.3 建立交叉编Байду номын сангаас工具链
源文件需要经过编译才能生成可执行文件。在 Windows下进行开发时,集成开发环境已经将各种编译工 具的使用封装好了,只需要点几个按钮即可完成编译。 Linux 下也有很优秀的集成开发工具,比如gcc、ld、 objcopy、objdump 等,它们编译出来的程序在x86平台上 运行。要编译出能在ARM平台上运行的程序,必须使用交 叉编译工具链arm-linux-gcc、arm-linux-ld 等。
SELINUX=disabled(系统默认是enforcing,改成disabled); chmod 777 /tftpboot 修改/tftpboot文件夹的权限。 至此,TFTP服务已经配置完成。
第4章 构建嵌入式开发环境
4.2.4 NFS的安装配置 NFS(Network File System,网络文件系统)类似于
第4章 构建嵌入式开发环境
TFTP服务的安装配置过程如下: (1) 先安装xinetd服务,命令如下:
yum install xinetd (2) 安装xinetd完成后,安装TFTP的客户端和服务器端,命 令如下:
yum install tftp yum install tftp-server (3) 对TFTP服务器进行配置。把/etc/xinetd.d/tftp.rpmnew复 制并改名为/etc/xinetd.d /tftp,命令如下: cp /etc/xinetd.d/tftp.rpmnew /etc/xinetd.d/tftp

嵌入式系统软件开发环境的建立


上 的应用 程 序 。调试 时 的方 法很 多 ,可 以使用 串 口 ,以 太 网 口等 ,宿主 机和 目标 板 的处 理 器 一般 都 不相 同 ,对
于 本 系 统 来 说 ,宿 主 机 为 A MD 处 理 器 , 而 目 标 板 为 S AMS N ¥ C 4 0 进 行 嵌 人 式 开 发 前 第 一 步 的 工 作 U G 321。
保 存 对 poi rfe的 修 改 后 ,执 行 suc ec rfe就 l o re/t/ oi p l
0K 了
可 以 运 行 aT一iu g c —v则 有 如 下 显 示 : I -n . c Ul 一
[ t i , v hcp l e ti i t t e  ̄ l /m f 。 1 , u - ̄ ' c・ ‘ “ r4 I v r . 口 | c R d g p s n s 1I l /41 iI m ix . 1  ̄ s e i e o ^ r I r 3 .l / 6r lu 3 .s c ansc I r / /l. / ̄c -n/4/ b C f u d i : l k r s o o ; , a r “ u l - 4 l i- 3 / c 0 ir  ̄ h / r c 3 o . z b la - n /c . 1 l 2 .t ・ t t e t o /o t I . / i / , x c 3 . l . 2 c x 3 . c f t - n t r |x o : 8 tcl n  ̄r i / r . 1o i e t p  ̄ rlu 4/np r n si6 J-n1u exu1 t 6 s ix t =s ]
就 是 要在 P C机 安 装 Ln x操作 系 统作 宿 主机 ,操 作 系 iu
统 选 用 了 虚 拟 机 V aeF dr 。 mw r e ea8

Chap嵌入式Linux应用程序开发

(2)为加载BootLoader的阶段2准备RAM空间。 为了获得更快的执行速度,通常把阶段2加载到 RAM空间来执行。
(3)拷贝BootLoader阶段2的代码到RAM空间中。
(4)设置好堆栈。
(5)跳转到阶段2的C程序入口点。
第15页/共30页
• BootLoader的阶段2通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和 可移植性。通常包括以下步骤:
第3页/共30页
简单验证交叉编译工具
• 首先用文字输入软件建立一个helloworld.c文件: • #include <stdio.h> • int main(void) •{ • printf("hello world\n"); • return 0; •} • 然后在命令行执行: • $arm-linux-gcc helloworld.c -o helloworld • $file helloworld • 如果输出以下信息,说明成功建立了编译工具。 • helloworld: ELF 32-
系统移植实际上是一个最小系统的重建过 程。,在此使用目标平台上的二进制代码生成 这个最小系统。包括:init、libc库、驱动模块、 必需的应用程序和系统配置脚本。一旦这些工 作完成,移植工作就进入联调阶段了。
bit LSB executable, ARM, version 1, dynamically linke d (uses shared libs), not stripped
第4页/共30页
5.2 Linux及开发工具的使用
GNU工具的开发流程如下: 编写C、C++语言或汇编源程序,用gcc或g++生成目标文件, 编写链接脚本文件,用链接器生成最终目标文件(elf格式), 用二进制转换工具生成可下载的二进制代码。

嵌入式交叉开发环境介绍

嵌入式交叉开发环境介绍嵌入式交叉开发环境是为嵌入式系统开发而设计的一种开发环境。

嵌入式系统是指嵌入到其他设备或系统中的计算机系统,它们通常用于执行特定的功能,如控制、监测或通信。

嵌入式交叉开发环境包含了一系列的工具和技术,用于编译、调试和部署嵌入式软件。

嵌入式交叉开发环境的一个关键组成部分是交叉编译器。

由于嵌入式系统和主机系统的硬件架构不同,所以需要使用交叉编译器将源代码从开发主机编译为可以在目标嵌入式系统上运行的可执行文件。

交叉编译器提供了与目标硬件平台兼容的编译器,链接器和调试器等工具。

另一个重要的组件是调试器。

嵌入式系统通常没有显示屏和键盘,因此调试器是必不可少的工具。

调试器通过连接到目标系统上的调试接口,提供了远程调试和监视嵌入式系统的功能。

调试器可以跟踪程序执行状态、检查变量的值和监控系统资源的使用情况,从而帮助开发人员识别和修复程序中的错误。

除了交叉编译器和调试器,嵌入式交叉开发环境还包括了其他一些工具和组件,用于测试、优化和部署嵌入式软件。

例如,性能分析工具可以帮助开发人员分析程序的性能瓶颈,并优化代码以提高系统的响应能力。

代码覆盖工具可以帮助开发人员检测测试覆盖率,确保所有的代码路径都得到了测试。

部署工具可以帮助开发人员将编译好的可执行文件和相关文件传输到目标系统上,并安装和配置软件。

同时,嵌入式交叉开发环境还需要具备与目标硬件平台兼容的驱动和库。

驱动程序提供了访问硬件设备的接口,使开发人员可以与外部设备进行通信和控制。

库提供了一系列的功能和算法,以简化嵌入式软件的开发。

常见的库有操作系统库、数学库和图形库等。

总之,嵌入式交叉开发环境是一个针对嵌入式系统开发的综合工具和技术集合。

它提供了交叉编译器、调试器、开发套件、测试工具、部署工具、驱动程序和库等组件,帮助开发人员更高效地开发、调试和部署嵌入式软件。

嵌入式交叉开发环境在嵌入式系统开发中发挥着重要的作用,可以提高开发效率、降低开发成本,并最终达到实现高质量的嵌入式软件的目标。

基于OpenOCD和JTAG的嵌入式交叉开发环境

摘要: 嵌入式开发必须首先完成其 交叉编译调试环境 的建 立。文章针对 b o- a e o t od r与嵌入式 内核的调试 。 出了一种基 于 l 提
Op n D 和 J AG 的 嵌 入 式 交 叉 开 发 环 境 的 构 建 方 法 。 其 主 要 由 GD 前 端 、 B 调 试 编 译 器 、 护 进 程 O e OC 和 e OC T B GD 守 pn D J AG 调 试 器 四个 部 分 构 成 , 构 建 方 法 简 单 调 试 界 面 人 性 化 。 调试 工 作 提供 了稳 定 平 台 。 T 其 为
s a l r s - e e o me ti t f c . tbe co sd v lp n er e n a
Ke d y wors:0p n e OCD;J AG ;e e d d;c o sc mpl T mb d e rs o i e
O 引 言
随着信 息技 术的发展和后 P C时代的到来 , 低功耗 的嵌入 式设备 已经大量应用于移动通讯设备与个人终 端 、 平板 电脑 。
HUANG . h n.U . u Zic e De h a
( u zo gU i r t o cec n eh o g , h n4 0 7 ,C ia H ahn nv sy f i ea d e i S n o n
Ab t c : s r t Emb d e e eo me tmu tfs o lt sc o sc mpl e u gn n i n n .Th r s -e eo me t a e d d d v lp n s i tc mpe e i rs -o i d b g ig e vr me t r t er o e co s d v lp n e vr me tb s d o e OCD a d J AG s u e o o tla e n y t m e n l e u gn . I c n it fGDB ni on n a e n Op n n T i s d f rb o ・ d ra d s se k r e b g ig t o sss o o d
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档