AccessPort isn’t printing my printf statement in my task, but keil debug is running through my program.

Really Strange issue where AccessPort isnt printing my print statement in my task however, the debugger in keil seems like its running through my code. I run an st-link discovery if that matters. ~~~

include <stdio.h>

include <stdlib.h>

/* FreeRTOS includes. */

include “FreeRTOS.h”

include “task.h”

/* Used as a loop counter to create a very crude delay. */

define mainDELAYLOOPCOUNT ( 0xfffff )

/* The task functions prototype*/ void vTask1( void *pvParameters ); void vTask2( void *pvParameters ); extern void SystemInit(void); extern void SystemCoreClockUpdate(void); extern void stdout_init (void); int main( void ) { //essential board initalization: SystemInit();
//This function sets up the clock:
SystemCoreClockUpdate();

// Initialize the serial I/0(console).
stdout_init();

printf("TESTING");




/* Create one of the two tasks. */
xTaskCreate(    vTask1,     /* Pointer to the function that implements the task. */
                "Task 1",   /* Text name for the task.  This is to facilitate debugging only. */
                240,        /* Stack depth in words. */
                NULL,       /* We are not using the task parameter. */
                1,          /* This task will run at priority 1. */
                NULL );     /* We are not using the task handle. */

/* Create the other task in exactly the same way. */
xTaskCreate( vTask2, "Task 2", 240, NULL, 1, NULL );



/* Start the scheduler so our tasks start executing. */
vTaskStartScheduler();

/* If all is well we will never reach here as the scheduler will now be
running.  If we do reach here then it is likely that there was insufficient
heap available for the idle task to be created. */
for( ;; );
} /———————————————————–/ void vTask1( void *pvParameters ) { const char *pcTaskName = “Task 1 is runningn”; volatile unsigned long ul;
/* As per most tasks, this task is implemented in an infinite loop. */
for( ;; )
{
    /* Print out the name of this task. */
    /* lets make the sema un-available */
    printf("%sn", pcTaskName);


    /* Delay for a period. */
    for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
    {
        /* This loop is just a very crude delay implementation.  There is
        nothing to do in here.  Later exercises will replace this crude
        loop with a proper delay/sleep function. */
    }
}
} /———————————————————–/ void vTask2( void *pvParameters ) { const char *pcTaskName = “Task 2 is runningn”; volatile unsigned long ul;
/* As per most tasks, this task is implemented in an infinite loop. */
for( ;; )
{
    printf("%sn", pcTaskName);
    /* Print out the name of this task. */

    /* Delay for a period. */
for( ul = 0; ul < mainDELAY_LOOP_COUNT; ul++ )
    {
        /* This loop is just a very crude delay implementation.  There is
        nothing to do in here.  Later exercises will replace this crude
        loop with a proper delay/sleep function. */
    }
}
} /———————————————————–/ void vApplicationMallocFailedHook( void ) { /* This function will only be called if an API call to create a task, queue or semaphore fails because there is too little heap RAM remaining. / for( ;; ); } /———————————————————–*/ void vApplicationStackOverflowHook( xTaskHandle pxTask, signed char *pcTaskName ) { / This function will only be called if a task overflows its stack. Note that stack overflow checking does slow down the context switch implementation. / for( ;; ); } /———————————————————–*/ void vApplicationIdleHook( void ) { /* This example does not use the idle hook to perform any processing. / } /———————————————————–*/ void vApplicationTickHook( void ) { /* This example does not use the tick hook to perform any processing. */ } ~~~

AccessPort isn’t printing my printf statement in my task, but keil debug is running through my program.

What is AccessPoint? Is anything printing out at all, before or after the scheduler has been started? Is your implementation of printf() thread safe (as you are calling it from two tasks simultaniously)?