Re: [請益] 韌體轉職能怎麼轉?

看板Soft_Job作者 (呆呆小狼)時間8年前 (2015/07/23 18:55), 8年前編輯推噓6(11513)
留言29則, 14人參與, 最新討論串7/16 (看更多)
其實,我就是從硬體(電路)設計進入韌體撰寫,然後兼職撰寫應用軟體跟伺服器 服務的工程師。 你真的要說兩者的差別(我的感受): 撰寫韌體就像居住在山裡的野人,自由自在愛怎麼搞就怎麼搞。唯獨就是你要對 自然(硬體)常識豐富,完全理解硬體會幹些什麼然後操控自如。反正functionable 就好。 而在作業系統下撰寫軟體就好比去公司上班,做是要照公司的規矩,然後調用周 邊要跟同事協調綁手綁腳但是錢不見得多但是做什麼都就只要負責眼前的一個兩 個步驟就好。做多了會得罪人(出BUG),做少了會被監督(這個程式XXXX無效,請 聯絡OOOO) 其實,軟體、韌體的區別並不大。我以前是寫POS系統的(不是現在的PC POS,是 真的收銀機連接後台電腦那種POS)收銀機就是跑韌體的,他依樣能跑各種奇怪的 促銷跟商品組合,而且沒有MYSQL可以呼叫,甚至連SQLITE也沒有。不要說WINDOWS 連DOS都沒有,裡面就是我們自己寫的memoryDB跟簡單的TASK maneger。在PC POS 普及前,收銀機也使用了十幾二十年以上。你能說PC的軟體偶比收銀機偉大嗎? 然後,連線到後台。當時的後台一般分成三類: PCLAN+DOS ,XENIX,MINI(NEC ALTOS,IBM AIX,IBM SYSTEM 39) 我當時很喜歡把功能做在收銀機上,後台只是 單純用來作歷史資料以及商品建檔維護。因為在收銀機上我們想做什麼功能都不 用去閱讀煩人的作業系統開發手冊,因為收銀機上什麼都是我們自己搞的,要做 任何資料串聯或演算也隨便我們怎麼偷吃步。但是在作業系統上就很多規矩了, AIX跟XENIX要遵守POSXI,ALTOS跟SYSTEM39則是有他的一堆奇怪RULE要遵守。寫 起來真的很不自由,不過DOS就可愛多了,要她怎麼來他就怎麼來。然後MS PRESS 還出了一系列Microsoft un-doucment的書,到處教人家怎麼走後門XDD 可惜,DOS 實在有點給他弱小;只能單工,還沒有資源管理,一做起IO一堆TSR搶成一團。 會覺得撰寫韌體很無味,我猜大概是修改撰寫BIOS或EFI這類的PC(包含ARM或MIPS 的BOOT LOADER跟INIT POST)居多吧! 這類的韌體其實沒什麼好寫的,主要只是要 弄懂你家硬體挑選的晶片,然後把init post填正確,就這樣而已。甚至有些大廠 的韌體還可以擺爛;打電話叫供應商的FAE來搞定,自己只要撿現成就好了。 如果是這種的韌體RD,那千萬別覺得轉職撰寫軟體會比較好,因為你的工作對應 收入真的是天堂了。因為你真的要轉職你的KNOWHOW會完全歸零,然後也沒有FAE 可以操。 然後,如果你是以撰寫單晶片為主的韌體RD,你想轉職。你會需要遵從作業系統 與api的無效虛功的耐性先,因為api跟os為了統合各種需求與撰寫風格,所以她 的格式與呼叫方法通常可比司馬遷的「臨淄女子,彈弦,跕纏」的跕纏,你要先 克服這個閱讀障礙。然後再來你要花點時間去學點人因工程與美編技巧,因為所 謂的軟體(終端機軟體或電腦軟體)絕大部分的時間都是在跟人類裝可愛、Cosplay ,真正應用到學問或知識的部分只有一點點;因為不管是資料的整理或演算都有 專門的引擎,你只要會呼叫跟傳遞資料即可。甚至最重要的報表也都有報表引擎 可以用,你什麼都不必太了解,你只需要客戶溝通就夠了。對了,忘了溝通技巧 也很重要。重要到就算砸十幾萬去上黑幼龍的課都值得!! 如果閣下是更進一步的小型系統韌體的撰寫者,恭喜!!您只要花時間學習人因工 程、美術、溝通技巧即可。因為那些偉大的os根本就沒比rtos難懂,而且他們的 api跟system call都遠強大於你所熟知的rtos,這中間的轉換其實文件翻一番就 能理解了,幾乎不需要什麼學習曲線。 ※ 引述《csfgsj (仙人不指路)》之銘言: : 噓 WolfLord: 自己不懂的東西最好不要亂評論,韌體沒你想的阿呆,所謂 07/22 08:36 : → WolfLord: 應用軟體也沒你想的威。有很多高速機器看起來很神奇華麗 07/22 08:38 : → WolfLord: 但是他的程式連作業系統都沒有,搞不好才64KB的ROM 07/22 08:40 : → WolfLord: 然後只是個簡單的wifi轉uart模板卻用上ARMA9加linux 07/22 08:42 : → WolfLord: 軟體豬就只會吃掉cpu跟記憶體,不管是韌體還是軟體 07/22 08:44 : 噓 WolfLord: 順便告訴你,汽車的ecu非常複雜,但他就是用128KB的rom 07/22 08:48 : → WolfLord: 這128K要能計算引擎角度,大氣變化,行車速度,燃油品質 07/22 08:49 : → WolfLord: 輪子變化,前輪角度。然後統合掌控整台汽車的機器。 07/22 08:51 : → WolfLord: 而儀錶板只要跟ecu問答案,畫畫面,然後陪人裝可愛。 07/22 08:52 : → WolfLord: 卻配備4核處理器,數G的ram數g的flash,跑linux或wince 07/22 08:54 : → WolfLord: 然後還常常當機。可是那麼複雜的ecu除非壞了,終其一生 07/22 08:55 : → WolfLord: 放在高溫的引擎室卻穩定如新忠實工作... 07/22 08:57 : → csfgsj: 我是用車廠做比喻,不是真的在講車廠 07/22 09:11 : → csfgsj: 那個ECU我知道,以前我的老Toyota就換過一顆 07/22 09:11 : → csfgsj: 二手的就要一萬塊 07/22 09:11 我說隱喻的不當不是指ecu ,而是你拿車廠來比喻軟韌體:有很多東西的韌體 其實並不比所謂的軟體簡單,甚至更複雜。而且韌體的世界裡面也是有複雜到 使用作業系統然後購買api 來呼叫的產品。 軟韌體的差別其實只是在於這些程式是燒在rom或nor flash裡面一開機就能跑 或存放在hdd或paged nand flash需要開機post才能執行而已。跟什麼客製化api 作業系統有的沒的其實都沒關係。 -- 春花聞杜鵑,秋月看歸燕。人情薄似雲,風景疾如箭。 留下買花錢,趲入種桑園。茅苫三間廈,秧肥數頃田。 床邊,放一冊冷淡淵明傳;窗前,鈔幾聯清新杜甫篇。 ~WolfLord~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.244.114 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1437648953.A.285.html 修改錯字 ※ 編輯: WolfLord (111.246.244.114), 07/23/2015 19:02:34

