SB3使用问题!打开文件后什么都看不到!
可能电脑坏了吧
询问一下SB3那个MOD导入怎么用
同时,程序默认是同时生成一个备份PP文件,以更改文件名(一般是加“.bak0”字样)的形式为你留一份原始存档.也就是说,保存修改之后,原位置的原名.pp文件就是改动了的文件,而在它旁边那个名字近似的才…
GTA SA的 CS文件怎么改啊 我用SB3 保存了是个 TXT文件.
CS文件是放到cleo文件,TXT是MOD,用IMGTool替换.
SB文件怎么打开
去你那个BIOS的官方找到对应型号会有下载安装文件的
sb用什么格式?
用us对.
sb文件怎么运行
这是Scratch1.4文件,具体可以搜一下“Scratch”,有官网或者其他网站下载.或者有其他的打开方法,不过我就知道这个
导入sb以及安装软件
链接手机到电脑,选择你已有的sb方案,之后导入就好了,没导入sb的话不能安装下载好的jad格式文件
SB是什么啊?在哪啊?怎么导入SB?感谢黑莓高手给指点!
service book 中文意思就是服务预定. 文件格式为blackberry所独有的ipd格式,是blackberry手机上网、使用邮件必须要导入的一个文件. service book中包含了blackberry手持设备使用浏览器上网所需的服务器接入参数. 因为blackberry fans众多,在国内论坛上注册的一般都是几十万,许多网友习惯性的把service book简称为: SB . 它的位置在:手机 “选项”-“高级选项”-“服务预订”.
黑莓9800怎么导入SB文件.详细步骤 越详细越好!
进入手机选项,设备,高级系统设置,服务预订,进去后直接用键盘输入sbeb,弹出一个提示框,按OK,手机上的准备工作就完成了,然后连接电脑,运行桌面管理器,选择恢…
如何生成wince内核的sb文件
WindowsCE6.0启动过程分析在WindowsCE6.0中,内核(Kenerl)和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分,其中启动代码(startup)和OAL层的实现部分不再与内核链接生成NK.exe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OAL层的实现部分编译成oal.exe,而与内核相关且独立于硬件的OAL层代码包含在kernel.dll中;内核无关传输层(KITL)的支持代码从OAL层分离出来编译成kitl.dll。从表面上看,好像只是代码重新组合了一下,从帮助文档中BSP的移植过程看好像也是这么一回事,实际上,整个WindowsCE6.0内核布局发生了很大的改变。WindowsCE6.0的启动过程也是如此,如果你想按照WindowsCE5.0的启动顺序去分析WindowsCE6.0的启动顺序,可能会走到一个死胡同。主要是因为WindowsCE6.0在启动过程中调用了kernel.dll和kitl.dll两个动态链接库的原因,而且WindowsCE6.0不再编译生成KernKitlProf.exe内核文件。从WindowsCE6.0的帮助文档可以看出,WinCE6.0的启动只与oal.exe和kernel.dll有关,至于kitl.dll,只有将操作系统编译成具有KITL功能时才用到。分析WindowsCE6.0的启动过程实际上找到编译oal.exe和kernel.dll的源码位置。首先看一下将WinCE6.0编译成诸如WinCE5.0所说的基本内核情况,即kern.exe。对于oal.exe源码位置比较容易找到,因为oal.exe是启动代码与硬件相关的OAL层实现文件编译而成,所以只需在BSP的OAL目录中便能找到。而对于kernel.dll,在BSP目录结构中,基本上无法找到kernel.dll的编译文件,所以必须从其他方面着手。下面为WinCE6.0的编译日志输出文件:makeimg.out在文件复制过程的一部分:CopyingE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\oal.exetoE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\nk.exefordebuggerCopyingE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kern.dlltoE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kernel.dllfordebugger从日志输出文件可以看出,在文件复制过程中,WinCE6.0编译器将oal.exe更名为nk.exe,而将kern.dll文件更名为kernel.dll,也就是说,kern.dll文件的实现部分就是kernel.dll的实现体。根据前面的分析,oal.exe是与硬件相关独立于内核的OAL层的实现部分,而kernel.dll为内核相关独立于硬件的OAL层的实现部分。同样可以从最后整合后的二进制配置文件ce.bib文件中看出端倪。;@CESYSGENIFCE_MODULES_NKnk.exeE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\oal.exeNKSHZkitl.dllE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kitl.dllNKSHZkernel.dllE:\WINCE600\OSDesigns\xsbase270\xsbase270\RelDir\XSBase270_ARMV4I_Release\kern.dllNKSHZ;@CESYSGENENDIF而kern.dll动态库在整个WindowsCE6.0中没有显式编译过程,即没有一个sources文件有kern.dll的编译过程,所以只能从操作系统的编译文件Makefile中寻找其编译过程。下面看一下$(_PUBLICROOT)\common\CESYSGEN\makefile中的部分内容:nk::$(NK_COMPONENTS)$(NK_REPLACE_COMPONENTS)@copy$(SG_INPUT_LIB)\oemstub.pdb$(SG_OUTPUT_OAKLIB)@copy$(SG_INPUT_LIB)\oemstub.lib$(SG_OUTPUT_OAKLIB)setTARGETTYPE=DYNLINKsetTARGETNAME=kernsetRELEASETYPE=OAKsetDLLENTRY=NKStartupsetDEFFILE=NO_DEF_FILEsetTARGETLIBS=setSOURCELIBS=%%NKLIBS%%$(SG_INPUT_LIB)\nkmain.lib$(SG_INPUT_LIB)\fulllibc.lib$(MAKECMD)/NOLOGONOLIBC=1kern.dll从上述代码中可以发现,原来kern.dll动态库是从oemstub.lib编译而来,而且与nkmain.lib有关。在理顺了上述文件的相互之间的关系之后,再来分析WindowsCE6.0的启动过程可能就比较容易啦。在理清了上述文件的关系之后,便可以分析任意一款基于ARM微处理器的WindowsCE6.0的启动过程,现在以深圳亿道电子技术有限公司开发的基于PXA270ARM开发平台为例,分析WindowsCE6.0操作系统启动过程。1、Startup函数:从WindowsCE6.0的帮助文档可以看出,WinCE6.0的启动只与oal.exe和kernel.dll有关,至于kitl.dll,只有将操作系统编译成具有KITL功能时才用到。分析WindowsCE6.0的启动过程实际上找到编译oal.exe和kernel.dll的源码位置。oal.exe的通过Startup函数完成硬件的初始化。Startup.s代码与该硬件平台的Bootloader启动代码共用,其中PreInit函数主要完成将ARM处理器工作模式切换到管理员模式、同时关闭MMU,并检测系统启动原因,如果是热启动、即在该函数调用之前已经启动了Bootloader程序,相当基本硬件初始化已经完成,则直接跳转到OALStartUp函数中;否则需要进行硬件中断屏蔽、内存、系统时钟频率、电源管理等硬件的基本初始化过程。(具体过程见代码的分析)$(_PLATFORMROOT)\xsbase270\src\common\Startup\Startup.sLEAF_ENTRYStartUpblPreInittstr10,#RCSR_HARD_RESETbeqOALStartUptstr10,#RCSR_GPIO_RESETbneContinue_StartUpblxlli_mem_init;初始化内存控制器ldrr0,=xlli_PMRCREGS_PHYSICAL_BASE;ldrr0,[r0,#xlli_PSPR_offset];movr1,r10;blXllpPmValidateResumeFromSleep;cmpr0,#0;bneFailed_Sleep_Resume;Sleep_Resetldrr0,=xlli_PMRCREGS_PHYSICAL_BASE;ldrr0,[r0,#xlli_PSPR_offset];movr1,r10;bXllpPmGoToContextRestoration;Failed_Sleep_Resumeldrr1,=xlli_RCSR_SMRbicr10,r10,r1Continue_StartUpblxlli_intr_init;;初始化中断控制器blEnableClks;;使能内核时钟(内存/OS定时器/FFART时钟之需)blOALXScaleSetFrequencies;设置系统频率blxlli_mem_Toptblxlli_mem_restart;复位内存,使其处于工作模式blxlli_ost_init;初始化操作系统定时器blxlli_pwrmgr_init;初始化电源管理blxlli_IMpwr_init;初始化内部存储器bENTRY_END2、OALStartUp函数:在系统硬件初始化完毕之后,Startup调用OALStartUp函数,OALStartUp函数主要完成将OEMAddressTable表传递给内核;然后调用KernelStart函数跳转到内核OEMAddressTable表的主要作用表的每一个入口都定义了一个内存中的物理位置、内存的大小以及映射这物理地址的静态虚拟地址;◆静态虚拟内存地址被定义在缓冲存储器的范围之内;◆内核可以创建非缓冲的内存地址指向到相同的物理地址;◆对于同一物理地址,既有一个缓冲的虚拟内存地址,也有一个非缓冲的虚拟内存地址;◆OEMAddressTable最后必须以0结尾;◆对于MIPS和SHx类型的CPU,物理地址与虚拟地址的映射由CPU完成,无需创建OEMAddressTable$(_PLATFORMROOT)\xsbase270\src\Inc\Oemaddrtab_cfg.inc):$(_PLATFORMROOT)\xsbase270\src\oal\OalLib\Startup.s3、KernelStart函数主要作用:◆完成OEMAddressTable表中的物理地址到虚拟地址和虚拟地址到物理地址之间的映射;◆对存储器页表和内核参数区存储空间(RAM或DRAM)进行清零处理。◆读出CPU的ID号,内核需要根据该ID决定ARM的MMU处理,因为ARMV6和ARMV6之前的ARM处理器的MMU处理过程有所区别;◆设置并开启MMU和Cache,因为在Startup函数关闭MMU和Cache;◆设置ARM处理器工作模式的SP指针,ARM处理器共用7种不同的工作模式(USER、FIQ、IRQ、Supervisor、Abort、Undefined、System),除用户模式(USER)和系统模式(System)之外,其他5种工作模式都有具有特定的SP指针寄存器(ARM处理器称其为影子寄存器);◆读取内核启动所需要的KDataStruct结构体;◆调用ARMInit函数重新定位WindowsCE内核参数pTOC和初始化OEMInitGlobals全局变量;◆利用movpc,r12指令跳转到kernel.dll的入口位置,即NKStartup函数中。$(_PRIVATEROOT)WINCEOS\COREOS\NK\LDR\ARM\armstart.s4、ARMInit函数:在ARMInit之前,系统仍无法使用全局变量,因为系统的全局还在ROM区域,对于操作系统而言,出于安全考虑,只有XIP程序才有读取ROM区域数据的权利,对于大部分WindowsCE操作系统,只有将数据拷贝到RAM区域后才能进行读写,ARMInit函数中通过调用KernelRelocate函数对pTOC全局变量重新定位,定位之后,对内核启动所需要的KDataStruct结构体进行初始化,其中OEMInitGlobals便是交换oal.exe和kernel.dll之间的全局指针,ARMInit函数返回kernel.dll的入口位置。并在KernelStart函数最后利用movpc,r12指令跳转到kernel.dll的入口位置,即NKStartup函数中。$(_PRIVATEROOT)WINCEOS\COREOS\NK\LDR\ARM\arminit.c5、NKStartup函数:硬件平台初始化完成后,oal.exe的启动任务基本完成,余下的启动工作由内核相关且独立于内核的OAL层实现体kernel.dll接管。kernel.dll主要作用:◆从结构体参数KDataStruct*pKData提取内核启动时所必须的全局变量,同时初始化内核全局变量;◆定位对WindowsCE6.0特有的OEMGLOBAL结构体的初始化函数OEMInitGlobals地址,该结构体构建了内核和OAL层之间进行通信的桥梁。在OEMGLOBAL结构体定义了OAL层所必须的函数,该结构体在oemglobal.c文件中被初始化,并被编译在OEMMain.lib和OEMMain_StaticKITL.lib两个库中,如果OAL链接这两个库,则必须要有该结构体中函数实现体;◆通过调用ARMSetup设置物理地址和非缓冲的虚拟内存地址的映射、ARM中断向量以及内核模式所需要的堆栈。◆调用OEMInitDebugSerial函数初始化调试串口;◆调用OEMInit进行平台初始化;需要注意的时,NKStartup函数调用OEMInitDebugSerial和OEMInit函数的过程与WindowsCE6.0之前的版本完全不同,这是因为在WindowsCE6.0以前的版本中,由于内核(kernel)、OAL和KITL编译在一个可执行的文件中,它们之间的共享变量只需简单利用extern关键字申明便可相互之间进行访问,而在WindowsCE6.0中,由于内核(kernel)、OAL和KITL被编译成不同的可执行文件,变量之间的相互访问无法使用extern关键字实现共享,即内核无法使用externDWORDvarX方法访问OAL层的变量varX,当然OAL层的实现体同样无法通过同样的方式访问内核变量。为实现内核和OAL访问共享信息,WindowsCE6.0定义了OEMGLOBAL和GLOBAL两个结构体。在WindowsCE6.0的内核启动时,OS找到OAL的入口位置,然后调用入口函数与全局块进行指针交换,这样内核才能使用OAL层中的信息,同样OAL层才能访问内核(kernel)导出的函数。所以上述两个函数的调用实际上通过OEMGLOBAL结构体实现的。实际调用位置为$(_PRIVATEROOT)\winceos\coreos\nk\oemstub\oemstub.c中的OEMInitDebugSerial和OEMInit,这两个函数中通过OEMGLOBAL结构体指针访问OAL层中的OEMInitDebugSerial和OEMInit。首先看一下将WinCE6.0编译成诸如WinCE5.0所说的基本内核情况,即kern.exe。对于oal.exe源码位置比较容易找到,因为oal.exe是启动代码与硬件相关的OAL层实现文件编译而成,所以只需在BSP的OAL目录中便能找到。而对于kernel.dll,在BSP目录结构中,基本上无法找到kernel.dll的编译文件,所以必须从其他方面着手。调用KernelFindMemory()函数分割RAM区域,在WindowsCE操作系统中,RAM空间主要分为存储内存和程序内存,存储内存主要为文件的存储空间,包括内核文件和复制到系统中所有目标文件,程序内存为运行程序时所需要的存储空间。◆KernelStart()启动内核。$(_PRIVATEROOT)\WINCEOS\COREOS\NK\KERNEL\ARM\mdarm.cvoidNKStartup(structKDataStruct*pKData){。。。。}6、KernelSstart函数:这里的KernelStart函数与前面的KernelStart函数的属于两个完全不同的函数,NKStartup函数中调用的KernelStart函数为$(_PRIVATEROOT)\WINCEOS\COREOS\NK\KERNEL\ARM\armtrap.s文件中的KernelStart函数,主要完成调用内核初始化函数KernelInit,并跳转到操作系统的第一个启动的任务。LEAF_ENTRYKernelStartldrr4,=KData;(r4)=ptrtoKDataStructldrr0,=APIRetstrr0,[r4,#pAPIReturn];setAPIreturnaddressmovr1,#SVC_MODEmsrcpsr_c,r1;switchtoSupervisorModew/IRQsenabledCALLKernelInit;initializescheduler,etc.movr0,#0;nocurrentthreadmovr1,#ID_RESCHEDULEbFirstScheduleENTRY_END7、KernelInit函数:WindowsCE6.0的内核初始化函数同其他版本的内核初始化函数基本相近,主要完成在启动第一个线程前对内核进行初始化,主要包括API函数集初始化、堆的初始化、初始化内存池、进程初始化、线程初始化和文件映射初始化等操作。voidKernelInit(void)。。。{}8、FirstSchedule:FirstSchedule函数为WindowsCE操作系统启动过程中最后无条件跳转的一个函数,windowsCE进行第一个调度,实际为一个空闲线程,因为windowsCE系统还没有完成启动,只有当windowsCE完全启动并进入稳定状态,然后启动文件系统filesys.dll,设备管理device.dll,窗体图像子系统gews.dll和shell程序explore.exe。