主要是想问“为什么裸机程序常常不关闭看门狗?”
具体问题如下:
一些裸机程序(ARM 汇编写的) 一开始就是设置 GPxCON GPxDAT控制LED。
可是设置到C语言的时候,写了一段汇编程序,完成设置堆栈,跳转到C语言入口,关闭看门狗。
对于设置堆栈,跳转到C语言入口,可以理解,但是为什么在原来“裸机程序”里面没有关闭看门狗,可是到了
有C语言的程序,怎么就要关闭看门狗了。
看了很多书都说 不关闭看门狗,会一直重启,查了资料,cpu复位后“看门狗”复位是有效的,所以要关闭。那为什么
裸机程序为什么关闭看门狗?
(以上说的 裸机程序 和 C程序 ,比如 韦东山的书,P81 - P83. 讲LED灯的)
***********************************
上面是引起我疑惑的一个帖子内容
***********************************
我一开始看到这问题时觉得好像是这么回事,看了下自己下到板子里的流水灯好像的确没有重启但没有关闭看门狗啊,这里批评下一些论坛,大鸟不理,菜鸟不会,剩下的全是问号,幸好CU是个好地方,虽然也等了好久,支持CU
回来,其实一开始就理解错了,只有汇编的裸机程序,假如不关闭看门狗也会自动重启的,只是我编写的程序延时时间的问题,致使第一个小灯点亮的时刻刚好是看门狗使系统重启的的时间,这就产生了错误认为看门狗没有重启系统的结果。改变延时函数的延时时间重试后,发现小灯跑到第三个后突然跳回第一个(有四个小灯),写书的人也是为了不过早的引入看门狗的知识所以在程序中剩去,就是这样子
LAY
阅读(2961) | 评论(0) | 转发(0) |