Hello Circuit Dojo Community,
Is there anyone or any team here utilizing Zephyr’s thread_analyzer debugging module or feature, in a way that permits redirecting its output from console UART to another arbitrary UART? Or to a memory location which application code can access?
In a Zephyr 2.6.0 based project, which also depends on parts of Nordic Semi sdk-nrf 1.6.1 I have enabled thread_analyzer with the following related symbols assigned in my app’s prj.conf file:
32 ## 2021-11-11 - Zephyr thread analyzer work:
33 CONFIG_THREAD_ANALYZER=y
34 CONFIG_THREAD_ANALYZER_USE_PRINTK=y
35 CONFIG_THREAD_ANALYZER_AUTO=n
36 CONFIG_THREAD_NAME=y
37 #CONFIG_THREAD_ANALYZER_AUTO_INTERVAL=5
At first try I observed thread statistics to print every five seconds on the “Zephyr chosen” UART, uart0
on the Sparkfun Thing Plus nRF9160 dev board I am using. By setting CONFIG_THREAD_ANALYZER_AUTO
to ‘n’ I can now print thread statistics just on demand, manually, through a CLI facility I’m building. But the CLI by design communicates on an alternate UART. (Arm Cortex-M33 has four UART peripherals). I would like the thread_analyzer messages to be directable to that non-console UART. I’m having trouble finding a Zephyr oriented, correct way to do this.
No one appears to have posted a question like this at Nordic Devzone. I also have cast the net with Google searches, but to no avail so far. Is there a specific chapter or section in Zephyr Project documentation that could answer this?
Reading through Zephyr’s built-in logging and tracing documentation, but so far not finding anything seemingly related to this present need and question.