.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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |