stm32,单片机 程序执行完毕后,进入什么状态?

hust_xiaowei 2014-05-14 03:34:47
大侠们,想问问,main函数执行完后,arm进入什么状态了呢?外设还在运行吗?程序指针运行没?还有啥模块在运行?

单片机又是什么情况呢?

Thanks!
...全文
953 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdevi 2014-07-10
  • 打赏
  • 举报
回复
我最近弄的都是在大循环中执行,不断的查询判断。当然,自己做的都是demo,还没放到项目中
xurimingyue 2014-06-12
  • 打赏
  • 举报
回复
一直在大循环吧,还有要看实际的程序才行。。。
dongranmengming 2014-06-08
  • 打赏
  • 举报
回复
; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP 汇编
li_rui_1220 2014-06-05
  • 打赏
  • 举报
回复
据我了解,开发环境是不会让main函数执行完吧!即使执行完了程序,开发环境会自动给你添加上死循环的。就是CPU在那空转
vc8fans 2014-05-21
  • 打赏
  • 举报
回复
如果不关心走向,还是移植操作系统吧,对STM32小菜一碟,那你真不同管太地层事情了
zhujinqiang 2014-05-20
  • 打赏
  • 举报
回复
那要看楼主你在main函数里面都写了些什么代码呀。
熊已出没 2014-05-15
  • 打赏
  • 举报
回复
写的程序要在自己的可控范围之内,要知道它在哪个位置转. 如果无法控制,也不是你想要的程序了.
u013564018 2014-05-14
  • 打赏
  • 举报
回复 1
一般来说要看看门狗的配置,通常看门狗带有保护功能,还有一些单片机保护芯片,当程序执行完毕(跑飞)或者出现其他异常,卡死之类的问题时,他们能自动复位保护单片机。如果不加死循环,让程序跑飞,是十分恐怖的,一定小心
pathletboy 2014-05-14
  • 打赏
  • 举报
回复 1
引用 楼主 qq1987924 的回复:
大侠们,想问问,main函数执行完后,arm进入什么状态了呢?外设还在运行吗?程序指针运行没?还有啥模块在运行? 单片机又是什么情况呢? Thanks!
如果没有在main中使用死循环 for(;;); 或者 while(1);的话,程序就跑飞了,跑到哪是未知的。如果跑飞后没有跑到带有关闭外设/模块的代码上,那你之前所有运行的外设/模块都在运行。同样的,没有跑飞到关闭中断的代码上,你的中断响应也将会是正常的,但最后如果运气不好,跑出了代码段范围,将会产生一个fault,引起系统复位。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