社区
单片机/工控
帖子详情
刚接触嵌入式开发,有段代码不懂,怀疑中。。。
WM_USER
2008-06-25 09:13:14
代码大致如下:
int main()
{
... /*此处设置一断点
...
while(1);
return 0;
}
这段代码非常简单,我在main函数第一行设置了个断点,以我们C的知识,
程序会在while(1)处无限循环下去,然而为什么实际运行时,运行过
while(1)语句后,程序会重复地回到断点的地方啊?好象main函数在
不断被调用执行啊?
晕啊!
...全文
235
11
打赏
收藏
刚接触嵌入式开发,有段代码不懂,怀疑中。。。
代码大致如下: int main() { ... /*此处设置一断点 ... while(1); return 0; } 这段代码非常简单,我在main函数第一行设置了个断点,以我们C的知识, 程序会在while(1)处无限循环下去,然而为什么实际运行时,运行过 while(1)语句后,程序会重复地回到断点的地方啊?好象main函数在 不断被调用执行啊? 晕啊!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
VNZN
2008-06-30
打赏
举报
回复
关狗,或者不确定的话就查看一下复位源
gogofly_lee
2008-06-29
打赏
举报
回复
[Quote=引用 9 楼 yuanrongfa 的回复:]
像 while(1);如果在平时我们接触的windows下使用的普通编程,它就会不停地死循环下去,但是单片机就不会,因为如果你设置了中断,它每执行一个指命都查一下中断标志位是否被置为1,如果是的话,那么就从while(1);是暂停下去,然后去执行中断的语句,这个问题,在我刚开始接触单片机的时候,也是不懂,后来也没有人告诉我是怎…
[/Quote]
中断会去执行相应的中断处理,但是在中断执行完成后会回到刚才被中断的地方继续执行被中断的程序,所以不应该再回到MAIN的第一句去执行呀,同意5楼的观点:在程序运行过程中,系统被不停的复位了, 可能是看门狗,也可能是MAIN函数里有其他BUG导致系统异常,可以仔细查查.
yuanrongfa
2008-06-28
打赏
举报
回复
如果你设定了一个有效的中断环境,其实它每执行一个中断语句都会检查一下中断的溢出位是否溢出。
像 while(1);如果在平时我们接触的windows下使用的普通编程,它就会不停地死循环下去,但是单片机就不会,因为如果你设置了中断,它每执行一个指命都查一下中断标志位是否被置为1,如果是的话,那么就从while(1);是暂停下去,然后去执行中断的语句,这个问题,在我刚开始接触单片机的时候,也是不懂,后来也没有人告诉我是怎么一回事,是自已后来在看书的时候看到的.....
shuiyan
2008-06-27
打赏
举报
回复
ARM?那估计就是我在1楼说的,被看门狗给复位了。先关了内部的看门狗。
jeefjiang1983
2008-06-27
打赏
举报
回复
是等待中断
WM_USER
2008-06-27
打赏
举报
回复
[Quote=引用 5 楼 shuiyan 的回复:]
ARM?那估计就是我在1楼说的,被看门狗给复位了。先关了内部的看门狗。
[/Quote]
应该不是看门狗,
而是定时器中断。
WM_USER
2008-06-27
打赏
举报
回复
[Quote=引用 4 楼 takaka 的回复:]
有没有操作系统?
linux下的?
[/Quote]
没有,裸机,
试验板,
通过Multi-ICE和板子通信调试,
AXD跟踪代码时发现这种情况。
takaka
2008-06-27
打赏
举报
回复
有没有操作系统?
linux下的?
godflash
2008-06-26
打赏
举报
回复
应该是个中断例程
等待中断执行.
请看中断服务程序处的代码.
WM_USER
2008-06-26
打赏
举报
回复
[Quote=引用 1 楼 shuiyan 的回复:]
什么平台?什么环境?什么CPU?
看门狗。
[/Quote]
是ARM,
调试状态下。
shuiyan
2008-06-25
打赏
举报
回复
什么平台?什么环境?什么CPU?
看门狗。
c语言编写单片机技巧
1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言...
嵌入式开发
—C语言面试题
嵌入式开发
—C语言面试题 1. 用预处理指令#define 声明一个常数,用以表明1年
中
有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法...
如何编写更高层次嵌入式C
代码
?
如何编写更高层次嵌入式C
代码
?1. 简介2. C语言特性2.1处处都是陷阱2.1.1 无心之过2.1.2 数组下标2.1.3 容易被忽略的break关键字2.1.4 意想不到的八进制2.1.5 指针加减运算2.1.6 关键字sizeof2.1.7 增量运算符’++’...
关于嵌入式驱动开发,这篇文章让你了解透彻!
熟练掌握嵌入式硬件知识,熟悉硬件开发模式和设计模式,熟悉ARM32位处理器嵌入式硬件平台开发、并具备产品开发经验。精通常用的硬件设计工具:Protel/PADS(PowerPCB)/Cadence/OrCad。一般需要有4~8层高速PCB设计经验...
编写优质嵌入式C
代码
在此基础上,介绍了防御性编程的概念,提出了编程过程
中
就应该防范于未然的多种措施;提出了测试对编写优质嵌入式程序的重要作用以及常用测试方法;最后,本文试图以更高的层次看待编程,讨论一些通用的编程
单片机/工控
27,375
社区成员
28,769
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章