Access Restricted
This page contains internal documentation that is not publicly available.
DHWCtrl.ListPeripherals
Discover which instances of a given peripheral
Category can be brought up with a candidate
PinMap. The firmware returns the
PeripheralIndex of every instance in that category
whose required functions are all present in PinMap
and routable to the GPIOs it assigns them. An empty result
means the wiring drives no instance of that category.
GPIO itself is not enumerated: addressing is SoC-native via
DHWCtrlGpioPin (port + pin number) and the
caller is expected to know their SoC.
The response carries no pin information; since each
Activate map is exact, the host already holds every
instance's pin set and detects cross-peripheral pin
conflicts client-side.
Properties
- Command code: 0xE1F0
- Command timeout: 100 ms
- Possible status codes: General status codes
Parameters (request frame)
| Name | Type/Size | Description | ||
|---|---|---|---|---|
| Category | Enumeration (8 bits) |
Peripheral category to enumerate; only instances of this category are returned.
Peripheral category; selects which Activate/transfer commands apply, and is the mandatory filter of ListPeripherals. Values (4):
|
||
| Length of PinMap | Integer (8 bits) |
Number of elements in the PinMap array |
||
| PinMap | Array | Candidate logical-to-physical pin assignments to test. Each returned index is an instance of Category whose required functions are all present here and routable to the assigned GPIOs. | ||
| Entry.Name | Enumeration (8 bits) |
Logical peripheral function this pin carries.
Logical pin-function identifier, prefixed by electrical bus/signal family (not by DHWCtrl peripheral category). A signal shared by 2 roles on the same bus reuses a single keyword - e.g. UsbDp / UsbDm serve both a USB host and a (future) USB device role. It is used as the logical side of a DHWCtrlPinMapEntry; a given Activate accepts only the names of the one or more buses its category uses. Values (24):
|
||
| Entry.Pin.Port | Enumeration (8 bits) |
GPIO bank letter (A..Z).
SoC-native GPIO bank identifier. The keyword letters mirror the bank designators on STM32-style parts; not every part implements the full A..Z range. The firmware rejects banks it doesn't support with ErrInvalidParam. Values (26):
|
||
| Entry.Pin.Number | Integer (8 bits) | Pin number within the bank. Practical range is SoC-specific (typically 0..15 on STM32). Named Number rather than Index to avoid a NameChecker collision with the peripheral-instance Index in ListPeripherals's Pins array (struct parents don't currently participate in field-name namespacing). | ||
Returned values (response frame)
| Name | Type/Size | Description | |
|---|---|---|---|
| Length of Indices | Integer (8 bits) |
Number of elements in the Indices array |
|
| Indices | Array | Zero-based instance indices of Category that the supplied PinMap can bring up; each is passable as PeripheralIndex to the category's Activate command. | |
| Index | Integer (8 bits) | - | |