历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2020年04月23日 | 如何在FreeRTOS下实现低功耗——MSP430F5438平台

2020-04-23 来源:eefocus

0.前言

    MCU实现低功耗本质而言便是停止MCU工作,通过中断的方式重新唤醒MCU,这些中断可以包括外部IO中断,UART接收中断,定时器中断等等。如果结合嵌入式操作系统,可以在空任务或者空任务钩子函数中进入低功耗模式,在系统滴答时钟中断服务函数中重新回到正常工作模式。利用操作系统进入和退出低功耗模式,需要熟悉嵌入式操作系统的空任务和系统滴答时钟中断,下面结合MSP430F5438和FreeRTOS总结一下如何使用嵌入式操作系统实现低功耗工作。


1.进入低功耗模式

    多数嵌入式操作系统都包含一个空任务,空任务优先级最低且一直保持就绪状态,空任务可以用于统计CPU使用率,或者让MCU进入低功耗状态。如果不想修改空任务,还可以通过空任务的钩子函数插入实现低功耗的代码。在FreeRTOS中,若需要打开空任务钩子函数,需要在FreeRTOSConfig.h中定义configUSE_IDLE_HOOK

#define configUSE_IDLE_HOOK 1

钩子函数中实现低功耗的代码如下


void vApplicationIdleHook( void )

{

    /* Called on each iteration of the idle task.  In this case the idle task

    just enters a low power mode. */

    __bis_SR_register( LPM3_bits + GIE );

}

    在这里可打开全局中断,若全局中断关闭那么系统可能再也“活”不过来了。


2.退出低功耗模式

    在大多数嵌入式操作系统中可以在系统滴答中断函数中退出低功耗模式。由于MSP430的退出低功耗的指令只能在中断中使用,所以一旦进入系统滴答中断函数,可先退出低功耗模式。具体的代码实现如下:

#pragma vector=configTICK_VECTOR

__interrupt __raw void vTickISREntry( void )

{

extern void vPortTickISR( void );

 

__bic_SR_register_on_exit( SCG1 + SCG0 + OSCOFF + CPUOFF );

vPortTickISR();

}

    该段代码位于port.c中,在MSP430F5438分支中,系统滴答定时器采用TIMER0_A0所以configTICK_VECTOR被定义为

    #define configTICK_VECTORTIMER0_A0_VECTOR

    其他相关的定义可以查看FreeRTOSConfig.h文件


3.实现过程


    例如某任务在t1时刻调用阻塞API,例如vTaskDelay,此时任务交出CPU使用权由OS进行任务调度。t2时刻,由于没有其他就绪任务,OS运行空任务,在空任务的最后进入空任务钩子函数,在空任务钩子函数中MCU进入低功耗模式,此时可进入LPM3模式。t3时刻MCU进入低功耗模式之后,MCU停止工作。t4时刻,由于系统滴答时钟中断服务函数中,MCU重新处于活跃状态,并且通过指令退出低功耗模式,此时OS任务调度器再次工作,若此时任务再次处于就绪状态便重新运行该任务。


    以上便是如何利用OS实现低功耗的基本方法,但是t3时刻和t4时刻是有反复的。例如,系统滴答时钟ISR发生之后,OS任务调度器中并没有就绪的任务,只能再次运行空任务,通过空任务再次进入低功耗模式,如此反复直到某任务就绪便执行任务代码。

推荐阅读

史海拾趣

Cyrix Corp公司的发展小趣事

在被VIA收购后的一段时间里,Cyrix继续寻求市场扩张的机会。例如,在1998年,Cyrix与北京大船电子技术公司签订了总代理协议,以扩大其在中国的分销网络。这一策略帮助Cyrix进一步打开了中国市场的大门,为其在全球市场的发展奠定了基础。

以上五个故事描绘了Cyrix Corp公司在电子行业中的发展历程。从初创时期的挑战英特尔到被多次收购后的市场策略调整和市场扩张尝试,Cyrix的发展之路充满了曲折和变革。

高博(GBG)公司的发展小趣事

谷峰电子有限公司的故事始于1995年,当时公司在香港成立,标志着其半导体元器件研发与销售的起点。初期,面对激烈的市场竞争和技术挑战,谷峰团队凭借对半导体技术的深刻理解和对市场需求的敏锐洞察,逐步确立了以功率MOSFET为核心产品的战略方向。2000年,谷峰在深圳设立分公司,进一步扩大了其研发和销售网络,为公司的快速发展奠定了坚实基础。

CyOptics Inc公司的发展小趣事

随着Avago的进一步发展和演变,CyOptics作为其子品牌也迎来了新的发展机遇。如今,Avago已经演变为Broadcom公司,而CyOptics则继续以其在光学领域的专业技术和丰富经验为Broadcom的产品线增添光彩。展望未来,CyOptics将继续秉承其技术领先和创新驱动的理念,为全球客户提供更加优质的光学产品和服务。

Amphenol(安费诺)公司的发展小趣事

除了数据通讯和电信市场外,CyOptics的光学产品还逐渐拓展至其他领域。例如,公司的光学组件已集成至光学收发器、转发器及线卡等设备中,为数据中心、高性能计算和企业存储网络等应用提供了强有力的支持。此外,CyOptics还积极开拓新兴市场,如数据库、地铁及长途干线市场等,为客户提供定制化的光学解决方案。

Anpec(茂达)公司的发展小趣事

Anpec(茂达电子)自1997年创立之初,就肩负着提升国内电源模拟设计环境、建立自主模拟及电源相关产业的使命。初期,公司规模虽小,但志向远大。面对国内外市场的激烈竞争,茂达电子凭借对技术的执着追求和对市场的敏锐洞察,逐步在模拟集成电路设计领域站稳脚跟。

FRONTIER公司的发展小趣事

背景:虽然此处的FRONTIER可能指的是边疆通信公司(Frontier Communications),但为符合电子行业背景,我们假设其在农村宽带服务方面的创新。

发展故事:在21世纪初期,FRONTIER Communications认识到农村地区对于宽带服务的迫切需求,于是开始大规模投资农村宽带基础设施建设。通过引入先进的通信技术和设备,FRONTIER Communications成功地将高速互联网带到了偏远地区,极大地改善了当地居民的生活和工作条件。这一举措不仅赢得了市场的广泛赞誉,也为公司带来了稳定的收入来源和持续增长的动力。

问答坊 | AI 解惑

关于单片机的讨论

很久以来总是能看到关于单片机的各种讨论,又是这个不好啦,那个不好了,那个过时啦,这个先进啊,学什么什么没用啦! 我吧我看到的告诉大家 西门子S7-200 PLC   8051 单片机做的 西门子S7-300PLC    模拟量采集模板(正在大量使用 ...…

查看全部问答>

滤波电容的选择

滤波电容的选择滤波电容的选择 经过整流桥以后的是脉动直流,波动范围很大。后面一般用大小两个电容 大电容用来稳定输出,众所周知电容两端电压不能突变,因此可以使输出平滑 小电容是用来滤除高频干扰的,使输出电压纯净 电容越小,谐振频率越 ...…

查看全部问答>

PLC-(S7-200)系列心得--如何验证数据是否正确保存到了EEPROM中?

有两种方法可以验证数据是否正确保存到EEPROM中:    1)在“系统块-数据保持”设置中取消相应数据区(V存储区)的保持设置,则CPU在上电时会用EEPROM中相应区域的数值覆盖RAM中的数据,可以检查数据是否正确    2)使用Micro/WIN的Upload ...…

查看全部问答>

新人跪求电路图

跪求基于AT89C51&DS18B20的无线数字显示温度计设计的电路图。。。 哪位达人来帮帮我啊。。。…

查看全部问答>

反激式电源如何提高效率

最近做了一个反激式电源,自己做的反激式变压器,利用PWM调节占空比来控制输出的。但是发现效率很低,希望有经验的设计者能提供一些参考意见来提高这种dcdc电源的效率  谢谢…

查看全部问答>

WINCE杂这么复杂?!!!!!!!!!!!!

看WINCE看得我头痛了!这个函数,那个函数,还有设备管理我始终不明白,恳请各路高手指教!我现在遇到了这样一个函数:AdvertiseInterface,不知道这个函数是干什么的?有什么作用?为什么要使用这个函数!什么情况下要使用这个函数!谢谢!…

查看全部问答>

上海比较好的做嵌入式软件开发的公司

请问上海有哪些比较好的做嵌入式软件开发的公司啊,本人是软件工程专业的…

查看全部问答>

WinCE6.0操作系统可以使用loadIcon函数么?

我使用loadicon加载图标不成功,返回0址,不知有没有什么好的方法可以在WinCE6.0下加载图标呀?…

查看全部问答>

74LS163不工作

分频器74LS163不工作,是什么原因呢?我把晶振产生的时钟信号通过74LS163,想通过它来分频,可是发现信号频率并没有变,到底是什么原因呢?请教各位大侠,谢谢!…

查看全部问答>

意法半导体(ST)与ARM携手助力下一代家庭娱乐设备

意法半导体(ST)与ARM携手助力下一代家庭娱乐设备 意法半导体采用 ARM Cortex-A9多核处理器架构,研制高性能系统级芯片,强化高清数字电视体验,提高家庭娱乐设备的能效标准 中国,2009年10月28日 —— 全球领先的机顶盒芯片制造商之一 ...…

查看全部问答>