Convert Banked GCC S1 to linear S2 record

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

Convert Banked GCC S1 to linear S2 record

2,598 Views
ServoPump
Contributor I
Hi,
 
I'm using GCC tools for the NE64 chip that generate S1 record that starts at 0x4000 and ends at 0xFFFF. The PPAGE register is set to 0x3D to get a linear flash space.
 

The GCC memory.x file is as follows:

Code:

MEMORY{  ioports (!x)  : org = 0x0000, l = 0x0400  eeprom  (!i)  : org = 0x, l = 0x  data    (rwx) : org = 0x3200, l = 0x0E00  text    (rx)  : org = 0x4000, l = 0xB800  vectors (rx)  : org = 0xFF80, l = 0x0080}PROVIDE (_stack = 0x4000);vectors_addr = 0xFF80;

 

I have tried for 3 day using SRecCvt-GUI  to generate and  program the NE64 with no luck.
Has anyone run into this problem?
 
Thanks in advanve for your help
 
Labels (1)
0 Kudos
2 Replies

417 Views
kef
Specialist I
Sreccvt (and of course its GUI) is useless when it comes to converting nonpaged addresses $8000-$BFFF. You say that PPAGE is set to 3D. But sreccvt doesn't know that $8000-$BFFF belong to page 3D and there's no way to tell sreccvt where to move $8000-$BFFF to.
 
To solve the issue you could exlude 8000-bfff from your "linear" memory map. But this is probably not what you want. So you need to extract 8000-BFFF S-records to separate file and shift these to proper "page" using sreccvt with -of switch. For example to move 8000-bfff to page 3C use -of switch argument set to (page=3C * 0x4000 - 0x8000):
sreccvt -m 8000 FFFFF 32 -of E8000 -o sfile8000bfff_OUT sfile8000bfff_IN
Then you should put sfile8000bfff_out back into your S-file. This converted S-file will be compatible with sreccvt and its GUI :smileyhappy:.
grep may help moving 8000-bfff to separat file.
0 Kudos

417 Views
Ilocano
Contributor I
you could try logphy convertor from P&E. Select custom to define the PPAGE=$3D for $8000 area
0 Kudos