技术开发 频道

Win32 API意外终止WinCE如何应对?

  【IT168 专稿】WinCE与其它嵌入式操作系统相比优点之一,是WinCE的应用程序开发接口也是Win32 API,这与桌面Windows是基本一致的,这使许多嵌入式开发人员得以充分利用在Windows平台上的经验和工具。
但在此过程中,需要小心应对WinCE意外终止的发生,因为意外终止处理得好坏直接关系到系统的健壮性和稳定度。近期我在一个WinCE嵌入式项目中就体验到没有处理好Win32意外终止的惨痛教训,后果是严重影响系统稳定性。因此,处理Win32意外终止并不是表面看起来的那么简单。这里与大家分享我在开发中遇到的一些问题和总结。

  1. 什么是Win32 API意外终止?

  对于世界上成千上万的Windows平台程序开发人员来说,Win32程序模式是很常见的。理所当然的,它也成了WinCE嵌入式系统理想的程序界面形式。
  (1)什么是Win32 API?
Win32 API是指基于微软32位操作系统平台的一种应用编程接口(API:Application Programming Interface)。Win32 API函数是Windows提供给应用程序与操作系统的接口,犹如积木块一样,通过这个接口可以搭建出各种界面丰富,功能灵活的应用程序,通过接口函数能大大简化内核调用的复杂性。所以,Win32 API编程指的是用Windows提供的各种API函数在Windows平台上编写应用程序。
  简单说,可以认为API函数是构筑整个Windows应用的中间联接器。在它的下面是Windows的操作系统内核,而它的上面则是应用程序。因此,Win32 API是WinCE内核与应用程序之间的界面,它将内核提供的功能进行函数包装,应用程序通过调用相关函数而获得相应的系统功能。之所以称之为Win32,是因为Windows平台使用的是最普遍的32位操作系统(现在有些Windows平台是64位了)。
  (2)什么是Win32意外终止?
  WinCE内核除了协调应用程序的执行、分配内存、管理系统资源之外,同时也是一个很大的服务中心,它调用着各种服务(每一种服务就是一个函数)来达到帮助应用程序开启视窗、执行各种操作、使用周边设备等目的。因此,在 WinCE工作环境底下执行的应用程序,常常需要调用大量的Win32 API。
  Win32 API 在WinCE内核和应用程序的调用和服务上提供很好的方便,但有时会发生让人心烦的事情,就是这些Win32 API调用失败的时候会造成WinCE系统意外终止或者非法死机,这时系统会弹出一个让开发人员心烦的提示框,提示系统正在发生Win32 意外而被迫终止应用程序。
  2. 什么原因会导致Win32意外终止?

  在我所负责的项目上,由于在定制和剪裁WinCE系统时没有严谨的考虑和多方测试,结果是应用程序在运行时经常会弹出一个让我心跳的提示框,总是提示这样或那样的原因致使Win32意外终止,这也使我差点处于崩溃。
  (1)定制和剪裁内核不合理,导致API调用意外
一个WinCE系统在定制和剪裁时是一个复杂的过程,不但需要对本机硬件设备合理选择,还需要针对相应的BSP板级支持包进行驱动程序开发。如果对系统主要硬件设备,像板载BSP、CPU和其它外围设备不熟悉,都有可能导致系统无法运转,特别是WinCE系统对内核的定制和检测更苛刻。

0
相关文章