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

FreeRTOS 用在M核心的MCU上面使用的是双堆栈吗?

apleilx 2017-11-26 浏览量:984
RTX作为ARM官方提供的OS使用的是双堆栈,这样分配任务堆栈时就不用考虑中断使用堆栈的尺寸了。那FreeRTOS 呢?是不是也使用了双堆栈结构?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 如果是用在STM32上,那么M3内核是有双堆栈指针的,FreeRTOS的系统栈空间使用的是MSP堆栈指针,而进程或是任务使用的是PSP堆栈指针。
    但你的问题是指单片机,而不是特指STM32系列的,所以,其他的单片机就不了解了,主要还是要看内核与架构支不支持吧,就算架构不支持,从软件上应该也是可以实现的,但方法、机制就不知道了。
    • 发布于 2017-11-27
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 关注下,很好奇双堆栈是如何实现的。
    • 发布于2017-11-26
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :如附件图片 回复

  • FreeRTOS应该没有主动使用线程堆栈?不是很清楚。不过M核心是有双堆栈指针的。RTX又是官方转为Cortex m内核设计的实时系统,用起来比较安逸。我自己一直用的RTX。
    • 发布于2017-11-27
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有查到关于有效期的说明 回复

  • 关注下+1,不过这种操作系统用双堆栈的话也挺正常的,能保证数据安全的问题还不会让系统的内存负担增加太多。

    • 发布于2017-11-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

FreeRTOS 用在M核心的MCU上面使用的是双堆栈吗?