硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5454|回复: 2
收起左侧

[μCOS-III] uCOS-III低功耗方式一:休眠模式例子说明及其下载(基于STM32-V4板子)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107037
QQ
发表于 2015-10-7 09:05:18 | 显示全部楼层 |阅读模式
例子下载(含IAR和MDK两个版本):
V4-616_uCOS-III实验_低功耗(休眠模式).rar (2.75 MB, 下载次数: 228)
当前最新版本:
1. BSP驱动包V1.2
2. uCOS-III版本V3.05.00
3. uC/CPU版本V1.30.02
4. uC/LIB版本V1.38.01
============================================================

/*
*********************************************************************************************************
*                                      
*    版    本 : V1.0
*    说    明 : 本实验主要实现uCOS-III的低功耗(休眠模式)
*              实验目的:
*                1. 学习uCOS-III的低功耗(休眠模式)。
*              实验内容:
*                2. 按下按键K1可以通过串口打印任务执行情况
*                   优先级 使用栈 剩余栈 百分比 利用率   任务名
*                     Prio   Used  Free   Per    CPU     Taskname
*                       5     88    168   34%    0.08%   App Task UserIF
*                       4     26    230   10%    0.00%   App Task COM
*                       3     36    220   14%    0.00%   App Msp Pro
*                       2     40    216   15%    0.29%   App Task Start
*                      29     32     96   25%    0.03%   uC/OS-III Timer Task
*                      30     30     70   30%    0.32%   uC/OS-III Stat Task
*                       1     30     98   23%    2.59%   uC/OS-III Tick Task
*                      31     18    110   14%   96.66%   uC/OS-III Idle Task
*                    串口软件建议使用SecureCRT(V4光盘里面有此软件)查看打印信息。
*                    App Task Start任务 :打印系统休眠时间,系统总运行时间,休眠时间百分比。
*                    App Msp Pro任务    :按键扫描
*                    App Task COM任务   :LED闪烁
*                    App Task UserIF任务:处理按键消息
*                2. 关于低功耗的说明:
*                   (1) uCOS源码中没有低功耗相关函数,所以需要用户自己去实现。FreeRTOS中低功耗
*                       的实现都是采用的tickless模式,简单的说就是进入空闲任务后获取可以关闭滴答
*                       定时器的时间长度,关闭了滴答定时器意味着关闭了任务调度,然后调用__WFI指令
*                       进入休眠模式,关闭滴答定时器的时间到后休眠模式会被唤醒,继续执行多任务。
*                   (2) STM32F10xxx有三种低功耗模式
*                        a. 睡眠模式(Cortex-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时
*                           钟(SysTick)等仍在运行)
*                        b. 停止模式(所有的时钟都已停止)
*                        c. 待机模式(1.8V电源关闭)
*                   (3) 通过指令__WFI进入休眠模式,可以通过任意中断唤醒。
*                   (4) 降低系统主频或者关闭外设时钟也可有效降低系统功耗。
*                3. (1)本例程的低功耗实现方法是在空闲任务的钩子函数中调用__WFI指令来进入低功耗模式。
*                      调用__WFI指令前关闭串口时钟,LED引脚时钟,串口引脚时钟。被唤醒后重新开启。
*                      相关函数都在os_app_hooks.c文件中。
*                   (2)IO引脚未做处理,实际项目中要做处理。
*                   (3)本工程使用了滴答定时器中断和PendSV中断,由于空闲任务没有执行调度相关函数。
*                      只有滴答定时器能够唤醒休眠。
*                      针对这种情况,专门测试了一下休眠模式的执行时间,以及休眠时间占总运行时间的百分比。
*                      系统比较闲的情况下,基本都是出于休眠状态。
*                      a. 休眠总时间:6252ms, 系统总时间:6666ms 休眠时间百分比:93%
*                      b. 休眠总时间:19997ms, 系统总时间:21333ms 休眠时间百分比:93%
*                      c. 休眠总时间:83530ms, 系统总时间:89137ms 休眠时间百分比:93%
*              设计低功耗主要从以下几方面着手:
*                1. 用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。
*                   可以使用的低功耗方式有休眠模式,待机模式,停机模式。
*                2. 选择了低功耗方式后就是关闭可以关闭的外设时钟。
*                3. 降低系统主频。
*                4. 注意I/O的状态。
*                   如果此IO口带上拉,请设置为高电平输出或者高阻态输入;
*                   如果此IO口带下拉,请设置为低电平输出或者高阻态输入;
*                   a. 在睡眠模式下,所有的I/O引脚都保持它们在运行模式时的状态。
*                   b. 在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。
*                   c. 在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚:
*                      ● 复位引脚(始终有效)
*                      ● 当被设置为防侵入或校准输出时的TAMPER引脚
*                      ● 被使能的唤醒引脚
*                5. 注意IO和外设IC的连接。
*                6. 测低功耗的时候,一定不要连接调试器,更不能边调试边测电流。
*              注意事项:
*                 1. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在
*                    V4开发板光盘里面有。
*                 2. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。
*
*    修改记录 :
*        版本号    日期         作者            说明
*       V1.0    2015-08-10   Eric2013    1. ST固件库到V3.6.1版本
*                                                         2. BSP驱动包V1.2
*                                                         3. uCOS-III版本V3.05.00
*                                                         4. uC/CPU版本V1.30.02
*                                                         5. uC/LIB版本V1.38.01
*                                       
*    Copyright (C), 2015-2020, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/
回复

使用道具 举报

6

主题

390

回帖

408

积分

高级会员

积分
408
发表于 2015-10-8 11:41:54 | 显示全部楼层
[s:140]  [s:140]  [s:140]  [s:140]  [s:140]  [s:140]
回复

使用道具 举报

6

主题

65

回帖

83

积分

初级会员

积分
83
发表于 2015-10-8 13:13:39 | 显示全部楼层
多谢eric
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 09:53 , Processed in 0.163852 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表