0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

吐槽下使用Keil過程中一些不順手的地方

TopSemic嵌入式 ? 來源:工程師的廢紙簍 ? 2023-05-23 09:10 ? 次閱讀

單片機(jī)寫固件的朋友都會用到IDE,目前比較常見的IDE有:

編譯器名稱 廠商
MDK ARM
IAR IAR
Eclipse+編譯器(GCC) NXPMCUxpresso,TI的CCS,ST的TrueSTUDIO
Embedded Studio Segger

其中MDK和IAR應(yīng)該是最流行的兩個IDE,MDK的粉絲可能還更多一些。實際使用過程中,MDK簡潔的目錄結(jié)構(gòu),方便的調(diào)試操作以及精簡的安裝包讓人贊嘆,新手很容易上手,但是用的時間久了,特別是用過更多的IDE后,你會發(fā)現(xiàn),MDK缺少一些核心的功能:

1. Load寄存器或Memory

各家IDE廠商都可以在View窗口看到芯片的寄存器或者M(jìn)emory,以NXP提供的MCUXpresso SDK lwip_ping為例:

MDK:

68fe39d8-f8fd-11ed-90ce-dac502259ad0.png

IAR:

6915a6f4-f8fd-11ed-90ce-dac502259ad0.png

有時在調(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的處理方式去解決該問題。

6938ec68-f8fd-11ed-90ce-dac502259ad0.png

695123aa-f8fd-11ed-90ce-dac502259ad0.png

IAR不僅提供了寄存器的Save功能,包括Watch窗口的數(shù)據(jù)也可以保存到電腦中,有些用戶做ADC的采樣,也可以直接把數(shù)組數(shù)據(jù)導(dǎo)入Excel來畫出信號曲線

69653192-f8fd-11ed-90ce-dac502259ad0.png

IAR還提供了Memory的Save功能,這樣用戶就可以對某塊板子進(jìn)行校準(zhǔn)存參,然后把其Flash的參數(shù)數(shù)據(jù)導(dǎo)出燒寫到其他板子

697e0e9c-f8fd-11ed-90ce-dac502259ad0.png

存儲的類型可以是hex,s19或者bin

69971982-f8fd-11ed-90ce-dac502259ad0.png

Save的Memory也可以是寄存器外設(shè)地址

69a7767e-f8fd-11ed-90ce-dac502259ad0.png

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ǔ)的需求。

69c11782-f8fd-11ed-90ce-dac502259ad0.png

3. Attach功能

本人09畢業(yè)時第一份工作使用的IDE是CW_Power_Architecture_V8.8,支持三種調(diào)試模式:

69db8414-f8fd-11ed-90ce-dac502259ad0.jpg

69f2acac-f8fd-11ed-90ce-dac502259ad0.jpg

69ff1cc6-f8fd-11ed-90ce-dac502259ad0.jpg

有時大家會遇到這樣一種情況,產(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)也支持該功能:

6a15753e-f8fd-11ed-90ce-dac502259ad0.png

但是如果想在MDK中想要實現(xiàn)該功能就較為復(fù)雜,下面這個文章可以教你如何在MDK中實現(xiàn)該功能:

不復(fù)位MCU直接調(diào)試運行程序,讓bug聞風(fēng)喪膽

4. Pack install

最后講講這個Pack install,它本身沒有啥可吐槽的,主要是服務(wù)器好像沒有國內(nèi)加速,每次用個新片子都要下載上個把小時,特別是電信用戶,有時下到90%幾斷了真的很糟心。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5270

    瀏覽量

    119647
  • IAR
    IAR
    +關(guān)注

    關(guān)注

    5

    文章

    344

    瀏覽量

    36560
  • LwIP協(xié)議棧
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    7322
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    245

    瀏覽量

    11316
