[發(fā)明專利]一種AT24xx EEPROM驅(qū)動(dòng)方法和裝置有效
| 申請?zhí)枺?/td> | 201811463769.1 | 申請日: | 2018-12-03 |
| 公開(公告)號: | CN109656844B | 公開(公告)日: | 2022-02-22 |
| 發(fā)明(設(shè)計(jì))人: | 王鵬 | 申請(專利權(quán))人: | 鄭州云海信息技術(shù)有限公司 |
| 主分類號: | G06F13/16 | 分類號: | G06F13/16;G06F13/38;G06F13/40;G06F13/42 |
| 代理公司: | 北京連和連知識產(chǎn)權(quán)代理有限公司 11278 | 代理人: | 武碩 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 at24xx eeprom 驅(qū)動(dòng) 方法 裝置 | ||
本發(fā)明提供了一種AT24xx EEPROM驅(qū)動(dòng)方法,包括以下步驟:實(shí)例化I2C驅(qū)動(dòng)核心結(jié)構(gòu)體,并將所述結(jié)構(gòu)體注冊到I2C核心中;實(shí)現(xiàn)本地私有結(jié)構(gòu)體的封裝,并調(diào)用核心結(jié)構(gòu)體中定義的設(shè)備枚舉函數(shù)初始化并保存所述本地私有結(jié)構(gòu)體,以將相關(guān)軟硬件資源準(zhǔn)備就緒;以及通過設(shè)備枚舉函數(shù)注冊面向上層的操作函數(shù)集,并通過面向上層的操作函數(shù)集調(diào)用讀寫函數(shù)來對所述AT24xx EEPROM的I2C接口進(jìn)行讀寫操作。本發(fā)明實(shí)現(xiàn)了針對AT24xx系列EEPROM的通用驅(qū)動(dòng),同時(shí)支持多種匹配方式,使其具備更好的適配性。
技術(shù)領(lǐng)域
本發(fā)明總體上涉及計(jì)算機(jī)領(lǐng)域,并且更具體地,涉及一種AT24xx EEPROM(電可擦可編程只讀存儲器)驅(qū)動(dòng)方法和裝置。
背景技術(shù)
AT24xx系列的EEPROM型號很多,應(yīng)用場景也很廣泛。但其每個(gè)型號的芯片I2C接口驅(qū)動(dòng)都是獨(dú)立編寫的,當(dāng)我們的產(chǎn)品采用不同型號芯片時(shí),就需要去適配指定型號的芯片驅(qū)動(dòng)。而且,從軟件設(shè)計(jì)角度來看,這些AT24xx系列EEPROM硬件設(shè)計(jì)上有很大的相似度,驅(qū)動(dòng)分開獨(dú)立編寫勢必帶來代碼冗余設(shè)計(jì)。另外,由于AT24xx系列的EEPROM從最開始投入市場到現(xiàn)在已經(jīng)經(jīng)歷了很長時(shí)間,而Linux在這期間已經(jīng)發(fā)生了很大的變化,尤其是ARM(Advanced RISC Machine,精簡指令集機(jī)器)架構(gòu)引入設(shè)備樹后,驅(qū)動(dòng)的匹配方式已轉(zhuǎn)向DTS(Device Tree Source,設(shè)備樹源碼),而早期的芯片驅(qū)動(dòng)仍然采用傳統(tǒng)的legacy(遺留)方式,這樣就導(dǎo)致同一系列的AT24xx EEPROM在驅(qū)動(dòng)編寫方式上出現(xiàn)了不統(tǒng)一。
發(fā)明內(nèi)容
鑒于此,本發(fā)明實(shí)施例的目的在于提出一種適配所有AT24xx系列的通用驅(qū)動(dòng)軟件,這樣在產(chǎn)品迭代時(shí),如果更換了不同型號的AC24xx芯片就不用擔(dān)心驅(qū)動(dòng)不適配的問題;而且,驅(qū)動(dòng)代碼編寫上支持了多種匹配方式,既支持i2c_table匹配,也支持DTS匹配,還支持ACPI(Advanced Configuration and Power Management Interface,高級配置和電源管理接口)匹配,這樣驅(qū)動(dòng)代碼就具備的更廣泛的通用性,不僅可以用在ARM平臺也可以用到X86平臺。
基于上述目的,本發(fā)明實(shí)施例的一方面提供了一種AT24xx EEPROM驅(qū)動(dòng)方法,包括以下步驟:
實(shí)例化I2C驅(qū)動(dòng)核心結(jié)構(gòu)體(i2c_driver),并將所述結(jié)構(gòu)體注冊到I2C核心中;
實(shí)現(xiàn)本地私有結(jié)構(gòu)體的封裝,并調(diào)用核心結(jié)構(gòu)體中定義的設(shè)備枚舉函數(shù)初始化并保存所述本地私有結(jié)構(gòu)體,以將相關(guān)軟硬件資源準(zhǔn)備就緒;以及
通過設(shè)備枚舉函數(shù)注冊面向上層的操作函數(shù)集,并通過面向上層的操作函數(shù)集調(diào)用讀寫函數(shù)來對所述AT24xx EEPROM的I2C接口進(jìn)行讀寫操作。
在一些實(shí)施方式中,還包括:在實(shí)例化I2C驅(qū)動(dòng)核心結(jié)構(gòu)體之前,在系統(tǒng)的板級文件中添加所述AT24xx EEPROM的板級信息。
在一些實(shí)施方式中,在系統(tǒng)的板級文件中添加所述AT24xx EEPROM的板級信息包括:在ARM平臺支持設(shè)備樹的情況下,在DTS文件中添加所述AT24xx EEPROM的板級信息。
在一些實(shí)施方式中,在系統(tǒng)的板級文件中添加所述AT24xx EEPROM的板級信息還包括:在X86平臺的情況下,在DSDT(Differentiated System Description Table,系統(tǒng)差異描述表)中添加所述AT24xx EEPROM的板級信息。
在一些實(shí)施方式中,所述實(shí)例化I2C驅(qū)動(dòng)核心結(jié)構(gòu)體,并將所述結(jié)構(gòu)體注冊到I2C核心中包括:在所述I2C驅(qū)動(dòng)核心結(jié)構(gòu)體中定義表示是ARM平臺支持的DTS匹配方式的of_device_id類型的數(shù)組,以及表示是X86平臺支持的ACPI匹配方式的acpi_device_id類型的數(shù)組。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于鄭州云海信息技術(shù)有限公司,未經(jīng)鄭州云海信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811463769.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 具有時(shí)間效率的嵌入式EEPROM/處理器控制方法
- 加密EEPROM
- 一種EEPROM數(shù)據(jù)寫入的方法
- 壓縮機(jī)參數(shù)配置的方法
- 網(wǎng)卡EEPROM的保護(hù)方法、系統(tǒng)、裝置及存儲介質(zhì)
- 整車控制器EEPROM存儲接口配置系統(tǒng)、方法、裝置及存儲介質(zhì)
- EEPROM參數(shù)燒寫裝置及方法
- 一種加速讀取光模塊eeprom的方法及裝置
- EEPROM掉電保護(hù)控制方法、裝置、存儲介質(zhì)及存儲設(shè)備
- EEPROM數(shù)據(jù)處理方法、系統(tǒng)、存儲介質(zhì)及終端
- 電流驅(qū)動(dòng)裝置的驅(qū)動(dòng)電路,電流驅(qū)動(dòng)設(shè)備及其驅(qū)動(dòng)方法
- 驅(qū)動(dòng)電路、驅(qū)動(dòng)模塊以及電機(jī)驅(qū)動(dòng)裝置
- 驅(qū)動(dòng)電路、驅(qū)動(dòng)模塊和電機(jī)驅(qū)動(dòng)設(shè)備
- 驅(qū)動(dòng)單元、驅(qū)動(dòng)方法、驅(qū)動(dòng)電路及顯示面板
- 驅(qū)動(dòng)電路、驅(qū)動(dòng)芯片及其驅(qū)動(dòng)方法
- 驅(qū)動(dòng)電機(jī)(電驅(qū)動(dòng))
- 驅(qū)動(dòng)電機(jī)(節(jié)能驅(qū)動(dòng))
- 驅(qū)動(dòng)電機(jī)(設(shè)備驅(qū)動(dòng))
- 驅(qū)動(dòng)機(jī)(驅(qū)動(dòng)軸)
- 驅(qū)動(dòng)機(jī)(電驅(qū)動(dòng))





