Re: [問題] 如何快速上手arm架構的MCU?

作者: ypyp1010 (Nigel)   2018-07-24 10:11:10
※ 引述《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
自己有修改過的東西丟自己的夾
大概是這樣
如果各位有甚麼更好的方式
希望可以一起分享出來
因為寫程式的圈子很小

始終會回到自己身上...
作者: chuegou (chuegou)   2018-07-24 12:22:00
是什麼是用情境 讓你的分類會需要建立個別使用者資料夾我以為這該用版控解決的說
作者: frogofmagic (呆蛙)   2018-07-24 16:04:00
那也要公司有導入版控QQ
作者: ypyp1010 (Nigel)   2018-07-24 16:21:00
公司沒有板控QQ,出去的code也會在各種能力不同的使用者上二度開發,有些大修有些小修,各別使用者可以在相同底層下定義自己專案的參數等等
作者: chuegou (chuegou)   2018-07-24 18:50:00
再問一個 是IDE還是Makefile
作者: zxzx8059 (zxzx8059)   2018-07-24 18:55:00
通用ide,cortex-m的授權在10+萬stm32L什麼的好像有keil mdk的免費授權各家ide免費版也是有授權的限制
作者: suninrain (低潮)   2018-07-25 18:07:00
我們是每一版都是進到文管,然後會加上release note,如果有小改就後面備註,大改就用define雖然沒有像SVN那麼容易找,但是使用上還可以~
作者: metalalive (獨樂樂不如眾樂樂)   2018-11-22 14:32:00
最後一句話...XD

Links booklink

Contact Us: admin [ a t ] ucptt.com