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.

MSP430G2553 & Sys/Bios

Other Parts Discussed in Thread: MSP430G2553

I want 2 learn how to implement & learn basic real time systems in MCU's. ()

I have MSP430G2553 & its launchpad kit. I read that SYS/BIOS is provided by TI as real time OS & can be implemented on MSP430 MCU.

Can it done on & how to proceed step by step & where to get more information about.

  • Hi,

    you need a "bigger" MSP430 for doing SYS/BIOS, MSP430G2553 is much too small for SYS/BIOS. Please refer to the following supported device:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/6_32_02_39/exports/bios_6_32_02_39/docs/cdoc/ti/sysbios/family/doc-files/devices.html

  • The G2553 indeed is a bit small for an RTOS. Reason is that one of the main features of an RTOS, the switching of threads, requires a lot of storage space per thread. Each thread requires its own stack, and each stack must be large enough to hold all local variables used along the course of this threads, as well as all data saved by an ISR during execution of this thread. And a complete save of all processor registers while the thread is on hold.

    On a G2553 with its 512bytes of ram, you could barely run two threads if you have some global variables too. I'd consider 1k ram the minimum for any useful application. The more, the better.

    You don't need a complete OS for experimenting with multitasking.
    I've done the complete premptive scheduler and supporting functions in just 922 bytes of code, including sleep and wakeup events (e.g. UART events), yield (premature intentional thread switch), priorities and stack guarding.
    If a thread has no local variables, calls no functions and no ISRs are active (except for the switching ISR), the required memory per thread is ~50 bytes for organizational purposes and data storage during switch.
    This is, however, written for the 5438 processor. (it uses the RTC as timer for the thread switching event). And much of the code is hand-crafted assembly for the MSPGCC inline assembler.

**Attention** This is a public forum