1~3年韌體工程師求前輩指點 - 工程師

Jessica avatar
By Jessica
at 2019-01-22T14:12

Table of Contents

嗨,今天大家過的好嗎。
小弟寫FW已經有一兩年了,大概了解這個領域的工作內容以及涉及的範圍。目前技術能力
卡在一個瓶頸,想上來請教各位大大該如何精進自己。


先說說我已具備的能力。

1.有辦法讀懂OS手冊,並正確使用該API。

花了兩個月把uC/OS-III的手冊看完一遍,且成功使用semaphore與message queue。有辦法
融會貫通手冊想要表達的觀念以及kernel的實作細節。但僅止於此,就是會用而已。

2.有辦法快速上手新的硬體,並寫出該硬體的driver。

3.其他抓硬體bug,用示波器...blabla的基本能力就不贅述了

目前欠缺的能力

1.物件導向的觀念

我發現我之前寫的code在亂寫,很像是把一堆東西東湊西湊然後混著用。我希望自己能寫
出具有模組化的程式碼,且有辦法在未來需要擴充的時候不用牽一髮而動全身。
上網查,如果在C語言加入物件導向的觀念,可以改善這部分(請幫舉證?),所以我最近試
著想要用C語言的角度了解、寫出物件導向的程式碼

但我找不到一本好的入門書,請各位網友建議,謝謝。

2.欠缺讀code的能力

當coder把user用不到的資訊全部放在header file,會讓user越讀越混亂。好的code應該
具有information hiding的特色(我自己說的),

我沒辦法在一堆混亂的資訊中過濾出有用的資訊,並且了解對方在寫什麼。看到會讓人誤
會的變數命名、沒有註解的function prototype、沒有意義的檔名以及沒有把每個file分
層的project,我真的必須要一直問對方才有辦法了解對方的邏輯。

我知道可以要求對方多加點註解,或者是要求改善他的寫法。但我相信我更應該做的是提
升自己的閱讀能力,而不是去要求別人。想請問這部分需要如何提升自己呢?

3.程式組織能力

這部分有一點抽象。比如在寫一支application,我可能會自定義很多型別(struct),但我
發現我有時候會搞錯各個成員(member)該擺放的位置,比如A結構的成員我可能會放到B結
構裡去,導致在寫struct of struct的時候會卡住。

常常搞混type的命名與identifier的命名。
拿int number做比喻好了,我們很清楚知道number的型別是int,但我有時候就會命名成相
反。該怎麼說呢,就是有點還沒辦法明確地分清楚各個struct要擔任的角色,以及type的
定義嗎?(我自己也不知道問題出在哪)

這部分我目前不知道該怎麼辦,感覺搞懂物件導向後有辦法改善? 還是看資料結構?(我買
來但都沒時間翻)

4.無法明確掌握自己該精進的方向

比如最近看到一個網址: https://www.state-machine.com/

它好像在提倡它的工具比RTOS好用,什麼framework還有state-machine的,還加上UML。
我腦袋就出現一堆問號,諸如:

什麼是UML?
在RTOS的環境下沒辦法寫state-machine嗎?
RTOS跟它的framework不能共存嗎?感覺是同一種東西啊!...blablabla

這些問題我也有上網google過,但也只能懂表面,沒辦法了解他們在幹嘛


希望有位好心的大大可以跟我聊一聊Q_Q讓我知道我目前在roadmap的哪裡,以及該怎麼前
進,謝謝!(如果打的很亂請見諒)

--

All Comments

Anonymous avatar
By Anonymous
at 2019-01-25T19:54
你完全搞錯方向= =
Ina avatar
By Ina
at 2019-01-30T05:03
c的物件導向去看 linux碼, 一堆都是或是jserv有教學影片
Charlie avatar
By Charlie
at 2019-01-31T21:06
問題1~3,可以看clean code/clean architecture
Mia avatar
By Mia
at 2019-02-03T05:54
了解設計模式,及多看code 會有幫助
Gilbert avatar
By Gilbert
at 2019-02-03T14:57
第1點怪怪的,uC/OS-III需要自己實做semaphore和message que
ue? OS本身就有這功能吧
Blanche avatar
By Blanche
at 2019-02-05T22:14
第一句聽到有點煩
Regina avatar
By Regina
at 2019-02-06T07:24
你可以去問油土伯
Necoo avatar
By Necoo
at 2019-02-10T16:08
讀code能力,除非自己有毅力去找open source的專案慢慢看裡
面code, 不然就是接一堆幫人擦屁股的解軟體bug的工作來做
Kumar avatar
By Kumar
at 2019-02-11T22:43
韌體的話,建議你站穩一塊domain knowledge,ex:USB, TCP/IP,
File system....這是做韌體最核心的價值
Regina avatar
By Regina
at 2019-02-14T23:05
吃飽太閒可以去trace Linux kernel啊
Frederic avatar
By Frederic
at 2019-02-18T23:33
1.的話就是指標+strict,就差不多能用了
Struct
Todd Johnson avatar
By Todd Johnson
at 2019-02-21T19:07
linux下面不同的subsystems很多都有搭物件導向寫法
Ethan avatar
By Ethan
at 2019-02-25T08:48
C不是物件導向語言 不需要完全用物件導向
David avatar
By David
at 2019-02-26T14:31
硬要用C寫OO 可讀性會很差
Connor avatar
By Connor
at 2019-03-01T16:38
FW code 扯進 OO 就完了
Hazel avatar
By Hazel
at 2019-03-06T15:14
youtube搜尋
你所不知道的c語言
Mary avatar
By Mary
at 2019-03-09T07:26
寫FW談OO.. 是不是搞錯重點了
Eden avatar
By Eden
at 2019-03-10T17:05
整個linux kernel都很OO 可以去看看如何用C寫OO的資訊
Delia avatar
By Delia
at 2019-03-14T07:04
搭配kernel讀 認真看保證會有收穫
Gary avatar
By Gary
at 2019-03-16T06:18
看你是信 linux kernel 還是信不認識的鄉民
Elizabeth avatar
By Elizabeth
at 2019-03-16T22:17
你的問題1,建議你找一段自己寫的程式然後把他畫成流程圖,
看看這圖是不是很醜,是的話,請重畫出好看的圖,然後照圖
的步驟去寫code
Enid avatar
By Enid
at 2019-03-17T20:04
問題1其實跟懂不懂物件導向關係不大
Kumar avatar
By Kumar
at 2019-03-18T12:56
其實韌體就只要做到,訊號進的來,資料出的去,工程師發大財
John avatar
By John
at 2019-03-19T16:09
可以說說你寫過那些driver嗎?
Madame avatar
By Madame
at 2019-03-24T06:29
你不是夜市學店那一位嗎?電池沒做了
Suhail Hany avatar
By Suhail Hany
at 2019-03-26T15:19
來寫BIOS啊
Hardy avatar
By Hardy
at 2019-03-30T03:12
你講的這些來寫UEFI bios都有
Lydia avatar
By Lydia
at 2019-04-03T21:15
拿現成BIOS/bootloader精進coding能力喔......XD ! 怎麼跟
高級長官說的都不太一樣XD
Quintina avatar
By Quintina
at 2019-04-07T20:48
UEFI程式比較簡單環境也較單純 作為學C的OO其實還可以
Mason avatar
By Mason
at 2019-04-09T19:20
但是應用面很窄 還是直接學kernel或RTOS比較快
Regina avatar
By Regina
at 2019-04-14T07:42
真的環境簡單XD OS BSOD,chip 莫名reset都算你的XD
Victoria avatar
By Victoria
at 2019-04-16T16:30
1. 21世紀C語言 / OOP in C可以拿來翻
Ingrid avatar
By Ingrid
at 2019-04-20T02:33
2. 資料流和領域知識可以輔助你更快進入狀況 就認真問吧
Victoria avatar
By Victoria
at 2019-04-24T19:16
4. 目的是要做啥?好維護?那還是選比較多人用的比較好
Zora avatar
By Zora
at 2019-04-29T18:27
其實不是OO不好 是每個人寫的OO都不一樣
寫久了就亂七八糟了
Joe avatar
By Joe
at 2019-05-02T20:53
在C++上已經有IDE幫你統一寫法 在C上各自發揮
Heather avatar
By Heather
at 2019-05-07T05:13
會用OO來寫code很好,但是如果四不像的OO簡直災難\
Aaliyah avatar
By Aaliyah
at 2019-05-10T06:53
Kernel code是一群高手的集散地,也一群人一直在修改
Edith avatar
By Edith
at 2019-05-12T00:37
公司的寫code 光是人力 時程問題就會讓你的code產生災難
Dinah avatar
By Dinah
at 2019-05-15T18:41
推訊號進的來,資料出的去XD
Quanna avatar
By Quanna
at 2019-05-16T10:53
Linux kernel的code漂亮又洗煉,OO精神無所不在,不是mcu
等級的code可以比的
Quintina avatar
By Quintina
at 2019-05-18T18:50
Linux kernel 必看吧!
Anthony avatar
By Anthony
at 2019-05-21T22:31
Linux kernel跟OO差的遠了 不是模組化就是OO勒
Hardy avatar
By Hardy
at 2019-05-25T08:10
不用急,多做幾件案子,從經驗中學習
Susan avatar
By Susan
at 2019-05-27T17:54
FW 有晶片容量限制......有時候你還得拋棄高階語言
Connor avatar
By Connor
at 2019-05-30T07:46
然後RTOS跟State-machine 根本兩碼子事情...你那句
什麼意思我完全看不懂

