搜索
bottom↓
回复: 26

Kinetis MKL14 watchdog 不能开启,帮忙看看(已解决)

[复制链接]

出0入0汤圆

发表于 2014-7-31 09:59:28 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-8-8 16:37 编辑

Kinetis MKL14 watchdog 不能开启,帮忙看看是什么问题呀,我开了看门狗,没有喂狗,但他一直不复位的。看寄存器的值一直是0x00,但看参考手册发现这个寄存器值默认就是0x0c呀,默认就开启看门狗的呀,但我调试时看到这个寄存器值一直是0x00,我后面再次开启,也发现没有写进去。这是什么原因呢,请各位高手帮忙看看,是不是写这个寄存器值需要解锁呢

这个是我写的watchdog部分程序


调试尝试写这个值 ,但好像写不进


看参考手册这个默认应该是0x0c呀




我用官方的PE工具生成的代码差不多也是这样写的呀

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-7-31 10:11:46 | 显示全部楼层
楼主你在哪里操作的看门狗呢?

出0入0汤圆

发表于 2014-7-31 10:21:44 | 显示全部楼层
楼主你好
请问你使用的是官方例程包还是自己的工程呢?

出0入0汤圆

 楼主| 发表于 2014-7-31 10:33:09 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-31 10:21
楼主你好
请问你使用的是官方例程包还是自己的工程呢?

自己的工程,我用官方的PE生成的代码跟我写的也差不多呀

出0入0汤圆

 楼主| 发表于 2014-7-31 10:37:44 | 显示全部楼层
时光倒退 发表于 2014-7-31 10:11
楼主你在哪里操作的看门狗呢?

在main函数里启动看门狗,没有喂狗,但一直不复位的,看那个寄存器的值好像没有启动成功哦,不知是不是要解锁什么的

出0入0汤圆

发表于 2014-7-31 11:06:45 | 显示全部楼层
dreamteam 发表于 2014-7-31 10:33
自己的工程,我用官方的PE生成的代码跟我写的也差不多呀

以前很多客户用飞思卡尔官方例程,官方例程在进main函数前都会禁止看门狗。
看门狗寄存器是只写一次的,建议你搜一下那些寄存器,找一下是否程序一开始有禁止过

出0入0汤圆

 楼主| 发表于 2014-7-31 11:26:34 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-31 11:06
以前很多客户用飞思卡尔官方例程,官方例程在进main函数前都会禁止看门狗。
看门狗寄存器是只写一次的, ...

main函数之前的怎么看,为什么看门狗寄存器只能写一次呢,那关了之后就不能再开啦,还想问下睡眠对看门狗有没影响,睡眠时看门狗还工作的吗

出0入0汤圆

发表于 2014-7-31 11:56:51 | 显示全部楼层
dreamteam 发表于 2014-7-31 11:26
main函数之前的怎么看,为什么看门狗寄存器只能写一次呢,那关了之后就不能再开啦,还想问下睡眠对看门狗 ...

寄存器特性你可以看下参考手册
你的工程上传一下吧

出0入0汤圆

发表于 2014-7-31 13:45:22 | 显示全部楼层
我记得看门狗好像是一个动态过程,并不是只操作一次寄存器就可以了!

出0入0汤圆

发表于 2014-8-1 13:25:51 | 显示全部楼层
楼主你好,关于看门狗,我要和你说几点:
1:SIM_COPC寄存器只能写入一次,第二次及以后的写入是无效的。
2:如果选择1Khz时钟的时候,MCU一旦进入到调试模式或者停止模式(包括VLPS或LLS),COP计数器都将被初始化为0,所以你的测试方法也是不对的,不能在debug状态下,CPO计数器不跑的。
我特的试了下KL芯片,程序烧录后,不喂狗重复被复位,肯定没有问题。
所以你需要查查你的SIM_COPC寄存器在启动程序中有没有被写过(关看门狗), 另外调试不能在debug状态下。
希望能帮到你。

出0入0汤圆

发表于 2014-8-1 13:26:58 | 显示全部楼层
dreamteam 发表于 2014-7-31 11:26
main函数之前的怎么看,为什么看门狗寄存器只能写一次呢,那关了之后就不能再开啦,还想问下睡眠对看门狗 ...

只能写一次是寄存器的定义,停止模式下,COP计数器不跑的。

出0入0汤圆

发表于 2014-8-1 13:28:15 | 显示全部楼层
你好,如果是IAR的话,是因为IAR内置的flashloader会自动把看门狗禁掉,所以就出来一调试就发现COP的寄存器值为0的情况,希望能帮到你。

出0入0汤圆

发表于 2014-8-1 13:35:09 | 显示全部楼层
unknown 发表于 2014-8-1 13:28
你好,如果是IAR的话,是因为IAR内置的flashloader会自动把看门狗禁掉,所以就出来一调试就发现COP的寄存器 ...

你说的内置flashloader会自动禁掉看门狗,具体在哪里看呢?
怎么知道它有没有被flashloader禁掉?

出0入0汤圆

发表于 2014-8-1 13:39:55 | 显示全部楼层
xinyinxing 发表于 2014-8-1 13:35
你说的内置flashloader会自动禁掉看门狗,具体在哪里看呢?
怎么知道它有没有被flashloader禁掉?
...

请看$IAR_DIR$\arm\src\flashloader\Freescale\FlashKLXX\FlashKLxx.c 第97行。

其中$IAR_DIR$是指IAR安装的目录

