在JLink ARM中对cp15的读写

本文介绍了如何通过JLink ARM的GDB Server读写CP15控制寄存器来启用和禁用MMU。示例中展示了在Atmel AT91SAM9260上禁用MMU后读取NAND闪存,然后重新启用MMU后读取SDRAM的过程。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值