Firmware

Das Betriebssystem des C-Control Pro besteht aus folgenden Komponenten:

 

Bootloader

Interpreter

 

 

Bootloader

 

Der Bootloader ist immer verfügbar. Er sorgt für die USB oder serielle Kommunikation mit der IDE. Über Kommandozeilenbefehle kann der Interpreter und das Anwenderprogramm vom PC in den Atmel Risc Chip übertragen werden. Wird ein Programm kompiliert und in den Mega Chip übertragen, wird gleichzeitig auch der aktuelle Interpreter mit übertragen.

 

Soll statt dem USB Interface eine serielle Verbindung von der IDE zum C-Control Pro Modul aufgebaut werden, so ist beim Einschalten des Moduls der Taster SW1 (Port M32:D.2 bzw. M128:E.4 auf low) gedrückt zu halten. In diesem Modus wird jegliche Kommunikation über die serielle Schnittstelle geleitet. Dies ist praktisch, wenn das Modul schon in die Hardware Applikation eingebaut wurde, und das Application Board daher nicht zur Verfügung steht. Die serielle Kommunikation ist jedoch um einiges langsamer als eine USB Verbindung. Im seriellen Modus werden die Pins für USB nicht benutzt und stehen dem Anwender für andere Aufgaben zur Verfügung.

 

Da der SW1 beim Starten des Moduls den seriellen Bootloader einleitet, sollte auf dem Port M32:D.2 bzw. M128:E.4 beim Einschalten der Applikation kein Signal sein. Man kann diese Ports ja auch als Ausgänge benutzen.

 

 

SPI Abschaltung (nur Mega128)

 

Ein Signal auf der SPI Schnittstelle beim Einschalten des Moduls kann die USB Kommunikation aktivieren. Um dies zu unterbinden kann man PortG.4 (LED 2) beim Einschalten auf low setzen. Dann wird die SPI Schnittstelle nicht konfiguriert. Die SPI Schnittstelle kann auch später vom Interpreter manuell mit SPI_Disable() abgeschaltet werden.

 

 

Interpreter

 

Der Interpreter besteht aus mehreren Komponenten:

 

Bytecode Interpreter

Multithreading Unterstützung

Interruptverarbeitung

Anwenderfunktionen

RAM und EEPROM Schnittstelle

 

In der Hauptsache arbeitet der Interpreter den Bytecode ab, der vom Compiler generiert wurde. Weiter sind die meisten Bibliotheksfunktionen in ihm integriert, damit das Bytecodeprogramm z.B. auf Hardwareports zugreifen kann. Die RAM und EEPROM Schnittstelle wird vom Debugger der IDE benutzt, um Zugang zu Variablen zu bekommen, wenn der Debugger bei einem Breakpoint angehalten hat.

 

 

Autostart

 

Ist kein USB Interface angeschlossen, und wurde beim Einschalten nicht SW1 gedrückt, um in den seriellen Bootloadermodus zu kommen, wird der Bytecode (sofern vorhanden) im Interpreter gestartet. Das heißt, wird das Modul in eine Hardware Applikation eingebaut, so reicht ein Anlegen der Betriebsspannung, um das Anwenderprogramm automatisch zu starten.

 

Ein Signal auf Mega32:INT_0 bzw. Mega128:INT_4 beim einschalten des C-Control Pro Moduls kann das Autostartverhalten stören. Nach der Pinzuordnung von M32 und M128 liegt der INT_0 (bzw. INT_4) auf dem gleichen Pin wie der SW1. Wird der SW1 beim Einschalten des Moduls gedrückt, führt dies zur Aktivierung des seriellen Bootloader Modus, und das Programm wird nicht automatisch gestartet.