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

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

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

IAR支持的斷點(diǎn)類(lèi)型和使用方法

TopSemic嵌入式 ? 來(lái)源:大寧筆記不重名 ? 作者:Const Yu ? 2021-11-21 09:57 ? 次閱讀

1. 前言

2. 常用斷點(diǎn)存在的問(wèn)題

3. IAR支持的斷點(diǎn)類(lèi)型和使用方法

3.1. 代碼斷點(diǎn)

3.2 條件代碼斷點(diǎn)

3.3 讀寫(xiě)訪問(wèn)的數(shù)據(jù)斷點(diǎn)

3.4 數(shù)據(jù)日志斷點(diǎn)

3.5 日志斷點(diǎn)

3.6 電源斷點(diǎn)

4. 總結(jié):

5. 經(jīng)驗(yàn)交流:

1. 前言在產(chǎn)品開(kāi)發(fā)中,調(diào)試工具是不可或缺的開(kāi)發(fā)利器,除了日常常見(jiàn)的ARM的CMSIS-DAP/ULINK,IAR的I-JET,P&E的U-multilink/Cyclone, 各個(gè)半導(dǎo)體廠商自定義的XX-LINK(例如LPC-link, ST-Link,等)之外,還有兩個(gè)是神一樣的存在,一個(gè)是SEGGER的J-LINK,支持與IAR/KEIL等各種編譯環(huán)境無(wú)縫銜接,性能穩(wěn)如老狗, 價(jià)格低廉, 所以在嵌入式工程師中的普及率非常高,被稱為居家旅行匱贈(zèng)好友之佳品。另外一個(gè)是一聽(tīng)名字就感覺(jué)高大上的勞特巴赫Lauterbach,作為專業(yè)第三方調(diào)試工具廠商,以其強(qiáng)大的TRACE32開(kāi)發(fā)調(diào)試工具享譽(yù)全球,TRACE32開(kāi)發(fā)工具擁有非常豐富和強(qiáng)大的功能,包括基本調(diào)試配置、RTOS、多核系統(tǒng)、虛擬目標(biāo)調(diào)試、能耗分析以及強(qiáng)大的腳本語(yǔ)言等,而且可以支持市場(chǎng)中使用的80多種常見(jiàn)的微處理架構(gòu)。

當(dāng)然Lauterbach性能的強(qiáng)大,對(duì)應(yīng)的代價(jià)就是價(jià)格也比JLINK多出一個(gè)數(shù)量級(jí),但是對(duì)于大部分嵌入式開(kāi)發(fā)者來(lái)說(shuō),最常用的還是基本的調(diào)試功能,包括斷點(diǎn),寄存器查看,內(nèi)存/Flash的查看,本文從斷點(diǎn)使用的角度講解如何使用JLINK配合IAR支持的各種斷點(diǎn)用出點(diǎn)勞德巴赫的一些強(qiáng)大功能。

2. 常用斷點(diǎn)存在的問(wèn)題斷點(diǎn)的概念非常簡(jiǎn)單,目的簡(jiǎn)單來(lái)說(shuō)就是在指定指令或者代碼行中斷程序的執(zhí)行,實(shí)現(xiàn)上可以是硬件斷點(diǎn)(通過(guò)編程FPB實(shí)現(xiàn))也可以是軟件斷點(diǎn)(通過(guò)插入BKPT斷點(diǎn)指令實(shí)現(xiàn) ),具體二者的底層實(shí)現(xiàn)這里不展開(kāi)討論。常規(guī)的斷點(diǎn)調(diào)試(本質(zhì)上是代碼斷點(diǎn))是在想觀察哪里的問(wèn)題時(shí)就在對(duì)應(yīng)的代碼地址雙擊設(shè)置斷點(diǎn),并且一旦運(yùn)行到斷點(diǎn)位置會(huì)讓程序自動(dòng)暫停運(yùn)行,然后觀察感興趣的變量,內(nèi)存或者寄存器,這種斷點(diǎn)調(diào)試功能能幫助開(kāi)發(fā)者解決大部分的問(wèn)題,但是其也有很大的局限性。

因?yàn)楹芏鄷r(shí)候我們只想知道某段代碼是否運(yùn)行過(guò),而不能讓程序停下來(lái),譬如說(shuō)調(diào)試BLE協(xié)議棧,無(wú)法去單步運(yùn)行,否則會(huì)打斷BLE主機(jī)和從機(jī)之間的通訊時(shí)序,而導(dǎo)致整個(gè)系統(tǒng)功能出現(xiàn)問(wèn)題。還有中斷處理函數(shù)的調(diào)試,程序一旦停下了也就失去了其他所有中斷的后續(xù)響應(yīng),再比如兩個(gè)設(shè)備通信,一旦一方采用常規(guī)斷點(diǎn)的方式調(diào)試,可能會(huì)打斷正常的通信過(guò)程。所以通常的做法是添加串口打印或者ITM半主機(jī)打印輸出log信息到顯示屏,但是這種方式會(huì)帶來(lái)額外的軟硬件開(kāi)銷(xiāo)(對(duì)于串口打印來(lái)說(shuō)是兩個(gè)UART pin腳+UART驅(qū)動(dòng)函數(shù),對(duì)于ITM打印輸出是一個(gè)SWO+ITM驅(qū)動(dòng)),甚至因?yàn)橐胄碌拇a導(dǎo)致程序出錯(cuò)。除此之外,還有3種場(chǎng)景是這種普通斷點(diǎn)無(wú)法滿足的,第一個(gè)是同一段循環(huán)體運(yùn)行N次才停下來(lái),第二個(gè)是當(dāng)變量被寫(xiě)入新的數(shù)據(jù)或者被讀取時(shí)停下來(lái),第三個(gè)是實(shí)時(shí)記錄斷點(diǎn)所在行某個(gè)特定變量或者地址的值,并在時(shí)間軸上以圖形的形式顯示出來(lái),方便分析和對(duì)比。

以上這些功能在這些功能在勞德巴赫中是最基本功能,同樣在IAR中也提供了不同形式的斷點(diǎn)類(lèi)型和組合,只是日常習(xí)慣了只用了其代碼斷點(diǎn)的功能,沒(méi)能充分發(fā)揮IAR的強(qiáng)大斷點(diǎn)功能,針對(duì)以上4種問(wèn)題在IAR中可以分別用日志斷點(diǎn)、條件斷點(diǎn)、讀寫(xiě)權(quán)限的數(shù)據(jù)斷點(diǎn)、數(shù)據(jù)日志斷點(diǎn)逐個(gè)擊破,從而避免了額外添加代碼的繁瑣,也能為解決隱藏bug提供更加靈活的手段。尤其是其中的讀寫(xiě)權(quán)限的數(shù)據(jù)斷點(diǎn),筆者曾經(jīng)就是使用這種辦法幫客戶解決了兩個(gè)埋藏的很深大bug,其中一個(gè)是查找某個(gè)關(guān)鍵變量在哪里被意外修改,通過(guò)設(shè)置條件斷點(diǎn)+stack callback迅速定位到了肇事代碼段,另一種是客戶代碼意外堆棧溢出調(diào)查,當(dāng)時(shí)的做法是在堆棧大小的90%地址靠近棧頂處設(shè)置一個(gè)寫(xiě)觸發(fā)的數(shù)據(jù)斷點(diǎn),當(dāng)某層調(diào)用過(guò)程中堆棧接近溢出時(shí),設(shè)置的數(shù)據(jù)斷點(diǎn)會(huì)被觸發(fā)而停止應(yīng)用程序,從而迅速找到堆棧是在哪層調(diào)用溢出的,從而解決問(wèn)題。

3. IAR支持的斷點(diǎn)類(lèi)型和使用方法總結(jié)下來(lái),在 IAR 中,主要有以下幾種斷點(diǎn),下面逐一介紹。

代碼斷點(diǎn)

條件斷點(diǎn)

讀寫(xiě)訪問(wèn)權(quán)限的數(shù)據(jù)斷點(diǎn)

數(shù)據(jù)日志斷點(diǎn)

日志斷點(diǎn)

電源斷點(diǎn)

3.1. 代碼斷點(diǎn)

