Re: [請益] 韌體新鮮人請益

看板Soft_Job (軟體人)作者 (kjlopin)時間8年前 (2017/12/20 11:02), 8年前編輯推噓3(4116)
留言21則, 9人參與, 8年前最新討論串3/6 (看更多)
※ 引述《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

12/20 11:09, 8年前 , 1F
為何指標是寫"index" instead of "pointer"?
12/20 11:09, 1F

12/20 11:29, 8年前 , 2F
我習慣是用index,pointer才是對的,我改一下
12/20 11:29, 2F
※ 編輯: kjlopin (218.161.44.246), 12/20/2017 11:31:37

12/20 11:36, 8年前 , 3F
我覺得啊其實與其說pointer, MCU更需要reference
12/20 11:36, 3F

12/20 11:37, 8年前 , 4F
因為多數平台上malloc都是廢的,有實現也分不出來多大東西
12/20 11:37, 4F

12/20 11:47, 8年前 , 5F
用優化是可以釋出很多啦,但通常不會用,因為會有靈異事
12/20 11:47, 5F

12/20 11:48, 8年前 , 6F
不知道你所指的reference是指什麼?
12/20 11:48, 6F

12/20 12:23, 8年前 , 7F
c++引入的東西。非ARM的MCU跑去搞memory management真少
12/20 12:23, 7F

12/20 13:19, 8年前 , 8F
ㄆ,因為不太需要,如果不用到RTOS系統,RAM會用多少
12/20 13:19, 8F

12/20 13:19, 8年前 , 9F
大概都知道
12/20 13:19, 9F

12/20 13:21, 8年前 , 10F
reference是C++才有 但我看過的MCU FW幾乎都是C而不是C+
12/20 13:21, 10F

12/20 13:21, 8年前 , 11F
+
12/20 13:21, 11F

12/20 13:49, 8年前 , 12F
我其實只是提概念而已,我早就不在這個領域了
12/20 13:49, 12F

12/20 17:05, 8年前 , 13F
"我早就不在這個領域了" XD
12/20 17:05, 13F

12/20 17:57, 8年前 , 14F
虛標準的用嘴巴寫code
12/20 17:57, 14F

12/20 23:53, 8年前 , 15F
哦..."我早就不在這個領域了" XD
12/20 23:53, 15F

12/21 01:18, 8年前 , 16F
討論語言設計有什麼好噓的,你說說看動態記憶體管理的用處
12/21 01:18, 16F

12/22 08:47, 8年前 , 17F
mcu只有大多只有單核,某些情況下不要被中斷應該都還好
12/22 08:47, 17F

12/22 08:49, 8年前 , 18F
因為大都自己排程XD
12/22 08:49, 18F

12/22 21:36, 8年前 , 19F
指標會多透過一層間接取值又多佔一個位置耶…
12/22 21:36, 19F

12/22 21:36, 8年前 , 20F
在嵌入式系統用粗暴的全域變數反而比較有效率又省空間
12/22 21:36, 20F

12/22 21:38, 8年前 , 21F
(當然濫用全域變數搞成bug地獄這種問題就不用我說了)
12/22 21:38, 21F
文章代碼(AID): #1QETBIGp (Soft_Job)
文章代碼(AID): #1QETBIGp (Soft_Job)