基于ARM的嵌入式Linux系统构建.

基于ARM的嵌入式Linux系统构建.
基于ARM的嵌入式Linux系统构建.

基于ARM的嵌入式Linux系统构建①

冷玉林钟将 (重庆大学计算机学院重庆 400044

摘要: 详细论述了在基于ARM920T核心的S3C2410平台上构建嵌入式Linux 系统的过程,包括交叉开发环境的建立,引导加载程序U-Boot、Linux操作系统内核针对特定目标平台的移植,以及根文件系

统的建立等。试验结果显示系统在目标平台上运行稳定、可靠,对其它嵌入式系统的开发具有参考意

义。

关键词: 嵌入式系统; ARM; S3C2410微处理器; Linux

Building Embedded Linux System Based on ARM

LENG Yu-Lin, ZHONG Jiang

(Department of Computer Science, Chongqing University, Chongqing 400044, China Abstract: This paper discusses the process of building embedded Linux system on the ARM920T core-based S3C2410 platform, including the establishment of cross-development environment, the transplanting of

U-Boot and Linux kernel to a specific target platform, and the building of root file system. The final system

proves to be stable and reliable after several testing. Also it’s help ful to the exploiting of other embedded

systems.

Keywords: embedded system; ARM; S3C2410 microprocessor; Linux

1引言

随着信息产业的发展和集成电路技术的进步,嵌入式系统已经广泛地应用到移动计算设备、网络设备、工控设备、信息家电和仪器仪表等领域。嵌入式系统,是以应用为中心、以计算机技术为基础、软硬件可裁剪,能适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。这种系统具有软件代码少、响应速度快、高度自动化等特点,用于实现对其它设备的控制、监视或管理等功能,特别适用于要求实时的和多任务的应用[1]。ARM嵌入式芯片是一种高性能、低功耗的RISC芯片。他由英国ARM公司设计,世界上几乎所有的主要半导体生产商都生产基于ARM体系结构的通用芯片,或在其专用芯片中应用相关ARM技

术,S3C2410是韩国Samsung公司基于ARM公司的ARM920T处理器核,采用

0.18um 制造工艺的32位嵌入式微处理器。Linux是免费发

①收稿时间:2010-03-19;收到修改稿时间:2010-04-18 行的、快速高效的操作系统,它的出现在计算机世界引发了一场革命。Linux以其代码开放、功能强大又易于移植等特点成为嵌入式操作系统的新兴力量。在所有的嵌入式操作系统中,Linux是发展最快、应用最广泛的。利用Linux搭建嵌入式系统是近年来出现的最令人振奋的方案之一[2,3]。嵌入式Linux是按照嵌入式操作系统的要求设计的一种小型操作系统,由一个内核以及一些根据需要进行定制的系统模块组成。其内核很小,一般只有几百kb,即使加上其他必要的模块和应用程序,所需的存储空间也很小,非常适合于嵌入式系统。

本文将详细论述在基于ARM920T核心的S3C2410平台上构建嵌入式Linux系统的过程,包括交叉开发环境的建立,引导加载程序U-Boot、Linux操作系统内核针对特定目标平台的移植,以及根文件系统的建立等。

2交叉开发环境的建立

嵌入式软件开发中所采用的编译为交叉编译,所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步,选择合适的交叉编译器对于嵌入式开发是非常重要的。交叉编译

器的安装一般涉及到多个软件的安装,这包括binutils、gcc、glibc 等软件。其

中,binutils主要用于生成一些辅助工具,如objdump、as、ld等;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具;而glibc 主要是提供用户程序所使用的一些基本的函数库。社区的开发者和一些芯片厂商已经编译出了常用体系结构的工具链,使用这些工具链,将使得工作量大大降低。

将工具链压缩包arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2解压至/workspace/tools

目录:

#cd /workspace/tools

#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar. bz2

在/etc/bashrc文件末尾加入如下一行:

PATH=$PATH:/workspace/tools/gcc-3.4.5-glib c-2.3.6/bin

3嵌入式Linux系统的构建

3.1 引导加载程序U-Boot的移植

系统上电之后,需要一段程序来进行初始化:关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等。如果它能将操作系统内核复制到内存中运行,无论从本地(如Flash还是从远端(如网络,就称这段程序为BootLoader。简单地说BootLoader就是在操作系统内核或用户应用程序运行之前

运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好环境。对于一个嵌入式系统来说,可能有的包括操作系统,有的小型系统也可以只包括应用程序,但是在这之前都需要BootLoader为它准备一个正确的环境。通常,BootLoader是依赖于硬件而实现的,特别是在嵌入式领域,为嵌入式系统建立一个通用的BootLoader 是很困难的。U-Boot,全称为Universal Boot Loader,即通用BootLoader,是遵循GPL条款的开放源代码项目,并且已经成为ARM平台事

实上的标准BootLoader,其名字“通用”有两层含义:可引导多种操作系统、同时支持多种架构CPU[4]。本文所用U-Boot 版本为u-boot-1.3.4,将所获取的源码压缩包u-boot-1.3.4.tar.bz2解压得到全部源码,首先需要分析一下它已支持的开发板,比较出硬件最接近的开发板。本文将在u-boot-1.3.4已经支持的smdk2410板的基础上进行移植。

3.1.1 新建、修改目标板对应目录及文件

在board目录下将smdk2410复制为my2410目录,将此目录下的smdk2410.c文件重命名为my2410.c;将include/configs/smdk2410.h复制为my2410.h;在顶层Makefile中添加如下两行 my2410_config: unconfig

@$(MKCONFIG $(@:_config arm arm920t my2410 NULL s3c24x0

然后在board/my2410/Makefile中修改COBJS:

COBJS :=my2410.o flash.o

3.1.2 修改SDRAM配置

本文将目标板HCLK设为100MHz,根据SDRAM 芯片的具体参数重新计算REFCNT寄存器的值,对board/my2410/lowlevel_init.S文件作如下部分修改: #define REFCNT 0x4f4 /*period

=

7.8125us, HCLK=100Mhz, (2048+1-7.8125*100*/

3.1.3 支持目标板NAND Flash

对NAND Flash的支持有新旧两套代码,新代码在drivers/mtd/nand目录下。选择用此新代码来支持目标板NAND Flash。要让U-Boot支持NAND Flash,首先在include/configs/my2410.h的宏CONFIG_COMMANDS中增加CONFIG_CMD_

NAND,然后在include/configs/my2410.h中选择不定义CONFIG_NAND_LEGACY 宏(若定义则为使用旧代码。在include/configs/my2410.h中作如下定义:

#define CONFIG_CMD_NAND

#define CFG_MAX_NAND_DEVICE 1 //目标板上有一块NAND Flash设备#define CFG_NAND_BASE 0x4e000000 //NAND Flash控制器基址

3.1.4 支持CS8900

本文目标板网卡芯片CS8900的连接方式与样板

smdk2410一致,U-Boot已能够支持CS8900,其驱动程序为drivers/cs8900.c。所以在使用网络之前设置其IP地址、MAC地址、宿主机IP地址即可。3.1.5 若干默认配置参数的设置

在include/configs/my2410.h中增加以下默认配置参数:

#define CONFIG_SETUP_MEMORY_TAGS 1

#define CONFIG_CMDLINE_TAG 1

#define CONFIG_BOOTARGS “noinitrd

root

=/dev/mtdblock1 rootfstype

=

jffs2 console

=

ttySAC0”

#define CONFIG_ETHADDR 08:00:3e:26:0a:5b

#define CONFIG_NETMASK 255.255.255.0

#define CONFIG_IPADDR 222.198.131.33

#define CONFIG_SERVERIP 222.198.131.32

上述参数分别为设置向内核传递的命令行参数,以及目标板,宿主机IP的设置等。

3.1.6 U-Boot的编译、烧写

执行以下命令配置、编译,得到二进制映象文件u-boot.bin。

#make my2410_config

#make all

最后,通过JTAG与宿主机并口相连,在主机烧写程序H-JTAG的支持下将u-boot.bin文件烧写到NOR Flash。烧写完成后,复位实验板,串口终端显示u-boot的启动信息。

3.2 Linux内核的移植

标准Linux内核对于资源受限的嵌入式系统来说过于庞大,要将其移植到嵌入

式系统上,就需要将Linux内核根据目标平台的情况进行剪裁、配置。本文将配

置、修改linux-2.6.22.6内核,使得它在能够支持s3c2410板的同时能够支持JFFS2、YAFFS文件系统,并修改MTD设备分区,以支持挂载NAND Flash上的文件系统。

3.2.1 MTD分区的修改

MTD(Memory Technology Device,即内存技术设备,是Linux中对ROM、NOR Flash、NAND Flash等存储设备抽象出来的一个设备层,它向上提供统一的访问接口:

读、写、擦除等,屏蔽了底层硬件的操作、各类存储设备的差别。本文修改arch/arm/ plat-s3c24xx/common-smdk.c中的smdk_nand_part结构,改变分区信息:

Static struct mtd_partition smdk_default_ nand_part[] = {

[0] = {

.name = “kernel”,

.size = SZ_2M,

.offset = 0,

},

[1] = {

.name = “jffs2”,

.offset = MTDPART_OFS_APPEND,

.size = SZ_8M,

},

[2] = {

.name = “yaffs”,

.offset = MTDPART_OFS_APPEND,

.size = MTDPART_SIZ_FULL,

}

};

本文所划出的分区情况:前2MB存放内核,接下来8MB存放JFFS2文件系统,剩下的以后可用来存放YAFFS文件系统。

3.2.2 添加支持YAFFS文件系统

YAFFS(yet another flash file system是类似于JFFS/JFFS2、专为NAND Flash而设计的一种嵌入式文件系统,适于大容量的存储设备。它提供了损耗平衡和掉电保护,可以有效地避免意外掉电对文件系统的一致性和完整性的影响[5]。可从

http://www. https://www.360docs.net/doc/7b18227000.html,/cgi-bin/viewcvs.cgi/获取其源码压缩包root.tar.gz,解压之,并使用其中的文件patch-ker.sh来修改内核。进入yaffs2源码目录:

#cd/workspace/system/Development/yaffs2

#./patch-ker.shc/workspace/system/linux-2.6.

22.6

3.2.3 内核配置、编译与烧写

现在,内核支持s3c2410,同时能够支持JFFS2、YAFFS文件系统,且在修改了MTD设备分区后能支持挂载NAND Flash上的文件系统。现对内核进行配置、编译,进入Linux内核源码所在目录,执行如下命令:

#cd /workspace/system/linux-2.6.22.6

#cp

arch/arm/configs/s3c2410_defconfig ./.config

#make menuconfig

#make uImage

先将arch/arm/configs/下的s3c2410_ defconfig文件复制为内核源码根目录下的.config 文件,在此基础上对若干配置选项作进一步的选择,主要包括以下几项配置:

处理器类型,板级支持,对RAM disk、设备驱动及文件系统的支持。编译完成后在arch/arm/boot/目录下生成U-Boot格式的内核映象文件uImage。

#tftp 0x30000000 uImage

#nand erase 0x0 0x200000

#nand write.jffs2 0x30000000 0x0 $(filesize

上述命令将uImage置于主机tftp目录下,通过tftp方式下载并将之烧写到NAND Flash前2M空间中。

3.3 根文件系统的构建

Linux系统由内核与文件系统共同构成,而根文件系统则是Linux启动时使用的第一个文件系统。没有根文件系统,Linux将无法正常启动。根文件系统由一系列目录组成,目录中包含了应用程序、C库、以及相关的配置文件[6]。所谓制作根文件系统,就是创建各种目录,并且在里面创建各种文件。比如在/bin、/sbin目录下存放各种可执行程序,在/etc目录下存放配置文件,在/lib目录下存放库文件等。

本文首先使用Busybox来创建/bin、/sbin等目录下的可执行文件。Busybox是一个遵循GPL v2协议的开源项目,它将众多的UNIX命令集合进一个很小的可执行程序中,其中各种命令与相应的GNU工具相比,所能提供的选项较少,但是能够满足一般应用。

3.3.1 配置Busybox

将获取的Busybox源码压缩包解压之得到源码目录busybox-1.7.0。首先通过配置Busybox来选择所需要的命令、定制某些命令的功能(选项、指定Busybox的连接方法,以及其安装路径。在busybox-1.7.0目录下执行:#make menuconfig,退出并保存所做配置。然后分别修改Busybox根目录下Makefile中ARCH与

CROSS_COMPILE变量的值为arm与arm-linux-,进行编译并安装至/work-

space/nfs_root目录:

#make

#makeCONFIG_PREFIX=/workspace/nfs_root install

3.3.2 使用glibc库

本文使用前面制作交叉编译工具链时生成的glibc库,其位置为

/workspace/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib,根文件系统中只需要其中的加载器与动态库,将其复制到根文件系统中: #mkdir –p /workspace/nfs_root/lib

#cd/workspace/tools/gcc-3.4.5-glibc-2.3.

6/arm-linux/lib#cp*.so*/workspace/nfs_root/li

b–d

3.3.3 构建etc目录

该目录用于存放各种配置文件,init进程将根据/etc/inittab文件创建其它子进程,如配置IP地址、挂接文件系统,以及最后的shell启动等。本文创建3

个文件:etc/inittab(为init进程创建其它子进程的依据、etc/init.d/rcS(自动运行的命令、etc/fstab(文

件系统。

3.3.4 构建dev目录

在/dev目录下创建各设备文件,这涉及的设备有:/dev/mtdblock*(MTD块设备、/dev/ttySAC* (串口设备、/dev/console、/dev/null等,而其它设备文件可当系统启动起来后,通过cat /proc/ devices查看内核中注册的设备,并一一创建相应的设备文件。

最后建立若干需要的空目录,如proc、mnt、tmp、sys、root等。现在nfs_root 下得到一最小根文件系统,将其制作为映象文件nfs_root.jffs2后,烧入NAND Flash 中。

#tftp 0x30000000 nfs_root.jffs2

#nand erase 0x200000 0x800000

#nand write.jffs2 0x30000000 0x200000 $(filesize

4结语

本文详细论述了在基于ARM920T核心的

S3C2410平台上构建嵌入式Linux系统的过程,包括交叉开发环境的建立,引导加载程序U-Boot、Linux操作系统内核针对特定目标平台的移植,以及根文件系统的建立等。最终系统在

(下转第31页

情况下,两级数据交换在调用对方数据交换的相关服务时,都需将对方的服务通过两级ESB级联,在本地ESB上注册代理服务,通过调用代理服务,达到调用对方数据交换服务的目的。通过ESB发送非格式化数据的过程如图5所示。

图5通过ESB发送非格式化数据

5结束语

ERP是当今企业管理水平和信息技术发展的一个重要方向,组成ERP的各个功能模块分别位于企业的不同的组织和部门中,主要用于各部门日常性事务问题的处理。集团公司组织结构的复杂性,决定了企业中异构信息系统、异构数据的大量并存,若处理不当则很容易导致企业的决策失误。为了使ERP能为企业(上接第26页

目标平台上运行稳定、可靠,结果证明方法可行,这对其它嵌入式系统的开发同样具有参考意义。本文创新部分在于其针对特定嵌入式硬件平台的BootLoader的程序实现和Linux的系统移植,因为平台独特的硬件环境,一些程序代码要严格依赖硬件设备进行设计。

参考文献

1 李善平,刘文锋等编著.Linux与嵌入式系统.北京:清华大学出版社, 2003. 提供准确的决策支持和分析作用,本文中给出了数据交换平台的总体框架及所涉及的关键技术,按照这个框架部署的系统,能够很好的完成异构数据在异构数据平台上的共享与交换。随着信息化的进一步发展,各相关技术研究的进一步深入,数据交换平台将会为电子政务等应用提供更为智能、高效、安全的服务,并发挥越来越重要的作用。

参考文献

1 方志梅,屠建飞,叶飞帆. 虚拟企业ERP的结构与功能研究.计算机应用研究, 2006,23(1:90-92.

2 Zhai LL, Zhang SC. The Feature Model of General ERP System for Discrete Manufacturing Industry. International Conference on Electronic Commerce and Business Intelligence, ECBI 2009. Beijing, 2009.12-15.

3 梅立军,付小龙,刘启新,沈锡臣.基于SOA的数据交换平台研究与实现.计算机工程与设计, 2006,27(19:3601-3603.

4 刘文菲.基于中间件技术的数据交换平台的设计与实现[硕士学位论文].中国科学院研究生院, 2006.

5 汪勇,王备战.基于Web Service的数据交换平台解决方案.微处理机,

2007,28(4:120-122.

6 叶枝平.基于XML的数据交换平台及其关键问题的分析与设计[硕士学位论文].广东工业大学,2008.

2 廖日坤编著.ARM嵌入式应用开发技术白金手册.北京:中国电力出版社, 2005.

3 杜春雷编著. ARM体系结构与编程.北京:清华大学出版社, 2004.

4 康一梅等编著.嵌入式软件设计.北京:机械工业出版社, 2007.

5 Bovet DP. Understanding the Linux Kernel(3rd Edition. O’Reilly, 2002.

6 刘名博,邓中亮.基于ARM的嵌入式Linux操作系统移植的研究.计算机系统应用, 2006,15(11:87-88.

嵌入式Linux系统的搭建与配置过程

1.摘要 (2) 2.UBOOT,LINUX内核,文件系统的介绍及相互关系..3 2.1嵌入式系统简介 (3) 2.2嵌入式Linux概述 (3) 2.3UBOOT简介 (4) 3.UBOOT的启动过程 (6) 4.内核的主要功能和裁剪 (7) 4.1Linux的编译 (7) 4.2嵌入式Linux的配置和剪裁 (8) 5.文件系统的制作过程 (8) 6.交叉编译器的搭建和环境变量的设置 (9) 7.驱动程序的编写过程与关键点 (11) 7.1Linux网络驱动程序的结构 (11) 7.2网络驱动程序的基本方法 (12) 7.3网络驱动程序中用到的数据结构 (12) 7.4常用的系统支持 (14) 7.5编写Linux网络驱动程序中需要注意的问题 (18) 8.参考文献 (20)

嵌入式系统是以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其它设备的控制、监视或管理等功能。其广泛应用于控制领域、消费电子产品等行业,已成为现代电子领域的重要研究方向之一。嵌入式Linux的研究已经成为当前信息技术研究的热点,它的应用蕴含着巨大的商业价值,并且己经广泛的应用于各种信息家电、通讯产品、工业控制中。论文首先介绍了ARM和嵌入式Linux操作系统的特点和当前的发展概况。然后阐述了嵌入式Linux 开发流程以及移植到具体硬件平台需要完成的工作,如U-Boot的移植、Linux内核的编译与裁剪、文件系统的制作、驱动程序的编写等。 关键字:嵌入式;ARM;嵌入式Linux;Linux内核;驱动程序

嵌入式Linux系统期末考试简答题、运用题

简答题与应用题 什么是嵌入式系统?主要有什么特点? 以应用为中心,以计算机技术为基础的, 并且软件硬件是可剪裁的, 能满足应用系统对功能、 可靠性、成本、 体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的 计算机系统相比,特点为: (1) (2) (5) 嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。 4、什么是Linux ?什么是嵌入式 Linux ? 答:严格来讲,Linux 是指由Linux 本人维护并不断更新的内核 。 一个嵌入式Linux 系统指的是一个基于 Linux 内核的,但不包含有关这个内核的任何专业的库或是用户工具 的嵌入式系统。 Linux 内核构建嵌入式操作系统有什么优势(优良特性)? 程度代码是可以获取的,可靠度高; 有完整的源码,软件丰富并且免费; 得到众多硬件生产家的广泛支持;包括 cpu 、计算机外 围设备 完善的通信协议、软件标准和文件管理机制; 提供完全免费且优秀的开发工具; 广泛的社群支持 无需购买lice nee ,是免费的; 不依赖特定厂商、供应商; 成本相对低廉。 6、 RTOS (嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客 户服务程序。中断程序响应中断并完成 是在固定时间内。 7、什么是实时LinUX ?涉及到哪些软硬件内容? 答:实时LinUX ( RT-Linux )通过在Linux 内核与硬件中断之间增加一个精巧的可抢先的实时内核 ,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度 ,标准的Linux 内核的优先级最低,可以被实时进程抢断。 正 常的Linux 进程仍可以在Linux 内核上运行,这样既可以使用标准分时操作系统即 Linux 的各种服务,又能提 供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。 能在规定的时间内完成对突发事件的处理的 Linux 系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux 内核构成,并简要说明各部分的功能? 答: MMU :内存管理单元,完成地址映射(应用虚拟地址方式) VFS :虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方 1、 答: 面向特定应用,一般都有实时要求; 集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集 成系统; 嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 嵌入式系统的软 硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要 考虑的主要问题。 嵌入式系统软件一般都固化在存储器芯片中。 (3) (4) 5、 用 答:( 1) (2) (3) (4) (5) (6) (7) (8) () 2、 答: 3、嵌入式操作系统的作用是什么?

嵌入式Linux系统

10-1 嵌入式Linux系统概述 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。 Linux在所有的操作系统中,Linux 是一个发展最快、应用最为广泛的操作系统。 所谓嵌入式Linux,是指Linux 在嵌入式系统中应用,而不是什么嵌入式功能。实际上,嵌入式Linux 和Linux 是同一件事。 10-2 Linux启动过程综述 一. Bootloader 二.Kernel引导入口 三.核心数据结构初始化--内核引导第一部分 四.外设初始化--内核引导第二部分 五.init进程和inittab引导指令 六.rc启动脚本 七.getty和login 八.bash 附:XDM方式登录 Bootloader 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。 在Alpha/AXP平台上引导Linux通常有两种方法,一种是由MILO及其他类似的引导程序引导,另一种是由Firmware直接引导。MILO功能与i386平台的LILO相近,但内置有基本的磁盘驱动程序(如IDE、SCSI等),以及常见的文件系统驱动程序(如ext2,iso9660等),firmware有ARC、SRM两种形式,ARC具有类BIOS界面,甚至还有多重引导的设置;而SRM

如何构建嵌入式LINUX的NFS

如何构建嵌入式LINUX的NFS 准备工作:一台装有REDHAT9.0的PC机,一套LJD2410-I开发板,PC机上装有LJD2410的软件包,假如我们通过NFS要加载的文件系统为/LJD2410/root_dir/root_china,Ifconfig eth0 192.168.1.100 //设置PC机linux的IP:192.168.1.100,Ifconfig eth0 192.168.1.10 //开发板IP:192.168.1.10 我们需要重新配置编译内核,开启开发板NFS文件系统功能,具体步骤如下:1、修改kernel/arch/arm/def-configs/smdk2410配置文件把CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0"这一行改为CONFIG_CMDLINE="root=/dev/nfs rw nfsroot=192.168.1.100:/LJD2410/root_dir/root_china noinitrd init=linuxrc console=ttys0 ip=192.168.1.10"运行make menuconfig进入配置菜单,装载配置文件SMDK2410 选择Load an Alternate Configuration File输入配置文件的路径和文件名添加内核对NFS的支持:选中networking opTIons-》IP:kernel level auloconfiguralion项选中file systems-》network file systems-》下的root file system on nfs和nfs file system support 重新编译内核下载bootloader和kernel到开发板上,至此,开发板设置已经完成。PC 机设置:我们必须开启PC机的NFS服务,具体设置如下:1、在LINUX命令符下运行setup,在system services里面选中nfs服务,然后保存退出。2、设置PC机上的共享目录执行vi /etc/exports,在里面添加一行:/LJD2410/root_dir/root_china (rw),然后保存退出,/和rw要有空格(/LJD2410/root_dir/root_china为共享目录,rw为读写权限)。3、执行/etc/rc.d/init.d/nfs restart重启nfs服务。4、为了不必每次开机都要启动nfs服务,我们把/etc/rc.d/init.d/nfs restart 添加到/etc/rc.d/rc.local中,以后PC启动的时候就会执行此文件开启nfs服务。5、测试NFS服务:设置完成后可以在本机上进行测试,如果本机IP为192.168.1.100,则可以用mount 192.168.1.100:/LJD2410/root_dir/root_china /mnt,如果mount成功,则在/mnt的目录就可以看到root_china下面的东西了。6、修改root_china/usr/etc/rc.local文件,设置开发板IP地址为192.168.1.10 至此,开发板和PC

嵌入式LINUX系统的实现

嵌入式LI N UX系统的实现 检修厂 王小康 摘 要 嵌入式系统正变得越来越流行。被广泛地应用在各种网络设备、控制设备以及个人的数字工具如PDA中。文章论述了作者在嵌入式操作系统领域里所做的研究和实践工作,主要的工作围绕着将L i nux改造成嵌入式操作系统所进行的具体工作展开,包括单板配置代码,系统的引导与修改,核心映象定制与修改和调试工作。 1 引言 在当今数字信息技术、网络技术高速发展与发达的后PC时代,嵌入式系统无处不在,并将不断涌现出新的嵌入式应用系统。传统的操作系统软件[1][2]很难有效地支持嵌入式应用系统的快速开发,因而研究与开发嵌入式操作系统,对有效的支持广大的嵌入式应用系统开发具有重大意义,是十分必要的。L i n ux正在向嵌入式领域的各个方面进军,在不久的将来,我们可以发现嵌入式L i n ux的广泛的应用:各种车载嵌入式设备(GPS,电子地图)、消费电子设备、手持电脑(H PC,PDA)、蜂窝电话、Internet接入设备、工控设备以及各种网络的基础设施(网管设备,路由,网关,交换器,HUB等)[3]。 本文是围绕着嵌入式L i n ux系统的实现展开的。首先介绍嵌入式L i n ux系统的硬件结构和软件结构;然后对基于L i n ux的嵌入式实时操作系统的实现过程进行详细的阐述;最后是简短的总结。 2 嵌入式L inux系统的硬件结构 嵌入式L i n ux系统硬件系统是个微形化的专用PC,它包括系统主机扳、通讯接口板、图象处理和显示板、输入控制板以及存储板等。主机板可采用嵌入式X86CPU系列,图象处理和显示板能支持MPEG数字解压缩和电视终端显示,输入控制包括遥控键盘、遥控器和其他一些输入设备接口,存储板主要 要求。 7 设计报警和连锁保护系统 报警系统的作用在于及时提醒操作人员密切注意监视生产状况,以便采取措施减少事故的发生,连锁保护系统是指当生产出现严重事故时,为保证设备和人身的安全,使各个设备按一定次序紧急停下来。在焙烧炉的炉顶温度控制中,根据工艺要求,一个高限报警温度为480度;三个连锁保护温度设定,一个超高限报警温度自动连锁烧嘴,引起烧嘴自动熄火,从而立即引起调节阀的自动关闭,防止煤气流入焙烧炉,一个低限位报警温度用来连锁模式的切换,使模式从酸模式自动切换到水模式,另一个超低限位报警温度用来连锁三个喷枪,使得三个喷枪自动从焙烧炉提升出来,从而保护喷枪。 8 控制系统的调试和运行状况 控制系统安装完成后,应随生产过程进行试运行,按控制要求检查和调整各控制仪表和设备的工作状况,包括调节器的P、I等参数整定,依次将全部控制系统投入运行,在从投入运行到现在有半年多的时间了,发现焙烧炉的炉顶温度控制效果好,系统运行比较稳定。 20

嵌入式LINUX试题

一、单项选择题 1.在宿主机上开启tftp服务时,所要修改的配置文件为()A./etc/exports B./etc/xinetd.d C.以上都不对 D./etc/xinetd.d/tftp 答案:D 2.内核在配置结束后,会将用户的选择结果保存在文件()中A.defconfig B.config C.default D..config 答案:D 3.u-boot指令中,下载文件的命令是() A.setenv B.reset C.tftp D.ping 答案:C 4.Kconfig文件中生成新的配置菜单使用() A.menu B.help C.default D.config 答案:A 5.在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定()A.优化参数 B.目标系统架构 C.交叉编译器 D.编译参数 答案:B 6.在构建嵌入式linux平台过程中,具备开发能力的计算机我们称之为()A.计算机 B.宿主机 C.服务器 D.目标系统 答案:B 7.内核在编译时所依赖的编译规则文件是() A..config B.Makefile C.Make D.File 答案:B 8.linux下所使用的串口调试工具是()

B.nfs C.minicom D.tftp 答案:C 9.内核配置菜单生成时所依赖的文件是() A.config B.Kconfig C.Makefile D.kconfig 答案:B 10.U-Boot下tftp下载文件到目标系统的内存当中,在内存当中默认的地址是()A.0x30000000 B.0x30008000 C.0x30000100 D.0x30080000 答案:B 11.在操作过程中,内核编译所生成的内核压缩可执行文件是()A.s3c2440 B.linux-2.6.32.2 C.zImage D.选项均不真确 答案:C 12.系统环境变量中用来作为可执行文件搜索路径的变量是(); A.PWD B.HISTORY_SIZE C.LD_LIBRARY_PATH D.PATH 答案:D 13.创建设备文件有手动创建与自动创建之分,那么手动创建时标示设备所属种类时是用()来区分的。 A.次设备号 B.num C.-m D.主设备号 答案:D 14.嵌入式系统是面向()、实现特定功能的、软硬件可裁剪的计算机控制系统; A.家庭 B.特定领域 C.工厂 D.学校 答案:B 15.在Linux下,打补丁时所使用的命令是() A.patch

嵌入式Linux系统期末考试简答题运用题

简答题与应用题: 1、什么是嵌入式系统?主要有什么特点? 答:以应用为中心,以计算机技术为基础的,并且软件硬件是可剪裁的,能满足应用系统对功能、可靠性、成本、体积、功耗等指标的严格要求的专用计算机系统。他可以实现对其他设备的控制、监视或者管理等功能。 与通用的计算机系统相比,特点为: (1)面向特定应用,一般都有实时要求; (2)集先进性的计算机技术、半导体工艺、电子技术和通信网络技术于一体的并且在不断创新的知识集成系统; (3)嵌入式系统是和具体应用对象有机结合在一起,因而其升级换代也是和具体的产品同步进行的。 (4)嵌入式系统的软硬件设计着重于高效率性。在最大限度满足应用需求的前提下,降低成本是必须要考虑的主要问题。 (5)嵌入式系统软件一般都固化在存储器芯片中。 2、嵌入式系统有哪几个部分? 答:嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。3、嵌入式操作系统的作用是什么? *实际是一组软件模块集合 满足多任务处理、稳定运行、安全可靠、占用系统资源少、特有的实时事件处理、便于维护和管理、简洁良好的用户界面 4、什么是Linux?什么是嵌入式Linux? 答:严格来讲,Linux是指由Linux本人维护并不断更新的内核。 一个嵌入式Linux系统指的是一个基于Linux内核的,但不包含有关这个内核的任何专业的库或是用户工具的嵌入式系统。 5、用Linux内核构建嵌入式操作系统有什么优势(优良特性)? 答:(1)程度代码是可以获取的,可靠度高; (2)有完整的源码,软件丰富并且免费; (3)得到众多硬件生产家的广泛支持;包括cpu、计算机外围设备 (4)完善的通信协议、软件标准和文件管理机制; (5)提供完全免费且优秀的开发工具; (6)广泛的社群支持 (7)无需购买licence,是免费的; (8)不依赖特定厂商、供应商; (9)成本相对低廉。 6、RTOS(嵌入式操作系统)强调的实时是什么概念?与中断的关系? 答:实时指的是特定操作所消耗的时间(以及空间)的上限是可预知的。操作系统能够在规定响应时间内完成客户服务程序。中断程序响应中断并完成是在固定时间内。 7、什么是实时Linux?涉及到哪些软硬件内容? 答:实时Linux(RT-Linux)通过在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux 内核作为实时内核的一个进程与用户进程一起调度,标准的Linux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行,这样既可以使用标准分时操作系统即Linux的各种服务, 又能提供低延时的实时环境。它在硬件上涉及到硬件中断,软件上涉及到对高优先级的实时硬件中断的快速响应。能在规定的时间内完成对突发事件的处理的Linux系统; 软件:中断服务程序、进程调度程序,硬件:嵌入式系统所采用的中断管理硬件。 8、试简要说明Linux内核构成,并简要说明各部分的功能? 答: MMU:内存管理单元,完成地址映射(应用虚拟地址方式) VFS:虚拟文件管理系统,提供了统一管理计算机资源的途径。使统一规范计算机资源的使用格式成为可能,方

嵌入式Linux系统开发教程答案

1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力 、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用 、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。4、嵌入式处理器目前主要有 PC、68K等,其中arm处理器有三大特点:体积小、低功耗、的成本和高性能,16/32 操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II和eCOS。6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:嵌入式处理器、存储器(SDRAM、ROM等)、设备I/O接口等。2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为实时多任务操作系统,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是VxWorks 。4、嵌入式系统设计过程中一般需要考虑的因素不包括:(大小)5、在嵌入式系统中比较流行的主流程序有:(Angel、Blob、Red Boot )1、Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在:开放性、多用户、多任务、友好的用户界面、设备独立性、丰富的网络功能、文件传输、远程访问、可靠的安全性、良好的可移植性、X Window系统、内存保护模式。2、Linux 作环境)、文件结构(File Structure)和实用工具。3、目前几乎所有的Linux ;查看当前路径应使用命令:pwd;的作用是:使linux.tar.gz文件 Linux内核主要由:进程调度,内存管理,虚拟文件系统,网络接口,进程间 (Red Flag)2、启动shell环境时,屏幕上显示“[arm@www home]$”,其中的arm 命令时,如果想对文件名中的不可显示字符用八进制逃逸字符显示,则应该选用的参数是(-b)。4、解 Linux用的文件系统是(ntfs)。1、ARM9系列微处理器在高性能和 5级整数流水线,指令执行效率更高;提供1.1MIPS/MHz的哈佛总线结构;支持32位ARM指令集和16位Thumb指令集;支持32位的高速AMBA总线接口。2、ARM芯片的内核一般包括以下几个单元:ARM9TDMI32RISC处理器、数据 本质上是内存中一段连续的地址,对其最常见的操作为“压栈”( 出)。1、在arm/thumb汇编语言程序中,程序是以程序段的形式呈现的。程序段是具有特有名称的相对独立的指令或数据序号。程序段有两大类型代码段、数据段。2、基于linux下GCC汇编语言,代码表号必须在一行的顶端,后面要加上:,注视的内容可以在前面加上@。 3、符号定义伪指令()、数据定义伪指令(Data Definition 4、linux下的嵌入式程序开发,主要需要的代码编辑器,如vi和gedit,另外还需要编译器gcc、调试器Vi编辑器基本上有三种基本状态,分别是:命令模式(command mode)、插入模式(insert mode)和底行模式(gcc编译文件生成可执行文件要经历四个相互关联的步骤:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。1.假如使用伪指令定义一个局部的数据量,变量名为temp,然后给其赋值为8,汇编代码为(GBLA temp;temp SET A 0x08;)2、在vi处于命令行模式时,如果需要对文本进行修改,欲在光标所在位置的下一个位置开始输入文字,则(按下字母“a”进入插入模式)3、当前vi 处于插入模式,先放弃对文本的修改,即不保存退出vi,则(先按下“ESC”后,再使用“:q!”命令)。4、经过汇编之后,生成的目标文件的后缀名为(.o)。 5、对代码文件code.c进行调试的命令为($gcc –g code.c –o code)。1、SMDK2440平台的开发板采用的处理器是S3C2440,其主频一般为400M。2、windows软件环境的设置一般包括以下几部分:超级终端的设置、DNW设置、GIVEIO驱动的设置和USB驱动3、在windows系统上建立基于linux嵌入式开发环境一般有三种方案可以选择分别是Windows系统下安装虚拟机Vmware、Windows+Linux双系统安装、基于Windows操作系统下的Cygwin4、UBUNTU的网络设置可以采用命令行方式、也可以采用图形界面操作方式来配置。5、开发板硬件平台是基于三星S3C2440的SMDK2440平台的目标板,使用的刻录软件为SJF2440。1、为了通过PC的串口和开发板进行交互,需要使用(超级终端)。2、在嵌入式linux的开发中,能实现上传下载文件、刻录文件、运行映像等功能工具是(DNW)。 3、由普通用户账户转为管理员账户登录,使用的命令为($su root)。 4、安装FTP服务器时,在终端输入的命令为($sudo apt-get install vsftpd)。 5、安装Telnet服务时,在终端输入的命令为($sudo apt-get install telnetd)1、交叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码执行工具链软件,通过带有不同的参数,可以实现编译、链接、处理、调试等不同的功能。2、linux经常使用的工具链软件有Binutils、Gcc、Glibc和Gdb。3、分布构建交叉编译工具链的制作过程需要以下几步编译binutils、编译辅助gcc编译器、编译glibc库、重新编译完整的gcc。4、使用crosstool构建交叉编译工具链的制作过程需要以下几步:准备工作、建立脚本文件、建立配置文件、执行脚本文件和编译gdb调试器。5、使用crosstool构建交叉编译工具链的制作过程中需要的配置文件,其主要作用是定义配置文件、定义生成编译工具链的名称、定义编译选项等。1.(binutils)十二进制程序处理工具,包括连接器,汇编器等目标程序处理的工具。2.构建交叉编译器的第一个步骤是(下载工具)。3、分析以下代码#export PRJROOT=/home/arm/armlinux #export TARGET=arm-linux #export PREFIX=$PRJROOT/$TARGET其中,变量PREFIX代表的路径为(/home/arm/armlinux)。4. Binutils是gnu工具之一,他包括连接器、汇编器和其他用于目标文件和档案的工具,特使二进制代码的处理维护工具。其中包括(ld)命令,他是把一些目标和归档文件结合在一起,重定位数据,并连接符号引用。5.分布构建交叉编译链的过程有两次变异gcc,其中第二次进行编译的作用是(获得glibc库的支持) 。1、Bootloader,亦称引导加载程序,是系统加电后运行的第一段软件代码。2、一般Bootloader包含两种不同的操作模式:启动加载模式 的主要功能是引导操作系统启动,它的启动方式有网络启动、磁盘启动和Flash 运行的第一阶段主要完成以下工作:屏蔽所有中断、设置CPU的速度和时钟频率、RAM初始化、初始化LED和关闭 cache。1、在Bootloader的启动方式中,Flash启动方式通常有两种,一种是可以直接从Flash启动,另一种时可以将压缩的内存映像文件从Flash中复制、解压到RAM ,再从中启动。2、在各种Bootloader中,U-boot 是以PPCBoot和ARMBoot为基础的通用加载程序,并且在ARM、PowerPC以及MIPS等多种平台上运行。3、在编译Vivi之前将Vivi里所有的“*.o”和“*.o.flag”文件删除,以确保文件编译时没有错误或者警告发生,使用的命令格式为(make distclean)。4、编译Vivi时,如果编译成功,在/vivi里面会生成三个vivi文件,其中不包括文件(vivi.exe)。5、把二进制文件载入Flash或RAM使用的命令是(load)。1、ARM-Linux内核的配置系统由三个部分组成,它们分别是Makefile、配置文件和配置工具。2、配置工具一般包括配置命令解释器和配置用户界面,前者主要作用是对配置脚本中使用的配置命令进行解释;而后者则是提供基于字符界面、基于Ncurses图形界面以及基于X Window图形界面的用户配置界面。3、Makefile文件主要包含注释、编译目标定义和适配段。4、Linux内核常用的配置命令有make oldconfig、make config、make menuconfig 和make xconfig。其中以字符界面配置的命令是make config。5、内核编译结束后,会在“/arch/arm/boot/”目录下面和根目录下面生成一个名为zImage的内核镜像文件。1.linux内核中的makefile以及与makefile直接相关的文件不包括(后缀名为.in)。2.用户通过make config 配置后,产生了后缀名为(in.config)。3.rules.make文件定义了许多变量,最重要的是那些编译、连接列表变量,但不包括(O-OBJS)。4.在内核配置过程中,如果需要设置networking support这个选项,进入的菜单项是(General setup)。5.在linux系统中,我们既需要标记变量的符号,有需要变量的物理地址,两者同时需要的时候可以采用符号表的方式,其对应的文件为(System.map)。1、Linux下的文件系统主要分为三个层次:上层用户的应用程序对文件系统的系统调用、虚拟文件系统和挂载到VFS中的各种实际文件系统。2、三种常用的块驱动程序分别是Blkmem驱动层、RAMdisk驱动层、MTD驱动层JFFS2、Yaffs、Romfs和Cramfs。 4、基于RAM的文件系统常见的有Ramdisk和Ramfs/Tmp fs。 5、System V init、Busybox init1、(MTD驱动层)也支持在一块Flash上建立多个Flash分区,没一个分区作为一个MTD block设备,可以把系统软件数据等分配到不同的

最新嵌入式Linux系统的搭建与配置过程精品版

2020年嵌入式L i n u x 系统的搭建与配置过 程精品版

1.摘要 (2) 2.UBOOT,LINUX内核,文件系统的介绍及相互关系..3 2.1嵌入式系统简介 (3) 2.2嵌入式Linux概述 (3) 2.3 UBOOT简介 (4) 3.UBOOT的启动过程 (6) 4.内核的主要功能和裁剪 (7) 4.1Linux的编译 (7) 4.2嵌入式Linux的配置和剪裁 (8) 5.文件系统的制作过程 (8) 6.交叉编译器的搭建和环境变量的设置 (9) 7.驱动程序的编写过程与关键点 (11) 7.1Linux网络驱动程序的结构 (11) 7.2网络驱动程序的基本方法 (12) 7.3网络驱动程序中用到的数据结构 (12) 7.4常用的系统支持 (14) 7.5编写Linux网络驱动程序中需要注意的问题 (18) 8.参考文献 (20)

嵌入式系统是以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其它设备的控制、监视或管理等功能。其广泛应用于控制领域、消费电子产品等行业,已成为现代电子领域的重要研究方向之一。嵌入式Linux的研究已经成为当前信息技术研究的热点,它的应用蕴含着巨大的商业价值,并且己经广泛的应用于各种信息家电、通讯产品、工业控制中。论文首先介绍了ARM和嵌入式Linux操作系统的特点和当前的发展概况。然后阐述了嵌入式Linux开发流程以及移植到具体硬件平台需要完成的工作,如U-Boot的移植、Linux内核的编译与裁剪、文件系统的制作、驱动程序的编写等。 关键字:嵌入式;ARM;嵌入式Linux; Linux内核;驱动程序

基于ARM的嵌入式Linux系统构建.

基于ARM的嵌入式Linux系统构建① 冷玉林钟将 (重庆大学计算机学院重庆 400044 摘要: 详细论述了在基于ARM920T核心的S3C2410平台上构建嵌入式Linux 系统的过程,包括交叉开发环境的建立,引导加载程序U-Boot、Linux操作系统内核针对特定目标平台的移植,以及根文件系 统的建立等。试验结果显示系统在目标平台上运行稳定、可靠,对其它嵌入式系统的开发具有参考意 义。 关键词: 嵌入式系统; ARM; S3C2410微处理器; Linux Building Embedded Linux System Based on ARM LENG Yu-Lin, ZHONG Jiang (Department of Computer Science, Chongqing University, Chongqing 400044, China Abstract: This paper discusses the process of building embedded Linux system on the ARM920T core-based S3C2410 platform, including the establishment of cross-development environment, the transplanting of U-Boot and Linux kernel to a specific target platform, and the building of root file system. The final system proves to be stable and reliable after several testing. Also it’s help ful to the exploiting of other embedded systems. Keywords: embedded system; ARM; S3C2410 microprocessor; Linux

构建嵌入式rtlinux系统

构建嵌入式rtlinux系统 1 1.下载linux内核linux-2.4.22.tar.gz,从ftp://https://www.360docs.net/doc/7b18227000.html,/上https://www.360docs.net/doc/7b18227000.html,镜像站点下载的,速度很快。 解压到/usr/src/linux-2.4.22 2下载RTLinux:rtlinux-3.2-rc1.tar.bz2 从ftp://https://www.360docs.net/doc/7b18227000.html,/pub/rtlinux上下载。 解压到/usr/src/rtlinux-3.2-rc1 3. 给linux内核打RTLinux补丁,并编译新内核: cd /usr/src/rtlinux-3.2-rc1 ln –s /usr/src/linux-2.4.22 /usr/src/rtlinux-3.2-rc1/linux cd ./linux 只有在这个目录下你的命令才会生效。否则会显示 make: *** No rule to make target 'config' , stop的错误提示. patch –p1 < ../patches/kernel_patch-2.4.22-rtl3.2-pre3 make mrproper 如果你以前编译过内核,那应当先执行#make mrproper 这个命令,它可以删除以前的建构的痕迹。如果你没有编译过,可以不执行它。 make menuconfig 选择网卡驱动以及EXT3文件系统,去掉APM选项,disableAPIC支持,将一些不必要的支持去掉,如对红外线和其它周边设备的支持,重要的一点是记住通常为节略空间内核必须支持RAMDISK及ext2,否则系统不能正常引导。编译之前请确认您是以root的身份在进行操作,否则会返回Permission Denied的提示。,把你认为不需要的东西都不要编译到内核,比如业余电台,scsi,I20,IrDA,isdn,bluetooth.最后保存为.config后退出。 make dep(设置依赖关系) make bzImage(建构内核) make modules 通常情况下将所有要用到的模块编译进内核,因此,这一步可以省略。 至此,你已得到了linux内核镜像文件在/usr/src/linux-2.4.22/arch/i386/boot/目录下。 4.编译得到rtlinux模块 cd /usr/src/rtlinux-3.2-rc make clean make menuconfig 内核选项取默认值即可 make dep make modules make devices 用来在系统的/dev/目录下生成相应的设备文件, make install 此时,你在/usr/src/rtlinux-3.2-rc/modules/下得到编译好的rtlinux模块。 5.根文件系统的制作 制作根文件系统前,我们先要解决一个问题:因为一个根文件系统要实现基本的功能,必须包括一些常用工具:如:sh,ls,cd,cat…… 但是常用工具会占用很多空间,要是用原

《嵌入式系统与开发》构建嵌入式Linux系统-实验报告(1)

《嵌入式数据库sqlite移植及 使用》 实验报告 学生姓名:陈彤 学号:13004405 专业班级:130044 指导教师:孙国梓 完成时间:2016.5.31

实验3 嵌入式数据库sqlite移植及使用 一.实验目的 理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite 开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。 二.实验内容 实验3.1 移植嵌入式数据库sqlite 实验3.2 简单通讯录查询实例设计和测试 三.预备知识 Linux使用、数据库相关知识等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软件:WinXP或UBUNTU开发环境。 五.实验步骤 5.1 移植嵌入式数据库sqlite 步骤【参看教材103页】: 第一步,解压缩sqlite源码,命令tar zxvf sqlite-autoconf-3080900.tar.gz,在解压后的文件夹下,可以看到源码文件有shell.c 和sqlite3.c文件,生成Makefile的配置脚本文件configure.ac ,并检查当前文件夹下__A__(A.存在 B.不存在)Makefile文件。 第二步利用configure脚本文件生成基于ARM实验台的Makefile,具体命令为./configure CC=arm-linux-gcc –prefix=/opt/sqlite –host=arm-linux(假设安装目录为/opt/sqlite),并检查当前文件夹下___A__(A.存在 B.不存在)Makefile文件。 第三步,编译sqlite,命令为_make_,编译过程中使用的编译器为_ arm-linux-gcc _。 第四步,安装sqlit,命令为_make install_。安装完成后到_/opt/sqlite_文件夹下去查看相关文件,可以看到该文件夹下有_bin_、_include_、__lib__和share文件夹,其中可执行文件sqlite3位于_./bin_文件夹,库位于_./lib_文件夹。 第五步,将sqlite3拷贝到开发板bin目录下,将库下的文件拷贝到开发板的lib目录下【注意链接文件的创建】 第六步,数据库的使用 方式1:命令操纵数据库 在超级终端环境下创建数据库stucomm.db,命令为_sqlite3 stucomm.db_; 创建数据表stutable,字段包括id 整型,name 字符型,phoneNum 字符型,具体命令为_sqlite> create table stutable (id int(20),name char(20),phoneNum char(20));_; 插入2条记录,记录信息如下 001,zhangsan,10086 002,lisi,10000 具体命令为_sqlie> insert into stutable values (001,’zhangsan’,10086); _; _sqlite> insert into stutable values (02,’lisi’,10000);_;

相关文档
最新文档