Sign in to follow this  
Followers 0
collinsd70

Finding RETAIN Memory Starting Address

5 posts in this topic

Hi All.

Bit of an odd question- but wondered if anyone had any ideas on how I could figure this out.

I am using a CPU that compromises of 2 levels of software- 1. The firmware (this is written by the hardware manufacturer and I have no access to the source code, only the compiled files) 2. The 'User application' this is built of many object, include and headers and is compiled using a linker application into 1 executable that is placed in the CPU's disk drive.

Upon compiling the user program- 2 memory addresses have to be configured.

1.ST Base Address- this is the start of the user appication memory

2. RETAIN Base Address- this is the start of the retentive user memory.

When I compile my program- I leave these as default, however when I boot in the CPU with firmware 3.25 (for example), I am informed that the RETAIN base address is wrong. I cannot upgrade/ downgrade the firmware until I can boot the application....

I have examined the .bin firmware file in a Hex Editor bit can only recognise version number.

Does anyone have any idea how I might be able to find this RETAIN address? 

I no longer have any connection with this company- and due to NDA it wouldnt be possible to ask them. This is all for training purposes only.

Share this post


Link to post
Share on other sites

Hello,

 

can you please provide some details?

what PLC exactly, what address, what version (FW, SW)

Share this post


Link to post
Share on other sites

Hi panic_mode.

This is a bespoke KEBA system and certainly not one of your 'normal' PLC's. The machine is built on MIPS Architecture. 

This is about all the information I can provide really- I know this RETAIN address will be coded in the firmware file somewhere but other than opening in a Hex-editor; I have no idea how I could find this..

The only other alternative is to recompile the user program using different RETAIN addresses then reload until successful- but this could obviously take a few days.

Edited by collinsd70

Share this post


Link to post
Share on other sites

If this retain address is generated by your user program compiler, you should look around this compiler (logs ?) to get your addresses.

Share this post


Link to post
Share on other sites

Hi dFx

The problem is...I dont have a compatible user program for this firmware version. Lets say I generate a new user program and load into the CPU with the above mentioned firmware version- it will not boot into runtime because the RETAIN base address in the user program is wrong.

This error is generated by the firmware NOT the user program- therefore the necessary requirements for memory addressing are stipulated in the firmware revision and not the uer program.

Edited by collinsd70

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0