在JLink ARM中对cp15的读写

在JLink ARM中对cp15的读写TheMMUcanbeenabled/disabledbybit0oftheCP15controlregister(whichisaddressedwith:CRn=1,CRm=0,op1=0,op2=0).YoucanusetheGDBServertoreadoutthecurrentvalueofthecontrolregisterandtowritebackamodifiedvalue.Thesequencebel

在JLink ARM中对cp15的读写

The MMU can be enabled / disabled by bit 0 of the CP15 control
register (which is addressed with: CRn=1, CRm=0, op1=0, op2=0).

You can use the GDB Server to read out the current value
of the control register and to write back a modified value.

The sequence below shows how to disable and enable
the MMU on an Atmel AT91SAM9260.

We have configured the MMU to map SDRAM @ 0x40000000
which was normally address of the NAND flash. As you can see,
we disable the MMU and we read NAND flash (which was empty).
If we enable the MMU again, we read SDRAM.

(gdb) monitor long 0x40000000
Reading from address 0x40000000 (Data = 0x2204480B)
(gdb) monitor cp15 1 0 0 0
Reading CP15 register (1,0,0,0 = 0x0005507D)
(gdb) monitor cp15 1 0 0 0 = 0x5507c
Writing CP15 register (1,0,0,0 = 0x0005507C)
(gdb) monitor long 0x40000000
Reading from address 0x40000000 (Data = 0xFFFFFFFF)
(gdb) monitor cp15 1 0 0 0 = 0x5507d
Writing CP15 register (1,0,0,0 = 0x0005507D)
(gdb) monitor long 0x40000000
Reading from address 0x40000000 (Data = 0x2204480B)

 

请注意 JLink GDB中读写CP15的语法为 

cp15 <CRn>, <CRm>, <op1>, <op2> [= <data>]

 

Read: monitor cp15 1, 2, 6, 7                            // Read

Write: monitor cp15 1, 2, 6, 7 = 0xFFFFFFFF // Write

 

但在JLink ARM里却是

读:rce <Op1>, <CRn>, <CRm>, <Op2>

如:

J-Link>rce 0 1 0 0

CP15[0, 1, 0, 0] = 0xC0000078

 

写:wce <Op1>, <CRn>, <CRm>, <Op2>, <Data>

如:

J-Link>wce 0 1 0 0 0xc0000079

CP15[0, 1, 0, 0] = 0xC0000079

 

今天的文章在JLink ARM中对cp15的读写分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/30508.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注