|
.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为什么要左移然后右移呢?用以何在? |
共3条
1/1 1 跳转至页
一段设置arm cpu频率的函数,帮忙
关键词: 一段 设置 频率 函数 帮忙 .text
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指令
共3条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| bsp_log:RTT分级日志封装被打赏¥16元 | |
| J-LinkRTT常用API函数讲解被打赏¥14元 | |
| 【S32K3学习整理】S32K388 四核启动被打赏¥23元 | |
| 【S32K3学习整理】Lockstep和Decoupled 模式被打赏¥28元 | |
| 嵌入式芯片调试神器-J-LinkRTT被打赏¥21元 | |
| 人体红外PIR感应传感器使用(ESP32S3)被打赏¥26元 | |
| 一种有效完成脚本程序测试的方法被打赏¥28元 | |
| WorkBuddy搭配SolidCraft给开发板做两件式外壳被打赏¥33元 | |
| 开箱一块k230被打赏¥33元 | |
| 【瑞萨RA8D1测评】RA8D1+lwIP网络验证与TCPOTA的实验记录被打赏¥33元 | |
我要赚赏金
