基于vxworks的bsp启动过程实例分析

基于vxworks的bsp启动过程实例分析

ID:33529434

大小:93.78 KB

页数:16页

时间:2019-02-26

基于vxworks的bsp启动过程实例分析_第1页
基于vxworks的bsp启动过程实例分析_第2页
基于vxworks的bsp启动过程实例分析_第3页
基于vxworks的bsp启动过程实例分析_第4页
基于vxworks的bsp启动过程实例分析_第5页
资源描述:

《基于vxworks的bsp启动过程实例分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一.引言BSP是系统用来管理外设的部分,由两部分组成:初始化、驱动程序。所谓初始化是指从系统上电复位开始直到windkernel和usrRoot根任务启动的这段时间,系统的执行过程。驱动程序就是一些包含I/O操作的子函数。初始化包括:CPUlnit^Boardlnit^SystemInitoCPUInit初始化CPU的内部寄存器。BoardInit初始化智能I/O的寄存器,将device打通。Systemlnit为系统的运行准驱动程序的特点是不能自动执行,只能被动调用。调用可以有三种方式:任务直接调用、任务调用Syst

2、emCall>任务调用服务。所以驱动程序可以抽象为三个层次:常规操作、与VxW'orks的接口、与Component的接口。常规操作是设备的固有操作逻辑,有两层含义:I/O编址微观上表现为CPU操作device的寄存器、宏观上表现为具体操作的含义。Statusr/wCPU.》Addresscontrolregister数字电路电f电I/Oprocessor光机械控制电路•••驱动程序与VxWorks的接口、驱动程序与Component的接口有三层含义:I/O管理、操作类型规整及参数规整。二、MPC8260ADSBoar

3、dBSP工作流程系统在上电Z后,第一个执行的为romlnit模块代码,该段代码单独存为一个文件:romlnit.Soromlnit.s是一个汇编级的程序,主要完成系统最基本的硬件初始化T•作。Romlnit模块分析:这个模块为VxWorksBootRom的入口代码,程序的入口点romlnit处是上电后首先执行的代码,他设置BOOT_COLD参数,该参数将被传送到romStart()@序。当程序sysToMonitor()运行时,它会跳到romlnit处后8字节的地方开始执行,来实现一次“热启动”。下面为冷启动与热启动的

4、具体实现:_romlnit:romlnit:blcold/*jumptothecoldbootinitialization*/nop/*到这条指令结束,两条指令共占用了8个字节*/blstart/*jumptothewarmbootinitialization*/cold:start:下面我们来看一看在cokl段里,程序作了那些工作:blstart/*jumptothewarmbootinitialization*/cold:lir3,BOOT_COLD/*setcoldbootasstarttype*//*根据前血的

5、注释,BOOT_COLD将会被传送到romStart()程序中去勺addisr4,0,0x0F01/*R4holdstheIMMRbaseaddress*/addisr5,0,0x0000/*Clearoutallmaskbits*/orir5,r5,0x0836stwr5,0x0104(r4)/*optionregisterforbank0*/isync/*synchronize*//*这段代码的目的是初始化寄存器Optionregisterbank0,将0x0836写入该寄存器*//**initializetheI

6、MMRregisterbeforeanynon-coreregisters*modification.ThedefaultIMMRbaseaddresswasOxOFOOOOOO,*asoriginallyprogrammedintheHardResetConfigurationWord.*/lis4HIADJ(INTERNAL_MEM_MAP_ADDR)addir4,r4,LO(INTERNAL_MEM_MAP_ADDR)addisr8,0,0x0F01/*IMMRwasatOxOfOOOOOO*/stwr4,0x0

7、1a8(r8)/*IMMRnowat0x04700000*/isync/*这段代码的目的是修改寄存器IMMR的值,重新设定内部内存的基址,有了这段代码,我们在修改该基址的时候,就可以直接通过修改INTERNAL_MEM_MAP_ADDR的值就可以完成,无需修改这段代码。*//**WhenthePowerPC8260ispoweredon,theprocessorfetchesthe*instructionslocatedattheaddress0x100.Weneedtojump*fromtheaddress0x100

8、totheFlashspace.*/lisr4,HlADJ(start)/*loadr4withtheaddress*/addir4,r4,LO(start)/*ofstart*/lisr5,HIADJ(romlnit)/*loadr5withtheaddress*/addir5,r5,LO(romlnit)/*ofromlnit

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

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

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