3.uClinux移植过程PPT课件

合集下载

S3c44B0在uClinux的移植步骤

S3c44B0在uClinux的移植步骤

S3c44B0在uClinux中需要修改的文件一.内核基本文件的修改 1.uClinux-Samsung\vendors\Samsung\S3C44B0“config.linux-2.4.x”这个是linux内核编译配置选项文件。

# System Type## CONFIG_ARCH_DSC21 is not set# CONFIG_ARCH_CNXT is not set# CONFIG_ARCH_SWARM is not set#CONFIG_ARCH_SAMSUNG=yCONFIG_ARCH_MBA44B0=y# CONFIG_ARCH_ATMEL is not setCONFIG_NO_PGT_CACHE=yCONFIG_CPU_32=y# CONFIG_CPU_26 is not setCONFIG_CPU_ARM710=yCONFIG_CPU_WITH_CACHE=y# CONFIG_CPU_WITH_MCR_INSTRUCTION is not setCONFIG_SERIAL_44B0=y#CONFIG_SET_MEM_SAMSUNG=yDRAM_BASE=0x0c000000 #SDRAM起始是地址DRAM_SIZE=0x01000000 #SDRAM大小16MFLASH_MEM_BASE=0x00000000 #FLASH起始地址FLASH_SIZE=0x00200000 #FLASH大小2M## General setup以后的make都以CONFIG_ARCH_S3C44B0=y这选项来解决是编译和S3C44B0相关的其他选项。

2.arch/armnommu/Makefie:ifeq ($(CONFIG_ARCH_S3C44B0),y)TEXTADDR = 0x0c008000MACHINE = s3c44b0endifTEXTADDR = 0x0c008000表明未压缩的内核的位置3.arch/armnommu/boot/Makefie:ifeq ($(CONFIG_ARCH_S3C44B0),y)ZRELADDR = 0x0c008000ZTEXTADDR = 0x0c300000endifZRELADDR = 0x0c008000表明未压缩的内核的位置ZTEXTADDR = 0x0c300000表明压缩内核的位置4.include/asm-armnommu//proc-armv/system.h#ifdef CONFIG_ARCH_S3C44B0#undef vectors_base()#define vectors_base() (0x0c000008)#endif5.arch/armnommu/mach-s3c44b0/arch.cMACHINE_START(MBA44B0, "S3C44B0")MAINTAINER("Mac Wang")BOOT_MEM(0x0c000000, 0x01c00000, 0x01c00000)BOOT_PARAMS(0x0c000100)INITIRQ(genarch_init_irq)MACHINE_END其中MACHINE_START(MBA44B0, "S3C44B0")的“MBA44B0”是在asm/mach-types.h 里定义的平台类型BOOT_MEM(0x0c000000, 0x01c00000, 0x01c00000)指定了启动的RAM 地址0x0c000000,特殊功能寄存器地址0x01c00000,BOOT_PARAMS(0x0c000100) 表示内核参数的传递地址。

第12uCLinux在的移植

第12uCLinux在的移植
Linux移植准备 关于交叉编译环境 修改uCLinux内核源码 Linux内核裁剪 内核的编译
? 内核及根文件系统的烧写
配置 minicom 烧写内核 烧写根文件系统
第十二章目录
? UP-NETARM3000 嵌入式教学开发平台介绍 ? uClinux在UPNETARM300 上的移植
Linux移植准备 关于交叉编译环境 修改uCLinux内核源码 Linux内核裁剪 内核的编译
? 进入Binutils目录:
./configure --target=arm-linux--prefix=/toolchain/bu make LANGUAGES =”C” make install
第12章 uCLinux在 UP-NETRARM3000平台
上的移植
本章主要内容
? uClinux源码下载方法和交叉编译工具的下载、
生成方法。
? 内核源码的修改、剪裁和编译过程。 ? 内核裁剪时的菜单选项的配置方法。 ? 内核及根文件系统的烧写过程。
第十二章目录
? UP-NETARM3000 嵌入式教学开发平台介绍 ? uClinux在UPNETARM300 上的移植
式教学开发平台介绍
?UP-NETARM3000 平台是博创兴业科技有限公司,
依托北京航空航天大学开发的。适用于嵌入式教 学和开发。
?目前已应用于清华大学、北京航空航天大学等多
所高校。
?该平台是基于 S3C44B0X 处理器,可以运行
uC/OS-II 和uClinux 的系统。它由核心模块和扩展 模块组成 。
12.2.1 Linux移植准备
① 注释掉ARCH:=$(shell uname –m | sed –e s/i.86/i386/-e s/sun4u/sparc64/ -e s/arm. */arm/ - e s/sa110/arm/)这一行;

