FreeRTOS
文章平均质量分 77
MrJang_
这个作者很懒,什么都没留下…
展开
-
FreeRTOS 在STM32上的移植 V1.0
这篇文章是我从网上看到的,介绍的移植以及一些底层的细节,可以在看源码看到底层实现时配合着来看。主要(要弄明白)的部分是FreeRTOS是如何实现任务之间切换的(SVC、pendSV后面会有相关资料)。可以在看完源码后思考一下FreeRTOS这种实时操作系统的设计相较于其他小型操作系统有什么优点。下面是这篇文章:FreeRTOS 在STM32上的移植 V1.0Free转载 2014-12-30 09:51:21 · 1502 阅读 · 0 评论 -
FreeRTOS源码解析 -> vTaskDelayUntil()
vTaskDelayUntil()的参数就是用来指定任务离开阻塞态进入就绪态那一刻的精确心跳计数值。 API函数vTaskDelayUntil()可以用于实现一个固定执行周期的需求(当你需要让你的任务以固定频率周期性执行的时候)。 由于调用此函数的任务解除阻塞的时间是绝对时刻,比起相对于调用时刻的相对时间更精确(即比调用vTaskDelay()可以实现更精确的周期性)。vo原创 2014-12-31 17:32:35 · 3428 阅读 · 0 评论 -
FreeRTOS源码解析 -> vTaskResume()
#if ( INCLUDE_vTaskSuspend == 1 ) void vTaskResume( xTaskHandle pxTaskToResume ) { tskTCB *pxTCB; /* It does not make sense to resume the calling task. */ configASSERT( pxTaskToResume );原创 2014-12-31 18:02:53 · 2394 阅读 · 0 评论 -
FreeRTOS源码解析 -> xTaskCreate()
signed portBASE_TYPE xTaskGenericCreate( pdTASK_CODE pxTaskCode, const signed char * const pcName, unsigned short usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCr原创 2014-12-31 15:57:27 · 5772 阅读 · 0 评论 -
FreeRTOS源码解析 -> vTaskDelete()
vTaskDelete()API 函数任务可以使用API函数vTaskDelete()删除自己或其它任务。任务被删除后就不复存在,也不会再进入运行态。空闲任务的责任是要将分配给已删除任务的内存释放掉。因此有一点很重要,那就是 使用vTaskDelete() API函数的任务千万不能把空闲任务的执行时间饿死。需要说明一点,只有内核为任务分配的内存空间才会在任务被删除后自动原创 2014-12-31 17:06:01 · 3172 阅读 · 0 评论 -
FreeRTOS源码解析 -> vTaskSuspend
“挂起(suspended)”是非运行状态的子状态。处于挂起状态的任务对调度器而言是不可见的。让一个任务进入挂起状态的唯一办法就是调用vTaskSuspend() API函数;而把一个挂起状态的任务唤醒的唯一途径就是调用vTaskResume()或vTaskResumeFromISR() API函数。大多数应用程序中都不会用到挂起状态。#if ( INCLUDE_vTaskSuspend ==原创 2014-12-31 17:50:24 · 4556 阅读 · 0 评论 -
FreeRTOS源码解析 -> vTaskStartScheduler()
xPortStartScheduler()会在后面介绍port.c的时候详细说明。void vTaskStartScheduler( void ){ portBASE_TYPE xReturn; /* Add the idle task at the lowest priority. */ /*空闲任务的责任是要将分配给已删除任务的内存释放掉。 在vTaskDele原创 2014-12-31 18:19:36 · 5588 阅读 · 0 评论