#ifndef rtos_h
#define rtos_h
#include
"freertos.h"
#include
"task.h"
#define pex_rtos_start rtos_start
void
rtos_start
(void);
void
freertos_task1
(void
*pvparameters)
;void
freertos_task2
(void
*pvparameters)
;#endif
#include
"rtos.h"
uint32_t freertos_task1_counter =0u;
uint32_t freertos_task2_counter =0u;
void
rtos_start
(void)}
void
freertos_task1
(void
*pvparameters)
}void
freertos_task2
(void
*pvparameters)
}
此例,給兩個任務做了乙個任務計數操作,任務一每隔1s執行一次,任務二每隔2s執行一次,通過vtaskdelay方法將相應任務置為阻塞狀態來實現通過debug觀察兩個任務的計數狀態可以看出,任務一執行8次的時候,任務二執行了4次,兩個任務雖然都是while(1)死迴圈,可以通過任務排程在乙個掛起的時候執行另乙個,符合設計邏輯,xtaskcreate的第五個引數是任務優先順序的定義,此處數字越大代表優先順序越高,對**稍作修改,觀察一下現象
#include
"rtos.h"
uint32_t freertos_task1_counter =0u;
uint32_t freertos_task2_counter =0u;
void
rtos_start
(void)}
void
freertos_task1
(void
*pvparameters)
}void
freertos_task2
(void
*pvparameters)
}
這裡將任務一優先順序設為1,任務二優先順序設為2,關閉vtaskdelay的任務阻塞操作 STM32簡單任務排程的總結
概述 stm32的開發目前大多數還開處於 裸奔 的階段,處於開發成本的考慮,可能還未嵌入任何的rtos系統,由於沒有作業系統的支援,因而不能方便的對多工進行排程和管理。而有的任務不緊急,不需要過多的時間去迴圈執行,因此需要乙個簡單的任務排程來解決這個問題。stm32f103ze的ahb時鐘為72mh...
C 簡單任務池
今天編寫乙個非同步通訊框架的,非同步派發任務,單路併發,與直接invoke相比的好處是可以使任務的執行代價根據時間均勻化,請看 public class servicetask private action action public void execute public class servic...
FreeRTOS 任務排程 List 組織
嵌入式 freertos 前面了解了 freertos 的記憶體管理,接下來看看任務排程,這也是乙個作業系統中最重要的一部分,而其任務排程大量使用了鍊錶 list.c 實現 排程器使用鍊錶跟蹤不同狀態下的任務 就緒 掛起 延時的任務,都會被掛接到各自的鍊錶中 所以這裡用一定篇幅介紹下主要供排程使用的...