嵌入式-医学ppt课件

嵌入式-医学ppt课件

ID:10097708

大小:1.84 MB

页数:72页

时间:2018-05-12

嵌入式-医学ppt课件_第1页
嵌入式-医学ppt课件_第2页
嵌入式-医学ppt课件_第3页
嵌入式-医学ppt课件_第4页
嵌入式-医学ppt课件_第5页
资源描述:

《嵌入式-医学ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章BootLoader技术P.871、BootLoader基本概念2、BootLoader的典型结构3、vivi简介4、vivi的编译与运行BootLoader的启动过程从固态存储设备上启动的BootLoader大多都是2阶段的启动过程,即启动过程可以分为阶段1和阶段2两部分2、BootLoader的典型结构阶段1依赖于CPU体系结构的代码,比如设备初始化代码等,通常都用汇编语言来实现阶段2通常用C语言来实现,这样可以实现一些复杂的功能,而且代码会具有更好的可读性和可移植性BootLoader

2、的阶段1通常包括以下步骤:硬件设备初始化。为加载BootLoader的阶段2准备RAM空间。拷贝BootLoader的阶段2到RAM空间中。设置好堆栈。跳转到阶段2的C入口点。阶段1-基本的硬件初始化屏蔽所有的中断。中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器(如ARM9的话就是CSPR)来完成。设置CPU的速度和时钟频率。RAM初始化。包括正确地设置系统的内存控制器的功能寄存器以及各内存库控制寄存器等。初始化LED。典型地,通过GPIO来驱动LED,其目的是表明系统的状态是OK还是Err

3、or。如果板子上没有LED,那么也可以通过初始化UART向串口打印BootLoader的Logo字符信息来完成这一点。阶段1-为加载阶段2准备RAM空间空间大小最好是memorypage大小(通常是4KB)的倍数。一般而言,1M的RAM空间已经足够了必须确保所安排的地址范围的的确确是可读写的RAM空间阶段1-拷贝阶段2到RAM中拷贝时要确定两点:阶段2的可执行映象在固态存储设备的存放起始地址和终止地址;RAM空间的起始地址。阶段1-设置堆栈指针P.91阶段1-跳转到阶段2入口在上述一切都就绪后,就

4、可以跳转到BootLoader的阶段2去执行了。比如,在ARM系统中,这可以通过修改PC寄存器为合适的地址来实现。BootLoader的阶段2通常包括以下步骤:初始化本阶段要使用到的硬件设备。检测系统内存映射(memorymap)。将kernel映像和根文件系统映像从Flash读到RAM空间中。为内核设置启动参数。调用内核。BootLoader阶段2介绍在编译和链接BootLoader这样的程序时,不能使用glibc库中的任何支持函数,需要设计如何跳入main()函数解决方案:trampoline

5、.text.globl_trampoline_trampoline:blmainb_trampoline阶段2-初始化阶段要使用到的硬件设备这通常包括:初始化至少一个串口,以便和终端用户进行I/O输出信息;初始化计时器等阶段2-检测系统的内存映射内存映射的描述used=1,则说明这段连续的地址范围已被实现used=0,则说明这段连续的地址范围并未被系统所实现typedefstructmemory_area_struct{u32start;/*内存区域基地址*/u32size;/*内存区域字节数*/

6、intused;}memory_area_t;阶段2-检测系统的内存映射内存映射的检测需要一个检测整个RAM地址空间内存映射情况的简单而有效的算法(书中提及了一种算法)阶段2-加载内核映像和根文件系统映像规划内存占用的布局内核映像所占用的内存范围根文件系统所占用的内存范围从flash上拷贝内存映像MEM_START+0X80001MB根文件映像MEM_START+0X001000001MB全局数据结构:启动参数或内核页表等信息阶段2-设置内核启动参数在嵌入式Linux系统中,通常需要由BootLo

7、ader设置的常见启动参数有:ATAG_CORE、ATAG_MEM、ATAG_CMDLINE、ATAG_RAMDISK、ATAG_INITRD等阶段2-调用内核BootLoader调用Linux内核的方法是直接跳转到内核的第一条指令处,也即直接跳转到MEM_START+0x8000地址处需要注意以下几点设置:CPU寄存器的设置CPU模式Cache和MMU的设置关于串口终端串口终端能够打印出BootLoader成功启动的信息向串口终端打印信息也是一个非常重要而又有效的调试手段需要正确的配置串口Boo

8、tingthekernel….3、vivi简介P.110vivi来自韩国,由mizi公司开发维护,但是现在已经停止开发了vivi适用于arm9处理器,它是三星官方板SMDK2410采用的BootLoader,通过修改之后可以支持S3C2440等vivi有两种工作模式:启动加载模式和下载模式vivi命令操作reset复位ARM9系统part命令用于对分区进行操作param命令用于对bootloader的参数进行操作bon命令用于对bon分区进行操作boot命令用于引导linuxker

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。