2014年8月6日 星期三

開發driver的回憶

在這幾周的資料整理中
赫然發現以前學習過PXA-270的部份,居然已經練習過如何開發 Driver
以及開發Driver的連結與過程。

這篇主要是回憶之前如何開發的流程


  • 嵌入式開發流程

Linux 利用Busybox與對應PXA270硬體的交叉編譯器 (cross-compiler)
產生出來對應的Linux對應檔,在利用壓縮程式進行壓縮成zImage
丟去PXA270板子上進行測試。

在對岸/內地的講法應該叫交叉編譯 (cross-compiler)

而BusyBox產生的套件是Linux的硬體規劃Script,讓編譯不會錯誤
不過有時候利用最新的BusyBox只會讓自己更摸不著頭緒罷了。
因為錯的根本不知道在哪,因此教授的名言是『最新的不一定好用,好用的不一定是最新』
有前人踏過的路,才有腳印可以追蹤錯誤的發生,更能討論。
當然在當時您站在前端的那時,請以同樣的心情給踏下去,因為您現在就是前人了。

※這篇的牛肉在如何利用Busybox與PXA270的cross-compiler來產生Driver

  • Driver開發的流程
    1. 什麼是Driver?

      老師那時候教是從開車的角度來說,Drive是開車,Driver開車的人用的方式。
      就像是方向盤的使用方法一樣,對於程式要使用硬體的時候
      必須調動的軟體連結硬體程式。

      因此程式走向為


      因此Driver的開發主要是以軟體的部份與硬體的部份來作銜接。
    2. Linux Driver

      機器語言 .o 還是透過交叉編譯去從.c檔,編成機器語言.o檔
      印象中的開發測試,是透過交叉編譯將led開啟或是關閉的執行方案轉成.o
      可能會有人說開關led有什麼好講得。
      這個使用方法是使用上了記憶體位置,並利用更改值的方式讓裝置的判斷模組
      來進行訊號>控制晶片,透過程式來進行開關燈。

      這就是『Driver』的一種。
      當然還有更複雜的啦,譬如說如何操縱USB
      甚至是透過usb開啟藍芽,在轉成網卡介面

      簡單來說就是介面轉過來轉過去。介面的互相銜接,就抓到重點了。

      當然....現在更多的都是套用啦+_+小弟我實力還不夠
      看到Linux底層很多都還霧茫茫。

      不過開發這個真的是用點心,每一個項次都是很多把手跟手的接力才做成的。
後話:小弟記得教授還說,如果你真的要碰這塊,大概5年才畢的了業(冷汗)。
不過在現在,真的很多地方都需要用到,因為connect各區塊連接,才能讓整組的系統動起來

找對方向,就是做吧。

沒有留言:

張貼留言