搞單片機(jī)寫固件的朋友都會用到IDE,目前比較常見的IDE有:
編譯器名稱 | 廠商 |
---|---|
MDK | ARM |
IAR | IAR |
Eclipse+編譯器(GCC) | NXP的MCUxpresso,TI的CCS,ST的TrueSTUDIO |
Embedded Studio | Segger |
其中MDK和IAR應(yīng)該是最流行的兩個IDE,MDK的粉絲可能還更多一些。實際使用過程中,MDK簡潔的目錄結(jié)構(gòu),方便的調(diào)試操作以及精簡的安裝包讓人贊嘆,新手很容易上手,但是用的時間久了,特別是用過更多的IDE后,你會發(fā)現(xiàn),MDK缺少一些核心的功能:
各家IDE廠商都可以在View窗口看到芯片的寄存器或者M(jìn)emory,以NXP提供的MCUXpresso SDK lwip_ping為例:
MDK:
IAR:
有時在調(diào)試過程中,經(jīng)常會遇到這樣一種情況,代碼前一個版本沒有問題,新加入一些功能后出現(xiàn)了bug,比如某個UART不工作了,通過比對源碼卻沒有發(fā)現(xiàn)明顯的問題,在這種情況下,在線仿真是一個比較好的手段,但是如果代碼復(fù)雜,解決該問題依舊需要花費更大的精力。
但是使用IAR或者M(jìn)CUXpresso這類的IDE,可以將MCU的寄存器保存成文件,這樣我們就可以在正常代碼運行時保存一份寄存器列表文件,運行異常代碼保存另一份寄存器列表文件,通過對比這兩個文件去尋找具體哪個寄存器的某個bit產(chǎn)生的影響,從而在代碼中找到對應(yīng)bit的處理方式去解決該問題。
IAR不僅提供了寄存器的Save功能,包括Watch窗口的數(shù)據(jù)也可以保存到電腦中,有些用戶做ADC的采樣,也可以直接把數(shù)組數(shù)據(jù)導(dǎo)入Excel來畫出信號曲線
IAR還提供了Memory的Save功能,這樣用戶就可以對某塊板子進(jìn)行校準(zhǔn)存參,然后把其Flash的參數(shù)數(shù)據(jù)導(dǎo)出燒寫到其他板子
存儲的類型可以是hex,s19或者bin
Save的Memory也可以是寄存器外設(shè)地址
2. RTOS插件
MDK默認(rèn)的OS support僅支持RTX,對于第三方的RTOS并沒有很好的支持,需要用戶選擇第三方的調(diào)試工具,比如Tracealyzer,而IAR默認(rèn)提供了包括FreeRTOS, ThreadX, embOS在內(nèi)的多種插件,雖然功能并沒有Tracealyzer強大,但是至少能滿足觀察任務(wù)堆棧這樣比較基礎(chǔ)的需求。
3. Attach功能
本人09畢業(yè)時第一份工作使用的IDE是CW_Power_Architecture_V8.8,支持三種調(diào)試模式:
有時大家會遇到這樣一種情況,產(chǎn)品無緣無故的死機(jī),有時是產(chǎn)品硬件問題,但更多情況是軟件問題,特別是異常非常難復(fù)現(xiàn),而且有時還需要反復(fù)開關(guān)機(jī)才能出現(xiàn),這就導(dǎo)致仿真器無法一直掛載去查找問題,attach的功能就是在不破壞MCU當(dāng)前異常狀態(tài)下的一種仿真手段。IAR默認(rèn)也支持該功能:
但是如果想在MDK中想要實現(xiàn)該功能就較為復(fù)雜,下面這個文章可以教你如何在MDK中實現(xiàn)該功能:
不復(fù)位MCU直接調(diào)試運行程序,讓bug聞風(fēng)喪膽
4. Pack install
最后講講這個Pack install,它本身沒有啥可吐槽的,主要是服務(wù)器好像沒有國內(nèi)加速,每次用個新片子都要下載上個把小時,特別是電信用戶,有時下到90%幾斷了真的很糟心。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5290瀏覽量
119787 -
IAR
+關(guān)注
關(guān)注
5文章
344瀏覽量
36592 -
LwIP協(xié)議棧
+關(guān)注
關(guān)注
0文章
19瀏覽量
7330 -
MCU芯片
+關(guān)注
關(guān)注
3文章
246瀏覽量
11348
發(fā)布評論請先 登錄
相關(guān)推薦
評論