核心對swi2c的實現

2021-10-24 05:31:09 字數 534 閱讀 9381

核心中對swi2c 有兩個參考,乙個是在driver/i2c/bus/i2c-gpio.c 中,要使用這的話,可以像正常使用i2c一樣,客戶不清楚下面是真的i2c還是用gpio 模擬的,這個直接鏈結到i2c的框架中國。但是這個需要bios來適配,另外乙個實現在drivers/staging/sm750fb/ddk750_swi2c.c 中,這個檔案中直接寫死gpio,不需要bios 來配置。和i2c的適配層沒有關係,i2c的讀和寫都是自己實現

這裡以scl的波形如何控制

static void sw_i2c_scl(unsigned char value)

else

}可以看到這裡直接通過peek32 和 poke32 來直接寫gpio相關的暫存器的。

/* software control endianness */

static inline u32 peek32(u32 addr)

static inline void poke32(u32 addr, u32 data)

C 對C的改進 2

原型宣告的概念 函式要先定義再使用,如果先使用後定義則必須使用原型宣告 include using namespace std int main float add float x,float y 注意 宣告語句必須加分號!位置任意,只是作用域不同 宣告的原因就是告訴編譯環境函式引數的個數,型別和順...

核心對輪詢IO 阻塞 非阻塞 的實現

應用層對裝置檔案的讀寫,常常會用到輪詢操作。所謂輪詢,就是指的是在讀寫時,若暫時無法讀寫,則卡在那裡,直到可以讀寫。在應用層,輪詢主要分為三種實現 這種方法的本質是 若讀寫條件不滿足時,則讓程序休眠,直到滿足條件後由其他程序喚醒 一般是外界觸發中斷,因為硬體資源獲得的同時往往伴隨著乙個中斷 然後進行...

C 學習(2) 對C 的巨集觀認識

對於新知識先來乙個巨集觀認識,然後深入到細節,有了相當量的微觀認識後,再抽象到巨集觀認識,這樣學習的效果非常好,以上屬於方 的範疇,俗稱深入淺出。舉個例子,最初聽到偉人說的那句 好好學習,天天向上 並沒有覺得很響亮,但是隨著大量的學習和實踐,突然發現偉人真不愧是偉人啊,真的很哲學!於是,突然有乙個想...