chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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 Embedded Workbench中程序連上仿真器調(diào)試時(shí)不正常的情況

工程師鄧生 ? 來(lái)源:IAR愛(ài)亞系統(tǒng) ? 作者:IAR愛(ài)亞系統(tǒng) ? 2022-09-02 11:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上期我們介紹了在IAR Embedded Workbench中程序連上仿真器調(diào)試時(shí)正常但是斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)不正常的情況。

嵌入式軟件開(kāi)發(fā)中,有時(shí)會(huì)遇到程序斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)正常,但是連上仿真器調(diào)試時(shí)不正常。本文主要介紹在IAR Embedded Workbench中程序斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)正常但是連上仿真器調(diào)試時(shí)不正常的情況。

程序仿真調(diào)試和單獨(dú)運(yùn)行的區(qū)別

37495768-29de-11ed-ba43-dac502259ad0.png

原因分析及對(duì)應(yīng)策略

1. 程序連上仿真器調(diào)試時(shí)Flash loader及mac宏會(huì)設(shè)置對(duì)應(yīng)的寄存器和程序開(kāi)始運(yùn)行是通過(guò)軟復(fù)位(Software Reset),而斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)需要程序設(shè)置對(duì)應(yīng)的寄存器和程序開(kāi)始運(yùn)行是通過(guò)硬復(fù)位 (Hardware Reset)。由于程序斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)正常,連上仿真器調(diào)試的時(shí)候不需要像之前那樣不使用Flash loader,只需要在調(diào)試開(kāi)始之前進(jìn)行一次硬復(fù)位 (Hardware Reset)(硬復(fù)位讓程序在連上仿真器調(diào)試時(shí)的初始狀態(tài)與斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)硬復(fù)位之后的初始狀態(tài)時(shí)一致的)。

下面主要介紹如何在IAR Embedded Workbench中連上仿真器調(diào)試時(shí)進(jìn)行硬復(fù)位 (Hardware Reset):

下載完成之后讓程序停在復(fù)位向量而不是main函數(shù)

在IAR Embedded Workbench工程選項(xiàng)Options > Debugger > Setup >Run to選項(xiàng):默認(rèn)情況下會(huì)選中Run to main,調(diào)試器下載完成之后,程序會(huì)停在main函數(shù)。如果不勾選Run to,調(diào)試器下載完成之后,程序會(huì)停在復(fù)位向量,這樣就可以從復(fù)位向量開(kāi)始調(diào)試。

37730fd6-29de-11ed-ba43-dac502259ad0.png37aa4ea6-29de-11ed-ba43-dac502259ad0.png

下載完成之后通過(guò)調(diào)試器進(jìn)行Hardware Reset

如果對(duì)應(yīng)的硬件仿真器支持Hardware Reset并且對(duì)應(yīng)的硬件仿真器的nRESET引腳連接到MCU的復(fù)位引腳nRESET, 將Reset類型改成Hardware,然后Reset(模擬程序單獨(dú)運(yùn)行時(shí)硬復(fù)位,并從復(fù)位向量開(kāi)始調(diào)試)。

37c47d12-29de-11ed-ba43-dac502259ad0.png

下載完成之后通過(guò)外部Reset進(jìn)行Hardware Reset

如果對(duì)應(yīng)的硬件仿真器不支持Hardware Reset或者并且對(duì)應(yīng)的硬件仿真器的nRESET引腳沒(méi)有連接到MCU的復(fù)位引腳nRESET, 可以通過(guò)外部Reset對(duì)MCU進(jìn)行Hardware Reset。但是外部Reset之后,程序需要停在復(fù)位向量,然后就可以通過(guò)調(diào)試器調(diào)試。 如果對(duì)應(yīng)的MCU和硬件仿真器支持CORERESET選項(xiàng) (Options > I-jet > Breakpoints > Catch exceptions > CORERESET),勾選CORERESET之后,調(diào)試時(shí)如果有外部Reset, 程序會(huì)停在復(fù)位向量。

注:Vector catch是arm支持的調(diào)試特性,更多信息請(qǐng)參考arm相關(guān)文檔。

388bc4da-29de-11ed-ba43-dac502259ad0.png38b76900-29de-11ed-ba43-dac502259ad0.png

如果對(duì)應(yīng)的MCU或者硬件仿真器不支持CORERESET選項(xiàng),則需要在復(fù)位向量打斷點(diǎn),調(diào)試時(shí)如果有外部Reset, 程序會(huì)停在復(fù)位向量。

39359dca-29de-11ed-ba43-dac502259ad0.png

2. 如果Library low-level interface implementation是通過(guò)semihosting (Options > General Options > Library low-level interface implementation > Semihosted > Via semihosting)實(shí)現(xiàn):

3976d0a6-29de-11ed-ba43-dac502259ad0.png

