I want to introduce to you guys a small IDE for the Oberon language which targets MCU's. It is called Astrobe Oberon. The complete development environment is contained in one @5mb download. No compiler to configure with endless settings and tools to mess with. You install it with the Windows installer, open the "blink.mod" compile and flash, all automatically. Literally takes 5 minutes and you have a flashing led. This includes all libraries, IDE and everything for a full blown Arduino-like IDE for MCU's...with one difference...it is pure Oberon.
http://www.astrobe.com/default.htm
Oberon is the work of Prof. Nicholas Wirth, who wrote Pascal and Modula. Oberon is the ultimate mix of Pascal (which is much like C++) with the modular features of Modula.
These languages are seen as 'esoteric' and complex by most but this is not the case. Oberon is brilliantly simple. Think BASIC with object oriented features. The "class" structure is done away with for a simpler method. The code is amazingly compact, and get this: the "blink" bin file from Arduino is 12 TIMES larger than the bin file produced from Oberon (136 bytes, yes BYTES!). That alone should make you take a closer look at Oberon as a potential for these tiny mcu's.
MODULE Blinker;
(* =========================================================================
Example ARM Cortex-M3 Oberon Program
Description:
Led connected to P1.18 blinking approx. once per second
Target:
NXP LPC1768
Tested on:
ARM mbed
References:
NXP UM10360 LPC17xx User manual
Oberon for Cortex-M3 Microcontrollers
(c) 2012-2013 CFB Software
http://www.astrobe.com
========================================================================= *)
IMPORT Main, MCU, SYSTEM, Timer;
PROCEDURE Run();
CONST
(* led connected to pin P1.18 *)
ledBit = {18};
VAR
direction: SET;
BEGIN
(* Set led pin as output by setting the direction bit *)
SYSTEM.GET(MCU.FIO1DIR, direction);
SYSTEM.PUT(MCU.FIO1DIR, direction + ledBit);
WHILE TRUE DO
SYSTEM.PUT(MCU.FIO1SET, ledBit);
Timer.MSecDelay(500);
SYSTEM.PUT(MCU.FIO1CLR, ledBit);
Timer.MSecDelay(500)
END
END Run;
BEGIN
Run()
END Blinker.
Oberon for Cortex-M3 Compiler v5.3.0
compiling Blinker
code generated = 136 bytes, data = 0 bytes
I am very excited about the potentials of this neat little mcu in the ESP8266. Unfortunately, they are not so user friendly yet. The IDE's are rather complex to configure. Getting a working "blinky", for me, has been a real challenge.
If only Astrobe Oberon could target the ESP8266 mcu. It shouldn't be to hard for those with the know-how. The MCU.mod for the LPC1769 (the TARGET specific code) is only @700 lines. Let me know if anyone is interested and I will answer questions the best I can.