⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stc.c

📁 Nuclues嵌入式RTOS源码
💻 C
字号:
#include "tc_defs.h"


#include "tc_extr.h"
#include "er_extr.h"                 /* Error handling function  */


UNSIGNED STD_Idle_Count;
UNSIGNED STD_Idle_Saved_Count;

TC_TCB	STD_Idle_Task;
VOID *STD_Idle_Task_Stack_Ptr;//idle task stack starting addr, NOTE: it is initialized in INT_Initialize(int.s)

#define ST_IDLE_TASK_PRIORITY	255


extern VOID STT_Lock_Interrupt(VOID);
extern VOID STT_Restore_Interrupt(VOID);
extern VOID STT_Idle_Loop(VOID);



UNSIGNED STC_Get_Record(VOID);
VOID STC_Clear_Idle_Count(VOID);
VOID STC_Initialize(VOID);
VOID    STC_Idle_Task(UNSIGNED argc, VOID *argv);

VOID STC_Initialize(VOID)
{

	UNSIGNED status;
	STD_Idle_Count = 0;
	STD_Idle_Saved_Count = 0;

//    add by tianqiang	
	status =  TCC_Create_Task((NU_TASK *)&STD_Idle_Task, "IDLE TSK",
			STC_Idle_Task, 0, (VOID *)NU_NULL, 
			STD_Idle_Task_Stack_Ptr, 1024,
			(OPTION) ST_IDLE_TASK_PRIORITY, 0, 
		        NU_PREEMPT, NU_START);

	/* Check for a system error creating the idle task.  */           
	if (status != NU_SUCCESS)
        	/* Call the system error handler.  */
	        ERC_System_Error(NU_ERROR_CREATING_TIMER_HISR);

}

VOID STC_Clear_Idle_Count(VOID)
{
	//save count
	STD_Idle_Saved_Count = STD_Idle_Count;
	//clear the count
	STD_Idle_Count = 0;
}

UNSIGNED STC_Get_Record(VOID)
{
	UNSIGNED temp;

	STT_Lock_Interrupt();
	temp = STD_Idle_Saved_Count;
	STT_Restore_Interrupt();

	return temp;
}

VOID    STC_Idle_Task(UNSIGNED argc, VOID *argv)
{
	STT_Idle_Loop();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -