Hi Dmitry & Others,
I thought I would have a look at the state of gcc-3.4.3 with a view of trying to find some
of the problems now that I had some free time.
When I compile the attached pre-processed file I get the following error,
[peter_...@sts-43454 AWS2003.1.1.C011]$ msp430-gcc -O2 -DTARGET -mmcu=msp430x149 -g
-Wno-main -Wall -Werror -Wno-format -I./include -Ibl/include -Iblbl/include
-Iblblbl/include -c blbl/lib/flash/flash.c -o lib/flash/msp430x149/flash.o --save-temps
blbl/lib/flash/flash.c: In function `flashLocked':
blbl/lib/flash/flash.c:125: internal compiler error: Segmentation fault
A seg fault looks like a bad thing, but might not be that hard to track down(?)
Does anyone know where I should start looking?
Regards,
--
Peter Jansen
STS
Australian Antarctic Division
# 1 "blbl/lib/flash/flash.c"
# 1 "/home/peter_jan/aegis/AWS2003.1.1.C011//"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "blbl/lib/flash/flash.c"
# 9 "blbl/lib/flash/flash.c"
# 1 "blbl/include/stdio.h" 1
# 32 "blbl/include/stdio.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 1 3 4
# 151 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 213 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 3 4
typedef unsigned int size_t;
# 325 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 3 4
typedef int wchar_t;
# 33 "blbl/include/stdio.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/types.h" 1 3
# 36 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/types.h" 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/cdefs.h" 1 3
# 37 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/types.h" 2
3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/inttypes.h"
1 3
# 36
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/inttypes.h" 3
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;
# 38 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/sys/types.h" 2
3
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef uint8_t u_int8_t;
typedef uint16_t u_int16_t;
typedef uint32_t u_int32_t;
typedef uint64_t u_int64_t;
typedef u_int64_t u_quad_t;
typedef int64_t quad_t;
typedef quad_t * qaddr_t;
typedef char * caddr_t;
typedef const char * c_caddr_t;
typedef volatile char *v_caddr_t;
typedef u_int32_t fixpt_t;
typedef u_int32_t gid_t;
typedef u_int32_t in_addr_t;
typedef u_int16_t in_port_t;
typedef u_int32_t ino_t;
typedef long key_t;
typedef u_int16_t mode_t;
typedef u_int16_t nlink_t;
typedef quad_t rlim_t;
typedef int32_t segsz_t;
typedef int32_t swblk_t;
typedef int32_t ufs_daddr_t;
typedef int32_t ufs_time_t;
typedef u_int32_t uid_t;
# 34 "blbl/include/stdio.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/include/stdarg.h" 1 3 4
# 43 "/usr/local/lib/gcc/msp430/3.4.3/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 "/usr/local/lib/gcc/msp430/3.4.3/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 37 "blbl/include/stdio.h" 2
# 47 "blbl/include/stdio.h"
# 1 "/usr/local/msp430/include/stdio.h" 1
# 32 "/usr/local/msp430/include/stdio.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 1 3 4
# 33 "/usr/local/msp430/include/stdio.h" 2
# 45 "/usr/local/msp430/include/stdio.h"
int __attribute__((format (printf, 2, 3))) uprintf(int (*func)(int c), const
char *fmt, ...);
int __attribute__((format (printf, 3, 4))) snprintf (char *buf, size_t size,
const char *fmt, ...);
int __attribute__((format (printf, 2, 3))) sprintf (char *buf, const char *fmt,
...);
int __attribute__((format (printf, 1, 2))) printf(const char *string, ...);
int vuprintf(int (*func)(int c), const char *fmt0, va_list ap);
int vsnprintf(char *dest, size_t maxlen, const char *string, va_list ap);
int vsprintf(char *dest, const char *string, va_list ap);
int vprintf(const char *string, va_list ap);
int puts(const char *s);
int putchar(int c);
# 48 "blbl/include/stdio.h" 2
# 10 "blbl/lib/flash/flash.c" 2
# 1 "./include/aws.h" 1
# 12 "./include/aws.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdint.h" 1 3
# 13 "./include/aws.h" 2
# 45 "./include/aws.h"
extern unsigned int instrumentErrorCode;
# 248 "./include/aws.h"
struct DCOTuneStruct
{
volatile uint8_t u8Control;
volatile uint16_t u16Ticks;
volatile uint16_t u16Last;
volatile uint16_t u16Period;
volatile int16_t i16Error;
volatile int16_t i16NewDCO;
volatile uint8_t u8Rsel;
};
extern struct DCOTuneStruct DCOTune;
extern volatile unsigned int uiSleep;
# 12 "blbl/lib/flash/flash.c" 2
# 1 "blbl/include/ucosii.h" 1
# 14 "blbl/include/ucosii.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/string.h" 1 3
# 33 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/string.h" 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 1 3 4
# 34 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/string.h" 2 3
extern void *memccpy(void *, const void *, int, size_t);
extern void *memchr(const void *, int, size_t);
extern int memcmp(const void *, const void *, size_t);
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern void *memset(void *, int, size_t);
extern char *strcat(char *, const char *);
extern char *strchr(const char *, int);
extern int strcmp(const char *, const char *);
extern char *strcpy(char *, const char *);
extern int strcasecmp(const char *, const char *);
extern size_t strlen(const char *);
extern char *strlwr(char *);
extern char *strncat(char *, const char *, size_t);
extern int strncmp(const char *, const char *, size_t);
extern char *strncpy(char *, const char *, size_t) ;
extern int strncasecmp(const char *, const char *, size_t);
extern size_t strnlen(const char *, size_t);
extern char *strrchr(const char *, int);
extern char *strrev(char *);
extern char *strstr(const char *, const char *);
extern char *strupr(char *);
extern int bcmp(const void *b1, const void *b2, size_t length);
extern char *strsep(char **, const char *);
extern void bcopy(const void *, void *, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern void * memset(void *, int, size_t);
extern void bzero(void *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern char * strdup(const char *);
extern void swab(const void *, void *, size_t);
# 15 "blbl/include/ucosii.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/ctype.h" 1 3
extern inline int isalpha(int c) { return ((c>='A'&&c<='Z')||(c>='a'&&c<='z'));
}
extern inline int iscntrl(int c) { return ((c>=0&&c<=27)||c==127);}
extern inline int isdigit(int c) { return (((c)>='0')&&((c)<='9'));}
extern inline int isalnum(int c) { return (isalpha(c)||isdigit(c));}
extern inline int isspace(int c) { return ((c) == ' ' || ((c) >= '\t' && (c) <=
'\r'));}
extern inline int isascii(int c) { return (((c) & ~0x7f) == 0);}
extern inline int isupper(int c) { return ((c) >= 'A' && (c) <= 'Z');}
extern inline int islower(int c) { return ((c) >= 'a' && (c) <= 'z');}
extern inline int isprint(int c) { return (c>23 && c<127);}
extern inline int isblank(int c) { return (c=='\t' || c==' ');}
extern inline int isxdigit(int c)
{
return (isdigit(c)|| ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f'));
}
extern inline int ispunct(int c)
{
return (isprint (c) && !islower(c) && !isupper(c) && c != ' ' && !isdigit(c));
}
extern inline int toupper(int c) { return ((c) - 0x20 * (((c) >= 'a') && ((c)
<= 'z')));}
extern inline int tolower(int c) { return ((c) + 0x20 * (((c) >= 'A') && ((c)
<= 'Z'))) ;}
extern inline int toascii(int c) { return (c&0x7f);}
# 16 "blbl/include/ucosii.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdlib.h" 1 3
# 32 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdlib.h" 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/include/stddef.h" 1 3 4
# 33 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdlib.h" 2 3
# 52 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdlib.h" 3
extern void exit(int) __asm__("__stop_progExec__") __attribute__((__const__));
typedef struct {
int quot;
int rem;
} div_t;
extern div_t div(int num, int denom);
typedef struct {
long quot;
long rem;
} ldiv_t;
extern ldiv_t ldiv(long num, long denom);
extern __inline__ int abs(int __x) __attribute__((__const__));
extern __inline__ int
abs(int __x)
{
return (__x < 0) ? -__x : __x;
}
extern __inline__ long labs(long __x) __attribute__((__const__));
extern __inline__ long
labs(long __x)
{
return (__x < 0) ? -__x : __x;
}
long strtol(const char *, char **, int);
unsigned long strtoul(const char *, char **, int);
int atoi(const char *p);
long atol(const char *p);
void *malloc(size_t size);
void free (void *p);
void * bsearch(const void *, const void *, size_t, size_t, register int
(*compar)(const void *, const void *));
# 17 "blbl/include/ucosii.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/signal.h" 1 3
# 33 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/signal.h" 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/iomacros.h" 1 3
# 124 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/iomacros.h" 3
extern void __bis_sr_irq(int);
extern void __bic_sr_irq(int);
extern void *__get_frame_address(void);
# 34 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/signal.h" 2 3
# 19 "blbl/include/ucosii.h" 2
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h" 1
3
# 26 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h" 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/mpy.h" 1
3
# 18 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/mpy.h" 3
volatile unsigned int MPY asm("0x0130");
volatile unsigned int MPYS asm("0x0132");
volatile unsigned int MAC asm("0x0134");
volatile unsigned int MACS asm("0x0136");
volatile unsigned int OP2 asm("0x0138");
volatile unsigned int RESLO asm("0x013A");
volatile unsigned int RESHI asm("0x013C");
volatile unsigned int SUMEXT asm("0x013E");
# 27 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/gpio.h"
1 3
# 1
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/iostructures.h"
1 3
# 22
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/iostructures.h"
3
typedef union port {
volatile unsigned char reg_p;
volatile struct {
unsigned char __p0:1,
__p1:1,
__p2:1,
__p3:1,
__p4:1,
__p5:1,
__p6:1,
__p7:1;
} __pin;
} __attribute__ ((packed)) ioregister_t;
# 92
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/iostructures.h"
3
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t ifg;
ioregister_t ies;
ioregister_t ie;
ioregister_t sel;
} port1 asm("0x0020");
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t ifg;
ioregister_t ies;
ioregister_t ie;
ioregister_t sel;
} port2 asm("0x0028");
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t sel;
} port3 asm("0x0018");
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t sel;
} port4 asm("0x001c");
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t sel;
} port5 asm("0x0030");
struct {
ioregister_t in;
ioregister_t out;
ioregister_t dir;
ioregister_t sel;
} port6 asm("0x0034");
# 2 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/gpio.h"
2 3
# 101
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/gpio.h" 3
volatile unsigned char P1IN asm("0x0020");
volatile unsigned char P1OUT asm("0x0021");
volatile unsigned char P1DIR asm("0x0022");
volatile unsigned char P1IFG asm("0x0023");
volatile unsigned char P1IES asm("0x0024");
volatile unsigned char P1IE asm("0x0025");
volatile unsigned char P1SEL asm("0x0026");
volatile unsigned char P2IN asm("0x0028");
volatile unsigned char P2OUT asm("0x0029");
volatile unsigned char P2DIR asm("0x002A");
volatile unsigned char P2IFG asm("0x002B");
volatile unsigned char P2IES asm("0x002C");
volatile unsigned char P2IE asm("0x002D");
volatile unsigned char P2SEL asm("0x002E");
volatile unsigned char P3IN asm("0x0018");
volatile unsigned char P3OUT asm("0x0019");
volatile unsigned char P3DIR asm("0x001A");
volatile unsigned char P3SEL asm("0x001B");
volatile unsigned char P4IN asm("0x001C");
volatile unsigned char P4OUT asm("0x001D");
volatile unsigned char P4DIR asm("0x001E");
volatile unsigned char P4SEL asm("0x001F");
volatile unsigned char P5IN asm("0x0030");
volatile unsigned char P5OUT asm("0x0031");
volatile unsigned char P5DIR asm("0x0032");
volatile unsigned char P5SEL asm("0x0033");
volatile unsigned char P6IN asm("0x0034");
volatile unsigned char P6OUT asm("0x0035");
volatile unsigned char P6DIR asm("0x0036");
volatile unsigned char P6SEL asm("0x0037");
# 28 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/usart.h"
1 3
# 85
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/usart.h" 3
volatile unsigned char U0CTL asm("0x0070");
volatile unsigned char U0TCTL asm("0x0071");
volatile unsigned char U0RCTL asm("0x0072");
volatile unsigned char U0MCTL asm("0x0073");
volatile unsigned char U0BR0 asm("0x0074");
volatile unsigned char U0BR1 asm("0x0075");
volatile unsigned char U0RXBUF asm("0x0076");
volatile unsigned char U0TXBUF asm("0x0077");
volatile unsigned char UCTL asm("0x0070");
volatile unsigned char UTCTL asm("0x0071");
volatile unsigned char URCTL asm("0x0072");
volatile unsigned char UMCTL asm("0x0073");
volatile unsigned char UBR0 asm("0x0074");
volatile unsigned char UBR1 asm("0x0075");
volatile unsigned char RXBUF asm("0x0076");
volatile unsigned char TXBUF asm("0x0077");
volatile unsigned char UCTL0 asm("0x0070");
volatile unsigned char UTCTL0 asm("0x0071");
volatile unsigned char URCTL0 asm("0x0072");
volatile unsigned char UMCTL0 asm("0x0073");
volatile unsigned char UBR00 asm("0x0074");
volatile unsigned char UBR10 asm("0x0075");
volatile unsigned char RXBUF0 asm("0x0076");
volatile unsigned char TXBUF0 asm("0x0077");
volatile unsigned char UCTL_0 asm("0x0070");
volatile unsigned char UTCTL_0 asm("0x0071");
volatile unsigned char URCTL_0 asm("0x0072");
volatile unsigned char UMCTL_0 asm("0x0073");
volatile unsigned char UBR0_0 asm("0x0074");
volatile unsigned char UBR1_0 asm("0x0075");
volatile unsigned char RXBUF_0 asm("0x0076");
volatile unsigned char TXBUF_0 asm("0x0077");
# 253
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/usart.h" 3
volatile unsigned char U1CTL asm("0x0078");
volatile unsigned char U1TCTL asm("0x0079");
volatile unsigned char U1RCTL asm("0x007A");
volatile unsigned char U1MCTL asm("0x007B");
volatile unsigned char U1BR0 asm("0x007C");
volatile unsigned char U1BR1 asm("0x007D");
volatile unsigned char U1RXBUF asm("0x007E");
volatile unsigned char U1TXBUF asm("0x007F");
volatile unsigned char UCTL1 asm("0x0078");
volatile unsigned char UTCTL1 asm("0x0079");
volatile unsigned char URCTL1 asm("0x007A");
volatile unsigned char UMCTL1 asm("0x007B");
volatile unsigned char UBR01 asm("0x007C");
volatile unsigned char UBR11 asm("0x007D");
volatile unsigned char RXBUF1 asm("0x007E");
volatile unsigned char TXBUF1 asm("0x007F");
volatile unsigned char UCTL_1 asm("0x0078");
volatile unsigned char UTCTL_1 asm("0x0079");
volatile unsigned char URCTL_1 asm("0x007A");
volatile unsigned char UMCTL_1 asm("0x007B");
volatile unsigned char UBR0_1 asm("0x007C");
volatile unsigned char UBR1_1 asm("0x007D");
volatile unsigned char RXBUF_1 asm("0x007E");
volatile unsigned char TXBUF_1 asm("0x007F");
# 29 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/timera.h" 1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/timera.h" 3
volatile unsigned int TAIV asm("0x012E");
volatile unsigned int TACTL asm("0x0160");
volatile unsigned int TACCTL0 asm("0x0162");
volatile unsigned int TACCTL1 asm("0x0164");
volatile unsigned int TACCTL2 asm("0x0166");
volatile unsigned int TAR asm("0x0170");
volatile unsigned int TACCR0 asm("0x0172");
volatile unsigned int TACCR1 asm("0x0174");
volatile unsigned int TACCR2 asm("0x0176");
volatile unsigned int CCTL0 asm("0x0162");
volatile unsigned int CCTL1 asm("0x0164");
volatile unsigned int CCTL2 asm("0x0166");
volatile unsigned int CCR0 asm("0x0172");
volatile unsigned int CCR1 asm("0x0174");
volatile unsigned int CCR2 asm("0x0176");
# 30 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/timerb.h" 1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/timerb.h" 3
volatile unsigned int TBIV asm("0x011E");
volatile unsigned int TBCTL asm("0x0180");
volatile unsigned int TBCCTL0 asm("0x0182");
volatile unsigned int TBCCTL1 asm("0x0184");
volatile unsigned int TBCCTL2 asm("0x0186");
volatile unsigned int TBR asm("0x0190");
volatile unsigned int TBCCR0 asm("0x0192");
volatile unsigned int TBCCR1 asm("0x0194");
volatile unsigned int TBCCR2 asm("0x0196");
volatile unsigned int TBCCTL3 asm("0x0188");
volatile unsigned int TBCCTL4 asm("0x018A");
volatile unsigned int TBCCTL5 asm("0x018C");
volatile unsigned int TBCCTL6 asm("0x018E");
volatile unsigned int TBCCR3 asm("0x0198");
volatile unsigned int TBCCR4 asm("0x019A");
volatile unsigned int TBCCR5 asm("0x019C");
volatile unsigned int TBCCR6 asm("0x019E");
# 31 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/basic_clock.h"
1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/basic_clock.h"
3
volatile unsigned char DCOCTL asm("0x0056");
volatile unsigned char BCSCTL1 asm("0x0057");
volatile unsigned char BCSCTL2 asm("0x0058");
# 32 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/flash.h"
1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/flash.h" 3
volatile unsigned int FCTL1 asm("0x0128");
volatile unsigned int FCTL2 asm("0x012A");
volatile unsigned int FCTL3 asm("0x012C");
# 33 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/compa.h"
1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/compa.h" 3
volatile unsigned char CACTL1 asm("0x0059");
volatile unsigned char CACTL2 asm("0x005A");
volatile unsigned char CAPD asm("0x005B");
# 34 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/adc12.h"
1 3
# 18
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/adc12.h" 3
volatile unsigned int ADC12CTL0 asm("0x01A0");
volatile unsigned int ADC12CTL1 asm("0x01A2");
volatile unsigned int ADC12IFG asm("0x01A4");
volatile unsigned int ADC12IE asm("0x01A6");
volatile unsigned int ADC12IV asm("0x01A8");
typedef struct {
volatile unsigned
adc12sc:1,
enc:1,
adc12tovie:1,
adc12ovie:1,
adc12on:1,
refon:1,
r2_5v:1,
msc:1,
sht0:4,
sht1:4;
} __attribute__ ((packed)) adc12ctl0_t;
typedef struct {
volatile unsigned
adc12busy:1,
conseq:2,
adc12ssel:2,
adc12div:3,
issh:1,
shp:1,
shs:2,
cstartadd:4;
} __attribute__ ((packed)) adc12ctl1_t;
typedef struct {
volatile unsigned
bit0:1,
bit1:1,
bit2:1,
bit3:1,
bit4:1,
bit5:1,
bit6:1,
bit7:1,
bit8:1,
bit9:1,
bit10:1,
bit11:1,
bit12:1,
bit13:1,
bit14:1,
bit15:1;
} __attribute__ ((packed)) adc12xflg_t;
struct {
adc12ctl0_t ctl0;
adc12ctl1_t ctl1;
adc12xflg_t ifg;
adc12xflg_t ie;
adc12xflg_t iv;
} adc12 asm("0x01A0");
# 93
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/adc12.h" 3
volatile unsigned int ADC12MEM0 asm("0x0140");
volatile unsigned int ADC12MEM1 asm("0x0142");
volatile unsigned int ADC12MEM2 asm("0x0144");
volatile unsigned int ADC12MEM3 asm("0x0146");
volatile unsigned int ADC12MEM4 asm("0x0148");
volatile unsigned int ADC12MEM5 asm("0x014A");
volatile unsigned int ADC12MEM6 asm("0x014C");
volatile unsigned int ADC12MEM7 asm("0x014E");
volatile unsigned int ADC12MEM8 asm("0x0150");
volatile unsigned int ADC12MEM9 asm("0x0152");
volatile unsigned int ADC12MEM10 asm("0x0154");
volatile unsigned int ADC12MEM11 asm("0x0156");
volatile unsigned int ADC12MEM12 asm("0x0158");
volatile unsigned int ADC12MEM13 asm("0x015A");
volatile unsigned int ADC12MEM14 asm("0x015C");
volatile unsigned int ADC12MEM15 asm("0x015E");
# 132
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/adc12.h" 3
volatile unsigned char ADC12MCTL0 asm("0x0080");
volatile unsigned char ADC12MCTL1 asm("0x0081");
volatile unsigned char ADC12MCTL2 asm("0x0082");
volatile unsigned char ADC12MCTL3 asm("0x0083");
volatile unsigned char ADC12MCTL4 asm("0x0084");
volatile unsigned char ADC12MCTL5 asm("0x0085");
volatile unsigned char ADC12MCTL6 asm("0x0086");
volatile unsigned char ADC12MCTL7 asm("0x0087");
volatile unsigned char ADC12MCTL8 asm("0x0088");
volatile unsigned char ADC12MCTL9 asm("0x0089");
volatile unsigned char ADC12MCTL10 asm("0x008A");
volatile unsigned char ADC12MCTL11 asm("0x008B");
volatile unsigned char ADC12MCTL12 asm("0x008C");
volatile unsigned char ADC12MCTL13 asm("0x008D");
volatile unsigned char ADC12MCTL14 asm("0x008E");
volatile unsigned char ADC12MCTL15 asm("0x008F");
# 35 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
# 1
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/common.h" 1 3
# 71
"/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430/common.h" 3
volatile unsigned int WDTCTL asm("0x0120");
# 37 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h"
2 3
volatile unsigned char IE1 asm("0x0000");
# 48 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/msp430x14x.h" 3
volatile unsigned char IFG1 asm("0x0002");
volatile unsigned char ME1 asm("0x0004");
volatile unsigned char IE2 asm("0x0001");
volatile unsigned char IFG2 asm("0x0003");
volatile unsigned char ME2 asm("0x0005");
# 22 "blbl/include/ucosii.h" 2
# 1 "blbl/include/os_cpu.h" 1
# 39 "blbl/include/os_cpu.h"
typedef unsigned char BOOLEAN;
typedef unsigned char INT8U;
typedef signed char INT8S;
typedef unsigned int INT16U;
typedef signed int INT16S;
typedef unsigned long INT32U;
typedef signed long INT32S;
typedef float FP32;
typedef double FP64;
typedef unsigned int OS_STK;
typedef unsigned int OS_CPU_SR;
# 61 "blbl/include/os_cpu.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/io.h" 1 3
# 62 "blbl/include/os_cpu.h" 2
# 116 "blbl/include/os_cpu.h"
extern OS_STK *OSISRStkPtr;
OS_CPU_SR OSCPUSaveSR(void);
void OSCPURestoreSR(OS_CPU_SR cpu_sr);
# 25 "blbl/include/ucosii.h" 2
# 1 "blbl/include/os_cfg.h" 1
# 26 "blbl/include/ucosii.h" 2
# 249 "blbl/include/ucosii.h"
typedef struct os_event {
INT8U OSEventType;
INT8U OSEventGrp;
INT16U OSEventCnt;
void *OSEventPtr;
INT8U OSEventTbl[(((7 +1)) / 8 + 1)];
} OS_EVENT;
# 346 "blbl/include/ucosii.h"
typedef struct os_mutex_data {
INT8U OSEventTbl[(((7 +1)) / 8 + 1)];
INT8U OSEventGrp;
INT8U OSValue;
INT8U OSOwnerPrio;
INT8U OSMutexPIP;
} OS_MUTEX_DATA;
# 389 "blbl/include/ucosii.h"
typedef struct os_sem_data {
INT16U OSCnt;
INT8U OSEventTbl[(((7 +1)) / 8 + 1)];
INT8U OSEventGrp;
} OS_SEM_DATA;
# 403 "blbl/include/ucosii.h"
typedef struct os_stk_data {
INT32U OSFree;
INT32U OSUsed;
} OS_STK_DATA;
# 416 "blbl/include/ucosii.h"
typedef struct os_tcb {
OS_STK *OSTCBStkPtr;
void *OSTCBExtPtr;
OS_STK *OSTCBStkBottom;
INT32U OSTCBStkSize;
INT16U OSTCBOpt;
INT16U OSTCBId;
struct os_tcb *OSTCBNext;
struct os_tcb *OSTCBPrev;
OS_EVENT *OSTCBEventPtr;
# 445 "blbl/include/ucosii.h"
INT16U OSTCBDly;
INT8U OSTCBStat;
INT8U OSTCBPrio;
INT8U OSTCBX;
INT8U OSTCBY;
INT8U OSTCBBitX;
INT8U OSTCBBitY;
# 469 "blbl/include/ucosii.h"
} OS_TCB;
# 478 "blbl/include/ucosii.h"
extern INT32U OSCtxSwCtr;
extern OS_EVENT *OSEventFreeList;
extern OS_EVENT OSEventTbl[3];
# 491 "blbl/include/ucosii.h"
extern INT8S OSCPUUsage;
extern INT32U OSIdleCtrMax;
extern INT32U OSIdleCtrRun;
extern BOOLEAN OSStatRdy;
extern OS_STK OSTaskStatStk[(64)];
extern INT8U OSIntNesting;
extern INT8U OSIntExitY;
extern INT8U OSLockNesting;
extern INT8U OSPrioCur;
extern INT8U OSPrioHighRdy;
extern INT8U OSRdyGrp;
extern INT8U OSRdyTbl[(((7 +1)) / 8 + 1)];
extern BOOLEAN OSRunning;
extern INT8U OSTaskCtr;
extern volatile INT32U OSIdleCtr;
extern OS_STK OSTaskIdleStk[(64)];
extern OS_TCB *OSTCBCur;
extern OS_TCB *OSTCBFreeList;
extern OS_TCB *OSTCBHighRdy;
extern OS_TCB *OSTCBList;
extern OS_TCB *OSTCBPrioTbl[(7 +1) + 1];
extern OS_TCB OSTCBTbl[7 + 2];
# 540 "blbl/include/ucosii.h"
extern volatile INT32U OSTime;
extern INT8U const OSMapTbl[8];
extern INT8U const OSUnMapTbl[256];
# 662 "blbl/include/ucosii.h"
INT8U OSMutexAccept(OS_EVENT *pevent, INT8U *err);
OS_EVENT *OSMutexCreate(INT8U prio, INT8U *err);
OS_EVENT *OSMutexDel(OS_EVENT *pevent, INT8U opt, INT8U *err);
void OSMutexPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);
INT8U OSMutexPost(OS_EVENT *pevent);
INT8U OSMutexQuery(OS_EVENT *pevent, OS_MUTEX_DATA *pdata);
# 732 "blbl/include/ucosii.h"
INT16U OSSemAccept(OS_EVENT *pevent);
OS_EVENT *OSSemCreate(INT16U cnt);
OS_EVENT *OSSemDel(OS_EVENT *pevent, INT8U opt, INT8U *err);
void OSSemPend(OS_EVENT *pevent, INT16U timeout, INT8U *err);
INT8U OSSemPost(OS_EVENT *pevent);
INT8U OSSemQuery(OS_EVENT *pevent, OS_SEM_DATA *pdata);
# 769 "blbl/include/ucosii.h"
INT8U OSTaskCreate(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U
prio);
INT8U OSTaskCreateExt(void (*task)(void *pd),
void *pdata,
OS_STK *ptos,
INT8U prio,
INT16U id,
OS_STK *pbos,
INT32U stk_size,
void *pext,
INT16U opt);
# 800 "blbl/include/ucosii.h"
INT8U OSTaskStkChk(INT8U prio, OS_STK_DATA *pdata);
# 814 "blbl/include/ucosii.h"
void OSTimeDly(INT16U ticks);
INT8U OSTimeDlyHMSM(INT8U hours, INT8U minutes, INT8U seconds, INT16U milli);
INT8U OSTimeDlyResume(INT8U prio);
INT32U OSTimeGet(void);
void OSTimeSet(INT32U ticks);
void OSTimeTick(void);
void OSInit(void);
void OSIntEnter(void);
void OSIntExit(void);
void OSStart(void);
void OSStatInit(void);
INT16U OSVersion(void);
# 866 "blbl/include/ucosii.h"
INT8U OS_EventTaskRdy(OS_EVENT *pevent, void *msg, INT8U msk);
void OS_EventTaskWait(OS_EVENT *pevent);
void OS_EventTO(OS_EVENT *pevent);
void OS_EventWaitListInit(OS_EVENT *pevent);
# 885 "blbl/include/ucosii.h"
void OS_Sched(void);
void OS_TaskIdle(void *data);
void OS_TaskStat(void *data);
void OS_TaskStkClr(OS_STK *ptos, INT32U size, INT16U opt);
INT8U OS_TCBInit(INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT32U
stk_size, void *pext, INT16U opt);
# 912 "blbl/include/ucosii.h"
void OSInitHookBegin(void);
void OSInitHookEnd(void);
void OSIntCtxSw(void);
void OSStartHighRdy(void);
void OSTaskCreateHook(OS_TCB *ptcb);
void OSTaskDelHook(OS_TCB *ptcb);
void OSTaskIdleHook(void);
void OSTaskStatHook(void);
OS_STK *OSTaskStkInit(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U
opt);
void OSTCBInitHook(OS_TCB *ptcb);
void OSTimeTickHook(void);
# 950 "blbl/include/ucosii.h"
void OSCtxSw(void);
void OSTickISR(void);
# 13 "blbl/lib/flash/flash.c" 2
# 1 "blbl/include/flash.h" 1
# 12 "blbl/include/flash.h"
# 1 "/usr/local/lib/gcc/msp430/3.4.3/../../../../msp430/include/stdint.h" 1 3
# 13 "blbl/include/flash.h" 2
extern void flashUpdate(unsigned char *addr, size_t len, unsigned char *data);
extern void flashUnlock(uint16_t key);
extern int8_t flashLocked(void);
extern void flashEraseFromLen(unsigned char *start, size_t len);
# 14 "blbl/lib/flash/flash.c" 2
# 22 "blbl/lib/flash/flash.c"
unsigned char scratch[512] __attribute__((section(".flashScratch")));
# 32 "blbl/lib/flash/flash.c"
extern unsigned char *_etext;
extern unsigned char *__boot_start;
# 49 "blbl/lib/flash/flash.c"
void flashErase(unsigned char mode, unsigned char *addr)
{
# 59 "blbl/lib/flash/flash.c"
if (mode != 0x0002)
{
return;
}
__asm__ __volatile__("dint"::);asm("nop");;
FCTL2 = 0xA500 | 0x0080 | 0x0001 | 0x0002;
FCTL1 = 0xA500 | mode;
*addr = 0xff;
FCTL1 = 0xA500;
while (FCTL3 & 0x0001);
DCOTune.u8Control = 0;
__asm__ __volatile__("eint"::);;
}
# 104 "blbl/lib/flash/flash.c"
void flashUnlock(uint16_t key)
{
FCTL2 = 0xA500 | 0x0080 | 0x0008;
FCTL3 = key;
}
int8_t flashLocked(void)
{
return ((FCTL3 & 0x0010) != 0);
}
# 147 "blbl/lib/flash/flash.c"
unsigned char flashWriteByte(unsigned char *addr, unsigned char data)
{
__asm__ __volatile__("dint"::);asm("nop");;
FCTL1 = 0xA500 | 0x0040;
*addr = data;
FCTL1 = 0xA500;
while (FCTL3 & 0x0001);
# 169 "blbl/lib/flash/flash.c"
DCOTune.u8Control = 0;
__asm__ __volatile__("eint"::);;
return (data != *addr);
}
# 189 "blbl/lib/flash/flash.c"
unsigned char flashWriteWord(unsigned int *addr, unsigned int data)
{
__asm__ __volatile__("dint"::);asm("nop");;
FCTL1 = 0xA500 | 0x0040;
*addr = data;
FCTL1 = 0xA500;
while (FCTL3 & 0x0001);
# 211 "blbl/lib/flash/flash.c"
DCOTune.u8Control = 0;
__asm__ __volatile__("eint"::);;
return (data != *addr);
}
# 232 "blbl/lib/flash/flash.c"
unsigned char flashWriteBlock(unsigned char *addr, unsigned int len, unsigned
char *data)
{
unsigned char ret;
ret = 0;
while(len > 0)
{
ret = ret | flashWriteByte(addr, *data);
len--;
addr++;
data++;
}
return ret;
}
void flashEraseFromLen(unsigned char *start, size_t len)
{
unsigned char *tempBlock;
unsigned char *blockStart, *blockEnd;
unsigned char *end;
if (len == 0) return;
if (((start >= (unsigned char *)&__boot_start)
&& (start <= (unsigned char *)&_etext)) ||
((start + len) > (unsigned char *)0xffe0))
{
return;
}
tempBlock = scratch;
flashErase(0x0002, tempBlock);
blockStart = (unsigned char *)((unsigned int)start & 0xfe00);
blockEnd = blockStart + 0x1ff;
end = start + len - 1;
# 291 "blbl/lib/flash/flash.c"
flashWriteBlock(tempBlock, start - blockStart, blockStart);
while (end > blockEnd)
{
flashErase(0x0002, blockStart);
flashWriteBlock(blockStart, 0x200, tempBlock);
blockStart += 0x200;
blockEnd += 0x200;
flashErase(0x0002, tempBlock);
}
flashWriteBlock(tempBlock + (end - blockStart) + 1, blockEnd - end, end +
1);
flashErase(0x0002, blockStart);
len = 0x200;
flashWriteBlock(blockStart, len, tempBlock);
}
void flashUpdate(unsigned char *addr, size_t len, unsigned char *data)
{
unsigned char *new;
unsigned char erased;
unsigned int i;
if (((addr >= (unsigned char *)&__boot_start)
&& (addr <= (unsigned char *)&_etext)) ||
((addr + len) > (unsigned char *)0xffe0))
{
return;
}
new = addr;
erased = 0;
for(i = 0; i < len; i++)
{
erased |= ~(*new);
new++;
}
if (erased != 0)
{
flashEraseFromLen(addr, len);
}
flashWriteBlock(addr, len, data);
return;
}