freertos栈与STM32栈的关系

freertos 的栈,与STM32启动文件里的栈没有关联

freertos 的总栈,根据configTOTAL_HEAP_SIZE来配置,不受到启动文件里Stack_Size或者Heap_Size的影响

有时候写程序不太清楚freertos 每个任务栈分配的大小是否合理,就需要一个办法来查询和调整,下面提供了2个方法。

方法1,查询法

调用uxTaskGetStackHighWaterMark()函数,查询每个任务的当前剩余栈

//函数原型
unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask );

方法2,溢出中断法

更改 freertos 的配置项 configCHECK_FOR_STACK_OVERFLOW 为 1 或者 2
然后新建一个函数:

void vApplicationStackOverflowHook (TaskHandle_t xTask, signed char *pcTaskName) {printf("[Stack] %s溢出\r\n",pcTaskName);
}

那么栈溢出的时候,就会进入这个函数。

STM32 freertos堆栈溢出检查方法相关推荐

  1. FreeRTOS堆栈溢出检查

    FreeRTOS堆栈溢出检查 RTOS任务都需要分配堆栈,堆栈大小不合理,会造成内存越界或者资源的浪费.如果在没有把握堆栈大小,尽量将堆栈往大的方向设置,这样能保证任务堆栈上下文切换不会溢出. 任务堆 ...

  2. FreeRTOS检测堆栈溢出方法

    方法一:查询当前任务剩余堆栈 #define INCLUDE_uxTaskGetStackHighWaterMark 1getRemainStack[0] = uxTaskGetStackHighWa ...

  3. esp32 怎么分配freertos 堆栈大小_详解STM32单片机的堆栈

    学习STM32单片机的时候,总是能遇到"堆栈"这个概念.分享本文,希望对你理解堆栈有帮助. 对于了解一点汇编编程的人,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数 ...

  4. 【基于stm32 FreeRtos的智能台灯控制】

    基于stm32 FreeRtos的智能台灯控制 之前做了一个裸机版本的智能台灯,最近刚好复习一下FreeRto的一些基础知识,朋友发给了我一个功能需求刚好用来实践一下,需要的朋友可以自行下载. 完整工 ...

  5. STM32 FreeRTOS CMSIS—OS

    STM32 FreeRTOS CMSIS-OS 前言 1.关于 osThreadNew () 1.1 FreeRTOS线程与任务的关系 1.2 osThreadNew () 1.2.1 osThrea ...

  6. java的Deque栈_Java使用Deque实现堆栈的方法

    本文实例讲述了Java使用Deque实现堆栈的方法.分享给大家供大家参考.具体如下: import java.util.ArrayDeque; import java.util.Deque; publ ...

  7. JVM—堆栈 堆 方法区 静态区 final static 内存分配

    原文作者:一夜丶鱼龙舞 原文地址:JAVA 堆栈 堆 方法区 静态区 final static 内存分配 详解(转) 一.栈(stack)和堆(heap) (1)内存分配的策略 按照编译原理的观点,程 ...

  8. 基于STM32+FreeRtos+ESP8266+MQTT连接阿里云

    基于STM32+FreeRtos+DHT12+ESP8266+MQTT连接阿里云 1.概述 2.实现步骤 2.1.MQTT.fx模拟器与阿里云通信 2.2.STM32与阿里云通信 3. 搭建云平台 3 ...

  9. STM32中堆栈的理解

    STM32中堆栈的理解 关于程序的内存分配 栈区(stack):由编译器自动分配和释放,存放函数的参数与返回值.局部变量等. 堆区(heap):由程序员分配管理,一般未使用(malloc函数). 全局 ...

  10. Android hal 层 C 堆栈打印方法

    Android hal 层 C 堆栈打印方法 一.添加CallStack文件 在hardware/qcom/audio/hal/ 下添加 callstack.cpp 和 callstack.h文件 # ...

最新文章

  1. 方差,标准差,协方差、期望值
  2. 硬币(计算n分有几种表示法)
  3. JAVA按钮设置组合快捷键
  4. Collection、泛型
  5. AI算法连载20:统计之隐马尔可夫模型
  6. 整合php和mysql lnmp,安装配置LNMP服务器(Nginx+PHP+MySQL)
  7. Mobile-LPR——面向移动端的准商业级车牌识别库
  8. HTTP::Request
  9. Struts2的学习-属性驱动和模型驱动
  10. Redis命令拾遗四——集合类型(命令补充)
  11. centos操作系统镜像文件下载
  12. 「AI」一文看懂“声纹识别VPR”
  13. 贪心算法详细讲解(附例题,一看就会)
  14. 浅谈高速公路服务区分布式光伏并网发电
  15. html省市插件,省市区三级联动:非常好用的纯js插件
  16. clac计算样式不生效?
  17. JAVA语言的由来以及相关情况介绍
  18. KZ笔记2:视角控制
  19. 新人想要做好视频号;一下几点一定要明白。
  20. 笔记—ARM体系结构与编程(汇编指令)第二天

热门文章

  1. 卸载安装office2013、office2016遇到的问题 - 错误1402,安装程序无法打开注册表项。
  2. 蓝旭暑期培训——DOM事件+正则表达式
  3. python中%是什么意思_在python中%是什么意思
  4. 关于 PHP 的框架 phalcon 学习(一) url 路由过程。
  5. 听打测试打字速度软件,易捷听打练习测速助手
  6. [OpenHarmony RK3568] (三)蓝牙芯片适配
  7. DFS(深度优先搜索)和BFS(广度优先搜索)求迷宫路径问题的总结
  8. matlab pinv 实现_matlab:inv,pinv逆与伪逆
  9. Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extension.
  10. 使用 Google 的 zx 库在 Node 中编写 Shell 脚本技巧你会了吗