C51: Reserve Memory at Absolute Bank Addresses
Information in this article applies to:
I am using the C51 Compiler and µVision with a code banking project. I have a 88KB CODE memory in the chip. The lower 32KB is assigned to the common area, and the rest is for the code banked area. I have 2 banks: one 32 kb and the other is 24 kb.
Is there a way to tell compiler/linker that not all the banks are of the same size?
I need the compiler linker to enforce the size issue in order to know any violations in size.
Yes, you can block the memory usage in the linker as described below:
When using the LX51 Linker/Locater, just enter under Options - LX51 Locate - Reserve: B1:0xE000-B1:0xFFFF. This blocks the memory area 0xE000 - 0xFFFF from being used by other variables.
When using the BL51 Linker/Locater, the solution is a bit more complicated. You can reserve the memory area 0xE000 - 0xFFFF in bank 1 with the following method:
Last Reviewed: Thursday, February 25, 2021
of your data.