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

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

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

3天內不再提示

Segger的無限Flash斷點調試功能

strongerHuang ? 來源:麥克泰技術 ? 作者:麥克泰技術 ? 2022-05-07 09:54 ? 次閱讀

嵌入式應用的開發過程中,雖然良好的編程實踐和配合適當的編碼規范檢測軟件能夠減少代碼編寫階段中出現的錯誤數量,但仍然不可避免的會出現一些只有在程序運行過程中才會觸發的錯誤。為了解決程序運行過程中的問題,需要使用調試器,觀察代碼的執行及軟件狀態變化。

在程序調試的過程中,斷點的重要性不言而喻。在調試狀態下,當程序遇到斷點時,會停止執行并將控制權交給調試軟件,調試器可以顯示當前應用程序的狀態,包括變量和寄存器的值,內存、堆棧使用情況,顯示應用程序到達斷點位置的函數調用關系等,這些信息可以幫助開發人員分析程序的執行狀況是否符合預期,并在問題出現時幫助確定錯誤原因。

常見的調試方法

(1)在RAM區域內調試

在開發過程中,可以將應用程序下載到RAM運行和調試,調試器只需使用簡單的斷點指令,且RAM允許多次讀取和寫入,RAM區域內的斷點指令不會對程序執行產生明顯的影響。但該方法的局限是MCU所擁有的RAM空間通常較小,應用較大時,無法在RAM進行調試。

(2)在Flash區域內調試

與RAM不同,Flash存儲空間通常較大,當無法在RAM調試時只能在Flash區域內進行調試。微控制器設計人員提供了用于在Flash區域調試時使用的硬件斷點,硬件斷點會將PC指針與斷點位置進行比較,并檢查指令是否被調用,當斷點處指令被調用時,程序將停止并啟動調試器。硬件斷點的數量由芯片所使用的內核決定,在ARM7和ARM9內核中僅包含2個硬件斷點,在Cortex-M3和M4內核中包含4-6個可用的硬件斷點。在調試過程中,當硬件斷點數量用完時則無法添加新的斷點,只能取消前面添加的斷點后才能添加新的斷點,這無疑將嚴重影響程序開發效率。

(3)外擴Flash存儲芯片調試

當所開發的應用程序的復雜度進一步上升時,可能會使用到外擴的Flash存儲,那么此時該如何進行應用程序調試呢?在大多數使用Cortex-M內核的微控制器中,芯片內部提供的硬件斷點在調試過程中能夠生效的地址范圍是有限的,當使用外擴Flash時,自帶的硬件斷點將無法在外擴Flash存儲的地址范圍內生效,此時將無法在這些區域內設置斷點來調試應用程序。

當使用基于地址映射擴展的外部Flash存儲時,Segger J-Link產品所支持的無限Flash斷點功能能夠幫助我們對片外Flash添加斷點并調試。

Segger無限Flash斷點功能

J-Link支持一項名為“無限Flash斷點”(Unlimited Flash Breakpoints)的調試功能。“無限Flash斷點”允許用戶在Flash中調試時設置無限數量的斷點。如果沒有此功能,在Flash中能夠設置的斷點數量限制為CPU調試單元支持的硬件斷點數。

J-Link的“無限Flash斷點”適用于片內和外擴的Flash,包括通過內存映射添加的QSPI閃存。

acb3e97e-cd9e-11ec-bce3-dac502259ad0.png

無限Flash斷點的實現方式

Segger J-Link系列產品在實現無限Flash斷點功能時,會使用硬件和軟件斷點的混合,來盡可能的減少對于Flash的影響。當硬件斷點數量用完再添加新斷點時,Segger軟件將對斷點所在位置的Flash區塊進行重新編程來添加斷點。

雖然Flash存在一定的寫入次數限制,但Segger在實現該功能時已經做了大量針對性的優化來減少對于Flash的影響,例如處于同一區塊內的多個斷點,Segger將通過一次該Flash區塊的重編編程來完成多個斷點的添加。Segger僅在必要時才會對Flash區塊進行重編程,部分操作將通過內置的指令集模擬器來完成,從而能夠盡可能的減少對于Flash閃存的影響。

Segger的無限Flash斷點調試功能解除了硬件斷點對于程序調試的限制,能夠提升開發人員的開發效率。對于Cortex-M內核芯片添加了外擴Flash的情形,無限Flash斷點功能則可能是僅有的片外Flash調試解決方案。

審核編輯 :李倩

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

    關注

    10

    文章

    1642

    瀏覽量

    148687
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1369

    瀏覽量

    115029
  • 斷點
    +關注

    關注

    0

    文章

    12

    瀏覽量

    7730

原文標題:如何使用J-Link無限Flash斷點功能調試應用?

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

