|
例子下载(含IAR和MDK两个版本):
V4-817_uCOS-II实验_独立看门狗监测任务执行状态.rar
(2.72 MB, 下载次数: 117)
当前最新版本:
1. uCOS-II版本V2.92.11
2. uC/CPU版本V1.30.02
3. uC/LIB版本V1.38.01
============================================================
/*
*********************************************************************************************************
* 模块名称 : uCOS-II
* 文件名称 : app.c
* 版 本 : V1.0
* 说 明 : 本实验主要实现独立看门狗检测任务的执行状态
* 实验目的:
* 1. 学习如何在uCOS-II上实现独立看门狗监测任务执行状态。
* 实验内容:
* 1. 共创建了如下几个任务,通过按下按键K1可以通过串口打印任务堆栈使用情况
* 优先级 使用栈 剩余栈 百分比 任务名
* Prio Used Free Per Taskname
* 63 18 110 14% uC/OS-II Idle
* 62 22 106 17% uC/OS-II Stat
* 0 68 188 26% Start Task
* 2 75 181 29% User Interface
* 60 30 226 11% LED
* 3 30 226 11% COM
* 1 32 224 12% KeyScan
* 串口软件建议使用SecureCRT(V4光盘里面有此软件)查看打印信息。
* Start Task任务 :等待事件标志。
* User Interface任务:根据用户的按键消息,实现相应的操作。
* LED任务 :实现LED闪烁。
* KeyScan任务 :主要是实现按键扫描。
* COM任务 :实现LED闪烁。
* 2. 看门狗监测任务执行状态说明:
* (1). 设置看门狗复位时间是10s,如果10s内不喂狗系统复位。
* (2). 使用事件标志组,在最高优先级任务中等待其它所有用户任务发来的事
* 件标志,如果所有任务都发来了事件标志,那么久执行喂狗程序,如果
* 有一个任务10s内没有发来事件标志,那么系统会被复位。
* (3). 简单的说就是为了检测任务的执行转态,我们设置每个任务10s必须发一
* 次事件标志以此来表示任务在执行。如果10s内有一个任务没有发来消息
* ,系统会被复位。
* (4). 等待事件标志的任务:
* OSFlagPend(FlagStat,
* 0x0F,
* OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,
* 0,
* &err);
* 其它四个发送事件标志的任务:
* OSFlagPost(FlagStat, 0x01, OS_FLAG_SET, &err);
* OSFlagPost(FlagStat, 0x02, OS_FLAG_SET, &err);
* OSFlagPost(FlagStat, 0x04, OS_FLAG_SET, &err);
* OSFlagPost(FlagStat, 0x08, OS_FLAG_SET, &err);
* 3. K2按键按下后将任务User Interface延迟20s后执行,从而实现看门狗复位。
*
* 注意事项:
* 1. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在
* V4开发板光盘里面有。
* 2. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。
*
* 修改记录 :
* 版本号 日期 作者 说明
* V1.0 2015-08-02 Eric2013 1. ST固件库到V3.6.1版本
* 2. BSP驱动包V1.2
* 3. uCOS-II版本V2.92.11
* 4. uC/CPU版本V1.30.02
* 5. uC/LIB版本V1.38.01
*
* Copyright (C), 2015-2020, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/ |
|