日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARM Cortex-M 调试器 - 基础知识

發布時間:2024/1/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM Cortex-M 调试器 - 基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • Processor memory map
  • 內核寄存器
  • SFR(特殊功能寄存器)
    • 0xE000E000-0xE000ED8F (CPUID/AIRCR)
    • 0xE000EF00-0xE000EFFF
  • Core Debug
    • DBG_HCSR: 0xE000EDF0
    • DBG_CRSR: 0xE000EDF4
    • DBG_CRDR: 0xE000EDF8
    • DBG_EMCR: 0xE000EDFC
  • DP- Debug Port
    • DP0_ABORT (0x00 SW W)
    • DP0_IDCODE (0x00 SW R)
    • DP4_CTRL/STAT (0x04 SW W/R)
    • DP8_SELECT (0x08 SW W)
    • DP8_RESEND register 0x08 (SW R)
    • DPc_RDBUFF register 0x0C (SW R)
  • AP Access Port
    • AP0_CSW (Control and Status Word Register) 0x00
    • AP4_TAR (Transfer Address Register) 0x04~08
    • APc_DRW (Data Read/Write Register) 0x0C
    • AP_BDR0-3 (Banked Data Registers 0-3)
    • AP_DRAR (Debug ROM Address Register)
    • IDR (ID Register)
  • System Debug
  • AHB-AP
    • CSW 0x00
    • TAR 0x04~08
    • DRW 0x0C
    • Bandked Data 4 0x10-0x1C
    • Debug ROM Address 0xF8
    • IDR 0xFC
  • SWD 時序
  • MCU連接過程
    • 1. SWD初始化
    • 2. 解鎖 AP
  • MCU 讀寫操作
  • MM32-LINK 測試(MT304)
    • 1. SWD Connect: read DP_IDCODE
    • 2. Set DP_CTRL/STAT PWR UP
    • 3. Read CPUID(`0xE000_ED00`)
    • 4. Unknow: Read from 0xE000_1028/38/48/58
    • 5. DBG_HCSR(`0xE000_EDF0`) = 0xA05F_0003, Halt CPU, DBG_EN
    • 7. DBG_EMCR(`0xE000_EDFC`) = 0x0100_0001, Catch Reset & Trace
    • 8. DBG_AIRCR(`0xE000_ED0C`) = 0x05FA_0004, SYS_RST_REQ
    • 9. nRST = 0. dalay xxms
    • 10. nRST = 1. delay 20ms
    • 11. read DBG_HCSR(`0xE000_EDF0`) 3times
    • 12. DBG_EMCR(`0xE000_EDFC`) = 0x0100_0000, Trace(3 times)
    • while true: step11 cycle
  • 總結


推薦博文1: SWD協議通信的簡單總結

前言

根據《ARM Technical Reference Manual cortex_m3_r1p1_trm》和《Arm? Debug Interface Architecture Specification ADI v6.0.pdf》進行梳理。


Processor memory map

內核寄存器

Cortex-M3 處理器實現了ARM v7-M架構。這包括整個 16 位的Thumb指令集和基本的 Thumb-2 32位指令集架構。處理器無法執行ARM指令。

  • Thumb 指令集是 ARM 指令集的一個子集,被重新編碼為 16 位。它支持更高的代碼密度和具有 16 位寬或 16 位窄的內存數據總線的系統。
  • Thumb-2 是對 Thumb 指令集體系結構(ISA)的一個主要增強。Thumb-2 支持比 Thumb 更高的代碼密度,并提供更高的性能。

The processor has the following 32-bit registers:

  • 13 General-Purpose Registers, r0-r12
  • Stack Point alias of banked registers, SP_process & SP_main. SP
  • Link Register, r14
  • Program Counter, r15
  • one Program Status Register, xPSR.

R16寄存器 xPSR

Special-purpose Program Status Registers,系統級的處理器狀態分為三類:

  • Application 應用程序PSR

  • Interrupt 中斷PSR

  • Execution 執行 PSR

SFR(特殊功能寄存器)

0xE000E000-0xE000ED8F (CPUID/AIRCR)

NVIC register map:

  • 0xE000E000 - 0xE000E00F. Interrupt Type Register
    • 0xE000E004 Interrupt Control Type Register r
  • 0xE000E010 - 0xE000E0FF. System Timer
    • 0xE000E010 SysTick Control and Status Register r/w
    • 0xE000E014 SysTick Reload Value Register r/w
    • 0xE000E018 SysTick Current Value Register r/wc
    • 0xE000E01C SysTick Calibration Value Register r
  • 0xE000E100 - 0xE000ECFF. NVIC
    • 0xE000E100 Irq 0 to 31 Set Enable Register r/w
    • 0xE000E11C Irq 224 to 239 Set Enable Register r/w
    • 0xE000E180 Irq 0 to 31 Clear Enable Register r/w
    • 0xE000E19C Irq 224 to 239 Clear Enable Register r/w
    • 0xE000E200 Irq 0 to 31 Set Pending Register r/w
    • 0xE000E21C Irq 224 to 239 Set Pending Register
    • 0xE000E280 Irq 0 to 31 Clear Pending Register
    • 0xE000E29C Irq 224 to 239 Clear Pending Register
    • 0xE000E300 Irq 0 to 31 Active Bit Register
    • 0xE000E31C Irq 224 to 239 Active Bit Register
    • 0xE000E400 Irq 0 to 31 Priority Register
    • 0xE000E4F0 Irq 236 to 239 Priority Register
  • 0xE000ED00 - 0xE000ED8F. SCB
    System Control Block, 包括:CPUID \ System Control, Configuration & Status\ Fault reporting.
    • 0xE000ED00 CPUID Base Register r
    • 0xE000ED04 Interrupt Control State Register r/w
    • 0xE000ED08 Vector Table Offset Register r/w
    • 0xE000ED0C Application Interrupt/Reset Control Register r/w
    • 0xE000ED10 System Control Register r/w
    • 0xE000ED14 Configuration Control Register r/w
    • Fault reporting

1. CPUID 0xE000ED00

  • m3_r1p1 復位值為 0x411FC231

    根據 CPUID 識別 ARM 內核:
  • bit [31:24]: 0x41 = ARM
  • bit [23:20]: variant number
  • bit [19:16]: 0xF
  • bit[15:14]: b11= Cortex Family
  • bit[13:12]: b00 = version
  • bit[11:10]: b00 = reserved
  • bit[9:8]: b10 = M(v7-M)
  • bit[7:4]: b0011 = Cortex-M3. Family member
  • bit [3:0]: revision numer

通過對ARM 全系列CPUID進行整理,可得:

Part No.Core
0xC20Cortex-M0
0xC21Cortex-M1
0xC23Cortex-M3
0xC24Cortex-M4
0xC27Cortex-M7
0xC60Cortex-M0+
0xD20Cortex-M23
0xD21Cortex-M33
0xD22Cortex-M55

2. AIRCR 0xE000ED0C

應用程序中斷和復位控制寄存器 (Application Interrupt/Reset Control Registe)

  • [31:16] VECTKEY 。寄存器鍵。寫入這個寄存器需要在 VECTKEY 字段中輸入 0x05FA。否則,寫值將被忽略。
  • [31:16] VECTKEYSTAT。讀入 0xFA05
  • [15] ENDIANESS。數據字節順序。ENDIANESS 在復位時從大端輸入端口采樣。您不能在重置之外更改 ENDIANESS
    • 1 =大端
    • 0 =小端
  • [14:11] reserved
  • [10:8] 中斷優先級分組字段: PRIGROUP 字段是一個二進制點位指示符,用于為具有相同搶占級別的異常創建子優先級
  • [2] SYSRESETREQ:導致向外部系統斷言一個信號,表明請求復位
    用于強制除調試外的所有主要組件的大型系統重置。設置此位不會阻止“Halting Debug ”運行
  • [1] VECTCLRACTIVE:清除活動向量位:
    • 1 清除所有活動NMI、故障、中斷的狀態信息
    • 0 =不清除
      重新初始化堆棧是應用程序的責任。該位用于在調試期間返回到已知狀態。(自動清零)該操作不會清除IPSR。因此,如果應用程序使用它,它必須只能在基本激活級別上使用,或者在可以設置活動位的系統處理程序中使用
  • [0] VECTRESET:系統復位。重置系統,除調試組件外:
    • 1 =復位系統
    • 0 =不重啟系統
      VECTRESET 位會自動清除。Reset清除 VECTRESET 位。對于調試,只有當core 被 halted 時才寫入此位。
      *注意:
      SYSRESETREQ 由系統復位清除,這意味著同時斷言 VECTRESET 可能會導致 SYSRESETREQ 在寫入的同一周期內被清除。 這可能會阻止外部系統看到 SYSRESETREQ。 因此,建議獨占使用 VECTRESET 和 SYSRESETREQ,切勿兩者同時寫 1。

0xE000EF00-0xE000EFFF

  • 0xE000EF00 - 0xE000EF0F. Software Trigger Exception Register
    • 0xE000EF00 Software Trigger Interrupt Register w
    • 0xE000EFD0 Peripheral identification register (PID4) r
    • 0xE000EFDC Peripheral identification register (PID7)
    • 0xE000EFE0 Peripheral identification register Bits 7:0 (PID0) r
    • 0xE000EFEC Peripheral identification register Bits 31:24 (PID3)
    • 0xE000EFF0 Component identification register Bits 7:0 (CID0)
    • 0xE000EFFC Component identification register Bits 31:24 (CID3)
  • 0xE000EFD0 - 0xE000EFFF. ID Space

Core Debug

核心調試通過核心調試寄存器訪問。對這些寄存器的調試訪問是通過高級高性能總線(AHB-AP)端口進行的.處理器可以通過內部的私有外圍總線(PPB)直接訪問這些寄存器。

Halt mode debugging / 內核 Halt 狀態下的調試方法

  • 調試器可以通過設置調試暫停控制和狀態寄存器的 C_DEBUGEN 和 C_HALT 位來暫停內核。 內核通過設置調試停止控制和狀態寄存器的 S_HALT 位在停止時進行確認。
  • 通過暫停內核,將 C_STEP 位設置為 1,然后將 C_HALT 位清除為 0,內核可以單步執行。內核通過設置 DBG_HCSR.S_HALT 位確認單步完成并重新暫停。

退出內核調試

  • Core 可以通過清除調試停止和狀態寄存器中的 C_DEBUGEN 位來退出停機調試。

DBG_HCSR: 0xE000EDF0

  • C_Halt: Halts the core.
    暫停核心。當核心停止時,該位是自動設置的。例如斷點。此位在核心重置時清除。該位只能在 C_DEBUGEN 為 1 時寫入,否則將被忽略。當設置該位為 1 時,C_DEBUGEN 也必須以相同的值寫入1 (值[1:0]為 2’b11)。核心可以停止自己,但只有當 C_DEBUGEN 已經是 1 并且只有當它使用 b11 進行寫操作時)。

  • C_DebugEN:Enables debug.
    啟用調試。這只能由 AHB-AP 編寫,而不是由 core 編寫。它在內核寫入時被忽略,內核不能設置或清除它。當寫入 C_HALT 來停止自身時,核心必須向它寫入 1。
    READ:

  • S_REGRDY:
    調試內核寄存器選擇器寄存器上的寄存器讀/寫可用。 最后一次傳輸完成。

  • S_HALT
    當 S_HALT 為高時,內核處于調試狀態

  • S_SLEEP
    表示內核正在休眠.WFI、WFE 或 SLEEP-ON-EXIT, 必須使用 C_HALT 來獲得控制權或等待中斷喚醒。

  • S_LOCKUP:
    如果內核正在運行(未停止)并且存在鎖定條件,則讀取為 1。

  • S_RETIRE_ST: Indicates that an instruction has completed since last read. This is a sticky bit that clears on read. This determines if the core is stalled on a load/store or fetch. 表示自上次讀取后指令已完成。 這是一個在讀取時清除的粘性位。 這確定核心是否在加載/存儲或獲取時停止。

  • S_RESET_ST
    表示自從上次讀取該位以來,內核已被復位或正在被復位。 這是一個在讀取時清除的粘性位。 因此,讀取兩次并得到 1 然后 0 意味著它在過去被重置。 讀取兩次并獲得 1 意味著它現在正在重置(仍然保持在重置狀態)。

DBG_CRSR: 0xE000EDF4

DBG_CRDR: 0xE000EDF8

DBG_EMCR: 0xE000EDFC

  • VC_CoreReset: Reset Vector Catch.
    復位向量。如果內核 Core 發生復位,停止正在運行的系統
  • TRCENA:
    該位必須設置為 1 以啟用跟蹤和調試塊:數據觀察點和跟蹤 (DWT)/儀器跟蹤宏單元 (ITM)/嵌入式跟蹤宏單元 (ETM)/跟蹤端口接口單元(TPIU). 除非需要跟蹤,否則這可以控制電源使用。 應用程序可以啟用此功能,供 ITM 使用或由調試器使用。
    注意:如果 TIEOFF_TRCENA 定義在實施期間在 CM3Defs.v 中未注釋,則無法設置 TRCENA。
  • MON_REQ:
    這使監視器能夠確定其喚醒的原因:1 =由 MON_PEND; 0 = debug異常喚醒。
  • MON_STEP:
    當 MON_EN = 1 時,這會步進內核。 當 MON_EN = 0 時,該位被忽略。 這相當于 C_STEP。 中斷僅根據監視器的優先級和 PRIMASK、FAULTMASK 或 BASEPRI 的設置進行步進。
  • MON_PEND:
    當優先級允許時,掛起監視器以激活。 這可以通過 AHB-AP 端口喚醒顯示器。 它等效于用于監視器調試的 C_HALT。該寄存器不會在系統復位時復位。 它只能通過上電復位來復位。 復位處理程序或更高版本中的軟件,或由 DAP 提供的軟件必須啟用調試監視器。
  • MON_EN:Enable the debug monitor.
    啟用調試監視器。 啟用后,系統處理程序優先級寄存器控制其優先級。 如果禁用,則所有調試事件都會進入硬故障。 調試停止控制和狀態寄存器中的 C_DEBUGEN 覆蓋該位。矢量捕獲是半同步的。 當看到匹配事件時,請求停止。 因為處理器只能在指令邊界上停止,它必須等到下一個指令邊界。 結果,它在異常處理程序的第一條指令處停止。 但是,當向量捕獲已觸發時,存在兩種特殊情況:- 如果在向量化、向量讀取或堆棧推送錯誤期間發生故障,則在或響應的故障處理程序上發生停止,用于向量錯誤或堆棧推送。- 如果在引導過程中出現遲到的中斷,則不接受。 也就是說,在這種情況下,支持延遲到達優化的實現必須抑制它。
  • VC_HARDERR: Debug trap on Hard Fault
  • VC_INTERR: Debug Trap on interrupt/exception service errors. These are a subset of
    other faults and catches before BUSERR or HARDERR.
  • VC_BUSERR: Debug Trap on normal Bus error.
  • VC_STATERR:Debug trap on Usage Fault state errors
  • VC_CHKERR:Debug trap on Usage Fault enabled checking errors.
  • VC_NOCPERR:Debug trap on Usage Fault access to Coprocessor which is not present
    or marked as not present in CAR register.
  • VC_MMERR:Debug trap on Memory Management faults.
  • VC_CORERESET
    重置向量捕獲。 如果發生核心重置,則停止運行系統。僅當 C_DEBUGEN = 1 時可用。

該寄存器不會在系統復位時復位。該寄存器由上電復位復位。 位 [19:16] 總是在內核復位時清零。調試監視器由復位處理程序或更高版本中的軟件啟用,或者由 AHB-AP 端口啟用。
矢量捕獲是半同步的。 當看到匹配事件時,請求停止。 因為處理器只能在指令邊界上停止,它必須等到下一個指令邊界。 結果,它在異常處理程序的第一條指令處停止。 但是,當向量捕獲已觸發時,存在兩種特殊情況:- 如果在向量讀取或堆棧推送錯誤期間發生故障,則在向量錯誤或堆棧推送的相應故障處理程序上發生暫停。- 如果在向量讀取或堆棧推入錯誤期間檢測到遲到中斷,則不接受。 也就是說,在這種情況下,支持遲到優化的實現必須抑制它。
矢量捕獲只能用于停止調試。高16位是用于監控控制,低16位是暫停、異常支持。

DP- Debug Port

#define DP_IDCODE 0x00U // IDCODE Register (SW Read only) #define DP_ABORT 0x00U // Abort Register (SW Write only) #define DP_CTRL_STAT 0x04U // Control & Status #define DP_WCR 0x04U // Wire Control Register (SW Only) #define DP_SELECT 0x08U // Select Register (JTAG R/W & SW W) #define DP_RESEND 0x08U // Resend (SW Read Only) #define DP_RDBUFF 0x0CU // Read Buffer (Read Only)

DP0_ABORT (0x00 SW W)

  • ORUNERRCLR, bit[4]
    要將 CTRL/STAT.STICKYORUN 溢出錯誤位清除為 0b0,請將 0b1 寫入該位。
    To clear the CTRL/STAT.STICKYORUN overrun error bit to 0b0, write 0b1 to this bit.
  • WDERRCLR, bit[3]
    要將 CTRL/STAT.WDATAERR 寫入數據錯誤位清除到 0b0,請將 0b1 寫入該位。
    To clear the CTRL/STAT.WDATAERR write data error bit to 0b0, write 0b1 to this bit.
  • STKERRCLR, bit[2]
    要將 CTRL/STAT.STICKYERR 粘滯錯誤位清除為 0b0,請將 0b1 寫入該位。
    To clear the CTRL/STAT.STICKYERR sticky error bit to 0b0, write 0b1 to this bit.
  • STKCMPCLR, bit[1]
    要將 CTRL/STAT.STICKYCMP 粘性比較位清除為 0b0,請將 0b1 寫入該位。 是否實現 CTRL/STAT.STICKYCMP 位由實現定義。
    To clear the CTRL/STAT.STICKYCMP sticky compare bit to 0b0, write 0b1 to this bit. It is IMPLEMENTATION DEFINED whether the CTRL/STAT.STICKYCMP bit is implemented.
  • DAPABORT, bit[0]
    要生成中止當前 AP 事務的 AP 中止,請將 0b1 寫入該位。
    僅當調試器在較長時間內收到 WAIT 響應時才執行此寫入操作。
    To generate an AP abort, which aborts the current AP transaction, write 0b1 to this bit.
    Do this write only if the debugger has received WAIT responses over an extended period

DP0_IDCODE (0x00 SW R)

