323 lines
14 KiB
C
323 lines
14 KiB
C
/*****************************************************************************/
|
||
/* ZTYP Technology , Inc. Copyright (c) 2001-2018 */
|
||
/*****************************************************************************/
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* INCLUDE FILES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
#include <string.h>
|
||
|
||
#include "app_cfg.h"
|
||
#include "cpu_core.h"
|
||
#include "os.h"
|
||
#include "bsp.h"
|
||
#include "bsp_sys.h"
|
||
|
||
#include "usr_bsp_sys.h"
|
||
#include "usr_drv_sys.h"
|
||
|
||
#include "usr_task_sys.h"
|
||
#include "usr_task_network.h"
|
||
#include "usr_task_watchdog.h"
|
||
#include "usr_task_heart.h"
|
||
#include "usr_task_inside_para_sensor.h"
|
||
#include "usr_task_many_para_sensor.h"
|
||
#include "usr_task_camera.h"
|
||
#include "usr_task_rtc.h"
|
||
#include "usr_task_timer.h"
|
||
#include "usr_task_imu.h"
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL DEFINES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL CONSTANTS
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL DATA TYPES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL GLOBAL VARIABLES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
static OS_STK AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE];
|
||
static OS_STK AppTaskUsrWatchdogStk[APP_CFG_TASK_USR_WATCHDOG_STK_SIZE];
|
||
static OS_STK AppTaskUsrTimerStk[APP_CFG_TASK_USR_TIMER_STK_SIZE];
|
||
static OS_STK AppTaskUsrRtcStk[APP_CFG_TASK_USR_RTC_STK_SIZE];
|
||
static OS_STK AppTaskUsrHeartStk[APP_CFG_TASK_USR_HEART_STK_SIZE];
|
||
static OS_STK AppTaskUsrNetworkStk[APP_CFG_TASK_USR_NETWORK_STK_SIZE];
|
||
static OS_STK AppTaskUsrCameraStk[APP_CFG_TASK_USR_CAMERA_STK_SIZE];
|
||
static OS_STK AppTaskUsrInsideSensorStk[APP_CFG_TASK_USR_INSIDE_SENSOR_STK_SIZE];
|
||
static OS_STK AppTaskUsrManyParaSensorStk[APP_CFG_TASK_USR_MANY_PARA_SENSOR_STK_SIZE];
|
||
static OS_STK AppTaskUsrImuSensorStk[APP_CFG_TASK_USR_IMU_SENSOR_STK_SIZE];
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL MACRO'S
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* LOCAL FUNCTION PROTOTYPES
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
static void AppTaskCreate (void);
|
||
|
||
static void AppTaskStart (void *p_arg);
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* main()
|
||
*
|
||
* Description : Entry point for C code.
|
||
*
|
||
* Arguments : none.
|
||
*
|
||
* Returns : none.
|
||
*
|
||
* Note(s) : (1) It is assumed that your code will call main() once you have performed all necessary
|
||
* initialization.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
int main (void)
|
||
{
|
||
#if (OS_TASK_NAME_EN > 0)
|
||
CPU_INT08U err;
|
||
#endif
|
||
|
||
#if (CPU_CFG_NAME_EN == DEF_ENABLED)
|
||
CPU_ERR cpu_err;
|
||
#endif
|
||
|
||
#if (CPU_CFG_NAME_EN == DEF_ENABLED)
|
||
CPU_NameSet((CPU_CHAR *)"TM4C1294NCPDT",
|
||
(CPU_ERR *)&cpu_err);
|
||
#endif
|
||
|
||
CPU_IntDis(); /* Disable all interrupts. */
|
||
|
||
OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */
|
||
|
||
OSTaskCreateExt((void (*)(void *)) AppTaskStart, /* Create the start task */
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_START_PRIO,
|
||
(INT16U ) APP_CFG_TASK_START_PRIO,
|
||
(OS_STK *)&AppTaskStartStk[0],
|
||
(INT32U ) APP_CFG_TASK_START_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
|
||
#if (OS_TASK_NAME_EN > 0)
|
||
OSTaskNameSet(APP_CFG_TASK_START_PRIO, (INT8U *)"Start", &err);
|
||
#endif
|
||
|
||
OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */
|
||
|
||
while (1) {
|
||
;
|
||
}
|
||
}
|
||
|
||
|
||
/*$PAGE*/
|
||
/*
|
||
*********************************************************************************************************
|
||
* App_TaskStart()
|
||
*
|
||
* Description : Startup task example code.
|
||
*
|
||
* Arguments : p_arg Argument passed by 'OSTaskCreate()'.
|
||
*
|
||
* Returns : none.
|
||
*
|
||
* Created by : main().
|
||
*
|
||
* Notes : (1) The first line of code is used to prevent a compiler warning because 'p_arg' is not
|
||
* used. The compiler should not generate any code for this statement.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
static void AppTaskStart (void *p_arg)
|
||
{
|
||
CPU_INT32U cpu_clk_freq;
|
||
CPU_INT32U cnts;
|
||
(void)p_arg; /* See Note #1 */
|
||
|
||
|
||
(void)&p_arg;
|
||
|
||
BSP_Init(); /* Initialize BSP functions */
|
||
|
||
cpu_clk_freq = BSP_SysClkFreqGet(); /* Determine SysTick reference freq. */
|
||
cnts = cpu_clk_freq /* Determine nbr SysTick increments */
|
||
/ (CPU_INT32U)OS_TICKS_PER_SEC;
|
||
|
||
OS_CPU_SysTickInit(cnts);
|
||
|
||
CPU_Init(); /* Initialize the uC/CPU services */
|
||
|
||
#if (OS_TASK_STAT_EN > 0)
|
||
OSStatInit(); /* Determine CPU capacity */
|
||
#endif
|
||
|
||
Mem_Init();
|
||
|
||
#ifdef CPU_CFG_INT_DIS_MEAS_EN
|
||
CPU_IntDisMeasMaxCurReset();
|
||
#endif
|
||
/* <20><>usr bsp <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD> */
|
||
usr_bsp_set_sysclock(cpu_clk_freq);
|
||
/* <20><>ʼ<EFBFBD><CABC>usrbsp */
|
||
usr_bsp_sys_init();
|
||
/* <20><>ʼ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> */
|
||
usr_drv_sys_init();
|
||
/* <20>û<EFBFBD><C3BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC> */
|
||
usr_task_sys_init();
|
||
|
||
AppTaskCreate(); /* Creates all the necessary application tasks. */
|
||
|
||
while (DEF_ON) {
|
||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
bsp_run_led(0);
|
||
OSTimeDly(1000);
|
||
bsp_run_led(1);
|
||
OSTimeDly(1000);
|
||
}
|
||
}
|
||
|
||
|
||
/*
|
||
*********************************************************************************************************
|
||
* AppTaskCreate()
|
||
*
|
||
* Description : Create the application tasks.
|
||
*
|
||
* Argument(s) : none.
|
||
*
|
||
* Return(s) : none.
|
||
*
|
||
* Caller(s) : AppTaskStart()
|
||
*
|
||
* Note(s) : none.
|
||
*********************************************************************************************************
|
||
*/
|
||
|
||
static void AppTaskCreate (void)
|
||
{
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_watchdog,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrWatchdogStk[APP_CFG_TASK_USR_WATCHDOG_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_WATCHDOG_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_WATCHDOG_PRIO,
|
||
(OS_STK *)&AppTaskUsrWatchdogStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_WATCHDOG_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_timer,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrTimerStk[APP_CFG_TASK_USR_TIMER_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_TIMER_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_TIMER_PRIO,
|
||
(OS_STK *)&AppTaskUsrTimerStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_TIMER_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>RTC<54><43><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_rtc,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrRtcStk[APP_CFG_TASK_USR_RTC_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_RTC_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_RTC_PRIO,
|
||
(OS_STK *)&AppTaskUsrRtcStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_RTC_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_network,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrNetworkStk[APP_CFG_TASK_USR_NETWORK_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_NETWORK_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_NETWORK_PRIO,
|
||
(OS_STK *)&AppTaskUsrNetworkStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_NETWORK_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_heart,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrHeartStk[APP_CFG_TASK_USR_HEART_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_HEART_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_HEART_PRIO,
|
||
(OS_STK *)&AppTaskUsrHeartStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_HEART_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_camera,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrCameraStk[APP_CFG_TASK_USR_CAMERA_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_CAMERA_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_CAMERA_PRIO,
|
||
(OS_STK *)&AppTaskUsrCameraStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_CAMERA_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_inside_para_sensor,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrInsideSensorStk[APP_CFG_TASK_USR_INSIDE_SENSOR_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_INSIDE_SENSOR_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_INSIDE_SENSOR_PRIO,
|
||
(OS_STK *)&AppTaskUsrInsideSensorStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_INSIDE_SENSOR_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_many_para_sensor,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrManyParaSensorStk[APP_CFG_TASK_USR_MANY_PARA_SENSOR_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_MANY_PARA_SENSOR_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_MANY_PARA_SENSOR_PRIO,
|
||
(OS_STK *)&AppTaskUsrManyParaSensorStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_MANY_PARA_SENSOR_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>IMU<4D><55><EFBFBD><EFBFBD> */
|
||
OSTaskCreateExt((void (*)(void *)) usr_task_imu,
|
||
(void *) 0,
|
||
(OS_STK *)&AppTaskUsrImuSensorStk[APP_CFG_TASK_USR_IMU_SENSOR_STK_SIZE - 1],
|
||
(INT8U ) APP_CFG_TASK_USR_IMU_SENSOR_PRIO,
|
||
(INT16U ) APP_CFG_TASK_USR_IMU_SENSOR_PRIO,
|
||
(OS_STK *)&AppTaskUsrImuSensorStk[0],
|
||
(INT32U ) APP_CFG_TASK_USR_IMU_SENSOR_STK_SIZE,
|
||
(void *) 0,
|
||
(INT16U )(OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR));
|
||
}
|
||
|