当前位置: 首页 > news >正文

海尔建设网站的目的精品ppt模板免费下载

海尔建设网站的目的,精品ppt模板免费下载,前端开发和后端开发哪个赚钱,云伙伴小程序开发公司准备中秋节说个活动#xff0c;评论文章点赞排名#xff0c;用心评论哦#xff0c;前5名获得每人 19 心意红包。感谢大家的支持我最近在用freertos#xff0c;想让一个任务在某个时间后再执行#xff0c;找了一圈#xff0c;竟然没有这样才处理机制#xff0c;因为也是新… 准备中秋节说个活动评论文章点赞排名用心评论哦前5名获得每人 19 心意红包。感谢大家的支持我最近在用freertos想让一个任务在某个时间后再执行找了一圈竟然没有这样才处理机制因为也是新手入门freertos可能需要自己实现当然了自己实现的话机制就很多了但是有个问题是自己实现的话就感觉不够规范因为这样的原因我还特意从Linux上移植了time_before和time_after过去用了下感觉还是很爽的。Linux 有延迟执行的机制有几种办法1、忙等待听到这个就知道了如果是忙等待的话肯定是占用cpu的所以忙等待其实也是使用了time_before这个宏来实现。#define time_after(a,b) \ (typecheck(unsigned long, a) \ typecheck(unsigned long, b) \ ((long)((b) - (long)(a)) 0)) time_before(a,b) time_after(b,a)这个是实现的原型time_before也就是time_after反过来而已我们之前有一篇文章讨论了time_after宏的实现和用法。不清楚的同学可以去看看其中把无符号强制转成有符号是关键。那我们怎么使用这个忙等待呢很简单unsigned long timeout jiffies 10; while(time_before(jiffies,timeout));while 循环会一直执行因为time_before会一直返回true,知道jiffies的时间超过timeout的时间这时候就会返回false。也可以是这样使用unsigned long timeout jiffies 2*HZ; while(time_before(jiffies,timeout));这个是等待2秒一秒钟的节拍数是HZ所以2秒就是2*HZ这个好像太简单了些。2、短延迟这个也类似于忙等待但是这个忙等待使用的函数不同我们使用jiffies使用的是系统软件滴答数来做延迟精度和时间上都有一定的局限性但是使用delay函数的话会相对好一些时间的精准度会比较好。void udelay(unsigned long usecs) void ndelay(unsigned long usecs) void mdelay(unsigned long usecs)学习单片机的同学都知道CPU执行的时间可以通过指令周期来确定时间指令周期就是执行一条简单的指令所花费的时间80C51下我知道是多少ARM我还不懂但是这些我们也不用太关心每个体系结构下的delay实现他们都自己计算实现好了这也是使用系统和单片机的好处封装什么的都搞好就是要会使用才是关键。用延迟实现的弊端就是会一直占用CPU时间系统调用需要非常良好的性能所以我们使用上面delay函数的时候如果大于1ms的话就可以换一种实现方式了。1、时钟周期 振荡周期名称不同而已都是等于单片机晶振频率的倒数如常见的外接12M晶振那它的时钟周期1/12M。2、机器周期8051系列单片机的机器周期12*时钟周期之所以这样分是因为单个时钟周期根本干不了一件完整的事情如取指令、写寄存器、读寄存器等而12个时钟周期就能基本完成一项基本操作了。3、指令周期。一个机器周期能完成一项基本操作但一条指令常常是需要多项基本操作结合才能完成完成一条指令所需的时间就是指令周期当然不同的指令其指令周期就不一样的了。3、schedule_timeout在上面两种方法的局限下这个应该是最好的实现方式了它的好是因为他可以睡眠睡眠有一个好处就是不需要占用CPU资源等时间到了再起床去干活就好了。 set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(S*HZ);上面的代码是让当前任务进入不可中断状态任何睡眠S秒后再起床使用schedule_timeout的时候一定要记得设置状态不然不能睡觉就麻烦了也要注意你自己写的代码能不能睡眠要不然引起问题就更尴尬了。fastcall signed long __sched schedule_timeout(signed long timeout) { struct timer_list timer; unsigned long expire; switch (timeout) { case MAX_SCHEDULE_TIMEOUT: /* * These two special cases are useful to be comfortable * in the caller. Nothing more. We could take * MAX_SCHEDULE_TIMEOUT from one of the negative value * but I d like to return a valid offset (0) to allow * the caller to do everything it want with the retval. */ schedule(); goto out; default: /* * Another bit of PARANOID. Note that the retval will be * 0 since no piece of kernel is supposed to do a check * for a negative retval of schedule_timeout() (since it * should never happens anyway). You just have the printk() * that will tell you if something is gone wrong and where. */ if (timeout 0) { printk(KERN_ERR schedule_timeout: wrong timeout value %lx from %p\n, timeout, __builtin_return_address(0)); current-state TASK_RUNNING; goto out; } } expire timeout jiffies; init_timer(timer); timer.expires expire; timer.data (unsigned long) current; timer.function process_timeout; add_timer(timer); schedule(); del_singleshot_timer_sync(timer); timeout expire - jiffies; out: return timeout 0 ? 0 : timeout; } 网上有挺多文章说明了这个函数的实现首先是初始化一个timer然后往timer里去传初始化参数其中有一个参数是current这个是一个宏这个宏的作用是获取当前的task然后再设置超时时间超时时间到了之后通过调用process_timeout去唤醒之前休眠的task。我们可以这样使用当做一个delay来嵌入自己的代码中inline static void snd_xx_delay_long(void) { set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(1); }扫码或长按关注
http://wiki.neutronadmin.com/news/46870/

相关文章:

  • 潮流资讯类网站建设策划企业网站备案要多少钱
  • 沈阳网站设计广告公司免费ppt模板大全下载
  • saas建站和开源建站的区别青海省住房与城乡建设厅网站
  • 智能建站制作网站建动态密码是否收费
  • 自己的网站怎样做优化书店网站模板下载
  • 下载网站模板怎么使用教程2020最近的新闻大事10条
  • 网站建设问一问公司17网一起做网店广州站
  • 简述网站建设评估的指标有哪些定制型网站建设渠道
  • 大同推广型网站开发开发商城网站公司
  • 宝塔windows建设网站wordpress 菜单 表
  • 如何建设一个手机网站女性做网站
  • 如何做搞笑原创视频网站青岛制作网站的
  • 我的家乡网站设计模板雅安移动网站建设
  • 论文网站开发网站排名效果好
  • 外汇平台+网站开发网站建设 销售提成
  • 专业网站建设服务东莞网站建设代理商
  • 深圳网站建设公司小江品牌建设规划
  • 网站推广公司简介济南的企业网站建设
  • 金坛建设局招标网站怎么建设回收网站
  • 苏州做网站设计美工常用网站
  • 如何给英文网站做外链做网站宁波有什么的网络公司
  • 建设考试网站首页网站英语培训
  • 帮彩票网站做流量提升extjs做的网站
  • 医院网站建设申请网站建设工作描述
  • nginx wordpress ssl沈阳seo排名优化教程
  • 网站建设制作 企业站开发哪家好泰安网络建设
  • 百度营销-网站分析培训货源网站程序
  • 做外贸如何建立网站平台句容网站制作哪家好
  • 陇南市建设局官方网站logo设计软件在线制作
  • 如何仿制国外网站行业网站建设优化案例