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.

MSP430FR6043: map file analysis

Part Number: MSP430FR6043
Other Parts Discussed in Thread: , MSP430FR50431

hi 

kindly tell me how to determine the code size for my executable. specifically, i will be programming this controller from another controller, and need know the flash size i will need in the programming MCU.

thanks,

  • Hi Ephraim,

    You can determine the size of the binary file by generating it (which can be done by changing the project properties -> msp430 hex utilities, enable the hex utility, then going to the "output format options" tab, and selecting the output format you want. Then apply and close to build the output file. Once you've done this, you can check the size of this binary file.

  • hi Dylan,

    i followed your instructions, here.

    however, i cannot find the generated file. kindly help.

    also, which format do you recommend for arm based mcus

    thanks,

  • Hi Ephraim,

    I typically recommend the TI_TXT format.

    As for where to find the output file, it will be located in the "Debug" folder inside of your project.

    Side note: MSP430 is a proprietary TI core, while the new MSPM0 devices are ARM based.

  • hi Dylan,

    i do not have a debug folder in the project.

    i also looked in folder MULTI_TONE but no .hex file.

    kindly help. thanks,

  • When I did that, I got a .hex file in MULTI_TONE. I did get two warnings of the form "address 0x0001x000 exceeds 16-bit limit - truncated".

    Did you see anything unusual in your Build Console window?

    [Edit Added screenshot]

  • hi Bruce,

    after building i get a txt file

    in appears to be 134kb. seams to big, what do get?

    thanks,

  • Are you concerned about the size of the .txt file? The .out contents (the interesting part, anyway) has been translated to ASCII-hex, with interspersed blanks, so it's at least 3x the size of the original. S-records (.hex) are somewhat more compact than TI-TXT, but still >2x the original size.

    I suppose that you won't be storing this in the programming-MCU in ASCII, rather you'll de-hexify and put it in an array, or maybe a group of arrays (for scatter-loading).

    How do you intend to get the program text into the programming-MCU? Will you (a) compile it in or (b) send it over a serial (e.g.) link? For (a), I saw an option for "Array", which I'm guessing (I didn't try it) will generate .c source. For (b), I suppose your host program will do the de-hexification.

  • hi Bruce,

    i am not at that point yet. i was just asked how much space is needed in the FLASH to store the code. so, what you are saying the HEX or TXT file i can divide by 2 more or less to get the actual size which will reside in the host MCU.

    i would appreciate some reference documentation to get up to speed.

    also, how would the programming be done, considering the MSP430 is empty would we make our own bootloader with I2C connection or use the one-wire programming.

    kindly point me to some documentation.

    thanks,

  • Hi Ephraim,

    We have the MSP430 FRAM Devices Bootloader User's Guide for help with bootloader applications.

    Bruce is just saying that the .hex format of the file will be smaller in size than the TI_TXT format. He is also saying that there is an array option for the output generation, which should generate a .c source file for storing to your device.

    You can read the device family users guide for information specific to this devices bootloader in section 1.1. Keep in mind if you are using an MSP430FR6043, the default ROM bootloader uses UART. If you are using an MSP430FR60431, the default ROM bootloader uses I2C. 

  • hi,

    we are using the MSP430FR50431 so it will be I2C.

    thank you so much for your assistance.

  • Consult the table on the first page of the .map file. Add up the "used" column for regions FRAM and FRAM2., then add 0x80 [Interrupt vectors]. (It looks like the FR50431 has no INFOx regions.)

    USS also carves out two other (small) regions [VERSION and LIBVERSION], so you can add the "used" values for those as well.

**Attention** This is a public forum