Hello,

 

I cannot compile __bic_SR_register_on_exit() using mspgcc version 3.2.3:

My source file:

 

#include <iomacros.h>

 

 

#define USCI_A0_VECTOR              114

#define OSCOFF (1<<5)

 

extern "C" interrupt( USCI_A0_VECTOR) isr_func(void) 

{

               __bic_SR_register_on_exit( OSCOFF );

}

 

 

It is probably caused by not allowed trial of merging __FUNCTION__ with
other string

in macro that defines __bic_SR_register (in iomacros.h):

 

#define __bic_SR_register_on_exit(x) \

    __asm__ __volatile__ ( \

        "bic %0, .L__FrameOffset_" __FUNCTION__ "(r1)" \

        : : "ir" ((uint16_t) x) \

    )

 

 

Is it __FUNCTION__ a literal or "const char *" ?

 

Other information:

1.      host operating system: Windows XP

2.      prebuild installer: mspgcc-20081230.exe

3.      mcu = msp430f5438

4.      source compiled by following line:

msp430-gcc -c -v  -mmcu=msp430x5438 -g -O3 -Wall -Wcast-align -Wcast-qual
-Wimplicit -Wmissing-declarations -Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wredundant-decls -Wreturn-type -Wshad

ow -Wstrict-prototypes -Wswitch -Wunused -I. -Ie:/mspgcc/msp430/include
-fno-exceptions -fno-rtti -Wa,-adhlns=bic_bug.c  bic_bug.c -o bic_bug.o

Reading specs from e:\mspgcc\bin\..\lib\gcc-lib\msp430\3.2.3\specs

Configured with: ./configure --target=msp430
--prefix=c:/work/mspgcc/sf/packaging/build/installed --disable-multilib
--disable-libc --disable-libssp --disable-intl --disable-libiberty
--with-gcc --wit

h-gnu-ld --with-gnu-as --with-stabs --disable-shared --disable-threads
--disable-win32-registry --disable-nls --enable-languages=c,c++

Thread model: single

gcc version 3.2.3

 e:\mspgcc\bin\..\lib\gcc-lib\msp430\3.2.3\cc1.exe -lang-c -v -I.
-Ie:/mspgcc/msp430/include -iprefix
e:\mspgcc\bin\..\lib/gcc-lib/msp430\3.2.3\ -D__GNUC__=3 -D__GNUC_MINOR__=2
-D__GNUC_PATCHLEVEL__=3

 -D__GXX_ABI_VERSION=102 -DMSP430 -D__MSP430__ -D__MSP430 -D__OPTIMIZE__
-D__STDC_HOSTED__=1 -DMSP430_HAS_HW_MUL -D__MSP430_5438__ -D__MSP430X2__
-DMSP430_HAS_HWMUL -D__SIZE_TYPE__=unsigned int -D__PT

RDIFF_TYPE__=int -D__INT_MAX__=32767 bic_bug.c -quiet -dumpbase bic_bug.c
-mmcu=msp430x5438 -g -O3 -Wall -Wcast-align -Wcast-qual -Wimplicit
-Wmissing-declarations -Wmissing-prototypes -Wnested-extern

s -Wpointer-arith -Wredundant-decls -Wreturn-type -Wshadow
-Wstrict-prototypes -Wswitch -Wunused -version -fno-exceptions -fno-rtti -o
C:\DOCUME~1\internet\LOCALS~1\Temp/ccRCHztf.s

GNU CPP version 3.2.3 (cpplib) (GNU assembler syntax)

GNU C version 3.2.3 (msp430)

        compiled by GNU C version 3.4.5 (mingw-vista special r3).

ignoring nonexistent directory "e:/mspgcc/msp430/sys-include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/includ
e"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/../../
../../msp430/sys-include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/../../
../../msp430/include"

#include "..." search starts here:

#include <...> search starts here:

 .

 e:/mspgcc/msp430/include

 e:/mspgcc/lib/gcc-lib/msp430/3.2.3/include

 e:/mspgcc/msp430/include

End of search list.

bic_bug.c:7: syntax error before string constant

make: *** [bic_bug.o] Error 1

 

5.      running preprocessor:

 

msp430-gcc -E -v  -mmcu=msp430x5438 -g -O3 -Wall -Wcast-align -Wcast-qual
-Wimplicit -Wmissing-declarations -Wmissing-prototypes -Wnested-externs
-Wpointer-arith -Wredundant-decls -Wreturn-type -Wshad

ow -Wstrict-prototypes -Wswitch -Wunused -I. -Ie:/mspgcc/msp430/include
-fno-exceptions -fno-rtti -Wa,-adhlns=bic_bug.c  bic_bug.c -o bic_bug.i

