當前位置:編程學習大全網 - 編程語言 - 嵌入式方向和軟件開發方向

嵌入式方向和軟件開發方向

1. 說在前面

“嵌入式軟件開發”包括“嵌入式應用開發”和“嵌入式驅動開發”,本站主要關註的嵌入式開發內容為“嵌入式驅動開發” ,繼續細化的方向為“嵌入式Linux驅動開發”,知識點我們首先可以從方向的名字關鍵字上有所理解:嵌入式,Linux,驅動。

“嵌入式” 代表的是產品的類型,它是相對於PC來說的,具體的概念,本站已經說的非常清楚了,這裏就不累述了。具體請看關註新人系列的職業規劃帖子。

“Linux”代表的是嵌入式產品中使用的軟件操作系統,也就是說我們選擇Linux操作系統作為主要學習對象。妳可以理解為它相對於PC機上的windows操作系統。

“驅動”代表的是Linux操作系統開發中的壹個方向“驅動開發”,說明我們當前關註的是linux驅動開發,而不是linux應用開發。妳可以理解為相對於PC中的windows操作系統的驅動,我們用PC電腦的時候,有些時候妳不是需要自己安裝某些驅動嗎,就是這個意思。

總結壹下,所以我們現在關註的開發內容歸根到底就是“驅動“開發,不過這個驅動是”Linux“操作系統的驅動,而這個”linux“操作系統主要是跑

在”嵌入式“產品上的。所以我們開發的主要知識點就是集中在”Linux驅動“ 和

”嵌入式“兩個概念上來。我們知道了知識點概念的前因後果之後,開始對這兩個知識點的開發細節做進壹步細化。

所謂”嵌入式“開發:

我們知道概念上它是相對於PC開發,前面的敘述得知我們采用的操作系統為linux,那麽我的問題來了:如果PC機上也跑的是Linux操作系統,基於PC的linux開發其實和基於嵌入式系統的linux開發基本開發思路是壹樣的,只不過開發過程中的編譯,

燒錄方式有差別。下面我們就說說這兩種開發方式的異同點,因為PC對於我們來說不陌生,那麽在PC機上安裝個ubuntu系統也應該是大家都這麽玩過。既

然這兩種開發方式只是編譯和燒錄有區別的話,那麽我們就很容易通過PC機上安裝個ubuntu來快速認識嵌入式linux系統的開發了。

PC機linux開發:

如果妳有個PC,並且安裝了ubuntu,假設我們PC上有SD卡控制器,但是ubuntu中的linux並沒有這個型號的SD卡驅動,那麽如果我們想開發個PC機上SD卡驅動,我們就可以分以下幾步開發:

(1)下載相應的ubuntu版本的linux內核源碼到本PC機。

(2)如果該linux代碼裏沒有該SD卡型號的驅動,那麽就需要我們針對該SD卡型號寫基於linux的SD卡驅動,這壹步也就是我們主要的”驅動“開發任務。

(3)針對linux內核,直接在本機上make menuconfig,配置選擇該型號的SD驅動支持,前提是妳已經開發好了SD卡驅動了。

(4)使用本機ubuntu上GCC編譯器直接編譯內核:make。

(5)燒錄內核:直接在本機上make modules_install, make install.這個動作將把相應的驅動程序拷貝到ubuntu的boot目錄,重啟的時候SD卡驅動就會生效了。

嵌入式系統linux開發:

如果妳有個s3c6410,2410的開發板,或者任何壹個嵌入式arm的開發板,並且安裝了Linux,假設我們板子上有SD卡控制器,但是用的linux並沒有這個型號的SD卡驅動支持,那麽如果我們想開發個基於開發板機上SD卡驅動,我們就可以分以下幾步開發:

(1)拿到相應的版本的linux內核源碼並放置到開發用的PC機。

(2)如果該linux代碼裏沒有該SD卡型號的驅動,那麽就需要我們針對該SD卡型號寫基於linux的SD卡驅動,這壹步也就是我們主要的”驅動“開發任務。

(3)針對linux內核,直接在開發機上make menuconfig ARCH=arm,配置選擇該型號的SD驅動支持,前提是妳已經開發好了SD卡驅動了。

(4)使用開發PC機ubuntu上已經安裝好了的arm-linux-GCC編譯器直接編譯針對開發板的內核:make ARCH=arm。

(5)燒錄內核:將編譯後生成的內核文件通過串口現在,usb下載,tftp等下載到目標開發板子上面,重啟開發板,看到SD卡驅動生效。

大家可以看到我們關心的兩個知識點中的“驅動”開發,主要是第(2)項在PC上和嵌入式上基本是相同的。另壹“嵌入式”知識點是和PC上有區別的,主要區別在於:編譯和燒錄方式。

所以我們對於“嵌入式linux驅動”開發的知識點總結,主要是linux“驅動”的開發和“嵌入式”系統的燒錄編譯方法。

2. 知識點總結

嵌入式系統的燒錄和編譯知識點:

(1)PC服務器的準備,安裝ubuntu系統

(2)交叉編譯器的安裝,編譯方法。

(3)下載到目標板,串口燒錄,usb下載燒錄,tftp網絡燒錄。

請大家仔細閱讀本站的跟我學系列貼子,通讀之後我相信“嵌入式”的這個知識點就已經完整的掌握啦。

/thread-8166-1-1.html

Linux驅動開發知識點:

(1)C語言基礎 - 基礎知識點

(2)操作系統基礎理論 - 基礎知識點

(3)簡單的linux命令操作 -基礎知識點, 有沒有玩過ubuntu或者其他發行版?有沒有使用過命令行做壹些事情?

(4)設備的文件節點 - 必備知識點,/dev/下面節點的意義,mknod創建dev文件節點。

(5)簡單驅動的modules的編寫和加載 - 必備知識點, insmod, modprobe, rmmod命令的意義,為模塊傳遞參數。

(6)字符型驅動編寫 - 必備知識點

(7)驅動基本調試方法 - 必備知識點,printk打印驅動信息,dmesg打印kernel信息,proc,sys目錄的意義。

(8)***享資源的同步機制 - 必備知識點,資源臨界區概念,自旋鎖,信號量,等待隊列的使用。

(9)硬件IO的訪問 - 必備知識點,ioremap,memory map,writel,readl讀寫接口。

(10)中斷的request和中斷號的分配 - 必備知識點。

(11)PCI,AMBA總線知識 - 必備知識點。

(12)時間管理 - 必備知識點,udelay,mdelay長延時和短延時,jiffies,os timer原理。

(13)塊設備驅動程序的編寫 - 必備知識點。

(14)Kconfig和Makefile,添加驅動到內核 - 必備知識點。

(15)壹個比較大型的驅動程序學習 - 選學知識點,選取任何壹個eMMC,SD,USB等比較大型的驅動學習。

3. 知識點速成

osboy正在針對知識點進行梳理,目前速成教程已經編纂完畢,速成班招生進行中。。。詳情請參考:/thread-9692-1-1.html,也可以QQ 82475491聯系osboy進行咨詢交流。

  • 上一篇:庫德編程
  • 下一篇:四國棋相關介紹。
  • copyright 2024編程學習大全網