一般来说, 我们会在程序开始先创建若干个任务, 而此时任务调度器还没又开始运行,因此每一次任务创建后都会依据其优先级插入到就绪链表,同时保证全局变量 pxCurrentTCB 指向当前创建的所有任务中优先级最高的一个,但是任务还没开始运行。
当初始化完毕后,调用函数 vTaskStartScheduler启动任务调度器开始开始调度,此时,pxCurrentTCB所指的任务才开始运行。
所以, 本章,介绍任务调度器启动以及如何进行任务切换。
1、FreeRTOS是一个迷你的实时 *** 作系统内核。最大的特点是“小”,占用资源小,支持8位、16位、32位MCU平台。FreeRTOS提供了 *** 作系统基本的功能和组件,包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等。此外FreeRTOS还有一个最大的优势就是就是免费。不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个 *** 作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。
2、VxWorks不仅是一种嵌入式实时 *** 作系统,又是可以运行的最小基本程序。其内部有BSP(BoardSupportPackage,板级支持包),便于进行驱动程序的编写。此外,VxWorks具有强实时性、微内核设计、可裁剪性、可移植性和可靠性等特点,能较好地满足嵌入式开发的需求。缺点就是昂贵的价格让开发者望而却步。
系统栈和任务栈。
系统栈:
裸机情况下,凡是用到栈的地方都是用的Stack_Size EQU 0x00000400
而到了FreeRTOS下,这个系统栈主要是手动入栈的寄存器,中断服务程序里面的局部变量,中断嵌入要用到。
任务栈:
就是 configTOTAL_HEAP_SIZE 定义的大小。
以上就是关于freertos 任务优先级timer和一般任务的不同全部的内容,包括:freertos 任务优先级timer和一般任务的不同、freertos vxworks系统的优点和缺点、freertos时实系统的栈最大是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)