is there a possibility to list all running processes in contiki os and output the result on the debugging output (i.e. UART) ?
List of all running processes in Contiki OS
Insert this in the contiki platform.c and main():
struct process *p;
uint8_t ps;
int n;
int
main(void) /*contiki main() here */
{
n=0;
while(1)
{
//...
//...
/*************************************************************/
if(n==100)
{
uint8_t ps=process_nevents();
PRINTF("there are %u events in the queue", ps);
PRINTF("\n\n");
PRINTF("Processes:");
for(p = PROCESS_LIST(); p != NULL; p = p->next)
{
char namebuf[30];
strncpy(namebuf, PROCESS_NAME_STRING(p), sizeof(namebuf));
PRINTF("%s", namebuf);
PRINTF("\n\n");
n=0;
}
}
n +=1;
/*********************************************************************/
//...
//...
}
return 0;
}
this will output the running processes every 100th iteration of the main loop
if you use UART as debugging port you have to redirect the output of PRINTF() to the correct port by i.e. on atmega128rfa1
/* Second rs232 port for debugging or slip alternative */
rs232_init(RS232_PORT_1, USART_BAUD_9600,USART_PARITY_NONE |
USART_STOP_BITS_1 | USART_DATA_BITS_8);
/* Redirect stdout */
/* #if RF230BB_CONF_LEDONPORTE1 || defined(RAVEN_LCD_INTERFACE) */
rs232_redirect_stdout(RS232_PORT_1);
the contiki shell source code contains very useful commands that can easily be used for debugging without using the entire shell, see http://anrg.usc.edu/contiki/index.php/Contiki_Shell
© 2022 - 2024 — McMap. All rights reserved.