This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Memory map behavior for BL51

Hi All:

I use Keil uVision3.I setup BL51 Locate:
code range:0x80-0x3EFF
Xdata range:0x3E00-0x3FFF,0xE000-0xE1FF

I want to compile a .c file like this:

BYTE xdata array1[2];
BYTE xdata UsbBuffer[512];

but I get some Error Message:
*** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: XDATA SEGMENT: ?XD?BULKEXT LENGTH: 0202H

If I remove array[2] and compile,It will be OK.
I don't know why BL51 not Locate array[2] to another memory block(0x3E00-0x3FFF)?

Parents
  • but...why BL51 can't locate array[2] to another memory block(0x3E00-0x3FFF) by itself?
    it can't because there are some loval variables there already.

    I GUESS the linker does absolutes first, thus when using _at_ you force the locals to the other region. switching to small will probably fix the problem

Reply
  • but...why BL51 can't locate array[2] to another memory block(0x3E00-0x3FFF) by itself?
    it can't because there are some loval variables there already.

    I GUESS the linker does absolutes first, thus when using _at_ you force the locals to the other region. switching to small will probably fix the problem

Children
No data