uClinux在ARM上的移植

uClinux在ARM上的移植
ran
perpheral drivers,to buiding
new
operating system,which
for the target.And then erosscomile the system for the target.At last the computer
spaned a kemelimage,then 10ad the image to the target. 【Key words]Linux;replant;operating system;Kernel code;drive;crosscompile Kemelimage;wrlteinto 0.前言 uClinux与Limix的兼容性好。基本继承了LinUX的所有优点。开 发时可选用的工具丰富而且优秀。可利用的资源免费而且众多,所以, uClinux已经产生,就有巨大的市场和社会效应。基于ARM的uClinux 有基于ARM开发环境和交叉运行环境的工具链。它的内核完全开放, 人们可以根据自已设计开发出完全基于系统的,高效的应用系统。 一、uClinux的结构特征 uClinux提供r完成嵌入功能的基本内核和所需要的所有用户界 面,它是多面的。uClinux一般由四部分组成,即用户应用程序、函数 库、uClinux微内核和启动引导部分.如图l所示。其中用户应用程序 一般为基于uClinux嵌入式系统的、面向应用功能的应用程序部分;函 数库是用户町能用到的非内核函数集合;uClinux微内核是uClinux面 向嵌入式系统编译形成的最终结果;启动引导部分是嵌入式系统中引 导uClinux微内核、函数库、用户应用程序的工具。

yang
qian university of science and technology)

uclinux移植教程

uclinux移植教程

学习开发套件V3.0中嵌入Uclinux的步骤和方法在学习开发套件V3.0中嵌入Uclinux的步骤和方法,硬件系统为EP1C6,2Mflash,8Msdram.开发环境:SOPC学习开发套件V3.0,型号EP1C6。

QII5.1+SP2,NiosII IDE5.1+SP1。

一 .安装nios2linux开发包nios2linux-1.4二 .建立硬件系统1. QII中建一工程linux_nios,并添加NIOSII CPU,QII工程和平常的建立并没有什么区别,只要得加上flash和sdram,因为这里只是对linux的简单调试,所以SOPC中只添加LED和UART等几个简单外设。

如下图:注意为防止不必要的麻烦,这里尽量使用默认名字。

如果想用USB连接电脑,在QII中把串口连接到USB线的IO管脚上即可。

我们的工程中是两个口都接了,使用串口或者USB口都行。

三.建立软件环境打开NIOSII IDE3.1 建立linux内核file-> new-> project 后如下图:注意:在安装Microtronix_uclinux_nios2开发包后在IDE中分增加出如上图的Microtronix NiosII选项如果没有可以按下面方法解决:1)、打开cmd,在 开始->运行 那里输入cmd2)、cd到你的NiosII的工作目录下面,我的NiosII安装在D盘,如下:3)、在这里输入命令nios2-ide.exe –clean,进入NiosII IDE的clean模式,选择workspace:这是在New->Other那里你就可以看到那个linux的目录项了。

关了IDE窗口和cmd窗口,这样就可以正常看到Microtronix_linux了。

3.2 输入内核名字按next:finish完成四. 构建内核:4.1 右键内核名,在弹出菜单中选择Configure Kernel如下:后进入如下界面:因为flash只有2M因此构造的内核应尽可能的小,其大小不能超过1M。

第八章 嵌入式Linux应用程序设计(第三讲)

第八章 嵌入式Linux应用程序设计(第三讲)

3
Linux内核移植主要过程 内核移植主要过程2 内核移植主要过程
加载文件系统 ramdisk 编写驱动程序 驱动程序目录:linux/drivers/ 驱动程序目录: 网卡驱动程序: 网卡驱动程序:linux/drivers/net/ne.c LCD驱动程序: LCD驱动程序:linux/drivers/video/s3c2410fb.c 驱动程序 触摸屏驱动程序:linux/drivers/char/s3c2410触摸屏驱动程序:linux/drivers/char/s3c2410-ts.c
#ifdef xxx … #elif … #endif
9
Linux内核移植的若干问题 内核移植的若干问题
GNU C结构体初始化 C结构体初始化
结构体声明
ANSI C结构体 初始化,必须 按顺序 GNU C结构体 初始化,无需 按顺序
10
Linux应用程序设计 应用程序设计
编写程序; 编写程序; 编写Makefile文件; 编写Makefile文件; Makefile文件 编译; 编译; 运行; 运行;
17
Linux应用程序的调试 应用程序的调试
编写应用程序 前面已进行说明。 前面已进行说明。 下载应用程序 与连接方式相关, 与连接方式相关,下载应用程序主要有串口下载和网络 下载两种方式,对于支持USB的目标板,还可以借助 盘复 的目标板, 下载两种方式,对于支持 的目标板 还可以借助U盘复 制生成的可执行文件。 制生成的可执行文件。 调试应用程序 主要使用Linux自带的 自带的gdb调试程序来完成。通过 调试程序来完成。 主要使用 自带的 调试程序来完成 通过gdb, , 可以在程序运行过程中实时观察程序的内部结构和内存使用 情况。 情况。 需注意的是,要想使用gdb就必须在对源码进行编译的 需注意的是,要想使用 就必须在对源码进行编译的 时候使用“ 编译选项开关来通知编译器, 编译选项开关来通知编译器 时候使用“-g”编译选项开关来通知编译器,这样程序在编 译时就会包含调试信息并保存在目标文件中。 译时就会包含调试信息并保存在目标文件中。

EIS 实验室

EIS 实验室
Embedded System Course
3.2 Linux V.S uClinux
• 自從uClinux作業系統被開發成為支援沒有MMU的微 處理器所專用的作業系統以後,大部份使用者在Linux 作業系統中的應用程式都能夠被移植到uClinux作業系 統之中,因此應用程式在經過移植之後,都能很順利地 在uClinux上被執行,很少會遇到相容性的問題,主要 的原因在於Linux與uClinux所提供應用程式的介面是 非常類似。
UC/OS • uc/os適合小型控制系統,具有執行效率高、占用空間
小、即時性能優良和可擴展性强等特點,最小內核可編 譯至2k。 • uc/os是一種免費公開源代碼、結構小巧、具有可剝奪 即時內核的即時操作系統。其內核提供任務調度與管理、 時間管理、任務間同步與通信、記憶體管理和中斷服務 等功能。
Embedded System Course
EIS 實 驗室
第三章 uClinux作業系統簡介
3. 1 பைடு நூலகம்謂uClinux
• uClinux是以Linux 2.4核心所發展出來的嵌入式系統專 用作業系統,主要是專門針對沒有記憶體管理單元的微 處理器所設計(MMUs) 的作業系統。
• 完成簡單功能的嵌入式系統一般不需要作業系統,如以 前許多mcs51系列單片機組成的小系統就只是利用軟 體實現簡單的控制環路。但是隨著所謂後pc時代的來 臨,嵌入式系統設計日趨複雜,嵌入式作業系統就必不 可少了。
Embedded System Course
實驗: uClinux porting
• 連接方式
以下列方式將uCdimm 與PC連接,並將電源供應器 DC 3.3 V接上 uCdimm 且打開電源。
共公網路連接方法,須有IP,可連接到外面網路

嵌入式Linux移植ppt课件

嵌入式Linux移植ppt课件

嵌入式Linux的特点
五、完善的网络通信和文件管理机制 Linux至诞生之日起就与Internet密不可分,支持所 有标准的Internet网络协议,并且很容易移植到嵌入 式系统当中。此外,Linux还支持ext2、fat16、 fat32、romfs等文件系统,这些都为开发嵌入式系 统应用打下了很好的基础。
嵌入式系统的分类
QNX OS-9 pSOS ……
嵌入式Linux的特点
一、广泛的硬件支持
Linux能够支持x86、ARM、MIPS、ALPHA、 PowerPC等多种体系结构,目前已经成功移植到数 十种硬件平台,几乎能够运行在所有流行的CPU上。 Linux有着异常丰富的驱动程序资源,支持各种主流 硬件设备和最新硬件技术,甚至可以在没有存储管 理单元(MMU)的处理器上运行,这些都进一步促 进了Linux在嵌入式系统中的应用。
Palm OS Palm OS是一种32位的嵌入式OS,用于掌上电脑。 此系统是3Com公司的Palm Computing部(以独立 成一家公司)开发的。它运行在一个抢占式的多任 务内核之上,同一时刻用户界面仅仅允许一个应用 程序被打开,与同步软件HotSync结合可以使掌上 电脑与PC上的信息实现同步,把PC的功能扩展到 了手掌上。它具有强大的灵活性和良好的可移植性, 是一款非常流行的掌上电脑操作系统。
VxWorks VxWorks是目前嵌入式系统领域中使用最广泛、市 场占有率最高的系统。它支持多种处理器,如x86、 i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API 是专有的。采用GNU的编译和调试器。
嵌入式系统的分类
嵌入式Linux的特点

