UART base address


I have a question for UART base address.
For pixhawk, I found that uartA = console = serial 0 and uartC = telemtry 1 (mavlink I think) = serial 1.
However, I don’t know their memory address out of following lists.
STM32_USART1_BASE 0x40011000 /* 0x40011000-0x400113ff: USART1 /
STM32_USART2_BASE 0x40004400 /
0x40004400-0x400047ff: USART2 /
STM32_USART3_BASE 0x40004800 /
0x40004800-0x40004bff: USART3 /
STM32_UART4_BASE 0x40004c00 /
0x40004c00-0x40004fff: UART4 /
STM32_UART5_BASE 0x40005000 /
0x40005000-0x400053ff: UART5 /
STM32_USART6_BASE 0x40011400 /
0x40011400-0x400117ff: USART6 /
STM32_UART7_BASE 0x40007800 /
0x40007800-0x40007bff: UART7 /
STM32_UART8_BASE 0x40007c00 /
0x40007c00-0x40007fff: UART8 */

Could you let me know mapped addresses of uarts (for console and mavlink) ?

Also, if you have such information on pixracer (also for console and mavlink), please let me know.

Only the NuttX RTOS knows the real (low level) device addresses which are in

This is the main philosophy of operating systems, the user shouldn’t deal with too much ioctl.

But in userspace, these devices are mapped into file descriptors under /dev like /dev/ttyS0, /dev/ttyS1 and so on. The OS maps the low level addresses into file pointers’ address in RAM, so u don’t have to deal with the virtual addresses, u have to deal with only the device files.

If u wanna know which uart is used for temlemetry and so on, u have to check the RTOS init script: