您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > OMAPL138的boot顺序
一:PSC的默认值和bootloader不矛盾.正因为ARM核默认是disable的,所以一开始需要由DSP核去唤醒ARM核,ARM核起来后,DSP核进入IDLE状态,所以DSP核还是需要ARM核去唤醒然后才能boot程序.OMAP-L138的bootsequence如下.Whenthedeviceispoweredon,itstartsexecutionfromDSPROM.ARMisininthedisablestateatthismoment.TheDSPROMcodewilloReadcertainregisterstoknowthatARMispresent.(OtherwiseitwillbeaDSP-onlyboot)oProgramPDSP0toprepareforARMresetvector.oBringARMoutofresetandletARMstartsexecutionfromitsROM.(Yes,that'sthemaindifferencefromOMAPL137silicon1.x.ARMhasitsownROMandwillmasterthebootprocessafterwards)oDSPstillsintheidleloop.ARMstartsexecutionfromitsROM.ItwilloPutDSPintodisablestate(probablylocalreset).oInitializeHW,i.e.PSC,PLL,externalmemoryetc.oReadbootcfgregisterstodecidewhatbootmodeitwillbeandloadandrunARMUBLfromappropriatebootmedia,i.e.SPIflash,NAND,NORetc.ARMUBLstartsrunning.ItsbehavioristotallydefinedbytheSW.Forexample,oTIprovidedARMUBLwillloadandrunUBOOTwhichwillfurtherloadandrunLinux.TheLinuxapplicationcanloadandrunDSP.outviaDSPLINK.ThismodelisthesameasDaVincimodel.oIndustrialcustomerscanchoosetoloadandrunaDSPAISimageincertainbootmedia.MeanwhileARMUBLalsostartsbootingUBOOTandLinux.Inthatway,DSPcanstartprocessingdatabeforeLinuxfinishingboot.OMAP-L137的bootsequence是基于DSP核的,跟OMAP-L138是反的,所以OMAP-L137可以不用ARM核,只用DSP核启动.二:我在网上查到的OMAPL138的BOOT过程是下面这样的:1.开机上电,用户在BOOT管脚上配置的启动方式被锁定采样到SYSCFG模块的BOOTCFG寄存器,从而确定可处理器的启动方式。2.PSC模块中的启动默认值是:ARM核休眠,DSP核使能。所以这时候DSP启动,DSP从片内DSPL2ROM处读取指令执行。这里有TI已经固化的仅DSP核可以访问的ROMBloader,简称DSPRBL。3.DSP的RBL做一些简单的初始化后,就通过PSC模块使能ARM核,休眠自己。然后ARM就开从片内的RAMLocalROM处读取指令并执行,这里面有TI已经固化好的ARMROMBootloader,简称ARMRBL。4.ARM的RBL做一些初始化后,根据BOOTCFG寄存器的设定,从指定的地方读取用于启动U-Boot的Bootloader,即U-BootBootLoader,简称UBL。UBL可以放在Nandflash,或者通过串口下载等方式取得。值得说明的是,这里的UBL是(AISApplicationImageScript)格式,而不是通常的BIN格式。5.当ARMRBL读取到UBL后就根据AIS格式中的命令初始化、加载并运行UBL。然后就是UBL加载运行U-Boot,U-Boot根据启动参数启动Linux,Linux根据启动参数加载根文件系统。6.这时ARM核上的Linux就运行起来了,但DSP还处于休眠状态。在Linux经过一系列初始化后会执行跟文件系统中/etc/profile的指令。我们在这里添加插入DSPLink内核模块的命令,就会在/dev目录下产生一个叫dsplink的设备文件。这个DSPLink内核模块就是通过前面所说的中断和PSC设定就可以完成与DSP的通信与控制。7.然后再执行我们自己的ARM端程序,在ARM端程序中使用DSPLink的库函数来访问dsplink设备,从而在用户空间实现对DSP核的控制与通信。在我们写的ARM端程序中使用DSPLink库函数加载DSP端的应用程序到内存,使用DSPLink的PROC函数启动DSP核。然后ARM核和DSP核就都各自独立运行起来了,通过DSPLink来进行通信
本文标题:OMAPL138的boot顺序
链接地址:https://www.777doc.com/doc-4677234 .html