电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

wince6.0启动过程VIP免费

wince6.0启动过程_第1页
1/6
wince6.0启动过程_第2页
2/6
wince6.0启动过程_第3页
3/6
以S3C6410 为例子,S3C6410 的内部SRAM 地址为0x0C00 0000 ~ 0x0C00 1FFF,DRAM 的Base 地址为0x50000000 ,S3C6410 支持NAND,SD 启动,S3C6410 里面有固化的ROM, 当系统上电的时候,将执行固化ROM 中的代码,然后检查硬件的GPIO 配置,如果配置成NAND 启动,则把NAND 的前8K 读入内部的SRAM(stepping Stone)中,然后跳转到 Stepping Stone 的开头,执行Bootloader1 (也就是下文的stepldr), stepldr 负责把eboot 从NAND中搬到DRAM 中,然后执行eboot( boot loader 2),eboot 通过网络下载 NK.bin 或者从NAND 中把内核搬到DRAM 中,然后执行WINCE 内核.所以整个启动过程分为三阶段,stepldr -->eboot --> wince kernel . 下面详细地分析各个阶段. 一 bootloader 1 stepldr 从stepldr 的startup.s 开始.startup.s 主要是初始化硬件,中断,配置好C 运行的环境,然后跳转到main 函数中,执行C 代码. startuo.s 的流程是 : startup --> Enable I cache -->关闭watchdog ,Interrupt dosable -> 时钟初始化 --> 初始化DRAM 控制器 --> 初始化IRQ,SVC stack --> 判断是否睡眠 ---N--> Clear DRAM -->main --Y-> 跳到NK 的开头 (也就是DRAM + 0x100000 的地方) main.c : UART 初始化 --> nand 初始化 -> 从NAND 中把eboot 搬到DRAM 中 -->跳转到 eboot的开头 我们看代码有2 个全局变量。 ROMHDR * volatile const pTOC = (ROMHDR *)-1; 这个在 ROMImage 里面会赋值。 static BOOL g_bLargeBlock = FALSE; // For Large Block Check 这两个全局变量的位置为:500F0000 根据 stepldr.bib 二 bootloader 2 eboot startup.s startup --> Enable I cache -->关闭watchdog ,Interrupt dosable -> 时钟初始化 --> Disable VIC --> enable 中断 -->CLEAR DRAM(从1M 到128M 地址的DRAM,因为低 1M 地址 空间目前放的是eboot ) --> 初始化MMU Table (根据 g_oalAddressTable,把DRAM 的Base地址0x50000000 映射到0x80000000,此后地址都用虚拟地址) --> 初始化IRQ,SVC stack --> -->main main.c main --> BootloaderMain BootloaderMain 的流程: KernelRelocate -->OEMDebugInit(初始化串口,这样就可以打印信息了) -->OEMPlatformInit -->OEMPreDownload -->DownloadImage-->OEMLaunch (切...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

wince6.0启动过程

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部