作者leolarrel (真.粽子無雙)
看板Soft_Job
標題Re: [請益] 韌體初學者
時間Thu Feb 13 14:26:13 2020
※ 引述《t7365443 (U彥)》之銘言:
: 各位版友好
: 目前就讀國立科大碩(電機)
: 大學是資工系的
: 本人一直想走韌體工程師這方面
: 但是實驗室又是做網路相關的
: 想找個網路設備的韌體的領域
: 想知道如果要走韌體這方面需要補足什麼地方
: 有什麼比較重要的地方 可以自己自學或是去修大學部的課
: 大學是稍微有玩過arduino開發版
: 但尤其是硬體這方面 (電子 電路 嵌入式系統等等)以前資工教的比較少
: 謝謝各位的意見
身為一個在韌體&embedded system 工作了快20年的老屁孩來跟你說(我很廢,bug製造機,
只剩年資可以說嘴).
想走韌體,基本的電子電機知識是一定要具備的.
最基礎的電子學,電路學,數位邏輯,基本電學,非常重要,要會.基本的晶片通訊方式,
例如gpio, i2c, SPI,要會,電磁學,線路設計,pcb layout,會的話更好但不是必須.
要會這些要幹麻? 因為等你控制週邊晶片,週邊晶片卻不會正常動作的時候,你要有能力
找出為什麼.至少要能找到線索,說得出所以然來.這樣你才能跟硬體工程師進行討論.
如果你只是一個遇到問題就只會說”阿我填了暫存器,他就是不會動阿”的韌體工程師
,那硬體工程師怎麼跟你合作?厚黑一點的來說,當硬體工程師指責你的時候你能在老闆面
前反擊.
MCU/CPU/SoC的硬體部份,要知道一些基本知識,中斷,輪詢,timer,io,memory,mmu/non-
mmu,memory address mapping,clock&PLL,power & regulator等等的,不知道這些,你就
無法知道怎麼正確控制cpu的行為
OS的部份,基本的恐龍書內容要會,因為 1)如果你是在一個作業系統上開發,你要知道作
業系統在背後挖什麼洞給你跳.2)如果你遇到的是單晶片裸機開發,你總有一天會遇到需
要開發出自己的一個簡單的分時系統的狀況.不過資工的恐龍書都要念,對資工人應該還
算小菜.
除錯的部份,最基本的要懂得操作三用電錶,示波器,邏輯分析儀.韌體除錯部份,大概要知
道如何操作一些通用的除錯工具,例如gdb,或是IDE內附的debuger,另還有Jtag or SWD
等等.但我敢保證做軔體一定會遇到上述工具都無法幫助你的時候.
回頭來說,如果要走網通類韌體,目前產業鏈還蠻完整,OS&週邊晶片都很成熟,除了上述
的基礎之外(對,是基礎),你可以在多碰一些有線無線網路相關的軟硬體知識以及openwrt
韌體的水是很深的,絕不是簡單的事情.業界很多那種只會call api,填暫存器,遇到不會動
就傻在那邊只會推給硬體工程師的人,我個人覺得是很丟臉的.如果能勸你,我還是覺得不
要進來這,薪水沒有比較高,走純軟不必要會上面那麼多,還不須要跟硬體工程師吵架.每月
五號口袋麥克麥克.
多好
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.21.123.30 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1581575175.A.384.html
推 bemyself: 不就打雜的。跟工友差不多惹。 02/13 14:46
→ leolarrel: 說的太好了,的確就是打雜的! 02/13 14:47
推 kain777: 韌體屎缺 上有軟體下有硬體 出事要證明對方的錯 能見度 02/13 15:40
→ kain777: 不高 硬體bug不想改版又要韌體用程式遮 真心不推 02/13 15:40
推 caeserhaha: 用心推,水好深R 02/13 15:43
推 cuteSquirrel: 3樓中肯 02/13 15:54
推 yamakazi: 韌體工程師很多不會debuger只會看log 02/13 16:27
→ yamakazi: 很多也不會gdb的 遇到memory的問題只會兩手一攤 log沒打 02/13 16:28
→ yamakazi: 印的就不會解 02/13 16:28
→ yamakazi: I2C訊號常常不乾淨受干擾也很麻煩 02/13 16:29
→ yolasiku: 還好啦 聽過一個演算法的人 用公費報名韌體的教學講座 02/13 16:43
→ yolasiku: 課程 上完就號稱自己學會韌體惹 02/13 16:43
推 tianyun129: MCU/CPU/SoC的硬體部份,要知道一些基本知識,中斷,輪 02/13 17:27
→ tianyun129: 詢 ==>請些知識自學的話,要找什麼資料? 02/13 17:27
→ tianyun129: sorry 訂正==》請問這些知識 02/13 17:28
→ xam: 不過這個單看書是沒什麼用的... 02/13 17:57
噓 final01: 笑死,如果你上面列的你都熟的話不會是bug製造機 02/13 18:31
→ final01: 我不信你敢說電子電路超強 02/13 18:32
→ sam22213228: oducts/9789864344444?list_name=srh 02/13 18:33
→ leolarrel: final01說的沒錯阿,就是知道這些不會結果吃虧,才跟別人 02/13 18:44
→ leolarrel: 說這些都要會.我基本電學,電子學,在學校都不及格 02/13 18:45
→ leolarrel: 我印象中nvidia 的韌體工程師真的很強,我搞不定的一個 02/13 18:48
→ leolarrel: 問題拿回nvidia 總部找他們,十分鐘就說出root cause.讓 02/13 18:49
→ leolarrel: 我覺得軔體的世界真的要懂超多才能活命 02/13 18:49
推 flysonics: 會編kernel就會用gdb了 說實話也就那幾行指定 說穿了 02/13 18:53
→ flysonics: 沒什麼 工友何苦互殘 02/13 18:53
→ LinuxKernel: 你這大概是不大的公司,才需要一個人做這麼雜的事。 02/13 20:22
噓 idmaker: 根本不需要多會電子電路,真的別誤導 02/13 21:07
推 g9911731: 誠實給推 02/13 22:03
→ csfgsj: 很多好書都很冷門,甚至絕版,能參考的資料越來越少了 02/13 22:07
推 famous727: 想問業界都用什麼語言在寫?看網路上除了大眾的C/C++, 02/13 22:07
→ famous727: 還看到JS, C#, Python 02/13 22:07
推 csfgsj: 另外,我是不推恐龍書啦! 02/13 22:10
推 jeff40108: 寫個韌體還要自己拉線看信號也太慘,你家硬體是在哈嘍 02/14 01:39
→ cphe: 分工不夠細的地方只是打雜又看不深而已,小公司比較常見 02/14 08:50
推 b85040312: 真的寫起來就像打雜的 02/14 21:44
推 s860134: 靠杯 怎麼感覺什麼都要會 02/15 01:54
→ s860134: 隨便一句話都是幾年的工 02/15 01:55
推 flysonics: 看情況啦 大公司分工細 版子之類的事情你丟給EE就好 02/15 10:12
→ flysonics: 但是你如果想賺外快自己出來接案 只懂韌體不懂硬體就 02/15 10:13
→ flysonics: 等著喝西北風吧 02/15 10:13
→ ichunlai: 影片看一看,其他工作時再學。 02/15 15:58
推 kingofsdtw: 電子電路要看工作需不需要 02/16 00:18
→ kingofsdtw: 電子電路很簡單C/R/J外沒啥重要關鍵字吧 02/16 00:19
→ kingofsdtw: 不過真的不用特別去學,需要再說 02/16 00:20
推 zxp930110: 水真的深QQ 在溺死前先出水了 02/20 11:35