Struct probe_rs::architecture::arm::dp::Ctrl

source ·
pub struct Ctrl(pub u32);
Expand description

CTRL/STAT, Control/Status register (see ADI v5.2 B2.2.2)

Tuple Fields§

§0: u32

Implementations§

System powerup acknowledge. Indicates the status of the CSYSPWRUPACK signal. See Power control requirements and operation on page B2-78.

System powerup request. This bit controls the CSYSPWRUPREQ signal. See Power control requirements and operation on page B2-78.

Debug powerup acknowledge. Indicates the status of the CDBGPWRUPACK signal. See Power control requirements and operation on page B2-78.

Debug powerup request. This bit controls the CDBGPWRUPREQ signal. See Power control requirements and operation on page B2-78.

Debug reset acknowledge. Indicates the status of the CDBGRSTACK signal. See Debug reset control behavior on page B2-81.

Debug reset request. This bit controls the CDBGRSTREQ signal. See Debug reset control request on page B2-82.

After a powerup reset, this bit is 0b0.

Transaction counter. See The transaction counter on page B1-43. After a powerup reset, the value of this field is UNKNOWN.

It is IMPLEMENTATION DEFINED whether this field is implemented.

TRNCNT is not supported in MINDP configuration. In MINDP configuration, the effect of writing a value other than zero to TRNCNT or TRNMODE is UNPREDICTABLE. See also MINDP, Minimal DP extension on page B1-40.

For pushed operations, the DP performs a byte-by-byte comparison of the word that is supplied in an AP write transaction with the current word at the target AP address. The MASKLANE field is used to select the bytes to be included in this comparison. For more information about pushed operations, see Pushed-compare and pushed-verify operations on page B1-44.

Each of the four bits of the MASKLANE field corresponds to one of the four bytes of the words to be compared. Therefore, each bit is said to control one byte lane of the compare operation.

Table B2-8 shows how the bits of MASKLANE control the comparison masking.

This bit is set to 0b1 if one of the following Write Data Error occurs:

  • A parity or framing error on the data phase of a write.
  • A write that has been accepted by the DP is then discarded without being submitted to the AP. For more information, see Sticky flags and DP error responses on page B1-41.

Access to and how to clear this field are DATA LINK DEFINED:

JTAG-DP, all implementations

  • Access is reserved, RES0.

SW-DP, all implementations, and JTAG-DP, DPv1 and higher

  • Access is RO/WI.
  • To clear WDATAERR to 0b0, write 0b1 to the ABORT.WDERRCLR field in the ABORT register. A single write of the ABORT register can be used to clear multiple flags if necessary.

After clearing the WDATAERR flag, you must typically resend the corrupted data. After a powerup reset, WDATAERR is 0b0.

This bit is DATA LINK DEFINED

  • On JTAG-DP, the bit is reserved, RES0.
  • On SW-DP, access is RO/WI.

If the response to the previous AP read or RDBUFF read was OK, the bit is set to 0b1. If the response was not OK, it is cleared to 0b0.

This flag always indicates the response to the last AP read access. See Protocol error response on page B4-114.

After a powerup reset, this bit is 0b0.

Note

This field is defined for DPv1 and higher only.

This bit is set to 0b1 if an error is returned by an AP transaction. See Sticky flags and DP error responses on page B1-41.

Access to and how to clear this field are DATA LINK DEFINED:

JTAG-DP, all implementations

  • Access is R/W1C.
  • To clear STICKYERR to 0b0, write 0b1 to it, which signals the DP to clear the flag and set it to 0b0. A single write of the CTRL/STAT register can be used to clear multiple flags if necessary.

STICKYERR can also be cleared using the ABORT.STKERRCLR field.

SW-DP, all implementations, and JTAG-DP, DPv1 and higher

  • Access is RO/WI.
  • To clear STICKYERR to 0b0, write 0b1 to the ABORT.STKERRCLR field in the ABORT register. A single write of the ABORT register can be used to clear multiple flags if necessary.

After clearing CTRL/STAT.STICKYERR, you must find the location where the error that caused the flag to be set occurred.

After a powerup reset, this bit is 0b0.

This bit is set to 0b1 when a mismatch occurs during a pushed-compare operation or a match occurs during a pushed-verify operation. See Pushed-compare and pushed-verify operations on page B1-44. It is IMPLEMENTATION DEFINED whether this field is implemented. See MINDP, Minimal DP extension on page B1-40. Access to and how to clear this field are DATA LINK DEFINED:

JTAG-DP, all implementations

  • Access is R/W1C.
  • To clear STICKYCMP to 0b0, write 0b1 to it, which signals the DP to clear the flag and set it to 0b0. A single write of the CTRL/STAT register can be used to clear multiple flags if necessary. STICKYCMP can also be cleared using the ABORT.STKERRCLR field.

SW-DP, all implementations, and JTAG-DP, DPv1 and higher

  • Access is RO/WI. B2 DP Reference Information B2.2 DP register descriptions
  • To clear STICKYCMP to 0b0, write 0b1 to the ABORT.STKCMPCLR field in the ABORT register. A single write of the ABORT register can be used to clear multiple flags if necessary. After clearing STICKYCMP, you must retrieve the value of the transaction counter to find the location where the error that caused the flag to be set occurred.

After a powerup reset, this bit is 0b0.

This field sets the transfer mode for AP operations. In normal operation, AP transactions are passed to the AP for processing, as described in Using the AP to access debug resources on page A1-31. In pushed-verify and pushed-compare operations, the DP compares the value that is supplied in an AP write transaction with the value held in the target AP address. The AP write transaction generates a read access to the debug memory system as described in Pushed-compare and pushed-verify operations on page B1-44.

