|ARM Technical Support Knowledge Articles|
Applies to: C51 C Compiler
Information in this article applies to:
I am using the C51 Compiler and uVision 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 complex. You can reserve the memory area 0xE000 - 0xFFFF in bank 1 with the following method:
code unsigned char dummy[0x2000];
Article last edited on: 2006-08-17 19:58:43
Did you find this article helpful? Yes No
How can we improve this article?