




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AP93启动流程1、u-boot启动流程AP93 u-boot启动过程主要分为二个阶段stage 1和stage 2。程序从start.S的_start开始执行。首先,初始化中断向量,寄存器清零,大致包括32个通用寄存器reg0-reg31和协处理器的一些寄存器:CP0_WATCHLO,CP0_WATCHHI,CP0_CAUSE, CP0_COUNT,CP0_COMPARE等等。之后,配置寄存器CP0_STATUS,设置所使用的协处理器,中断以及cpu运行级别(核心级)。配置gp寄存器,把GOT段的地址赋给gp寄存器。这时,开始执行lowlevel_init.S的lowlevel_init,主要目的是工作频率配置,比如cpu的主频,总线(AHB),DDR工作频率等。然后,调用cache.S的mips_cache_reset对cache进行初始化。这时,配置栈的地址,准备进入第二阶段-C语言阶段。进行调用函数board_init_f(board.c)进入函数board_init_f后,首先做一系列初始化:timer_init 时钟初始化env_init 环境变量初始化(取得环境变量存放的地址)init_baudrate 串口速率serial_init 串口初始化init_func_ram 初始化内存,配置ddr controlle这一系列工作完成后,串口和内存都已经可以用了。然后,就要把内存进行划分,在内存的最后一部分,留出u-boot代码大小的空间,准备把u-boot代码从flash搬移到这里。然后,是堆的空间,malloc的内存就来自于这里。内存划分好,就准备进行relocate code了。relocate code的意思是这样的。通常u-boot的执行代码肯定是在flash上(当调试的时候也可以放在ram上)。当启动起来以后,要把它从flash上搬移到ram里运行。这个工作就叫做relocate code。主要就把u-boot的执行代码直接从flash里copy到ram的相应区域。之后,就进入board.c的board_init_r函数,在这个函数里初始化 malloc,flash,pci 以及外设(比如,网口),最后进入命令行Linux kernel。其具体流程如下:图1 stage 1图2 stage 22、内核启动部分内核完成启动后,会解压缩初始化内存盘,并把它挂载为根文件系统,随后运行这个小文件系统里的启动脚本,完成一些特殊任务,例如启动时显示炫耀画面(bootsplash)、加载真实文件系统所在设备的硬件驱动模块以及其它重要模块等等,然后卸载初始化内存盘,并根据引导管理器传递过来的真实根目录的位置,使用新加载的初始化内存盘里的额外驱动以及必要的配置信息识别出真实根文件系统存放的设备,以只读方式加载真实根文件系统,并探测是否有一些重要目录和文件(例如:/sbin/init、/etc/fstab),如果根文件系统加载出错,就会报告:内核惊恐,找不到 init。如果根文件系统顺利加载,则运行常规开机文件系统检查对哪些设备上的文件系统进行检查,取决于/etc/fstab 配置文件里每行配置语句里最后的一个字段,那是一个数字,除了根文件系统是 1(强制),其它均为 0(不检测) 或者 2(总是检测),根据/etc/fstab 配置文件里指定的文件系统自动启动相应文件系统专用的 fsck工具扫描文件系统,遇到问题通常会自动修正错误,然后再以可读写方式重新挂载真实根文件系统,接着搜索并执行 /sbin/init 可执行程序(也可以是脚本),这样 init 成为系统里第一个进程,至此内核已将引导权交给 init 进程。图3 内核启动流程3、init进程执行Init 进程首先会搜索并运行启动脚本/etc/rc.d/rcS,rcS的执行流程如下:图4 init进程执行流程其中vstart的具体启动流程如下:图5 vstart 启动流程 4、版本相关命令4.1 版本相关信息定义 /etc/versionflag的定义: byte0: 目标版本,0:app0;1:app1 byte1: 失败次数 byte2: 启动方式,0:flash;1:tftp byte3: 当前运行版本,0:app0;1:app14.2查看版本信息的相关命令vlist详解1) vlist ver0 显示app0的版本号2) vlist ver1 显示app1的版本号3) vlist running显示当前运行的版本号4) vlist target获取目标版本号4.3版本烧写方式、版本选择命令vflag1) vflag change 当前版本和备用版本的切换2) vflag tftp 从服务器将包下载到ram中,再进行启动版本3) vflag flash 从flash将包解压到ram中,再进行启动版本4) vflag update 从指定tftp下载app.tar.gz,接着加载版本(默认的地址是36)5) vflag change ver1/ver0 想
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园费用开支管理制度
- 旅游公司游客管理制度
- 单位内部管理房管理制度
- pos售后岗位管理制度
- 学校电机房设备管理制度
- 景区演艺安全管理制度
- 单位电动车实名管理制度
- 喷绘厂财务数据管理制度
- 医保局物资验收管理制度
- 更夫看守人员管理制度
- 新版2025心肺复苏术指南
- 2024年秋儿童发展问题的咨询与辅导终考期末大作业案例分析1-5答案
- DL∕T 796-2012 风力发电场安全规程
- 2021年汽车吊载人吊篮作业安全专项措施
- 质量管理之CAPA教学课件
- 泌尿外科健康教育2膀胱冲洗健康宣教
- 焊接件通用技术要求
- 星子港件杂货港区总平面布置与码头结构设计
- 水墨印刷机操作规程
- 贵州省旅馆业特种行业许可证审批表
- 重庆市关于加强对旋挖桩成桩质量检测的通知
评论
0/150
提交评论