完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
堆栈是以后进先出(LIFO)方式添加或删除数据的内存区域。
在RTOS中,每个线程都有一个单独的内存区用于堆栈。 在函数执行期间,数据可能会添加到堆栈的顶部;当函数退出时,它会从堆栈中删除该数据。 在Cortex-M处理器系统中,需要考虑两个堆栈存储区域: ·在RTOS内核启动之前和中断服务例程(ISR)使用系统堆栈。 它通过主栈指针(MSP)进行寻址。 ·线程堆栈(S)由运行的RTOS线程使用,并通过进程堆栈指针(PSP)进行寻址。 由于堆栈的内存区域在大小上受到限制,因此在堆栈上分配比可用内存更多的内存可能会导致程序崩溃或堆栈溢出。 在嵌入式系统中,外部程序事件的时序会影响程序流,而堆栈大小问题可能会产生不常见的零星程序错误。 因此,了解应用程序的堆栈内存要求至关重要。 为了计算(并因此优化)所需的堆栈存储器大小,可以使用以下方法: ·静态分析(使用调用树分析)在构建时(例如通过链接器)执行。 ·动态分析(使用堆栈水印)在运行时(例如在调试会话中)执行。
|
|
|
|
只有小组成员才能发言,加入小组>>
5739 浏览 5 评论
ARM9学习4-S3C2410的启动代码分析-For ADSv1.2
2845 浏览 0 评论
488浏览 1评论
429浏览 1评论
424浏览 0评论
安装适用于STMicroelectronics Edition 1.1版的Keil MDK应用说明
265浏览 0评论
496浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:10 , Processed in 0.631998 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号