而semihosting又是通過(guò)SVC指令來(lái)實(shí)現(xiàn)(非Cortex-M的32位arm內(nèi)核):

3b205cf6-29de-11ed-ba43-dac502259ad0.png

如果程序里面也使用了SVC,那么連上仿真器調(diào)試的時(shí)候程序會(huì)停在SVC Handler:

3b4be4b6-29de-11ed-ba43-dac502259ad0.png

可以通過(guò)將Library low-level interface implementation 設(shè)置為None (Options > General Options > Library low-level interface implementation > None):

3b65b3aa-29de-11ed-ba43-dac502259ad0.png

3. 為了提高系統(tǒng)的健壯性,越來(lái)越多的MCU內(nèi)部集成了Watchdog, 可以讓MCU在軟件出錯(cuò)的時(shí)候復(fù)位MCU。MCU內(nèi)部Watchdog控制寄存器一般會(huì)有選項(xiàng)可以配置Watchdog在調(diào)試模式是否使能:

3bdf2c08-29de-11ed-ba43-dac502259ad0.png3c07805e-29de-11ed-ba43-dac502259ad0.png

當(dāng)Watchdog配置為調(diào)試模式不使能時(shí),Watchdog在調(diào)試模式暫停時(shí)會(huì)停止,不會(huì)導(dǎo)致MCU復(fù)位。反之,當(dāng)Watchdog配置為調(diào)試模式使能時(shí),Watchdog在調(diào)試模式暫停時(shí)會(huì)繼續(xù)運(yùn)行,從而可能會(huì)導(dǎo)致MCU復(fù)位(因?yàn)闀和5臅r(shí)候Watchdog得不到正常的刷新)。在單獨(dú)運(yùn)行時(shí),當(dāng)軟件運(yùn)行正常時(shí),Watchdog會(huì)正常的刷新,所以不會(huì)復(fù)位。

將MCU內(nèi)部Watchdog配置成在調(diào)試模式不使能,這樣在調(diào)試時(shí),暫停的時(shí)候Watchdog會(huì)停止,不會(huì)復(fù)位MCU。

總結(jié)

