Hallo @all,
ich wollte eigentlich auf ARM umsteigen/einsteigen (vorher 8051 und AVR
in C, bisschen HC12/MPC ASM).
Im groben hab ich mich schon durch ein paar IDEs gekämpft (Demo
Versionen) und bin jetzt bei IAR, Crossworks und Keil hängen geblieben.
Wahrscheinlich werde ich den Keil nutzten und dazu das U-Link als JTAG
Adapter (geht hier auch der Wiggler?). Als alternative evtl. Crossworks
mit Wiggler, die ja gut zusammenarbeiten sollen. Der IAR sieht zwar ganz
gut aus, aber wie der mit dem Wiggler arbeitet weis ich nicht so recht.
Jedenfalls ist mir schon einiges klarer geworden (8051 war immer schön
einfach ... neues Projekt anlegen, Header einbinden, ne Main-Routine
schreiben, bissel Quelltext dazu, Compilen, Linken, Flashen und läuft
..) Bei einem ARM scheint das ja komplett anders zu laufen.
Jetzt sehe ich wahrscheinlich den Wald vor Bäumen nicht mehr. Brauche
ich unbedingt ein Startup File (wobei Keil/Crossworks ja welche
mitliefern, also nicht so das ding) ? Bislang habe ich nie Startup Files
eingebunden..
Und wie deklariere ich einen Interrupt? Also im Grunde ist das ja klar,
ein bisschen SFR setzen, sprich welcher Interrupt welche Prio und welche
Source. Aber wie setzte ich den Vektor?
Hier im Tutorial habe ich gelesen quasi einfach mittels
1 | VICVectAddr0 = (unsigned long)ISR;
|
für Interrupt Vektor 0 die Adresse festlege. Restliche Register sind
klar. Und im Haupt-Quelltext (z.b. main.c) dann eine funktion definieren
mittels
1 | __irq void ISR()
|
2 | {
|
3 | .. bla bla .. flag löschen etc.
|
4 | }
|
War es das dann schon? Muss ich den Interrupt Vektor in eine Startup
Datei deklarieren (die würde ich ja am liebsten weg lassen) oder kann
ich das auch in einer Config-Funktion (in C) ?
Also kurzfassung von meinem Roman ..
1. Startup benötigt ?
2. Wo Interrupt Vektoren/Adressen definieren ?
3. Wiggler mit Keil Debugger möglich ? (um den U-Link zu sparen)
Vielen vielen Dank!