IAR EWARM - FIQ funktioniert nicht

OP #787565
Lesenswert?
• ▲
▼
Guten Morgen!

Ich stehe derzeit vor einem mir unlösbaren Problem.

Ich verwende in meiner Firma IAR Embedded Workbench EWARM v4.40A. Ich 
habe einen Bootloader geschrieben, der den ersten Sektor des 
AT91SAM7S256 belegt.

Nun will ich eine Applikation kompilieren, die folglich erst mit 
0x104000 beginnen darf.
Hierzu habe ich das .xcl Linkerscript angepasst (siehe Anhang).
Sehe ich mir die resultierende HEX Datei an, beginnt die Applikation wie 
erwartet bei 0x104000.

Flashe ich die Applikation über meinen Bootloader in den Controller 
funktioniert alles einwandfrei.
Nun habe ich versucht das Flash zu löschen und die Applikation 
(Startadresse = 0x104000) mittels meines Debuggers zu flashen und nicht 
über den Bootloader. Von Adresse 0x000000 bis 0x103FFF steht nun also 
0xFF und ab 0x104000 eben die Applikation.
Seltsamerweise startet der Controller korrekt, gibt mir noch ein paar 
serielle Ausgaben zurück, aber dann scheint er zu stehen.
Zu stehen deswegen, weil er auf einen FIQ wartet.

Nun  meine Fragen...
1.) Warum geht das nicht? Springt er bei einem Fast Interrupt auf eine 
Adresse die es gar nicht gibt (im Bereich 0x000000 bis 0x103FFF)? 
Funktionierts deswegen mit dem Bootloader, weil in diesem Adressbereich 
INTVEC für den Bootloader definiert ist?

2.) Reicht es nur das Linkersript anzupassen, oder muss auch eine andere 
Datei angepasst werden? Nochmals der Hinweis: Verwende IAR EWARM v4.40A.

3.) Kann meine Vermutung stimmen, dass dieses Problem nur beim FIQ 
auftritt? Alle anderen Interrupts scheinen zu funktionieren.


Wie folgt wird der FIQ in meiner Applikation konfiguriert.
1
void interrupt_init ( void )
2
{
3

4
    AT91PS_AIC     pAic;
5
    pAic = AT91C_BASE_AIC;
6

7
    AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ) ;
8
    AT91F_PIO_CfgPeriph(AT91C_BASE_PIOA,SW1_MASK,0);
9
    AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_FIQ, FIQ_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE,pio_c_irq_handler );
10
    AT91F_AIC_EnableIt (pAic, AT91C_ID_FIQ);
11
}


Vielen Dank für eure Unterstützung!!!
Angehängte Dateien:

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.