本文主要介紹了在IAR Embedded Workbench中程序斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)正常但是連上仿真器調(diào)試時(shí)不正常的情況。通過(guò)分析可能的原因及對(duì)應(yīng)的策略,可以解決斷開(kāi)仿真器單獨(dú)運(yùn)行時(shí)正常正常但是連上仿真器調(diào)試時(shí)不正常的問(wè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

    文章

    5434

    瀏覽量

    124524
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1037

    瀏覽量

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

    關(guān)注

    5

    文章

    381

    瀏覽量

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

    關(guān)注

    1

    文章

    313

    瀏覽量

    24329

原文標(biāo)題:程序單獨(dú)運(yùn)行正常但是仿真調(diào)試不正常

文章出處:【微信號(hào):IAR愛(ài)亞系統(tǒng),微信公眾號(hào):IAR愛(ài)亞系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    第三章 仿真器介紹

    本篇文章我們介紹了W55MH32板載的WIZ-Link仿真器的使用方法,讓我們一起插上USB線開(kāi)始下載、調(diào)試程序吧!
    的頭像 發(fā)表于 05-21 11:54 ?270次閱讀
    第三章 <b class='flag-5'>仿真器</b>介紹

    基于 IAR Embedded Workbench 的自研 MCU 芯片軟件函數(shù)與變量?jī)?nèi)存布局優(yōu)化精控方法

    嵌入式軟件開(kāi)發(fā)領(lǐng)域,MCU芯片軟件的架構(gòu)設(shè)計(jì)與內(nèi)存布局的精細(xì)規(guī)劃對(duì)系統(tǒng)性能和穩(wěn)定性起著關(guān)鍵作用。本文檔聚焦于IAR Embedded Workbench環(huán)境下,為自研MCU芯片軟件提
    的頭像 發(fā)表于 04-30 16:38 ?290次閱讀
    基于 <b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b> 的自研 MCU 芯片軟件函數(shù)與變量?jī)?nèi)存布局優(yōu)化精控方法

    用stsw-link004這個(gè)軟件配合仿真器寫(xiě)程序后,直接運(yùn)行程序,程序運(yùn)行不正常是什么原因?

    用stsw-link004這個(gè)軟件配合仿真器寫(xiě)程序后,直接運(yùn)行程序,程序運(yùn)行不正常,必須對(duì)電路板進(jìn)行完全重新上電,
    發(fā)表于 03-07 07:00

    ADS1298 CONFIG2讀取初始值不正常是什么原因引起的?

    你好,我從貴公司申請(qǐng)了幾片ADS1298的芯片,使用后發(fā)現(xiàn)以下問(wèn)題:1。芯片ID,CONFIG2讀取初始值不正常2。前四個(gè)通道控制寄存讀寫(xiě)正常,后四個(gè)通道寄存無(wú)法讀寫(xiě),請(qǐng)問(wèn)是否出
    發(fā)表于 02-13 08:02

    變頻輸出波形不正常原因及解決方法

    ? ? ? 變頻作為現(xiàn)代工業(yè)控制領(lǐng)域的核心設(shè)備之一,其穩(wěn)定性和可靠性直接關(guān)系到生產(chǎn)線的正常運(yùn)行和設(shè)備的使用壽命。然而,實(shí)際應(yīng)用中,變頻輸出波形
    的頭像 發(fā)表于 02-06 15:48 ?813次閱讀
    變頻<b class='flag-5'>器</b>輸出波形<b class='flag-5'>不正常</b>原因及解決方法

    是什么原因使ADS4145 VCM腳輸出電壓不正常

    這兩天調(diào)試高速模數(shù)轉(zhuǎn)換ADS4145。我將ADS4145的DFS腳接0.65V((3/8) AVDD ± 100mV),OE接 1.8V,時(shí)鐘腳CLKP輸入1.8V 80MHz時(shí)鐘?!∥矣?/div>
    發(fā)表于 01-10 08:09

    伺服電機(jī)振動(dòng)不正常原因和維修及案例分析

    ? ? ? 伺服電機(jī)作為自動(dòng)化系統(tǒng)中的關(guān)鍵組件,其穩(wěn)定運(yùn)行對(duì)于整個(gè)生產(chǎn)線的效率和穩(wěn)定性至關(guān)重要。然而,伺服電機(jī)在運(yùn)行過(guò)程中可能會(huì)遇到振動(dòng)不正常的問(wèn)題,這不僅影響電機(jī)的性能,還可能對(duì)機(jī)械系統(tǒng)造成損害
    的頭像 發(fā)表于 12-18 09:22 ?868次閱讀
    伺服電機(jī)振動(dòng)<b class='flag-5'>不正常</b>原因和維修及案例分析

    為什么AIC23剛上電時(shí),工作不正常

    工作USB模式)都正常,只是聲音不正常,但是經(jīng)過(guò)上面的觸碰后,就可以實(shí)現(xiàn)轉(zhuǎn)為正常狀態(tài)。 請(qǐng)問(wèn)各位,這兩個(gè)信號(hào)有什么關(guān)系?為啥會(huì)出現(xiàn)這種情況
    發(fā)表于 10-21 07:50

    使用C5515 EVM調(diào)試程序,CCS不能識(shí)別到DEMO板的仿真器是怎么回事?

    使用C5515 EVM開(kāi)始調(diào)試程序的時(shí)候,遇到一個(gè)問(wèn)題: 即 CCS不能識(shí)別到DEMO板的仿真器,電腦的設(shè)備管理到是可以正常識(shí)別。請(qǐng)幫
    發(fā)表于 10-21 07:00

    仿真器的使用方法有哪些

    硬件。它可以幫助工程師實(shí)際硬件或軟件部署之前,對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證和調(diào)試仿真器可以分為軟件仿真器和硬件仿真器兩種類型。 1.1 軟件
    的頭像 發(fā)表于 08-22 09:16 ?2326次閱讀

    ADS1675采樣不正常是哪些原因引起的?

    ADS1675采樣率125K,250K,500K,1M 的時(shí)候采樣正常,2M,4M的采樣不正常。下面是采樣設(shè)置,請(qǐng)問(wèn)還需要設(shè)置哪里。測(cè)試數(shù)據(jù)如附件
    發(fā)表于 08-09 08:23

    RA-T馬達(dá)工程串口直接啟動(dòng)Workbench調(diào)試方案

    Workbench是瑞薩推薦的電機(jī)調(diào)試GUI,目前官方渠道介紹的使用方式需結(jié)合專用通訊板使用。本篇介紹的是不使用瑞薩專用通訊板或通訊電路的情況下,使用通用的USB轉(zhuǎn)串口設(shè)備啟動(dòng)
    的頭像 發(fā)表于 08-03 08:06 ?934次閱讀
    RA-T馬達(dá)工程串口直接啟動(dòng)<b class='flag-5'>Workbench</b><b class='flag-5'>調(diào)試</b>方案

    OPA860峰值檢測(cè)電路芯片工作不正常怎么解決?

    我按照上個(gè)帖子的仿真電路制作PCB測(cè)試后,也遇到了輸出4V,工作不正常的問(wèn)題,不知道上面那位兄弟最后是怎么解決的呢
    發(fā)表于 08-02 08:03

    LOG114 VLogout輸出不正常的原因?

    你好,這是我的電路圖,目前的問(wèn)題是VLogout的輸出不正常,不服從VLogout=0.375*log(I1/I2)+2.5V。 我之前使用log114芯片的時(shí)候,背部的exposed
    發(fā)表于 08-02 08:02

    LM393比較電路不正常的原因?

    LM393比較電路不正常
    發(fā)表于 07-29 07:15