Hello,
I'm using uVision3 and ULINK to develop programs for XC164CM.
While compiling a program there is a warning:
*** WARNING L5: SECTION LOCATED OUTSIDE CLASS AREA SECTION: ?ND0?DLLMAIN CLASS: NDATA0
This code is still downloaded into the device, but cannot run in debug mode with this error:
*** error 65: access violation: addr=0x0000C000
The referred line is:
0000C000 0000 ADD R0,R0
My project uses two CAN interfaces. I don't know if this is the reason.
Best Regards, Senmeis
These are two un-related problems.
WARNING L5: is caused by the fact that you run out of memory in your target system (or that a CLASS is incorrectly defined).
error 65: access violation occurs because you are running in the simulation mode. Most likely you must configure the simulator as explained here: http://www.keil.com/support/docs/2896.htm
For debugging with ULINK however you need to select the correct target driver.
To be honest, at first I didn't think this warning is so important. But the application doesn't work even everything looks fine besides this warning (A CAN message is expected to be transmitted after power up). So I made a change in 'Options for Target -> Target' from 'Small: 'near' functions and data' to 'HCompact: 'huge' data, 'near' funcs'. This time the application works! The warning now is changed to
*** WARNING L5: SECTION LOCATED OUTSIDE CLASS AREA SECTION: ?HD0?DLLMAIN CLASS: HDATA0
Could anybody tell me why this setting is so important and if I can ignore this L5 warning?
Thanks Senmeis
Start reading here: http://www.keil.com/support/man/docs/l166/l166_memory.htm