We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello all,
I am working on a Bootstrap Loader which will receive the new program over CAN. To be safe, I will use a CRC algorythm to check for inconsistencies.
Now, my problem is as follows: the CRC algorythm uses certain functions from the Keil Library(?C?LSTXDATA, ?C?ILDPTR, ...) and I'd like to move all these functions to a memoryspace which will not be flashed.
I've managed to move the entire Keil Library using ?C?*(0x1234), but this isn't a viable option as it could give me problems in the long run.
Now, I've looked around and the following app. note was always mentioned: http://www.keil.com/appnotes/docs/apnt_180.asp
Reading this app. note, I made a simple .asm file and added it to my Keil Project:
LibBase CODE 0100H ; Base address for Library Entries in BOOT ; Entry table for library functions CSEG AT LibBase PUBLIC ?C?LSTOPTR ?C?LSTOPTR CODE LibBase+0 END
0x0100-0x1FF is an empty fragment of memoryspace.
Compiling my program with this extra file results in a program that does do anything usefull. Removing this file and recompiling makes my program work normal again.
Can anyone give me some pointers to what I am doing wrong? Thanks in advance, - Peter
I've noticed that the function call to ?C?LSTOPTR is a call to 0x0100 (so far correct), but there doesn't seem to be any code at 0x0100 which is why my code compiles, but doesn't run...
Anyone?