嵌入式er告訴你啥是驅(qū)動(dòng)?它的地位和意義
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、總體說明
提到嵌入式的概念,一時(shí)間腦容量已經(jīng)容納不下,轉(zhuǎn)到驅(qū)動(dòng)的設(shè)計(jì)剛剛好,習(xí)慣將一件事分層次去做,驅(qū)動(dòng)設(shè)計(jì)亦是如此,很多人做工程時(shí)因?yàn)轫?xiàng)目的時(shí)間緊張,直接想到如何去實(shí)現(xiàn),甚至直接跳到工具上去,學(xué)習(xí)編程語言。時(shí)常將做一個(gè)工程比作建一座大廈,有了圖紙,有了地基才可以建造更漂亮更完美的建筑,如果開始就去關(guān)注一個(gè)鍬,一個(gè)蓋樓的機(jī)器,一磚一瓦的樣子,可能建造出來的早已不是自己想要的樣子。這里本人想就嵌入式驅(qū)動(dòng)設(shè)計(jì),以what、why和how搭建出,嵌入式驅(qū)動(dòng)設(shè)計(jì)的簡(jiǎn)單藍(lán)圖,給出嵌入式驅(qū)動(dòng)設(shè)計(jì)的“圖紙”,“大廈”的 “一磚一瓦”留給每個(gè)想要建造這個(gè)“大廈”的人去設(shè)計(jì)。
二、什么是驅(qū)動(dòng)(what 驅(qū)動(dòng)概念)?
一個(gè)沒接觸過嵌入式底層設(shè)計(jì)的人員可能會(huì)對(duì)驅(qū)動(dòng)的概念比較模糊,它是什么?以什么形式存在?什么作用?個(gè)人的理解,驅(qū)動(dòng)是一種軟件,這個(gè)軟件一方面可以直接與CPU、各種總線和外設(shè)進(jìn)行交互,讓這些板上的硬件組成單元活躍起來,另一方面,它還與操作系統(tǒng)和應(yīng)用程序聯(lián)系,將自己對(duì)外的接口嵌入到系統(tǒng)或者應(yīng)用程序中,當(dāng)業(yè)務(wù)需要某一個(gè)外設(shè)參與時(shí),它就開始活躍了,聽從上層的指令,并將旨意傳達(dá)到硬件資源,讓硬件工作。簡(jiǎn)而言之,所謂驅(qū)動(dòng),驅(qū)而動(dòng)之,以“主”之意,驅(qū)使硬件“動(dòng)”起來。
三、為什么做驅(qū)動(dòng)(why 驅(qū)動(dòng)存在的意義、地位)?
一般做工程時(shí),應(yīng)用程序關(guān)心的多數(shù)是協(xié)議和業(yè)務(wù)相關(guān)的調(diào)度,而不關(guān)心底層或者硬件的執(zhí)行過程,也沒有必要去關(guān)心硬件的執(zhí)行過程,驅(qū)動(dòng)作為一個(gè)庫或者調(diào)度的接口即可,這時(shí)就需要驅(qū)動(dòng)的存在,任何的業(yè)務(wù)都要有硬件的支撐,驅(qū)動(dòng)的存在,可以將硬件的初始化,讀寫,配置等基本操作嵌入應(yīng)用之中,于無聲之中操作硬件的執(zhí)行邏輯,使其工作起來。
嵌入式驅(qū)動(dòng)在其體系中所處的位置示意
四、怎么實(shí)現(xiàn)驅(qū)動(dòng)設(shè)計(jì)(how 驅(qū)動(dòng)設(shè)計(jì)的過程)?
這是本人對(duì)于一個(gè)板卡的硬件資源抽象,驅(qū)動(dòng),驅(qū)而動(dòng)之的外設(shè),一般分為兩類,一類藏于CPU之內(nèi),稱為片上外設(shè)。另一類存在于板卡之上,CPU之外,叫接口芯片,或者板級(jí)外設(shè)(個(gè)人叫法)。如何實(shí)現(xiàn)驅(qū)動(dòng)設(shè)計(jì),最簡(jiǎn)單的是首先進(jìn)入CPU內(nèi)部,先搞定CPU的內(nèi)核,指令集,幸好這一步有每個(gè)平臺(tái)開發(fā)軟件做了(編譯器),然后搞定CPU組成架構(gòu),總線和片上外設(shè)都有什么,然后找到每個(gè)外設(shè)的基本協(xié)議,至少知道它是如何工作的,然后找到這個(gè)CPU的開發(fā)平臺(tái),找到它的開發(fā)語言,比如:C語言,找到官方提供的簡(jiǎn)單測(cè)試程序。學(xué)習(xí)并二次開發(fā)(當(dāng)然可以完全自己來),搞定CPU之后,這個(gè)板子的心臟就跳起來了,下一步找到每一個(gè)板級(jí)外設(shè)的資料(datasheet),搞定其初始化,讀寫操作邏輯,利用掌握的語言和開發(fā)環(huán)境,利用固定的通信接口搞定板級(jí)外設(shè)。做到這一步之后驅(qū)動(dòng)就基本搭建起來了,之后的事就是每個(gè)“屋子”的裝修問題,問住這個(gè)屋子的人需要什么樣的風(fēng)格,按照其意愿,完成這個(gè)“大廈”每一個(gè)房間的裝修,到此“大廈”竣工