uClinux移植教程

uClinux移植教程

Linux/uClinux移植教程移植环境:PC主机一台:windows XP+SP3,虚拟机平台Vmware6.5,Linux平台:CentOS5.3操作系统,并且linux虚拟机可以访问互联网。

对于其它Linux操作系统,可能需要安装其它一些库文件,移植方法也大致相同。

步骤如下:1).安装EPEL开发包使用管理员帐号登陆CentOS5.3,下载安装EPEL开发包[root@localhost ~]#-Uvh /pub/epel/5/i386/epel-release-5-3.noarch.rpm[root@localhost ~]#yum install git-all git-gui make gcc ncurses-devel bison byacc flex \gawk gettext ccache zlib-devel gtk2-devel lzo-devel pax-utilslibglade2-devel完成后,会在linux机上装上gcc编译器(4.1版本),以及git server等其它工具。

2).检测cc编译器是否链接到gcc上[root@localhost ~]# which gcc[root@localhost ~]# gcc –v以及[root@localhost ~]# which cc[root@localhost ~]# cc -v如果两者内容相同,则已链接好。

如果不是:[root@localhost ~]# cd /usr/bin[root@localhost bin]# ln -s gcc cc3). 安装nios2-linux-20090730.tar开发包下载地址: /pub/uclinux/nios2-linux-20090730.tar可以在windows下下载,下载完后复制到linux的root根目录下。

校验压缩包是否完整:[root@localhost ~]# sha1sum nios2-linux-20090730.tar校验结果1d99a54d36759cc6ce5f054ff0460b1bd370b0b6 nios2-linux-20090730.tar解压到当前目录下,即root目录下:[root@localhost ~]# tar xf nios2-linux-20090730.tar进入nios2-linux目录:[root@localhost ~]# cd nios2-linuxCheckout源代码:[root@localhost nios2-linux]# ./checkout等checkout完成后,nios2-linux-20090730.tar安装完成4).生成nios的交叉编译工具toolschain如果您对linux比较熟悉,可以自己生成toolschain,这是一个漫长的过程,首先需要安装gcc4.3.3,安装完gcc后,[root@localhost nios2-linux]# cd toolchain-build # CD 到toolchain-build 目录[root@localhost toolchain-build]# gcc --version #查看gcc 版本[root@localhost toolchain-build]# git clean -f -x -d #清除编译缓存[root@localhost toolchain-build]# make gcc elf2flt gdb-host幸运地话,会在1到2个小时后完成,不过,这步出错率极高。

StepByStep教程_ucLinux在SOPC上的移植

StepByStep教程_ucLinux在SOPC上的移植

清华大学‐友晶科技 EDA/SOPC 培训中心 StepByStep 教程 uclinux 在 SOPC 上的移植一、 前言 通过简单的例子说明 uclinux 在 SOPC 上移植的过程,仅为抛砖引玉,有了这个基础, 以后就能开发更复杂的程序。

网上这方面的例子及文档也很多, 但大多数是在 RedHat9.0 上完成的交叉编译及 uclinux 的内核编译,但 RedHat9.0 已经是很老的 linux 发行版,RedHat 公司在 04 年就停止了 对它 的发行及支持。

如今使用最广的 linux 发行版是 ubuntu(中文发音“乌班图”,其最新的稳 ) 定版本是 9.04(9.04 的意思是 09 年 4 月份发行,ubuntu 每隔 6 个月发行一个新版本,所以 下一个版本是 9.10,目前已出测试版) 。

我们的移植就选定在 ubuntu9.04 上完成,其移植过 程肯定不如在 RedHat9.0 上顺利,中途会遇到很多困难,现在把遇到的问题及排除方法也写 在下面,以方便大家回去自己研究之用。

