.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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |