Hello,
We are working
on PowerPc MPC5554 and having problems with memory view when trying to see peripheral
registers regions.
In following
example Eclipse is asking about 100 bytes reading one by one:
400-data-read-memory
4294197248 x 1 1 100
400^done,addr="0xfff44000",nr-bytes="100",total-bytes="100",next-row="0xfff44064",prev-row="0xfff43f9c",next-page="0xfff44064",prev-page="0xfff43f9c",memory=[{addr="0xfff44000",data="">
But register in
this location are not byte accessible, but four bytes.
Direct gdb call
fails when not byte accessible address is reached, data-read-memory command
does not instead it returns garbage’s.
x/100xb
0xfff44000
0xfff44000:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44008:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44010:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44018:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44020:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44028:
0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00
0xfff44030:
Cannot access memory at address 0xfff44030
The gdb call
below reads memory correctly.
x/100xw
0xfff44000
0xfff44000:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44010:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44020:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44030:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44040:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44050:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44060:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44070:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44080:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44090:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440a0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440b0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440c0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440d0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440e0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff440f0:
0x00000000 0x00000000 0x00000000 0x00000000
0xfff44100:
0x00010203 0x04050607 0x08090a0b 0x0c0d0e0f
0xfff44110:
0x00010203 0x04050607 0x08090a0b 0x0c0d0e0f
0xfff44120:
0x00010203 0x04050607 0x08090a0b 0x0c0d0e0f
0xfff44130:
0x00010203 0x04050607 0x08090a0b 0x0c0d0e0f
0xfff44140:
0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f
0xfff44150:
0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f
0xfff44160:
0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f
0xfff44170:
0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f
0xfff44180: 0x0c0d0e0f 0x0c0d0e0f 0x0c0d0e0f
0x0c0d0e0f
It seems to be related to bugs 88054 and
150517.
Because of those issues _expression_ resolving
is also not working when operating the same memory i.e. (*( struct
EDMA_tag *) 0xFFF44000) is not showing correct
values.
Is there any way to make it working?
Because write now there no way to see any peripheral registers.
I’m using Eclipse Europa with lates
updates;
Eclipse Platform
Version: 3.3.2
Build
id: M20080221-1800
Eclipse C/C++
Development Tools
Version:
4.0.3.200802251018
Build
id: 200802251018
Eclipse GDB Hardware
Debugging
Version:
4.0.3.200802251018
Build
id: 200802251018
I have tested it also on 5.0 and is the
same.
Best regards
Sebastian Paluch