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.

Is there any support - or plans to support - some version of arm-linux in the MSP430 family?

Two things about me:

1. I've invested a fair amount of time learning Linux & all its associated technologies. 

2. I will never be a full-time MSP430 developer

If there were a way to leverage my investment in Linux, I would LOVE to work on some MSP-430 projects. Without that, I'm probably just not interested in starting over. 

QUESTION: Is there - or will there be - some version of Linux (or other *nix) available for the MSP-430 family?

  • Hello Seamus,

    No, there are not plans to run Linux on MSP430.  We do have some more powerful processors that run Linux.  The Beagle board is a good way to start evaluating this platform.  

    https://www.ti.com/processors/sitara-arm/overview.html

    https://beagleboard.org/

  • MSP430 is a 16-bit MCU(or 20-bit addressing on MSP430X). Even (MMU-less) Linux won't fit.

  • Hello Seamus:

    Maybe I can help explain this to you.

    Since you are a Linux developer, you already understand that Linux is an operating system that acts as an abstraction layer in between a software program and the computer hardware. The hardware being the CPU, memory, and peripheral devices (such as a mouse, keyboard, display, and  communication ports). The software you develop is compiled to run on top of Linux, and Linux provides the means, in the form of application programming (API) libraries, for your program to interact with the peripheral devices, other software applications, and users.

    The MSP430 is a type of computing device called a System on a Chip (SoC). That means the program that you write and load into the MSP430 does not require an operating system for it to interact with peripheral devices, such as a mouse,a  keyboard, a display, a motor, an actuator, a light, a switch, a relay, and so on. Things called peripheral modules act as the abstraction layer between your program and peripheral devices. To use an MSP430, you choose a particular MSP430 microcontroller which has the peripheral modules which you need built into it, then you learn how to use those modules, and then you write a program that configures, controls, and monitors those peripheral modules. When the microcontroller starts, your program provides the instructions which the modules use for driving and operating the peripheral devices. Knowing how to use those peripheral modules to drive and handle peripheral devices is the key concept, and central idea, in using the MSP430 and any other SoC. The MSP430 is like a teeny tiny personal computer that does not need an operating system.

    However, an MSP430 with enough memory can be loaded with an operating system that is specifically designed to act as an abstraction layer between your program and the peripheral modules. It is called the Texas Instruments Real Time Operating System (TI-RTOS). It provides you with libraries of functions which your program can use for configuring and operating the peripheral modules. Like using the Linux API and C language libraries for developing a program meant to run on Linux, TI-RTOS also provides libraries of functions (an API) which are specifically designed to configure and operate the peripheral modules. From my point of view, you might as well just learn how to write code to handle the modules instead of learning yet another abstraction layer. And keep this in mind, writing a program that configures and operates a peripheral module simply involves writing numbers to various memory registers that set up and run the module. The hard part is learning about the modules themselves, which you will have to do at any level of abstraction, even with an operating system such as Linux. Having those MSP430 peripheral modules, and knowing how to use them, mitigates the need to have an operating system.

    Another way to view an MSP430 is as a device used for controlling machines, while on the other hand, software applications which run on an general purpose operating system, like Linux, are generally, but not limited to, being used for processing data for a human user.

    Now get yourself a cheap MSP430 launch pad kit and give it a try.

    Sincerely,

    Thomas

  • Let's see, how many systems have I learned pretty well and programmed in?

    HP41

    HP71

    Amiga

    Mac

    PC

    MATLAB

    TI DriverLib

    Ti RTOS

    And this doesn't even count the languages!

    ETA:

    Almost forgot:

    PicAXE

    Arduino

  • Keith, great way to make a point!

  • Thanks, Eddie - I appreciate a serious answer :) 

    I've heard of BeagleBone & been tempted to try it. Two things have held me back - if you could address them, I'd appreciate it: 

    1. Does BeagleBone platform (and Sitara in general) support a low power/sleep mode? I need to minimize battery drain - 2-3 mA max, and be able to wake for short periods. 

    2. Pricing: BeagleBone pricing seems to be all over the map... I've seen figures from less than $100 to more than $250 for the same board. I also wonder about availability in the longer term.

    Thanks,

    ~S 

  • I guess that means you've not heard of ELKS?

  • Thank you for your detailed reply Thomas.

  • Linux-"like" is just not linux. You can run REAL nommu Linux on Cortex-M3+ class MCU with several MB of SRAM and Flash, such as MSP432 or S**32F103**T6(self-censored, competitor's product).

    "I need to minimize battery drain - 2-3 mA max"

    BBB will consume more power. "After removing power to HDMI and LAN, The total current board use is 18mA with 5V. So, total standby power we can achieve on Beaglebone Black board is around 0.1W"

    https://e2e.ti.com/support/processors/f/791/t/374553

**Attention** This is a public forum