jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

HAL Stub 的測試程式範例:Led.c

.作者:jollen/
.日期:March 17, 2010 10:52 PM


近期進行有關 MokoidBoard 的平臺開發,MokoidBoard 的目的是打造一個「Android 框架與底層」專用的學習平臺,主板的部份是基於 Samsung S3C6410 處理器。目前除了計畫以 S3C6410 打造手機方案外,還有一個一直很想實現的理念:教育訓練方面,提供品質良好、架構完善的範例程式碼。一些 dirty code 對於初步學習,並了解硬體是很有幫助的;但入了門,總是要持續進步、精益求精,研讀架構完善的高品質程式碼,就是煅煉火候的好方法。

mokoid-led.jpg

目前在 MokoidBoard 上提供的 LedTest 範例,是透過 ServiceManager、LedService 以及 HAL Stub 等觀念所設計的「LED 控制程式」。如圖,LedTest 執行時,會出現一個巨大按鈕,按了後,便會將開發板上的第一個 LED 燈點亮。

範例程式碼並不難讀,比較難懂的是 Android 框架與 HAL 架構的觀念,還有一些設計原理。這些觀念,在上週的 Android Framework in a Nutshell 演講做了一個整體性的介紹。

在開發階段,「如何測試 HAL Stub」其實是另一個很重要題目。因此,隨著 MokoidBoard 進入最後整理階段,Mokoid 範例也將會提供一個 Led.c 測試程式,讓我們能在開發階段以 native 方式進行「HAL Stub 的 API 驗證」,如圖所示。

Led.c 是一個 native 執行檔,執行時會透過 HAL 取得 LED Stub,並以 direct call 方式直接測試 Stub 裡的 API 實作,藉此驗證 Stub 與 kernel-space driver 的硬體控制功能;在未來的演講或是課程裡,將會加入一些「測試程式開發」的主題,請大家不吝指教。

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2010 www.jollen.org. All rights reserved.
Last update: 2026-07-22