OpenEdv-开源电子网

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

大佬们,main函数里面不加while{}程序会怎么跑

[复制链接]

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
发表于 2021-11-3 18:56:55 | 显示全部楼层 |阅读模式
1金钱

大佬们,我有一个程序跑,我没有写while(1){},然后不停的重启了,不停的打印了*,请问下大佬们为啥

最佳答案

查看完整内容[请看2#楼]

如果有能力看汇编的话,自己去看下对应的汇编,看怎么处理的 不会看汇编,自己记住没加while,就是程序写的有问题,会重新开始就行了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2016-3-8
在线时间
267 小时
发表于 2021-11-4 09:52:01 | 显示全部楼层
没有while循环,执行完最后一行你写的程序后,会继续向下取指令。因为下一条指令并不是你编程的,可能是芯片flash原本的初值,或者是上次没擦除的值。
如果取到的指令是无效指令,一些单片机会进入指令错误中断,然后在中断循环,有看门狗就会复位,没看门狗就是死在断里。
有些单片机的flash初始值是nop指令,那么就会一直nop。直到PC指针超区或溢出回到第一条指令重新执行。
如果取到的是其他上次未擦除的代码,那情况就多了。
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2021-11-3 18:56:56 | 显示全部楼层
如果有能力看汇编的话,自己去看下对应的汇编,看怎么处理的    不会看汇编,自己记住没加while,就是程序写的有问题,会重新开始就行了
回复

使用道具 举报

11

主题

2149

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4915
金钱
4915
注册时间
2015-1-10
在线时间
616 小时
发表于 2021-11-4 09:03:27 | 显示全部楼层
没有循环就跑飞重启了
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
 楼主| 发表于 2021-11-4 09:17:30 | 显示全部楼层
阿侑kevin 发表于 2021-11-4 09:03
没有循环就跑飞重启了

这个跑飞怎么理解
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
 楼主| 发表于 2021-11-4 09:29:06 | 显示全部楼层
jermy_z 发表于 2021-11-4 09:27
如果有能力看汇编的话,自己去看下对应的汇编,看怎么处理的    不会看汇编,自己记住没加while,就是程序 ...

感谢大佬
回复

使用道具 举报

32

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
617
金钱
617
注册时间
2013-1-16
在线时间
131 小时
 楼主| 发表于 2021-11-4 10:16:06 | 显示全部楼层
pdwdzz 发表于 2021-11-4 09:52
没有while循环,执行完最后一行你写的程序后,会继续向下取指令。因为下一条指令并不是你编程的,可能是芯 ...

大佬,讲的通透
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 10:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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