Forum: Mikrocontroller und Digitale Elektronik ST idb05a1 mit Nucleo und FreeRTOS


von King Julian (Gast)


Lesenswert?

Ich versuche hier das IDB05A1 BLE Modul von ST zu betreiben, scheitere 
z.Z. aber an einem mir nicht ganz einleuchtenden Problem.
Aufbauend auf den ST Beispielprogrammen (ohne RTOS) funktioniert das 
tiptop, wenn ich über den MXCube aber das FreeRTOS hinzufüge und den BLE 
Chip initialisieren will, scheint er sich bei einem HAL_Delay() aufrauf 
aufzujängen.
1
/**
2
 * @brief Reset BlueNRG module.
3
 *
4
 * @param  None
5
 * @retval int32_t 0
6
 */
7
int32_t HCI_TL_SPI_Reset(void)
8
{
9
  HAL_GPIO_WritePin(HCI_TL_RST_PORT, HCI_TL_RST_PIN, GPIO_PIN_RESET);
10
  HAL_Delay(5);
11
  HAL_GPIO_WritePin(HCI_TL_RST_PORT, HCI_TL_RST_PIN, GPIO_PIN_SET);
12
  HAL_Delay(5);
13
  return 0;
14
}

Und zwar wird der erste call noch ausgeführt, wenn ich aber beim zweiten 
HAL_Delay(5) einen BP setzte und dann mittels Step-Into Debug Funktion 
da hineinspringen will, hängt sich die Geschichte auf.

HAL_Delay() macht nichts weiter als eine gewisse Anzahl an HAL_Ticks zu 
warten
1
__weak void HAL_Delay(uint32_t Delay)
2
{
3
  uint32_t tickstart = HAL_GetTick();
4
  uint32_t wait = Delay;
5
6
  /* Add a period to guaranty minimum wait */
7
  if (wait < HAL_MAX_DELAY)
8
  {
9
    wait++;
10
  }
11
12
  while((HAL_GetTick() - tickstart) < wait)
13
  {
14
  }
15
}


Kann es sein, dass hier irgend ein Konflikt mit dem RTOS vorliegt?

Vielleicht hat ja jemand schon was ähnliches mal gemacht.

von King Julian (Gast)


Lesenswert?

Okay, es hat wohl nichts mit dem HAL_Delay() zu tun, egal was nach dem
1
HAL_GPIO_WritePin(HCI_TL_RST_PORT, HCI_TL_RST_PIN, GPIO_PIN_SET);
 kommt, der Debugger hängt sich auf.

von Mikhail Krivonos (Gast)


Lesenswert?

I have the same problem, did you fix it?

von Johnny B. (johnnyb)


Lesenswert?

Do you give FreeRTOS enough Heap and Stack for the tasks?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.