Hallo,
Ich finde es einfach nicht... der Code:
1 | void teste(void)
|
2 | {
|
3 | uint16_t i = 0;
|
4 | i++;
|
5 | i--;
|
6 | }
|
7 |
|
8 | int main(void)
|
9 | {
|
10 | teste();
|
11 | SCB->VTOR = NVIC_VectTab_FLASH | (0x2000 & (uint32_t)0x1FFFFF80);
|
12 | teste();
|
13 | NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);
|
STM32F103RC
Die Routine teste(); wird angesprungen, "SCB->VTOR" wird auch
beschrieben, das zweite teste(); wird auch gemacht.
der Aufruf:
NVIC_SetVectorTable();
landet sofort in der HardFaultException.
Das Programm hat schon mal funktioniert und jetzt nach 3 Jahren wollte
ich es anpassen und neu einspielen. Seither hat sich der Compiler und
Eclipse und die Segger Firmware geändert.
Aber irgendwie glaube ich fest daran, dass der Fehler vor dem Computer
sitzt. Aber ich komme nicht drauf, nach was ich noch suchen sollte.
Compiler schreibt keine Fehler/Warnungen, Übersetzt mit -O0.
Hat jemand einen Tipp für mich was ich noch prüfen könnte?
Grüße Markus