Posts

Showing posts with the label embedded

Bit errors still not a myth

I had this post in draft for a long time now, however it is evergreen. Just consider the recent exploits  focused on RAM leakage. Although, do note that ECC by itself can't give 100% protection against row hammer, so it is only loosely related. An excellent empirical work has been published in 2009 regarding DRAM Errors in the Wild: A Large Scale Field Study . " About a third of machines and over 8% of DIMMs in our fleet saw at least one correctable error per year. " - analysis by  James Hamilton " Besides error rates much higher than expected - which is plenty bad - the study found that error rates were motherboard, not DIMM type or vendor, dependent. This means that some popular mobos have poor EMI hygiene. " - analysis by ZDnet Note that such an event plainly translates to faults on non-ECC machines. So despite the fact that human error is much more probable, it is not unlikely at all that you encounter bit errors in everyday life. Consider the foll...

Haskell for embedded: C output, compilers, monads, Timber

Tricks to use Haskell for developing embedded systems: Re: [Haskell-cafe] compilation to C, not via-C - question involving if you could output prettier C (answer: YHC/LHC or monadic generators) CUFP 2008 Program - see Controlling Hybrid Vehicles with Haskell by Tom Hawkins, Eaton Corporation TIMe - eMBEdded - Reactive - a promising O'Haskell inspired strict embedded research language

Optimized Java bytecode scheme for embedded devices

There exist interesting research related to reducing the resource demands of Java runtimes. Squawk takes this to the extreme by providing an almost completely standards-compliant implementation of the CLDC , the smallest configuration of J2ME , on which MIDP is layered. It's also of importance to note, that the source is almost entirely written in Java itself! They have worked around the issue of implementing lower level routines by falling back to a common subset of Java and C for those parts. That's a nifty trick, and I wanted to blog about something similar long time ago. It's a good thing that I'm not dreaming all the time and many of my ideas can be realized in practice. A complete runtime including the interpreter and the garbage collectors of the said takes up 25KiB of ROM. The standard CLDC library takes up a further 146KiB of ROM when uncompressed, or 64KiB if compressed. To execute the null program, it needs about half a kilobyte of RAM for the Java heap and...

Embedded water content of goods

Have you been living a water-conserving life up until now? Think twice before you answer: BBC News: World's major rivers 'drying up' BBC News: The ripple effect of cutting water