首先了解HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。Google为Android加入HAL主要有以下目的:统一硬件的调用接口、解决了GPL版权问题、针对一些特殊的要求。编写一款支持HAL的Linux驱动程序的步骤:1、编写LInux驱动 2、编写HAL Library 3、编写Service Library。在编写Linux驱动以及与驱动相关的程序的过程中应分段测试每一部分程序。这些程序一般需要从LInux驱动开始编写,测试当然也就要从LInux驱动开始。每编写完一部分,应使用相应的方法进行测试,以便将当前编写的程序的bug降到最低。编写调用LED驱动的HAL模块时HAQL模块中包含了LED驱动的所有业务逻辑。任何被系统自动调用的程序都会有一个标准接口。这个接口相当于一个约定的规则。不管任何程序,只有遵循这个规则,就可以成功被调用。HAL模块由leds_hal.c和leds_hal.h组成。leds_hal.h头文件用于定义结构体、宏和引用一些系统的头文件。编写调用HAL模块的Service中调用HAL模块涉及一个非常重要的hw_get_module函数。最后测试LED驱动是调用LedHalService.setOn和LedHalService.setOff方法控制LED,首先test_s3c6410_leds_hal_eclipse_java工程必须引用上一节生成的LedHalService.jar文件,然后在S3C6410LedHalMain.java中编写代码控制LED。通过本章大致了解了HAL一些基本概念及用法,发现自己仍有许多不足,自己仍需提高。