STM32F469 kein Systick -> Bootloader

Gast #6728604
Lesenswert?
• ▲
▼
Hallo,

ich habe es irgendwie hinbekommen das mein STM32F469IIT nicht mehr 
läuft.
Das heißt genau dass der Systick nicht läuft/zählt und demnach auch das 
Programm nichts tut - ganz so als ob ein Breakpoint aktiviert wäre.

Wie ich an verschienden Quellen gelesen habe, kann man das mit dem 
Bootloader wieder lösen. Das Aktivieren über die BootPins sollte ich 
hinbekommen.
Die Frage ist aber was ich dann für die Programm aufspielen soll?

Leider fehlen mir da ein paar Infos zum Verständnis:
Was macht man da genau? - Mein Programm schreibe ich doch eigentlich in 
den Flash des Controller..?
Ich nutze als IDE übrigens STM32CubeIDE mit einem ST/Link V2.

Ich bitte um ein paar Hinweise.
Vielen Dank im Voraus!

ReinerZufall24
#6728747
Lesenswert?
• ▲
▼
Reinerzufall24 schrieb:
> Das heißt genau dass der Systick nicht läuft/zählt und demnach auch das
> Programm nichts tut - ganz so als ob ein Breakpoint aktiviert wäre.

Ist die PLL richtig konfiguriert?
Woran bemerkst du, dass der "systick" nicht läuft und der uC nicht (in 
einem Fehlerzustand) hängt? Falls der systick Timer gemeint ist, ist 
dieser initialisiert? Wenn ich mich richtig erinnere, war dieser in 
manchen Manuals von ST nur rudimentär beschrieben.
Gast #6729490
Lesenswert?
• ▲
▼
Bezügl. der PLL und Programm habe ich ein neues Projekt angelegt und 
alles auf den Std.Werten gelassen.
Das hat eigentlich immer geklappt.
Da ist kein Bus oder GPIO konfiguriert (außer den Std.Sachen).

Hier ein Bild zur Clockeinstellung.

Ja, mit SysdTick meine ich den Current-Wert . (siehe Bild)
Bei den Fehlerzuständen bin ich mir nun (nachdem ich wie gestern Abend 
noch bisl gelesen habe) nicht mehr sicher.
Ich hatte da in den Registern MMFAR geschaut ... das zeigt aber keinen 
Fehler an und ist vermultich auch nicht die richtige Stelle.
Das HFSR (HardFaultRegister) gibt auch eine  0 zurück -> nach meinem 
jetzigen Kenntnisstand ist das i.o..

Wie kann ich rausfinden was da Sache ist?
Hab nun schon das zweite Board in diesen misslichen Zustand gebracht.
Es ging genau 1x zu beschreiben. Bei zweiten Mal hängt es dann :-()

Vielen Dank für eure Hilfe!
Angehängte Dateien:
Gast #6729676
Lesenswert?
• ▲
▼
... Wird der SysTick nicht in der HAL_Init(); aufgerufen?
1
  HAL_InitTick(TICK_INT_PRIORITY);

und weiter
1
_weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
2
{
3
  /* Configure the SysTick to have interrupt in 1ms time basis*/
4
  if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
5
  {
6
    return HAL_ERROR;
7
  }
8

9
  /* Configure the SysTick IRQ priority */
10
  if (TickPriority < (1UL << __NVIC_PRIO_BITS))
11
  {
12
    HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
13
    uwTickPrio = TickPriority;
14
  }
15
  else
16
  {
17
    return HAL_ERROR;
18
  }
19

20
  /* Return function status */
21
  return HAL_OK;
22
}

Nur den handle finde ich derz. noch nicht.


Wie würdet ihr bei der Fehlersuche herangehen?
VG Reiner



Hier noch die Funktion SystemClock_Config:
1
/**
2
  * @brief System Clock Configuration
3
  * @retval None
4
  */
5
void SystemClock_Config(void)
6
{
7
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
8
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
9

10
  /** Configure the main internal regulator output voltage
11
  */
12
  __HAL_RCC_PWR_CLK_ENABLE();
13
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
14
  /** Initializes the RCC Oscillators according to the specified parameters
15
  * in the RCC_OscInitTypeDef structure.
16
  */
17
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
18
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
19
  RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
20
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
21
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
22
  RCC_OscInitStruct.PLL.PLLM = 16;
23
  RCC_OscInitStruct.PLL.PLLN = 192;
24
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
25
  RCC_OscInitStruct.PLL.PLLQ = 4;
26
  RCC_OscInitStruct.PLL.PLLR = 2;
27
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
28
  {
29
    Error_Handler();
30
  }
31
  /** Initializes the CPU, AHB and APB buses clocks
32
  */
33
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
34
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
35
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
36
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV4;
37
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
38
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
39

40
  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
41
  {
42
    Error_Handler();
43
  }
44
}
45

46
/**
47
  * @brief GPIO Initialization Function
48
  * @param None
49
  * @retval None
50
  */
Gast #6730630
Lesenswert?
• ▲
▼
So ... ermal positive Nachrichten:
Es bzw. er läuft wieder.

Bisl Blöd ist zwar das ich nicht weiß was ich macht habe...
Zur Fehlersuche habe ich mir folgendes ausgeldacht:
Ich habe noch ein 469Disco-Board.
Da hätet ich auf beiden ein "leeres" default-Projekt in STM32CubeIDE 
angelegt und dann die Register einzeln verglichen und geschaut was da 
los ist.

Grundsätzlich denke ich, das Problem liegt irgendwo in meiner 
Debugeinstellung der CubeIDE.

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.