当前位置: 首页 > wzjs >正文

网站开发工程师项目经验网站建设 深度网

网站开发工程师项目经验,网站建设 深度网,上海网站建设公司电话,wordpress+vps+配置开发板 亚博K210开发板 实验目的 本节课主要学习 K210 的看门狗超时复位的功能 实验准备 实验元件 K210 芯片中的看门狗。 元件特性 WDT 是外围总线(APB)的一种从外设,并且也是“同步化硬件组件设计”的组成部分,具有两个…

开发板

亚博K210开发板
在这里插入图片描述

实验目的

本节课主要学习 K210 的看门狗超时复位的功能

实验准备

实验元件

K210 芯片中的看门狗。

元件特性

WDT 是外围总线(APB)的一种从外设,并且也是“同步化硬件组件设计”的组成部分,具有两个 WDT,分别为 WDT0 和 WDT1 看门狗定时器,主要包含的模块有一个 APB 从接口,一个当前计数器同步的寄存器模块,一个随着计数器递减的中断/系统重置模块和逻辑控制电路,一个同步时钟域来为异步时钟同步做支持。
看门狗定时器支持如下设置:

  • APB 总线宽度可配置为 8、16 和 32 位

  • 时钟计数器从某一个设定的值递减到 0 来指示时间的计时终止

  • 可选择的外部时钟使能信号,用于控制计数器的计数速率

  • 一个时钟超时 WDT 可以执行以下任务:

    – 产生一个系统复位信号
    – 首先产生一个中断,即使该位是否已经被中断服务清除,其次它会产生一

  • 个系统复位信号

  • 占空比可编程调节

  • 可编程和硬件设定计数器起始值

  • 计数器重新计时保护

  • 暂停模式,仅当使能外部暂停信号时

  • WDT 偶然禁用保护

  • 测试模式,用来进行计数器功能测试(递减操作)

  • 外部异步时钟支持。当该项功能启用时,将会产生时钟中断和系统重置信号,即使 APB 总线时钟关闭的情况下

SDK 中对应 API 功能

对应的头文件 wdt.h

WDT 看门狗在开发单片机中作用巨大,可以在程序出现死机的情况自动重启系统,而不需要手动操作。
相关接口:

• wdt_init:配置看门狗参数,启动看门狗,不使用中断的话,将 on_irq 设置为 NULL。返回值为看门狗实际超时时间,一般比设置的时间稍微大一些。
• wdt_start(0.6.0 后不再支持,请使用 wdt_init)
• wdt_stop:关闭看门狗。
• wdt_feed:重置看门狗计时器,俗称喂狗。
• wdt_clear_interrupt:清除中断,如果在中断函数中清除中断,看门狗不会重启。

实验原理

看门狗其实就是一个需要在设定一定时间内被复位的计数器,如果没有按时复位,则会强制系统复位。在看门狗启动前需要配置超时时间,当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对 CPU产生一个复位信号使系统重启(俗称“被狗咬”)。要保证系统正常运行时,需要在看门狗超时时间内重置看门狗计数器(俗称“喂狗”)。

实验过程

  1. 首先在系统启动的时候答应一次“system start!”提示,可以清楚地知道系统什么时候重启过。times 用于记录喂狗的次数。然后初始化系统中断以及使能全局中断。
/* 打印系统启动信息 */
printf("system start!\n");
/* 记录feed的次数 */
int times = 0;/* 系统中断初始化 */
plic_init();
sysctl_enable_irq();
  1. 配置看门狗的参数,使用的是看门狗 WDT0,设置超时时间为 2 秒,中断函数函数为 wdt0_irq_cb,返回值是看门狗实际超时的时间,一般会比设置的时间稍微大一些。这里注意中断函数不是超时的时候调用的,而是实际超时时间的一半调用的。比如这里设置了 2 秒超时时间,实际超时时间约 2.58 秒,如果在 1.29秒之前没有喂狗,则会调用中断回调函数。
/* 启动看门狗,设置超时时间为2秒后调用中断函数wdt0_irq_cb */
int timeout = wdt_init(WDT_DEVICE_0, 2000, wdt0_irq_cb, NULL);/* 打印看门狗实际超时的时间 */
printf("wdt timeout is %d ms!\n", timeout);
  1. 在 WDT0 的中断回调中打印系统超时的信息,默认 WDT_TIMEOUT_REBOOT 为1,看门狗超时重启,如果把 WDT_TIMEOUT_REBOOT 设置为 0,则重启只会打印提示,不会重启。
#define WDT_TIMEOUT_REBOOT    1
int wdt0_irq_cb(void *ctx)
{#if WDT_TIMEOUT_REBOOTprintf("%s:The system will reboot soon!\n", __func__);while(1);#elseprintf("%s:The system is busy but not reboot!\n", __func__);wdt_clear_interrupt(WDT_DEVICE_0);#endifreturn 0;
}
  1. 前五次每隔 1 秒钟喂狗一次,所以在五秒之后没有喂狗,系统约过 2.6 秒后重启。
 while(1){sleep(1);if(times++ < 5){/* 打印feed的次数 */printf("wdt_feed %d times!\n", times);/* 重置看门狗的计时器,重新开始计时 */wdt_feed(WDT_DEVICE_0);}}
  1. 编译调试,烧录运行
    进入自己项目 build目录,运行以下命令编译。
cmake .. -DPROJ=watchdog -G "MinGW Makefiles"
make

编译完成后,在 build 文件夹下会生成 watchdog.bin 文件。使用type-C 数据线连接电脑与 K210开发板,打开kflash,选择对应的设备,再将程序固件烧录到 K210 开发板上。

实验现象

烧录完成固件后,系统会弹出一个终端界面,如果没有弹出终端界面的可以打开串口助手显示调试内容。
在这里插入图片描述

实验总结

1.看门狗的作用是当没有在设定的时间内喂狗,则系统会发送中断使系统强制重启。
2.看门狗必须在系统正常运行的情况下喂狗,这样系统异常时就能够及时重启系统。
3.看门狗的定时中断是实际超时时间的一半,需要在这个时间内喂狗

http://www.dtcms.com/wzjs/590447.html

相关文章:

  • 网站建设it行业电子商务网站有哪些
  • 网站开发与制作工资电子商务网站建设总结
  • 平面设计有什么网站厦门小微企业网站建设补贴
  • 登陆注册是静态网站网页美工实训心得
  • 广州网站建设圣矢网店网站建设规划方案
  • wordpress grace7seo是什么岗位的缩写
  • 全网引擎搜索自助模板网站建设做seo
  • 建立网站项目企业信息查询单在哪打印
  • 四平网站建设服务网站算信息化建设
  • 网站关键词数量多少好做外贸网站效果图
  • 网站备案期间能使用吗地方网站用什么域名
  • 高端网站制作网址佛山新网站建设如何
  • 北京市保障性住建设投资中心网站注册公司流程和费用找哪家
  • 会展相关网站建设情况做印量调查的网站
  • 网站维护流程图顺义区做网站
  • 河南炒股配资网站开发辽宁人社app一直更新
  • 网站建设技术要求网站及备案
  • 怎么用flash做视频网站微网站开发第三方平台
  • 郑州高端网站建设淮安维度网站建设
  • wordpress资源站源码网站使用帮助
  • 个体户可以做网站么wordpress维护模式
  • 漂亮网站网页制作学情分析
  • 哈尔滨快速建站合作超级优化液
  • 洞口建设局网站平阳高端网站建设
  • 名城苏州网站朔州企业网站建设
  • 毕业答辩为什么做网站软件开发项目管理的核心
  • 河北建设工程招标投标协会网站怎么自己做网站挂到百度上
  • 公司做网站找谁公司做网站找谁怎么注册一个电商平台
  • 长沙网站推广工具外贸营销型网站设计
  • 网站的收费窗口怎么做动画设计技校