STM32 Coocox Error: registers may not be the same -- `strexb r3,r2,[r3]'

Gast #3501246
Lesenswert?

Hallo,

ich versuche den Einstieg in die Welt der STM32 mit Coocox IDE.
Meine Installierte Version ist 1.75 , also die aktuellste.

Wenn ich ein neues Projekt anlege und mit minimalquelltext kompiliere, 
erscheinen folgende Fehler:

  C:\Users\egg\AppData\Local\Temp\cc9qKp3w.s:772 Error: registers may 
not be the same -- `strexb r3,r2,[r3]'
  C:\Users\egg\AppData\Local\Temp\cc9qKp3w.s:818:Error: registers may 
not be the same -- `strexh r3,r2,[r3]'


Was mache ich falsch ?


Gruß
ernst
Gast #3501287
Lesenswert?

Dies hier abändern (das & vor dem r muss hin), dann sollte es gehen:

File: cmsis/core_cm3.c

(line 736) __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" 
(addr), "r" (value) );

(line 753) __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" 
(addr), "r" (value) );
Gast #3501302
Lesenswert?

Danke! Läuft!
Ich habe es jetzt in den entsprechenden Files in der Solution geändert.

Wenn ich jetzt ein neues Projekt anlege, geht der Spaß von vorne los.

Woher holt Coocox sich core_cm3.c dann kann ich es direkt an der Quelle 
anpassen.


Danke
Gast #3501822
Lesenswert?

>Das Problem mit LDREX/STREX in CMSIS zieht sich schon länger hin:
>Beitrag "Re: Welcher Cortex M3?"

Und wozu braucht man den Kram? Irgendwie hatte ich damit seit drei
Jahren auf M3 noch keine Probleme.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren