标签:golang rk3288 gork3288 go语言 firefly
经过前面几节的介绍,Go语言常用的语法已经都展示出来了,没有什么其他太多的花样了,所以这一节的内容将会更加简单。WatchDog的示例程序如下:
因为系统中只有一个WatchDog,所以照样是个单例。这段代码为了有别于上一节,特意加了一个判断是否调用成功的语句,一般使用中可以不需要判断,直接使用。
在调用了获得单例的函数后可以得到WatchDog的实例,首先需要先给它一个喂狗的间隔时间,通过FeedSecond来设置。默认的是3秒喂一次狗,当然这个时间可以改变,如示例中改为了10秒。不过这个时间间隔一定不要超过WatchDog的检测时间,否则直接重启了,起不到作用。
Start后WatchDog开始工作,Start同样是个协程,可以在工作后执行其他的代码而不阻塞在这里。示例中没有其他的代码,所以用了个Sleep等待一分钟,来演示效果。
这里需要注意一下的是Stop。这里有点奇怪,当我Start后,无论怎样的Stop,这个WatchDog始终不能停止工作,检查寄存器会发现控制启停的那一位不会变化,设置不成功。这个问题同样需要请教Firefly的高手,是不是我哪里操作有不对的地方。
好了,就是这些了,最后还是总结一下WDT类的方法:
IWDT:获得WatchDog的实例
FreeWDT:释放WatchDog
FeedSecond:设置喂狗的间隔时间(不设置的话默认是3秒)
Start:启动WatchDog
Stop:停止WatchDog(暂时不起作用)
GoRK3288库请在https://github.com/tjCFeng/GoRK3288下载。
标签:golang rk3288 gork3288 go语言 firefly
原文地址:http://blog.csdn.net/tjcfeng/article/details/46003755