www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HEX laden und ausführen (avr32)


Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe ein NGW100 mit einem AVR32.

Jetzt möchte ich gerne mal meinen eigenen kleinen Kernel schreiben. Der 
Kernel soll mit dem Bootloader U-Boot aufgerufen und ausgeführt werden, 
so weit so gut. Der Kernel soll eigentlich nur Grundfunktionen 
bereitstellen (SD-Karte auslesen, Programme laden und ausführen und 
Spezielle Funktionen Zurverfügungstelle stellen wie z.B. Uhrzeit usw.)
Jetzt möchte ich natürlich meine Programme vom Kernel laden und 
ausführen lassen. Die Programme sollen als HEX auf einer SD-Karte 
gespeichert werden.

Jetzt meine frage:
1. Wie kann ich jetzt die geöffnete HEX Datei (Programm) in den RAM 
laden und ausführen?
- Ist dies nur mit ASM möglich?
2. Wie kann ich von meinen Programmen die Kernel Funktionen aufrufen.
3. Und wie ist das ganze mit dem GCC-AVR32 zu realisieren.
- allgemein

Ich würde mich über Hilfe, Idee, Links,... freuen
Danke

Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir mal was ausgedacht:
//Kernel.c

int main(void)
{
   programm_start();
}

void programm_start(void)
{
   asm 
   {
   //Assembler-Code
   //Die Daten von der SD-Karte in das ES Register laden
   //und dann in das DS Register laden
   //danach mit jmp den Code ausführen
   }
}

könnte das so Funktionieren?

Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das Programm sieht dann so aus:

[avrasm]

extern   _main
  global   start
start:
  call   _main
Stop:
  jmp   stop

[/avrsam]

Das eigentliche Programm
main()
{
}

Das wird dann noch zusammen gelinkt.

Kann das so Funktionieren?

Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir keiner paar tipps geben?

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde mir nicht die allergrößten Hoffnungen machen, auf dein Problem 
eine Antwort zu bekommen.
Da die AVR32-Architektur noch relativ "jung" ist, gibt es nur wenige 
Leute, die Erfahrung in der AVR32-Programmierung haben. Und selbst die 
Personen, die zb ein NGW100 Zuhause haben, werden den größten Teil der 
Programmierung unter Linux machen.

Auch wenns doof klingt, fang erstmal mit was kleinem an. Dazu gehört 
meiner Meinung nach auch, sich erstmal vom U-Boot zu trennen. Schreib 
einfach mal nen kleines Programm, das ne LED zum Blinken bringt 
(natürlich ohne Linux aufm AVR32). Dann taste dich immer weiter voran.

Aber denk dran, dass du nen JTAGICE mkII brauchst, um den AVR32 ohne 
Bootloader zu programmieren.

MfG
Marius

Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mmh ok

Ich wollte auch gerne mal wissen wie das in der theorie Funktionert d.h. 
z.B. an einen ARM oder PC. Also wie das in der Programmierung gelöst 
wird.


>>Auch wenns doof klingt, fang erstmal mit was kleinem an.

Habe vorher schon einige Projekte mit eine AVR gemacht (MP3-Player, 
LED-Cube, usw.)

Autor: MuE (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Aber denk dran, dass du nen JTAGICE mkII brauchst, um den AVR32 ohne
Bootloader zu programmieren.

jo, darum wollte ich gerne den vorhanden Bootloader weiter nutzen. Um 
bissl kosten zusparen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.