HPM SDK V1.6.0中FreeRTOS升級前后特性支持對比:
特性 | V10.4.4 | LTS 202210.01 |
中斷搶占 | √ | √ |
RISCV浮點擴展支持 | √ | √ |
RISCV中斷向量模式支持 | × | √ |
Tickless mode支持 | × | √ |
DSP擴展支持 | × | √ |
二、FreeRTOS新特性適配
2.1 支持tickless模式
HPM_SDK1.6.0中使能了FreeRTOS的tickless模式,根據(jù)SOC進入低功耗模式的級別不同,分為wait模式和stop模式。
使能wait模式:在CMakeLists.txt中增加set(CONFIG_FREERTOS_TICKLESS 1),參考例程:samples\rtos\freertos\freertos_tickless_wait_mode
set(CONFIG_FREERTOS 1)
set(CONFIG_FREERTOS_TICKLESS 1)
使能stop模式:在CMakeLists.txt中增加set(CONFIG_FREERTOS_TICKLESS 1)以及set(CONFIG_FREERTOS_TICKLESS_USE_STOP_MODE 1)參考例程:samples\rtos\freertos\freertos_tickless_stop_mode。
Set(CONFIG FREERTOS 1)
Set(CONFIG FREERTOS TICKLESS 1)
Set(CONFIG FREERTOS TICKLESS USE STOP MODE 1)
兩種模式區(qū)別:
1. Wait模式下,只有CPU會進入低功耗模式,CPU核心時鐘會被關閉。但在收到中斷時 CPU 能夠立即喚醒進行處理。不會影響外設和SOC其他模塊的工作狀態(tài)。理論上會影響中斷響應的實時性,除此外不會有其他影響。
2. Stop模式下,CPU會進入低功耗模式,并且會觸發(fā)SOC的低功耗狀態(tài),允許關閉更多的資源,且提供靈活的配置選項。除了會影響中斷響應的實時性外,一些外設的功能可能會受影響。
關于低功耗兩種模式差異的詳細解釋,開發(fā)者可以查看UM手冊的低功耗管理章節(jié)。
2.2riscv中斷向量模式
在CMakeLists.txt中將
sdk_compile_definitions(-DUSE_NONVECTOR_MODE=1)
改為sdk_compile_definitions(-DUSE_NONVECTOR_MODE=0)或者將其注釋掉或刪除即可。
向量模式支持gcc、segger、IAR。
2.3臨界段接口更改
FreeRTOS LTS202210.01 在RSIC-V中取消了vTaskEnterCritical和vTaskExitCritical接口,取而代之的是portENTER_CRITICAL和portEXIT_CRITICAL。用戶需要將用戶層代碼進行修改以適配FreeRTOS的升級。
2.4 增加了對DSP上下文的保存和恢復
在HPM_SDK V1.6.0中,可以在FreeRTOS中正常使用dsp擴展了。參考samples/dsp中CMakeLists中的配置。
2.5 portCRITICAL_NESTING_IN_TCB宏的值從1改為0
此改動是FreeRTOS的riscv port部分的改動,它會使任務TCB中原有的變量uxCriticalNesting被刪除。如果用戶的代碼中使用了此變量,或者有手動解析TCB內容的代碼,那么需要進行代碼修改工作,使用全局變量xCriticalNesting可以替代TCB中的uxCriticalNesting;反之不需要進行修改。
三、在HPM_SDK1.6.0中使用之前版本的FreeRTOS
在HPM_SDK V1.6.0中使用之前版本的FreeRTOS,有兩種方式:
方式一
直接將middleware/FreeRTOS目錄替換成老版本的middleware/FreeRTOS目錄。
方式二
在middleware目錄下增加老版本的源碼,此時SDK中同時存在兩個版本的Free RTOS,依靠工程CMakeLists.txt中的配置進行選擇。
1. 將老版本的middleware/FreeRTOS文件夾重命名為middleware/FreeRTOS_old,并復制到V1.6.0目錄下。
2.修改middleware/CMakeLists.txt,在文檔末尾增加add_subdirectory_ifdef(CONFIG_FREERTOS_OLD FreeRTOS_old)
3. 修改工程目錄下的CMakeLists.txt,將set(CONFIG_FREERTOS 1)修改為set(CONFIG_FREERTOS_OLD 1),其他地方不需要修改。
-
FreeRTOS
+關注
關注
12文章
483瀏覽量
62018 -
SDK
+關注
關注
3文章
1029瀏覽量
45782 -
HPM
+關注
關注
1文章
23瀏覽量
7732
發(fā)布評論請先 登錄
相關推薦
評論