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

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

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

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

軟件斷點(diǎn)的介紹

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-09-28 15:46 ? 次閱讀

代碼全速運(yùn)行的時(shí)候,等了很久發(fā)現(xiàn)并沒有得到想要的結(jié)果,然后暫停之后發(fā)現(xiàn)程序死在了循環(huán)里面,或者斷言里面。那么,我們是否有辦法在程序斷言失敗的時(shí)候,讓程序自動(dòng)停下來呢?而不是苦苦等待結(jié)果呢?如果用常規(guī)的方法,肯定是在斷言里面加入斷點(diǎn),只要斷言失敗,那么程序自然就停下來了。但是我們知道,KEIL加入斷點(diǎn)后有可能在再次打開工程后消失,而且STM32單片機(jī)支持的斷點(diǎn)數(shù)量也有限,有沒有好的方法?有的,就是軟件斷點(diǎn)!你可以在需要停止CPU運(yùn)行的代碼中加入這條語句:

__breakpoint(0);  //后面的立即數(shù)不怎么重要

這樣,當(dāng)你的程序斷言失敗了之后,如果運(yùn)行到這條語句,在線調(diào)試模式下就會(huì)自動(dòng)停止單片機(jī)運(yùn)行(如果不在

在線調(diào)試

模式,也會(huì)進(jìn)入停止運(yùn)行,所以需要后面的優(yōu)化方案)。比如hardfault錯(cuò)誤很難查,但是你可以在進(jìn)入這個(gè)中斷后,立刻執(zhí)行一條匯編軟件斷點(diǎn)代碼:

BKPT  0

或者直接在中斷處理函數(shù)中加入代碼:

void HardFault_Handler(void)

這樣一來,一旦運(yùn)行到這個(gè)函數(shù),單片機(jī)就會(huì)馬上自動(dòng)停止運(yùn)行,而且你還可以通過stack窗口查看是從哪里跳進(jìn)這個(gè)函數(shù)的,這樣就能快速定位這種錯(cuò)誤了!只有在滿足條件下,才會(huì)在你設(shè)置斷點(diǎn)位置自動(dòng)停止在斷點(diǎn)處。比如一個(gè)條件下,會(huì)導(dǎo)致整個(gè)程序出問題,那么你可以在應(yīng)用程序中添加代碼,讓其在滿足條件時(shí)自動(dòng)停止運(yùn)行(前提是處于在線調(diào)試,否則沒有任何打印信息的情況下停止運(yùn)行是很麻煩的事情)。但有的時(shí)候,我只想讓軟件斷點(diǎn)在進(jìn)入調(diào)試模式時(shí)生效,正常運(yùn)行時(shí)不產(chǎn)生軟件斷點(diǎn),又該如何處理;換句話說,如何判斷單片機(jī)處于

調(diào)試模式

還是正常模式。

C語言版:

if(*((uint32_t*)0xE000EDF0)&0x00000001)//判斷是否工作在調(diào)試模式

匯編版:

DEMCREQU0xE000EDF0

適用于 STM32f1x or Cortex-M3/M4平臺,其他平臺自行研究。

pYYBAGMz-6WASO45AACuCnchhY8694.png

注意:下載程序時(shí)判斷也會(huì)成立,必須斷開調(diào)試器后再上電才可退出調(diào)試模式(或者其他方式退出調(diào)試模式)。

