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.

MSP430FR2476: MSPBoot

Part Number: MSP430FR2476
Other Parts Discussed in Thread: MSP430FR2355

Hello everyone,

I am trying to implement MSPBoot code for MSP430FR2476. I am using MSP430FRBoot document and MSP430FRBoot 1_03_00_00 examples. I have a few questions:

1- I am using Code Composer Studio. As i can see from "MSPBoot_FR2433_UART", there are custom target configurations(Example : BSLBased_16bit_UART). These configurations seem to be created automatically for the given device. How can I generate the configuration for the different device (MSP430FR2476)? What is the proper way?

2- There is a linkergen util that creates a linker file for the given device. But it seems like memory mappings are created according to the flash series. If I understand right, there are some wrong areas (like FLASH), and there are some missed areas (JTAGSIGNATURE, FRAM, etc.). Should users create linker files manually for FRAM devices? Is it okay to use linker files that are generated by linkergen? If yes why it is okay to use a flash-based linker and is it the proper way to use it?

Best Regards,

Ege

  • Hello Ege,

    For FRAM devices, you should only be utilizing the SW associated with MSPFRBOOT. It has a linkergen in that SW downloads that supports MSP430FR devices. 

    For instructions on porting MSPFRBOOT to other FRAM devices, see section 6 of the MSPFRBOOT User Guide. 

  • Hello Jace,

    I already checked this document and also used the example MSP430FRBoot 1_03_00_00 as I mentioned. This is the zip that contains linkergen, right? My two questions are:

    1- If you check linkergen, generated linkers for example devices are flash-based. There is no area about frame or jtagsignature in memory part. Like:

    MEMORY
    {
    SFR : origin = 0x0000, length = 0x0010
    PERIPHERALS_8BIT : origin = 0x0010, length = 0x00F0
    PERIPHERALS_16BIT : origin = 0x0100, length = 0x0100
    // RAM from _NonReserved_RAM_Start - __RAM_End
    RAM : origin = 0x2008, length = 0xff8
    // Flash from _App_Start -> (APP_VECTORS-1)
    FLASH : origin = 0x8003, length = 0x779f

    // Interrupt table from _App_Vector_Start->(RESET-1)
    INT00 : origin = 0xf7a2, length = 0x0002
    INT01 : origin = 0xf7a4, length = 0x0002
    INT02 : origin = 0xf7a6, length = 0x0002
    INT03 : origin = 0xf7a8, length = 0x0002
    INT04 : origin = 0xf7aa, length = 0x0002
    INT05 : origin = 0xf7ac, length = 0x0002
    INT06 : origin = 0xf7ae, length = 0x0002
    INT07 : origin = 0xf7b0, length = 0x0002
    INT08 : origin = 0xf7b2, length = 0x0002
    INT09 : origin = 0xf7b4, length = 0x0002
    INT10 : origin = 0xf7b6, length = 0x0002
    INT11 : origin = 0xf7b8, length = 0x0002
    INT12 : origin = 0xf7ba, length = 0x0002
    INT13 : origin = 0xf7bc, length = 0x0002
    INT14 : origin = 0xf7be, length = 0x0002
    INT15 : origin = 0xf7c0, length = 0x0002
    INT16 : origin = 0xf7c2, length = 0x0002
    INT17 : origin = 0xf7c4, length = 0x0002
    INT18 : origin = 0xf7c6, length = 0x0002
    INT19 : origin = 0xf7c8, length = 0x0002
    INT20 : origin = 0xf7ca, length = 0x0002
    INT21 : origin = 0xf7cc, length = 0x0002
    INT22 : origin = 0xf7ce, length = 0x0002
    INT23 : origin = 0xf7d0, length = 0x0002
    INT24 : origin = 0xf7d2, length = 0x0002
    INT25 : origin = 0xf7d4, length = 0x0002
    INT26 : origin = 0xf7d6, length = 0x0002
    INT27 : origin = 0xf7d8, length = 0x0002
    INT28 : origin = 0xf7da, length = 0x0002
    INT29 : origin = 0xf7dc, length = 0x0002
    INT30 : origin = 0xf7de, length = 0x0002
    INT31 : origin = 0xf7e0, length = 0x0002
    INT32 : origin = 0xf7e2, length = 0x0002
    INT33 : origin = 0xf7e4, length = 0x0002
    INT34 : origin = 0xf7e6, length = 0x0002
    INT35 : origin = 0xf7e8, length = 0x0002
    INT36 : origin = 0xf7ea, length = 0x0002
    INT37 : origin = 0xf7ec, length = 0x0002
    INT38 : origin = 0xf7ee, length = 0x0002
    INT39 : origin = 0xf7f0, length = 0x0002
    INT40 : origin = 0xf7f2, length = 0x0002
    INT41 : origin = 0xf7f4, length = 0x0002
    INT42 : origin = 0xf7f6, length = 0x0002
    INT43 : origin = 0xf7f8, length = 0x0002
    INT44 : origin = 0xf7fa, length = 0x0002
    INT45 : origin = 0xf7fc, length = 0x0002

    // App reset from _App_Reset_Vector
    RESET : origin = 0xf7fe, length = 0x0002
    }

    My question is, is this normal for FRAM devices? If yes why, because it seems like these memory sections are MSP430F series based?

    2-  I also checked the section you mentioned in the document. There are custom configs (like :BSLBased_16bit_UART) that are autogenerated under CCS folder in examples. Even I do what is mentioned in the section 6, the config files are still for MSP430FR2355. I am using Code Composer Studio btw. Should it be like this and why? 

  • 1) The linkergen provided with MSPFRBOOT is the one you should use for FRAM devices.

    2) The configs provided are example. You will need to port your chosen device, including changing pins, peripherals, code, memory bounds,  and CCS target for your device. 

**Attention** This is a public forum