作者ypyp1010 (Nigel)
看板ASM
標題Re: [問題] 如何快速上手arm架構的MCU?
時間Tue Jul 24 10:11:10 2018
※ 引述《zzss2003 (brotherD)》之銘言:
: 嗨,各位好。
: 我有一年8-bit Microchip PIC的經驗,最近有機會接觸arm M0+架構的CPU。
: 手上有相關案子的舊版的電路圖、流程圖、相關文件(該有的都有,但命名方式可能不太
: 直覺加上版本可能不是最新的,加上相關文件改了又改改了又改,有些地方也可能是錯的
: 、或者跟最新版本的source code對不上)
: 加上我自己對整個案子該用到的功能(wifi module、Usart)沒有很熟,也不知道硬體IC什
: 麼以及什麼情況會給MCU訊號,也不知道MCU甚麼時候該做判斷。
: 還有代理商幫這個案子寫的整個source code(很多命名方式只有他自己看得懂)
: 請問在這種情況下(剛接手到一個ongoing的案子),最快的上手方式是什麼呢?
: 我是覺得用問的最快,電路圖不懂就問EE:source code不懂就問代理商,然後再從不懂的
: 地方延伸去了解整個案子的行為。
: 但,問問題之前總要自己做功課,不能當伸手牌。可是以我現階段的能力又無法在短時間
: 內對整個案子有觀念上的了解,加上還要熟悉keil的相關工具(uVision、debug tool)
: 請問前輩,你們會建議我要從哪邊著手,才能迅速對這個案子上手呢? 謝謝!
您好,稍微分享一下我的更換MCU心得。
目前使用過的M0晶片有TI、ST、microchip、Nuvoton、Fujitsu,
8-bit的比較多雜牌,就不各別列舉了。
如果一個案子只是要拿來應用
寫些基礎的功能類如簡易的上位機(LED、Switch、UART、BUZZ)
或是GPIO應用,有的沒的邏輯判斷之類
只要拿出原廠的BSP(也就是Sample code)
可以build跟download,然後確定時脈正確,中斷可以進
就直接做了
反正用完這次,下次也不知道會不會繼續用它...
不用培養太深的感情
如果是要做一些ongoing的案子
時間不急的話就可以k一下code
看看別人的寫法順便討論
然後加入自己的優化
很大系統又很急的話就認命吧
趕快抓著人問,邊問邊測試邊修改
因為我認為這時候k code的幫助會比較小一點
k完程式時,自己也差不多被k到牆上了
直接拿source code開始做搬運工分類程式
i-功能設定func的分類:
把各種功能初始化或是功能變更的func歸類在各個.c檔
例如timer1就要有一個timer1的.c跟.h
以後有甚麼timer1的東西就死命往這裡找就對了
ii-應用程式的分類:
通常程式主要的功能都是在main或是各個中斷
如同(i)的邏輯,各種中斷或廣義的功能也要有自己的.c跟.h
完成以上兩步驟後
就可以直接抓著原屎作者面對面擦屎...
喔不,是了解流程圖,然後寫註解
整個project寫完註解後也差不多就清楚整個架構
而且可以比較輕易的做修改了
此外,分類的好處就是可以輕易的包lib或是換人接手
以後換誰接手就新增一個自己名子的group
自己有修改過的東西丟自己的夾
大概是這樣
如果各位有甚麼更好的方式
希望可以一起分享出來
因為寫程式的圈子很小
屎
始終會回到自己身上...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.245.65.133
※ 文章網址: https://webptt.com/m.aspx?n=bbs/ASM/M.1532398274.A.E4C.html
1F:推 chuegou: 是什麼是用情境 讓你的分類會需要建立個別使用者資料夾 07/24 12:22
2F:→ chuegou: 我以為這該用版控解決的說 07/24 12:22
3F:推 frogofmagic: 那也要公司有導入版控QQ 07/24 16:04
4F:→ ypyp1010: 公司沒有板控QQ,出去的code也會在各種能力不同的使用 07/24 16:21
5F:→ ypyp1010: 者上二度開發,有些大修有些小修,各別使用者可以在相同 07/24 16:21
6F:→ ypyp1010: 底層下定義自己專案的參數等等 07/24 16:21
7F:推 chuegou: 再問一個 是IDE還是Makefile 07/24 18:50
8F:→ zxzx8059: 通用ide,cortex-m的授權在10+萬 07/24 18:55
9F:→ zxzx8059: stm32L什麼的好像有keil mdk的免費授權 07/24 18:56
10F:→ zxzx8059: 各家ide免費版也是有授權的限制 07/24 18:57
11F:推 suninrain: 我們是每一版都是進到文管,然後會加上release note, 07/25 18:07
12F:→ suninrain: 如果有小改就後面備註,大改就用define 07/25 18:08
13F:→ suninrain: 雖然沒有像SVN那麼容易找,但是使用上還可以~ 07/25 18:09
14F:推 metalalive: 最後一句話...XD 11/22 14:32