attribute

Gast #425437
Lesenswert?

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 ;-)
#425643
Lesenswert?

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" );
}

#425675
Lesenswert?

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ß
#426232
Lesenswert?

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
Gast #426289
Lesenswert?

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

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