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.

MSP430F5437A for TI-RTOS Error

Other Parts Discussed in Thread: MSP430F5529, MSP430F5437A, MSP430FR5969, MSP430F5527, MSP430F6459

Hi,

I am trying to port an example project for TI-RTOS that uses the MSP430F5529 over to a board that uses the MSP430F5437A. I've got most of the process figured out, but when I try to build, I keep getting the following error:

#35, #error directive: This platform is not supported by TI-RTOS currently.

I see that in the ENV.h file that there are only definitions for the MSP430F5529 and the MSP430FR5969. I updated the device drivers as per these instructions: 
processors.wiki.ti.com/.../Creating_TI-RTOS_Projects_for_Other_MSP430_Devices

Are there any more drivers that I need to configure so that I can use the MSP430F5437A?

Thanks!

  • Hi Robert,

    It looks like the 5437A has the same peripherals as the 5529 so you should be OK. I think you got it all.

    I've submitted a bug to have this limitation removed. SDOCM00108100

  • Thanks for submitting the bug. I continued on and have come across another error:

    "can't find the library 'lib/nonInstrumented/gpio_MSP430F5437A.ae430X' specified by package ti.drivers. It wasn't found along the path 'C:/TI/CCS_Version_6/tirtos_msp430_2_00_01_23/packages..."

    If I look in the "${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/packages/ti/drivers/lib/nonInstrumented" installation, I can see that there is a "gpio_MSP4305437A.ae430X" file. I also added this path to the linker's search path to no avail:
    "${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/packages/ti/drivers"

    What am I missing that is causing it not find the needed driver file?
    Thanks!

  • Can you check the tirtos.mak file and RTSC platform?

    In your build log I see gpio_MSP4305437A.ae430X instead of gpio_MSP430F5437A.ae430X

    I just tweaked a MSP430F5529 gpio example project to use the MSP430F5437A by updating the RTSC platform.

  • Hi Tom,

    I'm sorry, that was a typo on my part. I do, in fact have the correct platform and .mak file, here are a couple images:

    # To build TI-RTOS driver libraries for other MSP430 devices; simply append the

    # device names to MSP430DEVLIST (separated by whitepsaces)

    # MSP430DEVLIST := \

    #     MSP430F5529 \

    #     MSP430F5527 \

    #     MSP430F6459 \

    #     MSP430F5437A \

    #     etc...

    #

    MSP430DEVLIST := MSP430F5529 \

                 MSP430F5437A

    If I remove the GPIO driver from my configuration file, everything builds fine. But as soon as I add it in, that's when I get the error. Here's what my config file looks like:

    // Include the TI_RTOS module - it creates the appropriate
    // #define's for the drivers
    var TIRTOS = xdc.useModule('ti.tirtos.TIRTOS');
    var Defaults = xdc.useModule('xdc.runtime.Defaults');
    var BIOS = xdc.useModule('ti.sysbios.BIOS');
    var Diags = xdc.useModule('xdc.runtime.Diags');
    var Error = xdc.useModule('xdc.runtime.Error');
    var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
    var Queue = xdc.useModule('ti.sysbios.knl.Queue');
    var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
    var SysMin = xdc.useModule('xdc.runtime.SysMin');
    var System = xdc.useModule('xdc.runtime.System');
    var Task = xdc.useModule('ti.sysbios.knl.Task');
    var Text = xdc.useModule('xdc.runtime.Text');
    var GPIO = xdc.useModule('ti.drivers.GPIO');
    
    // Get rid of Error_raiseHook which brings in System_printf
    Error.raiseHook = null;
    
    Defaults.common$.logger = null;			// Logger disabled for benchmarking
    Defaults.common$.memoryPolicy = xdc.module("xdc.runtime.Types").STATIC_POLICY;
    Defaults.common$.namedModule = false;
    Defaults.common$.diags_ASSERT = xdc.module("xdc.runtime.Diags").ALWAYS_OFF;
    BIOS.libType = BIOS.LibType_Custom;
    BIOS.swiEnabled = true;
    BIOS.clockEnabled = false;
    BIOS.taskEnabled = true;
    BIOS.logsEnabled = false;
    BIOS.assertsEnabled = false;
    BIOS.rtsGateType = BIOS.NoLocking;
    Program.stack = 1024;
    BIOS.heapSize = 0;
    BIOS.runtimeCreatesEnabled = false;
    Hwi.dispatcherAutoNestingSupport = false;
    var hwi0Params = new Hwi.Params();
    hwi0Params.instance.name = "null";
    var buttonInt = Hwi.create(47, "&buttonPressHwi", hwi0Params);
    var hwi1Params = new Hwi.Params();
    hwi1Params.instance.name = "queueHwi";
    Program.global.queueHwi = Hwi.create(49, "&Queue_ISR", hwi1Params);
    var queue0Params = new Queue.Params();
    queue0Params.instance.name = "ledQueue";
    Program.global.ledQueue = Queue.create(queue0Params);
    var semaphore0Params = new Semaphore.Params();
    semaphore0Params.instance.name = "ledToggleSem";
    semaphore0Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.ledToggleSem = Semaphore.create(null, semaphore0Params);
    var semaphore1Params = new Semaphore.Params();
    semaphore1Params.instance.name = "queueIsrSem";
    semaphore1Params.mode = Semaphore.Mode_COUNTING_PRIORITY;
    Program.global.queueIsrSem = Semaphore.create(null, semaphore1Params);
    
    // Assumption: app needs SysMin at a minimum,
    // but may not use printf, so buf can be zero.
    SysMin.bufSize = 0;
    SysMin.flushAtExit = false;
    System.maxAtexitHandlers = 0;
    System.SupportProxy = SysMin;
    
    Task.idleTaskVitalTaskFlag = false;
    Task.enableIdleTask = false;
    var task0Params = new Task.Params();
    task0Params.instance.name = "ledToggleTask";
    Program.global.ledToggleTask = Task.create("&ledToggle", task0Params);
    var task1Params = new Task.Params();
    task1Params.instance.name = "prepareLedTask";
    task1Params.priority = 2;
    Program.global.prepareLedTask = Task.create("&prepareLED", task1Params);
    Text.isLoaded = false;
    

    Any other ideas?

  • Robert,
    have you by any chance rebuilt ti.drivers package? Even though a library file is in the right directory, every time a package is built, it creates a map of available libraries. That map depends on the targets used to build the package, and the map might not contain all the libraries available on the disk.
    The easiest way to check that map is to look into "${COM_TI_RTSC_TIRTOSMSP430_INSTALL_DIR}/packages/ti/drivers/package/build.cfg. At the top of that file there is a list of libraries. Is the missing library in the list?

  • I believe I have. Here is the list of libraries in the map file you were referring to, the one in question, gpio_MSP430F5437A, is in there:

    if (pkg.$vers.length >= 3) {
        pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
    }
    
    pkg.build.libraries = [
        'lib/instrumented/gpio_MSP430F5529.ae430X',
        'lib/nonInstrumented/gpio_MSP430F5529.ae430X',
        'lib/instrumented/watchdog_MSP430F5529.ae430X',
        'lib/nonInstrumented/watchdog_MSP430F5529.ae430X',
        'lib/instrumented/wifi_singlethread_MSP430F5529.ae430X',
        'lib/nonInstrumented/wifi_singlethread_MSP430F5529.ae430X',
        'lib/instrumented/wifi_multithread_MSP430F5529.ae430X',
        'lib/nonInstrumented/wifi_multithread_MSP430F5529.ae430X',
        'lib/instrumented/i2c_MSP430F5529.ae430X',
        'lib/nonInstrumented/i2c_MSP430F5529.ae430X',
        'lib/instrumented/uart_MSP430F5529.ae430X',
        'lib/nonInstrumented/uart_MSP430F5529.ae430X',
        'lib/instrumented/sdspi_MSP430F5529.ae430X',
        'lib/nonInstrumented/sdspi_MSP430F5529.ae430X',
        'lib/instrumented/spi_MSP430F5529.ae430X',
        'lib/nonInstrumented/spi_MSP430F5529.ae430X',
        'lib/instrumented/gpio_MSP430F5437A.ae430X',
        'lib/nonInstrumented/gpio_MSP430F5437A.ae430X',
        'lib/instrumented/watchdog_MSP430F5437A.ae430X',
        'lib/nonInstrumented/watchdog_MSP430F5437A.ae430X',
        'lib/instrumented/wifi_singlethread_MSP430F5437A.ae430X',
        'lib/nonInstrumented/wifi_singlethread_MSP430F5437A.ae430X',
        'lib/instrumented/wifi_multithread_MSP430F5437A.ae430X',
        'lib/nonInstrumented/wifi_multithread_MSP430F5437A.ae430X',
        'lib/instrumented/i2c_MSP430F5437A.ae430X',
        'lib/nonInstrumented/i2c_MSP430F5437A.ae430X',
        'lib/instrumented/uart_MSP430F5437A.ae430X',
        'lib/nonInstrumented/uart_MSP430F5437A.ae430X',
        'lib/instrumented/sdspi_MSP430F5437A.ae430X',
        'lib/nonInstrumented/sdspi_MSP430F5437A.ae430X',
        'lib/instrumented/spi_MSP430F5437A.ae430X',
        'lib/nonInstrumented/spi_MSP430F5437A.ae430X',
    ];

  • I think I may have found the problem. I looked at the MSP403F5437A drivers, particularly the gpio_MSP430F5437A.ae430X and I looked at it's details and found that it has a .mak extension:

    I'm really not sure how that got to be and I'm not entirely sure how to change it. Any ideas on that?

    Thanks.

  • Open the file in an editor. It might as well be a make file that was created while you were rebuilding the package. If you only have a make file, but not a lib file, it is possible that your build actually failed. Do you still have some log that you can check?

  • Ah, ok, I figured out how to change the extension and remove the .mak from it. After doing that, my error is gone and I am good to go!

    Thanks for the help. I think it is strange that the .mak extension was applied to all the new drivers that were made for the MSP430F5437A. If anyone has any thoughts on how that can happen, I'll try to avoid it in the future.

  • I didn't keep the output log from when I created the drivers, but it is possible that an error popped up there. After changing the file extension, though, everything seems to be happy now.

    I may try rebuilding the drivers and see if I get any errors on a second pass.

  • Hi Robert,

    Tank you for the support.

    I have a problem with build the library...

    Do you have any idea?...

  • Hi Ricardo,


    If you are trying to rebuild the drivers, please refer to "Chapter 9, TI-RTOS User Guide" available in the "docs" directory of your TI-RTOS installation.

    This is an old thread which is closed. For further queries, please start a new thread with details about the issue.

    Vikram