日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Freertos之系統(tǒng)配置

 心不留意外塵 2016-08-06
http://bluefish.blog.51cto.com/214870/163430
2009

freeRTOS 配置在:FREERTOS_CONFIG.H 里面,條目如下:
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
/* Here is a good place to include header files that are required across your application. */
#include "something.h"
/* 是否配置成搶先先多任務(wù)內(nèi)核,是1的時候,優(yōu)先級高的任務(wù)優(yōu)先執(zhí)行。 為0任務(wù)就沒有優(yōu)先級之說,用時間片輪流執(zhí)行 */
#define configUSE_PREEMPTION                1 
 
/* IDLE任務(wù)的HOOK函數(shù),用于OS功能擴展,需要你自己編相應(yīng)函數(shù), 名字是void vApplicationIdleHook( void ) */
#define configUSE_IDLE_HOOK                   0    
 
/* SYSTEM TICK的HOOK函數(shù),用于OS功能擴展,需要你自己編相應(yīng)函數(shù), 名字是 void vApplicationTickHook(void ) */
 #define configUSE_TICK_HOOK                 0 
 
/* 系統(tǒng)CPU頻率,單位是Hz */
#define configCPU_CLOCK_HZ                  58982400 
 
/* 系統(tǒng)SYSTEM TICK每秒鐘的發(fā)生次數(shù), 數(shù)值越大系統(tǒng)反應(yīng)越快,但是CPU用在任務(wù)切換的開銷就越多 */
#define configTICK_RATE_HZ                      250 
/* 系統(tǒng)任務(wù)優(yōu)先級數(shù)。5 說明任務(wù)有5級優(yōu)先度。這個數(shù)目越大耗費RAM越多 */
#define configMAX_PRIORITIES                      5  
 
/* 系統(tǒng)最小堆棧尺寸,注意128不是128字節(jié),而是128個入棧。比如ARM32位,128個入棧就是512字節(jié) */ 
#define configMINIMAL_STACK_SIZE            128 
 
/* 系統(tǒng)可用內(nèi)存。一般設(shè)成除了操作系統(tǒng)和你的程序所用RAM外的最大RAM。 比如20KRAM你用了2K,系統(tǒng)用了3K,剩下15就是最大HEAP 尺寸。你可以先設(shè)小然后看編譯結(jié)果往大里加*/
#define configTOTAL_HEAP_SIZE                       10240
 
/* 任務(wù)的PC名字最大長度,因為函數(shù)名編譯完了就不見了,所以追蹤時不知道哪個名字。16表示16個char */
#define configMAX_TASK_NAME_LEN             16
 
/* 是否設(shè)定成追蹤,由PC端TraceCon.exe記錄,也可以轉(zhuǎn)到系統(tǒng)顯示屏上 */
#define configUSE_TRACE_FACILITY                  0
 
/* 就是SYSTEM TICK的長度,16是16位,如果是16位以下CPU, 一般選1;如果是32位系統(tǒng),一般選0 */
#define configUSE_16_BIT_TICKS                          0
 
/* 簡單理解以下就是和IDLE TASK同樣優(yōu)先級的任務(wù)執(zhí)行情況。建議設(shè)成1,對系統(tǒng)影響不大 */
#define configIDLE_SHOULD_YIELD                     1
 
/* 是否用MUTEXES。 MUTEXES是任務(wù)間通訊的一種方式,特別是用于任務(wù)共享資源的應(yīng)用,比如打印機,任務(wù)A用的時候就排斥別的任務(wù)應(yīng)用,用完了別的任務(wù)才可以應(yīng)用 */
#define configUSE_MUTEXES                                     0  
 
/*  確定是否用遞歸式的MUTEXES */
#define configUSE_RECURSIVE_MUTEXES              0
 
/* 是否用計數(shù)式的SEMAPHORES,SEMAPHORES也是任務(wù)間通訊的一種方式 */
#define configUSE_COUNTING_SEMAPHORES       0
 
