【发布时间】:2014-05-20 10:06:38
【问题描述】:
我是 FreeRTOS (ARM CM3) 的初学者,我的问题是:
当您创建一个内部包含一些局部变量的任务时,这些变量存储在 RAM 中的什么位置、堆栈(由 main() 使用)中,就像局部变量的一般情况一样,或者存储在专用于此任务(使用 xTaskCreate() 函数/usStackDepth 参数创建)?
最好的问候
【问题讨论】:
标签: c memory-management freertos
我是 FreeRTOS (ARM CM3) 的初学者,我的问题是:
当您创建一个内部包含一些局部变量的任务时,这些变量存储在 RAM 中的什么位置、堆栈(由 main() 使用)中,就像局部变量的一般情况一样,或者存储在专用于此任务(使用 xTaskCreate() 函数/usStackDepth 参数创建)?
最好的问候
【问题讨论】:
标签: c memory-management freertos
如果变量在任务函数中声明,即它们是普通的“自动”变量,那么它们将使用任务的堆栈。
这些变量在堆栈上分配给运行相关函数的执行线程,这与main() 相同,当然main() 不在 FreeRTOS 任务中运行。
【讨论】: