Freertos之系统配置.doc_第1页
Freertos之系统配置.doc_第2页
Freertos之系统配置.doc_第3页
Freertos之系统配置.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Freertos之系统配置 2009-06-06 01:45:22标签:freertos推送到技术圈 转自:/html/42/t-2642.htmlfreeRTOS 配置在: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/* 是否配置成抢先先多任务内核,是1的时候,优先级高的任务优先执行。 为0任务就没有优先级之说,用时间片轮流执行 */#define configUSE_PREEMPTION 1/* IDLE任务的HOOK函数,用于OS功能扩展,需要你自己编相应函数, 名字是void vApplicationIdleHook( void ) */#define configUSE_IDLE_HOOK 0/* SYSTEM TICK的HOOK函数,用于OS功能扩展,需要你自己编相应函数, 名字是 void vApplicationTickHook(void ) */#define configUSE_TICK_HOOK 0/* 系统CPU频率,单位是Hz */#define configCPU_CLOCK_HZ 58982400 /* 系统SYSTEM TICK每秒钟的发生次数, 数值越大系统反应越快,但是CPU用在任务切换的开销就越多 */#define configTICK_RATE_HZ 250 /* 系统任务优先级数。5 说明任务有5级优先度。这个数目越大耗费RAM越多 */#define configMAX_PRIORITIES 5/* 系统最小堆栈尺寸,注意128不是128字节,而是128个入栈。比如ARM32位,128个入栈就是512字节 */ #define configMINIMAL_STACK_SIZE 128 /* 系统可用内存。一般设成除了操作系统和你的程序所用RAM外的最大RAM。 比如20KRAM你用了2K,系统用了3K,剩下15就是最大HEAP 尺寸。你可以先设小然后看编译结果往大里加*/#define configTOTAL_HEAP_SIZE 10240 /* 任务的PC名字最大长度,因为函数名编译完了就不见了,所以追踪时不知道哪个名字。16表示16个char */#define configMAX_TASK_NAME_LEN 16 /* 是否设定成追踪,由PC端TraceCon.exe记录,也可以转到系统显示屏上 */#define configUSE_TRACE_FACILITY 0 /* 就是SYSTEM TICK的长度,16是16位,如果是16位以下CPU, 一般选1;如果是32位系统,一般选0 */ #define configUSE_16_BIT_TICKS 0 /* 简单理解以下就是和IDLE TASK同样优先级的任务执行情况。建议设成1,对系统影响不大 */#define configIDLE_SHOULD_YIELD 1 /* 是否用MUTEXES。 MUTEXES是任务间通讯的一种方式,特别是用于任务共享资源的应用,比如打印机,任务A用的时候就排斥别的任务应用,用完了别的任务才可以应用 */#define configUSE_MUTEXES 0 /* 确定是否用递归式的MUTEXES */#define configUSE_RECURSIVE_MUTEXES 0 /* 是否用计数式的SEMAPHORES,SEMAPHORES也是任务间通讯的一种方式 */#define configUSE_COUNTING_SEMAPHORES 0 /* 是否应用可切换式的API。freeRTOS 同一功能API有多个,有全功能但是需求资源和时间较多的,此项使能后就可以用较简单的API, 节省资源和时间,但是应用限制较多 */#define configUSE_ALTERNATIVE_API 0 /* 此项用于DEBUG,来看是否有栈溢出,需要你自己编相应检查函数void vApplicationStackOverflowHook(xTaskHandle *pxTask, signed portCHAR *pcTaskName ) */#define configCHECK_FOR_STACK_OVERFLOW 0/* 用于DEBUG,登记SEMAPHORESQ和QUEUE的最大个数,需要在任务用应用函数vQueueAddToRegistry()和vQueueUnregisterQueue() */#define configQUEUE_REGISTRY_SIZE 10/* 设定可以改变任务优先度 */#define INCLUDE_vTaskPrioritySet 1/* 设定可以查询任务优先度 */#define INCLUDE_uxTaskPriorityGet 1/* 设定可以删除任务 */#define INCLUDE_vTaskDelete 1/* 据说是可以回收删除任务后的资源(RAM等)*/#define INCLUDE_vTaskCleanUpResources 0 /* 设置可以把任务挂起 */#define INCLUDE_vTaskSuspend1 /* 设置可以从中断恢复(比如系统睡眠,由中断唤醒 */#define INCLUDE_vResumeFromISR 1 /* 设置任务延迟的绝对时间,比如现在4:30,延迟到5:00。时间都是绝对时间 */#define INCLUDE_vTaskDelayUntil 1/* 设置任务延时,比如延迟30分钟,相对的时间,现在什么时间,不需要知道 */#define INCLUDE_vTaskDelay1/* 设置 取得当前任务分配器的状态 */#define INCLUDE_xTaskGetSchedulerState 1 /* 设置当前任务是由哪个任务开启的 */#define INCLUDE_xTaskGetCurrentTaskHandle 1/* 是否使能这一函数,还数的目的是返回任务执行后任务堆栈的最小未用数量,同样是为防止堆栈溢出 */#define INCLUDE_uxTaskGetStackHighWaterMark 0 /* 是用用协程。协程公用堆栈,节省RAM,但是没有任务优先级高,也无法和任务通讯 */#define configUSE_CO_ROUTINES 0/* 所有协程的最大优先级数,协程优先级永远低于任务。就是系统先执行任务,所有任务执行完了才执行协程。*/#define configMAX_CO_ROUTINE_PRIORITIES 1/* 系统内核的中断优先级,中断优先级越低,越不会影响其他中断。一般设成最低 */#define configKERNEL_INTERRUPT_PRIORITY dependent of processor /* 系统SVC中断优先级,这两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论