OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2410|回复: 3

裸板有所谓堆栈的概念吗?堆栈的概念,是建立在IC级别,还是.s文件,或是系统级别?

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-5-23
在线时间
5 小时
发表于 2019-7-17 22:57:54 | 显示全部楼层 |阅读模式
1金钱
裸板,我都可以在执行中断函数前,不进行 所谓的压栈操作,让跳到 中断函数后出来丢失掉 现场而直接结束 运行,对于 裸板 ,SRAM就是易失性存储器,FLASH 就是非易失性存储器,
我搜索 堆栈的讲解  都是在说用  malloc 开辟的在堆上,     裸板只有   CPU的取值,译码 ,物理IC  ,哪有malloc可言????
如果 栈 是物理IC上  进行的 压栈,那就是独立于  SRAM 的物理介质

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-7-18 02:12:21 | 显示全部楼层
当然有,只要用到中断,就会用到
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-5-23
在线时间
5 小时
 楼主| 发表于 2019-7-18 08:48:40 | 显示全部楼层
正点原子 发表于 2019-7-18 02:12
当然有,只要用到中断,就会用到

堆栈 肯定不是独立于内存 ,存在的一种物理IC 存储块,堆栈应该就是在内存里的
那 栈的先入先出的限制来自于哪?肯定不来自于物理IC的限定,应该是来自于程序的限定,让栈先入先出
压栈的操作有来自于哪?应该不是物理IC压栈,而是程序压栈,我记得以前学51的时候就要自己PUSH   POP
总结来说,堆栈就是程序特殊管理的一块 普通内存区域
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2019-5-23
在线时间
5 小时
 楼主| 发表于 2019-7-18 19:52:55 | 显示全部楼层
我想我证明了,是在 .S文件中才有中断的概念
在ucos 系统下,每个任务都必须是一个while(1)循环,这样系统就是活的,就能任务调度
但是我把while(1)都去掉,然后CPU执行完一次就死掉了,
这就是因为没有办法任务调度了,所有的语句都被CPU执行完了,CPU就收工了
哪任务切换的中断为什么进不去了呢?
因为   .S   被执行完了,对于中断的判定 与进入中断的 语句  不再被CPU认为是未执行完的语句,不再有效力
所以 ,没有了while(1)  ->所有语句被执行完   ->CPU不再认识什么是中断
所以   while(1)是为了  让.S文件活着 ,才具备 中断判定   进入中断向量表  压栈,出栈  
这些都是因为 .S文件 还活着
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 05:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表