這種斷點(diǎn)就是前面提到的最常用的斷點(diǎn),也是最簡(jiǎn)單的斷點(diǎn)。開(kāi)發(fā)則只需要在反匯編窗口中選擇C行或ASM指令并切換斷點(diǎn)。一旦遇到斷點(diǎn),用戶應(yīng)用程序?qū)⑼V?。這時(shí)候可以查看變量、標(biāo)志和寄存器的值。換句話說(shuō),開(kāi)發(fā)者擁有完全的控制權(quán)。對(duì)于這種普通代碼斷點(diǎn),其數(shù)量受限于硬件斷點(diǎn)的數(shù)量,例如對(duì)于 Arm Cortex-M,通常有6-8個(gè)硬件斷點(diǎn),但如果使用軟件斷點(diǎn)或在RAM中運(yùn)行應(yīng)用程序,則可以不受限制。使用時(shí)只需選擇顯示View -》 Breakpoints 窗口,就可以啟用或禁用斷點(diǎn)。

默認(rèn)情況下,IDE 將設(shè)置代碼斷點(diǎn),而且是auto類(lèi)型,可以通過(guò)Option-》Debugger-》JLINK/JTrace-》Breakpoint去設(shè)置硬件斷點(diǎn)還是軟件斷點(diǎn)。如果開(kāi)發(fā)者有 I-jet,可以在右鍵單擊代碼行時(shí)明確選擇一個(gè) flash斷點(diǎn)。注意斷點(diǎn)符號(hào)中的“F”。Flash 斷點(diǎn)功能在適用于 Arm 的IAR7.60 或更高版本中可用。

3.2 條件代碼斷點(diǎn)

條件斷點(diǎn)是代碼斷點(diǎn)與某些標(biāo)志或變量作為條件的組合。設(shè)置斷點(diǎn)后,同樣可以再次使用View -》 Breakpoints 窗口查看所有斷點(diǎn),也可以通過(guò)右鍵單擊并選擇Edit option來(lái)設(shè)置額外參數(shù)

設(shè)置斷點(diǎn)條件所使用的語(yǔ)法類(lèi)似于C語(yǔ)法,可以使用 ==、》= 和 《=。例如,如果您希望應(yīng)用程序在計(jì)數(shù)器等于 10 時(shí)在斷點(diǎn)處停止,您可以使用“counter==10”。這在中斷例程中需要斷點(diǎn)時(shí)非常有用。如果沒(méi)有設(shè)置條件,應(yīng)用程序就會(huì)一直被停止,影響到系統(tǒng)的正常工作,使用標(biāo)志或變量作為條件使事情變得容易得多。甚至用戶還可以使用跳過(guò)計(jì)數(shù)器和條件檢查(如true或changed)來(lái)實(shí)現(xiàn)更復(fù)雜的斷點(diǎn)停止條件設(shè)置。該方法可以解決上面提到的第二種問(wèn)題。

3.3 讀寫(xiě)訪問(wèn)的數(shù)據(jù)斷點(diǎn)

與其他斷點(diǎn)相比,數(shù)據(jù)斷點(diǎn)有點(diǎn)不同,因?yàn)槭菍?duì)特定內(nèi)存地址、標(biāo)志、變量或寄存器的讀寫(xiě)訪問(wèn)的監(jiān)控。使用時(shí)只需右鍵單擊標(biāo)志或變量并選擇選項(xiàng)Set data Breakpoint。默認(rèn)情況下,對(duì)該變量,特定地址,寄存器的任何讀取和寫(xiě)入訪問(wèn)都會(huì)觸發(fā)斷點(diǎn)。如果你想添加額外的設(shè)置,你可以通過(guò)View-》Breakpoints 窗口和Edit 選項(xiàng)來(lái)完成。 除了讀寫(xiě)訪問(wèn)之外,還可以監(jiān)控?cái)?shù)據(jù)是否匹配來(lái)作為斷點(diǎn)的觸發(fā)條件,這意味著寫(xiě)或讀訪問(wèn)只會(huì)在數(shù)據(jù)匹配時(shí)觸發(fā)暫停。另外,通過(guò)選擇編輯按鈕,開(kāi)發(fā)者還可以打開(kāi)一個(gè)額外的窗口,可以選擇絕對(duì)地址甚至源代碼所在行。對(duì)于變量或標(biāo)志,建議使用自動(dòng)大小。如果需要監(jiān)控更大的范圍,則應(yīng)手動(dòng)設(shè)置監(jiān)控的地址范圍或者變量范圍,譬如說(shuō)監(jiān)控一個(gè)結(jié)構(gòu)體的數(shù)據(jù)變化,使用這種數(shù)據(jù)斷點(diǎn)也是可以實(shí)現(xiàn)的,但需要用戶正確設(shè)置變量,特定地址,寄存器等監(jiān)控對(duì)象的Size。使用這種方法可以解決前文提到的第三種問(wèn)題。

此處需要特別提一下,數(shù)據(jù)斷點(diǎn)對(duì)于調(diào)試被應(yīng)用程序破壞的標(biāo)志和變量非常有用。筆者曾經(jīng)就是使用這種辦法在客戶解決了兩個(gè)埋藏的很深大bug,其中一個(gè)是查找某個(gè)關(guān)鍵變量在哪里被意外修改,通過(guò)設(shè)置條件斷點(diǎn)+stack callback迅速定位到了肇事代碼段,另一種是客戶端的意外堆棧溢出調(diào)查,當(dāng)時(shí)的做法是在堆棧大小的90%地址靠近棧頂處設(shè)置一個(gè)數(shù)據(jù)斷點(diǎn),當(dāng)堆棧溢出接近時(shí),設(shè)置的數(shù)據(jù)斷點(diǎn)會(huì)被觸發(fā)而停止應(yīng)用程序,從而迅速找到問(wèn)題的根源,至于如何設(shè)置,此處暫不展開(kāi)。

3.4 數(shù)據(jù)日志斷點(diǎn)

除了具有讀寫(xiě)訪問(wèn)權(quán)限的數(shù)據(jù)斷點(diǎn)外,開(kāi)發(fā)者還可以使用數(shù)據(jù)日志斷點(diǎn)。這種斷點(diǎn)的好處在于可以在時(shí)間線中監(jiān)視和以圖形方式繪制內(nèi)存中特定變量或地址的值,使顯示更加直觀,用戶還可以在同一個(gè)時(shí)間軸上顯示和比較兩個(gè)或多個(gè)變量,從而在邏輯上排查問(wèn)題。設(shè)置的方法就是View-》Breakpoints 窗口和Edit 選項(xiàng),然后選擇set Data Log Breakpoint for counter即可,使用這種方法可以解決前文提到的第四種問(wèn)題。

時(shí)間線以及附加數(shù)據(jù)日志和數(shù)據(jù)日志摘要可在探針選項(xiàng)下找到,例如如下面的屏幕截圖所示。

3.5 日志斷點(diǎn)

除了代碼和數(shù)據(jù)斷點(diǎn)之外,還有一種日志斷點(diǎn),這是一個(gè)特殊的斷點(diǎn),因?yàn)樗粫?huì)臨時(shí)暫時(shí)停止應(yīng)用程序以打印消息,然后繼續(xù)代碼的運(yùn)行。一旦運(yùn)行到設(shè)置的日志斷點(diǎn),它會(huì)顯示如下用戶預(yù)先設(shè)定的消息,告知用戶某個(gè)函數(shù)事件被觸發(fā)。這種方式的好處在于,無(wú)需額外添加串口打印或者ITM半主機(jī)打印輸出log信息到顯示屏,無(wú)需額外的軟硬件開(kāi)銷(xiāo),便可實(shí)現(xiàn)基本的信息打印,方便開(kāi)發(fā)者跟蹤程序的執(zhí)行流程。

如下圖所示,每次斷點(diǎn)命中時(shí),調(diào)試日志窗口中都會(huì)顯示一條消息。添加的計(jì)數(shù)器可以了解應(yīng)用程序通過(guò)該部分源代碼的次數(shù)。通過(guò)這種辦法可以解決前面提到的第一個(gè)問(wèn)題,即不停止代碼又能獲知感興趣的代碼段是否被執(zhí)行過(guò),以及執(zhí)行的次數(shù),兵不血刃,無(wú)需添加任何額外的代碼。

3.6 電源斷點(diǎn)

