Hi,
ich bin dabei vom ARM7 zum Cortex M3 umsteigen. Dazu habe ich mir einen
STM32F103 ausgesucht.
Mein Problem ist, dass ich keine lokalen Variablen anlegen kann. Diese
haben immer den Wert 0 und behalten auch immer den Wert 0.
Damit starten die Probleme schon in meinem Startup-Code:
1 | /* stm32 reset code */
|
2 | void ResetISR(void)
|
3 | {
|
4 | unsigned long *pSrc, *pDest;
|
5 |
|
6 | /* copy the data segment initializers from flash to SRAM */
|
7 | pSrc = &_etext;
|
8 | for(pDest = &__data_start; pDest < &_edata; ) {
|
9 | *pDest++ = *pSrc++;
|
10 | }
|
11 |
|
12 | /* zero fill the bss segment */
|
13 | for(pDest = &__bss_start__; pDest < &__bss_end__; ) {
|
14 | *pDest++ = 0;
|
15 | }
|
16 |
|
17 | /* call stm32 lib startup */
|
18 | libdebug();
|
19 |
|
20 | /* call the application entry point */
|
21 | main();
|
22 | }
|
Die Variablen "pSrc" und "pDest" sind immer 0 und bleiben das auch,
obwohl ihnen eigentlich ein Wert zugewiesen wird und sie inkrementiert
werden. Wenn ich die Variablen "static" mache funktionieren sie,
bekommen einen Wert und werden auch inkrementiert.
Hat jemand eine Ahnung woran dies liegen kann?
Ich arbeite mit Codeblocks, gcc usw.. Den Code und das Linkerskript habe
ich von Anglia kopiert. Deren Toolchain kann ich leider nicht nutzen, da
ich bisher noch keinen Key bekommen habe.