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