• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

FreeRTOS创建任务时的堆栈问题

Spirit 2018-12-01 浏览量:1312

baseType_t xTaskCreate( TaskFunction_t pxTaskCode
       const char * const pcName
       const uint16_t usStackDepth
       void * const pvParameters
       UbaseType_t uxPriority
       TaskHandle_t * const pxCreatedTask )

其中参数usStackDepth指定堆栈大小。

请问,这个堆栈是用来干什么的?

是任务中分配的局部变量放在这个堆栈里吗?

或者是任务切换过程中保存局部变量的?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 一是FreeRTOS任务自身需要的空间,二是存放应用程序运行时的临时变量,包括应用程序调用的函数所分配的变量
    • 发布于 2018-12-01
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 这个堆栈主要放切换任务是cpu一些数据和内存中数据
    • 发布于2018-12-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个堆栈主要放切换任务是cpu一些数据和内存中数据
    • 发布于2018-12-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个堆栈的功能是用于系统运行过程中,对于任务调度的
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个堆栈的功能是用于系统运行过程中,对于任务调度的
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 堆栈是用于每个线程内部变量的保存,因为freertos随时都有可能发生调度,因此每个线程都要有独立的堆栈空间
    • 发布于2018-12-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 堆跟栈是分开的,堆放的是全局变量和信号量的数据,栈放的是函数的临时数据。
    • 发布于2018-12-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 堆栈里面有数据的保存,可能是你的任务切换的时候会导致你的数据失效
    • 发布于2019-01-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以直接把你的数据保存到对的内存中就可以
    • 发布于2019-01-12
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

FreeRTOS创建任务时的堆栈问题