Hi, void SIG_OUTPUT_COMPARE1A( void ) _attribute_ ( ( signal, naked ) ); void SIG_OUTPUT_COMPARE1A( void ) { vPortYieldFromTick(); asm volatile ( "reti" ); } die attributes werden vom Compiler hartnäckig ignoriert. Woran liegt's? wer kann helfen? Gruß!!!
signal und naked zugleich sind IMHO widersprüchlich. Mit signal weist du den Compiler an einen Prolog/Epilog passend für eine Signalroutine zu erzeugen und mit naked weist du ihn an den Prolog/Epilog wegzustrippen... Entscheide dich ;-)
Hallo, Er ignoriert die Attributes auch wenn sie einzeln sind. /* * Manual context switch. The first thing we do is save the registers * so we can use a naked attribute. */ void vPortYield( void ) __attribute__((naked)); void vPortYield( void ) { portSAVE_CONTEXT(); vTaskSwitchContext(); portRESTORE_CONTEXT(); // asm volatile ( "l.rfe" ); }
hallo Jorg, meintest du mit Beweise das? /var/vob/hajorp/orpsoc/vob/units/orp-gcc/bin/or32-uclinux-gcc -c -I/include -DOR1K -Wall -Wstrict-prototypes -Werror-implicit-function-declaration -fomit-frame-pointer -fno-strength-reduce -O2 -g -pipe -fno-builtin -msoft-mul -msoft-div -nostdlib ../portable/port.c ../portable/port.c:57: warning: `naked' attribute directive ignored ../portable/port.c:58: warning: `naked' attribute directive ignored . . . Gruß
Welche Compilerversion verwendest du? 'naked' kenne ich für ARM und AVR Targets. Dein Target ist OpenRISC 1000? Ist das naked attribute in diese Toolchain überhaupt eingebaut? http://www.opencores.org/projects.cgi/web/or1k/gnu_toolchain_port
Stefan wrote: > Welche Compilerversion verwendest du? 'naked' kenne ich für ARM und AVR > Targets. > > Dein Target ist OpenRISC 1000? Ist das naked attribute in diese > Toolchain überhaupt eingebaut? > > http://www.opencores.org/projects.cgi/web/or1k/gnu_toolchain_port Wenn nicht, wo kann man es sehen und wie kann man es da einbauen? Die version ist 2.95.3, das Target ist OpenRISC 1000 bzw. 1200
Wenn du es im Manual nicht findest, kann du auch das Developer-Team fragen. Per Email direkt oder über die Mailing List oder das Forum... Mit Version 2.95.3 solltest du dort aber nicht mehr antreten ;-) Unter dem aufgeführten Link sind sie beim gcc bereits bei Versionsnummer 3.4.4
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.