Microcontroller Linux
allanj writes "Have you seen the Clinux stuff running of the uCsimm modules? They are pretty little machines with a version of Linux that, with kernel and the entire filesystem needed to boot, comes in at only 900 Kb. The whole thing took 30 minutes from initial power-up to first boot. Some (quite basic) assembly of hardware required though. The best part? The entire computer fits in a 30 pin RAM socket, with 8 Megs RAM, 2 Megs Flash ROM and an ethernet controller chip. It's powered by a Motorola DragonBall, so it's not for too processor-intensive tasks, but most things run just fine. Oh, and it has a gcc cross-compiler pre-packaged to run off your host system, so development can start immediately."
Make is a general purpose program, and need not be used for only c programs.
In fact, make is an excellent choice, because it allows for dependcy checking. ie: there is a empty pot in place, water avaiable, and enough coffee beans/grounds. Sure you can do it with custom code, but make does a good job of that.
The things I look for in a microcontroller OS are stuff like..
A small footprint
Lightweight realtime multitasking (if multitasking is required)
Rapid boot (millseconds)
Persistent state support
Will fit in a single flash chip with space for the application
Hosts whatever protocol stack is going in the product (stuff like GSM, IS95, TCP/IP, IS707 seem to be the usual suspects).
Most importantly.. A really really good remote debugger, cross target development environment and totally uncrashable kernel
So could someone clue me in as to why I should use something like this rather than say Nucleus?
I should use this sig to advertise my book ISBN-13 : 978-1501515132.
ndfa$ telnet coffee
Trying 10.1.1.25
Connected
uClinux 2.0.38.1pre7
username: root
password:
# make coffee -strength 10 -cups 3
Making coffee now
ahhh.... geeks, turning coffee (caffine) into code for generations!
Non-Deterministic Finite Automata
To fill in some of the gaps in the /. story: ucLinux is a port of the 2.0 linux kernel to MMU-less architectures. It's mainly run on the Motorola 68000 series, but it is also used quite a bit on the (much faster) motorola coldfire chips.
The ucSimm is based on the motorola 68EZ328 Dragonball chip, with onboard memory controller
and LCD controller. It's the same chip used in
most Palm computers.
I haven't used the ucSimm, but I have first-hand uclinux experience with my own hardware. (kiwi.sourceforge.net) It runs pretty nicely, and it definitely doesn't take 30 minutes to boot. Don't know where that came from. Because most of the time-consuming things like loadable modules usually aren't included in the boot process, it only takes seconds to boot. Most of the time is spent decompressing the initial filesystem into DRAM.
ucLinux has been used for many things, including industrial control (microcontroller replacement) and robotics. I have been working, slowly, to make some type of usable PDA based on ucLinux. The Kiwi has been my crude but mostly operational attempt at hardware, and I've been working on a small and efficient GUI system, PicoGUI
(sorry i haven't updated these pages in a while. Most of the fun stuff is taking place in the sourceforge CVS)
-- 2 + 2 = 5, for very large values of 2
The stated 30 min boot time was the time it takes to open the box and plug things in. Once it is all set up it takes only 3 seconds to boot.
-Erik -- --This message was written using 73% post-consumer electrons--
Uh oh. Judging by the inaccessability of the servers mentioned, I sure hope their site isn't running of a uClinux simm!
"Oops, I forgot to turn off httpd logging. The memory filled up in 1.8 seconds!"
Then again, a rack enclosure with 50 of these guys and a load balancer could be an interesting prospect. Forget tracking session variables by cookie. Each user could be diverted to their very own simm 'associate' for their custom eCommerce transaction!
Kevin Fox
Kevin Fox
So it would seem.
http://slashdot.org/search.pl?query=uClinux
uClinux isn't, AFAIK, a true real-time OS, so it's applicability for critical embedded systems is somewhat limited. However, a uCsimm could be a cheap, flexible means of giving TCP/IP and Ethernet support to devices that can only handle serial communications. Hell, toss some basic IP masquerading and filtering code in there, and you've got a great, low-cost firewall for all those cable and DSL-wired households who don't know the first thing about security.
There's a .org for the OS and a .com for the hardware.
-- 2 + 2 = 5, for very large values of 2