作者esheep (^^)
看板Soft_Job
標題Re: [請益] 韌體新鮮人請益
時間Wed Dec 20 15:30:42 2017
手機排版,請見諒
一般來說 剛拿到IC的Demo Code 及 Spec, driver 部分的工作大致如下
1. 看Spec 的 IC arch.
重點在知道 這 IC 的主要功能及運作時
的control flow.
2. 看Spec 的 Register 描述
重點在初步釐清 這 IC 可以給你什麼?
以及 不能 給你什麼
3. 看Code IC init 部份
用Spec 中 IC initialization register 當
key words 去找Code,
重點在 call register 的順序,其次是參
數
4. 看Code data init 部份
一樣從 Spec 找key words,
這部分可能需要,也可能不用。
重點在 得知"何時"需重新做 “ 那些”
data init
5. 看Spec data部分時序圖
確認data 傳輸的限制及aligment
看 Code
常見是直接call bus APIs. 知道怎麼用
就行了,不用看進去
5. 看Spec Interrupt
這部分 Code 可能沒有或不完整
如果是 Linux kernel 做法都一樣,
google 一下就有了
重點:
1. 確認支援的interrupt mode
2. 確認是否需delay, pull H/L
這裡容易有 HW 整合的問題,
有問題建議直接找HW協助量訊號
6. 其他
suspend and resume etc.
這部分跟 你們的產品Spec 比較有關
知道 IC 在這些狀態下,對應的register
要怎麼設定就行了
結論:
一般 demo code 就只是把IC Spec 寫成code 而已,Code 本身不會有太多跟IC 功
能無關的軟體架構 或 演算法
I C 控制的code 也就這樣,剩下的就是一堆 Limitation, walk around , corner case
handle...
※ 引述《Severus5566 (正義 從天而降)》之銘言:
: 小弟學士社會新鮮人
: 應徵上一個寫韌體的職務
: 但大學只有學過C語言跟玩過一點Arduino
: 說來慚愧 自己不知道怎麼閱讀DataSheet
: 然後用韌體來控制硬體(寫C語言)
: 有爬文 好像控制暫存器還是記憶體位置?
: 懇請大大給點指點
: 可請寫韌體的前輩們給我開些書單 讓我工作之餘時能自己看
: 目前狀態:主管給我一些廠商的範例程式碼,可是韌體的函式庫裡面註解不多
: 所以讀起來很吃力,也不確定自己理解的是不是對的
: 就像是去GitHub挖一筆資料來看 但不知道有哪些函式可以應用
: 或是這些函式或變數從哪個H檔引用來的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.72.212
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1513755045.A.9F0.html
→ badyy: 最重要的不是記得下班前把bug清掉嗎?? 12/20 17:07
推 x246libra: 謝謝分享。下次來試試看這樣的步驟 12/20 18:55
→ esheep: IC control 很少有 bug. 大部分都在說服別人: 請接受 IC 12/20 19:50
→ esheep: limitation 12/20 19:50
推 waterdisney: 本公司沒有hw bug,只要sw有workaround的 就不是bug 12/20 20:05
→ waterdisney: ! 12/20 20:05
推 cuteSquirrel: 好文 12/20 21:27
推 R119: 老闆:我不接受 workaround 但是 Issue 還是要 SW 解 12/20 23:11
推 YukiTW: 軟體要學會強調這不是 issue,而是 spec的說服功力 12/21 10:18
推 Bencrie: 不是應該要把 issue 硬拗成 feature 嗎 XDD 12/21 11:46
推 yamakazi: limitation而不是issue 我遇過取樣頻率太低 ADC前沒做an 12/21 12:42
→ yamakazi: ti aliasing filter的硬體 發生aliasing之後叫sw想辦法 12/21 12:42
→ yamakazi: 濾掉 12/21 12:42
→ yamakazi: 高頻信號都aliasing變超低頻了 是要怎麼濾波 12/21 12:43
推 WisdomOrLie: 這看起來比較偏software... 韌體的話…調整硬體跟量 12/22 18:58
→ WisdomOrLie: 測訊號是跑不掉的, 最後可能連QC跟機構的屎都跑不掉 12/22 18:58
→ WisdomOrLie: …………… 12/22 18:58