That is, overall, very much the case - you need to read the datasheet for what the hardware can do, then the SDK documentation for how the SDK gives access to that feature. Reading just one or the other is not sufficient to do pretty much anything.
1. when reading the pico_bootrom SDK documentation, I feel it is not meant to read as a standalone document
That group of APIs is a bit of an oddball, being in ROM (and hence 'hardware' so documented in the datasheet), but access granted to it by the SDK. Arguably the SDK documentation could be improved to highlight the overlap., e.g.: I had to go back to the RP2350 datasheet's get_sys_info chapter to get the information on the available flags for the SDK's rom_get_sys_info() method. Am I missing something in the SDK documentation?
For all native SDK functions, you'd expect to find parameters to functions documented in the SDK manual (often as typedefs/enums, which are listed at the head of each section).
All of the registers and their fields are defined in a systematic way (so that if you are on top of it you should be able to invent the identifiers you need from the hardware datasheet; in practice I tend to go and open the .h file to check). However, the SDK normally provides interface functions so that you don't need to reference register fields directly - and aims to provide them as inlines, organized such that the compiler should optimise away the SDK wrapping and give you the same code as you might have written to bash the register fields by hand. So the SDK documentation doesn't feel the need to document these low-level definitions that you shouldn't need unless trying to do something that the SDK doesn't support.2. In 12.15.1.2 List of registers, It mentions that the "sysinfo registers start at the base address of 0x40000000 (defined as SYSINFO_BASE in SDK)". However, I seem to be unable to find SYSINFO_BASE in the Pico C SDK, what am I missing?
Statistics: Posted by arg001 — Mon Dec 01, 2025 12:05 pm