除了代碼的調(diào)試,IAR還支持先進(jìn)的電源調(diào)試技術(shù),可以監(jiān)控功耗,并將其與源代碼相關(guān)聯(lián)。這也使得添加電源斷點(diǎn)成為可能,可以設(shè)置一個(gè)閾值,如 25mA,一旦能量高于該值,調(diào)試器將被觸發(fā)停止。設(shè)置閾值非常簡(jiǎn)單, 只需要打開(kāi)J-Link-》PowerLog 窗口,然后設(shè)置值和所需選項(xiàng),如上圖或下圖所示。通過(guò)這種分析,可以直觀的看出代碼執(zhí)行過(guò)程中的功耗值,下面的時(shí)間線窗口不是必需的,但它可以為提供正在使用的能量提供一個(gè)時(shí)間參考。

4. 總結(jié):至此,介紹完了IAR支持的6種不同的斷點(diǎn)類(lèi)型和使用方法,也順帶針對(duì)性的解決了前文中提到的日常調(diào)試遇到的四個(gè)問(wèn)題。如果在日常調(diào)試過(guò)程中靈活運(yùn)用以上的這幾種斷點(diǎn),對(duì)于日常調(diào)試提高開(kāi)發(fā)速度和解決一些深藏的bug(例如前文提到的大型程序中變量被莫名修改,堆棧溢出追蹤等) 很有幫助。當(dāng)然勞特巴赫之所以賣(mài)的這么貴,必然有其強(qiáng)大之處,尤其是強(qiáng)大的腳本編程,多核系統(tǒng),能耗分析以及對(duì)芯片內(nèi)部操作的開(kāi)放度,能給開(kāi)發(fā)者最大的操作靈活度。但就日常的斷點(diǎn)調(diào)試看,IAR+JLINK的組合也基本能滿足大部分的需求,畢竟就地取材最方便。

責(zé)任編輯:haq

聲明:本文內(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)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9008

    瀏覽量

    366057
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    564

    瀏覽量

    33835

