Linux驅動移植(二)——相似或相關資源的獲取

Linux驅動移植(二)——相似或相關資源的獲取

Linux驅動程序一般較少從底層開發,有這樣幾種途徑可以有效協助我們較快地完成驅動開發:

1.Demo板的驅動

借用Demo板的驅動主要是求同存異,芯片一般是相同的,主要體現在片選的IO、中斷和DMA通道等方面。

因而在進行驅動開發時我們一般遵循這樣的設計理念:將硬件和平臺相關(內存地址、片選的IO、中斷號、DMA通道和硬件設置等)的信息放在BSP中,作爲platform信息、SPIboard信息、I2Cboard信息,而不直接放在驅動裏面,以備修改。


2.相似芯片的驅動程序

任何驅動工程師在面對新驅動程序的開發時,都沒有必要一切從頭開始。在內核源代碼/drivers中已經大量包含了類似芯片的驅動程序,這些都可以借鑑。


3.芯片廠商的範例程序

附錄:

1)cpu_relax()函數,一般用在忙等待中,其作用降低CPU的消耗,同時也起到內存屏障的作用,同時,Document/volatile_considered_harmful.txt中也提到,在忙等待中要避免使用volatile關鍵字;

2)BSP
A. BSP是什麼:
    BSP是板級支持包,是介於主板硬件和操作系統之間的一層,應該說是屬於操作系統的一部分,主要目的是爲了支持操作系統,使之能更好的運行於硬件主板。
B. PC機和嵌入式系統中的BSP
       在Pc機的windos系統或Linux系統中也有BSP,只是PC機均採用統一的X86體系架構,所以其BSP是單一確定的,一般不需要做什麼修改。
      在嵌入式系統中情況完全不同,目前市場上有多種結構的CPU(RISC)並存(PPC、ARM、MIPS),爲了性能的需要,外圍設備也會有不同 選擇和定義。因而,嵌入式系統針對不同的CPU會有不同的BSP,即使相同 的CPU,外圍設備的差異(如外部擴展DRAM的大小,類型改變),BSP相應的部分也會有所不同。
所以,需要根據硬件設計編寫和修改BSP,以保證系統正常的運行。
C.BSP在嵌入式開發中的位置和作用
       BSP開發處於整個嵌入式開發的前期,是後面系統上應用程序能正常運行的保證。
       大致步驟如下:
       a. 硬件主板研製,測試;
b. 操作系統的選定,BSP編程;
        c. 上層應用程序的開發。
BSP部分在硬件和操作系統,上層應用程序之間,所以,這就要求BSP程序員對硬件,軟件和操作系統都有一定 的瞭解,才能做好BSP編程。

     需要熟悉的工具:電錶、示波器、邏輯分析儀、硬件仿真器、仿真調試環境。
        編程語言:彙編語言、C語言。

參考文獻:
1.http://baike.baidu.com/item/bsp/4572854?fr=aladdin
2. Linux設備驅動開發詳解 宋寶華著
  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章