wm第三篇:WINDOWS MOBILE的OEM层应该如何开发

来源:互联网 发布:javascript教程pdf 编辑:程序博客网 时间:2024/05/02 23:21

前面说了wondows mobile的一些开发特性,这篇作为windows mobile 开篇之作,做了一个打开话题引子,对WM开发牵涉到的软件工程方面的想法进行了一个描述,第二篇,对bootloader 进行了一个框架介绍。

 

在第三篇,详细描述一下那么了微软的OAK代码后,在OEM层面,应该做什么开发。OEM层主要为了OEM客户提供一个手机升级下载的处理接口,一个是手机开机的处理流程。

(1)OEM层-系统内存的布局了解

在OEM层,开发设计者首先需要搞清楚的是,系统物理内存的分配布局:

%__winceroot%/platform/deviceemulator/src/inc/oemaddrtab_cfg_inc文件中,g_oaladdressTable数组,这个数组对RAM以及ROOT的使用情况做了一个很详细的描述,用户可以需要根据自己OEM的开发板情况进行一个详细修改以及配置。

 

(2)OEM层-startup函数

    这个函数在wince启动过程中,在系统上电以及复位以后,第一条指令就是执行startup此接口。在%__winceroot%/paltform/deviceemulator/src/bootloader/eboot/source 中

targetname = eboot

targettype=program

releasetye=platform

exeentry=startup

 

其中startup是采用汇编进行写的,在startup.s中,此函数主要目标是给CPU准备一个合适的工作环境,比如清空TLB和cache,关闭中断,配置PLL,设置内存控制器等。

可以简单的理解,startup属于芯片级别的CPU初始化;基本上是微软自己做好的,不太建议OEM客户进行修改,为了能使的OEM客户有一个私有的开发空间,便于和自己的BB做到软件和硬件绑定,wm做了一个很好WM启动架构,STARTUP+oemPlatformIint结合。

WM在OEM层面,还提供了另外一个OEMPlatformInit的初始化函数,此函数主要是负责BB主板的初始化。

 

 

原创粉丝点击