EV-Embedded-Control-System/project/src/backup/freertos_app.c.bak

160 lines
4.3 KiB
C
Raw Normal View History

/* add user code begin Header */
/**
******************************************************************************
* File Name : freertos_app.c
* Description : Code for freertos applications
*/
/* add user code end Header */
/* Includes ------------------------------------------------------------------*/
#include "freertos_app.h"
/* private includes ----------------------------------------------------------*/
/* add user code begin private includes */
/* add user code end private includes */
/* private typedef -----------------------------------------------------------*/
/* add user code begin private typedef */
/* add user code end private typedef */
/* private define ------------------------------------------------------------*/
/* add user code begin private define */
/* add user code end private define */
/* private macro -------------------------------------------------------------*/
/* add user code begin private macro */
/* add user code end private macro */
/* private variables ---------------------------------------------------------*/
/* add user code begin private variables */
/* add user code end private variables */
/* private function prototypes --------------------------------------------*/
/* add user code begin function prototypes */
/* add user code end function prototypes */
/* private user code ---------------------------------------------------------*/
/* add user code begin 0 */
/* add user code end 0 */
/* task handler */
TaskHandle_t my_task01_handle;
/* Idle task control block and stack */
static StackType_t idle_task_stack[configMINIMAL_STACK_SIZE];
static StackType_t timer_task_stack[configTIMER_TASK_STACK_DEPTH];
static StaticTask_t idle_task_tcb;
static StaticTask_t timer_task_tcb;
/* External Idle and Timer task static memory allocation functions */
extern void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, StackType_t ** ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
extern void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, StackType_t ** ppxTimerTaskStackBuffer, uint32_t * pulTimerTaskStackSize );
/*
vApplicationGetIdleTaskMemory gets called when configSUPPORT_STATIC_ALLOCATION
equals to 1 and is required for static memory allocation support.
*/
void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, StackType_t ** ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
{
*ppxIdleTaskTCBBuffer = &idle_task_tcb;
*ppxIdleTaskStackBuffer = &idle_task_stack[0];
*pulIdleTaskStackSize = (uint32_t)configMINIMAL_STACK_SIZE;
}
/*
vApplicationGetTimerTaskMemory gets called when configSUPPORT_STATIC_ALLOCATION
equals to 1 and is required for static memory allocation support.
*/
void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, StackType_t ** ppxTimerTaskStackBuffer, uint32_t * pulTimerTaskStackSize )
{
*ppxTimerTaskTCBBuffer = &timer_task_tcb;
*ppxTimerTaskStackBuffer = &timer_task_stack[0];
*pulTimerTaskStackSize = (uint32_t)configTIMER_TASK_STACK_DEPTH;
}
/* add user code begin 1 */
/* add user code end 1 */
/**
* @brief initializes all task.
* @param none
* @retval none
*/
void freertos_task_create(void)
{
/* create my_task01 task */
xTaskCreate(my_task01_func,
"my_task01",
128,
NULL,
0,
&my_task01_handle);
}
/**
* @brief freertos init and begin run.
* @param none
* @retval none
*/
void wk_freertos_init(void)
{
/* add user code begin freertos_init 0 */
/* add user code end freertos_init 0 */
/* enter critical */
taskENTER_CRITICAL();
freertos_task_create();
/* add user code begin freertos_init 1 */
/* add user code end freertos_init 1 */
/* exit critical */
taskEXIT_CRITICAL();
/* start scheduler */
vTaskStartScheduler();
}
/**
* @brief my_task01 function.
* @param none
* @retval none
*/
void my_task01_func(void *pvParameters)
{
/* add user code begin my_task01_func 0 */
/* add user code end my_task01_func 0 */
/* add user code begin my_task01_func 2 */
/* add user code end my_task01_func 2 */
/* Infinite loop */
while(1)
{
/* add user code begin my_task01_func 1 */
vTaskDelay(1);
/* add user code end my_task01_func 1 */
}
}
/* add user code begin 2 */
/* add user code end 2 */