3.uClinux移植过程

合集下载

嵌入式LINUX内核移植步骤-1

嵌入式LINUX内核移植步骤-1
移植步骤:
1.解压内核
解压内核
[cpp] view plaincopy
1. root@ubuntu:/forlinx# tar zxvf linux-3.3.5.tar.gz
########################################################################################################
3.
select CPU_S3C6410
4.
select SAMSUNG_DEV_ADC
5.
select S3C_DEV_HSMMC
6.
select S3C_DEV_HSMMC1
7.
select S3C_DEV_I2C1
8.
select SAMSUNG_DEV_IDE
9.
select S3C_DEV_FB
[cpp] view plaincopy
1. obj-$(CONFIG_MACH_OK6410)
+= mach-ok6410.o
######################################################################################################## 修改顶层的 Makefile,第 195 和 196 行编辑
[cpp] view plaincopy
1. ARCH
?= arm
***************这里禁止在 arm 后出现空格或其它符号
2. CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux-

3.uClinux移植过程PPT课件

3.uClinux移植过程PPT课件

-
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操作系统 的问题,请参考有关资料和手册。

嵌入式linux系统移植的一般流程

嵌入式linux系统移植的一般流程

嵌入式linux系统移植的一般流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!嵌入式Linux系统移植的一般流程详解嵌入式Linux系统移植是将Linux操作系统适应并运行在特定硬件平台上的过程,这对于开发和优化嵌入式设备的功能和性能至关重要。

uClinux在LPC2200上移植方法探讨

uClinux在LPC2200上移植方法探讨

uClinux在LPC2200上移植方法探讨摘要:uclinux 是一种开放源代码的操作系统,具有良好的可移植性和广泛的兼容性。

lpc2200作为一款不带内存管理单元的嵌入式微处理器,为了能充分利用linux 提供的稳定性和开放性,可以把uclinux 内核移植到lpc2200的处理器中。

本文以magic2200实验箱为基础论述uclinux在lpc2200系统上的移植过程。

关键词:magic2200,lpc2200,uclinux,移植,内核下载1引言uclinux 从linux 2.0/2.4 内核派生而来,它是专门针对没有内存管理单元mmu的cpu,并且为嵌入式系统做了许多小型化的工作,通常用于具有很少内存或flash 的嵌入式操作系统。

magic2200实验箱的核心板控制器是lpc2200芯片,该芯片是飞利浦公司的16/32位risc微控制器,不带内存管理单元mmu,内含一个由arm公司设计的16/32 位arm7tdmi risc处理器核。

本文论述uclinux 在其上的移植过程。

2.建立交叉开发环境2.1 建立开发环境宿主机是运行linux的pc或者服务器。

由于linux版本众多,各版本之间存在差异,出于兼容性考虑,推荐安装redhat linux 9.0。

由于目标板平台处理器是arm,因而需要安装gcc针对arm的编译器。

适用于uclinux的编译器为arm-elf-gccarm-elf-gcc的安装步骤:1.将arm-elf-tools-20040427.sh拷贝到宿主机的目录/usr/src 下,为该文件增加可执行权限,执行如下命令:#chmod 755 arm-elf-tools-20040427.sh2.安装arm-elf-gcc。

3.添加交叉编译器的路径。

2.2安装uclinux1.解压uclinux源码包执行命令2.为magicarm2200开发板和lpc2200芯片打补丁。

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) 表示内核参数的传递地址。

linux移植的一般过程

linux移植的一般过程

linux移植的一般过程
Linux移植是将Linux操作系统移植到特定平台的过程。

一般来说,Linux移植的过程包括以下几个步骤:
1. 确定目标平台的处理器架构:确定目标平台的处理器架构是非常重要的,因为Linux内核需要针对不同的处理器架构进行编译。

2. 准备移植工具链:移植工具链包括编译器、链接器、调试器等,需要根据目标平台的处理器架构来选择相应的工具链。

3. 选择适合的内核版本:选择适合目标平台的内核版本是非常重要的,需要根据目标平台的处理器架构、硬件设备等来选择合适的内核版本。

4. 配置内核:根据目标平台的硬件设备和需求来配置内核,包括选择驱动程序、文件系统等。