DP4_CTRL/STAT (0x04 SW W/R)

  • CSYSPWRUPACK, bit[31], ro. System powerup acknowledge.
    系統上電確認。 指示 CSYSPWRUPACK 信號的狀態。
  • CSYSPWRUPREQ, bit[30], rw. System powerup request.
    系統上電請求。 該位控制 CSYSPWRUPREQ 信號。上電復位后,該位為 0b0。
  • CDBGPWRUPACK, bit[29], ro. Debug powerup acknowledge.
    調試上電確認。 指示 CDBGPWRUPACK 信號的狀態。
  • CDBGPWRUPREQ, bit[28]. Debug powerup request.
    調試上電請求。 該位控制 CDBGPWRUPREQ 信號。 上電復位后,該位為 0b0。
  • CDBGRSTACK, bit[27] ro. Debug reset acknowledge.
    調試復位確認。 指示 CDBGRSTACK 信號的狀態。 請參閱調試重置控制行為(Debug reset control behavior on page B2-86).
  • CDBGRSTREQ, bit[26]. Debug reset request.
    調試復位請求。 該位控制 CDBGRSTREQ 信號。 該位是 RW 還是 RAZ/WI 由實現定義。 上電復位后,該位為 0b0。
  • ERRMODE, bit[24].
    錯誤模式。 指示 CTRL/STAT.STICKYERR 字段的重置行為。 0b0:AP 事務設置錯誤 CTRL/STAT.STICKYERR 和 CTRL/STAT.STICKYERR 保持設置直到明確清除。 0b1:AP 事務上的錯誤設置 CTRL/STAT.STICKYERR,當輸出 FAULT 響應時清除 CTRL/STAT.STICKYERR。
    如果 ERRMODE 為 0b1,則 AP 事務上發生的錯誤可能會通過 FAULT 報告給調試器 響應,但不需要調試器顯式清除 CTRL/STAT.STICKYERR。 導致 FAULT 響應的 JTAG-DP 或 SW-DP 事務不成功,并且 CTRL/STAT.STICKYERR 被清除為 0b0,允許嘗試將來的事務。 上電復位后,該字段的值為 0b0。
  • TRNCNT, bits[23:12]. Transaction counter.
    交易計數器。 上電復位后,該字段的值為 UNKNOWN。
    注意:該字段是否實現由 IMPLEMENTATION DEFINED 定義。 MINDP 配置中不支持 TRNCNT。 在 MINDP 配置中,將非零值寫入 TRNCNT 或 TRNMODE 的效果是 UNPREDICTABLE。
  • MASKLANE, bits[11:8]
    對于推送操作,DP 對 AP 寫事務中提供的字與目標 AP 地址處的當前字進行逐字節比較。 MASKLANE 字段用于選擇要包含在此比較中的字節。 MASKLANE 字段的四位中的每一位對應于要比較的字的四個字節之一。 因此,每一位被稱為控制比較操作的一個字節通道。
    表 B2-4 顯示了 MASKLANE 的位如何控制比較屏蔽。。
    • a: 是否包含其他位由 MASKLANE 的其他位決定:為了比較整個字,將 MASKLANE 設置為 0b1111 以包含所有字節通道。 如果 MASKLANE 位為 0b0,則從比較中排除相應的字節通道。
      注意:以下內容適用于 MASKLANE 字段: - MASKLANE 僅在傳輸模式字段 TRNMODE 為 0b01(用于推送驗證操作)或 0b10(用于推送比較操作)時才相關。 上電復位后,MASKLANE 的值為未知
  • WDATAERR, bit[7] . Write Data Error.
    如果發生以下寫入數據錯誤之一,則該位設置為 0b1: - 寫入數據階段的奇偶校驗或幀錯誤。 - 已被 DP 接受的寫入將被丟棄而不提交給 AP。 SW-DP,所有實現:訪問是 RO/WI。 要將 WDATAERR 清除為 0b0,請將 0b1 寫入 ABORT 寄存器中的 ABORT.WDERRCLR 字段。 如有必要,可以使用 ABORT 寄存器的單次寫入來清除多個標志。 清除 WDATAERR 標志后,通常必須重新發送損壞的數據。 上電復位后,WDATAERR 為 0b0.
  • READOK, bit[6]
    在 SW-DP 上,訪問是 RO/WI。如果對先前 AP 讀取或 RDBUFF 讀取的響應是 OK,則該位設置為 0b1。 如果響應不正常,則清零為 0b0。此標志始終指示對最后一次 AP 讀取訪問的響應。 上電復位后,該位為 0b.
  • STICKYERR, bit[5]
    如果 AP 事務返回錯誤,則該位設置為 0b1
  • STICKYCMP, bit[4]
    當在推送比較操作期間發生不匹配或在推送驗證操作期間發生匹配時,該位設置為 0b1.
  • TRNMODE, bits[3:2]
    此字段設置 AP 操作的傳輸模式。- 在正常操作中,AP 交易被傳遞給 AP 進行處理;- 在推送驗證和推送比較操作中,DP 將 AP 寫入事務中提供的值與目標 AP 地址中保存的值進行比較。TRNMODE 可以具有以下值之一:- 0b00 正常操作。- 0b01 推送驗證模式。- 0b10 推送比較模式。- 0b11 保留。上電復位后,該字段的值為未知.
  • STICKYORUN, bit[1]
    如果啟用了溢出檢測,則在發生溢出時該位設置為 0b1。SW-DP:訪問為 RO/WI。要將 STICKYORUN 清零為 0b0,請將 0b1 寫入 ABORT 寄存器中的 ABORT.ORUNERRCLR 字段。 如有必要,可以使用 ABORT 寄存器的單次寫入來清除多個標志。在清除 CTRL/STAT.STICKYORUN 后,您必須找出哪個 DP 或 AP 事務引發了導致設置標志的溢出,并重復這些事務 事務計數器指向的事務中的 DP 或 AP。上電復位后,該位為 0b0.
  • ORUNDETECT, bit[0] 。Overrun detection
    0b0 溢出檢測被禁用。0b1 啟用溢出檢測。上電復位后,該位為 0b0

DP8_SELECT (0x08 SW W)

  • APSEL=0X00: 表示AHB訪問
  • APBANKSEL: 選擇當前AP的 bank 地址。

DP8_RESEND register 0x08 (SW R)

DPc_RDBUFF register 0x0C (SW R)

NOTE: 電源和復位控制
DP 支持 CTRL/STAT 寄存器中的以下電源和復位控制字段:

  • 系統和調試電源控制、CDBGPWRUPREQ、CDBGPWRUPACK、CSYSPWRUPREQ 和 CSYSPWRUPACK 的控制字段。有關詳細信息,請參閱2.1節《系統和調試電源控制行為 System and debug power control behavior》。
  • 調試復位控制、CDBGRSTREQ 和 CDBGRSTACK 的控制字段。有關詳細信息,請參閱 2.2節《調試復位控制行為》。

這些控制位可由調試器編程,并將信號驅動到目標系統。

當由 CTRL/STAT 寄存器中的電源和復位控制字段控制時,可以使用 CDBGRSTREQ 字段實現調試邏輯復位,但 CTRL/STAT 不提供任何用于請求系統復位的控制位。然而,調試器的物理接口通常包含一個系統復位引腳 nSRST,它旨在為現有的電源和復位控制器提供提示或激勵。有關如何實現系統復位管腳的詳細信息,請參見第 B2-88 頁的系統復位控制行為。

Arm 建議僅將 CDBGRSTREQ 用作解除鎖定系統阻塞的最后手段。 CDBGRSTREQ 可能影響的不僅僅是鎖定邏輯,必須小心使用。

nSRST 也可能導致調試邏輯復位,但需要釋放調試邏輯復位以允許調試器在保持系統復位的同時對調試邏輯進行編程。

ADI不更換系統電源和復位控制器,ADI規范對系統電源和復位控制器的操作沒有任何要求
電源控制要求和操作。
**1 系統和調試電源控制行為 **

System and debug power control behavior

1.1 ADI功率域模型
The ADI power domains model ADI 支持多個電源域,為可斷電的調試組件提供支持。實現對三個電源域進行建模:

  • Always-on power domain :必須(始終)上電的區域,用于debugger連接device。必須為調試器上電才能連接到設備的電源域 [感謝評論區1層層主建議]
  • 系統電源域:包括系統組件的電源域。
  • 調試電源域:包括整個調試子系統的電源域。

如有必要,可以細分系統和調試電源域。然而,要定義一個簡單的調試接口,必須在頂層將設備劃分為系統和調試電源域。任何更細粒度的控制都超出了此模型的范圍。

在大多數情況下,調試器會啟動整個 SoC。但是,如果調試器正在調查電源管理問題,它可能只想啟動調試域。為了實現這一目標,SoC 設計人員可能希望將電源控制器映射到一個總線段,當只有調試電源域上電時,ADI 可以訪問該總線段。

使用 ADI 時,為了使調試過程正常工作,系統不得在調試會話期間斷開 DP 的電源。如果斷電,DP 控制器狀態將丟失。但是,ADI 旨在允許 ADI 的其余部分和系統在保持對 DP 供電的同時斷電和調試。

DP 寄存器位于始終開啟的電源域中,位于 DP 的外部接口側。因此,它們始終可以被驅動,從而能夠向系統電源控制器發出上電請求。電源和復位控制位是 DP CTRL/STAT 寄存器的一部分。有關此寄存器中的復位控制位的更多信息,請參見第 B2-86 頁的調試復位控制行為。

ADIv6 定義了兩對電源控制信號:

  • CDBGPWRUPREQ DP_CTRL_STAT.bit[28] 和 CDBGPWRUPACK DP_CTRL_STAT.bit[29]
  • CSYSPWRUPREQ DP_CTRL_STAT.bit[30] 和 CSYSPWRUPACK DP_CTRL_STAT.bit[31]

1.1.1 CDBGPWRUPREQ & CDBGPWRUPACK
CDBGPWRUPREQ 是從調試接口到電源控制器的信號。該信號請求系統電源控制器完全上電并確保時鐘在調試電源域中可用。
CDBGPWRUPACK 是從電源控制器到調試接口的信號。當 CDBGPWRUPREQ 置位時,電源控制器啟動調試電源域,然后置位 CDBGPWRUPACK 以確認它已響應請求。

哪些組件在由 CDBGPWRUPREQ 控制的調試電源域中是實現定義的。例如,此域可能包括系統中的所有調試組件,或者可能僅限于排除具有額外功率控制級別的組件。CDBGPWRUPREQ 信號指示調試器需要這些組件的調試資源是可通信的。通信意味著調試器可以訪問至少足夠的調試資源寄存器,以確定資源的狀態。

資源是否處于活動狀態由實現定義。電源和時鐘控制器必須加電并運行所需數量的域的時鐘,以符合來自調試器的此請求,以使資源可通信。

只要 CDBGPWRUPREQ 被斷言,電源和時鐘控制器就必須遵守它。例如,如果調試電源域中的組件請求斷電,則必須針對該電源域內的非調試邏輯模擬該請求,包括具有單個共享域的所有組件。

如果某個組件的某些調試資源不在調試電源域中,則至少該組件的最小調試接口必須上電。如果滿足以下要求,則可以從組件的其余部分移除電源:

  • 有一些方法可以保存和恢復調試資源的狀態。
  • 當組件的其余部分未通電時,調試器可以與調試資源通信。

保存和恢復這些資源中保存的值的方法可能包括軟件解決方案。如果當從組件的其余部分移除電源時調試資源確實失去了它們的價值,那么調試接口必須包括讓調試器發現編程值已經丟失的裝置。

CDBGPWRUPACK 是 CDBGPWRUPREQ 請求信號的確認信號。只要 CDBGPWRUPREQ 被斷言,CDBGPWRUPACK 就必須被斷言。請參見第 B2-84 頁的上電請求和確認時間。

1.1.2 CSYSPWRUPREQ and CSYSPWRUPACK

CSYSPWRUPREQ 是從調試接口到電源控制器的信號。該信號請求系統電源控制器完全啟動并確保時鐘在系統電源域中可用。
CSYSPWRUPACK 是從電源控制器到調試接口的信號。當 CSYSPWRUPREQ 置位時,電源控制器啟動系統電源域,然后置位 CSYSPWRUPACK 以確認它已響應請求。

由 CSYSPWRUPREQ 控制的系統電源域中的哪些組件是實現定義的。此域可能包括系統中的所有調試組件,或者可能受到限制,例如排除具有額外功率控制級別的組件,例如實現獨立核心的處理器
通電請求控件。

CSYSPWRUPREQ 信號指示調試器需要這些組件的所有調試資源處于活動狀態。激活意味著調試資源可以執行其調試功能。一個活躍的資源也是可以交流的。

只要 CSYSPWRUPREQ 被斷言,電源和時鐘控制器就必須遵守它。