07/23 19:12, , 1F
搞bootloader通常是測各個廠商給的東西,沒有在寫!
07/23 19:12, 1F
我今年三月某客戶因為業績低落發不出顧問費,我還去幫朋友(某大LCD面板廠經銷商) 客串FAE 替國內某大廠的所謂RD寫LCMinit post code,因為那個大廠月薪十幾萬的RD 點不亮一個泛用的面板 XDD 也好,我剛好赚點零用錢。 ※ 編輯: WolfLord (111.246.244.114), 07/23/2015 19:29:08

07/23 19:37, , 2F
問題是你的文字理解力有問題,我也沒說過韌體很簡單
07/23 19:37, 2F

07/23 19:37, , 3F
車廠的比喻你沒看懂,你就當作沒看過好了
07/23 19:37, 3F

07/23 19:43, , 4F
軟體、韌體的區別並不大?
07/23 19:43, 4F

07/23 19:43, , 5F
我的理解是:韌體是軟體的一種,軟體就不見得一定是韌體
07/23 19:43, 5F

07/23 19:45, , 6F
這是個定義上的問題。一般來說,韌體泛指沒有OS的軟體
07/23 19:45, 6F
閣下可以盡量表演無知與幼稚,但是早晨太陽仍會升起,您的表演仍然只能 博君一燦而已。

07/23 20:18, , 7F
cs你該不會不知道韌體命名的由來吧....
07/23 20:18, 7F

07/23 20:27, , 8F
業界定義韌體:
07/23 20:27, 8F
燒錄在ROM或NOR FLASH裡面,無法隨意修改(需要透過一定程序)的並列式(或由硬體自 動載入之序列式)唯讀記憶體。可以直接隨CPU或MCU啟動後直接執行無須再配置(Boot/ Post)的程式。稱之為韌體: EX:BIOS, Boot, EFI, Embedded MCU Inner Flash program, Koisk-ROM, Game console program card.... etc。

07/23 20:27, , 9F
手持裝置上的一切除了硬體
07/23 20:27, 9F
這倒不一定,因為有些手持裝置是有BOOT跟POST的。但有一些老闆會混在一起就是。

07/23 21:00, , 10F
單晶片現在都走向Embedded system,很容易混淆
07/23 21:00, 10F
是閣下混餚,不關業界的事

