Ich bin einen Schritt weiter. Zwischen dem Code von W.S. und den
aktuellen Compilern (verwende Crossworks) liegt schon etwas Zeit. Hier
hat der aktuellere Compiler das Nop() wohl soweit gekillt oder
reduziert, dass das der Fehler war. Hab das jetzt mal so geändert:
1 | void Nop (dword count)
|
2 | {
|
3 | count<<=2;
|
4 | // Delay loop for Cortex M3 thumb2
|
5 | asm volatile
|
6 | (
|
7 | // Load loop count to register
|
8 | " mov r3, %[loops]\n"
|
9 | " .balign 8\n"
|
10 | "loop: subs r3, #1\n"
|
11 | " bne loop\n\n"
|
12 |
|
13 | : [loops] "r" (count) // Input registers
|
14 | : "r3" // clobbered registers
|
15 | );
|
16 |
|
17 | // while (count) --count;
|
18 | }
|
Was ich noch vergessen habe: Danke W.S. für den Code, der doch
wesentlich übersichtlicher ist als das was sonst so fuer den STM32F103
im Umlauf ist.