嵌入式linux培训讲座

上传人:mg****85 文档编号:45640692 上传时间:2018-06-18 格式:PDF 页数:38 大小:489.22KB
返回 下载 相关 举报
嵌入式linux培训讲座_第1页
第1页 / 共38页
嵌入式linux培训讲座_第2页
第2页 / 共38页
嵌入式linux培训讲座_第3页
第3页 / 共38页
嵌入式linux培训讲座_第4页
第4页 / 共38页
嵌入式linux培训讲座_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《嵌入式linux培训讲座》由会员分享,可在线阅读,更多相关《嵌入式linux培训讲座(38页珍藏版)》请在金锄头文库上搜索。

1、嵌入式嵌入式Linux培训讲座培训讲座武汉市瑞思信息技术有限公司武汉市瑞思信息技术有限公司 http:/http:/PDF 文件使用 “pdfFactory Pro“ 试用版本创建 嵌入式嵌入式嵌入式嵌入式LinuxLinux系统定制系统定制系统定制系统定制n n培训内容:培训内容:n n嵌入式嵌入式LinuxLinux系统构建:系统构建:bootloaderbootloader、 内核、文内核、文 件系统、测试工具等。件系统、测试工具等。n n课时分配:约课时分配:约6 6课时课时n n培训要求:培训要求:n n了解嵌入式了解嵌入式LinuxLinux操作系统的基本原理操作系统的基本原理n

2、n掌握嵌入式掌握嵌入式LinuxLinux系统的定制过程系统的定制过程PDF 文件使用 “pdfFactory Pro“ 试用版本创建 嵌入式嵌入式嵌入式嵌入式LinuxLinux系统基本组成系统基本组成系统基本组成系统基本组成n n嵌入式嵌入式LinuxLinux组成部分组成部分n n初始化启动代码:初始化启动代码:BootloaderBootloadern n嵌入式嵌入式LinuxLinux操作系统内核:操作系统内核:kernelkerneln n根文件系统:根文件系统:rootfsrootfsn n用户应用程序用户应用程序PDF 文件使用 “pdfFactory Pro“ 试用版本创建

3、系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern n处理器启动方式处理器启动方式n n基本原理:硬件复位基本原理:硬件复位- - 处理器模式处理器模式- - 设置程序设置程序 指针指针PCPC和堆栈指针和堆栈指针SPSP- - 转向执行转向执行PCPC处的代码。处的代码。n n典型处理器举例:典型处理器举例:n nX86X86:硬件复位后,进入实模式,执行:硬件复位后,进入实模式,执行FFFF:0000FFFF:0000处处 的代码(实际为的代码(实际为BIOSBIOS代码)代码)n nARM(S3C2410ARM(S3C2410、SA1110SA1110、S

4、TA2001)STA2001):硬件复位后,:硬件复位后, 一般进入管理模式,执行地址为一般进入管理模式,执行地址为0 0处的代码处的代码( (多为多为 FlashFlash,与处理器配置有关,与处理器配置有关) )n n68K(68EZ32868K(68EZ328、68VZ328)68VZ328):硬件复位后,一般进入:硬件复位后,一般进入 SupervisorSupervisor模式,执行地址为模式,执行地址为0 0处指示的处指示的FlashFlash代码代码PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBoo

5、tloadern nBootloaderBootloader基本原理基本原理n n系统初始代码,用于引导操作系统系统初始代码,用于引导操作系统n n主要功能:主要功能:n n初始化硬件初始化硬件n n建立内存空间映射建立内存空间映射n n引导操作系统引导操作系统n n用户操作功能:内存检查、操作系统文件下载、核用户操作功能:内存检查、操作系统文件下载、核 心参数设置、心参数设置、FlashFlash读写等。读写等。PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern n典型的典型的Bootloade

6、rBootloadern nX86X86:BIOSBIOS代码执行基本的初始化,代码执行基本的初始化,LILOLILO或或 GrubGrub则是典型的则是典型的BootloaderBootloader程序。程序。n nARMARM:u u- - bootboot、armbootarmboot、redbootredboot、blobblob、vivivivi等等n nPPCPPC:u u- - bootboot、ppcbootppcboot、redbootredboot等。等。n n目前我们采用的目前我们采用的BootloaderBootloader:SA1110SA1110: blob(htt

7、p:/www.lart.tudelft.nl/lartware/blobblob(http:/www.lart.tudelft.nl/lartware/blob/)/), S3C2410S3C2410:vivi(http:/vivi(http:/) )PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern nBootLoaderBootLoader的结构的结构n n一般分为两个阶段:一般分为两个阶段:Stage 1Stage 1和和Stage2Stage2n nStage1Stage1:多用汇编语言完

8、成:多用汇编语言完成n n硬件设备初始化硬件设备初始化n n为为Stage2Stage2准备准备RAMRAM空间空间n n拷贝拷贝Stage2Stage2到到RAMRAM中中n n设置好堆栈设置好堆栈n n跳转到跳转到Stage2Stage2的入口的入口PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern nBootLoaderBootLoader的结构的结构n nStage2Stage2:n n初始化本阶段使用到的硬件设备初始化本阶段使用到的硬件设备n n检测系统内存映射检测系统内存映射n n将将

9、KernelKernel和根文件系统从和根文件系统从FlashFlash上读到上读到RAMRAM空间空间n n设置内核启动参数设置内核启动参数n n引导内核引导内核PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern nBootloaderBootloader启动代码举例启动代码举例n n以以BlobBlob为例:为例:StrongARMStrongARM SA1110SA1110n nStage1 Stage1 初始程序:初始程序:start.Sstart.S .text.text . .glob

10、lglobl _ _start_startstart_start: :b bresetreset . . reset:reset:/* First, mask *ALL* interrupts */* First, mask *ALL* interrupts */ ldrldr r0, IC_BASEr0, IC_BASE movmov r1, #0x00r1, #0x00 strstr r1, r0, #ICMRr1, r0, #ICMR . . bl bl memsetupmemsetup . . relocate:relocate: adradrr0, _startr0, _start/

11、* relocate the second stage loader */* relocate the second stage loader */ add r2, r0, #(64 * 1024)add r2, r0, #(64 * 1024)/* blob maximum size is 64kB */* blob maximum size is 64kB */ add r0, r0, #0x400add r0, r0, #0x400/* skip first 1024 bytes */* skip first 1024 bytes */ ldrldrr1, BLOB_STARTr1, B

12、LOB_START /* r0 = source address r1 = target address r2 = source e/* r0 = source address r1 = target address r2 = source end address */nd address */ copy_loopcopy_loop: : ldmialdmia r0!, r3r0!, r3- - r10r10 stmiastmia r1!, r3r1!, r3- - r10r10 cmpcmp r0, r2r0, r2 bleble copy_loopcopy_loop . . ldrldr

13、r0, BLOB_STARTr0, BLOB_START mov pc, r0mov pc, r0PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern nBootloaderBootloader启动代码举例启动代码举例n nBlob Stage2:Blob Stage2:n ntrampoline.Strampoline.S . .globlglobl _trampoline_trampoline _trampoline:_trampoline: /* clear the BSS section *

14、/* clear the BSS section */ ldrldr r1, r1, bss_startbss_start ldrldr r0, r0, bss_endbss_end subsub r0, r0, r1r0, r0, r1/* r1 = start address */* r1 = start address */ /* r0 = #number of bytes */* r0 = #number of bytes */ movmovr2, #0r2, #0clear_bssclear_bss: : stmiastmia r1!, r2r1!, r2 subssubs r0,

15、r0, #4r0, r0, #4 bnebne clear_bssclear_bss/* setup the stack pointer */* setup the stack pointer */ ldrldr r0, r0, stack_endstack_end subsub sp, r0, #4sp, r0, #4/* jump to C code */* jump to C code */bl blmainmainn nmain.cmain.c intint main(voidmain(void) ) . . PDF 文件使用 “pdfFactory Pro“ 试用版本创建 系统启动和系统启动和系统启动和系统启动和BootloaderBootloadern nBootloaderBoot

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号