通信用虚拟实时操作系统: rtos_os

主页

通信领域一般使用实时操作系统,为保障可移植性,一般需要支持多个平台。

以下代码就是一个典型的通信用实时操作系统:rtos_os,它支持平台 Windows、Linux、Unix、VxWorks等。它主要基于 GNU 编译器。

数据类型:

typedef unsigned char UINT8; /*headed with uc*/
typedef unsigned short UINT16; /*headed with us*/
typedef unsigned int UINT32; /*headed with ul*/
typedef unsigned char BOOLEAN; /*headed with b*/
#define NULL 0

基本操作系统函数:

/*memory management*/
void* rtosAllocMemory(UINT32 ulLength);
void rtosFreeMemory(void* pBuffer);
void rtosCopyMemory(void* pFrom, void* pTo, UINT32 ulLength);
void rtosFillMemory(void* pBuffer, UINT32 ulLength, UINT8 ucValue);

/*timer amangement*/
#define INVALID_TIMER_ID 0
UINT32 rtosCreateTimer(UINT8 ucMid, UINT8 ucTimerType, UINT32 ulTimerLength);
void rtosDeleteTimer(UINT32 ulTimerId);

/*message management*/
void rtosSendMsg(void* pMsg);
void rtosDoMessage();

/*system function*/
UINT16 rtosRead16(UINT16 usOld);
UINT32 rtosRead32(UINT32 ulOld);
UINT16 rtosWrite16(UINT16 usOld);
UINT32 rtosWrite32(UINT32 ulOld);

/*debug support*/
void rtosPrint(const char *pFormat, UINT32 *pValue);

通信系统模型(以 GPRS 为例):

typedef enum
{
GPRS_MID_RF, /*RF layer*/
GPRS_MID_MAC, /*MAC layer*/
GPRS_MID_RLC, /*RLC layer*/
GPRS_MID_LLC, /*LLC layer*/
GPRS_MID_SNDC, /*SNDC layer*/
GPRS_MID_IP, /*IP layer*/
GPRS_MID_SIM, /*SIM card*/
}GPRS_MID_TYPE;

/*GPRS module APIs*/
extern void initGprsRf();
extern void onGprsRfMsg(GPRS_MSG_TYPE* pMsg);
extern void onGprsRfTimer(UINT8 ucTimerType);
extern void initGprsMac();
extern void onGprsMacMsg(GPRS_MSG_TYPE* pMsg);
extern void onGprsMacTimer(UINT8 ucTimerType);
extern void initGprsIp();
extern void onGprsIpMsg(GPRS_MSG_TYPE* pMsg);
extern void onGprsIpTimer(UINT8 ucTimerType);

/*GPRS APIs*/
void initGprs();
void onGprsMsg(GPRS_MSG_TYPE* pMsg);
void onGprsTimer(UINT32 ulValue);

条件编译选项:

/*os macro*/
/*#define LINUX_VERSION*/
/*#define UNIX_VERSION*/
#define VXWORKS_VERSION
/*#define WINDOWS_VERSION*/

/*compile tool macro*/
#define GNU_VERSION

/*debug version macro*/
#define DEBUG_VERSION

如果您还有其它意见,请 和我们联系。(下载)