返回该小组首页 回复主题
lao4

lao4

小组等级:     E币:368  (E币换礼)

#1楼主:ZRTOS实时操作系统

文章发表于:2008-09-03 10:06

摘要

Z-RTOS 是本人自行开发的一种先进的嵌入式实时操作系统。本人已经用了多年了,完全bullet-prove or non error at all, Z-RTOS 由任务执行优先等级安排,存储管理,驱动器和软、硬件组合等部分组成。 Z-RTOS仅需要很少的计算机资源(例如仅使用少于100 8-字节读写( RAM)内存, 4K 8-字节的ROM)。Z-RTOS 性能可靠、运行高效。冒昧登出来,也不知有无价值(商业的或学术的)。

Z-RTOSAPI简介

 

Z-RTOS中,有四类API(Application Interfaces) ,它们是1Z-RTOSAPI2、驱动器组合API3、任务运行参数组合API4、应用任务组合API

以下就是Z-RTOSAPI

1) Z-RTOS (core) API

RTOS_STATUS rtos_taskInit(void * buf, void * FAR srvwdt, unsigned char size);

/* package initialization */

RTOS_STATUS rtos_taskSpawn(

char priority,                   /* spawn a new task */

RTOS_FUNCPTR code,   /* task code */

long arg0 //, long arg1        /* task argument */ 

);

RTOS_STATUS rtos_taskDelay(long tick);

RTOS_STATUS rtos_taskSuspend(unsigned char taskId);

RTOS_STATUS rtos_taskDelete(unsigned char taskId);

RTOS_STATUS rtos_taskResume(unsigned char taskId); 

long rtos_taskShow (unsigned char tid);

short rtos_taskIdSelf(void);

void rtos_taskScheduler(void);

void rtos_taskTick(void);

unsigned long rtos_tickGet (void);

RTOS_SEM_ID rtos_semBCreate(short options, short initialState);

RTOS_STATUS rtos_semTake(RTOS_SEM_ID semId, long timeout);

RTOS_STATUS rtos_semGive(RTOS_SEM_ID  semId);

RTOS_STATUS rtos_semFlush(RTOS_SEM_ID semId);

RTOS_STATUS rtos_semDelete(RTOS_SEM_ID semId);  

RTOS_STATUS rtos_semWaitList(RTOS_SEM_ID semId);    

short rtos_intLock(void);

void rtos_intUnlock(short lockKey);   

long memPartitionInit(void * buf, unsigned long buf_size, unsigned short max_num_part);

void * rtos_malloc (long nBytes);

void rtos_free (void *ptr);

int rtos_memFindMax(void);

RTOS_STATUS rtos_iosInit(void* buf, short size);

RTOS_FD_TYPE rtos_iosDrvInstall(RTOS_FUNCPTR  pRead, RTOS_FUNCPTR  pWrite); 

RTOS_FD_TYPE rtos_iosDrvDelete(short name); 

RTOS_FD_TYPE rtos_iosDrvAdd(RTOS_FD_TYPE pDrv, short name, RTOS_FD_TYPE drvnum);

RTOS_FD_TYPE open(short name);

RTOS_FD_TYPE read(RTOS_FD_TYPE fd, char * buffer, size_t maxbytes);

RTOS_FD_TYPE write(RTOS_FD_TYPE fd, char * buffer, size_t maxbytes); 

long getFds(RTOS_FD_TYPE fd); 

void bzero(char *buffer,

/* buffer to be zeroed */ int nbytes /* number of bytes in buffer */);

RTOS_FD_TYPE select(fd_set* pRead, long timeout);

RTOS_FD_TYPE rtos_selWakeupAll(RTOS_FD_TYPE fd);  

 

2) 驱动器组合(Device driver configuration)API

void rmADevice(DEV_ID_TYPE * FAR device);

void addDevice(DEV_ID_TYPE * FAR device);

long showDevice(U8 id);

 

3) 任务运行参数组(Parameter configuration) API

RTOS_STATUS addParameter(parameter_type * FAR ptr); 

parameter_type * FAR getParameter(parameter_type * FAR ptr);

RTOS_STATUS setParameter(parameter_type * FAR ptr, long ref);

RTOS_STATUS defaultParameter(parameter_type * FAR ptr);

long getParameterByName(U16 name);

void flashParameter(void);

long showParameter(U8 id);

void paraInit(void);

long * FAR getTaskIDAddress(void);

 

4) 应用任务组合(Application task configuration)API

void rmAFeature(FEATURE_TASK_TYPE * FAR feature);

void addFeature(FEATURE_TASK_TYPE * FAR feature);

long showFeature(U8 id);

 

与其它实时操作系统的比较

目前在工程上较为流行的实时操作系统有windRiver’s vxWorks,windSEK,还有QNX,微软的Window CELinux相关的,和其它OSEK类型的实时操作系统。然而在Z-RTOS在以下的方面有技术上的优势:

1Z-RTOS