OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » semGive究竟有多快??

共3条 1/1 1 跳转至

semGive究竟有多快??

菜鸟
2002-12-31 01:31:00    评分
今天在s3c4510b上的一个中断服务程序中实际测了一下semGive()所需要的时间。OS:vxowkrs平台. 代码如下: void channelISR(void) {   *(volatile UINT32 *)SNDS_IOPDATA = 0xf7; // P3 is low, disable alarm.   *(volatile UINT32 *)SNDS_IOPDATA = 0xff; // P3 is high, enable alarm.   semGive(z1510VideoDev[gChanNum].processId);   *(volatile UINT32 *)SNDS_IOPDATA = 0xf7; // P3 is low, disable alarm.   *(volatile UINT32 *)SNDS_IOPDATA = 0xff; // P3 is high, enable alarm. } s3c4510b工作在50MHz,为RISC体系,一条汇编指令理论上是20ns。结果用数字示波器一看:一次IO操作用了将近100ns,而一次semGive()则用了6us左右!如果是用消息队列则会长得多,我没有去测,感兴趣的朋友可以去试一试。[em21][em21]



关键词: semGive     竟有     多快    

菜鸟
2002-12-31 17:09:00    评分
2楼
semGive和Semaphore Give有何区别???-------时间相差好多啊。

菜鸟
2002-12-31 18:46:00    评分
3楼
还是没有搞懂。。。:(

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]