CSYSPWRUPREQ 對由 CDBGPWRUPREQ 控制的調試組件沒有影響,因為這些組件在系統電源域中沒有調試邏輯。但是,對于某些調試資源位于由 CSYSPWRUPREQ 控制的系統電源域中的組件,必須為該電源域內的非調試邏輯模擬請求。

CSYSPWRUPACK 是 CSYSPWRUPREQ 請求信號的確認信號。只要 CSYSPWRUPREQ 被斷言,CSYSPWRUPACK 就必須被斷言。請參閱第 B2-84 頁的上電請求和確認時間。

當 CSYSPWRUPREQ 被調試器斷言時,CDBGPWRUPREQ 也必須被斷言。

1.2 電源控制要求和操作

Power control requirements and operation

本節適用于 systemdebug 域,并使用以下符號:

  • CxxxPWRUPREQ 指的是 CSYSPWRUPREQ 或 CDBGPWRUPREQ。
  • CxxxPWRUPACK 是指 CSYSPWRUPACK 或 CDBGPWRUPACK。

本節中描述的所有信號都是高電平有效,因此 assert 表示將信號設為高電平,而 deassert 表示將信號設為低電平。

powerup 請求和確認的操作規則是:

  • 調試器不得同時將 CTRL/STAT.CSYSPWRUPREQ 設為1 、CTRL/STAT.CDBGPWRUPREQ 設為0。對這種請求組合的響應是不可預測的。

  • 要初始化powerup,DP 必須斷言 CxxxPWRUPREQ。

    • 如果相應的電源域斷電或處于低功耗保持狀態,則電源控制器必須在檢測到 CxxxPWRUPREQ 被斷言時為域上電。域上電后,控制器必須置位 CxxxPWRUPACK。
    • 如果在電源控制器檢測到 CxxxPWRUPREQ 被置位時相應的電源域已經上電,控制器仍必須通過置位 CxxxPWRUPACK 來響應,即使它不影響電源域。
  • Arm 強烈建議工具僅在 CDBGPWRUPREQ 和 CDBGPWRUPACK 被斷言時才啟動 AP 傳輸。如果 CDBGPWRUPREQ 或 CDBGPWRUPACK 為 LOW,則任何 AP 傳輸都可能生成故障響應。

  • DP 通過置低 CxxxPWRUPREQ 請求斷開域的電源。
    當電源控制器接受關閉域的請求時,它會取消斷言 CxxxPWRUPACK。
    注意:電源控制器置低 CxxxPWRUPACK,并不表示該域已掉電,僅表示電源控制器已識別并接受斷電請求。

  • CxxxPWRUPACK 必須默認為LOW 狀態,并且只有在收到 CxxxPWRUPREQ 請求時才會變為 HIGH。

  • 在檢測到 CxxxPWRUPREQ 的置低后,電源控制器必須正常關閉域,除非從域中移除電源會影響系統操作。例如,如果電源控制器有其他保持電源的請求,它可能會保持對域的電源。

  • 通過取消斷言 CxxxPWRUPREQ 請求斷電后,工具必須等到 CxxxPWRUPACK為低電平后才能發出新的上電請求。
    此要求確保不違反電源控制握手機制。

第 B2-84 頁的圖 B2-1 顯示了電源控制信號的時序

注意:
Arm 強烈建議在時間 T2 和 T3 之間為 CDBGPWRUPREQ 和 CDBGPWRUPACK 發起所有 AP 事務,如圖 B2-1 所示。

2 調試復位控制行為

Debug reset control behavior

AP Access Port

#define AP_CSW 0x00 // Control and Status Word #define AP_TAR 0x04 // Transfer Address #define AP_DRW 0x0C // Data Read/Write #define AP_BD0 0x10 // Banked Data 0 #define AP_BD1 0x14 // Banked Data 1 #define AP_BD2 0x18 // Banked Data 2 #define AP_BD3 0x1C // Banked Data 3 #define AP_ROM 0xF8 // Debug ROM Address #define AP_IDR 0xFC // Identification Register

AP0_CSW (Control and Status Word Register) 0x00





Mode: 讀取或寫入數據訪問時的自動地址遞增和打包模式。 僅當當前事務完成且沒有錯誤時才會增加。
訪問分組數據寄存器 0x10 - 0x1C 時不會執行自動地址遞增和打包傳輸。 在這些情況下,這些位的狀態將被忽略。
在 4 KB 地址邊界內遞增和回繞,例如對于從 0x1000 到 0x1FFC 的字遞增。 如果從 0x14A0 開始,則計數器遞增到 0x1FFC,回繞到 0x1000,然后繼續遞增到 0x149C。
0b00 自動增量 關閉
0b01 增量 單次。從相應的字節通道進行一次傳輸。
0b10 包 增量

AP4_TAR (Transfer Address Register) 0x04~08

APc_DRW (Data Read/Write Register) 0x0C

AP_BDR0-3 (Banked Data Registers 0-3)

使用這些寄存器直接將AHB-AP訪問映射到AHB傳輸,而無需重寫AHB- AP傳輸地址寄存器(TAR)

提供一種通過 DAP 訪問直接映射到 AHB 傳輸的機制,而無需在四個位置邊界內重寫 TAR,例如 BD0 從 TAR 讀取/寫入,BD1 從 TAR+4 讀取/寫入。
如果 DAPADDR[7:4] == 0x0001,因此訪問 0x10-0x1C 范圍內的 AHB-AP 寄存器,則派生的 HADDR[31:0] 如下:

  • 讀取模式:從外部地址 TAR[31:4] + DAPADDR[3:0] 讀取當前傳輸的數據值。 對 BD0-BD3 的 DAP 訪問不執行自動地址遞增。
  • 寫入模式:將當前傳輸的數據值寫入外部地址 TAR[31:4] + DAPADDR[3:0]。
    BANK 傳輸僅支持 word。 當前忽略非word傳輸大小,假設 word 訪問。

AP_DRAR (Debug ROM Address Register)

IDR (ID Register)


System Debug

系統調試框圖

部分模塊注解:

  • Flash Patch and Breakpoint (FPB) unit to implement breakpoints and code
    patches.
  • Data Watchpoint and Trace (DWT) unit to implement watchpoints, trigger
    resources, and system profiling.
  • Instrumentation Trace Macrocell (ITM) for application-driven trace source that
    supports printf style debugging
  • Embedded Trace Macrocell (ETM) for instruction trace. The processor is
    supported in versions with and without the ETM.
  • AHB-AP
    • AHB-AP 是 Cortex-M3 系統的調試訪問端口,提供對系統中所有內存和寄存器的訪問,包括通過 NVIC 訪問的處理器寄存器。系統訪問與處理器狀態無關。 SW-DP 或 SWJ-DP 訪問 AHB-AP。
    • AHB-AP 是總線矩陣的主控。 事務是使用 AHB-AP 程序員模型進行的,該模型將 AHB-Lite 事務生成到總線矩陣中。 請參閱 AHB-AP 寄存器的摘要和說明。

AHB-AP

AHB-AP 和 MEM-AP 的聯系

The AHB-AP is a Memory Access Port (MEM-AP) as defined in the ARM Debug Interface v5 Architecture Specification. The AHB-AP is an optional debug access port into the Cortex-M3 system, and provides access to all memory and registers in the system, including processor registers through the SCS. System access is independent of the processor status. Either SW-DP or SWJ-DP is used to access the AHB-AP.

AHB-AP是ARM調試接口V5體系結構規范中定義的內存訪問端口(MEM-AP)。AHB-AP是進入Cortex-M3系統的可選調試訪問端口,并提供對系統中所有內存和寄存器的訪問,包括通過SCS的處理器寄存器。系統訪問獨立于處理器狀態。SW-DP或SWJ-DP用于訪問AHB-AP。

The AHB-AP is a master into the Bus Matrix. Transactions are made using the AHB-AP programmers model, which generates AHB-Lite transactions into the Bus Matrix.

AHB-AP是 Bus Matrix 的主機。交換是使用 AHB-AP 編程模型進行的,該模型將 AHB-LITE 轉換生成BUS Matrix。

CSW 0x00

Control and Status Word:

0x2300_0012:
[29]=0b1: Debug is master.
[25]=0b1: Resetvalue = 1. User/Privilege
[24] Reserved = 1
[5:4]=0b01: Increment Single, 一次傳輸
[2:0]=0b010: 32bit

0x2300_0002:
change [5:4]=0b00, 自動增量關閉

  • DbgSwEnable, bit[31]
    Debug software access enable.調試軟件訪問使能
  • Prot, bits[30:24]
    與 type 類型字段一起使用,以定義總線訪問保護控制。調試器可以使用這些字段來指定用于調試訪問的標志。
  • SDeviceEn, bit[23]
    Secure Debug Enabled. 安全調試啟用:
    0b0 Secure access 禁用.
    0b1 Secure access 使能
  • ERRSTOP, bit[17]
    Errors prevent future memory accesses. This field has one of the following values:
    0b0 Memory access errors do not prevent future memory accesses.
    0b1 Memory access errors prevent future memory accesses.
  • ERRNPASS, bit[16]
    Errors are not passed upstream. This field has one of the following values:
    0b0 Errors are passed upstream.
    0b1 Errors are not passed upstream.
  • Type, bits[15:12]
    Used with the Prot field to define the bus access protection control.
  • Mode, bits[11:8]
    Mode of operation of the MEM-AP. This field has one of the following values:
    0b0000 Basic mode.
    0b0001 Barrier support enabled.
  • TrInProg, bit[7]
    Transfer in progress. This field has one of the following values:
    0b0 The connection to the memory system is idle.
    0b1 A transfer is in progress on the connection to the memory system
  • DeviceEn, bit[6]
    Device enabled.
    This field has one of the following values:
    0b0 The MEM-AP is not enabled.
    0b1 Transactions can be issued through the MEM-AP.
  • AddrInc, bits[5:4]
    Address auto-increment and packing mode. This field controls whether the access address
    increments automatically on read and write data accesses through the DRW register.
  • Size, bits[2:0]
    The size of the data type that is used to access the MEM-AP,

TAR 0x04~08

如果實現包括大物理地址擴展,則偏移量 0xD04 處的字表示傳輸地址的最低有效字,偏移量 0xD08 處的字表示最高有效字。
如果實現不包括大物理地址擴展,偏移量 0xD04 處的字表示傳輸地址,偏移量 0x08 處的字為 RES0

Tranfer Address:

  • [31:0]. ADDRESS.Reset value = 0x00000000.
    • Current transfer address.

