Hello everyone,
I 'm working on the LPC1837 controller, I want to know how to merge the different SRAM location in a continuous address.
In the controller SRAM has been located in 3 different regions
1st region 0x1000 0000 - 0x1000 8000 (32Kb)
2nd region 0x1008 0000- 0x1000 A000 (40Kb)
3 th region 0x2000 0000- 0x2001 0000(64Kb)
i want these memory to continuous arrange to that code jump from 1st region to 2nd region then to 3rd region.
On any device, the various memory regions are at specific physical addresses and simply cannot be merged or, in fact, be moved in any way at all.
I assume that you are coding in "C" rather than directly in assembler.
Depending on the flavour of the IDE (Kiel, LPCXpresso, etc.) there are ways to locate specific parts of your code in specific memory areas.
This is a combination of source code directives and linker control file settings.
[See your documentation as I am not going to go into details.]
In your code, simply call your various functions. If the target address is beyond the distance that is legal for a branch instruction,
the linker will automatically insert special fixups (known as veneers) to handle things correctly.
In short, you can't merge memory regions and you don't have to anyway.
Regards, Mike.
hello mike,
Thanks for your response, i was actually asking how to jump from i locate to other in SRAM
or how i can fixed the memory for stack and heap ?