瀏覽代碼

[BSP] Fix the gcc compiling issue in LPC408x bsp

Bernard Xiong 10 年之前
父節點
當前提交
796c49347e

+ 22 - 20
bsp/lpc408x/Libraries/Device/NXP/LPC407x_8x_177x_8x/Source/Templates/GCC/startup_LPC407x_8x_177x_8x.s

@@ -102,18 +102,18 @@ __cs3_interrupt_vector_cortex_m:
     .long   DMA_IRQHandler              /* 42: General Purpose DMA          */
     .long   I2S_IRQHandler              /* 43: I2S                          */
     .long   ENET_IRQHandler             /* 44: Ethernet                     */
-    .long   MCI_IRQHandler              /* 45: SD/MMC Card					*/
+    .long   MCI_IRQHandler              /* 45: SD/MMC Card		    */
     .long   MCPWM_IRQHandler            /* 46: Motor Control PWM            */
     .long   QEI_IRQHandler              /* 47: Quadrature Encoder Interface */
     .long   PLL1_IRQHandler             /* 48: PLL1 Lock (USB PLL)          */
-    .long	USBActivity_IRQHandler		/* 49: USB Activity 				*/
-    .long 	CANActivity_IRQHandler		/* 50: CAN Activity					*/
-    .long	UART4_IRQHandler            /* 51: UART4						*/
-    .long	SSP2_IRQHandler				/* 52: SSP2							*/
-    .long 	LCD_IRQHandler				/* 53: LCD							*/
-    .long	GPIO_IRQHandler				/* 54: GPIO							*/
-    .long 	PWM0_IRQHandler				/* 55: PWM0							*/
-    .long 	EEPROM_IRQHandler			/* 56: EEPROM						*/
+    .long   USBActivity_IRQHandler	/* 49: USB Activity 		    */
+    .long   CANActivity_IRQHandler	/* 50: CAN Activity		    */
+    .long   UART4_IRQHandler            /* 51: UART4			    */
+    .long   SSP2_IRQHandler		/* 52: SSP2			    */
+    .long   LCD_IRQHandler		/* 53: LCD			    */
+    .long   GPIO_IRQHandler		/* 54: GPIO			    */
+    .long   PWM0_IRQHandler		/* 55: PWM0			    */
+    .long   EEPROM_IRQHandler		/* 56: EEPROM			    */
 
     .size   __cs3_interrupt_vector_cortex_m, . - __cs3_interrupt_vector_cortex_m
 
@@ -130,22 +130,24 @@ CRP_Value:
     .section .cs3.reset,"x",%progbits
     .thumb_func
     .globl  __cs3_reset_cortex_m
+    .globl  Reset_Handler
     .type   __cs3_reset_cortex_m, %function
 __cs3_reset_cortex_m:
+Reset_Handler:
     .fnstart
 .ifdef RAM_MODE
 /* Clear .bss section (Zero init) */
-	MOV     R0, #0
-	LDR     R1, =__bss_start__
-	LDR     R2, =__bss_end__
-	CMP     R1,R2
-	BEQ     BSSIsEmpty
+    MOV     R0, #0
+    LDR     R1, =__bss_start__
+    LDR     R2, =__bss_end__
+    CMP     R1,R2
+    BEQ     BSSIsEmpty
 LoopZI:
-	CMP     R1, R2
-	BHS		BSSIsEmpty
-	STR   	R0, [R1]
-	ADD		R1, #4
-	BLO     LoopZI
+    CMP     R1, R2
+    BHS	    BSSIsEmpty
+    STR     R0, [R1]
+    ADD	    R1, #4
+    BLO     LoopZI
 BSSIsEmpty:
     LDR     R0, =SystemInit
     BLX     R0
@@ -154,7 +156,7 @@ BSSIsEmpty:
 .else
     LDR     R0, =SystemInit
     BLX     R0
-	LDR     R0,=_start
+    LDR     R0,=main
     BX      R0
 .endif
     .pool

+ 1 - 0
bsp/lpc408x/SConstruct

@@ -15,6 +15,7 @@ TARGET = 'rtthread-%s.%s' % (rtconfig.BOARD_NAME, rtconfig.TARGET_EXT)
 env = Environment(tools = ['mingw'],
 	AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
 	CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
+	CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
 	AR = rtconfig.AR, ARFLAGS = '-rc',
 	LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)

+ 2 - 2
bsp/lpc408x/rtconfig.h

@@ -104,8 +104,8 @@
 // </section>
 
 // <section name="LIBC" description="C Runtime library setting" default="always" >
-// <bool name="RT_USING_NEWLIB" description="Using newlib library, only available under GNU GCC" default="true" />
-// #define RT_USING_NEWLIB
+// <bool name="RT_USING_LIBC" description="Using C library" default="true" />
+// #define RT_USING_LIBC
 // <bool name="RT_USING_PTHREADS" description="Using POSIX threads library" default="true" />
 #define RT_USING_PTHREADS
 // </section>

+ 6 - 1
bsp/lpc408x/rtconfig.py

@@ -29,7 +29,8 @@ BUILD = 'debug'
 if PLATFORM == 'gcc':
     # toolchains
     PREFIX = 'arm-none-eabi-'
-    CC = PREFIX + 'gcc'
+    CC  = PREFIX + 'gcc'
+    CXX = PREFIX + 'g++'
     AS = PREFIX + 'gcc'
     AR = PREFIX + 'ar'
     LINK = PREFIX + 'gcc'
@@ -52,11 +53,14 @@ if PLATFORM == 'gcc':
     else:
         CFLAGS += ' -O2'
 
+    CXXFLAGS = CFLAGS
+
     POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
 
 elif PLATFORM == 'armcc':
     # toolchains
     CC = 'armcc'
+    CXX = 'armcc'
     AS = 'armasm'
     AR = 'armar'
     LINK = 'armlink'
@@ -70,6 +74,7 @@ elif PLATFORM == 'armcc':
 
     CFLAGS += ' -I' + EXEC_PATH + '/ARM/RV31/INC'
     LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/RV31/LIB'
+    CXXFLAGS = CFLAGS
 
     EXEC_PATH += '/arm/bin40/'