Bootloader: C:0x0000 - C:0x7FFF Manages CAN-Communication and in-field update. Application C:0x8000 - C:0xEFFF Applications is controlled with bootloader over CAN 2.0. Compiled both seperatly and merge the Hex-file. Interrupts and function calls work. At level of 8 successive funtions calls the acces to an struct in Applications XDATA mem is incorrect. The expected pointer is not given. Any adwise?
(Ok, I hope I got the formatting correct this time) dEP Pointer is correct. At eSE is the error. Ah. So the pointer does get passed correctly, and becomes corrupted later on. That is a different can of worms entirely, and would point more towards a problem with the call tree, i.e. the pointer gets stored in a memory location and is later overwritten.
tXSDevice_DeviceEntry* deviceEntryPtr
tXSDevice_DeviceEntry xdata * deviceEntryPtr
typedef struct _XSIMDEVICE { tXS_UINT8 numEvents; /**< Event entry count for the device.*/ tXS_UINT8 groupCount; /**< Group entry count for the device.*/ tXSEvent_SourcePtr eventListPtr; /**< Event group pointer. */ struct _XSIMDEVICEGROUPINFO groupList[0x10u]; /**< Pointer to list of group entries. */ } tXSDevice_DeviceEntry;
typedef xdata struct _XSIMDEVICE { tXS_UINT8 numEvents; /**< Event entry count for the device.*/ tXS_UINT8 groupCount; /**< Group entry count for the device.*/ tXSEvent_SourcePtr eventListPtr; /**< Event group pointer. */ struct _XSIMDEVICEGROUPINFO groupList[0x10u]; /**< Pointer to list of group entries. */ } tXSDevice_DeviceEntry;
A lot of Linker Errors with different Datatypes and Unresolved Externals. I guess you will have to hunt down all declarations of the function and change them accordingly. However, this was just something I noted on the side. The cause for your problem is most likely related to the call tree. Read the application note and the chapter in the linker's documentation.
I disabled NOOVERLAY to get a call tree in my map-file. But the calling tree of the application is empty. Perhaps it's a problem with my startup-code and linker-script inside application-project.