📄 task_ini.c
字号:
#include "RTOS\NUCLEUS\TASK\TASK_NUC.H"
#include "PUB\PUB_INCL.H"
#include "PUB\PUB__MSG.H"
NU_MEMORY_POOL System_Memory;
/* Define prototypes for function references. */
extern VOID PeriodicTask(UNSIGNED argc, VOID *argv);
extern VOID tcpServerTask(UNSIGNED argc, VOID *argv);
extern VOID tcpClientTask(UNSIGNED argc, VOID *argv);
extern VOID SystemTask(UNSIGNED argc, VOID *argv);
extern VOID LapvTask(UNSIGNED argc, VOID *argv);
extern VOID CommNetCtrlTask(UNSIGNED argc, VOID *argv);
extern VOID DbmsManagerTask(UNSIGNED argc, VOID *argv);
extern VOID LeaSysTask(UNSIGNED argc, VOID *argv);
extern VOID CcSysTask(UNSIGNED argc, VOID *argv);
#ifdef TEST_DRVIVER_DEVS
extern VOID TestDrvDevsTask(UNSIGNED argc, VOID *argv);
#endif
/* Define the Application_Initialize routine that determines the initial
Nucleus PLUS application environment. */
void Application_Initialize(void *first_available_memory)
{
VOID *pointer;
STATUS status;
UC i;
/* Create a system memory pool that will be used to allocate task stacks,
queue areas, etc. */
status=NU_Create_Memory_Pool(&System_Memory, "SYSMEM",
first_available_memory, 10*1024*1024, 50, NU_FIFO);
/************************************************************************/
/* */
/* Create each task in the system. */
/* */
/************************************************************************/
/* Create task 3. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 100*2048, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_NetServer, "Task 31", tcpServerTask, 0, NU_NULL, pointer, 100*2048, 1, 6,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 02. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 16*4096, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_System, "TK-APP02", SystemTask, 0, NU_NULL, pointer, 16*4096, 8, 10,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 03. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 4096*2, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_Lapv, "TK-APP03", LapvTask, 0, NU_NULL, pointer, 4096*2, 8, 10,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 04. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 4096*2, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_CommNetCtrl, "TK-APP04", CommNetCtrlTask, 0, NU_NULL, pointer, 4096*2, 8, 10,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 05. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 1024*4, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_DbmsManager, "TK-APP05", DbmsManagerTask, 0, NU_NULL, pointer, 1024*4, 8, 10,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 06. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 10*2048, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_LeaSys, "TK-APP06", LeaSysTask, 0, NU_NULL, pointer, 10*2048, 8, 10,NU_PREEMPT, NU_START);
/* Create task TASK APPLICATION 07. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 32*4096, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_CcSys, "TK-APP07", CcSysTask, 0, NU_NULL, pointer, 32*4096, 8, 10,NU_PREEMPT, NU_START);
#ifdef TEST_DRVIVER_DEVS
/* Create task 3. */
// status=NU_Allocate_Memory(&System_Memory, &pointer, 2048, NU_NO_SUSPEND);
// status=NU_Create_Task(&Task_TestDrvDevs, "Task 3", TestDrvDevsTask, 0, NU_NULL, pointer, 2048, 8, 2,NU_PREEMPT, NU_START);
#endif
/* Create task 0. */
status=NU_Allocate_Memory(&System_Memory, &pointer, 4096*16, NU_NO_SUSPEND);
status=NU_Create_Task(&Task_Periodic, "Task 0", PeriodicTask, 0, NU_NULL, pointer, 4096*16, 8, 10, NU_PREEMPT, NU_START);
/************************************************************************/
/* */
/* Create each Pipe in the system. */
/* */
/************************************************************************/
/* PIPE 1 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 2048*10,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_SysManager, "PIPE 1", pointer, 2048*10, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 2 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 2048*10,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_NetManagerCenter, "PIPE 2", pointer, 2048*10, NU_VARIABLE_SIZE,MAX_MSG_LEN,NU_FIFO);
/* PIPE 3 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 10*2048,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_Lapv, "PIPE 3", pointer, 10*2048, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 4 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 1024*4, NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_DbmsManager, "PIPE 4", pointer, 1024*4, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 5 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 2048*2,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_DlcSys, "PIPE 5", pointer, 2048*2, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 6 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 32*2048,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_CcSys, "PIPE 6", pointer, 32*2048, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 7 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 8*2048,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_CCAs, "PIPE 7", pointer, 8*2048, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 8 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 8*2048,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_CommNetCtrl, "PIPE 8", pointer, 8*2048, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/* PIPE 0 */
status=NU_Allocate_Memory(&System_Memory, &pointer, 2048*10,NU_NO_SUSPEND);
status=NU_Create_Pipe(&Pipe_Periodic, "PIPE 0", pointer, 2048*10, NU_VARIABLE_SIZE, MAX_MSG_LEN,NU_FIFO);
/************************************************************************/
/* */
/* Create each Semaphore in the system. */
/* */
/************************************************************************/
status=NU_Create_Semaphore(&Semaphore_EthernetSend, "Ethernet", 1, NU_FIFO);
status=NU_Create_Semaphore(&Semaphore_QMCHdlcSend, "QmcSend", 1, NU_FIFO);
status=NU_Create_Semaphore(&Semaphore_EthernetInit, "QmcSend", 1, NU_FIFO);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -