新闻  |   论坛  |   博客  |   在线研讨会
一段设置arm cpu频率的函数,帮忙
sigarron | 2008-01-07 11:09:33    阅读:87029   发布文章

.text:00000028 change_freq                          
.text:00000028                 STMFD   SP!, {R4,LR}            
.text:0000002C                 MOV     R4, R0                  
.text:00000030                 MOV     R0, #0x41000000         
.text:00000034                 MOV     R2, #0                  
.text:00000038                 MOV     R1, #0x10               
.text:0000003C                 ADD     R0, R0, #0x300000       
.text:00000040                 BL      __ioremap               
.text:00000044                 LDR     R3, [R0,#0xC]   
.text:00000048                 MOV     R2, R4,LSL#20    
.text:0000004C                 MOV     R2, R2,LSR#20    
.text:00000050                 MOV     R3, R3,LSL#20   
.text:00000054                 MOV     R3, R3,LSR#20   
.text:00000058                 CMP     R3, R2          
.text:0000005C                 BEQ     loc_70          
.text:00000060                 STR     R4, [R0]        
.text:00000064                 MOV     R0, #0xB        
.text:00000068                 MCR     p14, 0, R0,c6,c0

;mmu操作,不清楚作用,真正设定频率的是这个?
;mmu即memory manage unit 内存管理单元
;莫非设定的是内存频率而不是CPU的实际工作频率?

.text:0000006C                 MOV     R3, R0
.text:00000070
.text:00000070 loc_70                                  ; CODE XREF:
.text:00000070                 LDMFD   SP!, {R4,LR}
.text:00000074                 B       __iounmap
.text:00000074 ; End of function change_freq


这个函数的作用是设置arm9 cpu的频率,
那个mcr的指令是什么意思?
前边的r3 和r2为什么要左移然后右移呢?用以何在?

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
Tony  2008-01-07 14:43:07 

建议你把问题发到论坛~~ 大家帮你一起解决!

推荐文章
最近访客