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

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

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

在使用Keil過(guò)程中的一些不順手的地方

TopSemic嵌入式 ? 來(lái)源:TopSemic嵌入式 ? 2023-05-23 09:14 ? 次閱讀

首先聲明本人并非Keil黑,本期純吐槽下在使用Keil過(guò)程中的一些不順手的地方,也極有可能講的并不全面,不客觀,望見(jiàn)諒,輕拍,也歡迎評(píng)論區(qū)討論。

單片機(jī)寫(xiě)固件的朋友都會(huì)用到IDE,目前比較常見(jiàn)的IDE有:

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

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

1. Load寄存器或Memory

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

MDK:68fe39d8-f8fd-11ed-90ce-dac502259ad0.pngIAR:6915a6f4-f8fd-11ed-90ce-dac502259ad0.png

有時(shí)在調(diào)試過(guò)程中,經(jīng)常會(huì)遇到這樣一種情況,代碼前一個(gè)版本沒(méi)有問(wèn)題,新加入一些功能后出現(xiàn)了bug,比如某個(gè)UART不工作了,通過(guò)比對(duì)源碼卻沒(méi)有發(fā)現(xiàn)明顯的問(wèn)題,在這種情況下,在線(xiàn)仿真是一個(gè)比較好的手段,但是如果代碼復(fù)雜,解決該問(wèn)題依舊需要花費(fèi)更大的精力。

但是使用IAR或者M(jìn)CUXpresso這類(lèi)的IDE,可以將MCU的寄存器保存成文件,這樣我們就可以在正常代碼運(yùn)行時(shí)保存一份寄存器列表文件,運(yùn)行異常代碼保存另一份寄存器列表文件,通過(guò)對(duì)比這兩個(gè)文件去尋找具體哪個(gè)寄存器的某個(gè)bit產(chǎn)生的影響,從而在代碼中找到對(duì)應(yīng)bit的處理方式去解決該問(wèn)題。

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

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

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

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

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

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

存儲(chǔ)的類(lèi)型可以是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,對(duì)于第三方的RTOS并沒(méi)有很好的支持,需要用戶(hù)選擇第三方的調(diào)試工具,比如Tracealyzer,而IAR默認(rèn)提供了包括FreeRTOS, ThreadX, embOS在內(nèi)的多種插件,雖然功能并沒(méi)有Tracealyzer強(qiáng)大,但是至少能滿(mǎn)足觀察任務(wù)堆棧這樣比較基礎(chǔ)的需求。

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

3. Attach功能

本人09畢業(yè)時(shí)第一份工作使用的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

有時(shí)大家會(huì)遇到這樣一種情況,產(chǎn)品無(wú)緣無(wú)故的死機(jī),有時(shí)是產(chǎn)品硬件問(wèn)題,但更多情況是軟件問(wèn)題,特別是異常非常難復(fù)現(xiàn),而且有時(shí)還需要反復(fù)開(kāi)關(guān)機(jī)才能出現(xiàn),這就導(dǎo)致仿真器無(wú)法一直掛載去查找問(wèn)題,attach的功能就是在不破壞MCU當(dāng)前異常狀態(tài)下的一種仿真手段。IAR默認(rèn)也支持該功能:

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

但是如果想在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,它本身沒(méi)有啥可吐槽的,主要是服務(wù)器好像沒(méi)有國(guó)內(nèi)加速,每次用個(gè)新片子都要下載上個(gè)把小時(shí),特別是電信用戶(hù),有時(shí)下到90%幾斷了真的很糟心,推薦使用工具下載離線(xiàn)包:

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

    關(guān)注

    31

    文章

    5270

    瀏覽量

    119646
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1208

    瀏覽量

    166452
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    207

    瀏覽量

    31988

原文標(biāo)題:為什么我不喜歡使用Keil?