DRW 0x0C

Data Read/Write

  • [31:0]. Reset value = 0x00000000
    • DATA Write mode:
      • data value to write for the current transfer
    • DATA Read mode:
      • data value to read for the current transfer

Bandked Data 4 0x10-0x1C

  • [31:0] 數據 BD0-BD3。 復位值:0x00000000。
  • 提供一種通過 DAP 訪問直接映射到 AHB 傳輸的機制,而無需在四個位置邊界內重寫 TAR,例如 BD0 從 TAR 讀取/寫入,BD1 從 TAR+4 讀取/寫入。
  • 如果 DAPADDR[7:4] == 0x0001,因此訪問 0x10-0x1C 范圍內的 AHB-AP 寄存器,則派生的 HADDR[31:0] 如下:
    • 讀取模式:從外部地址 TAR[31:4] + DAPADDR[3:0] 讀取當前傳輸的數據值。 對 BD0-BD3 的 DAP 訪問不執行自動地址遞增。
    • 寫入模式:將當前傳輸的數據值寫入外部地址 TAR[31:4] + DAPADDR[3:0]。
  • BANK 傳輸僅支持 word。 當前忽略非word傳輸大小,假設 word 訪問。

Debug ROM Address 0xF8

  • [31:0] Debug ROM address
    • Base address of debug interface

IDR 0xFC

Identification Register

  • [31:28] Revision
    • This field is zero for the first implementation of an AP design, and is updated
      for each major revision of the design.
  • [27:24] JEP-106 continuation code
    • For an ARM-designed AP, this field has value 0b0100, 0x4.
  • [23:17] JEP-106 identity code
    • For an ARM-designed AP, this field has value 0b0111011, 0x3B.
  • [16] Class
    • 0b1: This AP is a Memory Access Port
  • [15:8] -
    • Reserved. SBZ.
  • [7:4] AP Variant
    • 0x1: Cortex-M3 variant
  • [3:0] AP Type
    • 0x1: AMBA AHB Bus