TRNMODE can have one of the following values:

0b00: Normal operation.
0b01: Pushed-verify mode.
0b10: Pushed-compare mode.
0b11: Reserved.

After a powerup reset, the value of this field is UNKNOWN.

Note

It is IMPLEMENTATION DEFINED whether this field is implemented.

TRNMODE is not supported in MINDP configuration. In MINDP configuration, the effect of writing a value other than zero to TRNCNT or TRNMODE is UNPREDICTABLE. See also MINDP, Minimal DP extension on page B1-40.

If overrun detection is enabled, this bit is set to 0b1 when an overrun occurs. See bit[0] of this register for details of enabling overrun detection. Access to and how to clear this field are DATA LINK DEFINED:

JTAG-DP, all implementations

  • Access is R/W1C.
  • To clear STICKYORUN to 0b0, write 0b1 to it, which signals the DP to clear the flag and set it to 0b0. A single write of the CTRL/STAT register can be used to clear multiple flags if necessary. STICKYORUN can also be cleared using the ABORT.STKERRCLR field. SW-DP, all implementations, and JTAG-DP, DPv1 and higher
  • Access is RO/WI.
  • To clear STICKYORUN to 0b0, write 0b1 to the ABORT.ORUNERRCLR field in the ABORT register.

A single write of the ABORT register can be used to clear multiple flags if necessary. After clearing STICKYORUN, you must find out which DP or AP transaction initiated the overrun that caused the flag to be set, and repeat the transactions for that DP or AP from the transaction pointed to by the transaction counter.

After a powerup reset, this bit is 0b0.

This bit can have one of the following values:

0b0: Overrun detection is disabled.
0b1: Overrun detection is enabled.

For more information about overrun detection, see Sticky flags and DP error responses on page B1-41.

After a powerup reset, this bit is 0b0.

System powerup request. This bit controls the CSYSPWRUPREQ signal. See Power control requirements and operation on page B2-78.

Debug powerup request. This bit controls the CDBGPWRUPREQ signal. See Power control requirements and operation on page B2-78.

Debug reset request. This bit controls the CDBGRSTREQ signal. See Debug reset control request on page B2-82.

After a powerup reset, this bit is 0b0.

Transaction counter. See The transaction counter on page B1-43. After a powerup reset, the value of this field is UNKNOWN.

It is IMPLEMENTATION DEFINED whether this field is implemented.

TRNCNT is not supported in MINDP configuration. In MINDP configuration, the effect of writing a value other than zero to TRNCNT or TRNMODE is UNPREDICTABLE. See also MINDP, Minimal DP extension on page B1-40.

For pushed operations, the DP performs a byte-by-byte comparison of the word that is supplied in an AP write transaction with the current word at the target AP address. The MASKLANE field is used to select the bytes to be included in this comparison. For more information about pushed operations, see Pushed-compare and pushed-verify operations on page B1-44.

Each of the four bits of the MASKLANE field corresponds to one of the four bytes of the words to be compared. Therefore, each bit is said to control one byte lane of the compare operation.

Table B2-8 shows how the bits of MASKLANE control the comparison masking.

This bit can have one of the following values:

0b0: Overrun detection is disabled.
0b1: Overrun detection is enabled.

For more information about overrun detection, see Sticky flags and DP error responses on page B1-41.

After a powerup reset, this bit is 0b0.

Trait Implementations§

Get a range of bits.
Set a range of bits.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
The version of the debug port that is required to read this register.
Converts to this type from the input type.
The address of the register (in bytes).
The name of the register as string.
The type returned in the event of a conversion error.
Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Get a single bit.
Set a single bit.
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Converts self into T using Into<T>. Read more
Causes self to use its Binary implementation when Debug-formatted.
Causes self to use its Display implementation when Debug-formatted.
Causes self to use its LowerExp implementation when Debug-formatted.
Causes self to use its LowerHex implementation when Debug-formatted.
Causes self to use its Octal implementation when Debug-formatted.
Causes self to use its Pointer implementation when Debug-formatted.
Causes self to use its UpperExp implementation when Debug-formatted.
Causes self to use its UpperHex implementation when Debug-formatted.
Formats each item in a sequence. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Pipes by value. This is generally the method you want to use. Read more
Borrows self and passes that borrow into the pipe function. Read more
Mutably borrows self and passes that borrow into the pipe function. Read more
Borrows self, then passes self.borrow() into the pipe function. Read more
Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Borrows self, then passes self.as_ref() into the pipe function.
Mutably borrows self, then passes self.as_mut() into the pipe function.
Borrows self, then passes self.deref() into the pipe function.
Mutably borrows self, then passes self.deref_mut() into the pipe function.
Immutable access to a value. Read more
Mutable access to a value. Read more
Immutable access to the Borrow<B> of a value. Read more
Mutable access to the BorrowMut<B> of a value. Read more
Immutable access to the AsRef<R> view of a value. Read more
Mutable access to the AsMut<R> view of a value. Read more
Immutable access to the Deref::Target of a value. Read more
Mutable access to the Deref::Target of a value. Read more
Calls .tap() only in debug builds, and is erased in release builds.
Calls .tap_mut() only in debug builds, and is erased in release builds.
Calls .tap_borrow() only in debug builds, and is erased in release builds.
Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Calls .tap_ref() only in debug builds, and is erased in release builds.
Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Calls .tap_deref() only in debug builds, and is erased in release builds.
Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Attempts to convert self into T using TryInto<T>. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more