lee88688 发表于 2014-11-28 21:49:34

请问一下在RTT中栈是用来干嘛的啊

如题,我看每一个进程在创建的时候都会要这个东西,当然在系统也有栈的存在,STM32在启动代码中也会定义栈,不知道这个栈和那个RTT中的栈是否是一样的。最好能详细讲一下RTT是怎么利用这个栈的。

彼岸花开@ 发表于 2014-11-28 22:01:51

1、任务切换的时候。此次任务的上下文保存到进程栈中。

lee88688 发表于 2014-11-29 20:41:09

彼岸花开@ 发表于 2014-11-28 22:01
1、任务切换的时候。此次任务的上下文保存到进程栈中。

除此之外就没有了啊,那其实感觉也用不了多少嘛

彼岸花开@ 发表于 2014-11-29 20:55:49

lee88688 发表于 2014-11-29 20:41
除此之外就没有了啊,那其实感觉也用不了多少嘛

1、其他我也不清楚。。这个任务栈,是我前几天看书了解到的。
2、我也是新手、不能给出更多的帮助。

security 发表于 2014-11-29 21:54:43

本帖最后由 security 于 2014-11-29 22:08 编辑

任务上下文,
以及局部变量,就是函数内部的非静态变量,是在栈
函数执行过程所需要的额外栈,例如将LR,及其他寄存器压入栈
这些都是要求不同线程,压入不同的栈,才能保证不同线程不互相影响。

其他的与初始栈的差异,以及如何起作用,你只要查看下函数的反汇编代码,就可以看见SP在起作用,好好体会下SP,同时可以看看这个帖子,我的回复http://www.amobbs.com/thread-5604145-1-1.html,加深体会。

lee88688 发表于 2014-11-30 20:36:41

彼岸花开@ 发表于 2014-11-29 20:55
1、其他我也不清楚。。这个任务栈,是我前几天看书了解到的。
2、我也是新手、不能给出更多的帮助。
...

谢谢你们的回答,不过我想问一下看的是什么书啊,是关于RTOS的吗?可否分享一下。

彼岸花开@ 发表于 2014-11-30 21:05:43

1、一个国产的操作系统
2、是一个新的,还没有应用到项目中
3、是一个学习操作系统的好书
4、前几章见附件

shenzhen_apeng 发表于 2015-1-4 10:57:44

5楼说的基本了,每个任务都有一个独立的栈,栈的作用是在任务运行时为函数的局部变量分配空间以及函数嵌套时寄存器和返回地址的保存,另外在系统调度时保存任务当前运行的各个通用寄存器的值,以便任务再次运行时能继续之前的状态
页: [1]
查看完整版本: 请问一下在RTT中栈是用来干嘛的啊