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 am trying out an application for the MX51 and I need HUGE code generation but it generates a combination of both. As an example, in my routines it generates the proper ECALL and ERET but if I call a library function such as LSTXDATA, that library routine has RET instead of ERET which of course does not work. My MAP file says the LX51 used CPU MODE: PHILIPS 80C51MX (64KB CODE) instead of HUGE code. I have gone through the MX51 examples and they work fine. I have checked all my settings (everything is set HUGE), memory mapping, etc etc and I just cannot find the solution. Even set my memory mapping just like the "c linear rom" sample and still the problem exists. What should I try next?
Solved it. I had an A51 file at the beginning of the list and it looks like the linker uses the first file to decide what code size to use. I replaced the first file with a C program that had the ROM HUGE setting and the rest of the code followed the HUGE setting.