※ 引述《Severus5566 (正義 從天而降)》之銘言:
: 小弟學士社會新鮮人
: 應徵上一個寫韌體的職務
: 但大學只有學過C語言跟玩過一點Arduino
: 說來慚愧 自己不知道怎麼閱讀DataSheet
: 然後用韌體來控制硬體(寫C語言)
: 有爬文 好像控制暫存器還是記憶體位置?
: 懇請大大給點指點
: 可請寫韌體的前輩們給我開些書單 讓我工作之餘時能自己看
: 目前狀態:主管給我一些廠商的範例程式碼,可是韌體的函式庫裡面註解不多
: 所以讀起來很吃力,也不確定自己理解的是不是對的
: 就像是去GitHub挖一筆資料來看 但不知道有哪些函式可以應用
: 或是這些函式或變數從哪個H檔引用來的
要學韌體,主要就是動手做,如果有連動外部電路,光看程式碼沒用。
廠商的範例程式碼通常都有搭配開發板,如果整體範例不複雜,就先單步執行,
看暫存器值(旗標 Flag)的變化。了解為什麼這些Flag會被改變,這些改變又會
觸發什麼事件。
還有了解周邊電路在做啥。不要只會低頭寫程式,適時跟EE和ME交流,
知道他們在做什麼,且讓他們知道你會什麼,可以做什麼,什麼需要他們配合,
這樣如果出問題,你才有跟他們討論的籌碼。
再來是C語言。
寫韌體一定要學會用指標!!!
寫韌體一定要學會用指標!!!
寫韌體一定要學會用指標!!!
指標(Pointer)不但可以加快程式執行速度,也能節省佔存器和記憶體的空間。
尤其到後面寫大型專案,更是要節省佔存器和記憶體的使用。
最後是Arduino,這套件出來,說不上是好是壞。好處是它簡化學習韌體的流程,
套件接一接,簡單判斷式寫一寫,API呼叫一下,WOW,會動了耶~
可壞處也就在這裡,Arduino把佔存器設定簡單化,只要呼叫API就可以,但有
人就會以為,暫存器設定只要呼叫API就好,沒說這方法不好,我現在也這樣用
,但如果你不去了解這API做了啥,如去設定佔存器,是否會跟其他API衝突,
這樣出問題,你就無法去追根。
書單的話,去各大廠找他們的教育訓練資料還比較有用。
最後,為了你和以後接手的人著想,程式碼的註解一定要寫...