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

What one call to c6_fwver_link_pump actually did on the wire. More...

#include <c6_fwver.h>

Data Fields

uint16_t transfers
 Full-duplex transactions clocked.
uint16_t frames
 Well-formed payload frames handed to the sink.
uint16_t idle
 Filler frames the co-processor returned (len zero).
uint16_t bad_checksum
 Frames whose recomputed checksum disagreed.
uint16_t malformed
 Frames whose offset or length could not be believed.
uint16_t hs_timeouts
 Transactions abandoned waiting for HANDSHAKE.
uint16_t ifnum_defect
 Bad-checksum frames explained by the co-processor's if_num accounting; see the app README.
bool bus_error
 A bus transfer did not return RET_OK.
bool sink_stopped
 The sink asked the pump to stop early.

Detailed Description

What one call to c6_fwver_link_pump actually did on the wire.

Counted rather than inferred, because the difference between "the co-processor sent nothing" and "the co-processor sent frames this host rejected" is the difference between a bench fault and a firmware fault, and a bare pass/fail cannot tell them apart.

Invariant
frames + idle + bad_checksum + malformed never exceeds transfers: every counted frame came from one transaction.
transfers never exceeds the max_transfers the caller passed.
Example:
(void)c6_fwver_link_pump(..., &stats);
ra8_err_t c6_fwver_link_pump(uint8_t if_type, uint8_t if_num, const uint8_t *payload, uint16_t payload_len, uint16_t max_transfers, c6_fwver_sink_t sink, c6_fwver_pump_stats_t *stats)
Clock full-duplex transactions until the sink is satisfied.
struct c6_fwver_pump_stats c6_fwver_pump_stats_t
void c6_fwver_put_u32(uint32_t value)
Emit an unsigned 32-bit value in decimal.
uint16_t transfers
Full-duplex transactions clocked.
Definition c6_fwver.h:210
See also
c6_fwver_link_pump
Since
0.1.0

Definition at line 209 of file c6_fwver.h.

Field Documentation

◆ bad_checksum

uint16_t c6_fwver_pump_stats::bad_checksum

Frames whose recomputed checksum disagreed.

Definition at line 213 of file c6_fwver.h.

Referenced by c6_fwver_print_pump(), and c6_fwver_rx_dispatch().

◆ bus_error

bool c6_fwver_pump_stats::bus_error

A bus transfer did not return RET_OK.

Definition at line 218 of file c6_fwver.h.

Referenced by c6_fwver_link_pump(), and c6_fwver_print_pump().

◆ frames

uint16_t c6_fwver_pump_stats::frames

Well-formed payload frames handed to the sink.

Definition at line 211 of file c6_fwver.h.

Referenced by c6_fwver_print_pump(), and c6_fwver_rx_dispatch().

◆ hs_timeouts

uint16_t c6_fwver_pump_stats::hs_timeouts

Transactions abandoned waiting for HANDSHAKE.

Definition at line 215 of file c6_fwver.h.

Referenced by c6_fwver_link_pump(), and c6_fwver_print_pump().

◆ idle

uint16_t c6_fwver_pump_stats::idle

Filler frames the co-processor returned (len zero).

Definition at line 212 of file c6_fwver.h.

Referenced by c6_fwver_print_pump(), and c6_fwver_rx_dispatch().

◆ ifnum_defect

uint16_t c6_fwver_pump_stats::ifnum_defect

Bad-checksum frames explained by the co-processor's if_num accounting; see the app README.

Definition at line 216 of file c6_fwver.h.

Referenced by c6_fwver_print_pump(), and c6_fwver_rx_dispatch().

◆ malformed

uint16_t c6_fwver_pump_stats::malformed

Frames whose offset or length could not be believed.

Definition at line 214 of file c6_fwver.h.

Referenced by c6_fwver_print_pump(), and c6_fwver_rx_dispatch().

◆ sink_stopped

bool c6_fwver_pump_stats::sink_stopped

The sink asked the pump to stop early.

Definition at line 219 of file c6_fwver.h.

Referenced by c6_fwver_link_pump(), and c6_fwver_print_pump().

◆ transfers

uint16_t c6_fwver_pump_stats::transfers

Full-duplex transactions clocked.

Definition at line 210 of file c6_fwver.h.

Referenced by c6_fwver_link_pump(), and c6_fwver_print_pump().


The documentation for this struct was generated from the following file:
  • examples/ek_ra8d2/hw_validated/c6/c6_fw_version/inc/c6_fwver.h