STM32+FREERTOS任务堆栈大小

这篇具有很好参考价值的文章主要介绍了STM32+FREERTOS任务堆栈大小。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在FREERTOS任务开发过程中,由于不知道具体需要分配多大的任务堆栈大小,就需要在开始开发阶段尽可能的多分配一些,不然在调试过程中会出现程序卡死或者数据通信异常的现象。

如何评估任务堆栈的分配大小问题,可以根据任务的规模以及所任务所需的数据空间大概进行估算一个值。这个值最好是128的整数倍。因为在FreeRTOSConfig.h已经设置了最小的任务堆栈大小

#define configMINIMAL_STACK_SIZE                 ((uint16_t)128)

还可以先分配一个大的任务堆栈,开发完成后根据测试的实际任务堆栈使用情况再去优化任务堆栈大小,节省资源。

具体步骤:

1、在FreeRTOSConfig.h中增加配置

#define INCLUDE_uxTaskGetStackHighWaterMark  1

2、调用uxTaskGetStackHighWaterMark()

通过uxTaskGetStackHighWaterMark可以获取任务堆栈所剩余的空间大小,根据这个数值来优化修改创建任务时的DEFAULT_STACKSIZE大小。

osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, DEFAULT_STACKSIZE);

代码是:

printf(" Task free stack size is %ld\r\n",(int32_t)uxTaskGetStackHighWaterMark(NULL));

 文章来源地址https://www.toymoban.com/news/detail-579083.html

到了这里,关于STM32+FREERTOS任务堆栈大小的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

    学习使用Freertos第一步 FreeRTOS 任务管理,您需要掌握以下几个关键函数: 1. xTaskCreate() :用于创建一个任务,需要指定任务函数、任务名称、任务栈大小和优先级等参数。 2. vTaskDelete() :用于删除一个任务,可以由任务自身或其他任务调用。 3. vTaskDelay() :用于使当前任务进

    2024年02月12日
    浏览(39)
  • 【STM32】利用CubeMX对FreeRTOS用按键控制任务

    对于FreeRTOS中的操作,最常用的就是创建、删除、暂停和恢复任务。 此次实验目标: 1.创建任务一:LED1每间隔1秒闪烁一次,并通过串口打印 2.创建任务二:LED2每间隔0.5秒闪烁一次,并通过串口打印 3.创建任务三:通过KEY1实现对任务一的创建和删除。 按键按下以后如果有任

    2024年02月13日
    浏览(69)
  • STM32 CubeMX (第一步Freertos任务管理:创建、删除、挂起、恢复)

    学习使用Freertos第一步 FreeRTOS 任务管理,您需要掌握以下几个关键函数: 1. xTaskCreate() :用于创建一个任务,需要指定任务函数、任务名称、任务栈大小和优先级等参数。 2. vTaskDelete() :用于删除一个任务,可以由任务自身或其他任务调用。 3. vTaskDelay() :用于使当前任务进

    2024年02月12日
    浏览(49)
  • STM32初学者入门FreeRTOS操作系统,多任务实时系统

            FreeRTOS(Free Real-Time Operating System)是一个开源的嵌入式实时操作系统,它专门设计用于在资源有限的嵌入式系统中运行。FreeRTOS提供了一些用于任务管理、调度、同步和通信的功能,使开发者能够轻松地创建可靠的嵌入式系统。 以下是FreeRTOS的一些特点和功能: 轻量

    2024年02月11日
    浏览(47)
  • STM32 hal库使用笔记之FreeRTOS—任务创建、删除,任务挂起、恢复,任务中断管理

    一、简介 1.FreeRTOS简介     RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。而Free显而易见体现的是其免费性。总的来说这是一个免费的嵌入式实时操作系统。     其特点是:免费开源、可剪裁(独立性强,适应范围广)、简单、优先级/任务不限(但是受到不

    2024年02月04日
    浏览(50)
  • STM32 CubeMX (第二步Freertos任务通信:队列、信号量、互斥量,事件组,任务通知)

    学习使用Freertos第二步 在 FreeRTOS 中,任务通信可以通过以下函数来实现: xQueueCreate() :用于创建一个消息队列。可以设置队列长度和每个消息的大小。 xQueueSend() :将一条消息发送到队列中。可以选择阻塞或非阻塞发送。 xQueueReceive() :从队列中接收一条消息。可以选择阻塞

    2024年02月11日
    浏览(44)
  • STM32 Hal库FreeRTOS统计CPU占比 找出有问题的任务 仅需一个函数搞定 超简单

    一、实现目标 STM32F103 基于Hal库跑FreeRTOS,统计CPU占比 找出有问题的任务,类似实现一个windows 系统的任务查看界面。 代码运行结果如下 二、思路 记录任务的时间点,相减获得任务所占用的时间,所得时间/总时间,得到该CPU占比。  三、实现函数 只需要调用一个vTaskGetRunT

    2024年01月24日
    浏览(45)
  • FreeRTOS的任务堆栈

    一、 FreeRTOS的任务堆栈 在FreeRTOS中,每个任务都有自己的堆栈。堆栈是用来存储任务运行时临时变量、函数返回地址等数据的一段内存空间。堆栈的大小是通过xTaskCreate()函数的参数指定的,通常情况下需要根据任务所需的局部变量的大小及递归调用深度来合理设置。 FreeRTO

    2024年02月14日
    浏览(39)
  • (第48-59讲)STM32F4单片机,FreeRTOS【事件标志、任务通知、软件定时器、Tickless低功耗】【纯文字讲解】【】

    【吐血总结】FreeRTOS难点、Systick中断-滴答定时器、PendSV中断-任务切换、SVC中断-系统底层、时间片调度-时钟节拍【已完结】 (第1-8讲)STM32F4单片机,FreeRTOS基础知识总结【视频笔记、代码讲解】【正点原子】【原创】 (第9-10讲)STM32F4单片机,FreeRTOS任务创建和删除(动态方

    2024年02月01日
    浏览(64)
  • 【FreeRTOS】FreeRTOS移植stm32详细步骤介绍

    我在查找FreeRTOS移植的相关教程特别少,所以想非常详细的介绍FreeRTOS移植stm32详细步骤,包括源码的下载,源码介绍,系统移植,代码验证等,每一步都有对应的介绍和解释,希望可以帮助到你们。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包