出0入0汤圆

发表于 2014-8-1 13:46:16 | 显示全部楼层
unknown 发表于 2014-8-1 13:39
请看$IAR_DIR$\arm\src\flashloader\Freescale\FlashKLXX\FlashKLxx.c 第97行。

其中$IAR_DIR$是指IAR安 ...

感谢指点,之前一直没有注意这点。
以前以为flashloader都是.board呢。
这个flashloder的.c和下程序的.board什么关系呢?
flashKLxx.c是每个IAR工程的KL系列芯片必须要调用吗?

出0入0汤圆

发表于 2014-8-1 13:48:43 | 显示全部楼层
unknown 发表于 2014-8-1 13:39
请看$IAR_DIR$\arm\src\flashloader\Freescale\FlashKLXX\FlashKLxx.c 第97行。

其中$IAR_DIR$是指IAR安 ...

如果使用IAR是在哪里调用这个flashKLxx.c呢?
在KL25的例程中,没有看到调用这个文件的。

出0入0汤圆

发表于 2014-8-1 13:49:18 | 显示全部楼层
xinyinxing 发表于 2014-8-1 13:46
感谢指点,之前一直没有注意这点。
以前以为flashloader都是.board呢。
这个flashloder的.c和下程序的.bo ...

这个.c文件是IAR 里 编译 flashloader 要用的源文件。其实有一个办法可以验证你的Watchdog有没有开启,就是不debug 然后用串口把SIM_COPC打出来看看。

出0入0汤圆

发表于 2014-8-1 13:53:54 | 显示全部楼层
unknown 发表于 2014-8-1 13:49
这个.c文件是IAR 里 编译 flashloader 要用的源文件。其实有一个办法可以验证你的Watchdog有没有开启, ...

打印不失为一种好办法。
你的意思就是.C就是。board的源文件是吧?
但是在实际使用中,发现有时候不勾选那个.board也可以正常下载。这个是不是说明没有用那个.c的flashloader呢?
我用KL25官方代码,是可以在start.c里面有禁止看门狗的,所以估计可能没有用IAR根目录下的flashloaderKLxx.c。
还有其他方法可以看是否用了IAR根目录下的那个flashloaderKLxx.c吗?

出0入0汤圆

发表于 2014-8-1 13:58:35 | 显示全部楼层
xinyinxing 发表于 2014-8-1 13:53
打印不失为一种好办法。
你的意思就是.C就是。board的源文件是吧?
但是在实际使用中,发现有时候不勾选 ...

你如果用Jlink的话,JLINK一般会有自己的flashloader,不过可能没公布源码,但原理是一样的,他也需要禁用看门狗,而KL系列的看门狗寄存器的不便之处是芯片复位后只允许写一次。所以就导致你的应用程序里再也不能写了。

出0入0汤圆

发表于 2014-8-1 14:00:51 | 显示全部楼层
unknown 发表于 2014-8-1 13:58
你如果用Jlink的话,JLINK一般会有自己的flashloader,不过可能没公布源码,但原理是一样的,他也需要禁用 ...

我用的是OPENSDA,官方代码是可以的。
所以我就想,那个flashloader是怎么调的,我的程序应该是没有调用,所以我是可以的。

出0入0汤圆

发表于 2014-8-1 14:06:47 | 显示全部楼层
xinyinxing 发表于 2014-8-1 14:00
我用的是OPENSDA,官方代码是可以的。
所以我就想,那个flashloader是怎么调的,我的程序应该是没有调用 ...

官方代码你在调试的时候也可以用么?OpenSDA用的应该是IAR自带的flashloader啊,除非你下载到RAM里

出0入0汤圆

发表于 2014-8-1 14:11:23 | 显示全部楼层
unknown 发表于 2014-8-1 14:06
官方代码你在调试的时候也可以用么?OpenSDA用的应该是IAR自带的flashloader啊,除非你下载到RAM里 ...

官方代码我试过,是下到flash中的,直接修改start.C,配置看门狗就可以运行了。
所以,你说的flashloader给屏蔽了,我也有些疑惑。

出20入12汤圆

发表于 2014-8-5 07:46:39 | 显示全部楼层
以前也碰到过这个问题。请参考
http://www.eefocus.com/bbs/article_1280_563348.html

出0入0汤圆

发表于 2014-8-5 12:59:39 | 显示全部楼层
估计楼主还是在那里吧看门狗给关了,要仔细找找代码。

出0入0汤圆

 楼主| 发表于 2014-8-6 11:15:37 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-8-1 13:25
楼主你好,关于看门狗,我要和你说几点:
1:SIM_COPC寄存器只能写入一次,第二次及以后的写入是无效的。
2 ...

好的,谢谢,我再看看

出0入0汤圆

发表于 2014-8-6 11:19:43 | 显示全部楼层
dreamteam 发表于 2014-8-6 11:15
好的,谢谢,我再看看

好的,如果还有问题,欢迎继续交流。
如果问题解决了,还请帮我结贴,在你的标题上加上(已解决),这样方便我们查看未结帖。

出0入0汤圆

发表于 2014-8-8 14:13:21 | 显示全部楼层
dreamteam 发表于 2014-8-6 11:15
好的,谢谢,我再看看

看你的情况,肯定是程序一开始硬件初始化的时候就给关了,你全局搜索下SIM_COPC,看看是不是有把这个寄存器清掉的。
我试了好几个KL系列的芯片,都是没有问题的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 10:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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