最新嵌入式linux在arm开发板上的移植PPT课件.ppt
-
资源ID:60603758
资源大小:531KB
全文页数:38页
- 资源格式: PPT
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
最新嵌入式linux在arm开发板上的移植PPT课件.ppt
嵌入式嵌入式linuxlinux在在armarm开发板上开发板上的移植的移植嵌入式嵌入式linux在在arm开发板上的移植开发板上的移植linux在嵌入式设备上的应用越来越广泛,非常多的嵌入式设备都开始由使用其它嵌入式OS向使用linux转变。随着嵌入式技术的发展,现在有越来越多的人才投入到嵌入式开发队伍中来,为了初学者能更快的踏进嵌入式开发的大门,有大量的开发板、学习板也应运而生,以基于arm处理器的最多,所以今天所介绍的主题就是“嵌入式linux在arm开发板上的移植”,希望能对刚开始接触嵌入式开发的爱好者们提供一些微薄的帮助。嵌入式系统的引导文件的下载嵌入式系统的引导文件的下载特殊芯片的特殊引导方法 l很多嵌入式处理器都提供了自举模式(Bootstrap),供用户写入引导代码。l自举模式利用了固化在芯片内部的一段引导程序,当处理器复位时,如果在特定引脚上加信号,则处理器将在复位后执行固化ROM中的程序。l自举ROM中的程序完成串口的初始化,然后等待用户从串口写入用户代码。嵌入式系统的引导文件的下载嵌入式系统的引导文件的下载 Cirrus Logic的 clps7111Ep9312 系列ARM core的CPU内置128 字节的boot 程序。这个这个boot程序的功能是程序的功能是:l设置串行口的参数为:9600,8N1,No FlowControl。l然后送出一个 字符 l跳转去执行这 2K 的程序。嵌入式系统的引导文件的下载嵌入式系统的引导文件的下载MX1 的bootstrap 模式 lMX1提供了4条复位引脚,复位时引脚不同的电平组合可以从不同的片选端启动系统。自举模式所能接受的是一种专门格式的文本文件,包括数据和要写入/读出的地址。l通过usb接口下载引导程序(引导程序(bootloader)lPC 机中的引导加载程序由 BIOS(其本质就是一段固件程序)和位于硬盘 MBR 中的 OS Boot Loader(比如,LILO 和 GRUB 等)一起组成 l嵌入式系统中,加载启动任务就完全由 Boot Loader 来完成,Boot Loader 就是在操作系统内核运行之前运行的一段小程序 lBoot Loader 一般由 硬件初始化、通信设备驱动、通信协议处理几个部分构成,有些bootloader还具有写flash的功能 引导程序(引导程序(bootloader)PC机引导方式:lBIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 Boot Loader 读到系统的 RAM 中,然后将控制权交给 OS Boot Loader。lBoot Loader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。引导程序(引导程序(bootloader)嵌入式bootloaderl在嵌入式系统中,通常并没有像 BIOS 那样的固件程序(注,有的嵌入式 CPU 也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由 Boot Loader 来完成。l系统在上电或复位时通常都从地址 0 x00000000 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序。引导程序(引导程序(bootloader)嵌入式bootloader的作用与特点lBootloader的作用是初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。lBoot Loader 是严重地依赖于硬件而实现的,不可能实现一个通用的bootloader。引导程序(引导程序(bootloader)Bootloader的实现:l由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。l依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。l而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。引导程序(引导程序(bootloader)Boot Loader 的的 stage1 通常包括以下步骤通常包括以下步骤(以执行的先后顺序以执行的先后顺序):l硬件设备初始化 l为加载 Boot Loader 的 stage2 准备 RAM 空间 l拷贝 Boot Loader 的 stage2 到 RAM 空间中 l设置好堆栈 l跳转到 stage2 的 C 入口点 引导程序(引导程序(bootloader)Boot Loader 的的 stage2 通常包括以下步骤通常包括以下步骤(以执行的先后顺序以执行的先后顺序):l初始化本阶段要使用到的硬件设备 l检测系统内存映射(memory map)l将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中 l为内核设置启动参数 引导程序(引导程序(bootloader)常用的bootloader lBlob http:/www.lart.tudelft.nl/lartware/blob/lRedboot http:/ 交叉编译环境的建立交叉编译环境的建立 l安装linux 服务器或windows 下的cygwin 环境 lGcc 和 glib c 的获取与安装 交叉编译环境的建立交叉编译环境的建立lLinux 服务器,通常选择 Redhat或Debian。安装成个人桌面、工作站和Server都可以。lCygwin 主要是针对在windows下建立交叉开发环境而提供的一种虚拟的unix模拟环境。交叉编译环境的建立交叉编译环境的建立Cygwin 是Cygnus Solutions 公司开发的自由软件。l核心是写了一个共享库(cygwin.dll),把win32 API 没有的unix风格的调用(fork,signals,select)等封装在里面。也就是说基于win32API 写了一个unix系统库的模拟层。l下载网址:Http:/ 用于操作二进制文件的实用程序集合。它们包括诸如 ar、as、objdump、objcopy 这样的实用程序。lGcc GNU C 编译器。lGlibc 所有用户应用程序都将链接到的 C 库。避免使用任何 C 库函数的内核和其它应用程序可以在没有该库的情况下进行编译。交叉编译环境的建立交叉编译环境的建立获取途径获取途径:一些比较流行的已预编译的工具链包括那些来自 Compaq(Familiar Linux)、LART(LART Linux)和 Embedian(基于 Debian 但与它无关)的工具链 所有这些工具链都用于基于 ARM 的平台。arm Linux 内核的构建内核的构建 l获取linux 内核 l根据需要选取arm linux patch 文件并安装patch l配置和编译内核 arm Linux 内核的构建内核的构建获得linux 内核与arm patch llinux 内核参考下载网址:http:/www.kernel.org/pub/linux/kernel/v2.4linux-2.4.18-tar.gz 或 linux-2.4.18-tar.bz2 larm patch 参考下载网址:ftp:/ftp.arm.linux.org.uk/pub/armlinux/people http:/kernel.pr.kr/pub/armlinux/v2.4patch-2.4.18-rmk1.gz arm Linux 内核的构建内核的构建解压缩内核,打解压缩内核,打arm patch ltar xvzf linux-2.4.18.tar.gz 或 tar xvjf linux-2.4.18-tar.bz2cd linuxzcat ./patch-2.4.18-rmk1.gz|patch p1 l另一种打patch的方法:gzip patch-2.4.18-rmk1.gz 产生patch-2.4.18-rmk1文件cd linuxpatch p1 ./patch-2.4.18-rmk1 arm Linux 内核的构建内核的构建l内核编译过程 make mrpropermake target-devices_config (linux/arch/arm/def-config/mx1ads)make oldconfigmake depmake zImage将在 arch/arm/boot/下生成 zImage 内核文件。l随时可以通过 make menuconfig 或 make xconfig来配置内核。内核配置系统内核配置系统内核配置系统内核配置系统基本结构lMakefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则 l配置文件(config.in):给用户提供配置选择的功能;l配置工具:包括配置命令解释器和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。内核配置系统内核配置系统Linux 内核中的 Makefile 以及与 Makefile 直接相关的文件 lMakefile:顶层 Makefile,是整个内核配置、编译的总体控制文件 l.config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如 make config)larch/*/Makefile:位于各种 CPU 体系目录下的 Makefile,如 arch/arm/Makefile,是针对特定平台的 Makefile l各个子目录下的 Makefile:比如 drivers/Makefile,负责所在子目录下源代码的管理 lRules.make:规则文件,被所有的 Makefile 使用 内核配置系统内核配置系统顶层 Makefile 有两个主要的任务:l产生 vmlinux 文件l内核模块(module)为了达到此目的,顶层 Makefile 递归的进入到内核的各个子目录中,分别调用位于这些子目录中的 Makefile。嵌入式嵌入式linux的的root文件系统文件系统 几种主要的文件系统 lExt2 文件格式的ramdisklRomfs lCramfs 嵌入式嵌入式linux的的root文件系统文件系统lmke2fs-vm0/dev/ram 4096 lmount-t ext2/dev/ram/mnt lcd/mnt lcp/bin,/sbin,/etc,/dev.files in mnt lcd./lumount/mnt ldd if=/dev/ram bs=1k count=4096 of=ext2ramdisk 嵌入式嵌入式linux的的root文件系统文件系统一些要包含在 Ramdisk 中的重要目录是:l/bin 保存大多数象 init、busybox、shell、文件管理实用程序等二进制文件l/dev 包含用在设备中的所有设备节点l/etc 包含系统的所有配置文件l/lib 包含所有必需的库,如 libc、libdl 等与硬件相关的重要内核目录与文件与硬件相关的重要内核目录与文件lLinux/arch/armlLinux/arch/arm/mach-mx1ads mach-sa1100lLinux/arch/arm/boot/compressed/head.SlLinux/include/asm-arm-asmlLinux/include/asm-arm/arch-mx1adsarchlLinux/include/asm/arch/hardware.h完完 谢谢!