国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RISC-V/ARM mcu OpenOCD 調(diào)試架構(gòu)解析

這篇具有很好參考價(jià)值的文章主要介紹了RISC-V/ARM mcu OpenOCD 調(diào)試架構(gòu)解析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Risc-v/ARM mcu OpenOCD 調(diào)試架構(gòu)解析

最近有使用到risc-v的單片機(jī),所以了解了下risc-v單片機(jī)的編譯與調(diào)試環(huán)境的搭建,面試時(shí)問(wèn)到risc-v的調(diào)試可參看以下內(nèi)容。

risc-v根據(jù)官方的推薦,調(diào)試器服務(wù)是選擇OpenOCD,DopenOCD(開(kāi)放片上調(diào)試器)是一個(gè)開(kāi)源的片上調(diào)試器,旨在提供針對(duì)嵌入式設(shè)備的調(diào)試、系統(tǒng)編程和邊界掃描功能。OpenOCD的功能需要調(diào)試仿真器來(lái)輔助完成,調(diào)試仿真器是一個(gè)提供調(diào)試目標(biāo)電信號(hào)的小型硬件單元。常用的有JLINK、STLink等一些開(kāi)發(fā)板直接集成了調(diào)試仿真器.
基于openOCD的調(diào)試架構(gòu)如下圖所示:

risc-v調(diào)試器,嵌入式軟件,risc-v,arm開(kāi)發(fā),單片機(jī)

PC端可以是GDB編譯調(diào)試端或者是一個(gè)集成的IDE開(kāi)發(fā)環(huán)境,它包含了一個(gè)OpenOCD的驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)是根據(jù)具體芯片有所差別的,OpenOCD提供了一系列調(diào)試的接口,芯片廠生產(chǎn)的芯片要支持OpenOCD就需要做自己家的驅(qū)動(dòng)軟件,還有一部分的配置文件(xx.cfg)是用來(lái)在上層配置具體芯片型號(hào)和調(diào)試器硬件類型以及flash編程信息的。cfg文件分幾種類型如下:

interface :這些用于調(diào)試適配器。指定要使用的配置的文件 特定的JTAG,SWD和其他適配器在這里。
board :關(guān)于電路板,PWA,PCB,他們有很多名字。主板文件 包含特定于板的初始化項(xiàng)。
target :關(guān)于芯片?!皌arget ”目錄代表JTAG TAP。在芯片上 OpenOCD應(yīng)該控制哪個(gè),而不是一個(gè)板子。兩種常見(jiàn)的目標(biāo)類型 是ARM芯片和FPGA或CPLD芯片。當(dāng)一個(gè)芯片有多個(gè)TAP(也許它同時(shí)具有ARM和DSP內(nèi)核)時(shí), 目標(biāo)配置文件定義了所有這些。
可見(jiàn)OpenOCD的github: https://github.com/openocd-org/openocd

對(duì)比基于ARM內(nèi)核的調(diào)試架構(gòu),可以看到基本結(jié)構(gòu)類似,JLINK定義了一個(gè)軟件調(diào)試層面的RDI接口標(biāo)準(zhǔn),即Remote debug interface. Keil、IAR、ADS這些開(kāi)發(fā)環(huán)境按照RDI標(biāo)準(zhǔn)進(jìn)行定制,即可以支持JLINK調(diào)試。RDI底層使用USB傳輸,當(dāng)然,其他硬件接口也是可以的。ARM體系原先是支持JTAG硬件調(diào)試接口的,隨著cortex系列增加SWD調(diào)試規(guī)范,現(xiàn)在越來(lái)越多的調(diào)試器選擇SWD接口。其接線少,速率高,也比較穩(wěn)定。JTAG 20個(gè)口太占用pin資源了。JLINK V6開(kāi)始支持SWD,現(xiàn)在V8支持已經(jīng)足夠好了。

risc-v調(diào)試器,嵌入式軟件,risc-v,arm開(kāi)發(fā),單片機(jī)

兩種內(nèi)核的調(diào)試架構(gòu)基本換湯不換藥,都SEGGER和OpenOCD都提供了標(biāo)準(zhǔn)結(jié)構(gòu)給芯片廠,芯片廠基于自家的芯片實(shí)現(xiàn)接口,底層都是通過(guò)USB驅(qū)動(dòng)實(shí)現(xiàn)PC和調(diào)試器的通信,都包含下載算法的思路設(shè)計(jì)flash 編程方法。

下面就先看看,OpenOCD中的cfg文件配置方法吧,以stm32f4為例:

啟動(dòng)openocd服務(wù),需要指定interface和target(target和board可以選擇,最小系統(tǒng)板選target, 板載DRAM, 外部Flash的可以帶上board的cfg文件)

openocd -f D:\OpenOCD\share\openocd\scripts\interface\stlink-v2.cfg -f D:\OpenOCD\share\openocd\scripts\board\stm32f4discovery.cfg

配置risc-v內(nèi)核:

# script for stm32f4x family

#
# stm32 devices support both JTAG and SWD transports.
#
source [find target/swj-dp.tcl]
source [find mem_helper.tcl]

if { [info exists CHIPNAME] } {
   set _CHIPNAME $CHIPNAME
} else {
   set _CHIPNAME stm32f4x
}

set _ENDIAN little

# Work-area is a space in RAM used for flash programming
# By default use 32kB (Available RAM in smallest device STM32F410)
if { [info exists WORKAREASIZE] } {
   set _WORKAREASIZE $WORKAREASIZE
} else {
   set _WORKAREASIZE 0x8000
}

#jtag scan chain
if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   if { [using_jtag] } {
      # See STM Document RM0090
      # Section 38.6.3 - corresponds to Cortex-M4 r0p1
      set _CPUTAPID 0x4ba00477
   } {
      set _CPUTAPID 0x2ba01477
   }
}

swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu

tpiu create $_CHIPNAME.tpiu -dap $_CHIPNAME.dap -ap-num 0 -baseaddr 0xE0040000

if {[using_jtag]} {
   jtag newtap $_CHIPNAME bs -irlen 5
}

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -endian $_ENDIAN -dap $_CHIPNAME.dap

$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME stm32f2x 0 0 0 0 $_TARGETNAME

flash bank $_CHIPNAME.otp stm32f2x 0x1fff7800 0 0 0 $_TARGETNAME

flash bank $_CHIPNAME.otp stm32f2x 0x1fff7800 0 0 0 $_TARGETNAME
_WORKAREASIZE 是OpenOcd調(diào)試使用的ram空間,一般把flash的編程程序放在這里,然后需要編程的數(shù)據(jù)也放在這里面。

flash bank $_FLASHNAME stm32f2x 指定flash的名稱和驅(qū)動(dòng),這里如果需要適配自己廠家的芯片的話,flash驅(qū)動(dòng)是需要自己實(shí)現(xiàn)的,如果各位小伙伴,以后進(jìn)入MCU廠,這個(gè)flash驅(qū)動(dòng)時(shí)?必須要會(huì)的。關(guān)于驅(qū)動(dòng)的寫(xiě)法,阿目?有時(shí)間再介紹一篇文章,內(nèi)容比較多。

interface文件中?簡(jiǎn)單配置:

echo "WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg"
source [find interface/stlink.cfg]

只需要配置自己使用是哪個(gè)調(diào)試硬件平臺(tái)就好,這是使用的是stlink?。

windows ?powershell 運(yùn)行界面:

risc-v調(diào)試器,嵌入式軟件,risc-v,arm開(kāi)發(fā),單片機(jī)

risc-v調(diào)試器,嵌入式軟件,risc-v,arm開(kāi)發(fā),單片機(jī)

出現(xiàn)上述代表運(yùn)行正常。其中第一個(gè)cfg文件為stlink接口文件 因?yàn)橛玫挠布閟tlink,第二個(gè)cfg文件為板子對(duì)于芯片文件。stm32f407打開(kāi)另一個(gè)cmd或者powershell arm-none-eabi-gdb .\rt-thread.elf
這個(gè)時(shí)候第一個(gè)窗口會(huì)顯示:

risc-v調(diào)試器,嵌入式軟件,risc-v,arm開(kāi)發(fā),單片機(jī)

這里的調(diào)試截圖?來(lái)源,親測(cè)可用,感謝博主:利用openocd 在windows環(huán)境下GDB調(diào)試(調(diào)試器 stlinkv2)STM32_xpack-openocd 調(diào)試stlink-CSDN博客文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861313.html

到了這里,關(guān)于RISC-V/ARM mcu OpenOCD 調(diào)試架構(gòu)解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 國(guó)內(nèi) RISC-V 產(chǎn)學(xué)研基地成立,Intel、Arm、RISC-V 將三分天下?

    國(guó)內(nèi) RISC-V 產(chǎn)學(xué)研基地成立,Intel、Arm、RISC-V 將三分天下?

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在IT界,CPU芯片和操作系統(tǒng)是網(wǎng)信領(lǐng)域最基礎(chǔ)的核心技術(shù)。但在芯片領(lǐng)域,技術(shù)和資本的門(mén)檻較高,應(yīng)用范圍最廣的指令集架構(gòu)需獲得專利授權(quán)才能使用,如x86、Arm等。而投入研發(fā)的資金,以14nm工藝為例,需上億元的研發(fā)費(fèi)用。 如何降

    2024年01月17日
    瀏覽(22)
  • RISC-V和ARM

    參考:https://www.eet-china.com/mp/a39867.html RISC-V和ARM都是基于**精簡(jiǎn)指令集計(jì)算 (RISC)**原理建立的指令集架構(gòu)。他們的主要區(qū)別在于他們的授權(quán)模式和開(kāi)放性: ARM 是一種專有的指令集架構(gòu),眾多使用ARM架構(gòu)的廠商,只能根據(jù)自身需求,調(diào)整產(chǎn)品頻率和功耗,不得改變?cè)性O(shè)計(jì)。

    2024年02月19日
    瀏覽(20)
  • RISC-V與ARM的比較

    RISC-V與ARM的比較

    RISC-V與ARM的比較 RISC-V和ARM是近年來(lái)受到廣泛關(guān)注的兩種處理器架構(gòu)。RISC-V是一個(gè)開(kāi)源指令集架構(gòu)(ISA)基于精簡(jiǎn)指令集計(jì)算(RISC)原則。而ARM指令集架構(gòu)是一個(gè)專有ISA,其較早出現(xiàn),經(jīng)過(guò)多年的發(fā)展,獲得了廣泛的聲譽(yù),已成為嵌入式系統(tǒng)和移動(dòng)設(shè)備中主流ISA。 比較這兩種

    2024年02月02日
    瀏覽(23)
  • CoreMark 跑個(gè)分:RISC-V vs ARM

    CoreMark 跑個(gè)分:RISC-V vs ARM

    EEMBC 的 CoreMark? 評(píng)分是一種比較通用的基準(zhǔn)測(cè)試方式,用于測(cè)量嵌入式系統(tǒng)中使用的微控制器(MCU)和中央處理單元(CPU)的性能,可以幫助人們比較不同的 CPU 架構(gòu)的性能表現(xiàn)。 一、簡(jiǎn)介: CoreMark 取代了過(guò)時(shí)的 Dhrystone 基準(zhǔn)測(cè)試,并包含以下算法的實(shí)現(xiàn):列表處理(查找和

    2024年02月10日
    瀏覽(34)
  • RISC-V— 架構(gòu)基礎(chǔ)知識(shí)學(xué)習(xí)

    RISC-V— 架構(gòu)基礎(chǔ)知識(shí)學(xué)習(xí)

    CPU ,全稱為 中央處理器單元 ,簡(jiǎn)稱為 處理器 。 ARM (Advanced RISC Machines )是一家誕生于英國(guó)的處理器設(shè)計(jì)與軟件公司,總部位于英國(guó)的劍橋,其主要業(yè)務(wù)是設(shè)計(jì) ARM 架構(gòu)的處理器,同時(shí)提供與 ARM 處理器相關(guān)的配套軟件,各種 Soc 系統(tǒng) IP 、物理 IP 、 GPU 、視頻和顯示等產(chǎn)品。

    2024年02月08日
    瀏覽(18)
  • RISC-V是如何與X86、ARM三分天下

    RISC-V是如何與X86、ARM三分天下

    目錄 1.行業(yè)CPU指令集格局 2.汽車(chē)中的RISC-V進(jìn)展 2.1 國(guó)際進(jìn)展 2.2 國(guó)內(nèi)進(jìn)展 3.小結(jié) 2023年3月2日,在平頭哥牽頭舉辦的玄鐵RISC-V生態(tài)大會(huì)上,工程院院士倪光南表示,基于RISC-V模塊化、可擴(kuò)展、容易定制、不受壟斷制約等優(yōu)勢(shì),成為了中國(guó)CPU領(lǐng)域最受歡迎的架構(gòu)。 那么RISC-V到底是

    2024年01月15日
    瀏覽(31)
  • RISC-V架構(gòu)的開(kāi)源處理器分析

    摘要: RISC-V架構(gòu)本身面積小、性能較高,最為關(guān)鍵的是這一架構(gòu)本身功耗較低且作為全新的開(kāi)源精簡(jiǎn)指令集,無(wú)論是技術(shù)還是產(chǎn)品都得到了迅速的發(fā)展,效果突出?;诖?,本文深入研究RISC-V架構(gòu)開(kāi)源處理器內(nèi)部情況,明確不同模塊的功能以及運(yùn)行方式,并且圍繞著實(shí)際案例

    2024年02月06日
    瀏覽(25)
  • 基于硬件隔離增強(qiáng)risc-v調(diào)試安全2_安全提議

    基于硬件隔離增強(qiáng)risc-v調(diào)試安全2_安全提議

    安全之安全(security2)博客目錄導(dǎo)讀 2023 RISC-V中國(guó)峰會(huì) 安全相關(guān)議題匯總 說(shuō)明:本文參考RISC-V 2023中國(guó)峰會(huì)如下議題,版權(quán)歸原作者所有。

    2024年02月10日
    瀏覽(24)
  • 基于硬件隔離增強(qiáng)risc-v調(diào)試安全1_問(wèn)題描述

    基于硬件隔離增強(qiáng)risc-v調(diào)試安全1_問(wèn)題描述

    安全之安全(security2)博客目錄導(dǎo)讀 2023 RISC-V中國(guó)峰會(huì) 安全相關(guān)議題匯總 說(shuō)明:本文參考RISC-V 2023中國(guó)峰會(huì)如下議題,版權(quán)歸原作者所有。 ? /

    2024年02月10日
    瀏覽(19)
  • 19|RISC-V指令精講(四):跳轉(zhuǎn)指令實(shí)現(xiàn)與調(diào)試

    19|RISC-V指令精講(四):跳轉(zhuǎn)指令實(shí)現(xiàn)與調(diào)試

    你好,我是LMOS。 前面我們學(xué)習(xí)了無(wú)條件跳轉(zhuǎn)指令,但是在一些代碼實(shí)現(xiàn)里,我們必須根據(jù)條件的判斷狀態(tài)進(jìn)行跳轉(zhuǎn)。比如高級(jí)語(yǔ)言中的if-else 語(yǔ)句,這是一個(gè)典型程序流程控制語(yǔ)句,它能根據(jù)條件狀態(tài)執(zhí)行不同的代碼。這種語(yǔ)句落到指令集層,就需要有根據(jù)條件狀態(tài)進(jìn)行跳轉(zhuǎn)

    2024年01月22日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包