《VxWorks学习笔记》——任务属性

本文介绍了VxWorks操作系统中任务的特性,包括任务控制块(WIND_TCB)、任务栈、出错状态、钩子函数和任务状态。任务与内核共享地址空间,每个任务拥有独立栈空间,并且维护各自的errno副本。钩子函数允许在特定任务生命周期阶段插入自定义行为。任务状态包括运行、就绪、阻塞、延迟和挂起,系统函数控制状态转换。
摘要由CSDN通过智能技术生成

VxWorks任务区别于通用系统的两个特点:1)VxWorks任务与内核具有相同的权限,能够执行处理器支持的全部指令。2)所有任务和内核共享同一实地址空间,不同任务的数据没有任何保护机制。

1、  任务控制块(WIND_TCB):系统调度器用来管理任务调度的一个数据结构,每个任务都与一个TCB相关联,主要包括任务ID,任务名称,任务优先级和任务上下文等(VxWorks系统中TCB不用包含内存地址空间)。任务的切换主要设计任务上下文的保存与恢复。

2、  任务栈:每个任务都有独立的栈空间,栈用于任务的函数调用,分配自动变量和函数返回值。栈的位置和大小在任务控制块中记录(创建任务时指点栈的大小)。VxWorks支持独立的中断栈(在处理器体系和BSP支持的条件下),即所有ISP共享一个独立于任务栈的栈空间。当硬件体系不支持时,中断栈属于被中断任务栈空间的一部分。系统提供checkStack()用以函数检测栈的使用情况。

3、  出错状态:ANSI C标准定义了一个全局整形变量errno,用以记录底层函数调用时最后一次出错的详细信息(每次调用出错就会重置errno)。在VxWorks中,每个任务和ISP都维护了一个errno的副本(任务的errno记录在TCB中,ISP的errno记录在中断栈中)。VxWorks库函数中定义errno高16bits为模块编号,低16bits为错误编号。用户程序可以使用该定义,也可以重新定义。

4、  钩子函数:VxWorks系统允许任务添加和删除钩子函数,钩

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值