03嵌入式实时操作系统FreeRTOS裁剪和配置.ppt
《03嵌入式实时操作系统FreeRTOS裁剪和配置.ppt》由会员分享,可在线阅读,更多相关《03嵌入式实时操作系统FreeRTOS裁剪和配置.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式实时操作系统嵌入式实时操作系统FreeRTOSFreeRTOS原理及应用原理及应用基基于于STM32STM32微控制器微控制器嵌入式实时操作系统嵌入式实时操作系统FreeRTOS原理及应用原理及应用张超张超 主编主编STM32 Cortex-M4通用开发板通用开发板嵌入式实时操作系统嵌入式实时操作系统FreeRTOS原理及应用原理及应用FreeRTOS基础配置基础配置FreeRTOS与中断相关配置与中断相关配置FreeRTOS可选可选API函数配置函数配置FreeRTOS其它配置其它配置FreeRTOS参考配置示例参考配置示例FreeRTOS的裁剪和配置的裁剪和配置主要内容:主要内容:一
2、、FreeRTOS基础配置基础配置FreeRTOS的裁剪和配置的裁剪和配置FreeRTOS基础配置基础配置configUSE_PREEMPTIONconfigUSE_PORT_OPTIMISED_TASK_SELECTIONconfigCPU_CLOCK_HZconfigTICK_RATE_HZconfigMAX_PRIORITIESconfigMINIMAL_STACK_SIZE常用配置项常用配置项是运行FreeRTOS比较常用的一些配置,涉及调度方式、时钟节拍、堆内存大小、空闲任务堆栈等。FreeRTOS基础配置基础配置configTOTAL_HEAP_SIZEconfigUSE_16_B
3、IT_TICKSconfigIDLE_SHOULD_YIELDconfigMAX_TASK_NAME_LENconfigUSE_TICKLESS_IDLE常用配置项常用配置项队列信号量相关队列信号量相关FreeRTOS基础配置基础配置configUSE_QUEUE_SETS用于定义是否使用队列集。configUSE_MUTEXES用于定义是否使用互斥信号量。configUSE_RECURSIVE_MUTEXES用于定义是否使用递归互斥信号量。configUSE_COUNTING_SEMAPHORES用于定义是否使用计数信号量。configUSE_TASK_NOTIFICATIONS用于定义是否
4、使用任务通知。当宏设置为1时,相应功能的API函数就会被编译。钩钩子函数相关子函数相关FreeRTOS基础配置基础配置configUSE_IDLE_HOOK用于使能空闲任务钩子函数。configUSE_TICK_HOOK用于使能时间片钩子函数。configUSE_MALLOC_FAILED_HOOK用于使能动态内存分配失败钩子函数。configCHECK_FOR_STACK_OVERFLOW用于使能堆栈溢出检测钩子函数。钩子函数需要用户实现,当对应的宏不为0时,必须提供相应的钩子函数。二、FreeRTOS与中断相关配置中断相关配置FreeRTOS的裁剪和配置的裁剪和配置FreeRTOS与中断相
5、关配置与中断相关配置Cortex-M优先级优先级STM32微控制器使用ARM Cortex-M内核,Cortex-M内核采用8个二进制位来表示可编程的优先级,共有256级。实际的优先级数由芯片生产厂家决定,像STM32微控制器,就没有使用全部的8个二进制位,而只是使用了4位,共16个优先级。不管采用多少位表达优先级,均采用MSB对齐方式,使用4位来表达优先级时MSB对齐的情形如下:FreeRTOS与中断相关配置与中断相关配置configPRIO_BITS设置硬件用于表达优先级的二进制位数。STM32微控制器使用的是4位,此宏应该设定为4。因在core_cm4.h头文件中定义了表达优先级位数据的
6、宏_NVIC_PRIO_BITS,且该宏已设为4,可通过这个宏来设定configPRIO_BITS,或者直接将configPRIO_BITS设定为4。#ifdef _NVIC_PRIO_BITS#define configPRIO_BITS _NVIC_PRIO_BITS /*core_cm4.h中定义的宏中定义的宏*/#else#define configPRIO_BITS 4 /*对对STM32微控制器应设为微控制器应设为4*/#endifFreeRTOS与中断相关配置与中断相关配置configLIBRARY_LOWEST_INTERRUPT_PRIORITY用于设置中断最低优先级。STM
7、32微控制器使用4位二进制位表达优先级,优先级数最多就是16个。但STM32微控制器表达优先级高低与优先级数的关系比较特殊,数值越大,优先级反而越低,数值为0时表示最高优先级。所以,此宏的值应设为15。FreeRTOS与中断相关配置与中断相关配置configKERNEL_INTERRUPT_PRIORITY用于设置内核的中断优先级,即嘀嗒定时器和PendSV的中断优先级。此宏定义通过configLIBRARY_LOWEST_INTERRUPT_PRIORITY (8-configPRIO_BITS)替换得到,替换结果应该是中断系统中的最低优先级。用前面定义好的宏,替换为0 x0F(8-4),结
8、果为0 xF0,高4位正好就是15,也就是STM32微控制器的最低中断优先级。FreeRTOS与中断相关配置与中断相关配置configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY用于设置FreeRTOS可管理的最大优先级。可以在硬件中断优先级数量之内任意设置,比如设置为5,表示高于优先级5的中断(对于STM32微控制器,为优先级0至4)不归FreeRTOS管理。FreeRTOS与中断相关配置与中断相关配置configMAX_SYSCALL_INTERRUPT_PRIORITY由宏configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 嵌入式 实时 操作系统 FreeRTOS 裁剪 配置
限制150内