Linux下基于I2C協(xié)議的RTC驅(qū)動開發(fā)
摘要:在嵌入式中,Linux漸漸成為一種流行探作系統(tǒng),Linux驅(qū)動開發(fā)也成為嵌入式開發(fā)中的必備環(huán)節(jié)。介紹Linux環(huán)境下基于I2C協(xié)議的RTC驅(qū)動程序開發(fā)與實現(xiàn)。首先研究了Linux環(huán)境下字符設(shè)備驅(qū)動程序框架,然后介紹I2C協(xié)議,在此基礎(chǔ)上開發(fā)基于I2C協(xié)議的RTC字符設(shè)備驅(qū)動程序。對于驅(qū)動程序,這里詳細(xì)介紹其整體架構(gòu)和各模塊實現(xiàn)細(xì)節(jié)。最終成功實現(xiàn)了基于I2C協(xié)議的RTC驅(qū)動程序,并移植到Linux操作系統(tǒng)中。
0引言
近年來嵌入式系統(tǒng)的研究與開發(fā)漸漸成為熱點,在嵌人式系統(tǒng)中,Linux操作系統(tǒng)以其開源、穩(wěn)定、可移植等種種優(yōu)點,漸漸成為一種流行的操作系統(tǒng)。Linux下各種驅(qū)動程序的開發(fā)經(jīng)常是軟件開發(fā)中必不可缺的環(huán)節(jié),Linux對其驅(qū)動程序提供了很好的支持框架。I2C總線是一種由Philips公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線產(chǎn)生于在20世紀(jì)80年代。最主要的優(yōu)點是其簡單性和有效性。
這里介紹Linux字符設(shè)備驅(qū)動以及I2C總線協(xié)議,并在此基礎(chǔ)上開發(fā)基于I2C總線的RTC驅(qū)動程序。
1 Linux字符設(shè)備驅(qū)動框架
在Linux內(nèi)核中每個字符驅(qū)動程序都是基于以下框架進(jìn)行設(shè)計的: