首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

直接进行嵌入式开发[转帖]

直接进行嵌入式开发[转帖]

最直接的游戏开发模式是在手持设备提供的操作系统平台上直接进行嵌入式开发。通常,这需要采用C/C++语言,因为操作系统一般都是由C/C++语言编写的,而且直接提供C/C++语言作为低层接口语言。

C/C++语言作为一种运行效率高的语言,被多数开发人员掌握,通过C/C++的指针特性以及贴近硬件机能的本质,运用C/C++开发能够最大限度的与硬件平台结合,充分利用硬件性能,实现高性能的图形显示。

但是仅仅利用C/C++自身的特性并不能够满足所有开发人员的需要,很多情况下,C的函数库并不能够满足需求,进行实际开发就必须调用各种预先准备好的函数库。实际上开发人员使用比较多的还是便携设备操作系统提供的系统调用,只有充分利用手持设备操作系统提供的功能才能够达到预定目标。

而在不同手持设备上,由于操作系统的不一致,原有的功能并不一致,导致不同设备的系统调用不一致,导致使用C/C++进行开发在不同系统之间是不同的,这带来不同系统之间的移植问题。

而且,手持设备的开发本质上是属于嵌入式开发,基于手持设备的硬件特性以及软件特性限制,基本上还没有办法直接在便携设备上进行应用程序的编写,因为手持设备不是通用操作系统,没有通用系统中提供的那些丰富的工具。目前,那些直接能够在手持设备上应用的开发工具到目前为止只能够说是玩具,功能比较简单,不过我们期望以后能够有真正功能强大的开发工具直接运行在手持设备之上。
嵌入式开发的一般方式是在传统的PC上编写程序,通过PC上手持设备的模拟器(一般厂家在提供开发工具的时候也会附带这个软件)进行前期开发,在完成基本的测试以后,利用厂商提供的交叉编译工具在PC上将代码编译成为可以在便携终端上运行的二进制代码以后,然后通过某种机制下载到便携终端,在终端上再次进行真实环境的测试,之后才能提供给用户。这种方式不仅仅用于便携设备的开发,基本上所有的嵌入式系统都会利用这种模式进行开发,属于一种常见的嵌入系统的开发方式。

应用开发完成以后,我们的下一个目标就是将应用程序发布到实际用户的手持设备上。用户可以通过移动互联网下载程序,或者通过手持设备的特有连接方式将程序传送到手持设备。实际上,下载到便携终端的方式可以是通过有线方式或者是无线方式,大部分手机的J2me应用程序都可以通过类似于OTA(空中下载,Over the Air)协议从应用服务器传递到手持设备上。一个类似的例子就是原来无线运营商通过无线链路在空中传递SIM卡应用,实现STK功能扩展。

采用C/C++的这种开发方式可以针对特定的操作系统以及硬件特性进行设计和编码,最大程度的利用底层硬件的机能,实现高效的代码。但是每一个应用程序都仅仅针对特定平台,在不同手持设备平台之间的移植需要花费大量的精力与时间,对于开发人员推广其应用程序是一个不利的因素。

以Palm上和PPC上两种环境的程序移植为例,在移植过程中大概有一下方面需要进行修改:

API调用:每一个操作系统的API方式都不一样,类似分配内存这种工作,在两个操作系统上因为是不同的内存管理方式,提供的API接口也就不一样。类似绘图这类的API,更是迥异。

进程间交互方式:PPC支持多进程,用户需要显式关闭程序,Palm不支持多进程,在进行程序切换的时候,前一个程序的当前状态必须被保存然后关闭。

诸如此类的差别使在平台之间移植程序成为一个让开发人员耗费大量时间以及精力的事情。
返回列表