原文標(biāo)題:JLINK配合IAR斷點(diǎn)功能,讓bug無(wú)處可藏

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    探針頭型使用方法有哪些

    探針頭型的使用方法多種多樣,具體取決于探針頭型的類(lèi)型、被測(cè)對(duì)象的特性以及測(cè)試需求。以下是一些常見(jiàn)探針頭型的使用方法概述: 1. 凹頭探針 用途 :主要用于測(cè)試長(zhǎng)導(dǎo)腳、端子及繞線柱等較長(zhǎng)或較粗的被測(cè)點(diǎn)
    的頭像 發(fā)表于 09-07 10:57 ?315次閱讀

    DC/DC模擬的基本使用方法和特性確認(rèn)方法

    本篇介紹了DC/DC模擬的基本使用方法及確認(rèn)基本特性的方法
    的頭像 發(fā)表于 08-20 17:08 ?464次閱讀
    DC/DC模擬的基本<b class='flag-5'>使用方法</b>和特性確認(rèn)<b class='flag-5'>方法</b>

    圖片動(dòng)畫(huà)控件和Video image控件的使用方法

    在UI開(kāi)發(fā)過(guò)程中,序列幀基本是繞不開(kāi)的,AWTK 支持多種方法實(shí)現(xiàn)序列幀顯示,本文介紹圖片動(dòng)畫(huà)控件和Video image控件的使用方法。
    的頭像 發(fā)表于 08-06 16:44 ?607次閱讀
    圖片動(dòng)畫(huà)控件和Video image控件的<b class='flag-5'>使用方法</b>

    淺談錫膏的儲(chǔ)存及使用方法

    錫膏(焊錫膏)是電子組裝過(guò)程中常用的材料,它的儲(chǔ)存和使用方法對(duì)保證焊接質(zhì)量和性能至關(guān)重要。以下是詳細(xì)的儲(chǔ)存及使用方法
    的頭像 發(fā)表于 06-27 10:02 ?611次閱讀

    可編程電源使用方法

    可編程電源使用方法 可編程電源使用方法 摘要:本文詳細(xì)介紹了可編程電源的使用方法,包括其基本概念、主要功能、選擇原則、操作步驟、注意事項(xiàng)以及實(shí)際應(yīng)用案例,旨在幫助讀者全面了解可編程電源
    的頭像 發(fā)表于 06-10 15:29 ?750次閱讀

    芯海應(yīng)用筆記:通用 MCU 基于 IAR 芯片包 IAR9 開(kāi)發(fā)指南

    MCU 芯片。芯??萍蓟?IAR 環(huán)境開(kāi)發(fā)芯片包,給用戶更多的編譯選擇,提高用戶開(kāi)發(fā)靈活性。本應(yīng)用筆記從芯片包結(jié)構(gòu)、DEMO 例程下載使用、工程建立等角度出發(fā),詳細(xì)介紹 IAR 芯片包的使用方法,旨在
    發(fā)表于 05-16 11:52

    手柄控制代碼及使用方法

    手柄控制代碼及使用方法
    的頭像 發(fā)表于 05-15 10:19 ?1311次閱讀

    IAR斷點(diǎn)停止后,鼠標(biāo)放在watch窗口中查看變量,IAR卡死退出怎么解決?

    IAR版本:8.32 操作過(guò)程如下: 1.在IAR中設(shè)置相關(guān)端點(diǎn); 2.在觀察(watch)窗口中加入相關(guān)變量或數(shù)組,用于在程序斷點(diǎn)停止后觀測(cè)其數(shù)值變化; 3.運(yùn)行程序至端點(diǎn)停止后,一定會(huì)發(fā)生以下2
    發(fā)表于 04-19 07:21

    集成芯片的使用方法

    需要注意的是,不同類(lèi)型的集成芯片具有不同的使用方法和功能,因此在實(shí)際應(yīng)用中,需要仔細(xì)閱讀芯片的數(shù)據(jù)手冊(cè)和相關(guān)文檔,了解其具體的使用要求和步驟。此外,對(duì)于復(fù)雜的電路設(shè)計(jì)和系統(tǒng)應(yīng)用,可能需要具備相應(yīng)的電子技術(shù)和專業(yè)知識(shí)。
    的頭像 發(fā)表于 03-19 15:59 ?1150次閱讀

    IAR全面支持小華全系芯片,強(qiáng)化工控及汽車(chē)MCU生態(tài)圈

    來(lái)源:IAR IAR Embedded Workbench for Arm已全面支持小華半導(dǎo)體系列芯片,加速高端工控MCU和車(chē)用MCU應(yīng)用的安全開(kāi)發(fā) 近日,嵌入式開(kāi)發(fā)軟件和服務(wù)的全球領(lǐng)導(dǎo)者IA
    的頭像 發(fā)表于 03-13 23:02 ?467次閱讀
    <b class='flag-5'>IAR</b>全面<b class='flag-5'>支持</b>小華全系芯片,強(qiáng)化工控及汽車(chē)MCU生態(tài)圈

    介紹幾種判斷電線電纜斷點(diǎn)的檢測(cè)方法

    當(dāng)電線電纜的內(nèi)部出現(xiàn)斷線故障時(shí),由于外部絕緣皮的包裹,使斷線的確切位置不易確定,測(cè)試電線電纜斷點(diǎn) 我們需要找出有斷點(diǎn)的一根電線,然后就可以找到確切的斷點(diǎn)了。
    的頭像 發(fā)表于 11-20 11:07 ?3096次閱讀
    介紹幾種判斷電線電纜<b class='flag-5'>斷點(diǎn)</b>的檢測(cè)<b class='flag-5'>方法</b>

    Maxim開(kāi)發(fā)環(huán)境是什么?支持keil和iar?

    Maxim開(kāi)發(fā)環(huán)境是什么?支持keil和iar?
    發(fā)表于 11-09 06:59

    MCUXpresso IDE下將源碼制作成Lib庫(kù)方法及其與IAR,MDK差異

    MCUXpresso IDE下將源碼制作成Lib庫(kù)方法及其與IAR,MDK差異
    的頭像 發(fā)表于 11-07 17:13 ?1082次閱讀
    MCUXpresso IDE下將源碼制作成Lib庫(kù)<b class='flag-5'>方法</b>及其與<b class='flag-5'>IAR</b>,MDK差異

    STM32通過(guò)命令行編譯和下載keil和IAR工程的方法

    STM32通過(guò)命令行編譯和下載keil和IAR工程的方法
    的頭像 發(fā)表于 10-31 17:01 ?1418次閱讀
    STM32通過(guò)命令行編譯和下載keil和<b class='flag-5'>IAR</b>工程的<b class='flag-5'>方法</b>

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發(fā)表于 10-27 09:27 ?954次閱讀
    AT32 MCU Printf的功能<b class='flag-5'>使用方法</b>