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

📄 ggt_os.h

📁 ARM下的多任务操作系统源码:GogotoOS
💻 H
字号:
/****************************************************************************************************
**                                        Gogoto OS
**                           (c) Copyright 2007-2008, luyigui(卢益贵)
**                                     All Rights Reserved
**                                         V1.00.0
**
**	                           狗狗兔嵌入式多任务系统(基于消息机制)    
**    					 绿城代码、GGT-OS、Gogoto OS、狗狗兔嵌入式、狗狗兔系统
**						    		 	QQ:48092788
**
**------------------文件信息------------------------------------------------------------------------
**  文件名: GGT_OS.h
**  创建人: 卢益贵
**  日 期: 2007年12月8日
**  版  本: V1.00.0
**  描  述: Gogoto OS 提供给用户引用的头文件
**

**------------------修改记录------------------------------------------------------------------------
**  修改人:
**  版  本:
**  日 期:
**  描 述:
**

****************************************************************************************************/

#ifndef      __GGT_OS_H__
#define      __GGT_OS_H__

#ifndef      __GGT_TYPE_H__
#define      __GGT_TYPE_H__

typedef		signed		char		INT8;
typedef		unsigned	char		UINT8;
typedef 	signed		short		INT16;
typedef 	unsigned	short		UINT16;
typedef		signed		int			INT32;
typedef		unsigned	int			UINT32;
typedef		unsigned	int			BOOL;
#define 	NULL					0
#define 	TRUE					1
#define 	FALSE					0

#endif

typedef UINT32			OS_ID;
typedef UINT32			OS_HANDLE;

typedef struct __BoxHead
{
	void *pFree;
}_BoxHead, *_pBoxHead;

typedef struct
{
	UINT32		Flag;
	void*		pTask;
}_Sem, *_pSem;

typedef struct
{
	BOOL		IsBusy;
	OS_ID		Owner;
	INT32		Count;
	void*		pTask;
}_Mut, *_pMut;

typedef struct __Msg
{
	UINT32	Msg;
	UINT32	wParam;
	UINT32	lParam;
}_Msg, *_pMsg;

#define 	DEBUG					1

#define		OS_MSG_TIMER			0x4000
#define		OS_MSG_USER				0x8000

#define		OS_TSK_DELAY_SUSPEND 	0xFFFFFFFF

extern UINT32 OSTaskUserCreate(void *pTaskBody, const UINT32 Prio, UINT32 Mode, const UINT32 TaskParam);
extern UINT32 OSTaskCreate(void *pTaskBody, const UINT32 Prio, const UINT32 TaskParam);
extern BOOL OSTaskMsgWait(_pMsg pMsg);
extern BOOL OSTaskMsgPeek(_pMsg pMsg);
extern INT32 OSTaskMsgPost(const OS_ID TaskID, const UINT32 Msg, const UINT32 wParam, const UINT32 lParam);
extern void OSTaskSuspend(OS_ID TaskID);
extern BOOL OSTaskResume(OS_ID TaskID);
extern UINT32 OSTaskSelf(void);
extern void OSTaskKill(OS_ID TaskID);
void OSTaskDelay(UINT32 Time);
#define OSTaskKillSelf		OSTaskKill(OSTaskSelf())

extern void OSMutWait(_pMut pMut);
extern void OSMutRelease(_pMut pMut);
extern void OSMutInit(_pMut pMut);

extern void OSSemWait(_pSem pSem);
extern void OSSemSend(_pSem pSem);
extern void OSSemInit(_pSem pSem);

#define	OSIsrMsgPost(P1, P2, P3, P4)		OSMsgPost(P1, P2, P3, P4)
#define	OSIsrSemSend(P1)					OSSemSend(P1)
extern void OSIsrBegin(void);
extern void OSIsrEnd(BOOL DoSW);

void OSTimerKill(const OS_ID TimerID);
BOOL OSTimerSet(const OS_ID TaskID, const UINT32 Time);

#endif
 
  
   

⌨️ 快捷键说明

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