小弟有位朋友從事相關的業務工作,
聽他說目前他在Firmware設計的部份大多外包給design house,
但成果常令他不滿意...
最近他問我有沒有興趣走這行,
小弟對電子是有些興趣,無奈以前學校讀的是商科,
程式語言會C,Java,C# .NET ... 等等
目前的工作是在網站設計...
想請問是否有網友從事Firmware Programmer 的工作,
若是一個沒有工科背景的新手,
進入的門檻會不會很高?
現在我的想法是先去聽一些研討會,去圖書館借幾本PIC16C7X的書來看看...
想聽聽大家的看法...
很多時候遇到冷門的MCU只有HW的DEBUG TOOLS沒有SOFTWARE的,這時候就考驗撰寫者的能力了。
一般program都是針對客戶要開發的產品先規劃,然後針對硬體的架構分配功能。
再來組合,組合的過程中會有遇到一些奇奇怪怪的問題,常常是跑單一功能OK合在一起就不行。
問題點通常會出現在,資源分配衝突上或是硬體資源衝突上面。
這時候使用的TOOLS如果功能夠強通常都會給你正確的錯誤訊息,如果不夠那就是靠經驗try了。
如果realtime的應用程式寫的很好然後對於interrupt與hold的應用架構很了解。
上手時間通常不超過一個禮拜。
沒有極度的耐心的話千萬別跳進去~
困難度也跟你現在寫的東西是完全不同的境界
門檻非常高~因為牽涉到的東西很廣又低階
當初我也是因為這樣所以才改寫純軟體...當初是念電子科
c++跟組語如果沒有一定程度的中上水準..會發現常常是什麼東西都寫不出來
跟寫web form, c#, java 受挫的程度無法比擬...
https://jin.tw
telinsun wrote:
老實說如果不是電子本科想做firmware是有點辛苦...(恕刪)
打了一堆,沒想到貼出去的時候失敗,回上一頁就全部都沒了‧‧‧

面試時常有人會說,韌體是介於軟體和硬體之間的一種學問。不過我個人卻認為,韌體是軟體加硬體,不是介於中間。
純軟體可能只要照顧好程式語言、演算法、資料結構、函式庫和Frame work的熟析,再加上領域的相關知識,但韌體這些東西不但少不了,還要加上硬體的了解。這個硬體的了解是真的要有些底子和興趣,不會是非本科系的人去補習班上個三個月半年的課就能達成。
程式的問題先不談,因為寫純軟體也會遇到相同的問題。以韌體來說,常碰到的是,明明程式看起來沒問題,可是就是不對勁,查來查去才發現是時序的配合有問題、硬體設計的欠缺考量、Datasheet沒寫的硬體限制‧‧‧等等,只能靠自己發現和解決或迴避。這個如果沒有耐心沒有硬體底子,這些隱性問題不太可能找得出來。
有些問題事後諸葛來看,真的是簡單到不行,程式上可能是印幾個字串就可以看出來,硬體則是示波器一接,或是電錶一量就可以發現。可是事發當時你要如何思考,然後去懷疑到這些點?你怎麼知道要用示波器去量、要量哪裡、看到圖形後能否看出詭異的地方,這都是學問。先撇開經驗不談,沒有底子,這些點子要怎麼憑空冒出來?
非本科系不是不可能進入韌體這個領域,但確實很不容易,能辦得到的只能說他是萬中無一的鬼才。面試一堆惡補了三到六個月課程的本科系或非本科系學生,結果連個AND/OR的真值表都寫不出來,簡單的電路圖也看不懂,我才不相信他能看得懂Datasheet的方塊圖、信號的走向和特性、在遇到狀況的時候知道該探測哪些點懷疑哪些點,用工具「證實」問題的根源,並解決之。
拿柯南或金田一為例,如果沒有豐富的醫學、科學、人性、聯想力‧‧‧等背景知識的修為,不太可能兩三下就做出一堆漂亮又無懈可擊的推理,把兇手揪出來,說得他心服口服當場認罪。
內文搜尋

X