
I'm new to this, so the only problems I see are finding a compiler that targets the platform (ARM7, for instance, or others) and uploading the compiled firmware to the device.
You might find that the extra RAM requirements for a non-C language becomes a problem - especially when it manifestly translates to extra euros/dollars on the "BOM" costs (aka bill-of-materials).
About 15 years ago, I wrote my PhD Thesis on the topic of "Functional Programming and Embedded Systems". ftp://ftp.cs.york.ac.uk/pub/malcolm/thesis.html Back then, I was using the Gofer interpreter (a forerunner of Hugs), compiling Haskell to bytecode, and targetted at the M68000. Bytecode is one important way to reduce the RAM requirements. An interpreter can also be quite parsimonious with heap allocation - as I recall, I extended the embedded board from 256kb of RAM to 768kb (yes, note kilobytes, not Mb) in anticipation of heap pressure, but in the end came nowhere near needing all of that. Regards, Malcolm