网站大量收购闲置独家精品文档,联系QQ:2885784924

free RTOS的API典型例子分析.pdf

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目录 一、任务创建 1 二、任务控制4 三、内核控制10 11. vTaskStartScheduler10 12. vTaskEndSchedule 11 13. vTaskSuspendAll11 四、队列管理12 五、信号量26 六、联合程序33 一、任务创建 1. xTaskCreate task. h portBASE_TYPExTaskCreate( pdTASK_CODE pvTaskCode, const portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pvCreatedTask ); 创建新的任务并添加到任务队列中,准备运行 Parameters pvTaskCode 指向任务的入口函数. 任务必须执行并且永不返回 (即:无限循环). pcName 描述任务的名字。主要便于调试。最大长度由configMAX_TASK_NAME_LEN. 定义 usStackDepth 指定任务堆栈的大小 ,堆栈能保护变量的数目- 不是字节数. 例如,如果堆栈 为 16位宽度,usStackDepth定义为 100, 200 字节,这些将分配给堆栈。堆 栈嵌套深度 (堆栈宽度)不能超多最大值——包含了 size_t 类型的变量 pvParameters 指针用于作为一个参数传向创建的任务 uxPriority 任务运行时的优先级 pvCreatedTask 用于传递一个处理——引用创建的任务 返回 pdPASS 是如果任务成功创建并且添加到就绪列中,另外错误代码在 projdefs. H文件定 义 2. vTaskDelete task. h void vTaskDelete( xTaskHandle pxTask ); INCLUDE_vTaskDelete必须定义为 1,这个函数才能可用。查看配置部分获得更多信息。 从 RTOS实时内核管理中移除任务。要删除的任务将从就绪,封锁,挂起,事件列表中移除。 注意:空闲任务负责释放内核分配给已删除任务的内存。因此,如果应用程序调用了vTaskDelete (),微控制器执行时间,空闲任务不假死是很重要的。内存分配给任务的代码不会自动释放,应 该在任务删除之前。 参数: pxTask 处理要删除的任务。传递 NULL将引起调用任务删除 二、任务控制 3. vTaskDelay task. h void vTaskDelay( portTickType xTicksToDelay ); INCLUDE_vTaskDelay 必须设置为 1,这个函数才为可用。参考配置获得更多信息。 延时任务为已知时间片。任务被锁住剩余的实际时间由时间片率决定。portTICK_RATE_MS 常 量用来用来从时间片速率 (一片周期代表着分辨率)来计算实际时间。 vTaskDelay()指定一个任务希望的时间段,这个时间之后 (调用 vTaskDelay() )任务解锁。例 如,指定周期段为 100 时间片,将使任务在调用 vTaskDelay()100个时间片之后解锁。 vTaskDelay()不提供一个控制周期性任务频率的好方法,像通过代码采取的路径,和其他任务和 中断一样,在调用 vTaskDelay()后 影响频率,因此任务所需的时间下一次执行。 参考 vTaskDelayUntil() ,这个交替的API 函数设计了执行固定的频率。它是指定的一个绝对 时间 (而不是一个相对时间)后,调用任务解锁。 参数 xTicksToDelay 时间数量,调用任务应该锁住的时间片周期 4. vTaskDelayUntil task. h void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement ); INCLUDE_vTaskDelayUntil 必须定义为 1,此函数才能用。参考配置获得更多信息。 延时一个任务到指定时间。这个函数用在循环任务以确保一定频率执行。这个函数在一个重要方 面上不同于 vTaskDelay(),vTaskDelay(

文档评论(0)

资料网上搜索整理 + 关注
实名认证
服务提供商

资料网上搜索整理,资料网上搜索整理,资料网上搜索整理。

1亿VIP精品文档

相关文档