嵌入式系统uClinux试验报告.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:8 大小:198KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

嵌入式系统uClinux试验报告.doc

嵌入式系统uClinux试验报告.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本科实验报告实验名称:µClinux操作系统定制、移植和加载实验实验目的和要求掌握内核交叉编译环境的建立和使用;掌握µClinux内核的配置和裁剪;了解µClinux的启动过程。实验内容和原理认真阅读实验原理,基于S3C44B0X开发板实现以下内容:1、准备µClinux内核源代码包;2、建立µClinux交叉编译环境;3、配置和编译µClinux内核和romfs根文件系统;4、下载并运行µClinux;5、可以基于µClinux编写一个简单的应用程序,例如“HelloWorld”。在µClinux这个名字中,µ表示Micro,是“小”的意思,C表示Control,是“控制”的意思,所以µClinux就是Micro-Control-Linux,字面上的理解就是“针对微控制领域而设计的Linux系统”。可以说,µClinux是最早的嵌入式Linux发行版本,它是为ARM7TDMI等大量不带MMU(内存管理单元)的处理器而设计的,进而发展了一套完整的开发平台,包括编译、调试等等工具。在µClinux的主页http://www.uclinux.org上有相关发行版本的源代码、编译工具等下载。本实验系统使用的是µClinux内核的2.4.24版。三、实验项目µClinux操作系统定制、移植和加载四、实验器材1、S3C44B0X开发板、uLink仿真器、以太网交叉电缆、串口交叉电缆;2、PC机及RedHat9.0操作系统(采用VMware虚拟机构建)、GNUGCCforARM工具链、TFTPServer下载软件。五、操作方法与实验步骤1、准备µClinux内核源代码包;2、建立µClinux交叉编译环境;3、配置和编译µClinux内核和romfs根文件系统;4、下载并运行µClinux;六、实验结果与分析FigureSEQFigure\*ARABIC1uclinux系统运行结果七、问题与建议经过本次实验,我对µClinux系统有了初步的理解,宏观上了解了uclinux的定制移植以及下载运行的过程,通过编写小的应用程序,深刻体会到了基于操作系统平台的应用开发的魅力,能够基于模块设计,较多的屏蔽硬件层,利用系统提供的抽象接口实现硬件交互;同时任务管理调度的高效,以高级语言编写,增强了代码的可移植性,可以利用大量现有的资源,大大减轻了开发的难度。但目前我还只用到了uclinux中相当少的一部分功能,还不足以完全体现uclinux在嵌入式开发中的意义,今后有机会将仔细学习uclinux系统,基于此开发更为复杂的应用。八、设计思路、电路图、流程图及源程序(一)实验流程1、建立编译链安装arm-elf-tools-20040427.sh,建立交叉编译环境。2、µClinux内核的配置和编译执行makemenuconfig命令,进入内核配置界面,选择需要的组件,之后执行编译命令,得到下载所需的镜像文件:uclinux_ram.bin、uclinux_rom.bin和romfs.img。FigureSEQFigure\*ARABIC2uclinux内核配置界面3、下载µClinux由于镜像文件的下载是通过网络进行的,首先建立tftp服务器,然后启动UBoot,以串口作为连接方式,通过超级终端发送命令。下面是uclinux_rom.bin文件下载的截图:FigureSEQFigure\*ARABIC3uclinux_rom.bin文件的下载首先通过tftp将文件下载到内存特定位置,然后擦除E2PROM,最后再将文件从内存写入到E2PROM,同理可完成文件系统的下载。4、应用程序编写本次试验开发了一个HelloWorld的应用程序,以ANSIC_C语言编写,然后利用交叉编译工具生成目标代码,之后放入到文件系统中,再次重新生成镜像文件并下载到试验箱中。5、运行调试在镜像文件下载成功之后,重新启动试验箱,开始加载µClinux系统,同时可以看到在/bin目录下有HelloWorld应用程序,运行可以得到正确的结果。FigureSEQFigure\*ARABIC4HelloWorld运行结果(二)关键源程序1、Hello.c#include<stdlib.h>#include<stdio.h>intmain(void){printf(“Hellotheworld!\n”);return0;}2、HelloWorld的Makefile文件CC=arm-elf-gccEXEC=helloOBJS=hello.oCFLAGS+=LDFLAGS+=-Wall-elf2flt-O2