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.

SYS/BIOS MSP430

Other Parts Discussed in Thread: MSP430F2419, MSP430F5438A, MSP430F2274, MSP430F2618, SYSBIOS, MSP430G2231, MSP430F5338

Hi

What MSP430 devices are supported by the SYS/BIOS. The online training offers examples for the MSP430F5438A. Could i use the MSP430F2419?

Regards

  • Maarten,

    The latest SYS/BIOS release supports 83 devices in the 5xx, 6xx, and CC430 families.  It does not support the F2419.

    Regards,
    Scott

  • Hi Scott

    Is there any chance Texas will or can write a port for these devices?

    Regards

  • Maarten,

    I don’t know of any plans to formally support the 2xx family of devices.  But I’ve forwarded your message internally to the project and product managers.

    Regards,
    Scott

  • Hi Scott,

       I would like to use SYS/BIOS with a 2618.  In the mean time, has anyone tried starting with 5xx SYS/BIOS project and adapting it to a '2xx part?

    Regards,

    Fred

  • Hi Fred,

    I don’t know about outside of TI, but within, the answer is no, we’ve not ported SYS/BIOS to the '2618 yet.

    Regards,
    Scott

  • Hi Scott,

       After some more searching, I discovered that one of the SYS/BIOS models is for the MSP430F2274
    which is pretty close to the 2618 which I am using.  Are there any instructions on how to create
    a new SYS/BIOS entry?  I think I could use the 2274 as a starting point to create a 2618
    implementation.

    Thanks,

    Fred

  • Hi Fred,

    Sorry for the very slow response. 

    We did some early development testing on a 2274 to demonstrate that SYS/BIOS could indeed scale down to run on one of these smaller devices.  We didn’t fully “productize” this, because we only planned to support the 5xx/6xx families initially. And also because, as is, many of the generic SYS/BIOS product examples would fail to link for the 2274, because of big buffer sizes, and useful but unnecessary features enabled.

    All that said… I just compared timer base address and interrupt mappings, and the watchdog base addresses, and I think you may be able to do some testing on a 2618 by tricking SYS/BIOS into thinking you’re using a 2274.  And instead of using a linker command file for the 2274, swap in the default linker command file for the 2618.  This would be a hack, but it may allow you to do some preliminary testing/evaluation on a 2618.  I’ll be in the office tomorrow, and I think I have the necessary hardware pieces to try this out.  I’ll respond again when I know more…

    Regards,
    Scott

  • Hi Scott,

    I'll see if I can swap linker files.  I already changed the #include "msp430f2274.h" to "msp430f2618.h".

    Regards,

    Fred

  • Hi Fred,

    It turns out that the 2618 doesn’t work in the target board I was thinking of.  I’m going to have to get another one shipped to me. :OP

    I wonder if this worked for you?

    Thanks,
    Scott

  • Hi Scott,

       I am using a custom (ie our own design) board with the 2618.  One, possibly unusual, feature of our design is that the msp430 clock is a 16 MHz oscillator.

    I have made some changes to the Configuration Settings:

    Basic Options - Silicon = msp   (not mspx, my final application will use about 32k of flash)
    Predefined Symbols - Changed __MSP430F2274__ to __MSP430F2618__

    I have been unable to figure out how to change the linker cmd file, with the result that when I compile the clkswi example project I get some warnings and I am unable to load the image into the msp430's flash:

    <Linking>

    warning: creating output section ".int23" without a SECTIONS specification

    'Finished building target: Try2274.out'

    ' '

    Build complete for project Try2274

     

    Regards,

    Fred

  • Hi Fred,

    What I’d done to swap the linker file was to right click on “lnk_msp430f2274.cmd” in the Clock Swi Example project view and select “Exclude File(s) from Build”.  I then opened an explorer window, navigated to C:\Program Files\Texas Instruments\ccsv4\msp430\include, and copied and pasted “lnk_msp430f2618.cmd” into the project, and then rebuilt.  I also edited the MSP430F2274.ccxml file (by right clicking and opening with Target Configuration Editor) and selecting the 2618 instead of the 2274.  And then I renamed the file to MSP430F2618.ccxml (by right clicking and selecting Refactor->Rename). Does this work for you?

    To change the frequency values, you can add statements like the following to the clkswi.cfg file. 

    To specify the CPU frequency:

    BIOS.cpuFreq.lo = 16000000;

    To specify the SMCLK and ACLK frequencies:

    var ClockFreqs = xdc.useModule('ti.sysbios.family.msp430.ClockFreqs');
    ClockFreqs.ACLK = 32768;
    ClockFreqs.SMCLK = 16000000;

    Regards,
    Scott

  • Scott Gary said:

    Hi Fred,

    Sorry for the very slow response. 

    We did some early development testing on a 2274 to demonstrate that SYS/BIOS could indeed scale down to run on one of these smaller devices.  We didn’t fully “productize” this, because we only planned to support the 5xx/6xx families initially. And also because, as is, many of the generic SYS/BIOS product examples would fail to link for the 2274, because of big buffer sizes, and useful but unnecessary features enabled.

    ...

    Regards,
    Scott

    Interesting.  I've got a system based on the MSP430F2274, so if I read your note correctly, I should be able to at least get started with SYS/BIOS there.  Anything special I should look for?  I plan to download the latest SYS/BIOS 6.x and look for the linker command file.  Any other 2274-specific instructions, or should I just start using SYS/BIOS until I break something or run out of RAM? :-)

    TIA,

    Mike

     

  • Mike,

    Yes, you interpreted correctly.  You can use the File->New->CCS Project wizard to create a simple SYS/BIOS application that runs on the 2274.  Only one application template will be presented for the 2274, named “Clock Swi Example”.  You can use this as a starting point.

    Regards,
    Scott

  • Mike/Scott,

    I have been able to swap linker files and update the MSP430F2274.ccxml file.

    I also created .\xdctools_3_22_01_21\packages\ti\catalog\msp430\IMSP430x2618.xdc,
    .\xdctools_3_22_01_21\packages\ti\catalog\msp430\MSP430F2618.xdc  and
    .\xdctools_3_22_01_21\packages\ti\catalog\msp430\IMSP430x2618.xs
    (Is there a way to upload files to the forum?)
    However I haven't figured out how to get the system to use them. 

    The map file shows about 5K of RAM being used.  How do I configure
    SYS/BIOS to use less?  (When I used DSP/BIOS on a tms6713 I recall using about about half this amount.) 

    SYS/BIOS appear to create its own _system_pre_init() function.  Do you know
    what file this function is in?  Can I edit this file without worrying about my
    edits being lost?

    Regards,

    Fred

  • Hi Fred,

    You don’t need to create .xdc or .xs files for the 2618.  (That was a brave step though!)  The file MSP430.xs is our “generic” MSP430 device file that determines peripheral locations based upon the device ID specified for the platform “ti.platforms.msp430”.  This file will be used automatically when you specify:

    ti.platforms.msp430:MSP430F2274

    When I build the Clock Swi Example for the 2618 the RAM usage is only 768 of the 8192 available.  Did you make additions or changes to this project that increased it to 5K?   

    For ways to minimize footprint there are some tips in the appendix of the SYS/BIOS user’s guide.  But most all of these tips are implemented in the default Clock Swi project configuration settings.

    Yes, there is a pre initialization function run by the boot code, used to zero the .bss section.  The source can be found here (swap in the xdctools revision you are using):
    C:\Program Files\Texas Instruments\xdctools_3_22_04_46\packages\ti\targets\msp430\rts430\pre_init.c

    Do you need to use _system_pre_init() for some other purpose?  If so, I think you can link in your own function before the one used by SYS/BIOS.  Another thing to consider is using a Startup reset function (that will actually run earlier).  An example of how to configure your own reset function is shown here: http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_MSP430#Boot_sequence_with_SYS.2FBIOS

    Hope this helps…

    Regards,
    Scott

  • Hi Scott,

    I followed you advice here and it seems to work for me. The Clock swi example builds and I can flash the MCU.

    I'll play a little more with this and I'll report back for any one else who may be interested.

    Cheers,

    Andres

  • Hi Scott,

       I have uploaded xdctools 3.22.04.46 (thanks Dave) which lets me create an empty RTSC project:

    File > New > CCS Project > "Project Name" > Project Type: MSP430 > "Next" > Device Variant: MSP430F2618 > Empty RTSC Project

    I did some configuration and started a compile and got these messages:

    C:\Program Files\Texas Instruments\ccsv4\utils\gmake\gmake CSL2618.obj 

    'Building file: ../RefBrd2.cfg'

    'Invoking: XDCtools'

    "C:/Program Files/Texas Instruments/xdctools_3_22_04_46/xs" --xdcpath="C:/Program Files/Texas Instruments/bios_6_32_02_39/packages;" xdc.tools.configuro -o configPkg -t ti.targets.msp430.MSP430 -p ti.platforms.msp430:MSP430F2618 -r release -c "C:/Program Files/Texas Instruments/ccsv4/tools/compiler/msp430" -v "../RefBrd2.cfg"

    #

    # configuring RefBrd2.x430 from package/cfg/RefBrd2_p430.cfg ...

    C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46/xs -Dxdc.path="C:/PROGRA~1/TEXASI~1/bios_6_32_02_39/packages;C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46/packages;.." -Dxdc.root=C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46 -Dxdc.hostOS=Windows -Dconfig.importPath=".;C:/PROGRA~1/TEXASI~1/bios_6_32_02_39/packages;C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46/packages;..;C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46;C:/PROGRA~1/TEXASI~1/xdctools_3_22_04_46/etc" -Dxdc.bld.targets="" -DTOOLS=   xdc.cfg RefBrd2.x430 package/cfg/RefBrd2_p430.cfg package/cfg/RefBrd2_p430

    js: "$internal", line 21: XDC runtime error: too few arguments

        "./package/cfg/RefBrd2_p430.cfg", line 154

    xdctools_3_22_04_46\gmake.exe: *** [package/cfg/RefBrd2_p430.xdl] Error 1

    js: "C:/Program Files/Texas Instruments/xdctools_3_22_04_46/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    gmake: *** [configPkg/compiler.opt] Error 1

    Build complete for project RefBrd2

    The error line in the config file is:

        /* bind prog to an appropriate execution context */

        prog.cpu = prog.platform.getExeContext(prog);

    What are the correct arguments?
    Regards,
    Fred

     

  • Hi Fred --

    Is it possible for you to zip up the project that is causing this problem and attach it to this forum?    You should be able to export the project to a zip file using CCS File->Export option.  The ../RefBrd2.cfg file is of particular interest.

    Are you using Grace?

    I tried this locally with a simple .cfg file of my own and it worked fine for me.  But, I was using slightly different components.  Can you try using the hello.cfg file from the SYS/BIOS hello example?   You can create this example using the project wizard for one of the 55x devices, and then update the platform name ti.platforms.msp430:abc with your part number in place of abc.

    Thanks,
    -Karl-

  • Hi Karl,

       I have placed RefBrd2.zip in "Fred Carter's Files".

       I am NOT using Grace.

       The project is based on the blank RTSC project.  The functionality (see main.c) is blinking two leds, similiar to the Hello project.
    The two leds are connected to Port 6, bits 4 and 5 (see the function init_ref_board_io). 
    The clock is driven by a 16 MHz crystal which can be initialized by the functions Init_Basic_Clock and Init_Timer_A.
    I would like these functions to be called as part of the auto_init process.

    I am still trying to figure how to get the SYS/BIOS tick timer to work.  While I have written an ISR for TIMER_A (OS_ISR_Tick), I'm expecting that some xdc.useModule() call is needed to select an appropriate hal module and that my function is not needed at all. 
    How do I get SYS/BIOS ticks to work?

    This project compiles, but does NOT disable the watchdog timer.  I would like to add this code in system_pre_int() to disable the watchdog:
       unsigned char  term = (unsigned char) WDTIE;

       /* Stop watchdog timer to prevent time out reset */
       WDTCTL = WDTPW + WDTHOLD + WDTSSEL ;  /* Use ACLK */
       IE1 &= (unsigned char)(~term);

       /* Disable DCO -- We're using a Crystal */
       __bis_SR_register (0x0040u);
    I have edited .\xdctools_3_22_04_46\packages\ti\targets\msp430\rts430\pre_init.c but this file does not get compiled.
    How do I get my changes to this file incorporated?
    Tools I'm using: bios_6_32_05_54, xdctools_3_22_04_46 and CCSv5 5.1.0.09000.

       Eventually I will want to add three tasks, an SWI and several HWI's, but perhaps I leave those "How" questions for later.  For now I'll be thrilled just to have two leds blinking.  Thank you for your mentoring.

    Regards,

    Fred

  • Fred --

    Have your resolved the build problem?  Seems like the "$internal" issue is resolved since you can now build.   And now you are on to the next set of questions which we can address.  I just want to make sure you have gotten past the $internal problem.

    I can attempt to answer the questions above tomorrow, but I have to go home now. 

    In the meantime ...

    Have you seen this wiki page?   It has some info on the MSP430 that might help:

    http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_MSP430


    There are 3 examples posted to the main BIOS wiki that might help.   Not sure if links below will work, but look for this section on the SYS/BIOS wiki and grab those examples.

    http://processors.wiki.ti.com/index.php/Category:SYSBIOS

    Get device-specific information about SYS/BIOS

    MSP430 SOIC.jpg
  • Hi Guys,

           Will SYS BIOS work for MSP430G2231?

  • Vignesh,

    No, there is no SYS/BIOS support for this device, and there are no plans to add it.  

    The list of supported devices is found in the SYS/BIOS release notes, for example: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/6_35_01_29/exports/bios_6_35_01_29/docs/cdoc/ti/sysbios/family/doc-files/devices.html

    Scott

  • Hi Scott, I wanted to use a MSP430F5338 in a design, but I noticed it's not supported currently in the latest SYS/BIOS release.

    Do you have any info on if / when it will get added? (it's a MSP430x5xx part, with more then 8k of RAM and 64K FLASH.. Which I think is what I read somewhere as the 'minimum' suggested target size for a moderate system).

  • Hi Thomas,

    We just recently added support for the F5338 in new SYS/BIOS and XDCtools releases.  But these releases are still “in process” of being pushed out to the external servers for download.  Hopefully they’ll be there Monday or Tuesday of next week.  The web page for download is: http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/index.html  The new releases will be listed under SYS/BIOS 6.37.00.xx

    Scott