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

网站开发设计工程师岗位职责小韩网站源码

网站开发设计工程师岗位职责,小韩网站源码,百度app下载安装官方免费版,企业网站标题设置文章目录 1、时钟节拍任务2、定时器列表 μC/OS-III 里面两个地方用到了环形表#xff0c;时钟节拍任务#xff0c;定时器列表#xff0c;通过排序后#xff0c;效率是非常高的。 以下内容整理自 嵌入式实时操作系统uC/OS-Ⅲ 1、时钟节拍任务 2023/12/21 18:04:16 (1) 该… 文章目录 1、时钟节拍任务2、定时器列表 μC/OS-III 里面两个地方用到了环形表时钟节拍任务定时器列表通过排序后效率是非常高的。 以下内容整理自 嵌入式实时操作系统uC/OS-Ⅲ 1、时钟节拍任务 2023/12/21 18:04:16 (1) 该时钟节拍列表由一个数据表(见 os_cfg_app.c 中的 OSCfg_TickWheel[]) 和一个计数器(OSTickCtr)构成。 (2) OSCfg_TickWheel[] 数据表包含的表项(entry)数目是由 os_cfg_app.h 文件中的 OS_CFG_TICK_WHEEL_SIZE 设定的可在编译时进行配置。表项的具体数目要根据处理器中可用的 RAM 存储量和应用程序中的最大任务数来配置。一般可以把 OS_CFG_TICK_WHEEL_SIZE 的值设置为任务数目的1/4左右。建议不要使 OS_CFG_TICK_WHEEL_SIZE 的数值与时钟节拍的频率成倍数关系。如果时钟节拍频率是1000 Hz并且在用户的应用中有50个任务那么用户应当避免把 OS_CFG_TICK_WHEEL_SIZE 的数值设置为10或20而应当改为使用11或23。实际上最好使用素数来设置 OS_CFG_TICK_WHEEL_SIZE。虽然在编译时很难预计运行时将会发生的事情但理论上可以使在每个表项上等待的任务的数目均匀分布。 (3) 该数据表中的每个表项包含3个成员 .NbrEntriesMax 表示在该表项上等待的任务的最大数目。应用程序可以通过调用函数 OSStatReset() 来重置 .NbrEntriesMax 的值。 .NbrEntries 表示在该表项上等待的任务的数目。 .FirstPtr 是一个指针变量在表头上并属于该表指向在该表项上的等待任务构成的双向链表通过各任务的 TCB 结构体。 每当任务 OS_TickTask() 接收到时钟节拍中断发送的信号时它会将 OSTickCtr 加1。 当应用程序中的某个任务调用 OSTimeDlyXXX() 函数或者使用非零的超时值调用 OSXXXPend() 函数时该任务会被自动插入到时钟节拍列表中。 MatchValue 10 13 OSCfg_TickWheel[] spoke number (10 13) * 2 或 MatchValue 23 OSCfg_TickWheel[] spoke number 11 第二个任务会插入到与第一个任务相同的表项中如图 F5-11 所示。在同一个表项上等待的多个任务按照升序排列因此剩余等待时间最少的任务会放在时钟节拍列表的最前面。 在时钟节拍任务执行时见 os_tick.c 文件中的 OSTickTask() 和 OSTickListUpdate()它首先会递增 OSTickCtr 的数值然后判断应该处理哪个表项。如果位于该表项上的时钟节拍列表中有任务存在即 .FirstPtr 非空则时钟节拍任务会检查相关任务的 .TickCtrMatch 数值是否与 OSTickCtr 数值相同如果相同就会把相应的 OS_TCB 从时钟节拍列表中删除。如果该任务只是等待延时结束则将会被放入任务就绪表中后面会描述。如果该任务在等待某个事件则不仅需要把它从时钟节拍列表中删除还需要把它从该事件的任务等待表中删除。在搜索时钟节拍列表时一旦发现 OSTickCtr 的数值与任务的 .TickCtrMatch 数值不相等就会立即结束该搜索操作。这是因为延时最先结束的任务总是放在表的最前面。 如果前面的任务延时还没有结束那么后面的任务延时时间显然也没有到也就没有必要再进一步搜索了。 注意OS TickTask()在更新时钟节拍列表时所做的大部分工作都是在临界段代码中完成的。不过由于时钟节拍列表是按照顺序排列的因此可以把临界区控制得相当短 时钟节拍中断服务程序仅需唤醒时钟节拍任务可大大缩短中断处理时间。时钟节拍任务使用了一个由N个表项(即辐条)构成的环形数据表(即时钟节拍轮),N的数值由用户配置。所有延时的任务按照延时结束时刻分配到各个表项上每次节拍中断发生时只有其中一个表项上的任务可能延时结束。在各个表项上任务按照延时结束的先后顺序排序。因此时钟节拍任务每次被节拍中断唤醒后只处理一个表项从该表项中的第一个任务开始判断任务延时是否结束延时结束则继续判断下一个任务否则停止判断并返回从而大大节省时间节拍处理时间。 2、定时器列表 F12-8(1) 定时器列表结构中含有一个表 (OSCfg_TmrWheel[]在 os_cfg_app.c 中声明) 和一个计数器 (OSTmrTickCtr在 os.h 中声明)。 F12-8(2) 这个表可以容纳的条目数的最大值由参数 OS_CFG_TMR_WHEEL_SIZE 决定可以在编译时设定见 os_cfg_app.h。实际的条目数取决于处理器可用的 RAM 大小和应用程序中的最大定时器数量。建议将 OS_CFG_TMR_WHEEL_SIZE 设为定时器数量的 1/4 左右。不建议将 OS_CFG_TMR_WHEEL_SIZE 设为定时器任务率的偶数倍。例如如果定时器任务率是10Hz请避免将 OS_CFG_TMR_WHEEL_SIZE 设为10或100可以使用11或101。最好使用素数。尽管在编译时很难预测运行时的情况但在理想情况下每个表项中定时器的数量应该是均匀分布的。 F12-8(3) 表中的每个条目包括三个字段.NbrEntriesMax、 NbrEntries 和 .FirstPtr。 .NbrEntries 表示链接到这个条目的定时器数量。.NbrEntriesMax 用来跟踪表中的最大条目数。.FirstPtr 包括一个指向当前位置上定时器双向链表的指针通过 OS_TMR。 每次时钟节拍中断服务程序 (ISR) 发送信号给定时器任务时OSTmrTickCtr 增加1。 要将定时器插入定时器列表中需要调用函数 OSTmrStart()。当然定时器必须在使用之前先创建。 μC/OS-II将计算匹配值和序号如下所示 MatchValue 12 10OSCfg_TmrWheel[]中的序号 22 即 MatchValue 22 OSCfg_TmrWheel[]中的序号 4 如图 F12-10 所示第二个定时器插入到同一个条目指向的链表中并且系统将根据定时器的剩余时间排序将剩余时间较少的定时器排在链表头而剩余时间最长的定时器排在链表尾。 当定时器任务执行时见 os_tmr.c 的 OS_TmrTask()OSTmrTickCtr 开始加 1 并指向下一个辐条格子。如果此条中含有定时器即 .FirstPtr 非空那么第一个 S_TMR 的 .Match 都会被检查是否与 OSTmrTickCtr 匹配。如果找到匹配的 OS_TMR则将其从列表中移除并且检查下一个然后 OS_TmrTask() 将调用定时器回调函数假设定时器创建时已定义。反之若 OSTmrTickCtr 不匹配定时器的 .Match 值则查找过程立即结束。原因是链表已经排序不需要再继续向后查找。 注意OS_TmrTask() 执行时调度器是上了锁的。由于链表已经排序并且查找过程在找不到匹配值后立即结束因此临界代码段比较短。 备注由于 OS_TMR 链表按照定时器的剩余时间从小到大排序所以它们的 .Match 值也是按照相同顺序排列的。如果 OSTmrTickCtr 小于链表中某个定时器的 .Match 值那么后面的定时器也一定都不匹配可以停止查找并等待下一次比较。正是这样的轮设计和排序链表使得系统大大减少了遍历每个定时器所需的时间。
http://wiki.neutronadmin.com/news/180877/

相关文章:

  • wordpress做外贸网站的劣势国家新闻最新消息今天
  • 网站建设汇报网站建设服务费交印花税吗
  • 网站开发外包 价格河北省建设网站锁安装什么驱动
  • 中国航天建设集团有限公司网站珠海网站建设方案报价
  • 绵阳做网站的公司有哪些wordpress get_post_meta
  • 蚌埠做网站多少钱网站备案 信息查询
  • 网站建设兆金手指排名商城类网站建设需要多少钱
  • 池州做网站培训wordpress主题如何修改语言
  • 做的网站速度慢建各企业网站多少钱
  • 网站托管团队大连html5网站建设价格
  • 免费购物网站源码上海企业建站步骤
  • 做的精美的门户网站推荐深圳网站建设首选全通网络
  • 用什么做网站后台的宁夏建设造价网站
  • 如何申请一个免费的网站空间知道创于 wordpress
  • 网站做动态图片大全南京网络程序开发公司
  • 做汽配找哪个网站好qq强制聊天网站源码
  • 网站设计需要需要用用.net做网站中含有论坛
  • 公司网站首页模板大连看妇科哪家医院好
  • 怎么用ai做网站版面wordpress文章所有图片大小
  • 免费做金融网站有哪些手机与pc的网站开发
  • 国外做二手工业设备的网站红桥集团网站建设
  • 网站建设哈尔滨网站建设1整人网站建设
  • 主题字体wordpressseo引流什么意思
  • 什么网站做护工红杉树装饰公司怎么样
  • 网站阴影机房网络建设方案
  • 做外贸哪些网站好可以免费做调查问卷的网站
  • 网站建设考试多选题宁波 小程序开发公司
  • 做做网站下载2023亲子网 网站正在建设中
  • 浙江建设信息港网站查询营销网课
  • 打开山东城市建设职业学院网站西安网站开发培训价格