invalid address in srecord block

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

invalid address in srecord block

852 Views
JimDandy
Contributor III

Getting the following error message. Other posts talk about difference between logical and physical address.

-----------------

Checking range of S records. -

Address range is not in module  Invalid address detected

Invalid address in srecord block from $00000000 to $0000000E

------------------

the actual srecord:

S1120000B696C7303EB680C73038B600C7303921
S113C0006E00006E00016E0003A600C730B8A600E3
S113C010C730B0A600C730B9A600C730B1A600C764
S113C02030BAA600C730B2A600C730BBA600C730DE
S113C030B3A600C730BCA600C730B49B989C5F4F22
S113C0401003453039AFFF65000026F91103453070
S10EC05039AFFF65000026F9CCC045A5
S105FFFEC0003D
S9030000FC

Using 9s08pa.s8p module

What could possibly be wrong???

0 Kudos
2 Replies

671 Views
JimDandy
Contributor III

Uploaded the srecord and it looks a bit different from what went in. The first 16 lines are FF, the next line is unknown data, the next 4 are as per what was programmed in. Is some of it written to unimplemented addresses?

Original and retrieved srecord below. Can't seem to get the formatting right, sorry! "source code" button doesn't do anything useful on my browser...

Original

S1120000A696C7303EA680C73038A600C7303951
S113C0006E00006E00016E0003A600C730B8A600E3
S113C010C730B0A600C730B9A600C730B1A600C764
S113C02030BAA600C730B2A600C730BBA600C730DE
S113C030B3A600C730BCA600C730B49B989C5F4F22
S113C0401003453039AFFF65000026F91103453070
S10EC05039AFFF65000026F9CCC045A5
S105FFFEC0003D
S9030000FC

Retrieved

S1133100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
S1133110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
S1133120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
S1133130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
S1133140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
S1133150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
etc etc etc
S113FFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
S113FFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFC0004B

-----------------------------

EDIT -> I had some of the config registers listed above ORG $C000 so the srecord was being partially written to the non-flash area.

:facepalm: ....

0 Kudos

671 Views
kef2
Senior Contributor IV

S1120000A696C7303EA680C73038A600C7303951

This has nothing to do with linear to physical. BTW what's part number? Linear to physical applies only to derivatives with >=64k of flash.

Address 0000 highlighted in your S record certainly is wrong. You should look in your map file for what is allocated to address 0000. There must be something, not peripheral registers but some initialized variables, structs or routine from your code. Don't you receive some warnings? If not, didn't you suppress some "annoying" and/or "not useful" warnings? As well, perhaps linker attempts to allocate something above 0xFFFF address, which could be chopped to 0000.

0 Kudos