ARM9低功耗

在ARM9内核中,实现低功耗的方法之一可以通过MMU进行管理,在idle任务中增加如下代码即可:
    .section  __cache_asm     
 
    .global__mmuWaitForInterrupt  ;/*  系统内核进入低功耗模式,    */
;/*  等待 FIQ/IRQ 激活           */
.func   __mmuWaitForInterrupt
__mmuWaitForInterrupt:;/*  ARM 进入节能状态,等待中断  */
movr0, 0
MCRp15, 0, R0, c7, c0, 4
    MOVPC, LR
    .endfunc
 
 
以ARM926内核为例。Linux内核在arch/arm/mm/proc-arm926.S文件中实现:
 
97 /*
98  * cpu_arm926_do_idle()    #空闲任务
99  *
100  * Called with IRQs disabled
101  */
102     .align  10
103 ENTRY(cpu_arm926_do_idle)
104     mov r0, #0
105     mrc p15, 0, r1, c1, c0, 0       @ Read control register
106     mcr p15, 0, r0, c7, c10, 4      @ Drain write buffer
107     bic r2, r1, #1 << 12
108     mrs r3, cpsr            @ Disable FIQs while Icache
109     orr ip, r3, #PSR_F_BIT      @ is disabled
110     msr cpsr_c, ip
111     mcr p15, 0, r2, c1, c0, 0       @ Disable I cache
112     mcr p15, 0, r0, c7, c0, 4       @ Wait for interrupt
113     mcr p15, 0, r1, c1, c0, 0       @ Restore ICache enable
114     msr cpsr_c, r3          @ Restore FIQ state
115     mov pc, lr
116
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值