07/23 21:15, , 11F
韌體是軟體的一種..? 可以請問c大是在哪本書上看到的定義
07/23 21:15, 11F

07/23 22:02, , 12F
C與8051 賴麒文 文魁出版
07/23 22:02, 12F
韌體可以是軟體,但也不盡然就是軟體:他有可能只是一段Post code(不具程式功能 ,只是把參數放進周邊讓硬體照著設定動作) 也可能是功能強大的軟體系統,也可能 是簡單的BOOT LOADER。 但現在一般通稱的軟體通常不會是韌體(但也有些是例外),因為它們通常肥大無比( 但也精美絕倫),因此需要低廉的儲存容器間接造成無法直接伴隨硬體啟動。

07/23 22:03, , 13F
渾人何其多,這種問題也要吵
07/23 22:03, 13F
說得真好,我欣賞閣下這句話。 不過,不知可否請教閣下,書說要從101頂跳下就會得到永恆的幸福與青春不老。 不知您跳是不跳?

07/23 22:12, , 14F
我是不會跳。有人問書,我就答書。現在又懷疑書~~無賴嗎?
07/23 22:12, 14F
千萬別誤會,我很擔心閣下會跳呢,畢竟跳下去真的會青春不老還永恆幸福呢~ 我又沒說書是錯的,只是.......as you know

07/23 22:16, , 15F
抵銷廢噓
07/23 22:16, 15F

07/23 22:22, , 16F
有人又在發病了 暑假到了沒辦法
07/23 22:22, 16F

07/24 01:16, , 17F
笑了~
07/24 01:16, 17F

07/24 07:54, , 18F
07/24 07:54, 18F

07/24 08:16, , 19F
推個
07/24 08:16, 19F

07/24 09:11, , 20F
我這個叫「發文」,不是「發作」。
07/24 09:11, 20F
雖然從101頂樓跳下去真的可以會青春不老幸福永恆,但是自殺不能解決問題,勇敢 求救並非弱者,生命一定可以找到出路。

07/24 09:11, , 21F
會發文比永遠只會躲在地板下吱吱叫的高級
07/24 09:11, 21F

07/24 12:41, , 22F
有定期吃藥嗎?
07/24 12:41, 22F
捕鼠強好像可以處理吱吱叫說

07/24 22:57, , 23F
經驗分享給推~
07/24 22:57, 23F
謝謝 ^^;

07/25 03:24, , 24F
老是發一些糞作也好意思說嘴......
07/25 03:24, 24F

07/25 10:49, , 25F
等你能Po出不是糞作的東西的時候再來說嘴
07/25 10:49, 25F
到處拉屎不是什麼值得炫耀的好習慣呢~ 尤其跑到人家客廳裡拉屎是會被告的。

07/26 00:03, , 26F
07/26 00:03, 26F

07/26 01:09, , 27F
BIOS或EFI之類的!!??這樣講怪怪的吧~EFI是架構...現在的
07/26 01:09, 27F

07/26 01:10, , 28F
BIOS是建構在EFI上開發的(C)~Legacy BIOS是用組語
07/26 01:10, 28F
是是是是是....我修正: the compliance with the bootloader and firmware driver of the extensible firmware Interface specification OK?

07/26 01:10, , 29F
基本上...BIOS沒那麼簡單也沒那麼無聊~年薪要破100也頗簡單
07/26 01:10, 29F
我說真的,我真的覺得照著規格表啟動晶片是非常無聊的工作(我覺得),而且我也真的 沒有否認這工作很值錢。所以我力勸這一個族群的韌體工程師千萬別幻想轉職軟體是好 選擇,畢竟這份工作物超所值。 軟體業(一般通俗軟體業)真的不是機器的世界,你面的是絕對不講理但卻是口袋裡有個 幾塊錢就跟你大呼小叫的粗鄙庸俗人類。你寫程式的目的會從單純的Functionable變成 Functionable不Functionable不重要,但是裝可愛Cosplay 非常重要,非常重要,非常 非常重要。你腦袋裡面的專業與技術在這個領用(一般通俗的軟體業)裡面本質上就是一 坨屎,一文不值。因為你的客戶只會用人的角度去看世界,他們不會管你量子是不是存 在,也不會管你CPU 有幾個STEP。他們只管他能不能用他的大腦看懂,然後用爽。兩者 皆成立他們就掏錢買單,否則不只不給錢還會到處造謠說你是豬,說你是什麼邪惡科學 怪人......etc 套句鄉民常說的: 地球很可怕的,趕快回火星去吧! XDDDD ※ 編輯: WolfLord (111.246.244.116), 07/26/2015 22:32:54
文章代碼(AID): #1LiCWvA5 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1LiCWvA5 (Soft_Job)