5. 编译内核:使用移植工具链编译内核源代码。

6. 移植文件系统:根据目标平台的文件系统来移植相应的文件系统。

7. 测试:进行测试以确保Linux操作系统在目标平台上的正常运行。

总的来说,Linux移植是一个非常复杂的过程,需要对目标平台的硬件设备、处理器架构、文件系统等有深入的了解。

同时,需要具备一定的编译、调试等技能。

- 1 -。

第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)

描述Linux内核的移植过程

描述Linux内核的移植过程

描述Linux内核的移植过程
Linux内核的移植过程可以分为以下几个步骤:
1. 确定目标平台:首先需要确定要将Linux内核移植到哪个目标平台上,这个平台可以是嵌入式设备、服务器、桌面电脑等。

2. 获取源代码:从Linux官网或其他开源代码库获取Linux内核的源代码。

3. 配置内核:根据目标平台的硬件特性和需求,对内核进行配置。

可以使用make menuconfig、make xconfig或make config等命令进行配置。

4. 编译内核:使用交叉编译工具链对内核进行编译。

交叉编译工具链是一组针对特定平台的编译器、链接器、调试器等工具,可以在开发主机上编译生成目标平台上的可执行文件。

5. 生成镜像文件:将编译生成的内核、设备树、启动程序等文件打包成一个镜像文件。

镜像文件的格式可以是uImage、zImage、vmlinux等。

6. 烧录镜像文件:将生成的镜像文件烧录到目标平台的存储设备上,例如闪存、SD卡、硬盘等。

可以使用dd、fastboot、flash等命令进行烧录。

7. 启动内核:将目标平台连接到开发主机,通过串口或网络连接进行调试和启动。

可以使用bootloader或者直接从存储设备启动内核。

8. 调试内核:在目标平台上运行内核时,可能会遇到各种问题,例如驱动不兼容、内存泄漏、死锁等。

需要使用调试工具对内核进行调试,例如gdb、kgdb、strace等。

以上就是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移植的一般过程

linux移植的一般过程
1.硬件平台的分析:对要移植的硬件平台进行分析,了解其处理器架构、内存结构、设备接口等硬件特性。

2. 内核选择和配置:根据硬件平台的特性选择相应的Linux内核版本,并进行配置,包括启用或禁用某些功能、添加驱动程序等。

3. 引导程序开发:根据硬件平台的启动方式,开发或适配引导程序(bootloader),负责加载内核和设备驱动程序。

4. 设备驱动程序的开发或适配:根据硬件平台的设备特性,开发或适配相应的设备驱动程序,使其能够被内核识别和使用。

5. 文件系统的制作:根据硬件平台的存储设备特性,制作相应的文件系统,包括文件系统类型、文件系统结构、文件系统大小等。

6. 应用程序的移植:根据硬件平台的特性,移植相应的应用程序,确保其能够正常运行。

7. 调试和优化:进行测试和调试,解决可能出现的问题,并优化系统性能。

8. 发布和维护:完成移植后,进行发布和维护工作,包括文档编写、系统更新等。

- 1 -。

嵌入式linux操作系统移植

嵌入式linux操作系统移植

嵌入式linux操作系统移植嵌入式Linux操作系统移植是一个广泛应用的开发任务,主要用于将Linux操作系统移植到特定的嵌入式设备上。

在嵌入式系统开发中,这种移植可以帮助开发者在一个有限资源环境中实现更高效、更可靠的运行。

嵌入式Linux操作系统有许多优势。

它是一个开源项目,有着广泛的开发者和社区支持。

这意味着有大量的资源和文档可供参考,有利于降低开发难度和成本。

Linux具有良好的稳定性和可靠性,能在各种硬件平台上运行。

嵌入式Linux可以提供类似PC的环境,但需要的资源更少,效率更高。

需要选择一个适合设备硬件平台和应用程序需求的Linux内核版本。

这可能包括ARM、MIPS或其他架构。

选择后,下载并解压相应的内核源代码。

配置内核是移植过程中的关键步骤。

通过make menuconfig或make config命令,可以针对特定硬件平台和应用程序需求进行配置。

这包括处理器类型、内存大小、设备驱动、文件系统等。

针对硬件平台编写或修改设备驱动程序,以确保Linux内核能正确识别和访问设备。

这通常需要了解硬件的工作原理和Linux驱动程序开发的相关知识。

使用make命令编译内核和设备驱动程序。

成功后,生成可烧录到设备上的映像文件(如zImage或initramfs)。

将映像文件烧录到目标设备并启动。

嵌入式Linux操作系统的移植是一项复杂的任务,需要深入了解硬件平台、操作系统和驱动程序开发的知识。

还需要注意以下几点:有限的资源:嵌入式设备的资源通常比PC少得多,如RAM、Flash等。

这需要在移植过程中优化资源的使用。

硬件兼容性:确保选择的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环境下去开収程序会感到诸多丌便因此对于丌同的开収者提供了在宿主机装有丌同操作系统时相应的交叉编译环境建立的方法

移植uClinux到44B0X的实现

移植uClinux到44B0X的实现

移植uClinux到S3C44B0X平台的实现方法和要点uClinux作为支持无MMU MCU的操作系统,并且借助其支持的丰富的MCU种类,已经广泛应用于各种嵌入式系统领域。

S3C44B0X是三星公司生成的集成了ARM7TDMI CPU 核以及丰富的外围接口的MCU。

它以很高的性价比占领了我国低端嵌入式市场的很大一块的阵地。

目前国内已经有许多嵌入式系统设计提供商成功的将uClinux操作系统成功的移植到以S3C44B0X为核心的嵌入式平台上。

并且有许多成熟的捆绑方案提供。

获得方案的工程师只需关注外围驱动程序和应用程序的开发。

如果想深入的研究S3C44B0X系统结构以及真正具备uClinux移植的经验就要求工程师亲自动手,对相关的源码的进行修改和理解。

本文介绍了在S3C44B0X平台实现uClinux的几种实现方法,为各位自己动手实现uClinux 的移植提供借鉴。

一、准备工作进行uClinux移植之前,我们要作一些准备工作。

首先,要有一块基于S3C44B0X MCU的硬件电路板。

该硬件电路板应该最少具备:2M NorFlash、1个串行口、8M以上的SDRAM。

并且确保其上电工作正常。

其次,就是要搜集相关的源码和工具。

源码主要包括:支持44B0平台的uClinux的源码、支持uClinux的Bootloader源码。

工具包括:串口下载工具DNW、通过JTAG烧写工具和三星公司提供的PLL参数计算工具PLLSET.exe、linux下的arm交叉编译工具包arm-elf-tools-20030314.sh。

支持44B0平台的uClinux源码的获得途径一般有三个:■从uClinux网站上获得最新的uClinux源码压缩包uClinux-dist-20040408.tar.gz。

由于uClinux项目目前并不直接支持Samsung公司的44B0芯片。

然后,获得针对44B0的源码补丁文件。

较完整的44B0补丁文件uClinux-20040408-ARMSY.patch可以从立宇泰公司的网站上获得。

嵌入式linux内核移植步骤

嵌入式linux内核移植步骤

嵌入式linux内核移植步骤嵌入式Linux内核移植步骤嵌入式Linux内核移植是将Linux内核移植到特定的硬件平台上的过程。

在进行嵌入式Linux内核移植之前,需要先了解目标硬件平台的相关信息,包括处理器架构、硬件接口、设备驱动等。

本文将介绍嵌入式Linux内核移植的主要步骤,以帮助读者了解移植的过程。

1. 获取源代码需要从官方或其他可靠的渠道获取Linux内核的源代码。

可以选择下载最新版本的稳定内核,也可以根据需要选择特定版本的内核。

获取源代码后,解压到本地目录。

2. 配置内核在进行内核配置之前,需要根据目标硬件平台选择适当的配置文件。

内核配置文件包含了编译内核所需的各种选项和参数。

可以使用make menuconfig或make defconfig命令进行内核配置。

在配置过程中,需要根据目标硬件平台的特点进行相应的配置,如选择正确的处理器类型、设备驱动等。

3. 编译内核配置完成后,可以使用make命令编译内核。

编译过程可能会比较耗时,需要根据计算机性能进行相应的等待。

编译完成后,会生成vmlinuz和相关的模块文件。

