possible bug in debugger?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

possible bug in debugger?

800 Views
rlw
Contributor I

I am using "CodeWarrior_for_S12X_V5_0" with True-Time Debugger ver 6.1, build 9061 to develop/debug software for the 9S12XE384.

 

As I understand it, If PPAGE is set to 0xFD, then at 0x8000'L I should see the same memory as I would see viewing 0x7F4000'G. This appears to be a correct understanding. With PPAGE = 0xFF, the views for 0x8000'L and 0x7FC000'G are the same. Likewise for several other pages of FLASH ROM.

 

However, with PPAGE = 0xFD, I see different memory content depending on whether I am viewing 0x8000'L or 0x7F8000'G.

 

Is this a bug in the debugger?

 

I have attached a ZIP file with screen pictures of what I am seeing.

Labels (1)
Tags (1)
0 Kudos
3 Replies

361 Views
CompilerGuru
NXP Employee
NXP Employee

What do you see at 0xFE8000'L?

 

One issue here is that the debugger might be using logical (24 bit) addresses, not local (16 bit) addresses.

So 0x8000 may mean (not sure in your setup) PPAGE==0 and local address 0x8000. As I see it, 0x8000 is not a valid logical address. (It is a valid local address, but there is no Local address space).

 

Daniel

 

 

 

0 Kudos

361 Views
rlw
Contributor I

As I said, for every (valid) setting of PPAGE, the view at 0x8000 matched the corresponding view at 7Fx000 (or 7Ex000, etc), except for that one, as shown in the screen pics.

 

As for Logical vs Local addresses. since there is yet to be a part with enough FLASH ROM to have a page 0x00, it is not unreasonable to treat Logical Addresses less then 0x10000 as Local Addresses.

 

This rational appears to apply to paged RAM and EEPROM as well. However, I have never tested that since I have not yet needed more RAM and EEPROM than appears by default in the Local Address space.

0 Kudos

361 Views
CompilerGuru
NXP Employee
NXP Employee

For ram, RPAGE == 0 maps the registers to the 0x1000 block.

For EEPROM, there are devices like the EP100 which have different types of eeprom, the EPAGE values for one start at 0 (0,1,2,...) and for the other they start at 0xFF and then count downwards.

 

For S08's with PPAGE (QE128 and others) PPAGE value 0,1,2,3, and so fourth are used. 

 

For the S12(X) I'm unaware that PPAGE==0 would be legal, but as the EPAGE shows this can change with new devices.

Anyhow, the  debugger uses logical addresses even for addresses < 0x10000, so 0x8000 means PPAGE == 0.

 

Daniel

0 Kudos