RT,我用的Z-Stack版本是2.5.1a,现在的应用场景是从串口读出数据然后串口要返回对应的字符串,现在别的情况下正常,但是跑过了SystemReset()函数之后,就没有返回信息了,但是用仿真器Reset一下又能输出正常值了,请问这个问题应该如何解决?还有就是在IAREW 6.0里面,跑过了SystemReset()函数之后,暂停都是停在这个函数上,原来的断点都不能用了,这个有什么解决的办法吗?
还有一个问题:SystemReset()用的是看门狗重启,函数描述是说从函数最开始的地方重新开始,这个与用仿真器Reset有什么区别呢?
Susan Yang:
Zstack的重启一般分为以下几种:
1)SystemReset
这种重启的机制是关闭中断并死循环,然后WatchDog超时,从而导致的重启即“硬重启”。
2)SystemResetSoft
这种重启将PC指针重置为0,也就是上电时代码启动的位置,即“软重启”。
3)ZDO_DEVICE_RESET
除了函数调用式的重启之外,还有消息式的重启。消息处理最终调用SystemResetSoft实现重启。
Zian Yu:
回复 Susan Yang:
我用的是Z-Stack 2.5.1a,在这个版本里面似乎没有SystemResetSoft?ZDO_DEVICE_RESET调用的也是SystemReset。
还有就是SystemReset跟拉低RST引脚电平重启有啥区别?
对了,这个版本的Z-Stack里面有个zb_SystemReset,这又与前面几个有什么区别??
还有就是我的问题(SystemReset之后串口无法使用,而且IAR的断点也用不了,暂停就会停在SystemReset上)应该如何解决??
user6155023:
回复 Susan Yang:
您好,感谢你的回答,解决了我遇到的问题,但是我还想请问下“硬重启”和“软重启”有什么区别呢