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.
I have a program that uses a couple of different real-time threads. The linker overlays function data by default which is a real problem in this case. I discovered the NOOVERLAY option for the BL51 linker V5.11 I thought this would totally eliminate data overlay. This is not the case. Many fuctions do get their own data segment as can be seen in the .M51 file, but other functions do not. The ones that do not get their own segment end up with overlaid data. All code is contained in one C source file. Why is the NOOVERLAY preventing data overlay in only some of the functions and not all of them?
Note that NOOVERLAY is a linker control. It won't affect how the compiler does its part of the work. So, if the compiler finds overlayable functions that can't be accessed from outside the functions, it may well overlay them on its own. You'll have to investigate the compiler listing, too, to see what really happens.