.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为什么要左移然后右移呢?用以何在? *博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。