This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Memory holes in map files of msp430

Other Parts Discussed in Thread: MSP430FR5969

hi,

I was working on a project on msp430fr5969. then i checked at the memory map of the device. it was surprising to see that there was wholes between the memory address. for instance:-

MEMORY CONFIGURATION

name                                      origin         length         used          unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
SFR                                    00000000 00000010 00000000 00000010 RWIX
PERIPHERALS_8BIT     00000010 000000f0 00000000 000000f0 RWIX
PERIPHERALS_16BIT   00000100 00000100 00000000 00000100 RWIX

RAM                                  00001c00 00000800 00000800 00000000 RWIX 0000
FRAM                                00004400 0000bb80 0000b6f8 00000488 RWIX

this an extract from the map file. here we can see that  between RAM and  PERIPHERALS_16BIT there is wide gap of around 6KB. so why do we have such gap. and can i use it as memory to store data?

  • ANUP Sharma41 said:
    so why do we have such gap.

    There is more address space in the MSP430 than there is memory. So there is going to open spaces in the memory map. Usually a specific MSP430 device is part of a family of devices (where usually only the last digit changes) that have the same peripheral set but varying amounts of memory (FLASH and RAM). The memory map is set up to allow the same base address for RAM regardless of size, and same for FLASH.

    ANUP Sharma41 said:
    can i use it as memory to store data?

    No. Because there is nothing there to store anything in. Empty space is just that - empty. No RAM is there, no FLASH is there, and no Peripherals are there. It's like a table full of plastic cups - but some spaces on table don't have any cups. You can't store any water where there are no cups.

  • Brian Boorman said:
    It's like a table full of plastic cups - but some spaces on table don't have any cups. You can't store any water where there are no cups.

    I always like those Forrest Gump explanations ;)

  • Dennis Eichmann said:
    I always like those Forrest Gump explanations ;)

    It's rather like an explanation that old_cow_yellow would provide.

  • thanks for providing such an excellent explanation...
    but in my linker file i tried to play with these vacant locations, and to my surprise i was able to write on to these locations..

    earlier my .bss section was full but when i used this part of the section and was able to store a structure in it as result my size of .bss got reduced down..
    how does it .bss size changed after that...
  • >but in my linker file i tried to play with these vacant locations, and to my surprise i was able to write on to these locations..

    No. You weren't able to write to those locations. You were able to tell the linker that there was memory there and it dutifully allocated your structure there. That doesn't change the underlying fact that there is no physical memory there in the actual device. Your code will not execute properly.

    The linker file is the only information that the linker tool has about the device you are using. So, you can lie to the linker and it won't know. But, you are just shooting yourself in the foot.
  • yes this might be the case... but it does not affects my operation.
  • i was able to write on to these locations.

    Ha! TI has put write-only memory into these locations!

**Attention** This is a public forum