Search the Community
Showing results for tags 'nufr'.
Found 2 results
The open-source RTOS called "NUFR" has been ported to the MSP430/MSP430X CPUs. NUFR is a full featured RTOS--not just a simple scheduler. Features: MSP430 and MSP430X 16- and 20-bit models Make system included; all free/open-source tools Prioritized & Preemptive multitasking; Round-Robin multitasking; context switching from interrupt handlers Low-power extensions: tickless OS; special logic for low power mode RNET IPv4/IPv6/UDP stack runs on NUFR Message-based, event-driven Example project for Launchpad board Small RAM footprint: OS itself consumes 600 bytes; example project (2 1/2 tasks) at 1800 bytes Offline development environment included; unit test strategy Uses latest GCC (Somnium, was Red Hat) compiler Includes a few manuals and how-to text files; document how to install GCC compiler, etc. Source code follows best-practice coding standards. Well-documented. Doxygen comments embedded Take it for a test drive! ragingdist.org https://bitbucket.org/burnwood/raging-release/
I created an open-source RTOS called "NUFR" and I'm wanting to port it to the MSP430. So, first I'm advertising NUFR and second I'm soliciting advice for the port. NUFR is a small but nevertheless full-featured RTOS. It is ideal for the 430, that's why I'm porting it there. It already runs on the Cortex M's. Here's some approximate resource consumption numbers on the M3 /M4: - the NUFR kernel and services layers consume around 4-6k of flash. Basically, that's all the features turned on. - RAM consumption: Around 300 bytes of kernel and messaging overhead; Add for each task: TCB of around 50 bytes and task stack. ARM examples ran minimum of 150 bytes up to 500 bytes per task. Lots of variables to consider, mind you. Each semaphore is around 24 bytes. And there's a networking stack (RNET) that runs on NUFR. RNET is UDP over IPv4 or IPv6. Current L2 support is for PPP. ICMP echo requests (pings) supported. NUFR supports two packet buffer management schemes, and can squeeze a networking stack into a small RAM footprint (mind you, there's a tradeoff between RAM consumption and CPU usage, and packet MTU has a large impact on small RAM footprint systems). A key feature of NUFR is that it's mainly event driven (though doesn't have to be). This becomes important on larger codebases on battery-powered systems. NUFR also does its best to stay out of the way. A lot of RTOSs don't do that. NUFR doesn't take ownership of the interrupt vector table or anything like that. You pick your favorite BSP, etc. and NUFR will work with it. NUFR is flexible, adaptable, and as straightforward as possible. It's documented too. https://bitbucket.org/burnwood/raging-release/src/default/ That's my advertisement. Onto the solicitation for advice. I'm looking for recommendations on compilers to support. My plan was to support msg430-gcc. Raging uses all free/open-source tools. But I'm looking to get an easy path on a 430 port, since I only have a few hours of 430 knowledge. What's the best toolchain? Development platform? Is there a software emulation I can run, like QEMU? I'm planning on supporting the 16-bit variant of the 430, is that sufficient for a first pass, and do a 20-bit version later? Which do you think is better to do first, the 16-bit or 20-bit--or can I do both easily? I started the port, some of the 430 files are on Bitbucket. The port code is very early, hopefully there's enough for someone to tie all the pieces together. Anyone want to help out with this? Bernie