Re: [請益] 韌體初學者

作者: leolarrel (真.粽子無雙)   2020-02-13 14:26:13
※ 引述《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,填暫存器,遇到不會動
就傻在那邊只會推給硬體工程師的人,我個人覺得是很丟臉的.如果能勸你,我還是覺得不
要進來這,薪水沒有比較高,走純軟不必要會上面那麼多,還不須要跟硬體工程師吵架.每月
五號口袋麥克麥克.
多好
作者: bemyself (self)   2020-02-13 14:46:00
不就打雜的。跟工友差不多惹。
作者: leolarrel (真.粽子無雙)   2020-02-13 14:47:00
說的太好了,的確就是打雜的!
作者: kain777 (想妳在0:01分)   2020-02-13 15:40:00
韌體屎缺 上有軟體下有硬體 出事要證明對方的錯 能見度不高 硬體bug不想改版又要韌體用程式遮 真心不推
作者: caeserhaha (凱薩沙拉)   2020-02-13 15:43:00
用心推,水好深R
作者: cuteSquirrel (松鼠)   2020-02-13 15:54:00
3樓中肯
作者: yamakazi (大安吳彥祖)   2020-02-13 16:27:00
韌體工程師很多不會debuger只會看log很多也不會gdb的 遇到memory的問題只會兩手一攤 log沒打印的就不會解I2C訊號常常不乾淨受干擾也很麻煩
作者: yolasiku (我的綠卡能吃嗎)   2020-02-13 16:43:00
還好啦 聽過一個演算法的人 用公費報名韌體的教學講座課程 上完就號稱自己學會韌體惹
作者: tianyun129   2020-02-13 17:27:00
MCU/CPU/SoC的硬體部份,要知道一些基本知識,中斷,輪詢 ==>請些知識自學的話,要找什麼資料?sorry 訂正==》請問這些知識
作者: xam (聽說)   2020-02-13 17:57:00
作者: final01 (牛頓運動定律)   2020-02-13 18:31:00
笑死,如果你上面列的你都熟的話不會是bug製造機我不信你敢說電子電路超強
作者: sam22213228 (Syan)   2020-02-13 18:33:00
個人弱弱只能推這本https://www.tenlong.com.tw/products/9789864344444?list_name=srh
作者: leolarrel (真.粽子無雙)   2020-02-13 18:44:00
final01說的沒錯阿,就是知道這些不會結果吃虧,才跟別人
作者: flysonics (飛音)   2020-02-13 18:53:00
會編kernel就會用gdb了 說實話也就那幾行指定 說穿了沒什麼 工友何苦互殘
作者: LinuxKernel (Linus Torvalds)   2020-02-13 20:22:00
你這大概是不大的公司,才需要一個人做這麼雜的事。
作者: idmaker (SMAN)   2020-02-13 21:07:00
根本不需要多會電子電路,真的別誤導
作者: g9911731 (豪)   2020-02-13 22:03:00
誠實給推
作者: csfgsj (切割對半)   2020-02-13 22:06:00
我推這本 https://reurl.cc/M7qgVn 超有用的觀念很多好書都很冷門,甚至絕版,能參考的資料越來越少了
作者: famous727 (蜥蝪)   2020-02-13 22:07:00
想問業界都用什麼語言在寫?看網路上除了大眾的C/C++,還看到JS, C#, Python
作者: csfgsj (切割對半)   2020-02-13 22:10:00
另外,我是不推恐龍書啦!
作者: jeff40108 (死得腥羶豔油劑是他)   2020-02-14 01:39:00
寫個韌體還要自己拉線看信號也太慘,你家硬體是在哈嘍
作者: cphe (魔鬼藏在垃圾筒裡)   2020-02-14 08:50:00
分工不夠細的地方只是打雜又看不深而已,小公司比較常見
作者: b85040312 (萬年newman)   2020-02-14 21:44:00
真的寫起來就像打雜的
作者: s860134 (s860134)   2020-02-15 01:54:00
靠杯 怎麼感覺什麼都要會隨便一句話都是幾年的工
作者: flysonics (飛音)   2020-02-15 10:12:00
看情況啦 大公司分工細 版子之類的事情你丟給EE就好但是你如果想賺外快自己出來接案 只懂韌體不懂硬體就等著喝西北風吧
作者: ichunlai (^_^)   2020-02-15 15:58:00
https://www.youtube.com/user/StateMachineCOM 把這個影片看一看,其他工作時再學。
作者: kingofsdtw (不能閒下來!!)   2020-02-16 00:18:00
電子電路要看工作需不需要電子電路很簡單C/R/J外沒啥重要關鍵字吧不過真的不用特別去學,需要再說
作者: zxp930110 (龜山下智久)   2020-02-20 11:35:00
水真的深QQ 在溺死前先出水了

Links booklink

Contact Us: admin [ a t ] ucptt.com