在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

在IAR Embedded Workbench中程序連上仿真器調(diào)試時不正常的情況

工程師鄧生 ? 來源:IAR愛亞系統(tǒng) ? 作者:IAR愛亞系統(tǒng) ? 2022-09-02 11:05 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

下載完成之后通過外部Reset進行Hardware Reset

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

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

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

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

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

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

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

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

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

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

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

可以通過將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)的健壯性,越來越多的MCU內(nèi)部集成了Watchdog, 可以讓MCU在軟件出錯的時候復位MCU。MCU內(nèi)部Watchdog控制寄存器一般會有選項可以配置Watchdog在調(diào)試模式是否使能:

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

當Watchdog配置為調(diào)試模式不使能時,Watchdog在調(diào)試模式暫停時會停止,不會導致MCU復位。反之,當Watchdog配置為調(diào)試模式使能時,Watchdog在調(diào)試模式暫停時會繼續(xù)運行,從而可能會導致MCU復位(因為暫停的時候Watchdog得不到正常的刷新)。在單獨運行時,當軟件運行正常時,Watchdog會正常的刷新,所以不會復位。

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

總結(jié)

本文主要介紹了在IAR Embedded Workbench中程序斷開仿真器單獨運行時正常但是連上仿真器調(diào)試時不正常的情況。通過分析可能的原因及對應(yīng)的策略,可以解決斷開仿真器單獨運行時正常正常但是連上仿真器調(diào)試時不正常的問題。


審核編輯:劉清

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

    關(guān)注

    31

    文章

    5427

    瀏覽量

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

    關(guān)注

    14

    文章

    1034

    瀏覽量

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

    關(guān)注

    5

    文章

    372

    瀏覽量

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

    關(guān)注

    1

    文章

    312

    瀏覽量

    24221

原文標題:程序單獨運行正常但是仿真調(diào)試不正常

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

收藏 人收藏

    評論

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

    第三章 仿真器介紹

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

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

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

    用stsw-link004這個軟件配合仿真器程序后,直接運行程序程序運行不正常是什么原因?

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

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

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

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

    ? ? ? 變頻作為現(xiàn)代工業(yè)控制領(lǐng)域的核心設(shè)備之一,其穩(wěn)定性和可靠性直接關(guān)系到生產(chǎn)線的正常運行和設(shè)備的使用壽命。然而,實際應(yīng)用中,變頻輸出波形
    的頭像 發(fā)表于 02-06 15:48 ?651次閱讀
    變頻<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,時鐘腳CLKP輸入1.8V 80MHz時鐘。 我用
    發(fā)表于 01-10 08:09

    伺服電機振動不正常原因和維修及案例分析

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

    為什么AIC23剛上電時,工作不正常

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

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

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

    仿真器的使用方法有哪些

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

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

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

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

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

    LOG114 VLogout輸出不正常的原因?

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

    使用sys_reboot命令重啟進入user2程序不正常的原因?

    云升級完成 使用sys_reboot命令 重啟進入user2 程序不正常, 可以跳轉(zhuǎn)到user2, 執(zhí)行就打印了一些亂碼。 user1.bin 和 user2.bin是一樣的, 相同的代碼編譯的. user1.bin 串口燒寫可以正常
    發(fā)表于 07-12 13:00

    ESP32 Dev Module上傳程序運行不正常的原因?

    我的開發(fā)核心板是ESP-WROOM-32,CH9102X驅(qū)動,開發(fā)環(huán)境是Arduino IDE, 開發(fā)板選哪個?我選ESP32 Dev Module,但是感覺有點詭異,上傳程序運行不正常。 應(yīng)該選
    發(fā)表于 07-01 07:15
    主站蜘蛛池模板: 天天干天天看 | 一级特黄aa大片免费播放视频 | 综合免费视频 | 久久精品免费视频观看 | 小毛片在线观看 | 偷偷狠狠的日日2020 | 四虎网址在线观看 | 97人人在线视频 | 国产一级特黄aa大片在线 | baoyu777永久免费视频 | 四虎国产精品永久在线播放 | 毛色毛片免费观看 | 日日噜噜夜夜狠狠tv视频免费 | 国产精品成人va在线观看入口 | 免费看h视频 | 操欧洲美女 | 5555kkkk香蕉在线观看 | 色干干 | 天天干狠狠操 | 婷婷九月| 久久国产精品永久免费网站 | h在线免费观看 | 农村妇女色又黄一级毛片卡 | 欧美人与z0zoxxxx特 | 亚洲综合激情六月婷婷在线观看 | 亚洲天堂ww | 波多野结衣在线视频观看 | 91aaa免费观看在线观看资源 | 狠狠干福利视频 | 一本到中文字幕高清不卡在线 | 日本不卡高清视频 | 国产精品午夜久久久久久99热 | 日本免费一区二区老鸭窝 | 黄色一级a毛片 | 久久88色综合色鬼 | 2017亚洲男人天堂 | 三级黄色录像 | 亚洲人的天堂男人爽爽爽 | 72种姿势欧美久久久久大黄蕉 | freesex性欧美炮机喷潮 | 亚洲qingse中文久久网 |