Re: [問題] Linux Development
※ 引述《vvision ()》之銘言:
: 感謝各位的回答
: 我是想要嘗試嵌入式系統 不過應該底子不是很好 (硬體部分)
: 所以想說先從driver 學起 ..
: 想請問各位前輩幾個問題
我是非相關背景
然後剛入門第一次接觸的初學者,希望大家也能不吝給與指教 ^^"
: 1.在學driver前是否有什麼先修課程需要先學習的
: 2.我有上網查過一些資料 有的人有買板子
: 像我這種初學者 要馬上買嗎? 還是等學一陣子在買
: 3.我有上網看大家推薦driver的書籍
: 目前是考慮 歐萊禮的 Linux Device Drivers, Third Edition (不過是中文版的)
: 請問這本適合初學者嗎?
: 是否有需要搭配 歐萊禮Understanding the Linux Kernel, Third Edition(也是中文)
: 因為之前OS恐龍本學的亂七八糟的 所以OS概念也不是很好...
: 再書籍方面可否麻煩大家給點建議..
: 麻煩大家了..謝謝!
針對上述三個問題我用我目前的整個學習過程和方法一併回答提供給你參考一下
我使用的板子是 ADI 的 ADSP-BF537 STAMP Board
http://www.analog.com/en/epProd/0,,BF537-STAMP,00.html
再加上 uClinux
http://blackfin.uclinux.org/gf/
這樣的搭配可以足夠讓你從底層的 driver 一直玩到 OS 層次上面
然後再來做一個軟硬體整合
所以這樣完整的玩過一次的話,對整個觀念也會更了解的
回到學習過程上來講
在正式開始學習寫 driver 之前
我是以 Understanding the Linux Kernel, Third Edition 為主
先在一般桌機的 linux 上 (看個人喜好哪個 linux distro,沒特別限定)
學習怎樣在 linux kernel 裡 trace 出一些我想知道的 data
所以在這部份我學會怎樣去新增或使用 system call
也知道和學會使用許多好用的 data structure, marcro
總之在這花時間培養和建立起對 OS 的整體感覺和觀念
之後要用到板子上的 uClinux 也就大同小異了
接著要開始寫 driver 時
我以 Linux Device Drivers, Third Edition 為輔和大量 google 來的網路資料為主
先學會最簡單的 character device driver (我目前也只懂得一點點這個而已...)
在這過程中就把前述學會的許多 OS data structure, marcro ...等拿來運用
還有一個最重要的是要學會看懂板子的 data sheet
看 data sheet 的過程真的要很有耐心和仔細的花時間去看和 try
如果手邊還有三用電表和視波器的話
可以拿來幫助你檢視輸出的波型對不對, 針腳是否正常在 work ...諸如此類的檢查驗證
就這樣
OS ok 了,driver 也 ok 了,最上層的 application 也會寫的話
那就做一個軟硬體整合
在玩完一整套的基本學習之後應該夠給你一個充分的感受也可以構成一個很好的開端
以上就是我這第一次接觸的初學者這半年多來的學習經驗
剛開始學時真的會很痛苦也很苦惱
但是若有心堅持用心去學習和挖資料的話
跨過去之後真的會越學越順暢
因為在這過程你會越來越懂得怎樣去克服同樣類似的困難
雖然還是很花時間就是了
希望對你有幫助
也希望有其他先進們能給我些建議
謝謝 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.212.44
推
05/15 18:48, , 1F
05/15 18:48, 1F
推
05/15 18:50, , 2F
05/15 18:50, 2F
推
05/15 23:51, , 3F
05/15 23:51, 3F
推
05/16 00:20, , 4F
05/16 00:20, 4F
推
05/16 02:32, , 5F
05/16 02:32, 5F
→
05/16 02:36, , 6F
05/16 02:36, 6F
※ 編輯: extrawave 來自: 140.115.212.44 (05/16 02:55)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章