本帖最后由 FSL_TICS_Robin 于 2014-8-8 16:37 编辑
Kinetis MKL14 watchdog 不能开启,帮忙看看是什么问题呀,我开了看门狗,没有喂狗,但他一直不复位的。看寄存器的值一直是0x00,但看参考手册发现这个寄存器值默认就是0x0c呀,默认就开启看门狗的呀,但我调试时看到这个寄存器值一直是0x00,我后面再次开启,也发现没有写进去。这是什么原因呢,请各位高手帮忙看看,是不是写这个寄存器值需要解锁呢
这个是我写的watchdog部分程序
4.png (27.59 KB, 下载次数: 0)
下载附件
2014-7-31 09:48 上传
请看$IAR_DIR$armsrcflashloaderFreescaleFlashKLXXFlashKLxx.c 第97行。
其中$IAR_DIR$是指IAR安装的目录
如果使用IAR是在哪里调用这个flashKLxx.c呢?
在KL25的例程中,没有看到调用这个文件的。
这个.c文件是IAR 里 编译 flashloader 要用的源文件。其实有一个办法可以验证你的Watchdog有没有开启,就是不debug 然后用串口把SIM_COPC打出来看看。
打印不失为一种好办法。
你的意思就是.C就是。board的源文件是吧?
但是在实际使用中,发现有时候不勾选那个.board也可以正常下载。这个是不是说明没有用那个.c的flashloader呢?
我用KL25官方代码,是可以在start.c里面有禁止看门狗的,所以估计可能没有用IAR根目录下的flashloaderKLxx.c。
还有其他方法可以看是否用了IAR根目录下的那个flashloaderKLxx.c吗?
你如果用Jlink的话,JLINK一般会有自己的flashloader,不过可能没公布源码,但原理是一样的,他也需要禁用看门狗,而KL系列的看门狗寄存器的不便之处是芯片复位后只允许写一次。所以就导致你的应用程序里再也不能写了。
一周热门 更多>