收藏 人收藏

    評論

    相關推薦

    單片機Debug工具性能對比 單片機調試常用命令

    。以下是對單片機調試工具性能的簡要對比以及一些常用的調試命令。 單片機Debug工具性能對比 Keil uVision 性能 :Keil uVision 是一款功能強大的集成開發環境(IDE),支持多種單片機,特別是ARM Co
    的頭像 發表于 12-19 09:56 ?482次閱讀

    【敏矽微ME32G070開發板免費體驗】使用JLINK的RTT功能實現類似串口printf打印功能

    . 什么情況下需要用到J-Link RTT打印輸出調試信息?主要是當我目當前沒有功能正常的串口,但引出了SWD燒錄口,并且需要輸出一些log進行調試驗證等,這時我們可以通過SWD口,用Jlink工具讀取
    發表于 12-15 20:30

    SEGGER為J-Link和Flasher提供Device Provisioner工具

    日前,SEGGER宣布為其Flasher系列編程器以及J-Link和J-Trace系列調試跟蹤工具提供Device Provisioner工具。
    的頭像 發表于 10-22 15:12 ?495次閱讀

    網關斷點續傳可以實現什么功能

    在數字化時代,數據傳輸的效率和穩定性成為了衡量信息系統性能的重要指標之一。隨著云計算、大數據、物聯網等技術的飛速發展,數據量的爆炸性增長對數據傳輸技術提出了更高要求。在這樣的背景下,網關斷點續傳功能
    的頭像 發表于 10-16 13:53 ?312次閱讀

    兆易創新和SEGGER探索MCU開發的無限可能

    2023年12月,兆易創新(GigaDevice)與業界著名工具鏈廠商德國SEGGER Microcontroller GmbH(以下簡稱“SEGGER”)向所有使用GD32V系列RISC-V
    的頭像 發表于 08-22 09:51 ?1144次閱讀

    SEGGER編譯器優化和安全技術介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制器設計的優化C/C++編譯器。它建立在強大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸優化:通過調整
    的頭像 發表于 06-04 15:31 ?1528次閱讀
    <b class='flag-5'>SEGGER</b>編譯器優化和安全技術介紹 支持最新C和C++語言

    AG32 下使用 Segger RTT

    SEGGER RTT: RTT 是一種調試手段。 它可以從 MCU 快速輸出調試信息和數據,且不影響 MCU 的實時性。 在代碼中對 printf 輸出進行重定向后,就可以通過仿真器(jlink 或
    發表于 05-29 09:44

    瑞薩Smart Configurator支持SEGGER集成開發工具

    SEGGER與瑞薩電子(Renesas Electronics)近日宣布達成重要合作,SEGGER的集成開發工具Embedded Studio現已無縫融入瑞薩電子的Smart
    的頭像 發表于 05-10 14:25 ?834次閱讀

    STM32G031K8程序打斷點在STARTUP.S文件中,停在斷點處會導致操作flash錯誤怎么解決?

    特殊,默認會寫一點內容在FLASH里面,以前看到有人在原版說明上有個截圖。我試過,與FLASH有關的操作,不使用斷點就正常。當然為了調試方便,可以換個編譯器或者在原版說明上找個變通的方
    發表于 03-25 07:38

    FX3有辦法讓SDK1.3.5與JTAG調試器配合使用嗎?

    使用 Segger J- 6EDL_SPI_LINK GDB 服務器的調試配置。 我看到控制臺中打印了多個錯誤,如下所示: 827^error,msg=\"Dwarf Error:無法找到從
    發表于 03-06 07:56

    XMC4108想通過中斷斷點逐步調試,但中斷斷點不起作用怎么解決?

    我正在使用DAVE? EVAL_16W_66V_BCK_CE IDE,我在 XMC4108 控制器中遇到一個問題。 調試時,它不會觸及中斷的斷點。 它是直接運行程序的,我想通過中斷斷點逐步調試
    發表于 03-05 08:16

    小鵬汽車面向智駕經驗用戶即刻推送無限XNGP智能輔助駕駛功能

    3月1日消息,日前,小鵬汽車正式宣布,面向智駕經驗用戶即刻推送無限XNGP智能輔助駕駛功能
    的頭像 發表于 03-04 13:50 ?923次閱讀

    關于使用SEGGER JLink在CX3自定義主板上調試的疑問求解

    ;quot; 上設置斷點,我就能看到調試器可以在 " cycx3AppDebuginit () " 也就是 " cycx3AppInit
    發表于 02-23 06:21

    雅特力AT32 MCU與SEGGER攜手合作,開發量產事半功倍

    近日,雅特力與SEGGER共同宣布J-Link仿真調試器與Flasher在線燒錄器全面支持AT32MCU產品,SEGGER工具鏈的加持使AT32MCU開發如虎添翼。雅特力自2018年對外銷售以來
    的頭像 發表于 02-22 08:13 ?538次閱讀
    雅特力AT32 MCU與<b class='flag-5'>SEGGER</b>攜手合作,開發量產事半功倍

    請問UDE調試有些函數前面是不能設置斷點的嗎?

    如下函數不能設置斷點:IfxPort_togglePin( MODULE_P33, 8);IfxStm_waitTicks( MODULE_STM0, 5000000);
    發表于 02-20 06:55
    主站蜘蛛池模板: 不卡一区二区在线观看 | 欧美影院入口 | 四虎影酷| 国产一区二区三区 韩国女主播 | 四虎国产精品永久在线播放 | 成人精品在线观看 | 一级特黄aaa大片大全 | 高清不卡毛片免费观看 | 丁香婷婷在线观看 | 亚洲嫩草影院在线观看 | 欧美午夜视频在线 | 俄罗斯小屁孩cao大人免费 | 久久天天躁狠狠躁夜夜 | 国产精品亚洲四区在线观看 | 中文字幕一区二区三区四区 | 4hu影院最新地址www | 欧美爽妇| 一级中文字幕乱码免费 | xxx69欧美| 欧美一级日韩一级亚洲一级 | 国产成人精品一区 | 天天干在线观看 | 天天操夜夜摸 | 免费视频一区二区性色 | 欧美一级特黄视频 | 香蕉久久夜色精品国产2020 | 成人在线亚洲 | 日本三黄色大 | 亚洲 欧美 另类 综合 日韩 | 国产手机看片 | 欧美日韩免费大片 | 欧美高清在线播放 | 亚洲三级在线视频 | 欧美午夜在线观看 | 色站在线 | 日本加勒比高清一本大道 | 国产三级自拍视频 | 欧美xxxx性疯狂bbbb | 亚洲午夜久久久久久91 | 亚洲精品午夜久久aaa级久久久 | 九色国产在视频线精品视频 |