该【嵌入式操作系统启动流程 】是由【博大精深】上传分享,文档一共【11】页,该文档可以免费在线阅读,需要了解更多关于【嵌入式操作系统启动流程 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。什么是BSP:
在通电后,,初始化硬硬件(boootroom)
支持VxWWorkss和硬件驱驱动通信(IImagee的底层驱驱动)
本质上是硬硬件驱动、初初始化的合合集;
研究BSPP内容:
系统imaage的生生成和imagge的种类类
imagee的dowwnloaad下载过过程
系统的启动动顺序和过过程
调试环境的的配置及远远端调试的的方式和方方法
相应BSPP设置文件件的修改((网络,串串口..))
BSP各文文件的组成成和作用..
要对系统底底层驱动清清楚,也就就是对CPPU及相关关的硬件有有所了解..主要是332微处理理器(上电电启动过程程,doownlooadiimagee的方式方方法,读写写ROM,,地址空间间分配,MMMU,寄寄存器,中中断定义,,..)..参照硬件件资料,多多读一些源源码会有所所帮助.
BSP主要要文件目录录的组成及及主要文件件的作用::
目录tarrget//conffig/AAll:
这个目录下下的文件是是所有BSSP文件共共享的,不不是特别需需要不要更更改里面的的任何文件件.
:
,#deffine或或#unddef方式式来更改设设置.
bootIInit..c:
在romIInit..s后,..s中的rromInnit())跳到这个个文件中的的romSStartt().来来执行必要要的解压和和ROMimagge的放置置.
::完成BBootROMimagge的初始始化和控制制.
:VxWoorksimagge的初始始化代码..
目录tarrget//conffig/ccompss/srcc:
涉及系统核核心的coomponnentss,主要由由targget/cconfiig/Alll中ussrConnfig..c中函数数调用
目录tarrget//conffig/bbspnaame:
包含系统或或硬件相关关的BSPP文件.
Makeffile
一些命令行行控制immagess的生成,,参见BBSP设置置部分及生生成下载
READMME
BSP发布布纪录,版版本,总的的文档
包括所有涉涉及CPUU主板的设设置及定义义(inccludees,deefinaationns),参参见BSSP设置文文件及生成成下载
网络驱动的的主要设置置文件,主主要对ENND驱动设设置.
汇编语言文文件,是VVxWorrksBBootROM和和ROMbaseedimmage的的入口,参参见系统统启动部分分
汇编语言文文件,程序序员可以把把自己的汇汇编函数放放在这个文文件里,,是在RRAM中执执行的第一一个函数..
包含一些系系统相关的的函数例程程,提供了了一个booard--leveel的接口口,VxWWorkss和应用程程序可以以以systtem-.
可选文件用用于Scssi设备设设置和初始始化.
可选文件用用于所有的的串口设置置和初始化化.
ASIC文文件包含VVxWorrksBBootROM代代码
VxWorrks
运行在目标标机上,完完整的,连连结后的VVxWorrks二进进制文件..
完全的,连连结后带有有符号表的的VxWoorks二二进制文件件
完全的,连连结后,sstanddalonne,带有有符号表的的VxWoorks二二进制文件件
VxWorrksIImagee
VxWorrksiimageescoonsisstoff:
Textsegmment----exxecuttableeinsstrucctionn.
Datasegmment----Innitillizeddgloobalandstatticvvaribbles..
BSS.
分类和工作作机理:
Bootrrom不是是VxWoorksImagge,不参参与讨论它它本质上是是一段Boootpprogrram,最最少的系统统初始化,,,,如boootromm和booot_unncmp..,.
VxWoorks本质上分分为两大类类:
Vxworrks分为为两大类::
Uploaadedimagges(通通过网口、串口、硬盘盘、软盘、DDOC、RROM中加加载到R
AAM中执行行的)
vxWorrks--bassicTTornaado,shelll和symbbolttablee在主机机端
(文件很很大)-独立的imagge,包含含shelll和ssymbooltaable在在目标板运运行
ROMbbaseddimaages((直接烧入入ROM的的VxWoorks)):
VxWorrks_RRom类的的Vxwoorks又又分了两类类:1)驻驻留的reesideent22)不住留留的
不住留的ROM–BassedVVxWorrksIImagee
驻留的VxxWorkks_room_reesideent
说的再具体体点:
可下载的VVxworrksiimagee
ROM中烧烧制的Immage
vxWorrks_rrom--TorrnadooinROM,,非压缩,,在RRAM中中运行
-TTornaadoiinROOM,非非压缩,在在ROMM中运行行
-Stannd-alloneinRROM,压缩,RAM中运行
--Staand-aaloneeinROM,,非压缩缩,ROOM中运运行
VxWorrks在存存储介质中中的存放方方式
启动
启动概述
Bootrrom的的启动
最少的系统统初始化,,,,如boootromm和booot_unncmp..,.
(()----->()----->文文件boootConnfig..c中的uusrInnit())------>syysHwIInit(()------>uusrKeernellInitt()------>>KernnelInnit(uusrRooot,....)
其其中/ttargeet/coonfigg/alll/boootConnfig...
usrRooot())----->boootCmddLoopp(voiid)命令令行选择,,或auttoboootingg------>boootLooad(ppLinee,&eentryy)加载模模块到内存存(网络,,TFFSS,TSFFS....)------>nnetiffAttaach())----->go((entrry)------>>(enttry)(()从入口口开始执行行,不返回回.
各个函数的的主要作用用
romInnit())------powweruup,diisablleinnterrrupt,,putbootttyppeonntheestaack,cclearrscaachess.
romSttart(()------looadIImageeSeggmenttsinntoRRAM.
usrInnit())------Intterruuptllockout,,saveeimfformaationnabooutbboottypee,hanndlealltheInittialiizatiionbbeforrethhekeernellisactuuallyystaartedd,theensttartsstheekerrnelexeccutioontoocreeateaniinitiialttaskusrRRoot(().Thhisttaskcomppleteesthhesttartup.
sysHwwInitt()------IInterrruplockked,IInitiializzeshhardwware,,regiisterrs,acctivaationnkerrnel
KerneelIniit(ussrRooot,....)------
Initiializzesaandsstarttsthhekeernell.
Definnesssysteemmeemoryyparrtitiion.
ActivvatessattasktUsrrRootttocomppleteeiniitaliizatiion.
Unloccksiinierrruptts.
UsesusrIInit(()staack.
usrRooot())
初始化内存存分区表((memooryppartiitionnlibbraryy)
初始化系统统系统时钟钟(sysstemclocck)
初始化输入入输出系统统(I/OOsysstem))-----可选
Creattedeevicees-----可选
设置网络((Conffigurreneetworrk)----------可选选
激活WDBB目标通信信(ActtivatteWDDBaggent))-----------可选
调用程序((Actiivateeappplicaationn)
VxWorrks的启启动
LoadaableVxWoorks的的启动
使用Boootromm进行最小小系统起动动
加载程序段段、数据段段、BBSS段
跳转到RAAM中运行行的VxWWorkss的启动(详详见下面)
VxWorrk_ROOM的VxxWorkks启动
ROM中运运行的VxxWorkks的启动动
VxWorrks在RROM中运运行,即写写入ROMM中的VxxWorkks是非压压缩的,不不需要解压压,系统直直接跳到RROM的首首地址,::ROM运运行的VxxWorkks并不支支持所有的的主扳,应应以主扳手手册为准..
(()----->()----->()------->syssHwInnit())------>ussrKerrnelIInit(()------>KKerneelIniit(ussrRooot,....)
VxxWorkks在ROOM中运行行主要是为为了节省RRAM空间间,以便应应用程序有有更大的空空间运行..只把VxxWorkksimmage的的dataa段复制到到RAM的的LOCAAL_LOOW_ADDRS,textt部分留在在ROM并并在ROMM中执行..
ROM中运运行的VxxWorkks缺点是是运行速度度慢.
RAM中运运行的VxxWorkks的启动动
嵌入式操作系统启动流程 来自淘豆网m.daumloan.com转载请标明出处.