Simples Programm endet im FaultISR (ARM Cortex M3)

OP Persönliche Seite #1328762
Lesenswert?
• ▲
▼
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren