转载 wince+arm开发的工作内容

WINCE+ARM开发工作概要  

2010-01-15 12:53:14|  分类: windows CE 驱动 |字号 订阅

1.定位

基于ARM下的WINCE开发一般有三类工作:系统定制、驱动开发和应用开发,但在公司里,往往做驱动开发的也许定制系统,根据你的专业和工作经验,我建议你的工作方向为:驱动开发和系统定制与移植。

2.从事驱动开发和系统定制与移植所需要掌握和学习的知识

2.1 软件知识

2.1.1 WINCE嵌入式操作系统

掌握WINCE5.0和WINCE6.0嵌入式操作系统,目前WINCE操作系统的主流版本,前几个月好像WINCE7.0也出来了,但估计要过两三年才会普用,所以现在需要掌握WINCE5.0和WINCE6.0

参考书:《Windows  CE嵌入式系统》,作者:何宗键,出版社:北航。

2.1.2 掌握C语言、C++和ARM的汇编语言

最常用的是用C语言来开发,C++在写驱动程序时有时也使用,汇编语言一般用于在boot系统的时候,对CPU进行初始化,做开发bootloader及OAL这两部分的时候会用到汇编语言,而且本人认为汇编语言必须要掌握的,这有利于自己可以单独开发整个BSP包。

汇编语言的参考书:《汇编语言程序设计——基于ARM体系结构》,作者:文全刚,出版社:北航

2.1.3 至少是不错的英文阅读能力

WINCE操作系统的help文档、CPU(比如S3C2440A)还有其他的外文设备的datasheet都是用英文来表述的,如果没有一定的英文阅读能力,很难做好这方面的工作。

2.2 硬件知识

2.2.1 ARM芯片

目前较常用的有S3C2440、S3C2443、S3C2450,虽然S3C2440已基本停产了,但S3C2440的资料应该是最多的,而且这几款的差别不大,可以以S3C2440做为入门。目前较高端的S3C6410也开始应用了,这款芯片(ARM11)功能较强,当然价格也贵了一些。

ARM芯片包括ARM内核部分和其他外围设备的控制器,这些控制器一般有二十几个到三十几个,我们都需要掌握(如果你想成为一个牛人)。

2.2.2 其他外围设备

比如camera、VGA、flash、SDRAM、3G、蓝牙、GPS、WIFI、USB device、音频、LCD等等,这一大块就需要我们用很多时间去学习,其中我们结合ARM芯片相应的控制器,需要编写驱动程序来驱动这些设备的工作

3. 从事于WINCE+ARM底层开发的工作内容

从事于WINCE+ARM底层开发的工作内容主要是BSP包的开发、升级和移植,同时也需要定制操作系统(NK.bin),而BSP包由bootloader、OAL及驱动组成,下面大概介绍这三部分工作的主要内容

3.1 bootloader

一个系统的bootloader主要时引导并让系统跑起来,这部分工作一般 在新产品或是在不同的板子上移植和升级时需要涉及的工作,而一个项目的软件开始的工作也就是进行bootloader的开发,这部分代码是一个独立的执行流程。

Bootloader负责对系统的保存和加载,而保存是指把定制好的NK.bin保存在NOR flash或NAND flash中,如果是保存在NOR flash中,就可以通过XIP(本地执行,NOR flash支持,但NAND flash不支持)来运行NK.bin,但如果说保存在NAND flash中,那所谓的加载就是bootloader负责把保存在NAND flash中的操作系统内核镜像(NK.bin) copy 到SDRAM中指定的地址,这个地址由config.bib来指定;接下来就是运行这个NK了,到这一步,WINCE操作系统就跑起来了。

3.2 OAL

OAL叫硬件抽象层,这部分的代码没有独立的执行流程,这部分工作主要是根据不同的板子完成一系列OEM函数。但如果我们的系统在卖给客户时不带有bootloader功能,那么OAL就需要负责加载系统,这部分工作和bootloader的加载工作是一样的,所以,bootloader和OAL有一部分代码基本上是一样的,这部分代码是指对GPU及一些外围设备的初始化,加载NK。

其中bootloader和OAL在引导系统的过程中,部分引导是需要用到汇编语言的。

3.3 设备驱动程序

这部分工作内容最丰富,因为不同的产品有不同的外围设备,比如3G、GPRS、GPS、camera、LCD、VGA、flash、audio等等,不过很多产品都有LCD、SDRAM、flash。对这些设备的驱动就需要我们编写驱动程序,这也是我们工作中的一大部分内容。

参考书:《Windows CE 工程实践完全解析》,作者:李大为,出版社:中国电力出版社

3.4 系统定制

这要求熟悉WINCE系统有哪些组件,这些组件有什么作用?

3.5 开发环境

需要熟悉ADS(编译汇编语言)、source insight(代码阅读软件)、PB(系统定制与编译,也可以用来编写简单的应用程序,但应用程序一般用VS2005,但也有使用EVC,不过VS2005是主流)、VS2005等等。


你可能感兴趣的:(工作,汇编,语言,出版,WinCE,嵌入式操作系统)