FreeRTOS
文章平均质量分 59
技术在路上
这个作者很懒,什么都没留下…
展开
-
STM32内存结构介绍,FreeRTOS内存分配技巧,Stack_Size和Heap_Size大小设置
STM32内存结构介绍和FreeRTOS内存分配技巧这是我第一次使用FreeRTOS构建STM32的项目,踩了好些坑,又发现了我缺乏对于操作系统的内存及其空间的分配的知识,故写下文档记录学习成果。文章最后要解决的问题是,如何恰当地分配FreeRTOS中的堆、任务栈的空间。但是在概念的理解上,也需要知道STM32内存的相关知识。所以首先大致介绍一下STM32的内存结构。STM32内存结构STM32的数据在物理上分别储存在RAM和Flash中。RAM可读可写,掉电清零。Flash可读可写,但是读写时间很原创 2021-09-13 09:25:27 · 18145 阅读 · 7 评论 -
FreeRTOS堆分配大小对任务数的影响
FreeRTOS堆分配(内存)如果不够大,可能引起FreeRTOS运行异常。对于STM32芯片, 如果使用STM32CubeMX配置FreeRTOS,创建4个任务时,会引起FreeRTOS运行异常,原因是cube默认是使用heap_4.c文件来动态分配内存,并将堆大小设置为3072,见FreeRTOSConfig.c文件中的定义:#define configTOTAL_HEAP_SIZE ((size_t)3072)这个堆大小可以满足创建3个任务,但如果创建4个任务,程序将运行异常。经过断点调试,可转载 2021-07-21 15:20:54 · 2881 阅读 · 0 评论 -
STM32使用freertos时在中断中调用系统函数的注意点
CORTEX内核的优先级是数值越小优先级越高,即0是最高优先级。FreeRTOS正好相反,为了满足某些应用对中断实时性要求高的需求,使得中断优先级高于某个值之后,就不能调用操作系统的内核函数来提高实时性。而我们经常所犯的错误就是将中断的优先级设置的高于这个值,却还在中断中调用操作系统提供的API引起的。当把优先级改小也就是数值改大之后,程序能够正常运行。注意点: 1:首先要将中断转载 2016-07-15 13:41:25 · 9250 阅读 · 1 评论 -
stm32f 使用freertos时在中断中调用系统函数的注意点
在使用freertos的过程中,由于没有注意到中断中使用系统函数的问题导致单片机死机。注意点: 1:首先要将中断的嵌套设置为抢占优先级。2:将freertos系统内核中断(configKERNEL_INTERRUPT_PRIORITY)的优先级设置成最低。3:将freertos的最大系统调用中断优先级(configMAX_SYSCALL_INTERRUPT_PRIOR转载 2017-06-14 17:41:15 · 2184 阅读 · 0 评论