[STM32F1] cortex-m3堆栈的切换

[复制链接]
2114|28
huwr 发表于 2019-1-10 19:32 | 显示全部楼层
这是为什么,什么原因
 楼主| pangb 发表于 2019-1-10 19:36 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
hotyong 发表于 2019-1-21 15:33 | 显示全部楼层
huangchui 发表于 2019-1-10 19:06
果然如此,编译通过了,哈哈。
大神可不可以跟我讲下为什么要有两个堆栈指针呢 ...

两个堆栈指针是为多任务而设计的
假设只用一个堆栈的话。在一个多任务系统中,有2个任务,任务1最大使用100字节堆栈,任务2最大使用100字节堆栈,如果进入中断最大要使用1000字节,那么至少要分配1100字节堆栈给任务1,分配1100字节给任务2.那么总堆栈消耗2200字节。  ----只有一个堆栈时,每个任务都要给中断准备中断堆栈空间
如果有2个堆栈的话,任务1只要分配100字节堆栈,任务2分配100字节堆栈。中断使用主堆栈1000字节。那么总共消耗的堆栈就只有1200字节了。   ----2个堆栈的话,任务堆栈只需要分配自己的堆栈就好了,所有中断共用一个主堆栈。
假设有n个任务。那么就省掉了(n-1)个中断堆栈大小
heimaojingzhang 发表于 2019-2-1 14:43 | 显示全部楼层
看不懂代码啊
labasi 发表于 2019-2-1 15:41 | 显示全部楼层
不太明白堆栈怎么切换
paotangsan 发表于 2019-2-1 16:06 | 显示全部楼层
M3和M0的模式还不同吗?
paotangsan 发表于 2019-2-1 16:16 | 显示全部楼层
涉及到切换吗 是不是仅仅地址不对啊
wakayi 发表于 2019-2-1 16:30 | 显示全部楼层
真的看不懂代码
木木guainv 发表于 2019-2-1 16:45 | 显示全部楼层
好多问题第一次看见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部