List of all running processes in Contiki OS
Asked Answered
Q

1

6

is there a possibility to list all running processes in contiki os and output the result on the debugging output (i.e. UART) ?

Quixotic answered 10/11, 2015 at 13:21 Comment(0)
Q
3

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

Quixotic answered 10/11, 2015 at 13:30 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.