4. 编译设备树设备树是描述硬件平台的一种数据结构,用于在内核启动时传递硬件信息给内核。

如果目标硬件平台需要使用设备树,需要将设备树源文件编译为二进制文件。

可以使用device tree compiler(dtc)工具来编译设备树。

5. 烧录内核内核编译完成后,需要将生成的vmlinuz文件烧录到目标硬件平台上。

根据硬件平台的不同,可以使用不同的烧录工具,如dd命令、fastboot等。

烧录完成后,可以通过串口或其他方式查看内核启动信息。

6. 配置文件系统内核烧录完成后,需要为目标硬件平台配置文件系统。

可以选择使用已有的文件系统,如busybox、buildroot等,也可以根据需求自行定制文件系统。

配置文件系统包括选择合适的文件系统类型、添加必要的应用程序和驱动、配置网络等。

基于S3C44BOX的uClinux的移植

基于S3C44BOX的uClinux的移植

第10卷第4期2007年10月西安文理学院学报:自然科学版Journal of Xi ’an University of Arts &Science (Nat Sci Ed )Vol.10 No.4Oct.2007文章编号:100825564(2007)0420074204收稿日期:2007205225作者简介:王长安(1963—),男,陕西西安人,陕西警官职业学院公安信息技术系讲师.基于S3C44BOX 的uClinux 的移植王长安(陕西警官职业学院公安信息技术系,陕西西安 710043)摘 要:uClinux 是一种支持多种体系结构处理器的操作系统,有很强的移植性.文中详细描述了将uClinux 移植到基于S3C44BOX 处理器目标板上的方法与过程.讨论了在该开发板上Bootloader 的设计实现以及uClinux 内核的移植方法.关键词:嵌入式;uClinux ;ARM ;移植中图分类号:TP311 文献标识码:A1 引 言嵌入式操作系统一般都不是为特定的处理器设计的,不能通过简单的下载方式直接将厂商提供的内核的二进制文件下载到嵌入式系统的ROM 中运行,要使得某个操作系统在特定的CPU 上运行起来,必须修改一些操作系统内核中与硬件相关的文件内容.例如主频的设置,I/O 口的地址,存储映射方式等等.2 操作系统内核配置由于新的处理器不断出现,如果重新进行移植工作则会十分困难,此时,可以借助相似硬件结构的其他型号处理器的移植经验,将之应用到新的处理器型号上.本设计中采用的S3C44BOX 的移植工作便可以在早己完成的同类型产品S3C4510B 的基础上进行.S3C4510B 和S3C44BOX 都属于SamSung 公司生产的ARM7TDM I 核的芯片,在很多硬件结构上都很类似.因此,移植到S3C44BOX 上的工作就可以在此基础上开始.下面对一些内核中需要修改的参数进行介绍.2.1 修改压缩内核运行地址1)Arch/armnommu/Makefile 中的TEXTADDR 决定内核起始运行地址,即linux.rom 应下载到Flash 中的位置,该值应为OxOc00800002)修改Arch/armnommu/boot/Makefile ,增加ifeq ($(CONFIG ARCHes S3C44B0),y )ZRELADDR =OxOc008000ZTEXTADDR =OxOc100000endif其中的ZRELADDR 决定内核的运行地址.ZTEXTADDR 为不带bootloader 的压缩内核文件烧入Flash 中的固定地址,即从哪个位置开始执行内核.在这里把内核运行地址改为0x0c008000.2.2 修改硬件寄存器地址和IRQ在include/asm -armnommu/arch -s3c44bOx/HARDWARE.H 中加入S3C44BOX 的寄存器地址.如#define SYSCF G REG L (0x000000)在include/asm -armnommu/arch -s3c44bOx/IRQ.h 加入各个中断的IRQ 号.2.3 修改处理器配置选项修改/linux -2.4.x/arch/armnommu/config.in ,修改其中的ARM 处理器的主频和存储器大小及起始地址的定义.增加如下行:define int CONFIG ARM CL K 64000000#72000000#define bool CONFIG SERIAL S3C44BOX y#define int CONFIG FORCE MAX ZON EORDER 5If [“$CONFIG SET M EM PARAM ”=“n ”];thendefine hex DRAM BASE OxOC000000define hex DRAM SIZE 0x00800000define hex FLASH M EM BASE 0x00000000define hex FLASH SIZE 0x00200000fi2.4 修改内核起始地址修改文件:/linux -2.4.x/arch/armnommu/Makefile ,修改如下内容:ifeq ($(CONFIG ARCH S3C44B0),y )TEXTADDR =OxOc008000MACHIN E ==S3C44BOXINCDIR =$(MACHIN E )endif2.5 ROMFS 定位修改修改/linux -2.4.x/drivers/block/blkmem.c ,增加#define ROMFS BASE (0x0c700000)#ifdef CONFIG ARCH S3C44B0{0,ROMFS -ASE ,-1},#endif2.6修改存储空间配置在文件/linux -2.4.x/include/asm -armnommu/arch -s3c44b0/memory.h 中增加如下内容:#define PHYS OFFSET (DRAM BASE )#define PA GE OFFSET PHYS OFFSET#define END M EM (DRAM BASE +DRAM SIZE )#endif2.7 定义二级异常中断矢量表的起始地址修改/linux -2.4.x/include/asm -armnommu/proc -armv/system.h ,增加:#ifdef CONFIG ARCH S3C44B0#undef vectorses base#define vectors based (0x0c000000)#endif即定义了二级异常中断矢量表的起始地址,以便重新映射中断向量.2.8 修改网络控制器基地址修改修改/linux -2.4.x/include/rim -armnommu/armne.h 增加:57 第4期王长安:基于S3C44BOX 的uClinux 的移植67西安文理学院学报:自然科学版第10卷#define N E2000 ODDOFFSET0x00000020#define N E2000 ADDR0x06000000因为R TL8019AS处于bank3区,该区从0x6000000开始编址,并且对奇地址的寄存器进行操作时,必须偏移0x20.3 Bootloader的实现Bootloader的主要功能是初始化一些必要的硬件,主要是芯片的时钟和存储器以及一些外设.然后根据具体的硬件设置相应修改嵌入式操作系统内核中涉及到与硬件进行交互的文件.必须按照设计的嵌入式系统的硬件结构进行修改,否则就不能在该平台上运行嵌入式操作系统.如果必要,还必须编写板级支持包(Board Support Package,BSP).板级支持包在操作系统和硬件之间充当一个转换层的角色,操作系统必须通过BSP对硬件进行控制.最后,借助Bootloader或者J TA G口将操作系统的镜像文件下载到嵌入式系统的存储系统.本系统的Bootloader实现的功能主要包括两个阶段:第一阶段是硬件初始化和软件运行环境初始化,该阶段主要是负责建立主机(一般是PC机)和目标机(嵌入式系统)的以太网通信,包括初始化以太网控制器R TL8019AS及设置网络参数如IP等,通信建立后,目标机就可以通过tftp协议下载内核、文件系统和应用程序等到Flash的固定位置,即所谓的固化,同时主机也可以将Flash中的映像文件传送到主机的硬盘上.第二个阶段就是复制内核到SDRAM,同时复制中断向量表,接着直接加载uClinux内核,即直接跳转到内核在SDRAM中的首地址,将系统交由内核管理,uClinux所需要的参数可以由ARM寄存器RO,R1,R2传递,也可以将参数列表存于SDRAM中,将列表的首地址传递给内核,该过程由heads完成.在Bootloader的编写过程中,地址映射表的配置是Bootloader需要关注的问题.地址映射表的配置包括设置Flash地址空间、SDRAM地址空间、外部I/O地址范围和处理器寄存器地址范围. ARM7TDM I处理器在加电后首先执行地址0x0处的代码,因此在加电启动时,首先将存储了Bootload2 er的Flash地址空间设置为几个区间,分别存放Bootloader,uClinux内核镜像和ROMFS文件系统镜像.接着将SDRAM的地址空间设置为Oxc000000-Oxcffffff,并且设置内核的复制地址.由于S3C44BOX的地址空间不可重新映射,因此本次设计的Bootloader也不考虑这方面的问题.若对于可重新映射地址空间的处理器,Bootloader还需要在内核复制到SDRAM中后,将SDRAM的地址空间映射到0x0,这样系统重启后处理器就会从SDRAM开始运行.在Bootloader将内核复制到SDRAM中去,并跳转至内核的首地址后,剩下的工作就由内核的引导程序完成.在uClinux的发布包中,该引导程序的代码在linux/arch/armnommu/boot/compressed目录,其中heads的作用最关键,它完成了加载内核的大部分工作,另外内核的加载还必须知道系统必要的硬件信息,该硬件信息在hardware.h中并被heads所引用.当Bootloade:将控制权交给内核的引导程序时,第一个执行的程序就是heads.heads首先配置S3C44BOX的系统寄存器;再初始化S3C44BOX的ROM,RAM以及总线等控制寄存器,将Flash和SDRAM的地址范围分别设置为0x0-0x200000和0xc000000-0xcffffff;接着将内核的映像文件从Flash拷贝到SDRAM,然后调用misc.c中的解压内核函数(decompress kernel),对拷贝到SDRAM的内核映像文件进行解压缩,最后跳转到执行调用内核函数(call kernel),将控制权交给解压后的uClinux系统.若内核映像是非压缩型的,则不需要进行解压缩而直接跳转到call kernel.执行call kernel函数实际上是执行linux/init/main.c中的start kernel函数,包括处理器结构的初始化、中断的初始化、进程相关的初始化以及内存初始化等重要工作.4 系统编译在编译uClinux的内核之前,首先必须具备交叉编译环境,即一台主机,以及目标板.PC机可以安装Linux 操作系统,也可以在Windows 操作系统上安装Linux 的虚拟机.软件上则必须在PC 机建立交叉编译环境,本文不再叙述.在完成系统配置后,执行make dep 设置各个文件之间的依赖关系.这之后运行make lib only 和make user only 编译库文件和用户程序.编译完后运行make romfs 生成romfs 文件系统目录.之后执行make imag.生成映像文件.在第一次运行时会出现以下错误:arm -elf -objcopy :/home/uClinux -Release/linux -2.4.x/linux :No such file or directorymake[1]:333[image ]Error 1make[1]:Leaving directory ’/home/uClinux -Release/vendors/Samsung/44BOmake :333[image ]Error 2这是由于第一次编译的时候尚未生成romfs.o ,此时可以执行make linux 然后再执行make image 就可以编译出映像文件.此时内核的编译工作完成.当uCLinux 内核比较稳定并不需要经常修改的时候,可以将它下载到开发板中的Flash 中.此时可以继续为开发板开发其他的应用,然后将应用加入到romfs 中.当应用业务不需要经常修改的时候它也被下载到开发板中的Flash 中.5 结 语嵌入式系统是继网络技术之后,又一个新的技术发展方向.由于嵌入式uClinux 系统具有代码开放、费用低、体积小、性能强、功耗低、可靠性高以及网络应用丰富等突出特征,目前已经广泛地被应用于军事国防、消费电子、网络通信、工业控制等各个领域,具有庞大的市场前景.随着计算机技术与通信技术的发展,uClinux 系统的研究与开发会有着越来越重要的实际意义.[参 考 文 献][1] 李善平,刘文峰,李程远,等.Linux 内核2.4版.源代码分析大全[M ].北京:机械工业出版社,2002.[2] 陈渝,李明,杨哗,等.源码开放的嵌入式系统软件分析与实践[M ].北京:北京航空航天大学出版社,2004.[3] 李善平,刘文峰,王涣龙,等.Linux 与嵌入式系统[M ].北京:清华大学出版社,2003.[4] 邹思轶.嵌入式Linux 设计与应用[M ].北京:清华大学出版社,2002.[5] uClinux 系统特点及开发调试等相关技术资料[G /OL ].uClinux 官方网站:http ://www.uclinux.orm ,2006-06-10.[责任编辑 王新奇]T ransplant of uClinux B ased on S 3C 44BOXWAN G Chang 2an(Department of Public Security Information Technology ,Shaanxi Police Officer Vocational College ,Xi ’an 710043,China )Abstract :uClinux support is a kind of processor architecture operating system ,witha strong portability.The transplant will be based on uClinux S3C44BOX processor target boards.The design and realization of uClinux kernel method of transplant development board Bootloader are discussed.K ey w ords :embedded ;uClinux ;ARM ;transplant 77 第4期王长安:基于S3C44BOX 的uClinux 的移植。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图5
图6
图7
图8
2.键入命令:make dep 该命令用于寻找依存关系。 3. 键入命令:make clean 该命令清除以前构造内核时生成的所有目标文件, 模块文件和一些临时文件。 4 键入命令:make lib_only 该命令编译库文件。 5 键入命令:make user_only 该命令编译用户应用程序文件。 6 键入命令:make romfs 该命令生成romfs文件系统。 7 键入命令:make image
图4
4.在Cygwin环境下建立交叉编译器 在根目录下键入: tar xvzf arm-elf-tools-cygwin20051102.tar.gz 进行交叉编译器的解压,解压完毕后在 / usr/local/bin/ 目 录 下 可 以 看 到 各 种 GNU 工 具 。 有 了 交 叉 编 译 器 后 , 熟 悉 Windows的读者 就可以 在Windows下 编译在uClinux上运行的应用程序了。
1. 键入命令: make menuconfig 内核配置。该命令执行完毕后生成文件.config, 它 保 存 这 个 配 置 信 息 。 下 一 次 再 做 make menuconfig的时候将产生新的.config文件, 原来的.config被改名为.config.old。 此时会出现菜单配置对话框,要求进行目 标平台的选择,如图5所示,输入回车后,出现 供选择的具体的供应商和产品列表,在这里选 择:Samsung/4510B,如图6所示,在库的选择 上,我们选择uC-libc,保存好设置后,存盘退 出。另外如果选择customize kernel setting 和 customize vender/user setting,会出现 内核和应用程序配置画面,如图7和图8。
注意做到这一步的时候可能会出现错误的信 息提示,类似于: arm-elf-objcopy: /home/nie/uClinuxSamsung/linux-2.4.x/linux: No such file or directory make[1]: *** [image] Error 1 make[1]: Leaving directory `/home/nie/uClinuxSamsung/vendors/Samsung/4510B' make: *** [image] Error 2 这是因为第一次编译时还没有romfs.o,所以出错, 等romfs.o编译好了以后,如果再进行内核的编 译,就不会出现这个错误信息了。它完全不影响 内核的编译,可以完全不必理会这个错误信息。 继续进行编译工作。
1.1.1.为安装 .为安装Linux的宿主机建立交叉编译器 的宿主机建立交叉编译器 首先,要在宿主机上安装标准Linux操作系 统,如RedHat Linux(本书使用的是Redhat 7.2), 一定要确保计算机的网卡驱动、网络通讯配置 正常,有关如何在PC机上安装Linux操作系统 的问题,请参考有关资料和手册。 由于uClinux及它的相关开发工具集大多都 是来自自由软件组织的开放源代码,所以在软 件开发环境建立的时候,大多数软件都可以从 网络上直接下载获得,接下来就可以建立交叉 开发环境。
从上下载最新的 uclinux-dist-200xxxxx.tar.gz文件。这个文 件是包含uclinux除编译器外的完整开发 包,包括内核,应用程序,根文件系统 等。 解压: tar xzvf uclinux-dist-200xxxxx.tar.gz 解压完毕后,就会在用户目录下生成 uClinux-dist目录,以下命令进入到该目 录中 $ cd uClinux-dist
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。
交叉编译器安装: 下载: arm-elf-tools-20030314.sh 在超级用户环境下运行: sh arm-elf-tools为安装windows的宿主机建立交叉编译器 1. Cygwin软件介绍 为了在Windows下开发嵌入式操作系统应 用程序,可以在Windows环境下装上Cygwin软 件。Cygwin是一个在Windows平台上运行的 Unix模拟环境,是Cygnus Solutions公司开发的 自由软件。它对于学习掌握Unix/Linux操作环 境,或者进行某些特殊的开发工作,尤其是使 用GNU工具集在Windows上进行嵌入式系统开 发,非常有用。
2.编译uClinux内核 2.编译uClinux内核
作为操作系统的核心,uClinux内核负责管理系统 的进程、内存、设备驱动程序、文件系统和网络系统, 决定着系统的各种性能。uClinux内核的源代码是完全 公开的,任何人只要遵循GPL,就可以对内核加以修 改并发布给他人使用,因此,在广大编程人员的支持 下,uClinux的内核版本不断更新,新的内核修改了旧 的内核的缺陷,并增加了许多新的特性,用户如果想 在自己的系统中使用这些新的特性,或想根据自己的 系统量身定制更高效、更稳定可靠的内核,就需要重 新编译内核。一般说来,更新的内核版本会支持更多 的硬件,具有更好的进程管理能力,运行速度会更快、 更稳定,并且一般都会修复旧版本中已发现的缺陷等, 因此,经常选择升级更新的系统内核是必要的 。
简单地讲,交叉编译就是在一个平台上生成 可以在另一个平台上执行的代码。注意这里的平 台,实际上包含两个概念:体系结构 (Architecture)、操作系统(Operating System)。同 一个体系结构可以运行不同的操作系统;同样, 同一个操作系统也可以在不同的体系结构上运行。 举例来说,我们常说的x86 Linux平台实际上是 Intel x86体系结构和Linux for x86操作系统的统 称;而x86 WinNT平台实际上是Intel x86体系结 构和Windows NT for x86操作系统的简称。就本 项目所涉及到的目标硬件S3C44B而言,之所以 使用交叉编译是因为在该硬件上无法安装我们所 需的编译器,只好借助于宿主机,在宿主机上对 即将运行在目标机上的应用程序进行编译,生成 可在目标机上运行的代码格式。
图2
Cygwin的安装过程时间比较长,请读 者耐心等待。当出现创建图标的画面点 击“完成”按钮之后,屏幕会有几秒钟 的闪动,出现类似下面的画面如图7.4所 示,这是在执行Cygwin安装后的脚本配 置 ,自动配置结束后,出现Cygwin成功 安装结束的提示框。桌面上会出现 Cygwin的图标。
图3
3.在Cygwin下生成交叉编译器 在自己生成交叉编译器之前,首先对 cygwin进行一些设置。假设Cygwin安装在d目 录下,在打开Cygwin窗口之前,进入到 D:\cygwin目录,在这个目录下,有一个文件名 为cygwin.bat的批处理文件,编辑该文件,在 第一行后加入set CYGWIN=title ntea,这是因 为cygwin的启动批处理文件需要启动Unix文件 系统模拟。修改完毕后,保存后退出。双击桌 面上的Cygwin图标,打开后默认用户为在 Windows中登录的用户名(这里所使用的操作系 统是windows 2000 professsional),在如图4所示 的界面中,在根目录(即D:\cygwin)下键入:
这里,需要注意的是在生成交叉编译器的 过程中,可能会遇到多次错误,应该根据给出 的出错信息,进行相应文件的修改。由于习惯 上的原因,linux下的压缩文件一般都是 以.tar.gz或者.tgz结尾的,虽然用windows下的 解压软件比如winzip或者winrar可以解压这些文 件,但是推荐用户不要用这些软件在windows 下解压,因为这样可能会造成某些信息的丢失。
cd bin mv sh.exe sh-original.exe ln –s bash.exe sh.exe 做上述几步的原因是因为大多数linux 系统将sh符号链接到bash,Cygwin上的 sh.exe和bash.exe是不同的,因此必须用 bash 代替sh
从网站/pub/uClinux/ arm-elf-tools/tools-20030314/上下载生成工具链 的各种源码,根据脚本文件build-uclinuxtools.sh 建立可在windows下编译用户应用程序 的交叉编译器,生成的交叉编译器最终被打包 为arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件, 其中yyyy为生成交叉编译器的年,mm为生成 交叉编译器的月份,dd 为日期。
uClinux内核采用模块化的组织结构,通过增 减内核模块的方式来增减系统的功能,因此,正 确合理的设置内核的功能模块,从而只编译系统 所需功能的代码,会对系统的运行进行如下几个 方面的优化: — 用户根据自身硬件系统的实际情况定制编 译的内核因为具有更少的代码,一般会获得更高 的运行速度。 — 由于内核代码在系统运行时会常驻内存, 因此,更短小的内核会获得更多的用户内存空间。 减少内核中不必要的功能模块,可以减少系 统的漏洞,从而增加系统的稳定性和安全性。
相关文档
最新文档