Reading specs from e:\mspgcc\bin\..\lib\gcc-lib\msp430\3.2.3\specs

Configured with: ./configure --target=msp430
--prefix=c:/work/mspgcc/sf/packaging/build/installed --disable-multilib
--disable-libc --disable-libssp --disable-intl --disable-libiberty
--with-gcc --wit

h-gnu-ld --with-gnu-as --with-stabs --disable-shared --disable-threads
--disable-win32-registry --disable-nls --enable-languages=c,c++

Thread model: single

gcc version 3.2.3

 e:\mspgcc\bin\..\lib\gcc-lib\msp430\3.2.3\cpp0.exe -lang-c -v -I.
-Ie:/mspgcc/msp430/include -iprefix
e:\mspgcc\bin\..\lib/gcc-lib/msp430\3.2.3\ -D__GNUC__=3 -D__GNUC_MINOR__=2
-D__GNUC_PATCHLEVEL__=

3 -D__GXX_ABI_VERSION=102 -DMSP430 -D__MSP430__ -D__MSP430 -D__OPTIMIZE__
-D__STDC_HOSTED__=1 -DMSP430_HAS_HW_MUL -D__MSP430_5438__ -D__MSP430X2__
-DMSP430_HAS_HWMUL -D__SIZE_TYPE__=unsigned int -D__P

TRDIFF_TYPE__=int -D__INT_MAX__=32767 bic_bug.c -o bic_bug.i -Wall
-Wcast-align -Wcast-qual -Wimplicit -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wredundant-decls -W

return-type -Wshadow -Wstrict-prototypes -Wswitch -Wunused

GNU CPP version 3.2.3 (cpplib) (GNU assembler syntax)

ignoring nonexistent directory "e:/mspgcc/msp430/sys-include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/includ
e"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/../../
../../msp430/sys-include"

ignoring nonexistent directory
"c:/work/mspgcc/sf/packaging/build/installed/lib/gcc-lib/msp430/3.2.3/../../
../../msp430/include"

#include "..." search starts here:

#include <...> search starts here:

 .

 e:/mspgcc/msp430/include

 e:/mspgcc/lib/gcc-lib/msp430/3.2.3/include

 e:/mspgcc/msp430/include

End of search list.

 

6.      Preprocesor output:

 

# 1 "bic_bug.c"

# 1 "<built-in>"

# 1 "<command line>"

# 1 "bic_bug.c"

# 1 "e:/mspgcc/msp430/include/iomacros.h" 1

# 34 "e:/mspgcc/msp430/include/iomacros.h"

# 1 "e:/mspgcc/msp430/include/sys/inttypes.h" 1

# 38 "e:/mspgcc/msp430/include/sys/inttypes.h"

typedef signed char int8_t;

typedef unsigned char uint8_t;

 

typedef int int16_t;

typedef unsigned int uint16_t;

 

typedef long int32_t;

typedef unsigned long uint32_t;

 

typedef long long int64_t;

typedef unsigned long long uint64_t;

 

 

 

 

typedef int16_t intptr_t;

typedef uint16_t uintptr_t;

# 35 "e:/mspgcc/msp430/include/iomacros.h" 2

# 2 "bic_bug.c" 2

 

 

 

 

 

extern "C" interrupt( 114) isr_func(void)

{

        __asm__ __volatile__ ( "bic %0, .L__FrameOffset_" __FUNCTION__
"(r1)" : : "ir" ((uint16_t) (1<<5)) );

}

 

#include <iomacros.h>


#define USCI_A0_VECTOR  114
#define OSCOFF  (1<<5)

extern "C" interrupt( USCI_A0_VECTOR) isr_func(void) 
{
        __bic_SR_register_on_exit( OSCOFF );
}
# 1 "bic_bug.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "bic_bug.c"
# 1 "e:/mspgcc/msp430/include/iomacros.h" 1
# 34 "e:/mspgcc/msp430/include/iomacros.h"
# 1 "e:/mspgcc/msp430/include/sys/inttypes.h" 1
# 38 "e:/mspgcc/msp430/include/sys/inttypes.h"
typedef signed char int8_t;
typedef unsigned char uint8_t;

typedef int int16_t;
typedef unsigned int uint16_t;

typedef long int32_t;
typedef unsigned long uint32_t;

typedef long long int64_t;
typedef unsigned long long uint64_t;




typedef int16_t intptr_t;
typedef uint16_t uintptr_t;
# 35 "e:/mspgcc/msp430/include/iomacros.h" 2
# 2 "bic_bug.c" 2





extern "C" interrupt( 114) isr_func(void)
{
        __asm__ __volatile__ ( "bic %0, .L__FrameOffset_" __FUNCTION__ "(r1)" : 
: "ir" ((uint16_t) (1<<5)) );
}

Reply via email to