RTC模組驅動開發總結

2021-06-27 01:43:08 字數 2218 閱讀 3202

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...