Simples Programm endet im FaultISR (ARM Cortex M3)

OP Persönliche Seite #1328762
Hallo an alle,

Ich beginne gerade die ersten Schritte mit den Arm Cortex M3, genauer 
gesagt mir dem LM3S6950 von Luminary. Als Debugger verwende ich den 
J-Link von Segger in Kombination mit der Keil MDK 3.7 
Entwicklungsumgebung (µVision 4 Beta 3). Debugausgaben im Programm gebe 
ich mittels ITM und SWD direkt im Keil aus.

So nun zu meinem Problem. Ich möchte einen Inkrementaldrehgeber 
auswerten. Dazu verwendet ich das Hardware-Interface des 
Mikrocontrollers. Für die Konfiguration verwendete ich die Driverlib von 
Luminary.

Hier folgendes Programm:
1
void setInput(unsigned long port, unsigned long pins)
2
{
3
    GPIOPinTypeGPIOInput(port, pins); //input
4
    GPIOPadConfigSet(port, pins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //pullup
5
}
6

7
void init_io(void)
8
{
9
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
10
  setInput(GPIO_PORTD_BASE, ENC_PHA);
11

12
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
13
  setInput(GPIO_PORTD_BASE, ENC_PHB);
14

15
  DEBUG("IO Init Complete\n");
16

17
  SysCtlPeripheralEnable(SYSCTL_PERIPH_QEI);
18
  SysCtlPeripheralReset(SYSCTL_PERIPH_QEI);
19
  QEIConfigure(QEI_BASE, QEI_CONFIG_CAPTURE_A | QEI_CONFIG_NO_RESET | QEI_CONFIG_QUADRATURE | QEI_CONFIG_SWAP, 0xFFFFFFFF);
20
  GPIOPinTypeQEI(GPIO_PORTD_BASE, GPIO_PIN_1); //PHA
21
  GPIOPinTypeQEI(GPIO_PORTF_BASE, GPIO_PIN_0); //PHB  --> Hier kommt es zur unerwarteten FaultISR
22
  QEIPositionSet(QEI_BASE, 0);
23
  QEIEnable(QEI_BASE);
24
}
25

26
int main(void)
27
{
28
  DEBUG("Starte Init\n");
29
  init_io();
30

31
  while(1)
32
  {
33
    DEBUG("Test\n");
34
  }
35
}

Ich habe absolut keine Ahnung warum es während der Konfiguration zu 
einem solchen Interrupt kommt. Die Interrupts werden ja generell 
nirgends eingeschaltet.

Ein weiteres Phänomen ist, dass es im Simulator einwandfrei läuft. Nur 
auf der Hardware kommt es zu diesem Fehler.

Ich hoffe es kann mir wer helfen.

Danke im Voraus
lg Robert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.