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: migrating to MSP430FR5043

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

Hi,

USS code i built runs on TI EVM MSP430-fr6043. Migrating to the MSP430FR50431IPM,

I change the variant in show build settings->general to MSP430FR50431.

when building the code again i get the following warnings/errors:

warning #10247-D: creating output section ".ram_thrill" without a SECTIONS specification
warning #10247-D: creating output section ".USS_ramfunc" without a SECTIONS specification
warning #10247-D: creating output section ".libVersion" without a SECTIONS specification
"../lnk_msp430fr50431.cmd", line 215: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment fails for section ".leaRAM" size 0xfa0. Available memory ranges:
LEARAM size: 0xec8 unused: 0xec8 max hole: 0xec8
error #10010: errors encountered during linking; "FR6043_USSSWLib_AQUASMART-UTIL.out" not built

thanks,

  • I think what has happened is:

    1) The USS code you were using came with a Custom-modified "lnk_msp430fr6043.cmd" file,  which dealt with those SECTIONS.

    2) When you switched to the FR50431, CCS gave you an Standard "lnk_msp430FR50431.cmd" file, which does not have the special SECTIONS specifications.

    I suspect that the other errors cascaded from the missing SECTIONS.

    I don't have a copy of the USS package. I'll see if I can find one, but in the meantime, go back to the USS package installation folder (maybe in C:\ti somewhere?) and see if you can find a file named "lnk_msp430FR50431.cmd" (a filename without the "1" will probably suffice) and paste that into your Project.

  • Bruce,

    i found a lnk_msp430fr50431.cmd in the SDK example projects under USS, i copied it into the project, however i am still getting the warnings/errors:

    warning #10247-D: creating output section ".ram_thrill" without a SECTIONS specification
    warning #10247-D: creating output section ".USS_ramfunc" without a SECTIONS specification
    warning #10247-D: creating output section ".libVersion" without a SECTIONS specification
    "../lnk_msp430fr50431.cmd", line 215: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment fails for section ".leaRAM" size 0xfa0. Available memory ranges:
    LEARAM size: 0xec8 unused: 0xec8 max hole: 0xec8
    error #10010: errors encountered during linking; "FR6043_USSSWLib_AQUASMART-UTIL.out" not built

    thanks,

  • hi Bruce,

    adding to the last email, i am using the template project as-is from TI. when switching variants the cmd file changes automatically. 

    thanks, 

    Barry

  • I installed the USS and UltrasonicWaterFR604x packages. I didn't find the FR50431.cmd linker file that you did. 

    However, I think I retraced your steps. Then, after getting the link error I

    1) Excluded the FR50431.cmd from the build (right-click on the name in the Project Explorer panel)

    2) Included the FR6043.cmd in the build (same operation, which un-does the prior Exclude)

    This provided a build for the FR50431, linked as though it is an FR6043.

    This succeeded.

    -------------------

    Then the question is: How valid is the result? In other words, how similar are the FR6043 and FR5043? Glancing over the data sheet (SLASEF5B) it appears they are very similar.

    a) The linking operation depends mostly on memory layout. Table 9-52 has a single column for both, i.e. they're identical. [Edit: Also, per Table 9-4, the interrupt vectors are identical.]

    b) Table 6-1 indicates that the facilities available in each are almost the same: the FR5043 has fewer pins, so fewer ADC channels and no LCD.

    c) Table 7-1 indicates that some other (non-ADC, non-LCD) pins are absent from the FR5043, which may or may not matter. But his would be a question regardless of which linker file you choose.

    I think this brings you to where you intended to get. You have to deal with (c) above now, but that was expected.

  • hi Bruce,

    i went back to the variant option and changed it back to FR6043.

    As you can see from the png below, a new CMD file appears, while old are disabled

    i then re-build and all is good. (don't mind the above png, it is before the re-build.)

    however, when running the debugger, i get warning messages regarding incompatible MCUs.

    thanks,

  • hi Brandon,

    in the included thread there is a lnk_msp430fr5043.cmd file, which i included into my project. it builds with this warning:

    i'm not a linker person, can you explain.

    thanks,

  • What I did was different from that: The .c code was built for an FR50431, but they were linked as though it was an FR6043. Odd, but (I suspect) safe enough, and it avoids the surgery on the linker file that would otherwise have been required.

    -------

    However, what Brandon has provided is the actual lnk_msp430fr50431.cmd that you need (someone already did the surgery), along with some code changes that you would have needed going forward. I recommend using that.

  • hi Bruce, 

    i sent this to Brandon,

    in the included thread there is a lnk_msp430fr5043.cmd file, which i included into my project. it builds with this warning:

    I'm not a linker person, can you explain, kindly point out the code changes you are referring too.

    thanks,

  • That line refers to a section called "uss_config" containing a set of object files built (I suspect) from Project folder USS_config. This stanza in the .cmd file doesn't appear in the FR6043.cmd that came with the package (the one you originally were using). Maybe it's an optional thing?

    I expect you can ignore the warning. Brandon may be able to find out why that stanza is there.

  • kindly point out the code changes you are referring to

    In the .zip, that linker file was in a folder called "Linker". There is also a "Header files" folder which has two .h files, which you might want to adopt (or at least look at). The differences are in the folder "Difference reports".

  • If you're still interested: I think the linker is objecting (only) to the structure singDualToneConfig, which is defined in USS_userConfig.c but -- based on the usage configuration of the Example -- isn't referenced so the linker removes it (and then wonders where it went (:-))).

    I suppose the person who did the report was using a different usage configuration, so the structure was present.

    I'm pretty sure you can ignore the linker warning.

  • thank you so much for your assistance. 

  • hi Bruce,

    after compilation and link which succeeded i am attempting to debug the code, however i get this error.:

    thanks,

  • The first place I'd check is Project->Properties->General->Variant, to make sure it's really set for the FR50431. That string finds its way into various places in the Project (I expect I don't know all of them). 

    The next place I'd look is the targetConfigs folder. Open the "Active" .ccxml file and check the left panel to make sure MSP430FR50431 is checked.

    Another thing you might try is changing the Variant to something else (FR6043 maybe?), then change it back. Afterward, make sure it's still using your custom linker .cmd.

    I think the linker isn't one of the places that knows this, but just in case: Check the bottom line of your (custom) .cmd file and make sure it says FR50431.

  • Hi Bruce,

    After changing the variant to FR5431 i see in my explorer two CMD files 1. lnk_msp430fr5043.cmd 2. lnk_msp430fr50431.cmd , so i deleted the FR50431.

    now in the targetConfigs folder i have two CCMXL files 1. MSP430FR50431.ccxml and 2. MSP430FR6043.ccxml. 

    opening the active file, see below. 

    thanks, i need help with this.

  • Are you saying that the Variant was already set to FR50431, or you changed it to that? Maybe try a Project Clean/Build?

    I'm not sure where else the "target setup" would come from if not from the targetConfig (ccxml).

  • I ran across option "Project->Properties->Debug->Auto Run..->Launch Options->Continue debug if ..load fails". I think the FR5043 and FR50431 are identical for CCS's purposes, so maybe that will help.

    I'm not a CCS wizard. I  have encountered cases when, due to some mysterious anomaly stuck in one of the control (xxproject) files -- something probably fixable but not worth spending my life figuring out -- I just gave up and re-constructed a Project .

  • Hi Bruce,

    tomorrow i will have my own FR50431 hardware so i will continue testing. i'll keep this case open for now.

    thanks, 

**Attention** This is a public forum