No.35867 作者:iotekcom1 邮件:yexiaorui0428@163.com ID:112443 登陆:1次 文章数:5篇 最后登陆IP: 最后登陆:2008/10/22 20:37:19 注册:2008/10/22 20:37:19 财富:100 发帖时间:2008/10/22 20:43:01 发贴者IP:61.172.146.45 标题:iotekcom1:个人心得 摘要:No.35867个人心得 与桌面操作系统和服务器操作系统下的软件开发不同,为嵌入式操作系统开发软件可不只是写写应用程序那么简单。我们常常要深入到内核,甚至要深入到硬件。根据不同的开发层面,我们把Windows CE 下的嵌入式软件开发者分为下面三类: 第一类我们称之为应用程序开发者。 此类开发人员与传统的通用操作系统下的应用开发人员比较相似。他们通常是利用操作系统提供的API(Application Programming Interface,应用程序编写接口),应用程序库(例如C 运行时库,Visual Basic 运行时库)或应用开发框架(例如J2EE 与.NET Framework)来编写代码。他们开发的代码通常运行在用户态,无需直接对硬件进行操作。他们所关注的是通常是应用功能和业务逻辑的实现。此外,他们的程序通常是直接与最终用户打交道的。 第二类是操作系统平台的提供者。 此类开发人员的主要职责是针对具体的应用环境,对嵌入式操作系统进行裁减,向第一类开发人员提供应用程序运行的平台。他们通常要对所裁减的操作系统的各个模块的功能了如指掌,这样才可以针对具体的应用环境,搭建出合适的平台,使资源达到最节省。例如,一个运行在自动取款机上的嵌入式操作系统应不应该加入MPEG4 播放模块,管理数码相机的嵌入式操作系统中“蓝牙”网络协议栈是否必要……。此外,为了满足应用需求,他们有可能还需要对所裁减的嵌入式操作系统进行一些扩充,增加嵌入式操作系统所不支持的功能,编写一些比较上层的驱动程序通常是必要的。例如,用于视频会议的嵌入式系统要用到USB 摄像头的支持,如果该嵌入式系统没有提供USB 摄像头的驱动程序,就需要此类开发者来提供。在现实的世界中,除了微软向外界提供Windows Mobile和Windows Automotive,还没有发现有公司专门定制操作系统。一般这类角色通常都由第一类或第三类开发人员兼任。 第三类是内核/驱动开发者。 嵌入式操作系统与通用操作系统最显著的区别之一是它的可移植性。一款嵌入式操作系统通常可以运行在不同体系结构的处理器和开发板上。为了使嵌入式操作系统可以在某块具体的开发板上运行,嵌入式操作系统的编写者通常无法一次性完成整个操作系统的代码,而把一部份与具体硬件设备相关的代码作为抽象的接口保留出来,给提供硬件的OEM 厂商来完成。这样才可以保证整个操作系统的可移植性。这些代码通常是BSP(Board Support Package,板级支持包)的一部分。例如,不同的处理器和开发板通常都会提供时钟支持,用来得到当前的时间日期,但是时钟的实现方式却不胜枚举,如何告诉嵌入式操作系统当前的时间,就是此类开发人员要解决的任务。这一类开发人员不但要对嵌入式操作系统提供的硬件接口了如指掌,还要对操作系统运行的硬件有极为深入的了解。有可能此类开发人员会同时身兼软件工程师和硬件工程师双种身份——让嵌入式操作系统在自己设计的硬件平台上运行起来。 通常 ......
>>返回讨论的主题
|