Re: [請益] 新人該怎麼進入狀況?

看板Tech_Job作者 (大安吳彥祖)時間7年前 (2018/09/03 22:26), 7年前編輯推噓23(2308)
留言31則, 24人參與, 7年前最新討論串2/2 (看更多)
你是用C寫FW吧 C相對C++簡單很多 首先先準備好一套好的code tracing tool Slik edit, source insight, 或是visual studio都可以 我個人比較喜歡SI 他有個功能是可以找refernce 你很快可以列出這個函數有在哪些地方被使用到 C不是物件導向 也沒有一大堆第三方函式庫 頂多就是call back fuction 和指標一開始比較難懂 大部分流程都是sequential 沒有multithread的話又更簡單 如果是系統廠的FW 把廠商提供的sample code和spec看一看 看一下重要的register怎麼讀寫 有沒有特定流程 尤其是ISR的部分 寫軟體轉做FW的很容易忘記硬體有自己interrupt 有問題就問原廠 不要自己想破頭想單幹硬解 IDE或script環境先建好 不要compile環境不一樣產生有問題的bin檔 記住volatile這個關鍵字是幹嘛的 如果某個變數在code以外的地方有可能被更動的話就要? debug mode要會用 有時候光打印log看不出問題 版本控制軟體要會 進code前請資深的同事幫你review下 自己先測過再進code 邏輯分析儀 示波器要會用 要知道怎麼trigger 有bug很多時候是你記憶體操作錯誤 比如說用太多區域變數導致stack overflow 或是有module把heap free掉 別的module又去access他 通常記憶體問題log和debug mode看不太出來 單個module也不會發生 但整個程式一起運作就會發生crash 很難解 功力不夠的話 沒事不要重構 會招人怨又找自己麻煩 菜鳥的話 大guy4這樣 ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.219.126 ※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1535984772.A.971.html ※ 編輯: yamakazi (1.200.219.126), 09/03/2018 22:49:06

09/03 22:51, 7年前 , 1F
09/03 22:51, 1F

09/03 22:52, 7年前 , 2F
FW日常
09/03 22:52, 2F

09/03 23:16, 7年前 , 3F
09/03 23:16, 3F
※ 編輯: yamakazi (1.200.219.126), 09/03/2018 23:18:46 ※ 編輯: yamakazi (1.200.219.126), 09/03/2018 23:23:39

09/03 23:38, 7年前 , 4F
感謝回覆 我也是用SI,看函式真的方便很多。code寫完
09/03 23:38, 4F

09/03 23:38, 7年前 , 5F
我也不敢亂上 出包很慘的XD
09/03 23:38, 5F

09/03 23:42, 7年前 , 6F
用心
09/03 23:42, 6F

09/03 23:50, 7年前 , 7F
大推
09/03 23:50, 7F

09/03 23:54, 7年前 , 8F
這也太認真的好心回文
09/03 23:54, 8F

09/04 01:59, 7年前 , 9F
這篇其實可以m?
09/04 01:59, 9F

09/04 02:06, 7年前 , 10F
09/04 02:06, 10F

09/04 07:00, 7年前 , 11F
09/04 07:00, 11F

09/04 09:01, 7年前 , 12F
這怎那麼像我的日常
09/04 09:01, 12F

09/04 09:08, 7年前 , 13F
原PO把我的推文修掉惹..QQ
09/04 09:08, 13F

09/04 09:12, 7年前 , 14F
原原po的問題就不是寫程式的問題,是他對前人的架構
09/04 09:12, 14F

09/04 09:12, 7年前 , 15F
不了解,你發這個文對他又沒幫助
09/04 09:12, 15F

09/04 09:19, 7年前 , 16F
09/04 09:19, 16F

09/04 09:22, 7年前 , 17F
修掉推文不好意思 因為用手機編輯 FW SW我都寫過 FW的架
09/04 09:22, 17F

09/04 09:22, 7年前 , 18F
構真的不會難到哪裡去 花時間多看多問 最後就會懂了
09/04 09:22, 18F

09/04 09:25, 7年前 , 19F
FW很大一部分是Bootloader和driver 這種基礎流程不可能
09/04 09:25, 19F

09/04 09:25, 7年前 , 20F
寫的多複雜 寫太複雜只是找自己麻煩
09/04 09:25, 20F

09/04 09:44, 7年前 , 21F
除非你的FW裡面包了一堆算法 比如說Nand flash 才會變複
09/04 09:44, 21F

09/04 09:44, 7年前 , 22F
09/04 09:44, 22F

09/04 09:47, 7年前 , 23F
中肯貼切好文,但VS很爛,SI正解
09/04 09:47, 23F

09/04 09:54, 7年前 , 24F
推 真得是FW的日常QQ
09/04 09:54, 24F

09/04 10:27, 7年前 , 25F
分位日常
09/04 10:27, 25F

09/04 10:56, 7年前 , 26F
推推 感覺可以m
09/04 10:56, 26F

09/04 11:07, 7年前 , 27F
這真的好貼切
09/04 11:07, 27F

09/04 12:24, 7年前 , 28F
的確是FW know-how
09/04 12:24, 28F

09/04 16:03, 7年前 , 29F
09/04 16:03, 29F

09/04 17:13, 7年前 , 30F
09/04 17:13, 30F

09/05 16:27, 7年前 , 31F
感謝分享
09/05 16:27, 31F
文章代碼(AID): #1RZKI4bn (Tech_Job)
文章代碼(AID): #1RZKI4bn (Tech_Job)