看门狗使用方法
在使用RT-Studio创建工程后,打开RT-Thread Settings,选择Hardware选项卡,并勾选On-chip Peripheral Drivers选项下的Enable Watchdog Timer功能。保存Settings。
将这段代码复制到main函数中: rt_device_t watchdog = rt_device_find("wdt"); rt_uint32_t timeout = 4; //设定看门狗2048ms后溢出 rt_device_control(watchdog, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout); rt_device_control(watchdog, RT_DEVICE_CTRL_WDT_START, RT_NULL);
重新编译工程。可以看到,将代码下载到芯片后,在终端上的打印信息显示芯片在反复重启,说明看门狗已经起工作了。
因此我们需要定期“喂狗”,在main函数的while(1)循环中增加这句话即可实现“喂狗”: rt_device_control(watchdog, RT_DEVICE_CTRL_WDT_KEEPALIVE, RT_NULL); 将程序再次编译并烧写到芯片中,这次我们发现,程序可以正常运行了。 需要指出的是,一般开启看门狗之后就不会将看门狗关闭,有些芯片根本不允许看门狗开启之后再关闭,这样做的目的是为了防止芯片在受到强电磁干扰时,歪打误撞地把看门狗寄存器使能位篡改,进而无法起到看门狗的作用的问题发生。因此我们在写程序的时候也不会试图关闭看门狗。
测评心得 AB32VG1是中科蓝讯第一款通用型MCU芯片,采用RISC-V内核,结合了中科蓝讯的技术优势,将蓝牙和音频功能整合到了MCU中。测评中也注意到了RT-Thread Studio相对于其他IDE的优势,除了可以使用GUI配置界面进行快速的工程配置、依托RT-Thread的软件包生态以外,还体现了RT-Thread Studio在不同工具链、不同内核之间的无缝切换:从ARM内核切换到RISC-V内核,操作方法、编译流程没有任何区别。
|