/* 是否應(yīng)用可切換式的API。freeRTOS 同一功能API有多個,有全功能但是需求資源和時間較多的,此項使能后就可以用較簡單的API, 節(jié)省資源和時間,但是應(yīng)用限制較多 */
#define configUSE_ALTERNATIVE_API                       0 
 
 
 /* 此項用于DEBUG,來看是否有棧溢出,需要你自己編相應(yīng)檢查函數(shù)void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed portCHAR *pcTaskName )  */
#define configCHECK_FOR_STACK_OVERFLOW      0
/* 用于DEBUG,登記SEMAPHORESQ和QUEUE的最大個數(shù),需要在任務(wù)用應(yīng)用函數(shù)vQueueAddToRegistry()和vQueueUnregisterQueue()  */
#define configQUEUE_REGISTRY_SIZE                        10 
 /* 設(shè)定可以改變?nèi)蝿?wù)優(yōu)先度 */
 #define INCLUDE_vTaskPrioritySet                               1
 
 /* 設(shè)定可以查詢?nèi)蝿?wù)優(yōu)先度 */
#define INCLUDE_uxTaskPriorityGet                              1
 
 /* 設(shè)定可以刪除任務(wù) */
 #define INCLUDE_vTaskDelete                                       1    
 
/* 據(jù)說是可以回收刪除任務(wù)后的資源(RAM等)*/
 #define INCLUDE_vTaskCleanUpResources                 0 
 
/* 設(shè)置可以把任務(wù)掛起 */
#define INCLUDE_vTaskSuspend                                     1 
/* 設(shè)置可以從中斷恢復(fù)(比如系統(tǒng)睡眠,由中斷喚醒 */
#define INCLUDE_vResumeFromISR                                1 
 
 /* 設(shè)置任務(wù)延遲的絕對時間,比如現(xiàn)在4:30,延遲到5:00。時間都是絕對時間 */
#define INCLUDE_vTaskDelayUntil                                  1 
 
 /* 設(shè)置任務(wù)延時,比如延遲30分鐘,相對的時間,現(xiàn)在什么時間,不需要知道 */
#define INCLUDE_vTaskDelay                                           1  
 
/* 設(shè)置 取得當前任務(wù)分配器的狀態(tài) */
#define INCLUDE_xTaskGetSchedulerState                      1
 
/* 設(shè)置當前任務(wù)是由哪個任務(wù)開啟的 */
#define INCLUDE_xTaskGetCurrentTaskHandle              1 
 
/* 是否使能這一函數(shù),還數(shù)的目的是返回任務(wù)執(zhí)行后任務(wù)堆棧的最小未用數(shù)量,同樣是為防止堆棧溢出 */
#define INCLUDE_uxTaskGetStackHighWaterMark       0 
/* 是用用協(xié)程。協(xié)程公用堆棧,節(jié)省RAM,但是沒有任務(wù)優(yōu)先級高,也無法和任務(wù)通訊 */
#define configUSE_CO_ROUTINES                                   0   
 
 /* 所有協(xié)程的最大優(yōu)先級數(shù),協(xié)程優(yōu)先級永遠低于任務(wù)。就是系統(tǒng)先執(zhí)行任務(wù),所有任務(wù)執(zhí)行完了才執(zhí)行協(xié)程。*/
#define configMAX_CO_ROUTINE_PRIORITIES          1 
 
/*  系統(tǒng)內(nèi)核的中斷優(yōu)先級,中斷優(yōu)先級越低,越不會影響其他中斷。一般設(shè)成最低 */
#define configKERNEL_INTERRUPT_PRIORITY            [dependent of processor] 
 
/* 系統(tǒng)SVC中斷優(yōu)先級,這兩項都在在M3和PIC32上應(yīng)用 */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY  [dependent on processor and application] 
#endif /* FREERTOS_CONFIG_H */
一般來說,如果用不上的功能都要設(shè)成0,可以減少代碼和資源。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多