共3条
1/1 1 跳转至页
semGive究竟有多快??
今天在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 竟有 多快
共3条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金