二、 实验环境 1, 硬件设备:PC 机 +DE2 开发板; 2, 软件环境:WinXP+QuartusII9.0+NiosIIEDS9.0+ 虚拟机 VMware6.0+ubuntu9.04; 三、 需要准备的文件 1, 能跑 uclinux 的 SOPC 工程及其配置文件; 2, 交叉编译工具:nios2gcc.tar.bz2 3, uclinux 源代码: uClinux‐dist‐20070130.tar.gz (发行版本) uClinux‐dist‐20070130‐nios2‐02.diff.gz (内核补丁) 这此文件都已经放在 D:\Share\ucLinux 文件夹中,如图 1 所示。

(图 1) 其中, DE2_NET 是 QuartusII 工程文件夹, DE2_NET.sof 是编译后的下载文件, system_0.ptf 是 SOPC 的配置文件。

linux内核编译和移植

linux内核编译和移植

compressed/makefile的修改
ifeq ($(CONFIG_ARCH_S3C2410),y) OBJS += head-s3c2410.o endif
compressed/head-s3c2410.s
主要是初始化处理器的代码.(具体文件演示)
arch/arm/kernel/makefile
Linux内核移植
网络支持
support'配置中 配置中, 在'Network device support 配置中,添加选 support',并在' 项'Network device support ,并在'Ethernet(10 or 100Mbit)'中选择 中选择' cards',如下图所示选择 100Mbit) 中选择'Other ISA cards ,如下图所示选择 NE2000/NE1000 support 采用RTL8019 网卡芯片,为 NE2000兼容 网卡芯片,因 此,选择该网 卡
Linux内核移植
Linux调试手段
在Linux开发中,由于可能没有标准键盘和显示器支持,因 Linux开发中,由于可能没有标准键盘和显示器支持, 开发中 此,通常通过串口将显示信息发送到主机,由主机端超级终端 通常通过串口将显示信息发送到主机, 工具接收,以完成显示功能.同时在超级终端中可以输入数据, 工具接收,以完成显示功能.同时在超级终端中可以输入数据, 然后由Linux接收,以完成标准键盘功能. Linux接收 然后由Linux接收,以完成标准键盘功能. 调试过程中也可以通过串口将调试信息打印到超级终端, 调试过程中也可以通过串口将调试信息打印到超级终端, 这是Linux最有效和最简单的方法. 这是Linux最有效和最简单的方法. Linux最有效和最简单的方法

3.uClinux移植过程PPT课件

3.uClinux移植过程PPT课件

-
7
图1
-
8
安 装 的 时 候 建 议 最 好 不 要 安 装 到 C:\ 目录下,比如安装在D:\下。
在安装的过程中,会让用户选择安装 哪些包,这些包主要是确定开发环境, 编译工具等,如果不能确定具体需要哪 些包的话,而硬盘空间足够的情况下, 就选择全部安装。在出现的对话框的 ‘’All‘’的右边点击‘’Default‘’,直到 变成‘’Install‘’,如下图2所示
-
1
1.1.1.为安装Linux的宿主机建立交叉编译器
首先,要在宿主机上安装标准Linux操作系 统,如RedHat Linux(本书使用的是Redhat 7.2), 一定要确保计算机的网卡驱动、网络通讯配置 正常,有关如何在PC机上安装Linux操作系统 的问题,请参考有关资料和手册。
由于uClinux及它的相关开发工具集大多都 是来自自由软件组织的开放源代码,所以在软 件开发环境建立的时候,大多数软件都可以从 网络上直接下载获得,接下来就可以建立交叉 开发环境。
-
9
图2
-
10
Cygwin的安装过程时间比较长,请读 者耐心等待。当出现创建图标的画面点 击“完成”按钮之后,屏幕会有几秒钟 的闪动,出现类似下面的画面如图7.4所 示,这是在执行Cygwin安装后的脚本配 置 ,自动配置结束后,出现Cygwin成功 安装结束的提示框。桌面上会出现 Cygwin的图标。
建立建立uclinuxuclinux开収环境开収环境11建立交叉编译器通常的嵌入式系统的开収都是以装有linux的pc机作为宿主机来编译内核和用户应用程序的但是对于很多长期工作在windows操作系统下的用户来说突然切换到linux环境下去开収程序会感到诸多丌便因此对于丌同的开収者提供了在宿主机装有丌同操作系统时相应的交叉编译环境建立的方法

嵌入式操作系统移植(在Microblaze处理器上进行uclinux移植)

嵌入式操作系统移植(在Microblaze处理器上进行uclinux移植)

第五章嵌入式操作系统5.1 嵌入式操作系统简介5.1.1产生与发展嵌入式系统是计算机系统的一种,因而嵌入式系统也可以分为软硬件两部分,和桌面计算机系统一样,嵌入式操作系统(Embedded Operating System,EOS)是嵌入式软件系统的核心部分。

在一个完整的嵌入式系统中,嵌入式操作系统介于底层硬件和上层应用程序之间,它是整个系统中不可缺少的重要组成部分。

嵌入式操作系统与传统操作系统的基本功能是一致的,即:首先嵌入式操作系统必须能正确、高效地访问和管理底层的各种硬件资源,很好地处理资源管理中的冲突;其次嵌入式操作系统要能为应用程序提供功能完备、使用方便、与底层硬件细节无关的系统调用接口。

嵌入式操作系统伴随着嵌入式系统的发展经历了几个比较明显的的阶段:第一阶段:无操作系统,以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。

应用于一些专业性极强的工业控制系统中,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。

系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。

第二阶段:以嵌入式CPU为基础、简单操作系统为核心的嵌入式系统。

其种类繁多,通用性比较差;系统开销小,效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。

第三阶段:通用的嵌入式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统。

能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API);嵌入式应用软件丰富。

第四阶段:以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。

目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及互联网络技术与信息家电、工业控制技术等结合日益密切,基于Internet的嵌入式操作系统必将成为主要发展趋势。

Linux内核的移植PPT课件

Linux内核的移植PPT课件

• Libc Version:uClibc
• Customize kernel setting:y
• Customize vendor/user setting:y
• ③ 保存设置
• ④退出
第8页/共12页
• ⑶ make dep • ⑷ make lib_only • ⑸ make user_only • ⑹ make romfs • ⑺ make linux • ⑻ make image • (9) make linux • (10) make image • (11) make
第7页/共12页
移植步骤
• 11. 编译内核 • ⑴[root@localhost opt]#make distclean • ⑵[root@localhost opt]#make menuconfig • ①选择CPU • Vendor:Samsung • Product:44B0 • ② 选择内核
(该补丁的作用是针对s3c44b0x对系统进行配置)
➢ uClinux-dist是一个综合包,里面不仅包含Linux内核(包含和版本的内核), 还包括了厂商、文件系统等文件,这样我们在移植内核的时候,就不用再另外 移植文件系统。
第3页/共12页
移植步骤
• 1. 解压uClinux-dist源码包 命令: 解压后在当前目录下生成uClinux-dist目录,选择内核版本。
地址空间:0x02000000-0x03000000
第2页/共12页
移 植 到 博 创 U P - N E TA R M 3 0 0 0 开 发 板 的 步 骤
• 需要准备的软件包: 系 统 包 : u C l i n u x - d i s t- 2 0 0 4 0 4 0 8 . t a r. g z 补丁包:uClinux-20040408-ARMSYS.patch
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

-
3
交叉编译器安装: 下载: arm-elf-tools-20030314.sh 在超级用户环境下运行: sh arm-elf-tools-20030314.sh
-
4
1.1.2 为安装windows的宿主机建立交叉编译器
1. Cygwin软件介绍
为了在Windows下开发嵌入式操作系统应 用程序,可以在Windows环境下装上Cygwin软 件。Cygwin是一个在Windows平台上运行的 Unix模拟环境,是Cygnus Solutions公司开发的 自由软件。它对于学习掌握Unix/Linux操作环 境,或者进行某些特殊的开发工作,尤其是使 用GNU工具集在Windows上进行嵌入式系统开 发,非常有用。
1.建立uClinux开发环境
1.1 建立交叉编译器 通常的嵌入式系统的开发都是以装有Linux的 PC机作为宿主机来编译内核和用户应用程序的, 但是对于很多长期工作在Windows操作系统下 的用户来说,突然切换到Linux环境下去开发 程序会感到诸多不便,因此对于不同的开发者 提供了在宿主机装有不同操作系统时,相应的 交叉编译环境建立的方法。
-
7
图1
-
8
安 装 的 时 候 建 议 最 好 不 要 安 装 到 C:\ 目录下,比如安装在D:\下。
在安装的过程中,会让用户选择安装 哪些包,这些包主要是确定开发环境, 编译工具等,如果不能确定具体需要哪 些包的话,而硬盘空间足够的情况下, 就选择全部安装。在出现的对话框的 ‘’All‘’的右边点击‘’Default‘’,直到 变成‘’Install‘’,如下图2所示
-
1
1.1.1.为安装Linux的宿主机建立交叉编译器
首先,要在宿主机上安装标准Linux操作系 统,如RedHat Linux(本书使用的是Redhat 7.2), 一定要确保计算机的网卡驱动、网络通讯配置 正常,有关如何在PC机上安装Linux操作系统 的问题,请参考有关资料和手册。
由于uClinux及它的相关开发工具集大多都 是来自自由软件组织的开放源代码,所以在软 件开ห้องสมุดไป่ตู้环境建立的时候,大多数软件都可以从 网络上直接下载获得,接下来就可以建立交叉 开发环境。
-
9
图2
-
10
Cygwin的安装过程时间比较长,请读 者耐心等待。当出现创建图标的画面点 击“完成”按钮之后,屏幕会有几秒钟 的闪动,出现类似下面的画面如图7.4所 示,这是在执行Cygwin安装后的脚本配 置 ,自动配置结束后,出现Cygwin成功 安装结束的提示框。桌面上会出现 Cygwin的图标。
-
6
2. Cygwin软件的安装
要得到Cygwin的最新安装版本,请到Cygwin 的主页/上下载最新的 Cygwin,在该页面的右上角有‘’ Install Cygwin Now ‘’,点击此处,就会先下载一个 叫做setup.exe的GUI安装程序,用它能下载一 个完整的Cygwin。图1所示为在点击setup.exe 后出现”选择安装类型”对话框。建议用户 把Cygwin整个安装包先下载到本地,再进行 本地安装比较方便,即在下图先选择第二个 选项,等到将Cygwin完全下载后,再选择第 三个选项进行本地安装。
-
11
图3
-
12
3.在Cygwin下生成交叉编译器
在自己生成交叉编译器之前,首先对 cygwin进行一些设置。假设Cygwin安装在d目 录下,在打开Cygwin窗口之前,进入到 D:\cygwin目录,在这个目录下,有一个文件名 为cygwin.bat的批处理文件,编辑该文件,在 第一行后加入set CYGWIN=title ntea,这是因 为cygwin的启动批处理文件需要启动Unix文件 系统模拟。修改完毕后,保存后退出。双击桌 面上的Cygwin图标,打开后默认用户为在 Windows中登录的用户名(这里所使用的操作系 统是windows 2000 professsional),在如图4所示 的界面中,在根目录(即D:\cygwin)下键入:
-
2
简单地讲,交叉编译就是在一个平台上生成 可以在另一个平台上执行的代码。注意这里的平 台,实际上包含两个概念:体系结构 (Architecture)、操作系统(Operating System)。同 一个体系结构可以运行不同的操作系统;同样, 同一个操作系统也可以在不同的体系结构上运行。 举例来说,我们常说的x86 Linux平台实际上是 Intel x86体系结构和Linux for x86操作系统的统 称;而x86 WinNT平台实际上是Intel x86体系结 构和Windows NT for x86操作系统的简称。就本 项目所涉及到的目标硬件S3C44B而言,之所以 使用交叉编译是因为在该硬件上无法安装我们所 需的编译器,只好借助于宿主机,在宿主机上对 即将运行在目标机上的应用程序进行编译,生成 可在目标机上运行的代码格式。
-
5
Cygnus当初首先把gcc,gdb等开发工具进行了改进,
使它们能够生成并解释win32的目标文件。然后,把这些工 具移植到windows平台上去。一种方案是基于win32 API对 这些工具的源代码进行大幅修改,这样做显然需要大量工 作。因此,Cygnus采取了一种不同的方法——他们写了一 个共享库(就是cygwin1.dll),把win32 API中没有的Unix风 格的调用(如fork, spawn, signals, select, sockets等)封装在里 面,也就是说,他们基于win32 API写了一个Unix系统库的 模拟层。这样,只要把这些工具的源代码和这个共享库连 接到一起,就可以使用Unix主机上的交叉编译器来生成可 以在Windows平台上运行的工具集。以这些移植到 Windows平台上的开发工具为基础,Cygnus又逐步把其他 的工具(几乎不需要对源代码进行修改,只需要修改他们的 配置脚本)软件移植到Windows上来。这样,在Windows平 台上运行bash和开发工具、用户工具,感觉好像在Unix上 工作。 关于Cygwin实现的更详细描述,请参考 /cygwin-ug-net/cygwin-ug-net.html。
相关文档
最新文档