недавно возникла мысль скрестить gcc-gpc (Паскаль фронтенд для gcc) и avr-gcc (кодогенератор для микроконтроллеров).

Поискал в интернете и нашел лучшее - МОДУЛА2 для микроконтроллеров.
Для AVR
http://floppsie.comp.glam.ac.uk/Glamorg ... 2-avr.html
Для ARM
http://floppsie.comp.glam.ac.uk/Glamorg ... 2-arm.html
правда, в примере не совсем понравилась работа с железом
## Код:
```
MODULE flashled ;


PROCEDURE Turn (on: BOOLEAN) ;
BEGIN
   IF on
   THEN
      (* turn LED on *)
      ASM VOLATILE ("cbi 0x15, 5");
   ELSE
      (* turn LED off *)
      ASM VOLATILE ("sbi 0x15, 5");
   END
END Turn ;


(*
   InitLed - initialize pin 0 as an output
*)

PROCEDURE InitLed ;
BEGIN
   ASM VOLATILE ("sbi 0x14, 5")
END InitLed ;


CONST
   Delay = 500 ;

VAR
   i, j: CARDINAL ;
BEGIN
   InitLed ;
   Turn(FALSE) ;
   LOOP
      FOR i := 0 TO Delay DO
         FOR j := 0 TO Delay DO
            ASM VOLATILE ("nop")
         END
      END ;
      Turn(TRUE) ;
      FOR i := 0 TO Delay DO
         FOR j := 0 TO Delay DO
            ASM VOLATILE ("nop")
         END
      END ;
      Turn(FALSE)
   END
END flashled.
```

Но, с другой стороны это высвобождает руки для того, чтобы написать самим библиотеки для работы с железом.