Freescale MKL16Z1288VF4 芯片调试接口

WDOG监视内部系统操作,并在发生故障时强制复位。它可以运行在一个独立的1 kHz低功率振荡器,具有可编程刷新窗口,以检测程序流或系统频率的偏差。

看门狗计时器保持一个时间在系统上运行,并重置它,以防其故障。

COP 时钟有 1KHZ时钟 和总线时钟两个来源。

COP看门狗旨在在应用软件出现故障时强制重置系统 按预期执行。 防止系统从COP定时器复位(当它是 启用),应用软件必须定期复位COP计数器。 如果 应用程序丢失并且在超时之前无法重置COP计数器,a 生成系统重置以强制系统返回已知的起始点。

任何复位后,COP看门狗都会启用。 如果没有使用COP看门狗 应用程序,可以通过清除SIM_COPC [COPT]来禁用它。

下面的是喂狗操作: 在选定的超时期间,通过将0x55和0xaa(按该顺序)写入sim服务COP(SrvCOP)寄存器的地址来重置COP计数器。写入不会影响srvCOP寄存器中的数据。一旦写入序列完成,COP超时周期就会重新启动。如果程序无法在超时期间执行此重新启动,则微控制器将重置。此外,如果将0x55或0xaa以外的任何值写入srvCOP寄存器,则微控制器立即重置。

SIM_COPC[COPCLKS]选择用于COP计时器的时钟源。时钟源选项要么是总线时钟,要么是内部1 kHz时钟源。对于每个时钟源,相关的超时由SIM_COPC[COPT]控制。下表总结了SIM_COPCTRL[COPCLKS]和SIM_COPC[COPT]字段的控制功能。COP看门狗默认从1 kHz时钟源运行,最长超时是2的10次方 个周期。

选择总线时钟源后,可以通过设置SIM_COPC[COPW]进行窗口COP操作。在此模式下,写入SIM_SRVCOP以清除COP定时器必须发生在所选超时时间的最后25%。过早的写入会立即重置芯片。当选择1 kHz时钟源时,窗口COP操作不可用

下面这段很重要: COP计数器由对SIM_COPC的第一次写入和任何系统重置后初始化。后续写入SIM_COPC对COP操作没有任何影响。即使应用程序使用SIM_COPC[COPCLKS],SIM_COPC[COPT],和SIM_COPC[COPW]字段的重置默认设置,用户也应该在重置初始化期间写入写一次SIM_COPC寄存器以锁定设置。如果应用程序丢失,此方法可防止意外更改。

(翻译过来就是COP计数寄存器只能写入一次,这个过程可以是系统启动时设置,也可以是之后,但是只有一次写入的机会。)

  对于SIM_SRVCOP来说,服务(清除)COP计数器刷新不应该放在中断服务例程(ISR)中,因为即使主应用程序失败,ISR也可以继续定期执行。

如果所选时钟不是1 kHz时钟源,则在微控制器处于调试模式或系统处于停止(包括VLPS或LLS)模式时,COP计数器不会增加。当微控制器退出调试或停止模式时,COP计数器将恢复。

如果选择1 kHz时钟源,COP计数器在进入调试模式或停止模式(包括VLPs或LLS)时重新初始化为0。计数器在退出调试模式或停止模式时从0开始。

无论选择哪个时钟,当芯片进入VLLSx模式时,COP都会被禁用。在从VLLSx模式唤醒芯片的重置后,COP将被重新初始化并启用,就像任何重置一样。

COPT这个写一次字段选择COP的超时时间。COPT和COPCLKS字段一起定义COP超时时间。

编写0x55和0xaa(按该顺序)重置COP超时计数器,写入任何其他值将生成系统重置。

下面的寄存器可以查看系统重置原因;

原文地址:https://www.cnblogs.com/LVNG2018/p/10742659.html

时间: 2024-10-07 23:39:53

Freescale MKL16Z1288VF4 芯片调试接口的相关文章

Charles辅助调试接口(转)

原文地址Charles辅助调试接口 前面有一篇讲了关于抓包工具fiddler和charles,这里再写写我是怎样用charles辅助调试接口.Charles下载传送门. 这篇文章写了个头,没时间就一直放着没写,今天刚好周六,也早点下班了(苦逼的周六加班党),就把这个写完吧,其实这两天有点感冒头晕晕的,尽量不写错吧. 经常会有这样的场景: 场景一: 想看看其他的App是怎样设计请求,怎样设计返回数据格式,某一个功能点请求分几个实现的.最近我在用某听书软件听鬼故事(^0^),它们限制非VIP每天只能