SWD 時序

  • 寫 OK 時序
    燒錄器往 DP 或 MEM-AP 寄存器的寫操作:
  • 讀 OK 時序
    指燒錄器讀取 DP 或 MEM-AP 寄存器的數據:
  • Wait 時序
    DAP沒準備好,響應WAIT給HOST,此次通訊結束。
  • Fault 時序
    DAP出錯,響應FAULT給HOST,此次通訊結束。
  • NOTE
    1. 請求
    主機 HOST 發出的請求由 8bit 組成:

    bitnamenote
    Bit0Start固定為 1。
    Bit1APnDP0表示訪問 DP 寄存器,1 表示訪問 MEM-AP 寄存器。
    Bit2RnW0表示寫請求,1表示讀請求。
    Bit[4:3]A[3:2]地址值,存放 DP/AP 寄存器的地址。
    Bit5Parity用于表示由{APnDP,RnW, A[2:3]}組成這四位數的奇偶總個數。
    Bit6Stop固定為0。
    Bit7Park固定為1。

    A2/A3兩位,給出 DP 或 AP 寄存器地址的 A[3:2] 地址字段:

    • 對于 DPACC 訪問,被尋址的寄存器取決于 A[3:2] 的值,如果 A[3:2]==0b01,則取決于 SELECT 中保存的值。 DPBANKSEL。 有關詳細信息,請參閱第 B2-51 頁的 DP 架構版本 3 (DPv3) 地址映射。
    • 對于 APACC 訪問,被尋址的寄存器取決于 A[3:2] 值和 SELECT.{APSEL,APBANKSEL} 中保存的值。 有關尋址的詳細信息,請參見:
      • C2-192 頁的 MEM-AP 程序員模型,用于訪問 MEM-AP 寄存器
      • JTAG-AP 程序員模型在 C3-245 頁上,用于訪問 JTAG-AP 寄存器。

    比如 DP_Select 的寄存器地址為 0x08(即 0b1000),顯然A[2:3]就為 01。

    2. 響應
    Target返回的ACK值由3bit組成:

    ACKnote
    ACK[0:2]==001FAULT
    ACK[0:2]==010WAIT
    ACK[0:2]==100OK response

    3. 數據
    由32bit有效數據 + 1bit數據的奇偶校驗位組成

    MCU連接過程


    操作步驟:

    1. SWD初始化

    • a. 初始化IO口,SWCLK和SWIO設置為輸出模式,保持SWDIO=1,保證Host連續發送至少50個“1”,使得Target進行Line Reset。
    • b. 發送JTAG to SWD命令,0x79、0xE7兩個byte(在ARM-Debug_Interface官方文檔中可以查到),隨后再發送一次line reset操作。
      • JATG->SWD: 0111 1001 1110 0111(0x79,0xE7)
      • SWD->JTAG: 0011 1100 1110 0111
    • c. 至少發送兩個Idle信號,保持 SWDIO=0。
    • d. 讀取Chip ID,從而完成SWD初始化操作。

    注意:此時只能訪問DP寄存器組,AP寄存器組還無法訪問。

    2. 解鎖 AP

    • a. 寫入 DP_CTRL/STAT寄存器(addr=0x04)數據為0x50000000 (第28位CDBGPWRUPREG和第30位CSYSPERUPREQ),開啟Debug Port及其時鐘.
    • b. 寫入 DP_SELECT 寄存器(addr=0x08)數據為 0x000000F0,AP_bank:0xF
    • c. 讀取 AP_IDR寄存器(addr = 0xFC)識別數據并驗證。讀取IDR寄存器的數值時,需要兩次,第一次是dummy read,第二次讀取到的才是正確的數據。(第二次也可以讀RDBUFF寄存器)
    • d. 寫入DP_SELECT寄存器數據為0x00000000,bank:0x0
    • e. 寫入 AP_CSW 寄存器數據為0x00000002,data_size:32bit

      Size:訪問MEM-AP的數據類型的大小
      其中:寄存器的數據是32bit 0b010,編程寫入Flash的數據是16bit 0b001。

    MCU 讀寫操作

    如果想要 寫入/讀出 MCU內部Flash的數值,需要用到兩個AP寄存器

    • TAR (The Transfer Address Register)
    • DRW (The Data Read/Write Register)
  • 寫操作
    1)在 TAR_W 寄存器中寫入要訪問的內存地址數值 (addr = 0x08000000)
    2)在 DRW_W 寄存器中寫入要往內存中寫入的數據 (data = 0x12345678)

  • 讀操作
    1)在 TAR_W 寄存器中寫入要訪問的內存地址數值 (addr = 0x08000000)
    2)從 DRW_R 寄存器中讀取要訪問的內存中存放的數據
    3)從 DP_RDBUFF寄存器中讀取數據 or 從AP_DRW_R 寄存器中讀取數據

  • 注意
    由于讀取AP寄存器的特殊性,當讀取AP寄存器時,返回的數據是上一次傳輸的值。也就是說,有兩種方式可以得到正確的 AP 寄存器的值。

    • 發送兩次讀AP_DRW寄存器的操作
    • 發送一次讀AP_DRW寄存器的操作(讀取上一周期的數據),再發送一次讀DP_RDBUFF寄存器的操作(讀取自己需要的數據)

    總的來說,讀寫DP寄存器沒有遲滯,不需要讀寫兩次。讀取AP寄存器,有遲滯,第一次讀AP,是上一周期的值,第二次讀AP才是想要的值。寫AP寄存器,沒有遲滯,如TAR,DRW只需要寫一次即可寫進去。

    原文鏈接

    MM32-LINK 測試(MT304)

    ARM cortex -M0
    理論值 - 0x0BB1_1477

    NameCPUID
    MT3040x412F_C231
    MM00200x410C_C200

    1. SWD Connect: read DP_IDCODE

    - LineReset(30+30) - JTAG2SWD - LineReset(30+30) - 16b1110_1110_1110_1110(0xEEEE LSB) - LineReset(30+30) - R DP_IDCode(DP0) - OK + 0x2ba01477 - delay 200us

    2. Set DP_CTRL/STAT PWR UP

    - R DP_CTRL/STAT(DP4) - OK+0xF000_0040 - W DP_ABORT(DP0) - OK+0x0000_001e - W DP_CTRL/STAT(DP4) - OK+0x5000_0000 - W DP_SELECT(DP8) - OK+0x0000_0000 - W DP_ABORT(DP0) - OK+0x0000_001e

    3. Read CPUID(0xE000_ED00)

    - W DP_SELECT - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_ED00(NVIC_CPUID) - W AP_CSW(AP0) - OK+0x2300_0012 - R AP_DRW(APc) - Wait - R AP_DRW(APc) - OK+0xFFFF_FFFF - R DP_RDBUFF(DPc) - OK+0x412F_C231 - delay 120us

    4. Unknow: Read from 0xE000_1028/38/48/58

    - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_1028 / 0xE000_1038 / 0xE000_1048 / 0xE000_1058 - W AP_CSW(AP0) - OK+0x2300_0012 - W AP_DRW(APc) - OK+0x0000_0000 - R DP_RDBUFF(DPc) - OK+0x412F_C231(Last Time) ??ERROR - W DP_ABORT(DP0) - OK+0x0000_001E

    5. DBG_HCSR(0xE000_EDF0) = 0xA05F_0003, Halt CPU, DBG_EN

    - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_EDF0 - W AP_CSW(AP0) - OK+0x2300_0002 - W AP_DRW(APc) - OK+`0xA05F_0003` - R AP_DRW(APc) - WAIT - R AP_DRW(APc) - OK+0x412F_C231(last time) - R AP_DRW(APc) - OK+0x0103_0003 - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_EDF0 - W AP_CSW(AP0) - OK+0x2300_0012 // something change: - R AP_DRW(APc) - Wait - R AP_DRW(APc) - OK+0x0003_0003 - R DP_RDBUFF(DPc) - OK+0x0003_0003 - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000

    7. DBG_EMCR(0xE000_EDFC) = 0x0100_0001, Catch Reset & Trace

    - W AP_TAR(AP4) - OK+`0xE000_EDFC` - W AP_CSW(AP0) - OK+`0x2300_0012` - W AP_DRW(APc) - OK+`0x0100_0001` - send 0x0000( 8 clock no used) - R DP_RDBUFF(DPc) - OK+0x0003_0003 - send ack(3clk) + send 8clk(0x0000) + send 8clk(0x0000) - W DP_ABORT(DP0) - OK+0x0000_001E

    8. DBG_AIRCR(0xE000_ED0C) = 0x05FA_0004, SYS_RST_REQ

    - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_ED0C - W AP_CSW(AP0) - OK+0x2300_0012 - W AP_DRW(APc) - OK+`0x05FA_0004` - later send 0x0000

    9. nRST = 0. dalay xxms

    - 418 us later. - R AP_DRW(APc) - OK+0x0003_0003 - send 3 ack clock, but not used - **18 ms later.**

    10. nRST = 1. delay 20ms

    11. read DBG_HCSR(0xE000_EDF0) 3times

    - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_EDF0 - W AP_CSW(AP0) - OK+0x2300_0012 - R AP_DRW(APc) - WAIT - R AP_DRW(APc) - OK+0x0003_0003 - second time: 0x0203_0003 - third time: 0x0003_0003 - R DP_RDBUFF(DPc) - OK+0x0203_0003 - second time: 0x0003_0003 - third time: 0x0003_0003

    12. DBG_EMCR(0xE000_EDFC) = 0x0100_0000, Trace(3 times)

    - W DP_ABORT(DP0) - OK+0x0000_001E - W DP_SELECT(DP8) - OK+0x0000_0000 - W AP_TAR(AP4) - OK+0xE000_EDFC - W AP_CSW(AP0) - OK+0x2300_0012 - W AP_DRW(APc) - OK+0100_0000 - send 8clk(0x0000) / R AP_DRW(APc) - WAIT / OK+0x0100_0000 - R DP_RDBUFF(DPc) - OK+0x0003_0003

    while true: step11 cycle

    總結

    總結

    以上是生活随笔為你收集整理的ARM Cortex-M 调试器 - 基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产成人精品亚洲 | 亚洲爱av | 麻豆影视在线观看 | 天天色 天天| 91av网址| 美女视频黄网站 | 精品在线免费视频 | 91成人免费| 欧美一二三专区 | 福利一区在线视频 | 91精品久久久久久综合五月天 | 国产精品久久三 | 国产区精品视频 | 国产婷婷| 97色视频在线 | 国产一级片视频 | 狠色狠色综合久久 | 91视频在线免费观看 | 精品一二三区视频 | 91视频 - 88av| 精品一区免费 | 99久久精品久久久久久清纯 | 亚州国产精品 | 黄色精品视频 | 91精品国产综合久久婷婷香蕉 | 日韩中字在线观看 | 国产a免费| 91福利免费 | 久久久久久久免费观看 | 免费黄色一区 | 激情丁香综合五月 | 国产91精品看黄网站在线观看动漫 | 国产成人在线看 | 亚洲精品网址在线观看 | 91九色精品 | 欧美色图亚洲图片 | 欧美成人精品欧美一级乱黄 | 色网站在线观看 | 免费观看黄色12片一级视频 | 人人网av| 亚洲国产美女久久久久 | 国产精品青草综合久久久久99 | 视频在线一区 | 日韩在线高清 | 91av在线电影 | 四川妇女搡bbbb搡bbbb搡 | a级片久久 | 91视频在线免费下载 | 中文字幕在线日亚洲9 | 欧美日一级片 | 国产在线看 | 在线你懂 | 国产无遮挡又黄又爽在线观看 | 99精品视频免费观看 | 国产一级大片免费看 | 中文字幕日韩精品有码视频 | 日韩视频免费 | 国产精品免费一区二区三区 | 国产亚洲激情视频在线 | 国产精品久久久久久麻豆一区 | 97超碰精品 | 亚洲欧美日韩国产一区二区三区 | 色视频网页 | 91av蜜桃| 国产精品专区在线观看 | av高清网站在线观看 | 亚洲午夜精品福利 | a v在线观看 | 亚洲成年人在线播放 | 97电影在线观看 | 色干干 | 91麻豆网站 | 日韩大片在线免费观看 | 超碰在线97观看 | 99r在线精品 | 国产精品视频免费在线观看 | 91麻豆精品国产91久久久无需广告 | 免费高清在线观看电视网站 | 亚一亚二国产专区 | 国产精品乱码一区二区视频 | 日日干天夜夜 | 亚洲婷婷综合色高清在线 | 天天综合入口 | 中文在线a∨在线 | 亚洲欧洲精品一区二区 | 97在线观看视频免费 | 91精品国产高清 | 麻豆国产精品va在线观看不卡 | 日本天天色 | 亚洲涩涩涩涩涩涩 | 日韩久久精品一区二区 | 久久久久久伊人 | 日韩精品欧美精品 | 欧美日韩在线观看视频 | 久久在线免费 | 99精品欧美一区二区蜜桃免费 | av网站在线观看免费 | 国产精品久久久久永久免费 | 亚洲精品网页 | 天天干天天射天天插 | 久久久福利 | 在线视频 区 | 欧美精品二区 | 免费观看黄| 中文字幕亚洲国产 | 91丨九色丨国产丨porny精品 | 欧美日韩国产精品一区二区亚洲 | 九草在线观看 | 91激情视频在线 | 三三级黄色片之日韩 | 综合久久婷婷 | 国产一区二区在线播放 | 日韩在线视频在线观看 | 免费在线中文字幕 | 99在线视频免费观看 | 日日射av| 日韩一区二区三免费高清在线观看 | 久久精品亚洲精品国产欧美 | 免费高清无人区完整版 | 九九色网 | 黄色片免费在线 | 美女福利视频在线 | 免费在线观看日韩视频 | 欧美一区二区三区在线 | 国产免费a | 欧美一区免费观看 | 欧美在线观看禁18 | 91福利专区 | 精品亚洲男同gayvideo网站 | 久久综合九色九九 | 欧美日韩国产一二 | 日韩中文字幕国产 | 亚洲精品中文字幕视频 | www99久久| 中文字幕乱码电影 | 国产1级毛片 | 久久久综合香蕉尹人综合网 | 黄色亚洲大片免费在线观看 | 中文资源在线播放 | 麻豆综合网| 日韩欧美国产激情在线播放 | 日韩高清二区 | 99精品免费网 | 免费黄色小网站 | 精品99久久| av短片在线观看 | www.综合网.com | 中文字幕有码在线播放 | 91完整视频 | 国产精品一区二区三区在线免费观看 | 97人人超| 97超视频| 激情综合亚洲精品 | 特级aaa毛片 | 精品久久网站 | 最新av在线免费观看 | 在线看v片成人 | 日韩午夜大片 | 亚洲成a人片77777kkkk1在线观看 | 一区二区三区精品在线视频 | 国产专区在线 | 欧美精品久久天天躁 | 日韩欧美在线观看 | 成人免费91 | 91麻豆国产 | 国产乱码精品一区二区三区介绍 | 黄色免费在线看 | 日本在线免费看 | 青青看片 | 亚洲一区二区麻豆 | 久久综合九色综合欧美就去吻 | 射射色 | 久久国产精品久久久久 | 欧美日韩在线视频一区 | 天天色 天天 | 天天爽夜夜爽人人爽一区二区 | 精品欧美日韩 | 亚洲国产一区二区精品专区 | 日韩草比 | 91精品国产91 | 久久综合偷偷噜噜噜色 | 国产一区二区三区免费观看视频 | 亚洲无人区小视频 | 激情久久五月天 | 亚洲精色 | 国产麻豆视频免费观看 | 中文字幕在线观看资源 | 精品综合久久久 | 香蕉视频在线观看免费 | 在线视频在线观看 | 亚洲国内在线 | 美女视频一区 | 最新精品国产 | 日韩精品第一区 | 欧美精品久久久久久久久老牛影院 | 黄色小说在线免费观看 | 中文字幕在线看片 | 欧美大片大全 | 91视频免费国产 | 成人在线播放免费观看 | 五月婷婷综合在线视频 | 亚洲精品视频第一页 | 国产美女精品人人做人人爽 | 福利网在线 | 精品在线免费观看 | 人人看人人 | 欧美成人按摩 | 亚洲专区视频在线观看 | 欧美日韩aaaa | 久久国产综合视频 | 欧美精品天堂 | 97网在线观看 | 深夜免费小视频 | 69亚洲视频| 亚洲欧美视频一区二区三区 | 久久精品欧美一区 | av中文字幕网址 | 亚洲精品国产精品久久99热 | 在线视频黄 | 久久精品波多野结衣 | 色在线中文字幕 | 国产一级在线观看视频 | 亚洲久草视频 | av视屏在线 | 久久精品国产亚洲 | 一本一本久久a久久精品综合 | 免费久久网站 | 麻豆传媒在线视频 | 中文字幕中文中文字幕 | 欧美小视频在线观看 | 久久99精品久久久久久秒播蜜臀 | 9幺看片 | 免费国产在线观看 | 亚洲午夜精品久久久久久久久 | 国产精品人人做人人爽人人添 | 91色一区二区三区 | 91成人在线视频 | 日本在线观看视频一区 | 国产成人综合在线观看 | 在线视频 成人 | 国产资源网| 黄色免费网| aⅴ精品av导航 | 免费精品久久久 | 999视频网站 | 久久久电影 | 久久久污| 日韩精品一区二区三区三炮视频 | 免费看高清毛片 | 91精品啪 | 亚洲精品综合一二三区在线观看 | 天天色中文| 毛片网站免费在线观看 | av丝袜美腿 | 久久综合免费视频影院 | 久久久五月天 | 久久午夜免费视频 | 蜜臀av一区| 在线观看免费av片 | 久久久久看片 | 国产综合精品一区二区三区 | 波多野结衣在线播放一区 | 久草久热 | 欧美极品少妇xxxx | 在线精品在线 | 国产视频99 | 婷婷丁香在线观看 | 亚洲激情久久 | 久久综合婷婷国产二区高清 | 成人一区二区在线观看 | 天堂v中文 | 少妇搡bbbb搡bbb搡69 | 91激情| 中文字幕中文 | 成人a级网站 | 久久五月天色综合 | 国产亚洲视频在线免费观看 | 一二三区视频在线 | 高清有码中文字幕 | 黄色精品久久久 | 亚洲欧美综合精品久久成人 | 日韩电影中文,亚洲精品乱码 | 国产日韩欧美中文 | 日日干夜夜草 | 国产精品手机在线 | 中文字幕黄网 | 亚洲第一区在线播放 | 久久九九国产精品 | 日韩网 | 国产对白av | 超碰在线人人爱 | 超碰久热| 国产97在线播放 | 日韩精品一区二区三区三炮视频 | 欧美激情视频一区二区三区 | 99精品视频在线播放免费 | 91自拍91 | 午夜精品福利影院 | 久久躁日日躁aaaaxxxx | 天天搞天天| 99欧美精品| 久久男人中文字幕资源站 | 亚洲电影第一页av | 狠狠色狠狠色 | 探花视频在线观看免费版 | 国产精品久久久久久久久大全 | 一级黄色片在线 | 毛片一级免费一级 | 91香蕉视频在线下载 | 亚洲国产日韩一区 | 久热免费 | 成年人免费看片 | 色插综合| 欧美精选一区二区三区 | 国产乱对白刺激视频在线观看女王 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 又粗又长又大又爽又黄少妇毛片 | 亚洲综合成人av | 91精品国 | 99久久夜色精品国产亚洲 | 日韩精品偷拍 | 日韩久久精品 | 久久伦理影院 | 国产精品一区二区三区免费视频 | 中文字幕第 | 在线中文字幕电影 | 国产一二区精品 | 日韩免费在线视频 | 97视频在线免费观看 | 久久视频一区二区 | 久久免费视频5 | 国产高清中文字幕 | 国产精品去看片 | 国产精品原创av片国产免费 | 激情狠狠干 | 亚洲三级黄色 | 欧美做受xxx | 成人高清在线观看 | 日日夜色| 亚洲精品大全 | 久草在线中文888 | 亚洲欧美日韩在线看 | 欧美激情视频在线免费观看 | 国产成人专区 | 日日摸日日爽 | 五月综合激情 | 亚洲成人网在线 | 中文字幕精品一区久久久久 | 天天亚洲综合 | 亚洲三区在线 | 九九九九精品 | 超碰人人射 | 久久久久二区 | 国产亚洲观看 | 探花系列在线 | 91精品中文字幕 | 日本精a在线观看 | 亚洲永久字幕 | 女人18片 | a√资源在线 | 国产人在线成免费视频 | 天堂中文在线播放 | 国产精品精品国产婷婷这里av | 久久婷婷影视 | 国产高清精 | 亚洲va综合va国产va中文 | 国产成人精品免高潮在线观看 | 久久国产精品色av免费看 | www.久久com | 在线精品亚洲一区二区 | 日韩免费视频一区二区 | 日本精品视频免费观看 | 成 人 黄 色 视频 免费观看 | 激情综合五月婷婷 | 国产一级一片免费播放放 | 午夜骚影| 日本中文字幕在线播放 | 国产精品美女在线观看 | 亚洲乱亚洲乱妇 | 国产精品国产精品 | 国产专区视频 | 日韩免费一级a毛片在线播放一级 | 一区二区三区在线观看免费视频 | 久草在线免费在线观看 | 国产成人精品亚洲日本在线观看 | 久久久久夜色 | 国产精品中文字幕在线播放 | 欧美大香线蕉线伊人久久 | 久久69av| 成片免费观看视频 | 久久国产区 | 国产精品美女视频 | 成人h电影 | 激情五月六月婷婷 | 日韩av电影中文字幕 | 久久精选视频 | 亚洲欧美视屏 | 五月婷婷在线观看视频 | 日本公妇色中文字幕 | 精品v亚洲v欧美v高清v | 蜜臀久久99精品久久久久久网站 | 二区三区视频 | 精品自拍网 | 五月黄色 | 亚洲国产精品va在线看黑人 | 黄色小说网站在线 | 在线免费观看麻豆 | 久久久久久久毛片 | 在线免费观看涩涩 | 91亚洲精品久久久蜜桃网站 | 在线中文字幕一区二区 | 国产国产人免费人成免费视频 | av高清在线| 91视频这里只有精品 | 狠狠干激情 | 爱干视频 | 日韩精品一区在线播放 | 久久久午夜影院 | 久久毛片高清国产 | 日韩美女免费线视频 | 激情五月视频 | 黄色三级av| 激情婷婷综合 | 中文字幕免费一区二区 | 国产视频97 | 国产精品福利在线 | 天天曰夜夜操 | 天天色天天艹 | 国产一级高清视频 | 中文字幕在线影院 | 91视频在线| 久久久精品午夜 | 99精品福利 | 久久久久久久久久久久国产精品 | 国产中文字幕免费 | 亚洲国产成人精品久久 | 久久久黄色av | 色99久久 | 99视频在线看 | 成人av电影免费在线播放 | 国产高清av在线播放 | 亚洲成人免费在线观看 | 狠狠干中文字幕 | 天天在线操 | 成人在线视频你懂的 | 中日韩免费视频 | 中文字幕日韩免费视频 | 深爱综合网 | 美女久久网站 | 亚洲精品视频观看 | 四虎国产 | 国产一区二区三区黄 | 人人dvd| 超级碰视频| 一区中文字幕电影 | 午夜精品久久久久久久99 | 嫩草91影院| 在线免费看黄色 | 亚洲视频久久久久 | 98福利在线 | 国产精品久久人 | 婷婷av在线| 91在线一区 | 国产欧美精品xxxx另类 | 欧美日韩二三区 | 日韩精品2区 | 国产一区观看 | 天天干人人插 | 免费h精品视频在线播放 | 免费亚洲黄色 | 亚洲国产999 | 久久久久久久久久免费视频 | 国产亚洲人成网站在线观看 | 久久久免费电影 | 91日韩免费 | 又色又爽又黄 | 国内精品视频一区二区三区八戒 | 国产高清视频在线免费观看 | 日韩一区二区三区不卡 | 日韩精品一区二区三区中文字幕 | 午夜精品视频一区 | 国产九九精品视频 | 日本中文字幕在线视频 | 91九色国产视频 | av电影av在线 | 亚洲精品视频在线观看免费视频 | 九九热只有这里有精品 | 亚洲欧美婷婷六月色综合 | 91桃色在线播放 | 成人av午夜| 成人在线观看av | 麻豆视频在线观看 | 国产精品麻豆果冻传媒在线播放 | 日韩黄色免费看 | 一区二区三区精品久久久 | 精品一区二区精品 | 日本公妇在线观看高清 | 日韩在线视频国产 | 综合网伊人 | 欧美日韩中文国产 | 婷婷综合在线 | 亚洲视频免费视频 | av在线一二三区 | 天天操天天操天天操 | 在线看毛片网站 | 91精品国自产拍天天拍 | www免费网站在线观看 | 亚洲免费国产 | 久久久久久久av | 成人a视频片观看免费 | 免费在线黄色av | 国产精品美女久久 | 国产在线国偷精品产拍 | 欧美另类xxx | 久久 精品一区 | 欧美亚洲另类在线视频 | 久久99精品久久久久久久久久久久 | 综合久久婷婷 | 日日夜夜人人天天 | 久久另类视频 | 国产品久精国精产拍 | 91精品专区 | 日韩成人在线免费观看 | 麻豆高清免费国产一区 | 亚洲乱码精品久久久久 | 91超碰在线播放 | 精品在线观看一区二区三区 | 亚洲高清国产视频 | 欧美日韩在线精品一区二区 | 六月色婷婷 | 婷婷色亚洲 | 亚洲一区av| 综合网中文字幕 | 亚洲婷婷网 | 手机av在线网站 | 欧美日韩在线观看不卡 | 欧美一区二区在线看 | 激情五月播播久久久精品 | 91亚洲精品乱码久久久久久蜜桃 | 9在线观看免费高清完整版在线观看明 | 日日弄天天弄美女bbbb | 天天爱天天射天天干天天 | 久久在线影院 | 深夜国产在线 | 狠狠狠色丁香婷婷综合激情 | 97视频在线观看播放 | 99热这里是精品 | 日本黄色特级片 | 日本久久成人 | 97av视频在线观看 | 婷婷干五月 | 人人超碰免费 | 国产成人精品免高潮在线观看 | 在线精品视频在线观看高清 | 国产美女视频免费 | 亚洲精品午夜一区人人爽 | 久久在线播放 | 成年性视频| 欧美一区三区四区 | 99精品视频免费看 | av看片在线观看 | 中文在线字幕免费观看 | 国产艹b视频 | 在线国产视频一区 | a色视频 | 91av在 | 91精品国产综合久久久久久久 | 久久综合综合久久综合 | 午夜少妇| 国产精品一区二区精品视频免费看 | 黄色av一区 | 免费网站在线观看人 | 国产区精品视频 | 国产1区在线观看 | 久久草在线视频国产 | 毛片永久新网址首页 | 成人丁香花 | 天天爽人人爽夜夜爽 | 欧美国产日韩在线观看 | 久青草视频在线观看 | 不卡的av在线 | 97色免费视频 | 99国内精品久久久久久久 | 亚洲国产精品久久久久 | 天天爱天天色 | 午夜精品久久久久久 | 亚洲jizzjizz日本少妇 | av电影 一区二区 | 狠狠躁夜夜躁人人爽超碰91 | 日韩精品中字 | 天天爽天天爽夜夜爽 | 探花视频在线版播放免费观看 | 日本二区三区在线 | 黄色性av| 中文超碰字幕 | 日韩动漫免费观看高清完整版在线观看 | 91九色pron| www.伊人网| 中文字幕亚洲欧美日韩 | 99精品视频在线观看 | 97在线观看免费视频 | 成人a级免费视频 | 99久久精 | 日日久视频 | 亚洲精品2区 | 99精品视频网站 | 国产一区二区三区免费在线观看 | 最近日本字幕mv免费观看在线 | 国产午夜精品av一区二区 | 99精品偷拍视频一区二区三区 | 国产精品九九九九九 | 91av蜜桃| av天天在线观看 | 久久综合九色综合网站 | 国产剧情一区二区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 久久精品5| 国产高清福利在线 | 久久男人中文字幕资源站 | 国产成人av在线 | 91资源在线| 日本中文乱码卡一卡二新区 | av福利网址导航 | 日b视频国产 | 久久爱992xxoo | 一区二区三区播放 | 久久久久这里只有精品 | 亚洲一区二区三区四区精品 | 国产精品久久99精品毛片三a | 国产精国产精品 | av在线播放观看 | 久久精品欧美 | 国产日产在线观看 | 色偷偷av男人天堂 | 久久久久国产精品免费 | 欧美福利网站 | 精品影院一区二区久久久 | 成人午夜电影网 | www.色五月.com | 天天爱天天草 | 91丨精品丨蝌蚪丨白丝jk | 在线观看久久久久久 | 黄色福利网 | 正在播放国产一区二区 | 日韩性久久 | 精品久久电影 | 91中文视频 | 超碰999| 黄色成人在线网站 | 国产精品毛片一区二区在线 | 中文字幕免费高清在线观看 | 成人福利在线 | 夜色在线资源 | 成人久久18免费网站麻豆 | 国产一区91 | 亚洲最大色 | 99久久www | 久久婷婷五月综合色丁香 | 91中文在线| 国产精品久久久久免费观看 | 欧美视屏一区二区 | 人人爱人人射 | 午夜久久| 天天av在线播放 | 国产一级二级在线播放 | 91亚洲精品久久久蜜桃 | 欧美日韩观看 | 99爱视频在线观看 | 久久久精品高清 | 日日夜夜天天干 | 激情综合中文娱乐网 | 在线电影日韩 | 91高清视频免费 | 男女免费av | 国产精品视频99 | 久久久久国产精品一区二区 | 永久免费av在线播放 | 国产99久久久欧美黑人 | 国产午夜激情视频 | 97偷拍在线视频 | 久久国产免费看 | 香蕉视频一级 | 欧美日韩一区二区三区不卡 | 国产不卡精品 | 亚洲精品看片 | 成人h在线 | 亚洲综合激情 | 黄色www在线观看 | 日韩免费观看一区二区 | 国产黄色成人 | 色香蕉网| 亚洲三级在线 | 手机在线看永久av片免费 | 日本久久精品视频 | 国产精品久久久久久久午夜片 | 在线观看 亚洲 | 91激情视频在线播放 | 24小时日本在线www免费的 | 免费看国产一级片 | www国产亚洲精品久久网站 | 亚洲专区免费观看 | 成人av免费在线看 | 狠狠色噜噜狠狠狠狠2022 | 综合网天天 | 天天爱综合 | 五月婷婷综合激情网 | 亚洲三级毛片 | 色狠狠综合 | 午夜 久久 tv | 9999毛片| 美女视频一区二区 | 欧美999| 99精品视频在线播放观看 | 欧美在线观看禁18 | 国产裸体无遮挡 | 中文字幕一区二区在线观看 | 久久激情小视频 | 久草热久草视频 | 午夜色性片 | www.夜夜 | 天天插天天爱 | 天天爱天天草 | 久草青青在线观看 | 亚洲精品啊啊啊 | 国产免费又黄又爽 | 亚洲乱码精品久久久 | 精品一区二区在线免费观看 | 亚洲免费在线看 | 国内精品在线看 | 精品久久九九 | 在线欧美国产 | 91在线看视频免费 | 成人国产一区二区 | 中文字幕在线一二 | 9在线观看免费 | 成 人 黄 色 免费播放 | 国产亚洲婷婷免费 | 国产精品伦一区二区三区视频 | 色婷婷综合五月 | 一级免费看视频 | 中文一二区 | 欧美日韩免费一区二区 | 麻豆精品视频在线 | 91手机电视| 久草精品视频 | 午夜丰满寂寞少妇精品 | 手机av电影在线 | 精品国产观看 | 在线看欧美 | 成人在线免费看 | 日韩精品视频免费专区在线播放 | 夜夜躁日日躁狠狠躁 | 69av国产 | 日韩黄色免费看 | 亚洲精品系列 | 中文亚洲欧美日韩 | 国产一区二区高清视频 | 日韩一区二区三区视频在线 | 国产精品毛片一区二区在线 | 日产乱码一二三区别在线 | 97色se| 久一在线| 亚洲片在线| 国产在线不卡视频 | 美女黄频在线观看 | 看全黄大色黄大片 | 亚洲精品在线二区 | 园产精品久久久久久久7电影 | 欧美一区二区三区在线观看 | 日韩av电影免费在线观看 | 久久欧洲视频 | 国产婷婷视频在线 | 日韩三级免费观看 | 最新av网站在线观看 | 亚洲一区二区天堂 | 综合网色 | 免费在线看v | 日本中文乱码卡一卡二新区 | 日韩精品一区二区三区第95 | av中文国产 | 亚洲一区二区三区精品在线观看 | 在线精品视频在线观看高清 | 在线播放精品一区二区三区 | 亚州精品天堂中文字幕 | 91人人爱 | 中文字幕高清在线播放 | 999久久久久 | 四虎永久免费在线观看 | 91久久国产精品 | 国产亚洲va综合人人澡精品 | 亚洲va综合va国产va中文 | 福利精品在线 | 免费av福利 | 在线观看一 | 日本精品一区二区三区在线观看 | 中文字幕成人一区 | 天天爱天天草 | 91男人影院 | 狠狠综合久久av | 波多野结衣在线观看一区 | 国产一区二区三区四区在线 | 亚洲国产免费网站 | 精品国产亚洲日本 | 中文字幕乱在线伦视频中文字幕乱码在线 | 草免费视频 | 亚洲男男gaygay无套同网址 | 久草热视频 | 99久久久成人国产精品 | 久久久久免费精品 | 久久久久久久久久久黄色 | 中文字幕第一页在线视频 | 久久久久免费精品国产 | 91日韩精品 | 91麻豆精品国产91久久久久久久久 | 国产涩涩网站 | 中文字幕在线观看2018 | 久久国内精品视频 | 国产精品久久久久9999吃药 | 国产精品99精品 | 在线 精品 国产 | 亚洲欧美成人综合 | 国产一区二区成人 | 最近中文字幕免费观看 | 91在线公开视频 | 久久精品这里都是精品 | 精品国产成人在线 | 亚洲精品视频在线观看网站 | 亚洲精品乱码久久 | 99999精品 | 99日精品| 午夜美女av | 九九热视频在线播放 | 精品999国产| 国产精品久久久久永久免费看 | 天天射天天干 | 天天射天天干天天爽 | 香蕉视频在线播放 | 久在线| 国产精品av一区二区 | 国产精品资源 | 国产精品18久久久久久vr | 成人av手机在线 | 婷婷在线播放 | 欧美在线视频不卡 | 日本韩国精品一区二区在线观看 | 色吊丝在线永久观看最新版本 | 国内精品久久久久影院优 | 日本精品在线视频 | 国内久久精品视频 | 2018精品视频 | 九九视频免费观看视频精品 | 国产精品久久久久久久久久99 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 亚洲国产精品免费 | 日韩久久在线 | 久久久久久久久久久网站 | 亚洲美女免费视频 | 久久99精品国产99久久6尤 | 国产在线播放一区 | 高清免费在线视频 | 久久av中文字幕片 | 永久黄网站色视频免费观看w | 久久伊人色综合 | 久久在线电影 | 国产精品99久久99久久久二8 | 亚洲欧美国产精品久久久久 | 欧美色综合天天久久综合精品 | 久久久久这里只有精品 | 国产精品手机播放 | 国产精品成人自产拍在线观看 | 亚洲国产日韩欧美 | sm免费xx网站 | www夜夜 | 韩日成人av| 人人草人 | 国产日韩欧美自拍 | 亚洲h在线播放在线观看h | 日日操天天操狠狠操 | 国产精品 视频 | 91麻豆精品国产自产在线游戏 | 9797在线看片亚洲精品 | 日韩国产高清在线 | 日韩三级成人 | 中文字幕一区二区三区四区久久 | 国产又粗又猛又爽 | 日韩一区二区三区免费电影 | 亚洲a成人v | 国产 日韩 在线 亚洲 字幕 中文 | 久久婷婷精品视频 | 国产精品 亚洲精品 | 九九久久免费视频 | 国产一级视屏 | 亚洲视频在线免费观看 | 在线观看成人网 | 免费a v在线 | 在线韩国电影免费观影完整版 | 丁香婷婷网 | 91成人免费视频 | 中文av资源站 | 国产一区欧美一区 | 亚洲三级黄 | 国产成人三级在线 | 久久免费影院 | 色综合天天视频在线观看 | 韩国av三级 | 亚洲免费不卡 | 最近中文字幕高清字幕免费mv | 亚洲乱亚洲乱亚洲 | 欧美日韩视频一区二区三区 | 国产午夜精品一区二区三区在线观看 | 日韩毛片在线一区二区毛片 | 久久99精品久久只有精品 | 激情综合五月天 | 国产视频亚洲视频 | 98超碰人人| wwxxxx日本 | 国产午夜精品福利视频 | 一区二区三区高清不卡 | 亚洲精品视频在线观看免费 | 久爱综合 | 欧美成人亚洲 | 99成人精品| 日本中文不卡 | 成人av电影免费观看 | 字幕网在线观看 | 免费国产黄线在线观看视频 | 亚洲aⅴ免费在线观看 | 国产女人免费看a级丨片 | 超碰在线公开 | 成人av资源网站 | 久久69精品久久久久久久电影好 | av三区在线 | 一本色道久久精品 | 人人舔人人干 | 色综合咪咪久久网 | 欧美在线观看视频一区二区 | 色偷偷男人的天堂av | 最新国产精品久久精品 | 成人免费观看视频大全 | 亚洲高清视频在线观看 | 久久影院中文字幕 | 2020天天干天天操 | 久热色超碰 | 国产一区成人 | 久久精品久久精品久久39 | 亚州精品在线视频 | 国产精品美女久久久久久久 | 久久狠狠婷婷 | 97精品一区 | 激情久久久久 | 手机看国产毛片 | 国产精品一区二区久久精品爱涩 | 18久久久久久 | 射射射av| av福利电影 | 天天色天天操天天爽 | 亚洲色视频 | 在线色亚洲 | 色综合久久中文字幕综合网 | 久久亚洲私人国产精品va | 免费a级大片 | 人人爽夜夜爽 | 欧美日韩成人 | 麻豆视屏 | 日韩免费观看一区二区 | 黄p网站在线观看 | 麻豆视频免费在线 | 天天天在线综合网 | 亚洲欧美日韩一区二区三区在线观看 | 欧美一级裸体视频 | 日本99热| 999国产 | 亚洲成人xxx| 91人人澡人人爽 | 91麻豆看国产在线紧急地址 | 天堂入口网站 | 久久久久久久亚洲精品 | 狠狠狠色丁香婷婷综合久久88 | 欧美日韩免费观看一区二区三区 | 国产精品孕妇 | www.亚洲精品在线 | 91精品办公室少妇高潮对白 | 日韩欧美电影在线 | 日韩羞羞 | 日本黄色免费电影网站 | 精品久久久久久亚洲综合网站 | 久久黄色小说视频 | 日日夜夜狠狠 | 一本一本久久a久久 | 久久久综合九色合综国产精品 | 国产精品午夜免费福利视频 | 狠狠久久伊人 | 久久免费成人网 | 美女天天操 | 在线中文字幕av观看 | 欧美一区二区视频97 | 人人爽人人爽人人 | 日韩午夜剧场 |