这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 一段设置arm cpu频率的函数,帮忙

共3条 1/1 1 跳转至

一段设置arm cpu频率的函数,帮忙

菜鸟
2008-01-07 11:40:48     打赏
   
.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为什么要左移然后右移呢?用以何在?



关键词: 一段     设置     频率     函数     帮忙     .text    

助工
2008-01-07 15:16:10     打赏
2楼

MCR是ARM寄存器到协处理器的数据传输指令,MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中,如果协处理器不能成功的执行该操作,将产生未定义指令异常中断,指令格式为:
        MCR{cond}  coproc,opcode1,Rd,CRn,CRm{,opcode2}
其中        coproc 是指令操作的协处理器名。标准名为pn,n为0~15
                opcode1协处理器的特定操作码
                Rd作为目标寄存器的协处理器的寄存器
               CRn存放第1个操作数的协处理器寄存器
               CRm存放第2个操作数的协处理器寄存器
                opcode2可选的协处理器特定操作码
与此对应的还有MRC指令


菜鸟
2008-01-20 11:18:55     打赏
3楼
MMU - 内存管理单元,用来做存储映射的。做一个逻辑地址到物理地址的转换。MMU和频率没有关系。

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]