Access Restricted

This page contains internal documentation that is not publicly available.


DHWCtrl.ListPeripherals

Enumerate every non-GPIO peripheral declared on this firmware, together with the pin configurations it supports and the physical GPIO pins each configuration consumes. One entry per (peripheral, pinset) combination - a peripheral with N supported pinsets appears N times. GPIO itself is not enumerated: addressing is SoC-native via DHWCtrlGpioPin (port + pin number) and the caller is expected to know their SoC. The Pins array on each entry lets the host detect pin conflicts between activated peripherals client-side.

Properties

Parameters (request frame)

None

Returned values (response frame)

Name Type/Size Description
Length of Entries Integer (8 bits) Number of elements in the Entries array
Entries Array One entry per (peripheral, pinset) combination.
Category Enumeration (8 bits) Peripheral category; selects which Activate / transfer commands apply.
Values (3):
  • Eth (0x00)
    Ethernet port; addressed by Eth* commands.
  • UsbHost (0x20)
    USB host controller; addressed by UsbHost* commands.
  • Flash (0x30)
    Flash slot; addressed by Flash* commands.
Index Integer (8 bits) Zero-based instance index for this peripheral category; passable as Index to the category's commands.
Pinset Enumeration (8 bits) One of the pinset variants supported for this peripheral; passable as Pinset to EthActivate or UsbHostActivate.
Ordinal index into the firmware's per-peripheral pinset array (mirrors a pinctrl-names entry). The valid set per peripheral instance is discoverable via ListPeripherals.
Values (8):
  • Pinset0 (0x00)
  • Pinset1 (0x01)
  • Pinset2 (0x02)
  • Pinset3 (0x03)
  • Pinset4 (0x04)
  • Pinset5 (0x05)
  • Pinset6 (0x06)
  • Pinset7 (0x07)
Length of Pins Integer (8 bits) Number of elements in the Pins array
Pins Array Physical GPIO pins this (peripheral, pinset) consumes.
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):
  • A (0x00)
  • B (0x01)
  • C (0x02)
  • D (0x03)
  • E (0x04)
  • F (0x05)
  • G (0x06)
  • H (0x07)
  • I (0x08)
  • J (0x09)
  • K (0x0A)
  • L (0x0B)
  • M (0x0C)
  • N (0x0D)
  • O (0x0E)
  • P (0x0F)
  • Q (0x10)
  • R (0x11)
  • S (0x12)
  • T (0x13)
  • U (0x14)
  • V (0x15)
  • W (0x16)
  • X (0x17)
  • Y (0x18)
  • Z (0x19)
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).