pysnmp中的调试接口

新的4.2.6 版本增加了调试接口,但是没有文档, 具体用法如下: from pysnmp.debug import setLogger,Debug setLogger( Debug('all')) # Create SNMP engine instance snmpEngine = engine.SnmpEngine() 下载地址: http://pysnmp.cvs.sourceforge.net/viewvc/pysnmp/pysnmp/?view=tar http://pyasn1.cv

开发利器_Httpie.利用跨平台命令行下curl的替代品httpie调试接口?

简单介绍: 说明: 此模块是一个支持直观语法/支持格式色彩输出/支持JSON/支持上传文件表单/支持HTTPS代理认证/支持任意请求数据/支持自定义头部/支持持久化会话/支持类WGET下载特性等的HTTP的命令行客户端,完全可以代替CURL,常用于测试/调试接口 项目地址: https://github.com/jkbrzt/httpie 快速安装: pip install --upgrade httpie GET 相关: http GET https://api.weibo.com/2/tre

用SWD调试接口测量代码运行时间 ( SWO )

用SWD调试接口测量代码运行时间 关于时间测量的种种问题 在嵌入式中,我们经常需要测量某段代码的执行时间或测量事件触发的时间,常规的思路是: 1:在测量起始点,反转电平2:在测量结束点,再次反转电平 然后通过示波器或者逻辑分析仪来测量反转间隔,也就是代码时间 这种方法,在测量两个或多个时间信号同步的时候,非常有用,实际上,这也是唯一的方法. 但是如果在测量中,其它代码也会控制这个管脚电平或者周期性动作,这时便需要在<动作1>之前增加前导码,从而便于在繁杂的波形中,一眼识别出需要特定的波形 同时

网口芯片SMI接口实现

最近在用P178G,需要对内部寄存器进行控制,实现各个PHY的开关与VLAN配置,为了替代最初模拟开关实现的"伪"开关,通过ds得知可以使用SMI接口进行读写寄存器,控制IC工作状态. 时序与格式如图: 该芯片前置码与其他很多芯片的32Bit高电平不同,按32bit实现也可以通用.常规SMI各个位域说明如下: PRE:帧前缀域,为32个"1"比特,这帧前缀域不是须要的,某些物理层芯片的MDIO操纵就没有这个域. OP:帧操纵码,比特"10"默示此

调试接口你还在用postman吗

作者 | 陈凯玲 来源 | my.oschina.net/keking/blog/3104972 接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日常工作项. 所谓工欲善其事必先利其器,在没有尝到IDEA REST真香之前,postman(chrome的一款插件)确实是一个非常不错的选择,具有完备的REST Client功能和请求历史记录功能.但是当使用了IDEA REST之后,postman就可以丢了,因为,

usb芯片调试经验

记录一下调试usb有关的芯片的一些经验. 1.有i2c的芯片.一般有i2c的地址选择. 检查地址选择是否正确,地址是多少.SCL和SDA上面是否有上拉电阻.芯片的地址是几位的.I2c的时钟频率也是必须设定的一个方面.工作速率一般有100K和400K两种.并且里面寄存器一般为一个byte.I2c出错时,须要測量一下i2c bus上是否真的有信号 2.有时钟的芯片,搞清楚时钟採用的是那种时钟,晶振还是RTC.一般芯片为了方便使用,可能同意几种不同的时钟选择. 能够是通过引脚进行选择的. 也可能通过寄

手机设备上调试接口,查看错误信息

在微信小程序开发的时候,请求接口不成功,手机上未反馈任何消息,不方便调式,这时候就需要把错误信息打印出来 在请求接口错误函数中将obj转换成字符串,再用一个弹窗显示出来... 代码如下: fail: function(res) { wx.showToast({ title: JSON.stringify(res), icon: 'success', duration: 2000 }) } 其中res.errMsg存放的是请求出错的原因,如果请求成功存放的是ok

C#------如何使用Swagger调试接口

1.打开NuGet程序包 2.安装下面两个程序包 3.安装完后会出现SwaggerConfig.cs类,并修改里面的内容 代码: [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] namespace WebApplication1 { public class SwaggerConfig { public static void Register() { var thisAssembly =