Hallo,
Meine Programmstruktur sieht folgendermaßen aus:
1 | int main(void)
|
2 | {
|
3 | //init clocks, flash, timer, IRQs, USART etc.
|
4 | Init();
|
5 |
|
6 | if(usereingabe == 1)
|
7 | {
|
8 | //-> start zweites programm aus dem flash
|
9 | jump-to-app2();
|
10 | }
|
11 | else
|
12 | {
|
13 | //do some other stuff
|
14 | }
|
15 |
|
16 | while(1);
|
17 | }
|
Wenn die Applikation2 aufgerufen wird (jump-to-app2();), wird wiederum
die Init() durchgeführt - Initialisierung der Clocks, Flash, Timer etc.;
Somit werden in diesem Fall z.B. die Timer 2x initialisiert - weil ich
sie im zweiten Programm benötige genauso wie im ersten, wenn die
else-Anweisung ausgeführt wird.
Kann das zu Schwierigkeiten führen, wenn praktisch dann 2x der Timer4
vorhanden ist, aber mit verschiedenen Interrupt-Adressen? Bzw. wäre es
besser im ersten Programm nur die Clocks und den Flash-Zugriff zu
realisieren und Timer, UARTs etc. erst in der else-Anweisung zu
initialisieren?
Als Prozessor setze ich einen STM32F103 ein.
Gruß
Johannes