看板 Tech_Job 關於我們 聯絡資訊
Hi, 這邊就不討論轉sw這個決定好或不好了,畢竟自己的選擇自己承擔。 而且資工畢業能夠當做大公司designer,也有過人之處才對。 純粹就你的問題回答: : 1. : 如果我要自學把開發板上的周邊裝置帶起來 : (e.g. USB/wifi/藍芽), 想請教建議的入門學習方式? : 直接 Linux device driver嗎? : 或者不用OS, 看有無現成的 library 抓下來用 ? : 但這樣是否對底層硬體運作不夠了解? : 因為lib procedure calls都幫你把底層該讀寫哪些register包好了? : 或者有沒有上OS不是重點,重點是能講出你多了解這些周邊運作方式? OS當然是重點,因為driver就是OS跟裝置溝通的橋樑,例如現在OS要送一筆資料 到USB/wifi/BT,這過程是怎麼發生的? 1.OS要找到裝置的driver 2.OS要呼叫driver把裝置帶起來 3.OS送資料給driver 4.driver轉換資料成USB/wifi/BT的格式 5.driver把上述的資料寫到裝置的register/fifo,完成傳輸 上面#1~#3都跟OS有關係,不同的OS作法會不同,所以OS很重要。 #4就是所謂domain knowledge,你要懂wifi/BT的protocol,才有辦法做對。 #5就是你所謂底層硬體運作,你要知道自家IC的運作方式才能正確把資料送到IC。 所以你可以想一想,用library有沒有辦法了解上述流程。 : 2. : 我用的開發板目前已有可用的 Linux 版本, 似乎連device driver都有現成的, : 我不確定是否該從 porting Linux 開始進行學習 ? : 或者直接看部分code了解 kernel運作 e.g. 記憶體管理/檔案系統 +一些書單 ? : (e.g. LDD or Linux Device driver之類的) : 請教這部分有沒有建議的流程/網站(之類的) : 可以有些題目,讓學習者自己改code 透過做中學深入了解 kernel運作? 這個問題有模糊地帶,實際上應該兩個問題:學習driver 跟 kernel。 這兩個我認為是兩件事情,或許有人認為是一樣的,因為目前裝置都太複雜了,很難 兩個精通。 舉例來說,如果你是做像wifi/BT等裝置,那重點應該是在driver,如果是做平台像是電視/平板/手機 ,重點應該是在Linux kernel。 LDD(Linux Device driver)是很好的書,但我不 建議初學者看,這本比較像進階書。如果要練習的話,我建議可以用開發版跑一個非 Linux 的OS,然後練習把一個ethernet driver porting到這OS上面,透過這個過程 你應該會有一些體驗跟"感覺"。 再去讀LDD會有更多領悟。 : 3. : 請教以上的部分, 該自學到怎樣的程度才有辦法在面試勝出 & 應付未來工作呢? : 像我的情況, 從整合轉sw, 是否無法一步就跳到國外工作? : 必須先在台灣找其他願意收無經驗sw的IC廠先歷練幾年? : (btw我也考慮過內轉不過現在沒管道沒認識做sw的人Q_Q) 如果你是剛畢業沒多久,學歷還是面試最好的武器,加上你有做過IC 整合, 這個是一個優勢,單看你履歷怎麼包裝。 至於跳到國外工作,這應該是一個獨立議題,你就算FW/驗證都很強,還是沒法保證 一定可以到國外工作。 我可以想到的有兩個方法,一個是去國外念書,當然這就是 砍掉重練了,一個是我比較常看到的,就是想辦法去外商,接著把握機會轉到外商HQ。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.187.3 ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1519610593.A.353.html
bab7171: 推,其實呆台灣什麼都不吃香。 02/26 10:24
ruthertw: 幹到副總以上就吃香了~ 02/26 11:10
srxrrr: 推!!! 02/26 15:17
poem5566: 推 02/27 03:47
chien2013: 推 02/28 00:26
metalalive: 謝謝, 受益良多 02/28 14:57