PTT推薦

Re: [請益] 韌體初學者

看板Soft_Job標題Re: [請益] 韌體初學者作者
leolarrel
(真.粽子無雙)
時間推噓16 推:18 噓:2 →:31

※ 引述《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留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.21.123.30 (臺灣)
PTT 網址

bemyself02/13 14:46不就打雜的。跟工友差不多惹。

leolarrel02/13 14:47說的太好了,的確就是打雜的!

kain77702/13 15:40韌體屎缺 上有軟體下有硬體 出事要證明對方的錯 能見度

kain77702/13 15:40不高 硬體bug不想改版又要韌體用程式遮 真心不推

caeserhaha02/13 15:43用心推,水好深R

cuteSquirrel02/13 15:543樓中肯

yamakazi02/13 16:27韌體工程師很多不會debuger只會看log

yamakazi02/13 16:28很多也不會gdb的 遇到memory的問題只會兩手一攤 log沒打

yamakazi02/13 16:28印的就不會解

yamakazi02/13 16:29I2C訊號常常不乾淨受干擾也很麻煩

yolasiku02/13 16:43還好啦 聽過一個演算法的人 用公費報名韌體的教學講座

yolasiku02/13 16:43課程 上完就號稱自己學會韌體惹

tianyun12902/13 17:27MCU/CPU/SoC的硬體部份,要知道一些基本知識,中斷,輪

tianyun12902/13 17:27詢 ==>請些知識自學的話,要找什麼資料?

tianyun12902/13 17:28sorry 訂正==》請問這些知識

xam02/13 17:57不過這個單看書是沒什麼用的...

final0102/13 18:31笑死,如果你上面列的你都熟的話不會是bug製造機

final0102/13 18:32我不信你敢說電子電路超強

sam2221322802/13 18:33個人弱弱只能推這本https://www.tenlong.com.tw/pr

sam2221322802/13 18:33oducts/9789864344444?list_name=srh

leolarrel02/13 18:44final01說的沒錯阿,就是知道這些不會結果吃虧,才跟別人

leolarrel02/13 18:45說這些都要會.我基本電學,電子學,在學校都不及格

leolarrel02/13 18:48我印象中nvidia 的韌體工程師真的很強,我搞不定的一個

leolarrel02/13 18:49問題拿回nvidia 總部找他們,十分鐘就說出root cause.讓

leolarrel02/13 18:49我覺得軔體的世界真的要懂超多才能活命

flysonics02/13 18:53會編kernel就會用gdb了 說實話也就那幾行指定 說穿了

flysonics02/13 18:53沒什麼 工友何苦互殘

LinuxKernel02/13 20:22你這大概是不大的公司,才需要一個人做這麼雜的事。

idmaker02/13 21:07根本不需要多會電子電路,真的別誤導

g991173102/13 22:03誠實給推

csfgsj02/13 22:06我推這本 https://reurl.cc/M7qgVn 超有用的觀念

csfgsj02/13 22:07很多好書都很冷門,甚至絕版,能參考的資料越來越少了

famous72702/13 22:07想問業界都用什麼語言在寫?看網路上除了大眾的C/C++,

famous72702/13 22:07還看到JS, C#, Python

csfgsj02/13 22:10另外,我是不推恐龍書啦!

jeff4010802/14 01:39寫個韌體還要自己拉線看信號也太慘,你家硬體是在哈嘍

cphe02/14 08:50分工不夠細的地方只是打雜又看不深而已,小公司比較常見

b8504031202/14 21:44真的寫起來就像打雜的

s86013402/15 01:54靠杯 怎麼感覺什麼都要會

s86013402/15 01:55隨便一句話都是幾年的工

flysonics02/15 10:12看情況啦 大公司分工細 版子之類的事情你丟給EE就好

flysonics02/15 10:13但是你如果想賺外快自己出來接案 只懂韌體不懂硬體就

flysonics02/15 10:13等著喝西北風吧

ichunlai02/15 15:58https://www.youtube.com/user/StateMachineCOM 把這個

ichunlai02/15 15:58影片看一看,其他工作時再學。

kingofsdtw02/16 00:18電子電路要看工作需不需要

kingofsdtw02/16 00:19電子電路很簡單C/R/J外沒啥重要關鍵字吧

kingofsdtw02/16 00:20不過真的不用特別去學,需要再說

zxp93011002/20 11:35水真的深QQ 在溺死前先出水了