边肖将与您分享vxworks中的系统任务。希望大家看完这篇文章后有所收获。我们一起讨论一下吧!
根据不同的配置,在启动VxWorks系统时,会同步启动一些系统任务,有些任务在完成自己的工作后会退出,有些任务会继续运行。常见的系统任务如下:
任务名称:tRootTask
优先级:0
栈大小:ROOT_STACK_SIZE,与CPU架构有关。有关详细信息,请参见configAll.h。
触发条件:系统启动
组件:无
描述:这是内核启动的第一个任务,然后会启动其他系统任务。任务条目是函数usrRoot(),其中初始化了系统的大部分功能。通常在初始化其他函数后,这个任务会自动退出。为了查看它,我们在这个任务的末尾添加了一个taskSuspend()并将其挂起。
注意:不要在实际产品中暂停、删除或调整这些系统任务的优先级。否则,系统行为将不可预测。
任务名称:任务
优先级:0
堆栈大小:5000
触发条件:在中断或任务中调用logMsg()。
组件:INCLUDE _ LOGGING
描述:用于记录系统信息,不使用当前任务的IO。
排队消息的最大数量:MAX_LOG_MSGS,默认值为50
格式化参数数量:6
任务名称:tExcTask
优先级:0
堆栈大小:EXC _任务_堆栈大小,默认值为8192
触发条件:在中断中调用excJobAdd()。
组件:包含_ EXC _任务
描述:此任务用于执行中断期间不方便执行的工作,因此必须使用最高优先级。此任务中可以排队的最大作业数是MAX_ISR_JOBS,它必须是2的幂,默认值是16。如果要在中断中排队的工作超过此限制,将出现溢出警告“来自中断级别的消息丢失”
任务名称:tJobTask
优先级:启动时为0,根据执行的工作动态调整。
堆栈大小:JOB_TASK_STACK_SIZE,默认值为8000
触发条件:其他任务提交工作。
组件:包含_作业_任务
说明:此任务用于执行其他任务提交的工作。它使用优先级0来等待工作,并在工作执行时动态调整到提交工作的任务的优先级。主要功能之一是处理任务的自我删除。
任务名称:tIsrN
优先级:0
堆栈大小:8192
触发条件:设备中断调用isrDeferJobAdd()
组件:include _ ISR _ defender
描述:此(组)任务用于执行设备驱动程序通过isrDeferJobAdd()提交的工作。名称中的字母n表示该任务使用的CPU的序列号。在单核环境中,只有tIsr0。当这组任务被创建时,每一个都被绑定到具有相应序列号的中央处理器。多核模式设备驱动将需要延期的工作绑定到当前CPU,避免跨CPU调度。
任务名称:tNet0
优先级:NET_TASK_PRIORITY,默认值为50
堆栈大小:NET_TASK_STACKSIZE,默认值为10000
触发条件:数据包到达、传输完成、网络协议中定时器到期、套接字应用请求等。
组件:INCLUDE_NET_DEAMON
描述:这是网络驱动和网络协议的守护线程。
任务名称:tWdbTask
优先级:WDB _任务_优先级,默认值为3
棚
尺寸:WDB_STACK_SIZE,默认值0x2000
触发条件:无
组件:INCLUDE_WDB
描述:WDB的target agent程序,用于处理host tool通过target server发送的请求
任务名称:tShellN
优先级:SHELL_TASK_PRIORITY,默认值1
栈尺寸:SHELL_STACK_SIZE,默认值0x10000
触发条件:系统启动
组件:INCLUDE_SHELL
描述:kernel shell以任务形式存在的,可以同时启动多个,不同的shell使用不同的序号N为名称后缀,名称”tShell”是通过SHELL_TASK_NAME_BASE定义的。在shell里再调用的函数会使用这个shell的上下文。
任务名称:ipcom_telnetd
优先级:50
栈尺寸:6144
触发条件:新的Telnet连接
组件:INCLUDE_IPTELNETS
描述:这个守护线程允许远程用户通过Telnet登陆VxWorks的kernel shell。它会为每个Telnet连接启动一组任务,包括ipcom_telnetspawn,tStdioProxyhexNum,tLoginhexNum,tShellRemdecNum
等介绍了任务调度之后,我们就会发现这些系统任务的优先级都是比较高的,我们自己应用程序的优先级尽量要低一些。
等介绍了VxWorks系统的启动流程后,我们就会知道嵌入式硬件上电后,先是执行汇编语言的初始化程序,然后跳转到C语言的程序,然后启动第一个任务tRootTask,然后逐步加载其它系统任务。
这些高优先级的系统任务通常都是处于Pend状态,只有外界(应用程序或外设)需要它们时,它们才会提供相应的功能。它们整体对外的表现就是一个提供了很多功能的强大的实时操作系统。
看完了这篇文章,相信你对“vxworks中系统任务有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155165.html