zhliao2

风雨兼程,一路向北-------fpga (Keep a quiet heart study)

08 2012 档案

时间片轮询多任务操作系统( TinyOS51 V1.3 )
摘要:选自<<项目驱动-单片机应用设计基础>>//注意了://1,消息邮箱中仅能保存一条消息. //2,当初始值消息邮箱时,一定要给消息邮箱赋初值,并将等待消息邮箱的任务列表清空//任务标志( tiny_os_51_core.c )#define __TN_TASK_FLG_DEL 0x00 //任务被删除标志#define __TN_TASK_FLG_RDY 0x01 //任务就绪标志#define __TN_TASK_FLG_DLY 0x02 //任务延时标志#define __TN_TASK_FLG_SEM ... 阅读全文

posted @ 2012-08-12 22:05 zhliao 阅读(1190) 评论(1) 推荐(0)

时间片轮询多任务操作系统( TinyOS51 V1.2 )
摘要:选自<<项目驱动-单片机应用设计基础>>//注意了:在初始化信号量时一定要为其赋初值,并将获得信号量事件列表清空//事件的返回值( tiny_os_51.h )#define TN_OS_OK 0 //正确#define TN_OS_PAR_ERR -1 //参数错误#define TN_OS_TIME_OUT -2 //等待时间到#define TN_OS_EVENT_FULL -3 //事件已满//由于任务在同一时刻只能等待一个事件,因此,可... 阅读全文

posted @ 2012-08-12 20:48 zhliao 阅读(1417) 评论(0) 推荐(0)

时间片轮询多任务操作系统( TinyOS51 V1.1 )
摘要:选自<<项目驱动-单片机应用设计基础>>/* ** 一般来说,操作系统的调度算法主要有三类:时间片轮询,优先级与带优先级的时间片轮询调度** 不是任务主动放弃CPU而造成的任务调用就是抢占式任务调度** 在使用时间片轮询调度算法的操作系统中,会在2种情况下进行任务切换** (1)任务在调用操作系统提供的"等待"类服务( 如延时,获得信号量,等待消息等 ),会主动请求调度** (2)对于完全基于优先级调度算法的操作系统来说,调用任何一个系统函数,或任何一个中断服务程序** 结束时,都可能让高优先级的任务处于... 阅读全文

posted @ 2012-08-11 14:45 zhliao 阅读(5712) 评论(0) 推荐(0)

协作式多任务操作系统
摘要:选自<<项目驱动-单片机应用设计基础>>//任务句柄的的定义( tiny_os_51.h )typedef charTN_OS_HANDLE;//任务状态字的定义#define __TN_TASK_FLG_DEL 0x00 //任务被删除#define __TN_TASK_FLG_RDY 0x01 //任务就绪//任务控制块struct tn_os_tcb{ jmp_buf jbTaskContext; //用于存储上下文信息 unsigned char ucTaskStat; ... 阅读全文

posted @ 2012-08-11 00:38 zhliao 阅读(1997) 评论(0) 推荐(0)

setjmp() longjmp() setTaskJmp()
摘要:选自<<项目驱动-单片机应用设计基础>>//空指针/***空指针既不会指向任何对象或函数,也不是任何对象或函数的地址**一般来说,未初始化的指针,实际上是非法的指针,不能使用,未初始**化的指针完全有可能指向任何地方,从而导致程序无法判断它为非法**指针**注意了:空指针和未初始化的指针是完全不同的两个概念*///定义了pucBuf为unsigned char 类型指针并初始化为空指针data unsigned char *pucBuf = ( data void * )0; //setjmp()定义extern unsigned char bp; //编译器为简化重入 阅读全文

posted @ 2012-08-09 13:02 zhliao 阅读(496) 评论(0) 推荐(0)

简单的位操作
摘要:i >>1 : 表示i / 2。右移操作也代表了“i / j^2”(j是右移次数)。假设8 >> 2,亦即8 / 2^2等于2。8 >> 3,亦即8 / 2^3等于1。 阅读全文

posted @ 2012-08-01 22:25 zhliao 阅读(253) 评论(0) 推荐(0)