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.

MSP430 - 5229 vs. 5244

Other Parts Discussed in Thread: MSP-TS430RGC64C, MSP430F5229, MSP430F5244, SYSBIOS

Hello;


I have a project on which I've been doing development for a few weeks on the MSP430F5229 development board (MSP-TS430RGC64C), which uses Sys/BIOS.  I haven't had any problems.  I'm using CCSv5.5.


We recently got our new hardware in, which uses the MSP430F5244.  Both the 5229 and 5244 are supposed to have the same amount of flash and RAM (128k, 8k respectively).  After making the changes to the project to set things to the 5244, the code builds and links normally but I get this error when downloading the code via the debugger:

"ti.sysbios.heaps.HeapMem: line 307: out of memory: handle=0x3ad2, size=26
xdc.runtime.Error.raise: terminating execution"

It's not immediately clear what might be causing this error, due to the aforementioned similarities between the two chips' memories.  Both .cmd linker files for the 5229 and 5244 appear correct with the proper sizes.  So I'd assume there's some difference at the Sys/BIOS level.


Any guidance on this matter would be appreciated.  Thanks in advance,

Joe Shidle

  • Joe,

    i am moving this thread to the appropriate forum to get in touch with the TI-RTOS experts.

  • Hi Joe,

    Which version of BIOS are you using?  Did the BIOS version change between these two scenarios?

    Joe Shidle said:
    "ti.sysbios.heaps.HeapMem: line 307: out of memory: handle=0x3ad2, size=26
    xdc.runtime.Error.raise: terminating execution"

    When this happens, can you open the ROV tool and look at the HeapMem module?  You should check the total size of the heap, memory available.  Also please check the free list.

    Is the heap all used up?

    You may need to configure your heap to be larger.

    Steve

  • Thanks for your response, Steven.

    Steven Connell said:

    Which version of BIOS are you using?  Did the BIOS version change between these two scenarios?

    Currently using 6.35.4.50, but my next step is to try with the latest 6.40.01.15 available on the http://software-dl.ti.com site.  The version is the same for both 5229 and 5244.

    To be more precise, I have the same exact project which is compiled and runs fine on the 5529.  We developed the project making sure to use only pins that would be similarly available on the 5244.  The only change from 5229 -> 5244 is to change the project Preferences to point to 5244 platform instead of 5229.

    Steven Connell said:

    "ti.sysbios.heaps.HeapMem: line 307: out of memory: handle=0x3ad2, size=26
    xdc.runtime.Error.raise: terminating execution"

    When this happens, can you open the ROV tool and look at the HeapMem module?  You should check the total size of the heap, memory available.  Also please check the free list.

    Is the heap all used up?

    You may need to configure your heap to be larger.

    [/quote]

    I have tried increasing the heap size but then I get linker errors since we're already up against the 8k limit.

    My concern is really that the 5229 and 5244 have identical RAM sizes, code that runs on the 5229 should run on the 5244 with no such errors.

    Thanks in advance,

    Joe Shidle

  • Joe,

    Joe Shidle said:
    After making the changes to the project to set things to the 5244

    Can you please provide the details for this?  Which settings did you change?

    Also, what is the platform that you are using for the 5244?

    Steve


  • Thanks for the response, Steven.

    Project Properties -> General.  Under the "Device" cluster, there's a drop-down for "Variant".  Was set to "MSP430F5229", selected "MSP430F5244".  I don't remember if this automatically changed the "Advanced Settings" -> "Linker command file" from lnk_msp430f5229.cmd to lnk_msp430f5244.cmd or if I also changed that myself.  Either way, change that too.

    The save the property changes, and did a "Clean Project" / "Build Project" cycle. 

    There is still a lnk_msp430f5229.cmd file in the project explorer, but it is greyed out (while the lnk_msp430f5244.cmd is normal).


    The hardware platform is a proprietary build.  We did our initial FW development on the 5229 MSP-TS430RGC64C dev board and are now transitioning to our new boards with the 5244 on them.


    Thanks in advance,

    Joe Shidle

  • Joe Shidle said:
    Project Properties -> General.  Under the "Device" cluster, there's a drop-down for "Variant".  Was set to "MSP430F5229", selected "MSP430F5244".  I don't remember if this automatically changed the "Advanced Settings" -> "Linker command file" from lnk_msp430f5229.cmd to lnk_msp430f5244.cmd or if I also changed that myself

    Ok I tried this with an existing MSP430 project that I had.  For the record, the linker command file changed to *5244 automatically.

    I also diff'ed the built projects (BIOS hello example), to compare files from both before and after these changes.  I really only saw some changes in the *.map file.  These changes come from a difference in linker command files, described next.

    One thing to notice is that the lnk_msp430*.cmd files each "include" another linker command script, which lives in the SYS/BIOS installation.  You can see this at the end of these files.  For example, the lnk_msp430f5229.cmd has:

    -l msp430f5229.cmd

    And similar for the lnk_msp430f5244.cmd.

    Looking at those included linker files, I did see a difference between them:

    I'm wondering if this difference could be related.

    Could you changing the file lnk_msp430f5244.cmd to include:

    -l msp430f5229.cmd

    instead of the msp430f5244.cmd file?

    Steve


  • Steven, thank you for the response.  Sorry it took a few days to response, I was on another project earlier.

    Steven Connell said:

    Could you changing the file lnk_msp430f5244.cmd to include:

    -l msp430f5229.cmd

    instead of the msp430f5244.cmd file?

    I tried this with the same error.

    As an update, I downloaded the most recent CCSv5.5 version of Sys/BIOS (6.37.2.27) as well as the compatible XDC (3.25.05.94) and after installing, restarting CCS, cleaning the project, and configuring for the new BIOS and XDC in Project -> Properties -> General -> RTSC, rebuilding, the result is the same error.

    On your cue, I examined my project directory and noticed a number of files (e.g. .ccsproject, .cproject) still had many references to 5229.  I modified those by hand to 5244, cleaned and rebuilt, but that didn't make any difference. 

    In all the above cases, I'm still getting the same error.  I'd really rather not remake the entire project from scratch, and I've been able to successfully migrate other MSP430 projects from chip to chip without these issues, though this is the first time I've done so with Sys/BIOS.  This problem seems unique to Sys/BIOS.

    Thanks again for your help,

    Joe Shidle