国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

程序仿真調試和單獨運行的區別

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

原因分析及對應策略

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

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

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

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

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

下載完成之后通過調試器進行Hardware Reset

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

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

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

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

注:Vector catch是arm支持的調試特性,更多信息請參考arm相關文檔。

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

如果對應的MCU或者硬件仿真器不支持CORERESET選項,則需要在復位向量打斷點,調試時如果有外部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)實現:

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

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

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

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

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

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

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

3. 為了提高系統的健壯性,越來越多的MCU內部集成了Watchdog, 可以讓MCU在軟件出錯的時候復位MCU。MCU內部Watchdog控制寄存器一般會有選項可以配置Watchdog在調試模式是否使能:

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

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

將MCU內部Watchdog配置成在調試模式不使能,這樣在調試時,暫停的時候Watchdog會停止,不會復位MCU。

總結

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


審核編輯:劉清

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

    關注

    31

    文章

    5608

    瀏覽量

    129991
  • 仿真器
    +關注

    關注

    14

    文章

    1051

    瀏覽量

    87270
  • IAR
    IAR
    +關注

    關注

    5

    文章

    410

    瀏覽量

    38545
  • 調試器
    +關注

    關注

    1

    文章

    328

    瀏覽量

    25092

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

文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Renesas E1/E20 仿真器使用指南:從基礎到實戰

    Renesas E1/E20 仿真器使用指南:從基礎到實戰 嵌入式開發領域,一款高效可靠的仿真器對于調試程序、優化性能至關重要。Renesas 的 E1/E20
    的頭像 發表于 03-02 15:10 ?118次閱讀

    Renesas E1/E20 仿真器:設計與調試的全方位指南

    Renesas E1/E20 仿真器:設計與調試的全方位指南 電子設計領域,仿真器調試和驗證微控制
    的頭像 發表于 02-28 15:45 ?127次閱讀

    Renesas E1/E20仿真器:全面解析與應用指南

    Renesas E1/E20 仿真器:全面解析與應用指南 引言 嵌入式系統開發領域,仿真器是不可或缺的工具之一。Renesas的E1/E20仿真器憑借其強大的功能和廣泛的適用性,
    的頭像 發表于 02-28 11:30 ?273次閱讀

    瑞薩E1/E20仿真器:設計、調試與使用全解析

    瑞薩E1/E20仿真器:設計、調試與使用全解析 嵌入式系統開發中,仿真器是不可或缺的工具,它能幫助工程師高效地進行硬件調試
    的頭像 發表于 02-11 17:05 ?590次閱讀

    Renesas E1/E20 仿真器:設計與調試全解析

    Renesas E1/E20 仿真器:設計與調試全解析 嵌入式系統開發的廣闊領域中,仿真器扮演著至關重要的角色,它是工程師們調試和優化代碼
    的頭像 發表于 02-09 10:30 ?372次閱讀

    關于CW32 互補PWM 程序調試的疑問求解

    調試CW32 輸出互補PWM 的程序時,發現在線調試時波形輸出正常,但是當把程序在下到CW32
    發表于 12-08 07:02

    單片機系統硬件的調試方法

    損壞集成塊,加電之后.對各個插件上引腳的電位進行檢查.檢查VCC和GND的電位.一般情況下電位為5-4.8V。如果屬于高壓通電,則要調試聯機仿真器.經檢查
    發表于 12-03 06:10

    如何使用CMSIS DAP仿真器調試,通過NucleiStudio調試蜂鳥SOC

    如標題所示,我們分享如何使用CMSIS DAP仿真器調試,通過NucleiStudio調試蜂鳥SOC 我們先介紹一下CMSIS DAP仿真器: 他的功能如下: 可以看到,它支持JT
    發表于 10-21 12:05

    如何在 IAR Embedded Workbench for ARM 開發環境中啟用可配置數據閃存并設置大小?

    如何在 IAR Embedded Workbench for ARM 開發環境中啟用可配置數據閃存并設置大小?
    發表于 08-26 07:49

    請問如何在 IAR Embedded Workbench for ARM 開發環境中啟用可配置數據閃存并設置大小?

    如何在 IAR Embedded Workbench for ARM 開發環境中啟用可配置數據閃存并設置大小?
    發表于 08-20 06:23

    「芯生態」杰發科技AC7870攜手IAR開發工具鏈,助推汽車電子全棧全域智能化落地

    IAR Embedded Workbench for Arm已全面支持杰發科技AutoChips車規級MCU AC7870,為其提供涵蓋開發、調試、優化等一站式服務
    的頭像 發表于 07-22 12:06 ?688次閱讀
    「芯生態」杰發科技AC7870攜手<b class='flag-5'>IAR</b>開發工具鏈,助推汽車電子全棧全域智能化落地

    第三章 仿真器介紹

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

    基于 IAR Embedded Workbench 的自研 MCU 芯片軟件函數與變量內存布局優化精控方法

    嵌入式軟件開發領域,MCU芯片軟件的架構設計與內存布局的精細規劃對系統性能和穩定性起著關鍵作用。本文檔聚焦于IAR Embedded Workbench環境下,為自研MCU芯片軟件提
    的頭像 發表于 04-30 16:38 ?762次閱讀
    基于 <b class='flag-5'>IAR</b> <b class='flag-5'>Embedded</b> <b class='flag-5'>Workbench</b> 的自研 MCU 芯片軟件函數與變量內存布局優化精控方法

    i.MX RT 1176上正常運行代碼時與使用IAR調試代碼時存在一些奇怪的差異,為什么?

    重置處理時似乎將其重置向量中找到的值插入堆棧指針,這確認了一般的 ARM 架構,但在這種情況下會導致行為差異,因為它不在預期的位置 - 它與調試器一起
    發表于 03-17 07:26

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

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