85 lines
3.5 KiB
C
85 lines
3.5 KiB
C
|
|
/*
|
||
|
|
* Copyright (C) 2018-2021 Texas Instruments Incorporated
|
||
|
|
*
|
||
|
|
* Redistribution and use in source and binary forms, with or without
|
||
|
|
* modification, are permitted provided that the following conditions
|
||
|
|
* are met:
|
||
|
|
*
|
||
|
|
* Redistributions of source code must retain the above copyright
|
||
|
|
* notice, this list of conditions and the following disclaimer.
|
||
|
|
*
|
||
|
|
* Redistributions in binary form must reproduce the above copyright
|
||
|
|
* notice, this list of conditions and the following disclaimer in the
|
||
|
|
* documentation and/or other materials provided with the
|
||
|
|
* distribution.
|
||
|
|
*
|
||
|
|
* Neither the name of Texas Instruments Incorporated nor the names of
|
||
|
|
* its contributors may be used to endorse or promote products derived
|
||
|
|
* from this software without specific prior written permission.
|
||
|
|
*
|
||
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#include <stdlib.h>
|
||
|
|
#include <kernel/dpl/DebugP.h>
|
||
|
|
#include "ti_drivers_config.h"
|
||
|
|
#include "ti_board_config.h"
|
||
|
|
#include "FreeRTOS.h"
|
||
|
|
#include "task.h"
|
||
|
|
|
||
|
|
#define MAIN_TASK_PRI (configMAX_PRIORITIES-1)
|
||
|
|
|
||
|
|
#define MAIN_TASK_SIZE (16384U/sizeof(configSTACK_DEPTH_TYPE))
|
||
|
|
StackType_t gMainTaskStack[MAIN_TASK_SIZE] __attribute__((aligned(32)));
|
||
|
|
|
||
|
|
StaticTask_t gMainTaskObj;
|
||
|
|
TaskHandle_t gMainTask;
|
||
|
|
|
||
|
|
void dcl_df22_main(void *args);
|
||
|
|
|
||
|
|
void freertos_main(void *args)
|
||
|
|
{
|
||
|
|
dcl_df22_main(NULL);
|
||
|
|
|
||
|
|
vTaskDelete(NULL);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
int main(void)
|
||
|
|
{
|
||
|
|
/* init SOC specific modules */
|
||
|
|
System_init();
|
||
|
|
Board_init();
|
||
|
|
|
||
|
|
/* This task is created at highest priority, it should create more tasks and then delete itself */
|
||
|
|
gMainTask = xTaskCreateStatic( freertos_main, /* Pointer to the function that implements the task. */
|
||
|
|
"freertos_main", /* Text name for the task. This is to facilitate debugging only. */
|
||
|
|
MAIN_TASK_SIZE, /* Stack depth in units of StackType_t typically uint32_t on 32b CPUs */
|
||
|
|
NULL, /* We are not using the task parameter. */
|
||
|
|
MAIN_TASK_PRI, /* task priority, 0 is lowest priority, configMAX_PRIORITIES-1 is highest */
|
||
|
|
gMainTaskStack, /* pointer to stack base */
|
||
|
|
&gMainTaskObj ); /* pointer to statically allocated task object memory */
|
||
|
|
configASSERT(gMainTask != NULL);
|
||
|
|
|
||
|
|
/* Start the scheduler to start the tasks executing. */
|
||
|
|
vTaskStartScheduler();
|
||
|
|
|
||
|
|
/* The following line should never be reached because vTaskStartScheduler()
|
||
|
|
will only return if there was not enough FreeRTOS heap memory available to
|
||
|
|
create the Idle and (if configured) Timer tasks. Heap management, and
|
||
|
|
techniques for trapping heap exhaustion, are described in the book text. */
|
||
|
|
DebugP_assertNoLog(0);
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|