ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_usb_dcd_diag_t Struct Reference

Externally-readable diagnostic counters for OUT-pipe stall debug. More...

#include <ux_dcd_ra8_usb_internal.h>

Data Fields

volatile uint32_t xfer_req_total
 +0x00 priv_transfer_request entered.
volatile uint32_t xfer_req_null_arg
 +0x04 tr or ep was NULL.
volatile uint32_t xfer_req_bad_pipe
 +0x08 pipe index >= max.
volatile uint32_t xfer_req_pipe2_in
 +0x0C pipe == 2.
volatile uint32_t xfer_req_pipe2_out_dir
 +0x10 pipe == 2 + OUT direction.
volatile uint32_t xfer_req_pipe2_stashed
 +0x14 pipe2 OUT slot populated.
volatile uint32_t xfer_req_pipe2_block
 +0x18 about to tx_semaphore_get.
volatile uint32_t xfer_req_pipe2_woken
 +0x1C tx_semaphore_get returned.
volatile uint32_t irq_walk_total
 +0x20 IRQ pipe-walk loop iterations.
volatile uint32_t irq_walk_pipe2_seen
 +0x24 pipe2 walked with non-NULL xfer.
volatile uint32_t irq_walk_pipe2_complete
 +0x28 queue_out drained pipe2.
volatile uint32_t irq_walk_pipe2_no_data
 +0x2C queue_out returned no_data.
volatile uint32_t in_rearm_nak
 +0x30 stashed IN at PID=NAK with a loaded bank; PID forced back to BUF.
volatile uint32_t in_restage_nak
 +0x34 stashed IN at PID=NAK, empty bank, no BEMP; current chunk re-staged.
volatile uint32_t in_stage_fail
 +0x38 queue_in failed while staging an IN chunk from the IRQ walk.
volatile uint32_t ep_create_calls
 +0x3C endpoint-create invocations.
volatile uint32_t ep_create_fail
 +0x40 endpoint-create failures.
volatile uint32_t chg_state_attached
 +0x44 CHANGE_STATE(ATTACHED) calls.
volatile uint32_t chg_state_configured
 +0x48 CHANGE_STATE(CONFIGURED) calls.

Detailed Description

Externally-readable diagnostic counters for OUT-pipe stall debug.

Read these via JLink to localise where bulk-OUT data flow stops. Layout in declaration order, 4 bytes each. Address resolved via arm-none-eabi-nm | grep g_diag. Increment-only; never cleared at runtime so a JLink dump after a single host write tells the full story.

Definition at line 103 of file ux_dcd_ra8_usb_internal.h.

Field Documentation

◆ chg_state_attached

volatile uint32_t ra8_usb_dcd_diag_t::chg_state_attached

+0x44 CHANGE_STATE(ATTACHED) calls.

Definition at line 124 of file ux_dcd_ra8_usb_internal.h.

◆ chg_state_configured

volatile uint32_t ra8_usb_dcd_diag_t::chg_state_configured

+0x48 CHANGE_STATE(CONFIGURED) calls.

Definition at line 125 of file ux_dcd_ra8_usb_internal.h.

◆ ep_create_calls

volatile uint32_t ra8_usb_dcd_diag_t::ep_create_calls

+0x3C endpoint-create invocations.

Definition at line 122 of file ux_dcd_ra8_usb_internal.h.

◆ ep_create_fail

volatile uint32_t ra8_usb_dcd_diag_t::ep_create_fail

+0x40 endpoint-create failures.

Definition at line 123 of file ux_dcd_ra8_usb_internal.h.

◆ in_rearm_nak

volatile uint32_t ra8_usb_dcd_diag_t::in_rearm_nak

+0x30 stashed IN at PID=NAK with a loaded bank; PID forced back to BUF.

Definition at line 116 of file ux_dcd_ra8_usb_internal.h.

◆ in_restage_nak

volatile uint32_t ra8_usb_dcd_diag_t::in_restage_nak

+0x34 stashed IN at PID=NAK, empty bank, no BEMP; current chunk re-staged.

Definition at line 118 of file ux_dcd_ra8_usb_internal.h.

◆ in_stage_fail

volatile uint32_t ra8_usb_dcd_diag_t::in_stage_fail

+0x38 queue_in failed while staging an IN chunk from the IRQ walk.

Definition at line 120 of file ux_dcd_ra8_usb_internal.h.

◆ irq_walk_pipe2_complete

volatile uint32_t ra8_usb_dcd_diag_t::irq_walk_pipe2_complete

+0x28 queue_out drained pipe2.

Definition at line 114 of file ux_dcd_ra8_usb_internal.h.

◆ irq_walk_pipe2_no_data

volatile uint32_t ra8_usb_dcd_diag_t::irq_walk_pipe2_no_data

+0x2C queue_out returned no_data.

Definition at line 115 of file ux_dcd_ra8_usb_internal.h.

◆ irq_walk_pipe2_seen

volatile uint32_t ra8_usb_dcd_diag_t::irq_walk_pipe2_seen

+0x24 pipe2 walked with non-NULL xfer.

Definition at line 113 of file ux_dcd_ra8_usb_internal.h.

◆ irq_walk_total

volatile uint32_t ra8_usb_dcd_diag_t::irq_walk_total

+0x20 IRQ pipe-walk loop iterations.

Definition at line 112 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_bad_pipe

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_bad_pipe

+0x08 pipe index >= max.

Definition at line 106 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_null_arg

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_null_arg

+0x04 tr or ep was NULL.

Definition at line 105 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_pipe2_block

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_pipe2_block

+0x18 about to tx_semaphore_get.

Definition at line 110 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_pipe2_in

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_pipe2_in

+0x0C pipe == 2.

Definition at line 107 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_pipe2_out_dir

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_pipe2_out_dir

+0x10 pipe == 2 + OUT direction.

Definition at line 108 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_pipe2_stashed

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_pipe2_stashed

+0x14 pipe2 OUT slot populated.

Definition at line 109 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_pipe2_woken

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_pipe2_woken

+0x1C tx_semaphore_get returned.

Definition at line 111 of file ux_dcd_ra8_usb_internal.h.

◆ xfer_req_total

volatile uint32_t ra8_usb_dcd_diag_t::xfer_req_total

+0x00 priv_transfer_request entered.

Definition at line 104 of file ux_dcd_ra8_usb_internal.h.


The documentation for this struct was generated from the following file: