Notas FreeRTOS

Notas que voy encontrando sobre el desarrollo de aplicaciones con FreeRTOS v9. La mayoria de las notas y ejercicios estan disponibles en los siguientes documentos (fuente: http://www.freertos.org/Documentation/RTOS_book.html) mientras otras notas las encontré en el foro (fuente: http://www.freertos.org/FreeRTOS_Support_Forum_Archive/freertos_support_forum_archive_index.html).

Mutex

  • Cuando se tiene dos tareas con la misma prioridad y utilizan el mismo mutex para acceder a un elemento, hay que hacer un taskYIELD() despues de entregar el mutex para forzar el cambio de una tarea a otra, de lo contrario solo se ejecuta una sola tarea. Fuente: freertos_mutex_never_giving
  •  1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    void vHello(void *pvParameters){
        (void) pvParameters;
        
        while(1)
        {
            if ( xSemaphoreTake( myMutex, (TickType_t) 10 ) == pdTRUE )
            {
                UART_PutString("Hello\r\n");
                xSemaphoreGive(myMutex);
                taskYIELD();
            }
        }
    }
    
    void vHola(void *pvParameters){
        (void) pvParameters;
    
        while(1)
        {
            if ( xSemaphoreTake( myMutex, (TickType_t) 10 ) == pdTRUE )
            {
                UART_PutString("Hola\r\n");
                xSemaphoreGive(myMutex);
                taskYIELD();
            }
        }   
    }
    

  •  

pdMS_TO_TICKS()

Este macro se puede usar para convertir un tiempo especificado en milisegundos al tiempo especificado en ticks, por ejemplo:

const TickType_t xDelay500ms = pdMS_TO_TICKS( 500 );

xDelay500ms valdrá el número de ticks que equivalen a 500ms.

Comentarios

  1. Muy buena toda la información que vas recopilando y mostrando aquí. Sigue así.

    ResponderBorrar
    Respuestas
    1. Gracias, vere si puedo subir los proyectos que fui haciendo con FreeRTOS en los PSoCs.

      Borrar

Publicar un comentario

Entradas más populares de este blog

PSoC Creator Tools

sprintf en PSoC Creator 3.0 y 3.1