µVision4 trollt mich

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

µVision4 trollt mich

Beitrag von Nicki »

Hi,
µVision4 oder dessen Compiler ist sich offenbar zu fein, mal eben ein NOP in ein Programm einzubauen (for-Schleife, um auf andere Hardware bei deren Reset zu warten).
(Dieses Programm ist definitiv nicht die 7k5€ wert, die der Hersteller dafür afaik aufruft...)
Bei

Code: Alles auswählen

	for (volatile int i = 0; i < 0x4fff; i++) {
		__asm__ volatile("nop");
	}
bekomme ich ein

Code: Alles auswählen

error:  #1113: Inline assembler not permitted when generating Thumb code
Google hat mir bisher nur hilfloses Herumgeeiere geliefert.

Kennt jemand einen simplen Workaround?
Zuletzt geändert von Nicki am Fr 28. Feb 2014, 02:53, insgesamt 1-mal geändert.
bastelheini
Beiträge: 1663
Registriert: So 11. Aug 2013, 13:55

Re: Inline assembler vs. thumb code: µVision4 trollt mich

Beitrag von bastelheini »

NOP direkt als Befehl geht wohl nicht?

http://infocenter.arm.com/help/index.js ... fcggi.html
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: Inline assembler vs. thumb code: µVision4 trollt mich

Beitrag von Nicki »

Habe ich noch nicht ausprobiert.
EDIT: scheint zu funktionieren.
Statt das Programm in ein bestehendes hineinzubasteln versuche ich gerade, ein neues Projekt mit dem Krempel hochzuziehen, klappt einigermaßen, wäre da nicht die Unsitte, Dateien außerhalb des Programmordners einzubauen, momentan darf ich "sys/stat.h" hinterherlaufen :evil:
...die unauffindbar bleibt.
Wer verbricht so einen Unfug?
Da vergeht einem doch jegliche Motivation bei :evil:

CooCox ist keinen Deut besser:
Bild->zoom
Toll, du mich auch - für dumm verkaufen kann ich mich selber!

Heute habe ich keinen Bock mehr, was ne Zeitverschwendung, furchtbar das :evil:
Benutzeravatar
Fritzler
Beiträge: 12600
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: µVision4 trollt mich

Beitrag von Fritzler »

Sieht aus als wär dein Makefile im Eimer und findet einiges nicht?
Der non-eabi is eigentlich ganz gut.
Warum bist du überhaupt im Thumbcode Mode?


Wenn inline ASM nicht eht, machste eben ne externe Assemblerfunktion in zB einer foo.s
Da schreibste dann rein:
.globl noppel
noppel:
orr r0, r0 ,r0
mov pc, lr

Oder direkt das Busywait in asm schreiben mit Parameterübergabe (Aufruf delay(unsigned counts);):
.globl delay
delay:
CMP R0, #0 //R0 schon 0?
ADDNE R0, #-1 //i--
BNE delay //schleifensprung
MOV PC, LR
Benutzeravatar
Kaputnik
Beiträge: 157
Registriert: Sa 15. Feb 2014, 06:54
Wohnort: Bayern

Re: µVision4 trollt mich

Beitrag von Kaputnik »

Hat der Compiler deine NOPs wegoptimiert ?
Wenn das der Fall wäre, einfach mal Optimierung abschalten.
Ansonsten kommt mir eine Schleife mit NOPs als Delay furchtbar unelegant vor, gibts da keine "delay/sleep" Funktion/Makro oder sowas ?
Benutzeravatar
Fritzler
Beiträge: 12600
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: µVision4 trollt mich

Beitrag von Fritzler »

Kaputnik hat geschrieben:Ansonsten kommt mir eine Schleife mit NOPs als Delay furchtbar unelegant vor, gibts da keine "delay/sleep" Funktion/Makro oder sowas ?
Jetz rate mal was diese intern macht :lol:
Laut der Fehlermeldung opmtimiert er auch nicht weg, sondern weigert sich allgemein gegen inline ASM
Benutzeravatar
Lukas
Beiträge: 157
Registriert: Mo 12. Aug 2013, 18:45

Re: µVision4 trollt mich

Beitrag von Lukas »

Cluster One
Beiträge: 177
Registriert: Mo 12. Aug 2013, 03:06
Wohnort: nähe Minden (Ostwestfalen)

Re: µVision4 trollt mich

Beitrag von Cluster One »

Hallo,

wenn eine Delayfunktion nicht exisitert oder du was genau vorhersagbares brauchst, dann würde ich an der Stelle einfach einen Timer losschicken und auf ein Timerflag warten. (Sofern ein Timer frei ist)

Gruß

Cluster One

PS: Wenn man extra für mehr Leistung schon einen ARM-Prozzi wählt, dann halte ich das Abschalten der Optimierung für eine schlechte Idee ...
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: µVision4 trollt mich

Beitrag von Nicki »

Die hatte ich eigentlich aktiviert...
Ich sach ja, der Kram macht was er will ._.
Benutzeravatar
Lukas
Beiträge: 157
Registriert: Mo 12. Aug 2013, 18:45

Re: µVision4 trollt mich

Beitrag von Lukas »

Nicki hat geschrieben:Ich sach ja, der Kram macht was er will ._.
eher nicht. nein ;)
ruhig durchatmen
zeig mal was du hast. compiler flags, hardware, was hast du schon probiert(mit welchen fehlern),...
Dieses Programm ist definitiv nicht die 7k5€ wert, die der Hersteller dafür afaik aufruft...
armcc kostet 7,5k€?? µVision is hier unschuldig
bastelheini
Beiträge: 1663
Registriert: So 11. Aug 2013, 13:55

Re: µVision4 trollt mich

Beitrag von bastelheini »

Ich nutz zur Zeit nur noch EM::Blocks, da geht alles ohne großes gefrickel...das is schön sag ich dir:)
Benutzeravatar
Chaoskreator
Beiträge: 943
Registriert: Mo 12. Aug 2013, 20:58
Wohnort: 92xxx

Re: µVision4 trollt mich

Beitrag von Chaoskreator »

Sehr interessant!
Da ich Code::Blocks kenne und mag, sollte ich mir durchaus auch mal EM::Blocks zu Gemüte führen.
Vielleicht kann ich so endlich mal vom ressourcenfressenden Atmel Studio wegkommen. ;)
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: µVision4 trollt mich

Beitrag von Nicki »

Lukas hat geschrieben: zeig mal was du hast. compiler flags, hardware, was hast du schon probiert(mit welchen fehlern),...
Ich versuche, die I2S-DAC-Platine aus einem DVD-Player sinnvoll mit einem STM32f4Discovery zu einem MP3-Player zu verfrickeln, der schneller zwischen den Dateien wechseln kann als der verbuggte Yatour-Müll.

Code: Alles auswählen

-mcpu=cortex-m4; -mthumb; -Wall; -ffunction-sections; -g; -O3; -std=c99; -DSTM32F407VG; -DSTM32F4XX; -I.; 
c99 habe ich ausgewählt, damit er über die Variablendeklarationen nach executable statements nicht meckert (als würde mir auf DEM Prozessor mit sowas der Speicher knapp :? ).
Probiert habe ich noch nicht wunders viel.
armcc kostet 7,5k€?? µVision is hier unschuldig
Guckstu da: http://elmicro.com/de/keilarm.html
bastelheini
Beiträge: 1663
Registriert: So 11. Aug 2013, 13:55

Re: µVision4 trollt mich

Beitrag von bastelheini »

Was erwartest du? Gewerbliche Prog. Software kostet halt ordentlich, die wird halt nicht aus dem inet gezogen;)
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: µVision4 trollt mich

Beitrag von Nicki »

Bild->zoom
em:blocks stellt sich auch dumm :?
Das Hauptverzeichnis habe ich ihm schon bei den build options angegeben...
Oder muss ich da auch jeden Unterordner reinhacken?!
bastelheini
Beiträge: 1663
Registriert: So 11. Aug 2013, 13:55

Re: µVision4 trollt mich

Beitrag von bastelheini »

Benutzeravatar
Lukas
Beiträge: 157
Registriert: Mo 12. Aug 2013, 18:45

Re: µVision4 trollt mich

Beitrag von Lukas »

probier mal: --apcs=interwork
bzw für gcc: -mthumb-interwork

ich kann leider den fehler bei mir nicht reproduzieren. im anhang ist ein µVision projekt mit funktionierendem nop(project file im MDK-ARM ordner)
das problem liegt aber beim compiler und nicht bei der IDE

lg
lukas
Dateianhänge
temp.zip
(77.55 KiB) 30-mal heruntergeladen
Benutzeravatar
Nicki
Beiträge: 3128
Registriert: So 11. Aug 2013, 20:16
Wohnort: wo Mosel und Rhein sich treffen

Re: µVision4 trollt mich

Beitrag von Nicki »

Das Nop akzeptiert er schon.
Nur muss ich ihm noch klarmachen, wo welche Dateien sind, was momentan eher eine Fleißarbeit ist.
Antworten