uclinux 详细步骤

合集下载

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

7_uClinux简介

7_uClinux简介

uClinux开发环境建立
在linux环境下建立uClinux开发环境


安装编译器
下载并安装uClinux源代码
uClinux开发环境建立
安装编译器
如果采用arm-elf-tools交叉编译环境arm-elf-tools20030314.sh,该工具可以从 /pub/uClinux/arm-elf-tools/ 上下载。 在Linux控制台下执行以下命令:
uClinux开发环境建立
Windows+VMWare虚拟机环境下的uClinux开发
VMWare是运行于Windows中的一个应用程序,是 一个虚拟机,可以在其上安装多个操作系统,相当于在 Windows上安装一个虚拟的操作系统。 如果需要使用只支持Windows环境下调试的调试器, 可以通过在VMWare中安装linux虚拟机,在该虚拟机中进 行编辑、编译uClinux,然后通过网络(ftp、nfs、ssh)等 手段传送到Windows中,进行调试,这样编译和调试可以 分别在linux和windows环境下但是是在一台电脑中完成, 它的缺点是系统要求较高,运行速度慢。 也可以在两台电脑中分别安装linux和windows,分别 实现编译和调试。
uClinux开发环境建立
在Windows+Cygwin环境下进行uClinux开发
Cygwin是运行于Windows中的一个应用程序,它可 以使得Linux环境下的应用程序可以在Cygwin环境下进 行编译,即可以在Windows进行编译。 uClinux内核配置和编译等在Cygwin环境下运行,程 序编辑和调试都在Windows环境下进行,必须采用支持 Windows下进行linux调试的调试器(如ADT1000A)才 能进行调试,否则只能通过BOOTLOADER进行简单的 程序烧写运行等 调试信息的打印可以通过串口完成,使用Windows 上的超级终端工具接收并显示目标板传送的打印信息

uClinux 的编译和运行

uClinux 的编译和运行

uClinux 的编译和运行说明:这个编译过程是基于uClinux-dist-51EDA.tar.bz2这个文件可以在51EDA论坛的客服中心找到。

1.创建开发环境首先需要编译的环境。

我们最好使用Linux作为开发平台,因为Linux以及uClinux的开发者们基本都是在Linux下完成的开发。

为了能够编译uClinux,我们需要下载uClinux的编译器。

这个文件可以在uClinux的官方网站得到,也可以在论坛的客服中心下载。

官方的下载地址是:/pub/uClinux/arm-elf-tools/arm-elf-tools-20030314.sh但是这个网站的速度比较慢,因此您也可以在论坛的客服中心下载。

是一样的文件。

在这里需要注意的是,虽然同为gcc和binutils工具,但是必须使用uClinux发布的版本,因为这个gcc和binutils都是为了能够编译FLAT格式的文件而订制的,另外也加入了ARM对PIC(Position Independent Code,位置无关代码)的支持。

PIC的支持是用来编译动态库或者XIP模式的可执行文件。

关于XIP的介绍有一篇文章:/article.pl?sid=02/08/28/0434210大家可以了解一下XIP。

但是由于XIP并不是很稳定,所以在我们发布的uClinux版本中并没有使用这个技术。

然后,将下载得到的文件,是一个sh文件。

这是一个自解压的文件(就好比Windows 下面的自解压zip或者rar一样)。

为了能够运行,我们需要:./arm-elf-tools-20030314.sh这样如果不能运行的话,那应该使用下面的命令:chmod 755 arm-elf-tools-20030314.sh得到了编译环境,就可以编译源代码了。

当然,首先要把代码解压缩到你的目录下面:tar xjvf uClinux-dist-51EDA.tar.bz2它会把全部的文件解压缩到uClinux-dist的目录下。

uCLinux开发介绍

uCLinux开发介绍

uCLinux开发介绍严永红Linux是当前一种非常受欢迎的操作系统,它与UNIX系统兼容,并开放源代码。

它包含所有现代操作系统所具有的一切特性,包括多任务,虚拟内存,代码共享,按需载入,内存管理,以及TCP/IP网络。

并且,它遵循POSIX标准,只要是遵循POSIX API的应用程序很容易被移植。

目前,随着嵌入式系统的蓬勃发展。

Linux也已对嵌入式系统的开发产生具大影响。

大多数流行的CPU都被移植上去,ARM, PowerPC , MIPS, 68K, SPARC, Alpha, SH 等等. 这些CPU都含有一种叫做内存管理单元(MMU)的硬件,来支持标准Linux所需要的虚拟内存。

但在嵌入式世界里,还有很多CPU是没有MMU的,象ARM7、68328等等。

uClinux 正是为了解决这种没有MMU的CPU而产生的。

在uCLinux这个英文单词中,u表示Micro,小的意思,C表示Control,控制的意思,连起来就是Micro-Control-Linux, ―运行在微控制器上的Linux.‖针对这种没有MMU的CPU架构,uCLinux采用了一种平板式(Flat)的内存模型来去除对MMU的依赖, 并且改变了用户程序的加载方式,开发了运用于uCLinux的C函数库--uCLibc. 由于这些变化,一般的Linux开发工具(例如GDB)在开发uCLinux时会碰到一些困难,包括内核的移植,驱动程序及应用程序的调试。

针对这样状况。

Hitool System公司开发了Hitool for uClinux开发套件,来帮助用户开发基于uClinux的系统。

Hitool for uClinux与其它的Linux开发工具相比,有几个优点:A.整个开发过程只在Windows环境下完成,包括内核的配臵、编译,应用程序的编译,文件系统的生成,内核的调试,用户程序的调试。

B.可以采用多种调试方式,既可以采用JTAG方式来调试,也可通过网口用Hitool自己的监控程序(MDB)来调试。

简述uClinux

简述uClinux

一、嵌入系操作系统uClinux的简述 (2)二、开发模式和交叉编译环境的建立 (4)1、主机和目标板的开发模式 (4)2、交叉编译环境 (4)三、uClinux的编译步骤 (5)1、下载uclinux (5)2、解压缩 (5)3、编译uClinux内核 (6)4、使用uClinux (11)四、用户应用程序的开发 (15)1、在uclinux中添加用户的应用程序 (15)2、在make menuconfig中加入用户应用程序的选项 (18)五、uclinux环境分析 (20)1、系统目录结构 (20)z目标板上的uclinux目录结构 (20)z主机上的uclinux-dist目录结构 (21)2、如何实现启动uclinux后自动运行某一程序(rc文件分析) (28)附录 (29)附录A vi使用方法简介 (29)附录B uClinux中断号 (32)一、嵌入系操作系统uClinux的简述操作系统是管理计算机上的资源,为用户使用计算机及其外部设备提供最基本接口的程序。

自从计算机诞生以来,随着计算机、网络技术的快速发展,操作系统一直处于不断发展和改进之中,人们将越来越多的功能加入到操作系统中,导致操作系统越来越大。

但是,随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及可裁减性,一种以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统---嵌入式操作系统便随之延生。

uClinux是嵌入式Linux的一个分支,所以我们首先来了解一下嵌入式Linux 的特性。

嵌入式Linux是按照上面所说的嵌入式操作系统的要求设计的一种小型操作系统。

由一个kernel(内核)及一些根据需要进行定制的系统模块组成。

其Kernel很小,一般只有几百K左右,即使加上其它必要的模块和应用程序,所需的存储空间也很小,有些还有具有实时性,如Rtlinux。

uclinux内核配置傻瓜教程

uclinux内核配置傻瓜教程

Uclinux内核编译傻瓜教程插曲:SDT下程序调适经验在SDT工程下面的.alf文件都是库文件,有了这些库文件后与之相对应的.c 原文件就不需要加载进入工程,否则会导致工程调试时出现程序跑飞的情况。

比方说如果已经加入了44blib.alf文件,则不需要再加入44blib.c文件,如果加入程序通过jtag调试必然跑飞,去掉则没有问题!当然在ADS中是没有.alf库文件的,那么就需要加入相应的.c文件!!内核的编译过程我想大家都知道了,就是make menuconfig进入内核配置菜单进行删改,结束保存后进行make depmake cleanmake lib_onlymake user_onlymake romfsmake imagemake基本上按照立宇泰给的uclinux内核文件和交叉编译器就能够完成整个编译内核的工作,只不过也许由于内核版本不同会产生一些不同的结果,主要还是功能方面的!此次编译内核需要完成的功能包括文件系统ext2的挂载,网络驱动,基本的cash命令,lcd frambuffer功能,串口功能。

当然你也可以实现更多的文件系统的挂载识别和更多驱动功能,但是内核及文件系统必然增大,这里只是实现基本的一些驱动功能,希望借此给各位一些帮助!1.编译armsys-c的uclinux内核及文件系统。

原先armsys-c的uclinux内核文件说明如下:没有经过压缩的内核文件大小为1.8M;经过压缩的内核为0.9M,其经过解压后进入SDRAM区后应该还是具有1.8M大小;文件系统大小为0.8M左右。

这里要注意的是必须按照手册上说的地址下载,否则uclinux无法启动,原因应该是其编译生成的内核文件及文件系统文件在编译过程中已经加入了ro-base及rm-base,所以程序启动的时候会相应寻找其地址,如果不对则无法启动。

不过我会通过重新编译内核时更改其值,验证设想!以下是下载imageram.bin的过程,内核下载后再下载romfsimag.bin即完成整个下载过程,并让程序Pc指向内核起始地址启动uclinux!启动好了的内核及文件系统:对内核进行删改,并于原内核进行比对,发现一些问题。

uClinux 启动顺序研究

uClinux 启动顺序研究

uClinux 启动顺序研究小组成员:陈伟静1061000255陈晓1061000256关然1061000260侯雪峰1061000261摘要:本文主要介绍了嵌入式系统uClinux的启动过程分析,并对相关的文件进行了注释说明,便于学习者更轻松容易的了解uClinux的启动过程和掌握改写的方法。

关键词:uClinux;启动顺序;kernel;start_kernel【Abstract】:This paper introduces uClinux embedded systems startup process analysis, and documents related to the explanatory notes to facilitate learners understanding easier uClinux startup process and to master the method of rewriting.【key word】:uClinux;Boot sequence; kernel; start_kernel引言:32位ARM嵌入式处理器具有高性能、低功耗、高性价比的特性,已被广泛应用于消费电子产品、无线通信、控制和网络通信等领域。

uClinux是专门为无MMU处理器设计的嵌入式操作系统,已支持ARM、Motorola等微处理器。

目前采用ARM+uClinux作为嵌入式系统的一种开发模式非常普遍。

一个基于uClinux的完整的嵌入式系统由三个部分组成,即系统引导程序Bootloader、uClinux操作系统内核和文件系统。

嵌入式系统的启动引导技术是嵌入式系统开发的一个难点,系统启动引导的成功与否决定了应用程序的运行环境是否能正确建立,系统启动成功是应用正确运行的前提。

而uClinux内核的启动过程也是其中重要一环,在不同的嵌入式系统中,即使处理器相同,uClinux的启动控制部分都会完全不同,所以分析uClinux的启动过程,可以加快系统启动速度、正确建立应用环境。

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。

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

ubuntu: uClinux终于可以跑在skyeye下了。

首先确保root用户,let's go.
1.install skyeye_1_2_2_Rel
代码:
$make
(note: refer to skyeye/README, gcc4.1.2)
2.install cross-compiler
代码:
$chmod 777 arm-elf-tools-20030314.sh
$./arm-elf-tools-20030314.sh
pile uClinux-dist-20060803
step1:
代码:
$make xconfig
(note:choose GDB/ARMulator,kernel2.4,ucLibc)
q: wish: Command not found,when make xconfig
a:need TK tookit package(TK8.4)
step2:
代码:
$make dep
step3:
代码:
$make
(成功后生成linux-2.4-x/linux,images/boot.rom和linux)
q:arm-linux-gcc: Command not found
a:change arm-linux- cross-compiler into arm-elf- in vendors/config/armnommu/config.arch
4.run the uClinux in skyeye
step1: add the skyeye.conf in director uClinux-dist/ skyeye.conf:
代码:
cpu: arm7tdmi
mach: at91
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000 mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./boot.rom
mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000 mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000 mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000 mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000
step2: for file=./boot.rom in skyeye.conf
代码:
$ln -s images/boot.rom boot.rom
step2: run uClinux
代码:
$skyeye -e linux-2.4.x/linux
OK, >ls, 熟悉了吧,haha
q:backspace key is not suppot in uClinux?
a:ctrl+H
q:loading is stoped when $skyeye linux?
a:$skyeye -e linux, because the file:linux is ELF image. note: 其他版本未测试,google应该能g出来,hehe。

相关文档
最新文档