FreeRTOS 移植到ST Cortex 3晶元

2021-09-30 04:19:51 字數 1557 閱讀 6412

解壓後,將原始檔中的portmacro.h中增加以下三行巨集定義

#define vportsvchandler      svc_handler

#define xportsystickhandler systick_handler

#define xportpendsvhandler  pendsv_handler

然後修改freertosconfig.**件中的以下巨集定議的值

#define configuse_preemption        1     //搶先式核心

#define configuse_idle_hook            0      //不使用空閒鉤子

#define configuse_tick_hook            0       //不使用時間片鉤子

#define configcpu_clock_hz            ( ( unsigned long ) 48000000 )    //內部處理器執行的頻率

#define configtick_rate_hz            ( ( portticktype ) 1000 )     //    1000hz的時間片頻率,高時間片頻率意味著將減少給予每個任務的時間份額

#define configmax_priorities        ( ( unsigned portbase_type ) 1 )//應用程式任務中可用優先順序的數目,不應分配高於實際使用的優先數目,占用記憶體

#define configminimal_stack_size    ( ( unsigned short ) 128 )    //空閒任務使用的堆疊大小

#define configtotal_heap_size        ( ( size_t ) ( 10 * 1024 ) )   //核心總共可用的ram數量

#define configmax_task_name_len        ( 16 )            //當建立乙個任務,能夠給予描述任務名稱的最大容許長度,包括null終止位元組

#define configuse_trace_facility    0    //不使用視覺化追蹤功能,如果使用視覺化追蹤,必須提供追蹤緩衝區.

#define configuse_16_bit_ticks        0    //時間片計數器定義為可用的portticktype,1將使portticktype定義為16位無符號型別,0將是32位無符號型別

#define configidle_should_yield        1   //控制任務與空閒任務優先順序相同時的行為,1時當其他在空閒優先順序的任務準備執行時,空閒任務將立刻讓出cpu,0空閉任務執行完後才讓出時間

#define configkernel_interrupt_priority         255        //應該設定為最低優先順序的數值

#define configmax_syscall_interrupt_priority     191

#define configlibrary_kernel_interrupt_priority    15

其它就參照正常的專案就可以了

FreeRTOS入門 FreeRTOS移植

開啟keil工程,新建資料夾freertos core freertos portable 將原始碼根目錄下所有c檔案新增進freertos core 將portable rvds arm cm4f下的prot.c portable memmang 的heap 4.c檔案新增進去 新增include...

FreeRTOS 移植到STM32記錄

新建乙個不包含中文路徑的資料夾名字為freertos,如下圖所示 freertos資料夾內容如下圖所示 其中heap 4.c檔案的路徑是 freertos freertosv9.0.0 freertos source portable memmang,port.c件的路徑是 freertos fre...

FreeRTOS移植到STM32F103步驟

二 mdk下移植freertos 目前官方提供的最新版本是v9.0.0,freertos原始碼在解壓目錄下的路徑為 freertos v9.0.0rc2 freertos source iar資料夾的內容,裡面都是跟微控制器底層相關的,我們以stm32f103為例,保留arm cm3資料夾即可。ar...