[技术问题解答] KL15Z watchdog 看门狗的应用

[复制链接]
3418|10
 楼主| xavierzip 发表于 2014-6-8 21:36 | 显示全部楼层 |阅读模式
求教Kinetis大神们,

如何能够启动KL15 的看门狗功能呢,按照手册已经使用SIM_COPC = (0x0C & 0x0F);但是即使没有更新看门狗计数器,系统还是继续运行,不重启。我正在使用codewarrior10.6,里面的例子已经完全没有KL系列了。。。KL25Z_SC里面也没有提及watchdog driver的使用。现在能看到都是K系列。哪里可以参考KL系列看门狗的应用实例呢?

谢谢!
FSL_TICS_Robin 发表于 2014-6-9 11:14 | 显示全部楼层
楼主你好
请问你是在哪个工程上测试的看门狗呢?
看门狗的一些寄存器是write-once的,所以可能那些工程之前已经修改过这些寄存器所以你无法再改动。

FSL_TICS_Robin 发表于 2014-6-9 11:15 | 显示全部楼层
另外如果你使用CodeWarrior10.6软件中的Processor Expert工具,那么可以根据你的配置自动生成看门狗初始化以及喂狗等函数。
xiyou04062001 发表于 2014-6-19 15:35 | 显示全部楼层
我也遇到了和楼主类似的问题。不知技术大神能帮忙否,我使用的是IAR,没用过PE工具、、、
开机时的初始化:
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0x55);
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0xAA);
SIM_COPC = SIM_COPC_COPT(3);
在LPTMR中断中定时喂狗:
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0x55);
SIM_SRVCOP = SIM_SRVCOP_SRVCOP(0xAA);
但是测试时进入while(1)死循环,mcu不会重启,也就说明看门狗没有起到作用,这是为什么呢?
看到技术上面提到看门狗的一些寄存器是write-once的,是芯片出厂就设置好了吗?如果想启用看门狗改如何修改呢?
FSL_TICS_Robin 发表于 2014-6-19 16:47 | 显示全部楼层
如果你们用的是官方KL25-SC里的程序,那么可以在cpu文件夹下start.c里的start函数中找到以下这句禁看门狗的语句
/* Disable the watchdog timer */
    SIM_COPC = 0x00;

这寄存器又是只写一次的,所以你后来的操作无效。

FSL_TICS_Robin 发表于 2014-6-19 16:47 | 显示全部楼层
xiyou04062001 发表于 2014-6-19 15:35
我也遇到了和楼主类似的问题。不知技术大神能帮忙否,我使用的是IAR,没用过PE工具、、、
开机时的初始化: ...

如果你们用的是官方KL25-SC里的程序,那么可以在cpu文件夹下start.c里的start函数中找到以下这句禁看门狗的语句
/* Disable the watchdog timer */
    SIM_COPC = 0x00;

这寄存器又是只写一次的,所以你后来的操作无效。
xiyou04062001 发表于 2014-6-23 10:03 | 显示全部楼层
改了下,果然可以了,原来是在这里禁用了。谢谢
FSL_TICS_Robin 发表于 2014-6-23 10:27 | 显示全部楼层
xiyou04062001 发表于 2014-6-23 10:03
改了下,果然可以了,原来是在这里禁用了。谢谢

不用客气
感谢你对飞思卡尔产品的关注!
以后遇到问题欢迎在飞思卡尔MCU论坛发帖与大家一起讨论。
淡定致远 发表于 2017-1-6 14:42 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-6-23 10:27
不用客气
感谢你对飞思卡尔产品的关注!
以后遇到问题欢迎在飞思卡尔MCU论坛发帖与大家一起讨论。 ...

我为什么写不进SIM_COPC,在程序初始化使用 SIM_COPC = SIM_COPC_COPT(2) | SIM_COPC_COPCLKS_MASK;看门狗不起作用,使用单步调试,发现SIM_COPC寄存器为0,整个程序没有其他地方操作过SIM_COPC寄存器,仅此一处。

盼复!!
xuxianjun536 发表于 2017-6-9 14:39 | 显示全部楼层
@淡定致远 我也遇到这个问题,请问你的问题解决了吗?
dfr3602 发表于 2017-7-27 09:29 | 显示全部楼层
xuxianjun536 发表于 2017-6-9 14:39
@淡定致远 我也遇到这个问题,请问你的问题解决了吗?

同样的问题,请问你解决了么? 由于是只能写一次,将初始化里的SIM->COPC = (uint32_t)0x00u;注释掉之后还是不行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部