原创 likely和unlikely函數

      在Linux內核中likely和unlikely函數有兩種(只能兩者選一)實現方式,它們的實現原理稍有不同,但作用是相同的,下面將結合linux-2.6.38.8版本的內核代碼來進行講解。     1、對__builti

原创 wake_lock機制

 Android的休眠喚醒主要基於wake_lock機制,只要系統中存在任一有效的wake_lock,系統就不能進入深度休眠,但可以進行設備的淺度休眠操作。wake_lock一般在關閉lcd、tp但系統仍然需要正常運行的情況下使用,比

原创 常用bluetooth協議

HFP: HFP(Hands-free Profile),讓藍牙設備可以控制電話,如接聽、掛斷、拒接、語音撥號等,拒接、語音撥號要視藍牙耳機及電話是否支持。 HSP: HSP 描述了 Bluetooth 耳機如何與計算機或其

原创 (C)*p++和*++p區別

 接下來,通過示例徹底理解自增運算符的兩種用法(自減的用法與之類似,只不過是加1變成了減1)。     1、++i和i++的區別     如清單1(注意代碼中的註釋):  [cpp] view plaincopyprint?

原创 (C/C++)struct結構體

對程序員的經驗進行評估可以通過看其對struct結構體的使用情況。 會不會用struct,怎樣使用struct,是區別一個開發人員是否具備豐富開發經歷的標誌。 在嵌入式系統的C/C++代碼編程中,經常要傳送的不是簡單的字節流(c

原创 (C)do{...}while(0);的用法及意義

實際上,do{…}while(0)的作用遠大於美化你的代碼。 總結起來這樣寫主要有以下幾點好處: 1. 輔助定義複雜的宏 避免引用的時候出錯: 舉例來說,假設你需要定義這樣一個宏: #define DOSOMETHI

原创 (C/C++)register關鍵字

register:這個關鍵字的作用是請求編譯器儘可能的將變量存在CPU內部寄存器中,而不是通過內存尋址訪問,以提高效率。 注意是儘可能,不是絕對.一個CPU 的寄存器也就那麼幾個或幾十個,你要是定義了很多很多register

原创 (C++)inline關鍵字

背景 inline關鍵字用來定義一個類的內聯函數,引入它的主要原因是用它替代C中表達式形式的宏定義。 表達式形式的宏定義如: #define ExpressionName(Var1,Var2) ((Var1)+(Var2

原创 LED子系統

 ============================================ 作者:yuanlulu http://blog.csdn.net/yuanlulu 版權沒有,但是轉載請保留此段聲明 ============

原创 INIT_WORK和INIT_DELAYED_WORK詳解

 朋友,你相信,一隻蝴蝶在北京拍拍翅膀,將使得紐約幾個月後出現比狂風還厲害的龍捲風嗎?看過那部經典的影片蝴蝶效應的朋友們一定會說,這不就是蝴蝶效應嗎.沒錯.蝴蝶效應其實是混沌學理論中的一個概念.它是指對初始條件敏感性的一種依賴現象.蝴

原创 tasklet

                                                                tasklet Tasklet的使用比較簡單,只需要定義tasklet及其處理函數並將兩者關聯 例子: V

原创 platform_driver_probe與platform_driver_register的區別

 [驅動註冊]platform_driver_register()與platform_device_register()        設備與驅動的兩種綁定方式:在設備註冊時進行綁定及在驅動註冊時進行綁定。 以一個USB設備爲例,

原创 (C)字節對齊#pragma pack()

1. 爲什麼要進行對齊 對於結構體,編譯器會自動進行成員變量對齊處理,是爲了提高運算效率。 缺省情況下是自然對齊方式。 2. 自然對齊 即默認對齊,按照結構體的成員中size最大的成員進行對齊。 例: struct

原创 idr機制(integer ID management)

 最近研究進程間通信,遇到了idr相關的函數,爲了掃清障礙,先研究了linux的idr機制。         所謂IDR,其實就是和身份證的含義差不多,我們知道,每個人有一個身份證,身份證只是 一串數字,從數字,我們就能知道這個人的

原创 I2S總線

I2S總線 Inter IC Sound總線又稱集成電路內置音頻總線。 I2S對數字音頻設備之間的音頻數據傳輸而制定的一種總線標準。 採用了沿獨立的導線傳輸時鐘與數據信號的設計,通過將數據和時鐘信號分離,避免了因時差誘發的失真,爲