收藏 人收藏

    評論

    相關(guān)推薦

    近期開始學(xué)習(xí)UCOS-II將會發(fā)一些學(xué)習(xí)筆記歡迎各位!

    近期開始學(xué)習(xí)UCOS-II將會發(fā)一些學(xué)習(xí)筆記歡迎各位
    發(fā)表于 05-29 19:17

    【CANNON試用體驗】開箱報告+

    很不錯的塊板子板子長度 板子寬度 板子的大小是6cm*4cm,非常小巧,不要看它小,多西倒是很多的,有好多東西都還是我沒接觸過的,在試用過程中一定能學(xué)到很多東西?,F(xiàn)在來
    發(fā)表于 01-29 10:13

    一下下載要積分

    一下下載要積分的問題不少網(wǎng)站都有這個規(guī)矩,此山是我開,此路是我開,要打此處過,留下買路財。我只能說這種觀念非常陳舊,你是在吸引人氣還是在為淵驅(qū)魚為叢驅(qū)雀,能到這個地方的人,多少都跟
    發(fā)表于 07-19 11:54

    STM32開發(fā)板過程中一些總結(jié)

    這是之前學(xué)習(xí)STM32開發(fā)板過程中一些總結(jié)。1. GPIO掌握了GPIO口位帶的操作,以及相關(guān)的寄存器的操作,注意CRL,CRH.是32位寄存器,四位控制個端口。雖然有公式,但是不需要硬記了
    發(fā)表于 08-23 08:42

    起來下學(xué)習(xí)openharmony的那些事

    歡迎新老入坑openharmony的人來,看看在學(xué)習(xí)openharmony的過程中有遇到什么困擾。先
    發(fā)表于 10-14 21:18

    keil編譯過程中遇到的一些問題及解決方案匯總

    Keil編譯問題匯總所學(xué)板子為32系列(Cortex-M0),在keil編譯過程中遇到的一些問題及解決方案:①…\FWLib\SRC\ETIMER.c(48): error:#5: c
    發(fā)表于 01-11 08:18

    RTOS SDK編程環(huán)境搭建過程中一些步驟和問題總結(jié)

    自己在搭建過程中一些步驟和問題總結(jié),有不對的的地方歡迎指正。
    發(fā)表于 02-17 06:49

    PCB設(shè)計過程中一些問題和一些技巧分享

    PCB設(shè)計過程中一些問題和一些技巧分享 1、如何利用層次圖繪制電路原理圖? 答:層次原理是種模塊化的設(shè)計方法,設(shè)計者可以將設(shè)計的系統(tǒng)劃分為多個子系統(tǒng),子系統(tǒng)又可以劃分為若干個功能模
    發(fā)表于 09-07 20:08 ?17次下載

    Windows 10已面世五年 這些地方依然值得

    Windows 10面世已經(jīng)五年多了,可說實話,每天都能遇到各種的不痛快!雖說筆者并不是位“完美主義者”,但我依然希望在這款生產(chǎn)力工具上,能夠少看到一些令人
    的頭像 發(fā)表于 03-21 09:42 ?1803次閱讀

    ARM Linux中一些重要的宏及地址定義

    ARM Linux中一些重要的宏及地址定義
    的頭像 發(fā)表于 06-22 17:02 ?2670次閱讀

    Verilog設(shè)計過程中一些經(jīng)驗與知識點

     “ 本文主要分享了在Verilog設(shè)計過程中一些經(jīng)驗與知識點,主要包括塊語句、阻塞賦值和非阻塞賦值 以及結(jié)構(gòu)說明語句(initial, always, task, function)。”
    的頭像 發(fā)表于 03-15 12:19 ?2296次閱讀

    使用Keil過程中一些不順手地方

    首先聲明本人并非Keil黑,本期純下在使用Keil過程中一些
    的頭像 發(fā)表于 05-26 10:53 ?1289次閱讀

    處理網(wǎng)絡(luò)難題經(jīng)驗 網(wǎng)絡(luò)維護(hù)過程中一些典型、經(jīng)典問題的解決方法

    網(wǎng)絡(luò)維護(hù),是很多初階網(wǎng)工必須要做的工作。但說起來容易,做起來難,想要做好這個工作,需要的不僅僅是技術(shù)的加持,更多的是經(jīng)驗的積累。 今天,和你分享份關(guān)于一些網(wǎng)絡(luò)維護(hù)過程中一些典型、經(jīng)典問題的解決方法
    的頭像 發(fā)表于 04-26 16:40 ?1149次閱讀

    在使用Keil過程中一些不順手地方

    首先聲明本人并非Keil黑,本期純下在使用Keil過程中一些
    的頭像 發(fā)表于 05-23 09:14 ?956次閱讀
    在使用<b class='flag-5'>Keil</b><b class='flag-5'>過程中</b>的<b class='flag-5'>一些</b><b class='flag-5'>不順手</b>的<b class='flag-5'>地方</b>

    被眾人Keil,為啥還能挺到現(xiàn)在?

    這款工具相信大家都不陌生,它直被人很難用,但它為啥沒有被淘汰呢?、Keil
    的頭像 發(fā)表于 04-18 08:10 ?793次閱讀
    被眾人<b class='flag-5'>吐</b><b class='flag-5'>槽</b>的<b class='flag-5'>Keil</b>,為啥還能挺到現(xiàn)在?