看板 Soft_Job 關於我們 聯絡資訊
※ 引述《Severus5566 (正義 從天而降)》之銘言: : 小弟學士社會新鮮人 : 應徵上一個寫韌體的職務 : 但大學只有學過C語言跟玩過一點Arduino : 說來慚愧 自己不知道怎麼閱讀DataSheet : 然後用韌體來控制硬體(寫C語言) : 有爬文 好像控制暫存器還是記憶體位置? : 懇請大大給點指點 : 可請寫韌體的前輩們給我開些書單 讓我工作之餘時能自己看 : 目前狀態:主管給我一些廠商的範例程式碼,可是韌體的函式庫裡面註解不多 : 所以讀起來很吃力,也不確定自己理解的是不是對的 : 就像是去GitHub挖一筆資料來看 但不知道有哪些函式可以應用 : 或是這些函式或變數從哪個H檔引用來的 要學韌體,主要就是動手做,如果有連動外部電路,光看程式碼沒用。 廠商的範例程式碼通常都有搭配開發板,如果整體範例不複雜,就先單步執行, 看暫存器值(旗標 Flag)的變化。了解為什麼這些Flag會被改變,這些改變又會 觸發什麼事件。 還有了解周邊電路在做啥。不要只會低頭寫程式,適時跟EE和ME交流, 知道他們在做什麼,且讓他們知道你會什麼,可以做什麼,什麼需要他們配合, 這樣如果出問題,你才有跟他們討論的籌碼。 再來是C語言。 寫韌體一定要學會用指標!!! 寫韌體一定要學會用指標!!! 寫韌體一定要學會用指標!!! 指標(Pointer)不但可以加快程式執行速度,也能節省佔存器和記憶體的空間。 尤其到後面寫大型專案,更是要節省佔存器和記憶體的使用。 最後是Arduino,這套件出來,說不上是好是壞。好處是它簡化學習韌體的流程, 套件接一接,簡單判斷式寫一寫,API呼叫一下,WOW,會動了耶~ 可壞處也就在這裡,Arduino把佔存器設定簡單化,只要呼叫API就可以,但有 人就會以為,暫存器設定只要呼叫API就好,沒說這方法不好,我現在也這樣用 ,但如果你不去了解這API做了啥,如去設定佔存器,是否會跟其他API衝突, 這樣出問題,你就無法去追根。 書單的話,去各大廠找他們的教育訓練資料還比較有用。 最後,為了你和以後接手的人著想,程式碼的註解一定要寫... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.44.246 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1513738962.A.433.html
twinkle38: 為何指標是寫"index" instead of "pointer"? 12/20 11:09
kjlopin: 我習慣是用index,pointer才是對的,我改一下 12/20 11:29
※ 編輯: kjlopin (218.161.44.246), 12/20/2017 11:31:37
hizuki: 我覺得啊其實與其說pointer, MCU更需要reference 12/20 11:36
hizuki: 因為多數平台上malloc都是廢的,有實現也分不出來多大東西 12/20 11:37
kjlopin: 用優化是可以釋出很多啦,但通常不會用,因為會有靈異事 12/20 11:47
kjlopin: 不知道你所指的reference是指什麼? 12/20 11:48
hizuki: c++引入的東西。非ARM的MCU跑去搞memory management真少 12/20 12:23
kjlopin: ㄆ,因為不太需要,如果不用到RTOS系統,RAM會用多少 12/20 13:19
kjlopin: 大概都知道 12/20 13:19
yamakazi: reference是C++才有 但我看過的MCU FW幾乎都是C而不是C+ 12/20 13:21
yamakazi: + 12/20 13:21
hizuki: 我其實只是提概念而已,我早就不在這個領域了 12/20 13:49
badyy: "我早就不在這個領域了" XD 12/20 17:05
cia1099: 虛標準的用嘴巴寫code 12/20 17:57
odahawk: 哦..."我早就不在這個領域了" XD 12/20 23:53
hizuki: 討論語言設計有什麼好噓的,你說說看動態記憶體管理的用處 12/21 01:18
tommie: mcu只有大多只有單核,某些情況下不要被中斷應該都還好 12/22 08:47
tommie: 因為大都自己排程XD 12/22 08:49
james732: 指標會多透過一層間接取值又多佔一個位置耶… 12/22 21:36
james732: 在嵌入式系統用粗暴的全域變數反而比較有效率又省空間 12/22 21:36
james732: (當然濫用全域變數搞成bug地獄這種問題就不用我說了) 12/22 21:38