文章出處:【微信號(hào):TopSemic,微信公眾號(hào):TopSemic嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用WiFi的過(guò)程中總結(jié)的一些經(jīng)驗(yàn)

    簡(jiǎn)述我們做項(xiàng)目開(kāi)發(fā),經(jīng)常會(huì)用到WiFi,這次給大家分享下我使用WiFi的過(guò)程中總結(jié)的一些
    發(fā)表于 08-05 07:30

    STM32開(kāi)發(fā)過(guò)程中一些心得及總結(jié)

    JTAG設(shè)備STM32 匯編匯編含C語(yǔ)言注釋數(shù)字信號(hào)處理濾波IIR濾波器本人STM32開(kāi)發(fā)過(guò)程中一些心得及總結(jié)。比較好的文章加密STM32MCU加密原理與方法 (很詳細(xì))驅(qū)動(dòng)開(kāi)發(fā)啟動(dòng)使用CCMRAM內(nèi)...
    發(fā)表于 08-17 08:50

    keil編譯過(guò)程中遇到的一些問(wèn)題及解決方案匯總

    Keil編譯問(wèn)題匯總所學(xué)板子為32系列(Cortex-M0),keil編譯過(guò)程中遇到的一些問(wèn)題及解決方案:①…\FWLib\SRC\ETI
    發(fā)表于 01-11 08:18

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

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

    一些測(cè)量和控制過(guò)程中為什么要使用射頻定向耦合器呢?

    一些測(cè)量和控制過(guò)程中為什么要使用射頻定向耦合器呢?
    發(fā)表于 05-16 17:29

    ST的LL庫(kù)使用的過(guò)程中需要注意什么地方

    ST的LL庫(kù)使用的過(guò)程中需要注意什么地方
    發(fā)表于 10-09 06:48

    關(guān)于PCB 生產(chǎn)過(guò)程中銅面防氧化的一些探討

    關(guān)于PCB 生產(chǎn)過(guò)程中銅面防氧化的一些探討   摘要:本文主要論述了PCB 生產(chǎn)過(guò)程中對(duì)銅面氧化的防范手段,探討引用種新
    發(fā)表于 11-17 08:52 ?3923次閱讀

    繪制原理圖和PCB圖的過(guò)程中常遇到的一些問(wèn)題

    繪制原理圖和PCB圖的過(guò)程中常遇到的一些問(wèn)題.doc
    發(fā)表于 07-12 10:42 ?0次下載

    PCB設(shè)計(jì)過(guò)程中一些問(wèn)題和一些技巧分享

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

    總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng)

    Vim 是個(gè)上古神器,本篇文章主要持續(xù)總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng),以及持續(xù)分享個(gè)前端工作者不得不安裝的一些
    的頭像 發(fā)表于 12-27 16:44 ?4779次閱讀

    光端機(jī)使用過(guò)程中碰到的一些問(wèn)題

    光端機(jī),就是光信號(hào)傳輸?shù)慕K端設(shè)備,我們使用的過(guò)程中難免會(huì)碰到一些問(wèn)題,接下來(lái)杭州飛暢的小編為大家詳細(xì)列舉了光端機(jī)使用過(guò)程中遇到的
    的頭像 發(fā)表于 12-25 14:54 ?1030次閱讀

    STM32遇到的問(wèn)題--關(guān)于串口的一些常見(jiàn)問(wèn)題

    單片機(jī)的開(kāi)發(fā)過(guò)程中,最常用的外設(shè)就是串口了,是用來(lái)進(jìn)行bug糾錯(cuò)、log輸出的常用工具,也是用來(lái)與外部通訊的常見(jiàn)協(xié)議之。 但是使用串口的過(guò)程中
    發(fā)表于 12-24 18:51 ?2次下載
    STM32<b class='flag-5'>中</b>遇到的問(wèn)題--關(guān)于串口的<b class='flag-5'>一些</b>常見(jiàn)問(wèn)題

    Verilog設(shè)計(jì)過(guò)程中一些經(jīng)驗(yàn)與知識(shí)點(diǎn)

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

    使用Keil過(guò)程中一些不順手地方

    首先聲明本人并非Keil黑,本期純吐槽下在使用Keil過(guò)程中一些不順手地方,也極有可能講的并
    的頭像 發(fā)表于 05-26 10:53 ?1289次閱讀

    吐槽下使用Keil過(guò)程中一些不順手地方

    其中MDK和IAR應(yīng)該是最流行的兩個(gè)IDE,MDK的粉絲可能還更多一些。
    的頭像 發(fā)表于 05-23 09:10 ?1257次閱讀
    吐槽下使用<b class='flag-5'>Keil</b><b class='flag-5'>過(guò)程中一些</b><b class='flag-5'>不順手</b>的<b class='flag-5'>地方</b>