2018年半導體併購總值232億美元,較去年

Erin avatar
By Erin
at 2019-01-22T10:28
2018年半導體併購總值232億美元,較去年大幅下降 http://bit.ly/2FNLo3k 2015年和2016年席捲半導體產業的歷史性併購協議,進入2017年之後卻大幅放緩。根據 IC Insights統計這一併購價值在2018年又進一步放緩。即使是如此,2018年達到的併購 交易總值仍然幾乎是2 ...

AI新創公司會有硬體工程師職缺嗎

Yuri avatar
By Yuri
at 2019-01-22T09:24
如題,好像都沒有... 所以能到AI的公司上班的 頂多就是硬體背景 但軟體能力依舊點滿的神人 所以其實AI的硬體與軟體中間地帶還是沒什麼需求 Server做se ...

宏達電VR橫掃36項大獎 王雪紅內部信:今年豐收年

Margaret avatar
By Margaret
at 2019-01-22T08:30
宏達電(2498)今年CES展秀出眼球追蹤、內建定位器的虛擬實境(VR)新品,一口氣囊 括36項國際大獎,宏達電董事長王雪紅先前釋出看好宏達電今年後市。21日她也發出內部 信,宏達電為高階VR樹立新標竿,2019將會是HTC豐碩的一年 。 王雪紅指出,最近宏達電在剛落幕的國際消費性電子展CES 2 ...

台灣5G腳步落後外國 童子賢:加快讓台灣

Oliver avatar
By Oliver
at 2019-01-22T08:11
原文連結: 台灣5G腳步落後外國 童子賢:加快讓台灣不掉隊 http://bit.ly/2R1mzCR 原文連結: 台灣5G商用服務願景高峰會在21日舉行,對應台灣5G商業運轉,台北市電腦公會理事長暨 和碩董事長童子賢表示,商品化必須招標,建置基地台,但台灣現在都沒有個影,所以要 加快腳步發展,讓台灣不掉 ...

無預警被資遣的心情??(覺得感傷

Hardy avatar
By Hardy
at 2019-01-21T23:35
雖說是逼不得已,但小弟今天也算是見識到社會的現實與殘酷。 小弟雖然不是被執行的人,但卻要面臨更殘酷的是護送那些被資遣的同仁,對我 來說,心情真的蠻複雜的,不知道該用什麼情緒去面對他們,跟他們說“不好意思啦”也 挺奇怪的,所以改口說“辛苦了”。 就在今天早上接到一通緊急任務, ...