審核編輯:湯梓紅

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

    關(guān)注

    69

    文章

    4986

    瀏覽量

    87813
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7613

    瀏覽量

    137247
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4808

    瀏覽量

    68814
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    關(guān)于斷點(diǎn)的問題

    在CCS5中,如何設(shè)置斷點(diǎn),還有斷點(diǎn)列表的使用是如何的,硬件斷點(diǎn)軟件斷點(diǎn)的使用不同之處是什么?
    發(fā)表于 06-21 04:24

    cortex-m3軟件斷點(diǎn)/單步執(zhí)行的實(shí)現(xiàn)機(jī)制是什么?

    cortex-m3軟件斷點(diǎn)/單步執(zhí)行的實(shí)現(xiàn)機(jī)制是什么?
    發(fā)表于 01-26 07:22

    硬件斷點(diǎn)是什么?開發(fā)環(huán)境中的斷點(diǎn)軟件斷點(diǎn)嗎?

    硬件斷點(diǎn)是什么?用途?開發(fā)環(huán)境中的斷點(diǎn)軟件斷點(diǎn)嗎?
    發(fā)表于 10-18 06:19

    如何用縫衣針尋找導(dǎo)線斷點(diǎn)

    如何用縫衣針尋找導(dǎo)線斷點(diǎn)
    發(fā)表于 08-08 17:47 ?764次閱讀
    如何用縫衣針尋找導(dǎo)線<b class='flag-5'>斷點(diǎn)</b>

    VI調(diào)試(設(shè)置斷點(diǎn))

    【LabVIEW從入門到精通】2.4.2 VI調(diào)試(設(shè)置斷點(diǎn))
    發(fā)表于 01-08 15:44 ?0次下載

    python斷點(diǎn)調(diào)試方法

    本文主要介紹了python斷點(diǎn)調(diào)試方法,pdb 是 python 自帶的一個(gè)包,為 python 程序提供了一種交互的源代碼調(diào)試功能,主要特性包括設(shè)置斷點(diǎn)、單步調(diào)試、進(jìn)入函數(shù)調(diào)試、查看當(dāng)前代碼、查看棧片段、動(dòng)態(tài)改變變量的值等。
    發(fā)表于 01-14 10:44 ?7302次閱讀
    python<b class='flag-5'>斷點(diǎn)</b>調(diào)試方法

    python程序調(diào)試中設(shè)置條件斷點(diǎn)

    本文主要介紹了python程序調(diào)試中設(shè)置條件斷點(diǎn)。實(shí)際開發(fā)中,調(diào)試代碼通常要花費(fèi)比新編寫代碼更多的時(shí)間,選擇合理的調(diào)試方法和工具對于程序工作者來說很重要,一種更便捷更直觀的方式就是使用斷點(diǎn)調(diào)試。下文對此做了具體的分析供參考。
    發(fā)表于 01-14 11:39 ?6416次閱讀
    python程序調(diào)試中設(shè)置條件<b class='flag-5'>斷點(diǎn)</b>

    Studio 6.2中數(shù)據(jù)斷點(diǎn)分析介紹

    Atmel 開發(fā)軟件 Studio 最新版本6.2中包含的數(shù)據(jù)斷點(diǎn)工具簡介
    的頭像 發(fā)表于 07-09 01:04 ?2703次閱讀

    介紹六種判定電纜斷點(diǎn)的方法

    當(dāng)電纜或電纜的內(nèi)部出現(xiàn)斷點(diǎn)故障時(shí),由于外部絕緣皮的包裹,很難直觀的判斷出斷點(diǎn)的確定位置。
    的頭像 發(fā)表于 12-04 14:57 ?6428次閱讀

    解決IAR不能設(shè)置斷點(diǎn)的問題

    如何解決IAR不能設(shè)置斷點(diǎn)的問題
    的頭像 發(fā)表于 03-20 10:03 ?1.3w次閱讀
    解決IAR不能設(shè)置<b class='flag-5'>斷點(diǎn)</b>的問題

    cortex-m3軟件斷點(diǎn)/單步執(zhí)行的實(shí)現(xiàn)機(jī)制

    一.軟件斷點(diǎn)軟件斷點(diǎn)設(shè)置后,斷點(diǎn)處的代碼如果是存放在SRAM中,相應(yīng)的一條指令(C語言中的一行代碼可能對應(yīng)多條處理器指令)會(huì)被調(diào)試器(deb
    發(fā)表于 12-01 12:51 ?6次下載
    cortex-m3<b class='flag-5'>軟件</b><b class='flag-5'>斷點(diǎn)</b>/單步執(zhí)行的實(shí)現(xiàn)機(jī)制

    Segger的無限Flash斷點(diǎn)調(diào)試功能

    J-Link支持一項(xiàng)名為“無限Flash斷點(diǎn)”(Unlimited Flash Breakpoints)的調(diào)試功能。“無限Flash斷點(diǎn)”允許用戶在Flash中調(diào)試時(shí)設(shè)置無限數(shù)量的斷點(diǎn)。如果沒有此功能,在Flash中能夠設(shè)置的
    的頭像 發(fā)表于 05-07 09:54 ?2109次閱讀

    硬件斷點(diǎn)軟件斷點(diǎn)是什么

    在調(diào)試程序時(shí),可以通過斷點(diǎn)(Breakpoint)設(shè)置使程序暫停執(zhí)行的條件標(biāo)準(zhǔn)。當(dāng)特定的條件標(biāo)準(zhǔn)滿足時(shí),會(huì)暫停程序執(zhí)行。 斷點(diǎn)可分為兩大類:硬件斷點(diǎn)軟件
    的頭像 發(fā)表于 01-22 17:42 ?3164次閱讀
    硬件<b class='flag-5'>斷點(diǎn)</b>和<b class='flag-5'>軟件</b><b class='flag-5'>斷點(diǎn)</b>是什么

    GDB調(diào)試?yán)镌趺丛O(shè)置斷點(diǎn)

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 hellowld.c 為例介紹 GDB 的調(diào)試入門: 設(shè)置斷點(diǎn) ??disable?????????????????#?禁用所有斷點(diǎn)
    的頭像 發(fā)表于 10-04 16:10 ?1249次閱讀
    主站蜘蛛池模板: 狠狠色丁香婷婷综合久久片 | 精品一区二区影院在线| 色噜噜狠狠色综合欧洲selulu| 天堂网成人| 欧美性天天| 精品人人| 成人看片免费无限观看视频| 4hc44四虎www视频| 奇米狠狠操| a4yy私人毛片在线| 91av视频在线| 高清欧美一级在线观看| bt种子搜索在线| 天天爱添天天爱添天天爱添| 久久精品美女| 欧美黑人巨大xxx猛交| 亚洲精品老司机综合影院| 国产99在线| 四虎影院国产| 毛片小视频| a一级| 天堂在线最新版在线www| www.射| 欧美经典三级春潮烂漫海棠红| 一级毛片一片毛| 日韩成人黄色| 国产欧美日韩综合精品一区二区| 一级黄视频| 7777sq国产精品| 日本加勒比在线精品视频| 2018天天夜夜| 国产精品久久久久乳精品爆| 四虎永久免费网站入口2020| 毛片网页| 一级特黄aaa大片| 国产精品午夜寂寞视频| 亚洲无卡| 天天色姑娘| 狠狠色噜噜狠狠色综合久| 窝窝午夜看片| 欧美极品在线观看|