1、rtc模組的裝置驅動模型
2、i2c模組的驅動模型
3、rtc模組涉及的檔案和資料結構
934x.c :該檔案為系統的硬體平台檔案,定義了rtc模組用到的硬體資源,包括記憶體位址空間,gpio,中斷資源,並將rtc裝置註冊進核心的裝置鍊錶中。
rtc-ds1307.c:該檔案為rtc模組的裝置驅動檔案,實現了對rtc硬體的操作介面,並將該裝置驅動註冊進核心的裝置驅動鏈表中。
/driver/rtc/class.c:該檔案實現rtc裝置驅動模型的核心,包括建立rtc類,註冊rtc裝置
/driver/rtc/rtc-dev.c:該檔案初始化乙個file_operation,並實現結構體內的函式
/driver/rtc/inte***ce.h:該檔案實現file_operation中ioctl中對應命令的函式實現。
/driver/rtc/rtc-proc.c:該檔案提供rtc的proc檔案系統介面。
i2c-gpio.c :該檔案為gpio模擬i2c介面卡的裝置驅動檔案,實現了對i2c介面卡的操作介面,並將該i2c介面卡的驅動註冊進核心,
i2c-core.c :該檔案是i2c的核心,提供i2c模組相關的公共介面,包括i2c裝置註冊 i2c介面卡註冊,以及和檔案系統相關的操作。
i2c-algo-bit.c :該檔案時i2c協議的實現,通過該檔案提供的介面,完成對i2c裝置的訪問。
gpio.c: 該檔案實現了對gpio的操作介面,包括對gpio的配置,讀寫操作。
gpiolib.c: 該檔案實現了和gpio相關的介面。
(2)、rtc模組涉及的資料結構:
//rtc裝置
structrtc_device
;
//rtc裝置的操作介面
struct rtc_class_ops ;
//代表了時間與日期,從rtc裝置讀回的時間和日期就儲存在這個結構體中
struct rtc_time
; (3)、i2c模組涉及的資料結構
//記錄i2c裝置的資訊
struct i2c_board_info ;
//記錄i2c匯流排介面卡的平台資訊
struct i2c_gpio_platform_data ;
//i2c裝置驅動
struct i2c_driver ;
//i2c匯流排的協議演算法實現
struct i2c_algorithm ;
//i2c匯流排介面卡
struct i2c_adapter ;
//gpio控制器
struct gpio_chip ;
4、rtc模組驅動重要**和流程分析
(1)**分析:參見svn原始碼,注釋處有宣告
rtc-dev.c-->inte***ce.c-->rtc-ds1307
rtc-dev.c: 該檔案最終生成/dev/rtc,為應用層提供操作rtc的標準介面
inte***ce.c:介面檔案,對驅動介面進行封裝,給上層提供統一的介面,遮蔽晶元的差異性。
rtc-ds1307.c:直接和硬體互動的驅動介面的檔案
class.c:提供子rtc子系統一些公共函式,將rtc驅動註冊整合到linux核心中,是乙個粘合劑。
hctosys.c:系統起來後,讀rtc硬體中的時間,更新系統時間。
2.函式的實現
(2)流程分析:
裝置端: 定義並初始化rtc裝置結構體,並將其註冊進核心裝置鍊錶中,(裝置的型別和位址)
定義並初始化i2c匯流排介面卡的結構體,並以平台裝置註冊進核心的裝置鍊錶中,
裝置驅動端:實現對rtc裝置的操作介面,定義並初始化rtc裝置驅動結構體,註冊進核心裝置驅動鏈表,匹配裝置和驅動,成功後呼叫裝置初始化函式對裝置進行初始化。
5、開發過程中遇到的問題
(1)對gpio配置的問題
gpio的io基位址設定錯誤,gpio的function暫存器未設定。
(2)對i2c介面卡引數設定的問題,(使用硬體資源的配置,硬體引數配置、延遲和超時的配置,滿足i2c協議和硬體特性的要求)
RTC裝置驅動
從rtc裝置驅動看所有驅動的寫法 1,所有驅動第一步是註冊 驅動程式 2,註冊 裝置 3,系統在初始化時,會呼叫驅動程式的probe函式,完成基本硬體的初始化和裝置的註冊 rp4412rtc體系結構解釋 driver register先把個新話的東西寫完然後進行driver register 驅動開...
RTC驅動的應用
linux常見的驅動在driver目錄下都有乙個資料夾,進入kernel主目錄下的drivers rtc,發現下面包含了許多晶元的rtc驅動,我們這裡是以pcf8563為主,她是我們要分析的核心。其他幾個相關聯的檔案分別是 alarm.c alarm dev.c class.c hctosys.c ...
RTC驅動程式
rtc實時時鐘 遵循字元裝置驅動 2 s3c rtc init platform driver register s3c rtc probe rtc device register s3c pdev dev,s3c rtcops,this module rtc dev prepare cdev in...