Using CCS I have been unable to create a Tiva program using the GNU compiler which reaches main.
An example sequence is:
1) In CCS 6.0.0.00190 create a new "Empty Project (with main.c)" using the following settings:
2) Set the main.c to contain:
#include <stdio.h>
int main(void) {
printf ("Hello World\n");
return 0;
}
3) The project compiles and links without any warnings or errors:
**** Build of configuration Debug for project TIVA_GNU_hello_world ****
"C:\\ti_ccs6_0\\ccsv6\\utils\\bin\\gmake" -k all
'Building file: ../main.c'
'Invoking: GNU Compiler'
"C:/ti_ccs6_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -DPART_TM4C123GH6PM -I"C:/ti_ccs6_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include" -ffunction-sections -fdata-sections -g -gstrict-dwarf -Wall -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c"
'Finished building: ../main.c'
' '
'Building file: ../tm4c123gh6pm_startup_ccs_gcc.c'
'Invoking: GNU Compiler'
"C:/ti_ccs6_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc.exe" -c -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -DPART_TM4C123GH6PM -I"C:/ti_ccs6_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/arm-none-eabi/include" -ffunction-sections -fdata-sections -g -gstrict-dwarf -Wall -MMD -MP -MF"tm4c123gh6pm_startup_ccs_gcc.d" -MT"tm4c123gh6pm_startup_ccs_gcc.d" -o"tm4c123gh6pm_startup_ccs_gcc.o" "../tm4c123gh6pm_startup_ccs_gcc.c"
'Finished building: ../tm4c123gh6pm_startup_ccs_gcc.c'
' '
'Building target: TIVA_GNU_hello_world.out'
'Invoking: GNU Linker'
"C:/ti_ccs6_0/ccsv6/tools/compiler/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc.exe" -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -DPART_TM4C123GH6PM -ffunction-sections -fdata-sections -g -gstrict-dwarf -Wall -Wl,-Map,"TIVA_GNU_hello_world.map" -o"TIVA_GNU_hello_world.out" "./tm4c123gh6pm_startup_ccs_gcc.o" "./main.o" -Wl,-T"../tm4c123gh6pm.lds" -Wl,--start-group -l"c" -l"gcc" -l"nosys" -Wl,--end-group
'Finished building target: TIVA_GNU_hello_world.out'
' '
**** Build Finished ****
4) When attempt to start a debug session on a Tiva launchpad the flash is programmed without error, but the program doesn't reach main.
5) Pressing Supend in the debugger causes the following to be reported in the Console:
The PC is reported as 0xE3530000 which is not a valid address in flash.CORTEX_M4_0: Error: Debug Port error occurred.
Looking in the memory browser at the start of flash which should be vector table shows a function __do_global_dtors_aux has appeared to be placed at address zero instead of the vector table:
The linker map appears to show that both the .intvecs and .text sections have been allocated to start at address zero:
0x00000000 PROVIDE (_intvecs_base_address, 0x0)
.intvecs
*(.intvecs)
.text 0x00000000 0x2fa0
CREATE_OBJECT_SYMBOLS
*(.text)
The complete CCS project is attached 4722.TIVA_GNU_hello_world.zip
I am not sure if failure for this example project to reach main is either:
a) A mistake I made in creating the project
b) An error in the tm4c123gh6pm.lds GNU linker script or tm4c123gh6pm_startup_ccs_gcc.c start-up "template" files copied into the project by CCSv6 at project creation.
c) A bug in the GNU ARM compiler or linker.
[I haven't had such problems creating projects using the TI ARM compiler]

