diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.bin b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.bin index 395351b6..1bf204df 100644 Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.bin and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.bin differ diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.elf index b875561e..ed78703f 100644 Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.elf differ diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.map index eb59f19f..234eb83e 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.map +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openblt_olimex_efm32g880.map @@ -1,192 +1,249 @@ - -bin/openblt_olimex_efm32g880.elf: file format elf32-littlearm -bin/openblt_olimex_efm32g880.elf -architecture: arm, flags 0x00000112: -EXEC_P, HAS_SYMS, D_PAGED -start address 0x00000000 - -Program Header: - LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 - filesz 0x00001530 memsz 0x00001530 flags r-x - LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00001530 align 2**15 - filesz 0x00000148 memsz 0x00000738 flags rwx -private flags = 5000200: [Version5 EABI] [soft-float ABI] - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 00001530 00000000 00000000 00008000 2**3 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000148 20000000 00001530 00010000 2**2 - CONTENTS, ALLOC, LOAD, CODE - 2 .bss 000005f0 20000148 00001678 00010148 2**2 - ALLOC - 3 .debug_info 000063ae 00000000 00000000 00010148 2**0 - CONTENTS, READONLY, DEBUGGING - 4 .debug_abbrev 0000209d 00000000 00000000 000164f6 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_loc 00002df8 00000000 00000000 00018593 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_aranges 000005f0 00000000 00000000 0001b38b 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_ranges 00000710 00000000 00000000 0001b97b 2**0 - CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00002236 00000000 00000000 0001c08b 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_str 00001d37 00000000 00000000 0001e2c1 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .comment 00000030 00000000 00000000 0001fff8 2**0 - CONTENTS, READONLY - 11 .ARM.attributes 00000033 00000000 00000000 00020028 2**0 - CONTENTS, READONLY - 12 .debug_frame 00000c0c 00000000 00000000 0002005c 2**2 - CONTENTS, READONLY, DEBUGGING -SYMBOL TABLE: -00000000 l d .text 00000000 .text -20000000 l d .data 00000000 .data -20000148 l d .bss 00000000 .bss -00000000 l d .debug_info 00000000 .debug_info -00000000 l d .debug_abbrev 00000000 .debug_abbrev -00000000 l d .debug_loc 00000000 .debug_loc -00000000 l d .debug_aranges 00000000 .debug_aranges -00000000 l d .debug_ranges 00000000 .debug_ranges -00000000 l d .debug_line 00000000 .debug_line -00000000 l d .debug_str 00000000 .debug_str -00000000 l d .comment 00000000 .comment -00000000 l d .ARM.attributes 00000000 .ARM.attributes -00000000 l d .debug_frame 00000000 .debug_frame -00000000 l df *ABS* 00000000 vectors.c -00000000 l df *ABS* 00000000 main.c -00000000 l df *ABS* 00000000 cstart.c -000002c0 l F .text 00000000 zero_loop -00000000 l df *ABS* 00000000 system_efm32.c -20000000 l O .data 00000004 SystemLFXOClock -20000004 l O .data 00000004 SystemHFXOClock -00000000 l df *ABS* 00000000 efm32_cmu.c -000003b4 l F .text 00000030 CMU_FlashWaitStateMax -000003e4 l F .text 00000054 CMU_FlashWaitStateControl -00000438 l F .text 00000014 CMU_Sync -0000044c l F .text 0000003c CMU_LFClkGet -0000143a l O .text 00000003 CSWTCH.18 -00000000 l df *ABS* 00000000 efm32_emu.c -20000148 l O .bss 00000002 cmuStatus -00000000 l df *ABS* 00000000 efm32_gpio.c -00000000 l df *ABS* 00000000 efm32_leuart.c -00000950 l F .text 0000000e LEUART_Sync -00000000 l df *ABS* 00000000 efm32_msc.c -00000000 l df *ABS* 00000000 efm32_system.c -00000000 l df *ABS* 00000000 boot.c -00000000 l df *ABS* 00000000 com.c -2000014a l O .bss 00000040 xcpCtoReqPacket.4160 -20000008 l O .data 00000001 comActiveInterface -00000000 l df *ABS* 00000000 xcp.c -00000b44 l F .text 00000014 XcpSetCtoError -0000143d l O .text 00000008 xcpStationId -2000018c l O .bss 0000004c xcpInfo -00000000 l df *ABS* 00000000 backdoor.c -200001d8 l O .bss 00000001 backdoorOpen -200001dc l O .bss 00000004 backdoorOpenTime -00000000 l df *ABS* 00000000 cop.c -00000000 l df *ABS* 00000000 assert.c -00000000 l df *ABS* 00000000 cpu.c -00000000 l df *ABS* 00000000 uart.c -200001e0 l O .bss 00000004 xcpCtoRxStartTime.5467 -200001e4 l O .bss 00000041 xcpCtoReqPacket.5464 -20000225 l O .bss 00000001 xcpCtoRxLength.5465 -20000226 l O .bss 00000001 xcpCtoRxInProgress.5466 -00000000 l df *ABS* 00000000 nvm.c -00000000 l df *ABS* 00000000 timer.c -20000228 l O .bss 00000004 millisecond_counter -00000000 l df *ABS* 00000000 flash.c -00001090 l F .text 00000034 FlashGetSector -000010c4 l F .text 0000004c FlashWriteBlock -00001110 l F .text 00000050 FlashSwitchBlock -00001160 l F .text 00000080 FlashAddToBlock -0000147c l O .text 000000b4 flashLayout -2000022c l O .bss 00000204 bootBlockInfo -20000430 l O .bss 00000204 blockInfo -00000000 l df *ABS* 00000000 cpu_comp.c -00000000 l df *ABS* 00000000 -00000100 l *ABS* 00000000 __STACKSIZE__ -00001410 l F .text 00000010 __MSC_ErasePage_veneer -00001420 l F .text 00000010 __MSC_WriteWord_veneer -00000ab0 g F .text 00000018 ComInit -000011fc g F .text 00000048 FlashWrite -000008a8 g F .text 00000018 GPIO_DriveModeSet -00000e08 g F .text 00000008 AssertFailure -00000894 g F .text 00000014 EMU_UpdateOscConfig -0000029c g F .text 00000044 reset_handler -00000678 g F .text 00000118 CMU_ClockFreqGet -00001064 g F .text 0000001c TimerUpdate -00000b84 g F .text 00000010 XcpPacketTransmitted -000009a4 g F .text 00000018 LEUART_Enable -00000ac8 g F .text 00000028 ComTask -00000a7c g F .text 0000001e BootInit -00000de4 g F .text 00000020 BackDoorInit -00000790 g F .text 00000050 CMU_OscillatorEnable -00000e06 g F .text 00000002 CopService -00001530 g .text 00000000 _etext -00001406 g F .text 00000004 CpuIrqDisable -00001400 g F .text 00000006 FlashGetUserProgBaseAddress -00000610 g F .text 00000068 CMU_ClockSelectGet -00001058 g F .text 0000000c TimerReset -20000634 g O .bss 00000004 SystemCoreClock -00000a9a g F .text 00000016 BootTask -0000133c g F .text 00000044 FlashWriteChecksum -00000af4 g F .text 0000001c ComTransmitPacket -000003a8 g F .text 0000000c SystemLFXOClockGet -000005a4 g F .text 0000006c CMU_ClockEnable -000009fc g F .text 0000000c LEUART_Rx -00000b74 g F .text 00000010 XcpIsConnected -00001010 g F .text 00000004 NvmInit -000011e0 g F .text 0000001c FlashInit -00001020 g F .text 00000004 NvmGetUserProgBaseAddress -20000638 g .bss 00000000 _ebss -00000290 g F .text 0000000c UnusedISR -00000af0 g F .text 00000002 ComFree -000009bc g F .text 00000040 LEUART_Init -2000007c g F .data 000000c8 MSC_WriteWord -00000e68 g F .text 00000094 UartInit -00000a40 g F .text 0000001c MSC_Deinit -000007e0 g F .text 000000b4 CMU_ClockSelectSet -00001018 g F .text 00000004 NvmErase -20000148 g .bss 00000000 _bss -000002ec g F .text 00000094 SystemHFClockGet -00000b94 g F .text 00000218 XcpPacketReceived -00000e10 g F .text 00000004 CpuInit -2000000c g F .data 00000070 MSC_ErasePage -000013c8 g F .text 00000038 FlashDone -00000b58 g F .text 0000001c XcpInit -00001244 g F .text 000000f8 FlashErase -000000b8 g F .text 000001d8 main -00001024 g F .text 00000012 NvmDone -00000efc g F .text 0000007c UartTransmitPacket -0000101c g F .text 00000004 NvmVerifyChecksum -00000e48 g F .text 0000001e CpuMemCopy -000008c0 g F .text 00000090 GPIO_PinModeSet -000003a0 g F .text 00000002 SystemInit -00000a08 g F .text 00000018 LEUART_Tx -00000488 g F .text 0000011c CMU_ClockDivSet -00000b28 g F .text 00000018 ComGetActiveInterfaceMaxTxLen -00000f78 g F .text 00000098 UartReceivePacket -0000140a g F .text 00000004 CpuIrqEnable -20000000 g .data 00000000 _data -00000e04 g F .text 00000002 CopInit -000003a2 g F .text 00000006 SystemLFRCOClockGet -00000960 g F .text 00000044 LEUART_BaudrateSet -00000a5c g F .text 00000020 SYSTEM_ChipRevisionGet -00000380 g F .text 00000020 SystemCoreClockGet -00001014 g F .text 00000004 NvmWrite -00000e14 g F .text 00000034 CpuStartUserProgram -20000738 g .bss 00000000 _estack -00001380 g F .text 00000048 FlashVerifyChecksum -20000148 g .data 00000000 _edata -00000000 g O .text 000000b8 _vectab -00000b40 g F .text 00000004 ComIsConnected -00000b10 g F .text 00000018 ComGetActiveInterfaceMaxRxLen -00000dac g F .text 00000038 BackDoorCheck -20000638 g .bss 00000000 _stack -00001080 g F .text 00000010 TimerGet -00001038 g F .text 00000020 TimerInit -00000a20 g F .text 00000020 MSC_Init - - + +bin/openblt_olimex_efm32g880.elf: file format elf32-littlearm +bin/openblt_olimex_efm32g880.elf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000000 + +Program Header: + LOAD off 0x00010000 vaddr 0x00000000 paddr 0x00000000 align 2**16 + filesz 0x000018c8 memsz 0x000018c8 flags r-x + LOAD off 0x00020000 vaddr 0x20000000 paddr 0x000018c8 align 2**16 + filesz 0x00000158 memsz 0x00000a48 flags rwx +private flags = 5000200: [Version5 EABI] [soft-float ABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 000018c8 00000000 00000000 00010000 2**3 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 00000158 20000000 000018c8 00020000 2**2 + CONTENTS, ALLOC, LOAD, CODE + 2 .bss 000008f0 20000158 00001a20 00020158 2**2 + ALLOC + 3 .ARM.attributes 00000029 00000000 00000000 00020158 2**0 + CONTENTS, READONLY + 4 .comment 0000006e 00000000 00000000 00020181 2**0 + CONTENTS, READONLY + 5 .debug_info 00006138 00000000 00000000 000201ef 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_abbrev 00001cd1 00000000 00000000 00026327 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_aranges 000006d0 00000000 00000000 00027ff8 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_ranges 00000570 00000000 00000000 000286c8 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_macro 00014a1d 00000000 00000000 00028c38 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_line 000037b1 00000000 00000000 0003d655 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 0007427c 00000000 00000000 00040e06 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_frame 00000e38 00000000 00000000 000b5084 2**2 + CONTENTS, READONLY, DEBUGGING + 13 .debug_loc 00002e1a 00000000 00000000 000b5ebc 2**0 + CONTENTS, READONLY, DEBUGGING +SYMBOL TABLE: +00000000 l d .text 00000000 .text +20000000 l d .data 00000000 .data +20000158 l d .bss 00000000 .bss +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l d .comment 00000000 .comment +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_ranges 00000000 .debug_ranges +00000000 l d .debug_macro 00000000 .debug_macro +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l df *ABS* 00000000 vectors.c +00000000 l df *ABS* 00000000 main.c +000000c8 l F .text 000001e4 Init +00000000 l df *ABS* 00000000 cstart.c +000002de l F .text 00000000 zero_loop +00000000 l df *ABS* 00000000 efm32_leuart.c +00000000 l df *ABS* 00000000 efm32_system.c +00000000 l df *ABS* 00000000 efm32_cmu.c +00000424 l F .text 00000030 CMU_FlashWaitStateMax +00000454 l F .text 0000000c CMU_DivToLog2 +00000460 l F .text 00000060 CMU_FlashWaitStateControl +000004c0 l F .text 00000008 CMU_AUXClkGet +000004c8 l F .text 00000038 CMU_LFClkGet +00000760 l F .text 00000024 CMU_DBGClkGet +00000000 l df *ABS* 00000000 efm32_msc.c +00000000 l df *ABS* 00000000 efm32_gpio.c +00000000 l df *ABS* 00000000 efm32_emu.c +20000158 l O .bss 00000002 cmuStatus +00000000 l df *ABS* 00000000 system_efm32.c +20000000 l O .data 00000004 SystemLFXOClock +20000004 l O .data 00000004 SystemHFXOClock +00000000 l df *ABS* 00000000 xcp.c +00000bac l F .text 0000001e XcpComputeChecksum +00000bcc l F .text 0000000c XcpProtectResources +00000bd8 l F .text 00000014 XcpSetCtoError +00000bec l F .text 0000001c XcpCmdDisconnect +00000c08 l F .text 00000020 XcpCmdGetStatus +00000c28 l F .text 0000000a XcpCmdSynch +00000c34 l F .text 0000002c XcpCmdGetId +00000c60 l F .text 00000018 XcpCmdSetMta +00000c78 l F .text 00000028 XcpCmdBuildCheckSum +00000ca0 l F .text 0000000a XcpCmdProgramPrepare +00000cac l F .text 00000028 XcpCmdProgramStart +00000cd4 l F .text 00000044 XcpCmdConnect +00000d18 l F .text 00000040 XcpCmdUpload +00000d58 l F .text 00000040 XcpCmdShortUpload +00000d98 l F .text 00000040 XcpCmdProgramMax +00000dd8 l F .text 0000005c XcpCmdProgram +00000e34 l F .text 00000028 XcpCmdProgramClear +00000e5c l F .text 00000018 XcpCmdProgramReset +00000e74 l F .text 0000000a XcpTransmitPacket +000017d4 l O .text 00000008 xcpStationId +2000015c l O .bss 0000004c xcpInfo +00000000 l df *ABS* 00000000 com.c +200001a8 l O .bss 00000040 xcpCtoReqPacket.4268 +20000008 l O .data 00000001 comActiveInterface +00000000 l df *ABS* 00000000 backdoor.c +200001e8 l O .bss 00000001 backdoorOpen +200001ec l O .bss 00000004 backdoorOpenTime +00000000 l df *ABS* 00000000 boot.c +00000000 l df *ABS* 00000000 cop.c +00000000 l df *ABS* 00000000 assert.c +00000000 l df *ABS* 00000000 uart.c +000010c4 l F .text 00000030 UartTransmitByte +000010f4 l F .text 00000024 UartReceiveByte +200001f0 l O .bss 00000004 xcpCtoRxStartTime.5593 +200001f4 l O .bss 00000041 xcpCtoReqPacket.5590 +20000235 l O .bss 00000001 xcpCtoRxLength.5591 +20000236 l O .bss 00000001 xcpCtoRxInProgress.5592 +00000000 l df *ABS* 00000000 nvm.c +00000000 l df *ABS* 00000000 cpu.c +00000000 l df *ABS* 00000000 flash.c +00001338 l F .text 0000002c FlashCalcPageSize +00001364 l F .text 00000048 FlashGetSector +000013ac l F .text 0000005c FlashWriteBlock +00001408 l F .text 00000038 FlashGetSectorBaseAddr +00001440 l F .text 00000038 FlashGetSectorSize +00001478 l F .text 00000068 FlashEraseSectors +000014e0 l F .text 00000026 FlashInitBlock +00001508 l F .text 0000003c FlashSwitchBlock +00001544 l F .text 0000007a FlashAddToBlock +00001810 l O .text 000000b4 flashLayout +20000238 l O .bss 00000204 bootBlockInfo +2000043c l O .bss 00000204 blockInfo +00000000 l df *ABS* 00000000 timer.c +20000640 l O .bss 00000004 millisecond_counter +00000000 l df *ABS* 00000000 cpu_comp.c +00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m/crti.o +00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtn.o +00000000 l df *ABS* 00000000 crtstuff.c +000018c4 l O .text 00000000 __EH_FRAME_BEGIN__ +00000000 l df *ABS* 00000000 crtstuff.c +000018c4 l O .text 00000000 __FRAME_END__ +00000000 l df *ABS* 00000000 +00000000 l *UND* 00000000 __bss_start__ +00000000 l *UND* 00000000 __libc_fini_array +00000000 l *UND* 00000000 __sf_fake_stderr +00000000 l *UND* 00000000 __deregister_frame_info +00000000 l *UND* 00000000 __bss_end__ +00000000 l *UND* 00000000 __call_exitprocs +00000000 l *UND* 00000000 software_init_hook +00000000 l *UND* 00000000 __sf_fake_stdin +00000000 l *UND* 00000000 __init_array_end +00000000 l *UND* 00000000 hardware_init_hook +00000000 l *UND* 00000000 atexit +00000000 l *UND* 00000000 __preinit_array_end +00000000 l *UND* 00000000 __stack +00000000 l *UND* 00000000 __sf_fake_stdout +00000000 l *UND* 00000000 __init_array_start +00000000 l *UND* 00000000 _exit +00000000 l *UND* 00000000 _Jv_RegisterClasses +00000000 l *UND* 00000000 __preinit_array_start +00000000 l *UND* 00000000 __register_frame_info +000017b8 l F .text 00000008 __MSC_WriteWord_veneer +000017c0 l F .text 00000008 __MSC_ErasePage_veneer +00000f9c g F .text 00000018 ComInit +000015dc g F .text 00000058 FlashWrite +000009dc g F .text 00000020 GPIO_DriveModeSet +000010bc g F .text 00000008 AssertFailure +00000ac4 g F .text 00000014 EMU_UpdateOscConfig +000002bc g F .text 00000040 reset_handler +00000784 g F .text 00000118 CMU_ClockFreqGet +0000176c g F .text 0000001c TimerUpdate +00000eac g F .text 00000010 XcpPacketTransmitted +00000354 g F .text 0000001e LEUART_Enable +00000374 g F .text 00000014 LEUART_FreezeEnable +00000fb4 g F .text 00000024 ComTask +00001084 g F .text 0000001c BootInit +00001064 g F .text 00000020 BackDoorInit +0000089c g F .text 00000050 CMU_OscillatorEnable +000010b8 g F .text 00000002 CopService +000018c8 g .text 00000000 _etext +00001798 g F .text 00000004 CpuIrqDisable +00001734 g F .text 00000006 FlashGetUserProgBaseAddress +000006cc g F .text 00000094 CMU_ClockSelectGet +0000173c g F .text 0000000c TimerReset +20000644 g O .bss 00000004 SystemCoreClock +000010a0 g F .text 00000014 BootTask +00001664 g F .text 0000004c FlashWriteChecksum +00000fdc g F .text 00000018 ComTransmitPacket +00000ba0 g F .text 0000000c SystemLFXOClockGet +00000650 g F .text 0000007c CMU_ClockEnable +000003d8 g F .text 0000000e LEUART_Rx +00000e9c g F .text 00000010 XcpIsConnected +000017a0 g F .text 00000000 _init +000012a0 g F .text 00000008 NvmInit +000015c0 g F .text 0000001c FlashInit +000012c0 g F .text 00000008 NvmGetUserProgBaseAddress +20000648 g .bss 00000000 _ebss +00000400 g *ABS* 00000000 __STACKSIZE__ +000000b8 g F .text 00000010 UnusedISR +00000fd8 g F .text 00000002 ComFree +00000388 g F .text 0000004e LEUART_Init +2000000c g F .data 000000c4 MSC_WriteWord +00001118 g F .text 00000098 UartInit +000009c0 g F .text 0000001c MSC_Deinit +000008ec g F .text 000000b4 CMU_ClockSelectSet +000012b0 g F .text 00000008 NvmErase +20000158 g .bss 00000000 _bss +00000ad8 g F .text 0000009c SystemHFClockGet +00000ebc g F .text 000000e0 XcpPacketReceived +000012dc g F .text 00000008 CpuInit +200000d0 g F .data 00000084 MSC_ErasePage +000016f8 g F .text 0000003c FlashDone +00000e80 g F .text 0000001c XcpInit +00001634 g F .text 0000002e FlashErase +000002ac g F .text 00000010 main +000012c8 g F .text 00000014 NvmDone +000011b0 g F .text 00000050 UartTransmitPacket +000012b8 g F .text 00000008 NvmVerifyChecksum +00001318 g F .text 00000020 CpuMemCopy +000009fc g F .text 000000c8 GPIO_PinModeSet +00000b94 g F .text 00000002 SystemInit +000017ac g F .text 00000000 _fini +000003e8 g F .text 0000001c LEUART_Tx +00000500 g F .text 00000150 CMU_ClockDivSet +0000100c g F .text 00000018 ComGetActiveInterfaceMaxTxLen +00001200 g F .text 000000a0 UartReceivePacket +0000179c g F .text 00000004 CpuIrqEnable +20000000 g .data 00000000 _data +000010b4 g F .text 00000002 CopInit +00000b98 g F .text 00000006 SystemLFRCOClockGet +00000308 g F .text 0000004c LEUART_BaudrateSet +00000404 g F .text 00000020 SYSTEM_ChipRevisionGet +00000b74 g F .text 00000020 SystemCoreClockGet +000012a8 g F .text 00000008 NvmWrite +000012e4 g F .text 00000034 CpuStartUserProgram +20000a48 g .bss 00000000 _estack +000016b0 g F .text 00000048 FlashVerifyChecksum +20000158 g .data 00000000 _edata +00000000 g O .text 000000b8 _vectab +00001024 g F .text 00000008 ComIsConnected +00000ff4 g F .text 00000018 ComGetActiveInterfaceMaxRxLen +0000102c g F .text 00000038 BackDoorCheck +20000648 g .bss 00000000 _stack +00001788 g F .text 00000010 TimerGet +00001748 g F .text 00000024 TimerInit +000009a0 g F .text 00000020 MSC_Init + + diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/makefile b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/makefile index f31d0f20..7d38465a 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/makefile +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/makefile @@ -1,11 +1,11 @@ #**************************************************************************************** -#| Description: Makefile for EFM32 using CodeSourcery GNU GCC compiler toolset +#| Description: Makefile for GNU ARM Embedded toolchain. #| File Name: makefile #| #|--------------------------------------------------------------------------------------- #| C O P Y R I G H T #|--------------------------------------------------------------------------------------- -#| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved +#| Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved #| #|--------------------------------------------------------------------------------------- #| L I C E N S E @@ -25,181 +25,109 @@ #**************************************************************************************** SHELL = sh -#|---------------------------------------------------------------------------------------| -#| Configure project name | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Configure project name | +#|--------------------------------------------------------------------------------------| PROJ_NAME=openblt_olimex_efm32g880 -#|---------------------------------------------------------------------------------------| -#| Speficy project source files | -#|---------------------------------------------------------------------------------------| -PROJ_FILES= \ -blt_conf.h \ -hooks.c \ -main.c \ -vectors.c \ -cstart.c \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.c \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.h \ -./lib/CMSIS/CM3/CoreSupport/core_cmFunc.h \ -./lib/CMSIS/CM3/CoreSupport/core_cmInstr.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g880f128.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h \ -./lib/efm32lib/inc/efm32_acmp.h \ -./lib/efm32lib/inc/efm32_adc.h \ -./lib/efm32lib/inc/efm32_aes.h \ -./lib/efm32lib/inc/efm32_assert.h \ -./lib/efm32lib/inc/efm32_bitband.h \ -./lib/efm32lib/inc/efm32_chip.h \ -./lib/efm32lib/inc/efm32_cmu.h \ -./lib/efm32lib/inc/efm32_common.h \ -./lib/efm32lib/inc/efm32_dac.h \ -./lib/efm32lib/inc/efm32_dbg.h \ -./lib/efm32lib/inc/efm32_dma.h \ -./lib/efm32lib/inc/efm32_ebi.h \ -./lib/efm32lib/inc/efm32_emu.h \ -./lib/efm32lib/inc/efm32_gpio.h \ -./lib/efm32lib/inc/efm32_i2c.h \ -./lib/efm32lib/inc/efm32_int.h \ -./lib/efm32lib/inc/efm32_lcd.h \ -./lib/efm32lib/inc/efm32_lesense.h \ -./lib/efm32lib/inc/efm32_letimer.h \ -./lib/efm32lib/inc/efm32_leuart.h \ -./lib/efm32lib/inc/efm32_mpu.h \ -./lib/efm32lib/inc/efm32_msc.h \ -./lib/efm32lib/inc/efm32_opamp.h \ -./lib/efm32lib/inc/efm32_pcnt.h \ -./lib/efm32lib/inc/efm32_prs.h \ -./lib/efm32lib/inc/efm32_rmu.h \ -./lib/efm32lib/inc/efm32_rtc.h \ -./lib/efm32lib/inc/efm32_system.h \ -./lib/efm32lib/inc/efm32_timer.h \ -./lib/efm32lib/inc/efm32_usart.h \ -./lib/efm32lib/inc/efm32_vcmp.h \ -./lib/efm32lib/inc/efm32_wdog.h \ -./lib/efm32lib/src/efm32_acmp.c \ -./lib/efm32lib/src/efm32_adc.c \ -./lib/efm32lib/src/efm32_aes.c \ -./lib/efm32lib/src/efm32_assert.c \ -./lib/efm32lib/src/efm32_cmu.c \ -./lib/efm32lib/src/efm32_dac.c \ -./lib/efm32lib/src/efm32_dbg.c \ -./lib/efm32lib/src/efm32_dma.c \ -./lib/efm32lib/src/efm32_ebi.c \ -./lib/efm32lib/src/efm32_emu.c \ -./lib/efm32lib/src/efm32_gpio.c \ -./lib/efm32lib/src/efm32_i2c.c \ -./lib/efm32lib/src/efm32_int.c \ -./lib/efm32lib/src/efm32_lcd.c \ -./lib/efm32lib/src/efm32_lesense.c \ -./lib/efm32lib/src/efm32_letimer.c \ -./lib/efm32lib/src/efm32_leuart.c \ -./lib/efm32lib/src/efm32_mpu.c \ -./lib/efm32lib/src/efm32_msc.c \ -./lib/efm32lib/src/efm32_opamp.c \ -./lib/efm32lib/src/efm32_pcnt.c \ -./lib/efm32lib/src/efm32_prs.c \ -./lib/efm32lib/src/efm32_rmu.c \ -./lib/efm32lib/src/efm32_rtc.c \ -./lib/efm32lib/src/efm32_system.c \ -./lib/efm32lib/src/efm32_timer.c \ -./lib/efm32lib/src/efm32_usart.c \ -./lib/efm32lib/src/efm32_vcmp.c \ -./lib/efm32lib/src/efm32_wdog.c \ -../../../Source/boot.c \ -../../../Source/boot.h \ -../../../Source/com.c \ -../../../Source/com.h \ -../../../Source/xcp.c \ -../../../Source/xcp.h \ -../../../Source/backdoor.c \ -../../../Source/backdoor.h \ -../../../Source/cop.c \ -../../../Source/cop.h \ -../../../Source/assert.c \ -../../../Source/assert.h \ -../../../Source/cpu.h \ -../../../Source/uart.h \ -../../../Source/nvm.h \ -../../../Source/timer.h \ -../../../Source/plausibility.h \ -../../../Source/ARMCM3_EFM32/types.h \ -../../../Source/ARMCM3_EFM32/cpu.c \ -../../../Source/ARMCM3_EFM32/uart.c \ -../../../Source/ARMCM3_EFM32/nvm.c \ -../../../Source/ARMCM3_EFM32/timer.c \ -../../../Source/ARMCM3_EFM32/flash.c \ -../../../Source/ARMCM3_EFM32/flash.h \ -../../../Source/ARMCM3_EFM32/GCC/cpu_comp.c +#|--------------------------------------------------------------------------------------| +#| Configure tool path | +#|--------------------------------------------------------------------------------------| +TOOL_PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/ -#|---------------------------------------------------------------------------------------| -#| Compiler binaries | -#|---------------------------------------------------------------------------------------| -CC = arm-none-eabi-gcc -LN = arm-none-eabi-gcc -OC = arm-none-eabi-objcopy -OD = arm-none-eabi-objdump -AS = arm-none-eabi-as -SZ = arm-none-eabi-size +#|--------------------------------------------------------------------------------------| +#| Collect project files | +#|--------------------------------------------------------------------------------------| +# Recursive wildcard function implementation. Example usages: +# $(call rwildcard, , *.c *.h) +# --> Returns all *.c and *.h files in the current directory and below +# $(call rwildcard, /lib/, *.c) +# --> Returns all *.c files in the /lib directory and below +rwildcard = $(strip $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))) + +# Collect all application files in the current directory and its subdirectories, but +# exclude flash-layout.c as this one is directly included in a source file, when used. +PROJ_FILES = $(filter-out flash_layout.c, $(call rwildcard, , *.c *.h *.s)) +# Collect bootloader core files +PROJ_FILES += $(wildcard ../../../Source/*.c) +PROJ_FILES += $(wildcard ../../../Source/*.h) +# Collect bootloader port files +PROJ_FILES += $(wildcard ../../../Source/ARMCM3_EFM32/*.c) +PROJ_FILES += $(wildcard ../../../Source/ARMCM3_EFM32/*.h) +# Collect bootloader port compiler specific files +PROJ_FILES += $(wildcard ../../../Source/ARMCM3_EFM32/GCC/*.c) +PROJ_FILES += $(wildcard ../../../Source/ARMCM3_EFM32/GCC/*.h) -#|---------------------------------------------------------------------------------------| -#| Extract file names | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Toolchain binaries | +#|--------------------------------------------------------------------------------------| +RM = rm +CC = $(TOOL_PATH)arm-none-eabi-gcc +LN = $(TOOL_PATH)arm-none-eabi-gcc +OC = $(TOOL_PATH)arm-none-eabi-objcopy +OD = $(TOOL_PATH)arm-none-eabi-objdump +AS = $(TOOL_PATH)arm-none-eabi-gcc +SZ = $(TOOL_PATH)arm-none-eabi-size + + +#|--------------------------------------------------------------------------------------| +#| Filter project files +#|--------------------------------------------------------------------------------------| PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) PROJ_CSRCS = $(filter %.c,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) PROJ_CHDRS = $(filter %.h,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) -PROJ_CCMPL = $(patsubst %.c,%.cpl,$(PROJ_CSRCS)) -PROJ_ACMPL = $(patsubst %.s,%.cpl,$(PROJ_ASRCS)) -#|---------------------------------------------------------------------------------------| -#| Set important path variables | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Set important path variables | +#|--------------------------------------------------------------------------------------| VPATH = $(foreach path,$(sort $(foreach file,$(PROJ_FILES),$(dir $(file)))) $(subst \,/,$(OBJ_PATH)),$(path) :) OBJ_PATH = obj BIN_PATH = bin -INC_PATH = $(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))) -INC_PATH += -I. -I./lib -LIB_PATH = -L./ +INC_PATH = $(patsubst %/,%,$(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file)))))) +LIB_PATH = -#|---------------------------------------------------------------------------------------| -#| Options for compiler binaries | -#|---------------------------------------------------------------------------------------| -CFLAGS = -g -mthumb -mcpu=cortex-m3 -Os -T memory.x -CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -Wno-main -CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -Wno-attributes -CFLAGS += -ffunction-sections -fdata-sections $(INC_PATH) -D EFM32G880F128 -CFLAGS += -Wa,-adhlns="$(OBJ_PATH)/$(subst .o,.lst,$@)" -LFLAGS = -nostartfiles -Xlinker -M -Xlinker -Map=$(BIN_PATH)/$(PROJ_NAME).map -LFLAGS += $(LIB_PATH) -Xlinker --gc-sections -OFLAGS = -O binary -ODFLAGS = -x -SZFLAGS = -B -d +#|--------------------------------------------------------------------------------------| +#| Options for toolchain binaries | +#|--------------------------------------------------------------------------------------| +STDFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -fno-strict-aliasing +STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3 -Wno-maybe-uninitialized +OPTFLAGS = -Og +CFLAGS = $(STDFLAGS) $(OPTFLAGS) +CFLAGS += -DEFM32G880F128 +CFLAGS += $(INC_PATH) +AFLAGS = $(CFLAGS) +LFLAGS = $(STDFLAGS) $(OPTFLAGS) +LFLAGS += -Wl,-script="memory.x" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map +LFLAGS += -specs=nano.specs -Wl,--gc-sections $(LIB_PATH) +OFLAGS = -O binary +ODFLAGS = -x +SZFLAGS = -B -d +RMFLAGS = -f -#|---------------------------------------------------------------------------------------| -#| Specify library files | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Specify library files | +#|--------------------------------------------------------------------------------------| LIBS = -#|---------------------------------------------------------------------------------------| -#| Define targets | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Define targets | +#|--------------------------------------------------------------------------------------| AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS)) COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS)) -#|---------------------------------------------------------------------------------------| -#| Make ALL | -#|---------------------------------------------------------------------------------------| -all : $(BIN_PATH)/$(PROJ_NAME).bin +#|--------------------------------------------------------------------------------------| +#| Make ALL | +#|--------------------------------------------------------------------------------------| +.PHONY: all +all: $(BIN_PATH)/$(PROJ_NAME).bin $(BIN_PATH)/$(PROJ_NAME).bin : $(BIN_PATH)/$(PROJ_NAME).elf @@ -211,31 +139,32 @@ $(BIN_PATH)/$(PROJ_NAME).bin : $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).elf : $(AOBJS) $(COBJS) @echo +++ Linking [$(notdir $@)] - @$(LN) $(CFLAGS) -o $@ $(patsubst %.o,$(OBJ_PATH)/%.o,$(^F)) $(LIBS) $(LFLAGS) + @$(LN) $(LFLAGS) -o $@ $(patsubst %.o,$(OBJ_PATH)/%.o,$(^F)) $(LIBS) -#|---------------------------------------------------------------------------------------| -#| Compile and assemble | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Compile and assemble | +#|--------------------------------------------------------------------------------------| $(AOBJS): %.o: %.s $(PROJ_CHDRS) @echo +++ Assembling [$(notdir $<)] - @$(AS) $(AFLAGS) $< -o $(OBJ_PATH)/$(@F) + @$(AS) $(AFLAGS) -c $< -o $(OBJ_PATH)/$(@F) $(COBJS): %.o: %.c $(PROJ_CHDRS) @echo +++ Compiling [$(notdir $<)] @$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F) -#|---------------------------------------------------------------------------------------| -#| Make CLEAN | -#|---------------------------------------------------------------------------------------| -clean : +#|--------------------------------------------------------------------------------------| +#| Make CLEAN | +#|--------------------------------------------------------------------------------------| +.PHONY: clean +clean: @echo +++ Cleaning build environment - @cs-rm -f $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) - @cs-rm -f $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) - @cs-rm -f $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) - @cs-rm -f $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map - @cs-rm -f $(BIN_PATH)/$(PROJ_NAME).bin + @$(RM) $(RMFLAGS) $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) + @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) + @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin @echo +++ Clean complete - \ No newline at end of file + diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/memory.x b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/memory.x index 5ac5a7ce..2135da7d 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/memory.x +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/memory.x @@ -6,13 +6,33 @@ MEMORY SECTIONS { - __STACKSIZE__ = 256; + __STACKSIZE__ = 1024; .text : { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) + KEEP(*(.isr_vector)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) _etext = .; } > FLASH diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf index a862ea51..a416eeec 100644 Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf differ diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map index 63ba21ed..72bbcdbc 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map @@ -1,133 +1,172 @@ - -bin/demoprog_olimex_efm32g880.elf: file format elf32-littlearm -bin/demoprog_olimex_efm32g880.elf -architecture: arm, flags 0x00000112: -EXEC_P, HAS_SYMS, D_PAGED -start address 0x00002000 - -Program Header: - LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**15 - filesz 0x000032c8 memsz 0x000032c8 flags r-x - LOAD off 0x00008000 vaddr 0x20000000 paddr 0x000032c8 align 2**15 - filesz 0x00000008 memsz 0x0000016c flags rw- -private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point] - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 000012c8 00002000 00002000 00002000 2**2 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000008 20000000 000032c8 00008000 2**2 - CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000164 20000008 000032d0 00008008 2**2 - ALLOC - 3 .debug_info 000057a9 00000000 00000000 00008008 2**0 - CONTENTS, READONLY, DEBUGGING - 4 .debug_abbrev 000017e4 00000000 00000000 0000d7b1 2**0 - CONTENTS, READONLY, DEBUGGING - 5 .debug_loc 0000284e 00000000 00000000 0000ef95 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_aranges 00000408 00000000 00000000 000117e3 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_ranges 000003e0 00000000 00000000 00011beb 2**0 - CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00001b0e 00000000 00000000 00011fcb 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_str 00001a97 00000000 00000000 00013ad9 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .comment 00000030 00000000 00000000 00015570 2**0 - CONTENTS, READONLY - 11 .ARM.attributes 00000033 00000000 00000000 000155a0 2**0 - CONTENTS, READONLY - 12 .debug_frame 000007cc 00000000 00000000 000155d4 2**2 - CONTENTS, READONLY, DEBUGGING -SYMBOL TABLE: -00002000 l d .text 00000000 .text -20000000 l d .data 00000000 .data -20000008 l d .bss 00000000 .bss -00000000 l d .debug_info 00000000 .debug_info -00000000 l d .debug_abbrev 00000000 .debug_abbrev -00000000 l d .debug_loc 00000000 .debug_loc -00000000 l d .debug_aranges 00000000 .debug_aranges -00000000 l d .debug_ranges 00000000 .debug_ranges -00000000 l d .debug_line 00000000 .debug_line -00000000 l d .debug_str 00000000 .debug_str -00000000 l d .comment 00000000 .comment -00000000 l d .ARM.attributes 00000000 .ARM.attributes -00000000 l d .debug_frame 00000000 .debug_frame -00000000 l df *ABS* 00000000 vectors.c -00000000 l df *ABS* 00000000 boot.c -20000008 l O .bss 00000004 xcpCtoRxStartTime.5456 -2000000c l O .bss 00000041 xcpCtoReqPacket.5453 -20000050 l O .bss 00000001 xcpCtoRxLength.5454 -20000051 l O .bss 00000001 xcpCtoRxInProgress.5455 -00000000 l df *ABS* 00000000 cstart.c -000022fc l F .text 00000000 zero_loop -00000000 l df *ABS* 00000000 led.c -20000054 l O .bss 00000004 timer_counter_last.5438 -20000058 l O .bss 00000001 led_toggle_state.5437 -00000000 l df *ABS* 00000000 main.c -00000000 l df *ABS* 00000000 timer.c -2000005c l O .bss 00000004 millisecond_counter -00000000 l df *ABS* 00000000 system_efm32.c -20000000 l O .data 00000004 SystemLFXOClock -20000004 l O .data 00000004 SystemHFXOClock -00000000 l df *ABS* 00000000 lcdcontroller.c -00002794 l F .text 0000005e LCD_enableSegment -000027f4 l F .text 0000006e LCD_disableSegment -00000000 l df *ABS* 00000000 efm32_cmu.c -000029bc l F .text 00000034 CMU_FlashWaitStateMax -000029f0 l F .text 0000005c CMU_FlashWaitStateControl -00002a4c l F .text 0000004a CMU_LFClkGet -00000000 l df *ABS* 00000000 efm32_emu.c -20000064 l O .bss 00000002 cmuStatus -00000000 l df *ABS* 00000000 efm32_gpio.c -00000000 l df *ABS* 00000000 efm32_leuart.c -00000000 l df *ABS* 00000000 efm32_system.c -00000000 l df *ABS* 00000000 -00000100 l *ABS* 00000000 __STACKSIZE__ -000030c4 g F .text 0000001a GPIO_DriveModeSet -000030ac g F .text 00000016 EMU_UpdateOscConfig -000022b8 g F .text 00000060 reset_handler -00002db0 g F .text 000001b0 CMU_ClockFreqGet -00003210 g F .text 0000001e LEUART_Enable -20000060 g O .bss 00000004 frameCounter -00002f60 g F .text 00000064 CMU_OscillatorEnable -000028a0 g F .text 0000007e LCD_Symbol -000032c8 g .text 00000000 _etext -0000268c g F .text 00000010 TimerISRHandler -00002d18 g F .text 00000098 CMU_ClockSelectGet -20000068 g O .bss 00000004 SystemCoreClock -00002788 g F .text 0000000c SystemLFXOClockGet -00002c84 g F .text 00000094 CMU_ClockEnable -00002884 g F .text 0000001a LCD_AllOff -00003284 g F .text 0000000e LEUART_Rx -00002180 g F .text 00000022 BootActivate -2000006c g .bss 00000000 _ebss -00002864 g F .text 0000001e LCD_IRQHandler -0000269c g F .text 00000002 UnusedISR -00002324 g F .text 00000016 LedInit -00003230 g F .text 00000052 LEUART_Init -00002fc4 g F .text 000000e8 CMU_ClockSelectSet -20000008 g .bss 00000000 _bss -000026a0 g F .text 000000b4 SystemHFClockGet -00002920 g F .text 0000009c LCD_Init -000023b8 g F .text 00000278 main -000030e0 g F .text 000000ce GPIO_PinModeSet -000020bc g F .text 000000c4 BootComInit -0000277c g F .text 00000002 SystemInit -00002a98 g F .text 000001ec CMU_ClockDivSet -20000000 g .data 00000000 _data -0000233c g F .text 0000007a LedToggle -00002780 g F .text 00000006 SystemLFRCOClockGet -000031b0 g F .text 0000005e LEUART_BaudrateSet -00003294 g F .text 00000022 SYSTEM_ChipRevisionGet -00002754 g F .text 00000028 SystemCoreClockGet -2000016c g .bss 00000000 _estack -20000008 g .data 00000000 _edata -00002000 g O .text 000000bc _vectab -000021a4 g F .text 00000114 BootComCheckActivationRequest -2000006c g .bss 00000000 _stack -00002680 g F .text 0000000c TimerGet -00002630 g F .text 0000004e TimerInit - - + +bin/demoprog_olimex_efm32g880.elf: file format elf32-littlearm +bin/demoprog_olimex_efm32g880.elf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00002000 + +Program Header: + LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**16 + filesz 0x00002fcc memsz 0x00002fcc flags r-x + LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00002fcc align 2**16 + filesz 0x00000008 memsz 0x00000470 flags rw- +private flags = 5000200: [Version5 EABI] [soft-float ABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 00000fcc 00002000 00002000 00002000 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 00000008 20000000 00002fcc 00010000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .bss 00000468 20000008 00002fd4 00010008 2**2 + ALLOC + 3 .ARM.attributes 00000029 00000000 00000000 00010008 2**0 + CONTENTS, READONLY + 4 .comment 0000006e 00000000 00000000 00010031 2**0 + CONTENTS, READONLY + 5 .debug_info 00005b43 00000000 00000000 0001009f 2**0 + CONTENTS, READONLY, DEBUGGING + 6 .debug_abbrev 000018c1 00000000 00000000 00015be2 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_loc 000024e4 00000000 00000000 000174a3 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_aranges 00000448 00000000 00000000 00019987 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_ranges 00000378 00000000 00000000 00019dcf 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_macro 0001457d 00000000 00000000 0001a147 2**0 + CONTENTS, READONLY, DEBUGGING + 11 .debug_line 000031d8 00000000 00000000 0002e6c4 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_str 00076f46 00000000 00000000 0003189c 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_frame 0000088c 00000000 00000000 000a87e4 2**2 + CONTENTS, READONLY, DEBUGGING +SYMBOL TABLE: +00002000 l d .text 00000000 .text +20000000 l d .data 00000000 .data +20000008 l d .bss 00000000 .bss +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l d .comment 00000000 .comment +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_ranges 00000000 .debug_ranges +00000000 l d .debug_macro 00000000 .debug_macro +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_str 00000000 .debug_str +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l df *ABS* 00000000 vectors.c +00000000 l df *ABS* 00000000 boot.c +000020bc l F .text 00000098 BootComUartInit +00002154 l F .text 00000024 UartReceiveByte +000021a0 l F .text 00000094 BootComUartCheckActivationRequest +20000008 l O .bss 00000004 xcpCtoRxStartTime.5582 +2000000c l O .bss 00000001 xcpCtoRxLength.5580 +20000010 l O .bss 00000041 xcpCtoReqPacket.5579 +20000051 l O .bss 00000001 xcpCtoRxInProgress.5581 +00000000 l df *ABS* 00000000 main.c +00002240 l F .text 000001ec Init +00000000 l df *ABS* 00000000 cstart.c +00002462 l F .text 00000000 zero_loop +00000000 l df *ABS* 00000000 led.c +20000054 l O .bss 00000004 timer_counter_last.5564 +20000058 l O .bss 00000001 led_toggle_state.5563 +00000000 l df *ABS* 00000000 timer.c +2000005c l O .bss 00000004 millisecond_counter +00000000 l df *ABS* 00000000 efm32_leuart.c +00000000 l df *ABS* 00000000 efm32_system.c +00000000 l df *ABS* 00000000 efm32_cmu.c +0000264c l F .text 00000030 CMU_FlashWaitStateMax +0000267c l F .text 0000000c CMU_DivToLog2 +00002688 l F .text 00000060 CMU_FlashWaitStateControl +000026e8 l F .text 00000008 CMU_AUXClkGet +000026f0 l F .text 00000038 CMU_LFClkGet +00002988 l F .text 00000024 CMU_DBGClkGet +00000000 l df *ABS* 00000000 efm32_gpio.c +00000000 l df *ABS* 00000000 efm32_emu.c +20000060 l O .bss 00000002 cmuStatus +00000000 l df *ABS* 00000000 lcdcontroller.c +00002cc4 l F .text 0000005e LCD_enableSegment +00002d24 l F .text 0000006e LCD_disableSegment +00000000 l df *ABS* 00000000 system_efm32.c +20000000 l O .data 00000004 SystemLFXOClock +20000004 l O .data 00000004 SystemHFXOClock +00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m/crti.o +00000000 l df *ABS* 00000000 /opt/gcc-arm-none-eabi-5_4-2016q3/bin/../lib/gcc/arm-none-eabi/5.4.1/armv7-m/crtn.o +00000000 l df *ABS* 00000000 crtstuff.c +00002fc8 l O .text 00000000 __EH_FRAME_BEGIN__ +00000000 l df *ABS* 00000000 crtstuff.c +00002fc8 l O .text 00000000 __FRAME_END__ +00000000 l df *ABS* 00000000 +00000000 l *UND* 00000000 __bss_start__ +00000000 l *UND* 00000000 __libc_fini_array +00000000 l *UND* 00000000 __sf_fake_stderr +00000000 l *UND* 00000000 __deregister_frame_info +00000000 l *UND* 00000000 __bss_end__ +00000000 l *UND* 00000000 __call_exitprocs +00000000 l *UND* 00000000 software_init_hook +00000000 l *UND* 00000000 __sf_fake_stdin +00000000 l *UND* 00000000 __init_array_end +00000000 l *UND* 00000000 hardware_init_hook +00000000 l *UND* 00000000 atexit +00000000 l *UND* 00000000 __preinit_array_end +00000000 l *UND* 00000000 __stack +00000000 l *UND* 00000000 __sf_fake_stdout +00000000 l *UND* 00000000 __init_array_start +00000000 l *UND* 00000000 _exit +00000000 l *UND* 00000000 _Jv_RegisterClasses +00000000 l *UND* 00000000 __preinit_array_start +00000000 l *UND* 00000000 __register_frame_info +00002bc8 g F .text 00000020 GPIO_DriveModeSet +00002cb0 g F .text 00000014 EMU_UpdateOscConfig +00002440 g F .text 00000040 reset_handler +000029ac g F .text 00000118 CMU_ClockFreqGet +00002598 g F .text 0000001e LEUART_Enable +000025b8 g F .text 00000014 LEUART_FreezeEnable +20000064 g O .bss 00000004 frameCounter +00002ac4 g F .text 00000050 CMU_OscillatorEnable +00002dcc g F .text 00000072 LCD_Symbol +00002fcc g .text 00000000 _etext +0000253c g F .text 00000010 TimerISRHandler +000028f4 g F .text 00000094 CMU_ClockSelectGet +20000068 g O .bss 00000004 SystemCoreClock +00002f94 g F .text 0000000c SystemLFXOClockGet +00002878 g F .text 0000007c CMU_ClockEnable +00002db0 g F .text 0000001a LCD_AllOff +0000261c g F .text 0000000e LEUART_Rx +00002fa0 g F .text 00000000 _init +00002180 g F .text 00000020 BootActivate +20000070 g .bss 00000000 _ebss +00002d94 g F .text 0000001c LCD_IRQHandler +00000400 g *ABS* 00000000 __STACKSIZE__ +0000223c g F .text 00000002 UnusedISR +0000248c g F .text 00000010 LedInit +000025cc g F .text 0000004e LEUART_Init +00002b14 g F .text 000000b4 CMU_ClockSelectSet +20000008 g .bss 00000000 _bss +00002ecc g F .text 0000009c SystemHFClockGet +00002e40 g F .text 0000008c LCD_Init +0000242c g F .text 00000014 main +000024e8 g F .text 0000000c TimerSet +00002be8 g F .text 000000c8 GPIO_PinModeSet +00002178 g F .text 00000008 BootComInit +00002f88 g F .text 00000002 SystemInit +00002fac g F .text 00000000 _fini +00002728 g F .text 00000150 CMU_ClockDivSet +20000000 g .data 00000000 _data +0000249c g F .text 0000004c LedToggle +00002f8c g F .text 00000006 SystemLFRCOClockGet +0000254c g F .text 0000004c LEUART_BaudrateSet +0000262c g F .text 00000020 SYSTEM_ChipRevisionGet +00002f68 g F .text 00000020 SystemCoreClockGet +20000470 g .bss 00000000 _estack +20000008 g .data 00000000 _edata +00002000 g O .text 000000bc _vectab +00002234 g F .text 00000008 BootComCheckActivationRequest +20000070 g .bss 00000000 _stack +00002530 g F .text 0000000c TimerGet +000024f4 g F .text 0000003c TimerInit + + diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.srec b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.srec index a93199c7..acab1b29 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.srec +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.srec @@ -1,304 +1,256 @@ S025000062696E2F64656D6F70726F675F6F6C696D65785F65666D3332673838302E737265634A -S11320006C010020B92200009D2600009D260000DE -S11320109D2600009D2600009D2600009D260000B0 -S11320209D2600009D2600009D2600009D260000A0 -S11320309D2600009D2600009D2600008D260000A0 -S11320409D2600009D2600009D2600009D26000080 -S11320509D2600009D2600009D2600009D26000070 -S11320609D2600009D2600009D2600009D26000060 -S11320709D2600009D2600009D2600009D26000050 -S11320809D2600009D2600009D2600009D26000040 -S11320909D2600009D2600009D2600009D26000030 -S11320A09D2600009D2600009D2600006528000056 -S11320B09D2600009D260000EE11AA5570B584B03F -S11320C043F2B823C0F200030FCB8DE80F004FF4A6 -S11320D04240C0F20200012142F68544C0F20004ED -S11320E0A047022006210422012343F2E106C0F2A4 -S11320F00006B0470220072101220023B0474FF415 -S11321000C50C0F204000121A0470320C0F21200C9 -S1132110022142F6C573C0F2000398474FF4AA5651 -S1132120C0F216063046012142F69923C0F200039C -S1132130984730460121A04700268DF800604FF4EF -S11321408844C4F208042046694643F23123C0F2AD -S113215000039847204631464FF4165243F2B11318 -S1132160C0F2000398470323636504236363204696 -S1132170052143F21123C0F20003984704B070BD57 -S1132180BFF34F8F4FF46D42CEF20002D16801F4D9 -S1132190E0610423C0F2FA530B43D360BFF34F8FC3 -S11321A0FEE700BF10B540F25103C2F200031B78F2 -S11321B073BB4FF48843C4F20803DB6A13F0040FC3 -S11321C079D04FF48840C4F2080043F28523C0F26A -S11321D00003984740F20C03C2F200031870002871 -S11321E069D042F28163C0F20003984740F20803C9 -S11321F0C2F20003186040F25103C2F2000301224C -S11322001A7040F25003C2F2000300221A7010BD8B -S113221040F25003C2F200031C784FF48843C4F226 -S11322200803DB6A13F0040F38D04FF48840C4F27B -S1132230080043F28523C0F20003984740F20C03E0 -S1132240C2F200031C44607040F25002C2F2000269 -S113225011780131C9B211701B788B422BD140F235 -S11322605103C2F2000300221A7040F20C03C2F2BE -S113227000035B78FF2B1ED140F20C03C2F2000373 -S11322809B78C3B942F28113C0F20003984740F22D -S11322905103C2F2000300221A7010BD42F281639E -S11322A0C0F20003984740F20803C2F200031B681F -S11322B064339842EBD810BD10B517498D4640F2EF -S11322C00002C2F2000240F20803C2F200039A4282 -S11322D010D2131D0F4CE41A24F003040434002319 -S11322E0104643F2C821C0F200015A581A50043370 -S11322F0A342FAD109480A494FF000028842B8BF04 -S113230040F8042BFADB42F2B933C0F200039847D9 -S113231010BD00BF0B0000206C010020080000204D -S11323206C00002008B54FF42040C4F2080042F6C7 -S11323302113C0F20003984708BD00BF10B542F254 -S11323408163C0F200039847044640F25403C2F28A -S113235000031B68C31AB3F5FA7F2BD340F258036A -S1132360C2F200031B7883B940F25803C2F200039F -S113237001221A704FF42040C4F20800002142F6F2 -S1132380A103C0F2000398470FE040F25803C2F2E1 -S1132390000300221A704FF42040C4F208001146D2 -S11323A042F6A103C0F20003984740F25403C2F27C -S11323B000031C6010BD00BF00B583B042F27D7302 -S11323C0C0F20003984748F2FC13C0F6E0731B68A0 -S11323D01B0E14D14AF20C03C4F20C031A6822F047 -S11323E070021A6046F22003C4F20C031A6822F049 -S11323F060421A601A6862F060621A6001E0032B9E -S113240021D846F22003C4F20C031A6822F4FC52C9 -S11324101A6048F24002C4F20C020023136048F22E -S11324204402C4F20C02136048F25802C4F20C02D3 -S1132430136048F26002C4F20C02136048F278029E -S1132440C4F20C02136001A843F29523C0F2000306 -S113245098479DF80430012B17D19DF805303BB9FE -S113246048F24003C4F20C031A6842F002021A60F4 -S11324709DF80530012B9FBF48F24403C4F20C03BE -S11324801A6842F0010298BF1A6048F2F013C0F6CD -S1132490E0731A684BF6FF13C4F68A439A422FD8A6 -S11324A048F24403C4F20C031A6842F490421A60DE -S11324B048F2B412C0F6E0721168C1F30621106844 -S11324C01568146804F07F0405F4FE42224300F00A -S11324D07F0042EA004242EA016142F23402C4F25D -S11324E00002116048F2C812C0F6E072116844F2AA -S11324F02C02C4F2000211601A6822F490421A609D -S1132500002001210A4642F66173C0F20003984795 -S11325104FF40043C4F20C031A6C42F00F021A6425 -S11325205A6C6FEA12426FEA02425A644FF44070E6 -S1132530C0F20400002142F68544C0F20004A04722 -S11325404FF49850C0F204000021A0474FF44C50BF -S1132550C0F204000021A0474FF42240C0F2020060 -S11325600021A0474FF40070C0F202000021A047F0 -S11325704FF49050C0F202000021A0474FF40850DD -S1132580C0F202000021A0474FF44850C0F20200FC -S11325900021A0474FF4E440C0F202000021A0470C -S11325A04FF40240C0F202000021A0474FF4324031 -S11325B0C0F202000021A0474FF46240C0F20200C2 -S11325C00021A0474FF47240C0F202000021A0474E -S11325D04FF45240C0F202000021A047012009211B -S11325E00522034643F2E104C0F20004A04701209F -S11325F0022143F2C503C0F20003984742F2253397 -S1132600C0F20003984742F23163C0F200039847D6 -S113261042F2BD03C0F20003984742F23D35C0F2D6 -S1132620000542F2A514C0F20004A847A047FCE745 -S113263008B52020C0F2040042F6B153C0F20003F2 -S1132640984744F6D353C1F26203A3FB00208009E8 -S113265001384EF21003CEF2000358604FF46D427D -S1132660CEF20002E02182F8231000229A600721B2 -S1132670196040F25C03C2F200031A6008BD00BF97 -S113268040F25C03C2F200031868704740F25C0336 -S1132690C2F200031A6801321A607047FEE700BFF5 -S11326A04FF40043C4F20C03DB6A03F47053B3F534 -S11326B0805F47D0B3F5005F03D0B3F5006F0CD152 -S11326C005E040F20003C2F200031868704740F2CC -S11326D00403C2F20003186870474FF40043C4F2C5 -S11326E00C03DB6803F4E063B3F5007F19D004D86E -S11326F00BB3B3F5807F19D022E0B3F5806F24D0FB -S1132700B3F5A06F03D0B3F5407F19D104E04FF4C3 -S11327107C50C0F2AB10704749F68070C0F2D5000F -S113272070474DF6C000C0F2A70070474CF6C07069 -S1132730C0F26A00704744F24020C0F20F007047B4 -S1132740002070474FF40040704746F64070C0F2D6 -S11327504010704708B542F2A163C0F200039847E5 -S11327604FF40043C4F20C035B6803F00F03D8403A -S113277040F26803C2F20003186008BD704700BF4E -S11327804FF40040704700BF40F20003C2F2000360 -S1132790186870471F2AC4BF203A0431012303FA82 -S11327A002F2072924D8DFE801F004080C101418F9 -S11327B01C20036C1A4302647047436C1A4342643E -S11327C07047836C1A4382647047C36C1A43C264B3 -S11327D07047036D1A4302657047436D1A4342659F -S11327E07047836D1A4382657047C36D1A43C2658F -S11327F0704700BF1F2AC4BF203A0431012303FAE3 -S113280002F207292CD8DFE801F004090E13181D81 -S11328102227036C23EA020202647047436C23EA12 -S1132820020242647047836C23EA020282647047A6 -S1132830C36C23EA0202C2647047036D23EA0202F6 -S113284002657047436D23EA020242657047836D57 -S113285023EA020282657047C36D23EA0202C2655D -S1132860704700BF4FF42043C4F208034FF0FF3217 -S11328705A6240F26003C2F200031A6801321A601D -S1132880704700BF002303640365436443658364A6 -S11328908365C364C365436E002BFCD1704700BFDE -S11328A038B50B292AD8DFE801F02706090C0F12E6 -S11328B015181B1E2124032301241FE003231C4697 -S11328C01CE00323002419E00323022416E0272339 -S11328D0002413E02723032410E0012303240DE044 -S11328E0012302240AE001231C4607E001231C46BD -S11328F004E00723032401E00F2303243AB1214613 -S11329001A4642F29573C0F20003984738BD214637 -S11329101A4642F2F573C0F20003984738BD00BF6F -S113292010B504464FF40043C4F20C039A6A22F033 -S113293003029A629A6A42F002029A629A6D42F023 -S113294004029A659A6E22F440729A669A6E42F470 -S113295040729A6600238362636E002BFCD14FF0B1 -S1132960FF3363624FF46143CEF200034FF0006221 -S11329701A600123A36241F60B7363604FF40043B2 -S1132980C4F20C030022DA67204642F68503C0F243 -S11329900003984740F2FF33A36005232360636E6E -S11329A0002BFCD14FF48073C0F21C03E360636E10 -S11329B0002BFCD101236362A36210BD0023C4F287 -S11329C00C035B6803F00702032A0CD8DFE802F06B -S11329D00202070723F0070343F0010303E023F097 -S11329E0070343F003030022C4F20C025360704750 -S11329F00023C4F20C035B684DF6FF32CFF60B7272 -S1132A00024442F2FF31C0F2F4018A420AD803F0D0 -S1132A100702023A012A23F0070394BF43F0030399 -S1132A2043F001034FF41052C0F2F402904208D86C -S1132A3003F00702023A012A23F0070398BF43F088 -S1132A4002030022C4F20C025360704708B54FF42D -S1132A500043C4F20C039B6A4000C34003F0030329 -S1132A60022B09D0032B0DD0012B12D142F281731A -S1132A70C0F20003984708BD42F28973C0F2000314 -S1132A80984708BD42F25573C0F2000398474008C6 -S1132A9008BD002008BD00BF10B50C46C0F30313E9 -S1132AA0013B032B00F2ED80DFE803F002112FA0BD -S1132AB0B1FA81F4E4B24FF40043C4F20C039A680F -S1132AC0C4F11F0422F00F0222439A6010BD42F6A3 -S1132AD0BD13C0F200039847B4FA84F4E4B24FF48F -S1132AE00043C4F20C035A68C4F11F0422F00F021D -S1132AF022435A6042F25573C0F20003984742F6EB -S1132B00F113C0F20003984710BD41F23043C0F204 -S1132B100A0398422AD03023C0F20C03984245D0CD -S1132B204FF48663C0F20803984240F0AA804FF441 -S1132B300043C4F20C035B6D13F0010F07D14FF493 -S1132B400042C4F20C02136D13F0040FFBD1B4FA6B -S1132B5084F1C9B24FF40043C4F20C039A6EC1F17C -S1132B601F0122F00F020A439A6610BD4FF400437E -S1132B70C4F20C035B6D13F0010F07D14FF4004254 -S1132B80C4F20C02136D13F0040FFBD1B4FA84F1F8 -S1132B90C9B24FF40043C4F20C039A6EC1F11F0191 -S1132BA022F0F00242EA01129A6610BD4FF400438B -S1132BB0C4F20C035B6D13F0010F07D14FF4004214 -S1132BC0C4F20C02136D13F0040FFBD1B4FA84F1B8 -S1132BD0C9B24FF40043C4F20C039A6EC1F10F0161 -S1132BE022F4407242EA01229A6610BD4FF4A863AF -S1132BF0C0F21403984206D04FF4AA53C0F216034D -S1132C0098421FD010BD4FF40043C4F20C035B6D17 -S1132C1013F0010F07D14FF40042C4F20C02136DFC -S1132C2013F0400FFBD1B4FA84F4E4B24FF4004340 -S1132C30C4F20C031A6FC4F11F0422F003022243EE -S1132C401A6710BD4FF40043C4F20C035B6D13F01C -S1132C50010F07D14FF40042C4F20C02136D13F0BC -S1132C60400FFBD1B4FA84F4E4B24FF40043C4F24D -S1132C700C031A6FC4F11F0422F0300242EA04125A -S1132C801A6710BD30B4C0F30323013B052B41D8B0 -S1132C90DFE803F0083439191F0348F27804C4F25A -S1132CA00C0434E0C0F3043048F20804C4F20C0409 -S1132CB002E02B6D1A42FCD104F1047400EBC40051 -S1132CC08000016026E0012248F25804C4F20C049A -S1132CD004E0102248F26004C4F20C04C0F304308F -S1132CE04FF40043C4F20C035B6D13F0010F04BFF7 -S1132CF04FF40045C4F20C05DBD0DDE748F2440490 -S1132D00C4F20C0403E048F24004C4F20C04C0F31F -S1132D100430D1E730BC704700F00F0001380328BD -S1132D203ED8DFE800F004192B02072070474FF467 -S1132D300043C4F20C03D86A00F47050B0F5805F0D -S1132D4030D0B0F5005F05D0B0F5006F0CBF0420A3 -S1132D5005207047022070474FF40043C4F20C036F -S1132D60986A00F0030002281ED0032804D001282A -S1132D700CBF032001207047062070474FF4004326 -S1132D80C4F20C03986A00F00C0002280ED0032849 -S1132D9004D001280CBF032001207047062070478F -S1132DA000207047032070470220704702207047BC -S1132DB008B500F47810B0F5402F6AD012D8B0F5F9 -S1132DC0802F3BD004D828B3B0F5003F28D01FE0B3 -S1132DD0B0F5002F3FD0B0F5202F4BD0B0F5C02F69 -S1132DE016D131E0B0F5A01F7ED006D8B0F5602F23 -S1132DF05ED0B0F5901F70D00AE0B0F5C01F00F0AF -S1132E009180B0F5D01F00F0A680B0F5B01F7AD045 -S1132E10002008BD42F2A163C0F20003984708BD38 -S1132E2042F2A163C0F2000398474FF40043C4F296 -S1132E300C039B6803F00F03D84008BD42F255739E -S1132E40C0F20003984708BD002042F64D23C0F2AB -S1132E500003984708BD002042F64D23C0F200034A -S1132E6098474FF40043C4F20C039B6E03F00F0326 -S1132E70D84008BD002042F64D23C0F20003984715 -S1132E804FF40043C4F20C039B6EC3F30313D84006 -S1132E9008BD002042F64D23C0F2000398474FF4CA -S1132EA00043C4F20C039B6EC3F30123D84008BD56 -S1132EB0002042F64D23C0F2000398474FF400432C -S1132EC0C4F20C039A6EC2F30122D040DB6F03F00C -S1132ED007030133B0FBF3F008BD012042F64D2394 -S1132EE0C0F20003984708BD012042F64D23C0F20A -S1132EF0000398474FF40043C4F20C031B6F03F024 -S1132F000303D84008BD012042F64D23C0F200035C -S1132F1098474FF40043C4F20C031B6FC3F301132F -S1132F20D84008BD0420C0F2180042F61953C0F27C -S1132F3000039847072809D0082801D0002008BDBD -S1132F4042F2A163C0F20003984708BD49F68070BD -S1132F50C0F2D50008BD49F68070C0F2D50008BDA6 -S1132F6008B504282DD8DFE800F00C091103060089 -S1132F70012302200CE01023202009E040238020BC -S1132F8006E04FF480734FF4007001E0042308203E -S1132F9069B14FF40041C4F20C010B6262B14FF409 -S1132FA00042C4F20C02D36A1842FCD004E04FF48D -S1132FB00043C4F20C03186243F2AD03C0F20003F1 -S1132FC0984708BD10B500F00F00012804D0002870 -S1132FD06BD0032833D910BD0239032965D8DFE843 -S1132FE001F0020B05080020042407E00220044637 -S1132FF004E00320012401E00120032401210A4606 -S113300042F66173C0F20003984742F6BD13C0F262 -S1133010000398474FF40043C4F20C035C6243F28C -S1133020AD03C0F20003984742F25573C0F20003A7 -S1133030984742F6F113C0F20003984710BD0228E6 -S113304014BF02240024013905292ED8DFE801F039 -S11330501F030D2D2D17002001210A4642F661732E -S1133060C0F200039847022212E001200146024602 -S113307042F66173C0F200039847012208E040F66B -S11330800803C4F2903301221A60032200E00022F4 -S11330904FF40043C4F20C03996AA240032000FADF -S11330A004F421EA040422439A6210BD4FF400435D -S11330B0C4F20C03DA6A40F26403C2F200031A8019 -S11330C0704700BF00EBC000830003F1804303F5A9 -S11330D0C0431A6822F0030211431960704700BF0D -S11330E02DE9F0011446B2B153B101258D4000EB36 -S11330F0C002920002F1804202F5C04215610AE06A -S113310001258D4000EBC006B60046F21002C4F261 -S1133110000232445560072913D800EBC002920024 -S113312002F1804202F5C04257688D0004FA05F6A8 -S11331304FF00F0C0CFA05F527EA050535435560E9 -S113314018E04FF4C042C4F20002C5002E1802EB8E -S11331508606D6F808C08E00203E04FA06F74FF023 -S11331600F0808FA06F62CEA06063E43054402EB6D -S113317085029660C4B95BB1012303FA01F100EB47 -S1133180C000800000F1804000F5C04001610BE008 -S1133190012303FA01F100EBC000800046F21003A2 -S11331A0C4F2000303445960BDE8F001704700BF56 -S11331B038B5044615460846D1B94FF48043C4F2E5 -S11331C008039C420BD04FF48843C4F208039C428A -S11331D004BF4FF4AA50C0F2160004D016E04FF416 -S11331E0A860C0F2140042F6B153C0F2000398473D -S11331F04001B0FBF5F5203DED00236C13F0010F09 -S113320003D1636C13F0040FFBD1E56038BD00BF3C -S1133210CB4303F0050341EA4301036C13F0010FB0 -S113322003D1436C13F0020FFBD14160704700BF20 -S113323038B504460D46036C13F0010F03D1636CDB -S113324013F0020FFBD10A236360636C002BFCD1E3 -S11332500123236423682A7B23F01C0313436A7B22 -S11332601343AA7B1343236020466968AA6843F288 -S1133270B113C0F2000398472B78636000232364E2 -S113328038BD00BF836813F0200FFBD0C069C0B203 -S1133290704700BF4FF6D073CEF20F031A6902F0E5 -S11332A03F0202709A6902F0F002DB69C3F3031370 -S11332B013434370704700BF050000000000000086 -S10B32C080250000000000005D -S10B32C8008000000048E80149 +S113200070040020412400003D2200003D22000015 +S11320103D2200003D2200003D2200003D22000040 +S11320203D2200003D2200003D2200003D22000030 +S11320303D2200003D2200003D2200003D2500001D +S11320403D2200003D2200003D2200003D22000010 +S11320503D2200003D2200003D2200003D22000000 +S11320603D2200003D2200003D2200003D220000F0 +S11320703D2200003D2200003D2200003D220000E0 +S11320803D2200003D2200003D2200003D220000D0 +S11320903D2200003D2200003D2200003D220000C0 +S11320A03D2200003D2200003D220000952D00004D +S11320B03D2200003D220000EE11AA5570B584B007 +S11320C01E4B0FCB8DE80F0001211D4800F0D4FBFF +S11320D0012304220621022000F086FD00230122B0 +S11320E00721022000F080FD0121164800F0C4FB06 +S11320F00221154800F00EFD144C0121204600F089 +S113210013FB0121204600F0B7FB00268DF8006088 +S11321100F4C6946204600F059FA4FF416523146E6 +S1132120204600F013FA0323636504236363052147 +S1132130204600F031FA04B070BD00BFB82F000093 +S113214000C2020000230400030012004015160020 +S113215000440840074BDB6A13F0040F07D010B5A6 +S11321600446044800F05AFA2070012010BD0020F3 +S1132170704700BF0044084008B5FFF79FFF08BD43 +S1132180BFF34F8F0449CA6802F4E062034B134360 +S1132190CB60BFF34F8FFEE700ED00E00400FA05CB +S11321A008B5204B1B789BB91F48FFF7D3FF0128C4 +S11321B036D11D4B1B78002B32D000F0B9F91B4BE4 +S11321C018600122174B1A700022194B1A7008BDAF +S11321D0174B1B78013314481844FFF7BBFF012841 +S11321E014D1134A13780133DBB213700E4A1278F8 +S11321F0934215D100220B4B1A700B4B5B78FF2BCB +S11322000ED1094B9B785BB9FFF7BAFF00F090F948 +S1132210064B1B686433984202D90022014B1A70A2 +S113222008BD00BF5100002010000020080000205D +S11322300C00002008B5FFF7B3FF08BDFEE700BFA0 +S113224000B583B000F0A0FE5E4B1B681B0E0DD1E1 +S11322505D490A6822F070020A605C4A116821F044 +S113226060411160116861F060611160032B11D845 +S1132270564A136823F4FC531360002302F50052FA +S11322802032136004321360143213600832136076 +S11322901832136001A800F0C9F99DF80430012B2D +S11322A010D19DF8053023B9494A136843F002035D +S11322B013609DF80530012B04D8464A136843F097 +S11322C001031360444B1A68444B9A4221D8414994 +S11322D00B6843F490430B60414803681B0A1B06D8 +S11322E003F0FE4203681B0403F4FE031343026875 +S11322F002F4FE421343026802F07F021343394A98 +S11323001360394B1A68394B1A600B6823F49043F5 +S11323100B6001221146002000F0D4FB344A136CF8 +S113232043F00F031364536C6FEA13436FEA0343E0 +S1132330536400212F4800F09FFA00212E4800F03A +S11323409BFA00212D4800F097FA00212C4800F058 +S113235093FA00212B4800F08FFA00212A4800F05C +S11323608BFA0021294800F087FA0021284800F060 +S113237083FA0021274800F07FFA0021264800F064 +S11323807BFA0021254800F077FA0021244800F068 +S113239073FA0021234800F06FFA0021224800F06C +S11323A06BFA012305220921184600F01DFC0221C5 +S11323B0012000F009FC00F069F800F09BF803B07C +S11323C05DF804FBFC81E00F0CA00C4020600C4085 +S11323D040800C4044800C40F081E00FFFB98A4CEF +S11323E0B481E00F34200040C881E00F2C4000404D +S11323F000800C40000304000013040000330400B8 +S113240000A20200000202000012020000220200E8 +S113241000320200007202000082020000B20200D8 +S113242000E2020000F2020000D2020008B5FFF749 +S113243007FFFFF7A1FE00F031F8FFF7FBFEFAE714 +S113244008B50F498D460B4B0B4A03E01168196020 +S11324500433043209498B42F8D30A480A494FF03D +S113246000028842B8BF40F8042BFADBFFF7DEFF16 +S113247008BD00BF00000020CC2F00000800002091 +S113248070040020080000207000002008B50248F5 +S113249000F0D6FC08BD00BF00A0084010B500F055 +S11324A047F80E4B1B68C31AB3F5FA7F14D30446DE +S11324B00B4B1B783BB90122094B1A7000210948C8 +S11324C000F084FC06E00021054B19700A4605481B +S11324D000F07CFC014B1C6010BD00BF54000020C8 +S11324E05800002000A00840014B1860704700BF4E +S11324F05C00002008B50A4800F058FA094BA3FB19 +S1132500003080090138084B5860E021074A82F8FE +S113251023100020986007221A60FFF7E5FF08BD2A +S113252020000400D34D621010E000E000ED00E054 +S1132530014B1868704700BF5C000020024A136812 +S113254001331360704700BF5C00002038B50446B7 +S11325501546084659B90D4B9C4205D003F58063D6 +S11325609C4212D10A4800E00A4800F01FFA4201D6 +S1132570B2FBF5F2203AD200236C13F0010F03D121 +S1132580636C13F0040FFBD1E26038BD00400840D7 +S11325904015160040051400CB435B0003F00A030A +S11325A01943036C13F0010F03D1436C13F0020FB2 +S11325B0FBD14160704700BF29B1436C002BFCD1B3 +S11325C001230364704700230364704738B504464D +S11325D00D46036C13F0010F03D1636C13F0020F6B +S11325E0FBD10A23636001212046FFF7E5FF22683F +S11325F022F01C022B7B1A436B7B1A43AB7B1343E5 +S11326002360AA6869682046FFF7A0FF2B786360FF +S113261000212046FFF7D0FF38BD00BF836813F0C8 +S1132620200FFBD0C069C0B2704700BF06490B69D8 +S113263003F03F0303708B6903F0F002CB69C3F32B +S11326400313134343707047D0FF0FE00A4B5B68DA +S113265003F00702032A0CD8DFE802F0020207079E +S113266023F0070343F0010303E023F0070343F0DF +S11326700303014A5360704700000C40B0FA80F035 +S1132680C0B2C0F11F007047134B5B68134A024489 +S113269013498A420DD803F00702023A012A04D8EA +S11326A023F0070343F0030303E023F0070343F09D +S11326B001030C4A90420BD803F00702023A012AA4 +S11326C004D823F0070343F0020301E023F00703D7 +S11326D0014A5360704700BF00000C40FFDB0BFF52 +S11326E0FF23F4000024F40000487047809FD500C5 +S11326F008B50C4B9B6A400023FA00F000F003007D +S1132700022806D0032807D0012809D100F03EFC96 +S113271008BD00F03FFC08BD00F026FC400808BDE1 +S1132720002008BD00800C4010B50C46C0F3031314 +S1132730013B032B00F29880DFE803F0020C1C66D7 +S11327400846FFF79BFF494A936823F00F03184399 +S1132750906010BDFFF77AFF2046FFF78FFF434AD2 +S1132760536823F00F031843506000F0FDFBFFF79C +S11327708BFF10BD3E4B98421BD003F5F6339842B5 +S11327802CD0A3F57F3398426ED1384B5B6D13F098 +S1132790010F04D1354B1B6D13F0040FFAD1204601 +S11327A0FFF76CFF314A936E23F00F0318439066D2 +S11327B010BD2E4B5B6D13F0010F04D12B4B1B6D21 +S11327C013F0040FFAD12046FFF758FF274A936EFF +S11327D023F0F00343EA0010906610BD234B5B6DB9 +S11327E013F0010F04D1214B1B6D13F0040FFAD128 +S11327F02046FFF743FF1D4A936E23F440731038BD +S113280043EA0023936610BD1A4B984204D003F5A3 +S11328100433984214D010BD144B5B6D13F0010FB8 +S113282004D1124B1B6D13F0400FFAD12046FFF771 +S113283025FF0E4A136F23F003031843106710BDDE +S11328400A4B5B6D13F0010F04D1084B1B6D13F0A1 +S1132850400FFAD12046FFF711FF044A136F23F00B +S1132860300343EA0010106710BD00BF00800C4025 +S113287030140A004005140010B4C0F30323013BD4 +S1132880052B27D8DFE803F0031206090C0F0022FA +S1132890114C0DE00022114C0AE00122104C07E01B +S11328A01022104C04E000220F4C01E000220F4CD7 +S11328B0C0F3043042B10E4B5B6D13F0010F03D132 +S11328C00B4B1B6D1A42FBD104F1047400EBC400E2 +S11328D08000016010BC704708800C4040800C40B0 +S11328E058800C4060800C4078800C4044800C4040 +S11328F000800C4000F00F000138032839D8DFE8CD +S113290000F004182802072070471E4BDB6A03F40A +S11329107053B3F5805F2ED0B3F5005F03D0B3F5E9 +S1132920006F04D101E002207047042070470520A5 +S11329307047144B9B6A03F00303022B1DD0032B37 +S113294003D0012B03D103207047062070470120D8 +S113295070470C4B9B6A03F00C03022B0FD0032B24 +S113296003D0012B03D103207047062070470120B8 +S113297070470020704703207047022070470220F0 +S1132980704700BF00800C4008B50748FFF7B2FF4E +S1132990072804D0082805D100F098FA08BDFFF7ED +S11329A0A3FE08BD002008BD0400180008B500F40B +S11329B07810B0F5402F4CD012D8B0F5802F2FD01E +S11329C004D810B3B0F5003F22D076E0B0F5002F64 +S11329D02DD0B0F5202F33D0B0F5C02F6DD122E02B +S11329E0B0F5A01F51D006D8B0F5602F3AD0B0F59D +S11329F0901F46D061E0B0F5C01F58D0B0F5D01F8D +S1132A0058D0B0F5B01F58D148E000F05FFA08BDC7 +S1132A1000F05CFA2A4B9B6803F00F03D84008BD12 +S1132A2000F0A2FA08BD0020FFF762FE08BD0020F6 +S1132A30FFF75EFE224B9B6E03F00F03D84008BDE8 +S1132A400020FFF755FE1E4B9B6EC3F30313D840C3 +S1132A5008BD0020FFF74CFE194B9B6EC3F3012306 +S1132A60D84008BD0020FFF743FE154A936EC3F318 +S1132A700123D840D36F03F007030133B0FBF3F015 +S1132A8008BD0120FFF734FE08BD0120FFF730FE2A +S1132A900B4B1B6F03F00303D84008BD0120FFF765 +S1132AA027FE074B1B6FC3F30113D84008BDFFF784 +S1132AB06BFF08BDFFF718FE08BD002008BD00BF6E +S1132AC000800C4008B5042821D8DFE800F00C0988 +S1132AD011030600012302200CE01023202009E04A +S1132AE04023802006E04FF480734FF4007001E02F +S1132AF00423082039B106490B6232B1044BDB6A66 +S1132B001842FBD001E0024B186200F0D1F808BD76 +S1132B1000800C4010B500F00F00012804D00028FC +S1132B204DD0032821D910BD0239032947D8DFE845 +S1132B3001F0020B05080020042407E002200446EB +S1132B4004E00320012401E00120032401221146B2 +S1132B50FFF7B8FFFFF77AFD194B5C6200F0A8F8A5 +S1132B6000F002FAFFF790FD10BD022801D1002405 +S1132B7000E002240139052921D8DFE801F0160319 +S1132B800A202011012211460020FFF79BFF022397 +S1132B900CE0012211461046FFF794FF012305E0E3 +S1132BA00122084B1A60032300E000230448816AD1 +S1132BB00322A24021EA0202A3401343836210BD10 +S1132BC000800C400808904330B4064AC40025181D +S1132BD0AB001D46D35823F003031943515130BCB5 +S1132BE0704700BF00600040F0B51446AAB153B16D +S1132BF001258D4000EBC006B20002F1804202F5CF +S1132C00C042156109E001258D4000EBC006B20009 +S1132C1002F1804202F5C0425561072915D8DFF858 +S1132C208CC0C7003D18AA00624456684FEA810E62 +S1132C300F2202FA0EF226EA020504FA0EF22A43E1 +S1132C403D18AE006644726015E0DFF860E0C7002E +S1132C503D18AA007244966801F18042083A920035 +S1132C600F25954026EA050504FA02F22A433D1889 +S1132C70AE007644B260BCB95BB1012303FA01F142 +S1132C8000EBC000830003F1804303F5C0431961E6 +S1132C90F0BD012303FA01F100EBC000830003F14E +S1132CA0804303F5C0435961F0BD00BF006000409C +S1132CB0024BDA6A024B1A80704700BF00800C4056 +S1132CC0600000201F2A01DD203A0431012303FAA9 +S1132CD002F2072924D8DFE801F004080C101418C4 +S1132CE01C20036C1A4302647047436C1A43426409 +S1132CF07047836C1A4382647047C36C1A43C2647E +S1132D007047036D1A4302657047436D1A43426569 +S1132D107047836D1A4382657047C36D1A43C26559 +S1132D20704700BF1F2A01DD203A0431012303FA52 +S1132D3002F207292CD8DFE801F004090E13181D4C +S1132D402227036C23EA020202647047436C23EADD +S1132D50020242647047836C23EA02028264704771 +S1132D60C36C23EA0202C2647047036D23EA0202C1 +S1132D7002657047436D23EA020242657047836D22 +S1132D8023EA020282657047C36D23EA0202C26528 +S1132D90704700BF4FF0FF32034B5A62034A136877 +S1132DA001331360704700BF00A008406400002096 +S1132DB00023036403654364436583648365C364D8 +S1132DC0C365436E002BFCD1704700BF10B50B29BF +S1132DD02AD8DFE801F02706090C0F1215181B1E6C +S1132DE02124032301241FE003231C461CE00323A6 +S1132DF0002419E00323022416E02723002413E00F +S1132E002723032410E0012303240DE001230224DB +S1132E100AE001231C4607E001231C4604E00723C3 +S1132E20032401E00F23032422B11A462146FFF7AD +S1132E3049FF10BD1A462146FFF774FF10BD00BFBD +S1132E4010B504461E4B9A6A22F003029A629A6AEB +S1132E5042F002029A629A6D42F004029A659A6EF6 +S1132E6022F440729A669A6E42F440729A66002383 +S1132E708362636E002BFCD14FF0FF3363624FF02B +S1132E800062104B1A600123A36241F60B73636066 +S1132E9000220B4BDA672046FFF78AFF40F2FF332C +S1132EA0A36005232360636E002BFCD1064BE36013 +S1132EB0636E002BFCD101236362A36210BD00BFCB +S1132EC000800C4000E100E000011C001D4BDB6AA7 +S1132ED003F47053B3F5805F2FD0B3F5005F03D0D4 +S1132EE0B3F5006F06D102E0174B18687047174B13 +S1132EF018687047134BDB6803F4E063B3F5007F95 +S1132F0013D004D8ABB1B3F5807F10D013E0B3F580 +S1132F10806F15D0B3F5A06F03D0B3F5407F0AD10D +S1132F2001E00B4870470B4870470B4870470B484B +S1132F3070470B487047002070474FF400407047BB +S1132F400848704700800C40000000200400002066 +S1132F50003FAB01809FD500C0D8A700C0CF6A0056 +S1132F6040420F00406F400108B5FFF7AFFF044B2C +S1132F705B6803F00F03D840024B186008BD00BF24 +S1132F8000800C4068000020704700BF4FF40040F0 +S1132F90704700BF014B1868704700BF0000002055 +S1132FA0F8B500BFF8BC08BC9E467047F8B500BF32 +S1132FB0F8BC08BC9E4670470500000000000000F5 +S10F2FC08025000000000000000000005C +S10B2FCC008000000048E80148 S9032000DC diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/makefile b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/makefile index 6905c452..6f194523 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/makefile +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/makefile @@ -1,11 +1,11 @@ #**************************************************************************************** -#| Description: Makefile for EFM32 using CodeSourcery GNU GCC compiler toolset +#| Description: Makefile for GNU ARM Embedded toolchain. #| File Name: makefile #| #|--------------------------------------------------------------------------------------- #| C O P Y R I G H T #|--------------------------------------------------------------------------------------- -#| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved +#| Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved #| #|--------------------------------------------------------------------------------------- #| L I C E N S E @@ -25,164 +25,99 @@ #**************************************************************************************** SHELL = sh -#|---------------------------------------------------------------------------------------| -#| Configure project name | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Configure project name | +#|--------------------------------------------------------------------------------------| PROJ_NAME=demoprog_olimex_efm32g880 -#|---------------------------------------------------------------------------------------| -#| Speficy project source files | -#|---------------------------------------------------------------------------------------| -PROJ_FILES= \ -boot.c \ -boot.h \ -cstart.c \ -header.h \ -led.c \ -led.h \ -main.c \ -timer.c \ -timer.h \ -vectors.c \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.c \ -./lib/CMSIS/CM3/CoreSupport/core_cm3.h \ -./lib/CMSIS/CM3/CoreSupport/core_cmFunc.h \ -./lib/CMSIS/CM3/CoreSupport/core_cmInstr.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/efm32g880f128.h \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.c \ -./lib/CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32/system_efm32.h \ -./lib/lcd/lcdcontroller.c \ -./lib/lcd/lcdcontroller.h \ -./lib/lcd/lcddisplay.h \ -./lib/efm32lib/inc/efm32_acmp.h \ -./lib/efm32lib/inc/efm32_adc.h \ -./lib/efm32lib/inc/efm32_aes.h \ -./lib/efm32lib/inc/efm32_assert.h \ -./lib/efm32lib/inc/efm32_bitband.h \ -./lib/efm32lib/inc/efm32_chip.h \ -./lib/efm32lib/inc/efm32_cmu.h \ -./lib/efm32lib/inc/efm32_common.h \ -./lib/efm32lib/inc/efm32_dac.h \ -./lib/efm32lib/inc/efm32_dbg.h \ -./lib/efm32lib/inc/efm32_dma.h \ -./lib/efm32lib/inc/efm32_ebi.h \ -./lib/efm32lib/inc/efm32_emu.h \ -./lib/efm32lib/inc/efm32_gpio.h \ -./lib/efm32lib/inc/efm32_i2c.h \ -./lib/efm32lib/inc/efm32_int.h \ -./lib/efm32lib/inc/efm32_lcd.h \ -./lib/efm32lib/inc/efm32_lesense.h \ -./lib/efm32lib/inc/efm32_letimer.h \ -./lib/efm32lib/inc/efm32_leuart.h \ -./lib/efm32lib/inc/efm32_mpu.h \ -./lib/efm32lib/inc/efm32_msc.h \ -./lib/efm32lib/inc/efm32_opamp.h \ -./lib/efm32lib/inc/efm32_pcnt.h \ -./lib/efm32lib/inc/efm32_prs.h \ -./lib/efm32lib/inc/efm32_rmu.h \ -./lib/efm32lib/inc/efm32_rtc.h \ -./lib/efm32lib/inc/efm32_system.h \ -./lib/efm32lib/inc/efm32_timer.h \ -./lib/efm32lib/inc/efm32_usart.h \ -./lib/efm32lib/inc/efm32_vcmp.h \ -./lib/efm32lib/inc/efm32_wdog.h \ -./lib/efm32lib/src/efm32_acmp.c \ -./lib/efm32lib/src/efm32_adc.c \ -./lib/efm32lib/src/efm32_aes.c \ -./lib/efm32lib/src/efm32_assert.c \ -./lib/efm32lib/src/efm32_cmu.c \ -./lib/efm32lib/src/efm32_dac.c \ -./lib/efm32lib/src/efm32_dbg.c \ -./lib/efm32lib/src/efm32_dma.c \ -./lib/efm32lib/src/efm32_ebi.c \ -./lib/efm32lib/src/efm32_emu.c \ -./lib/efm32lib/src/efm32_gpio.c \ -./lib/efm32lib/src/efm32_i2c.c \ -./lib/efm32lib/src/efm32_int.c \ -./lib/efm32lib/src/efm32_lcd.c \ -./lib/efm32lib/src/efm32_lesense.c \ -./lib/efm32lib/src/efm32_letimer.c \ -./lib/efm32lib/src/efm32_leuart.c \ -./lib/efm32lib/src/efm32_mpu.c \ -./lib/efm32lib/src/efm32_msc.c \ -./lib/efm32lib/src/efm32_opamp.c \ -./lib/efm32lib/src/efm32_pcnt.c \ -./lib/efm32lib/src/efm32_prs.c \ -./lib/efm32lib/src/efm32_rmu.c \ -./lib/efm32lib/src/efm32_rtc.c \ -./lib/efm32lib/src/efm32_system.c \ -./lib/efm32lib/src/efm32_timer.c \ -./lib/efm32lib/src/efm32_usart.c \ -./lib/efm32lib/src/efm32_vcmp.c \ -./lib/efm32lib/src/efm32_wdog.c +#|--------------------------------------------------------------------------------------| +#| Configure tool path | +#|--------------------------------------------------------------------------------------| +TOOL_PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/ -#|---------------------------------------------------------------------------------------| -#| Compiler binaries | -#|---------------------------------------------------------------------------------------| -CC = arm-none-eabi-gcc -LN = arm-none-eabi-gcc -OC = arm-none-eabi-objcopy -OD = arm-none-eabi-objdump -AS = arm-none-eabi-as -SZ = arm-none-eabi-size +#|--------------------------------------------------------------------------------------| +#| Collect project files | +#|--------------------------------------------------------------------------------------| +# Recursive wildcard function implementation. Example usages: +# $(call rwildcard, , *.c *.h) +# --> Returns all *.c and *.h files in the current directory and below +# $(call rwildcard, /lib/, *.c) +# --> Returns all *.c files in the /lib directory and below +rwildcard = $(strip $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d))) + +# Collect all application files in the current directory and its subdirectories +PROJ_FILES = $(call rwildcard, , *.c *.h *.s) -#|---------------------------------------------------------------------------------------| -#| Extract file names | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Toolchain binaries | +#|--------------------------------------------------------------------------------------| +RM = rm +CC = $(TOOL_PATH)arm-none-eabi-gcc +LN = $(TOOL_PATH)arm-none-eabi-gcc +OC = $(TOOL_PATH)arm-none-eabi-objcopy +OD = $(TOOL_PATH)arm-none-eabi-objdump +AS = $(TOOL_PATH)arm-none-eabi-gcc +SZ = $(TOOL_PATH)arm-none-eabi-size + + +#|--------------------------------------------------------------------------------------| +#| Filter project files +#|--------------------------------------------------------------------------------------| PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) PROJ_CSRCS = $(filter %.c,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) PROJ_CHDRS = $(filter %.h,$(foreach file,$(PROJ_FILES),$(notdir $(file)))) -PROJ_CCMPL = $(patsubst %.c,%.cpl,$(PROJ_CSRCS)) -PROJ_ACMPL = $(patsubst %.s,%.cpl,$(PROJ_ASRCS)) -#|---------------------------------------------------------------------------------------| -#| Set important path variables | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Set important path variables | +#|--------------------------------------------------------------------------------------| VPATH = $(foreach path,$(sort $(foreach file,$(PROJ_FILES),$(dir $(file)))) $(subst \,/,$(OBJ_PATH)),$(path) :) OBJ_PATH = obj BIN_PATH = bin -INC_PATH = $(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))) -INC_PATH += -I. -I./lib +INC_PATH = $(patsubst %/,%,$(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file)))))) LIB_PATH = -#|---------------------------------------------------------------------------------------| -#| Options for compiler binaries | -#|---------------------------------------------------------------------------------------| -CFLAGS = -g -mthumb -mcpu=cortex-m3 -mlong-calls -O1 -T memory.x -CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -D sprintf=usprintf -Wno-main -CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -D snprintf=usnprintf -CFLAGS += -D printf=uipprintf -ffunction-sections -fdata-sections $(INC_PATH) -CFLAGS += -D EFM32G880F128 -Wno-attributes -LFLAGS = -nostartfiles -Xlinker -M -Xlinker -Map=$(BIN_PATH)/$(PROJ_NAME).map -LFLAGS += $(LIB_PATH) -Xlinker --gc-sections -OFLAGS = -O srec -ODFLAGS = -x -SZFLAGS = -B -d +#|--------------------------------------------------------------------------------------| +#| Options for toolchain binaries | +#|--------------------------------------------------------------------------------------| +STDFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -fno-strict-aliasing +STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3 -Wno-maybe-uninitialized +OPTFLAGS = -Og +CFLAGS = $(STDFLAGS) $(OPTFLAGS) +CFLAGS += -DEFM32G880F128 +CFLAGS += $(INC_PATH) +AFLAGS = $(CFLAGS) +LFLAGS = $(STDFLAGS) $(OPTFLAGS) +LFLAGS += -Wl,-script="memory.x" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map +LFLAGS += -specs=nano.specs -Wl,--gc-sections $(LIB_PATH) +OFLAGS = -O srec +ODFLAGS = -x +SZFLAGS = -B -d +RMFLAGS = -f -#|---------------------------------------------------------------------------------------| -#| Specify library files | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Specify library files | +#|--------------------------------------------------------------------------------------| LIBS = -#|---------------------------------------------------------------------------------------| -#| Define targets | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Define targets | +#|--------------------------------------------------------------------------------------| AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS)) COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS)) -#|---------------------------------------------------------------------------------------| -#| Make ALL | -#|---------------------------------------------------------------------------------------| -all : $(BIN_PATH)/$(PROJ_NAME).srec +#|--------------------------------------------------------------------------------------| +#| Make ALL | +#|--------------------------------------------------------------------------------------| +.PHONY: all +all: $(BIN_PATH)/$(PROJ_NAME).srec $(BIN_PATH)/$(PROJ_NAME).srec : $(BIN_PATH)/$(PROJ_NAME).elf @@ -194,31 +129,32 @@ $(BIN_PATH)/$(PROJ_NAME).srec : $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).elf : $(AOBJS) $(COBJS) @echo +++ Linking [$(notdir $@)] - @$(LN) $(CFLAGS) -o $@ $(patsubst %.o,$(OBJ_PATH)/%.o,$(^F)) $(LIBS) $(LFLAGS) + @$(LN) $(LFLAGS) -o $@ $(patsubst %.o,$(OBJ_PATH)/%.o,$(^F)) $(LIBS) -#|---------------------------------------------------------------------------------------| -#| Compile and assemble | -#|---------------------------------------------------------------------------------------| +#|--------------------------------------------------------------------------------------| +#| Compile and assemble | +#|--------------------------------------------------------------------------------------| $(AOBJS): %.o: %.s $(PROJ_CHDRS) @echo +++ Assembling [$(notdir $<)] - @$(AS) $(AFLAGS) $< -o $(OBJ_PATH)/$(@F) + @$(AS) $(AFLAGS) -c $< -o $(OBJ_PATH)/$(@F) $(COBJS): %.o: %.c $(PROJ_CHDRS) @echo +++ Compiling [$(notdir $<)] @$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F) -#|---------------------------------------------------------------------------------------| -#| Make CLEAN | -#|---------------------------------------------------------------------------------------| -clean : +#|--------------------------------------------------------------------------------------| +#| Make CLEAN | +#|--------------------------------------------------------------------------------------| +.PHONY: clean +clean: @echo +++ Cleaning build environment - @cs-rm -f $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) - @cs-rm -f $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) - @cs-rm -f $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) - @cs-rm -f $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map - @cs-rm -f $(BIN_PATH)/$(PROJ_NAME).srec + @$(RM) $(RMFLAGS) $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) + @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) + @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec @echo +++ Clean complete - \ No newline at end of file + diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/memory.x b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/memory.x index 9121b204..b16810e9 100644 --- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/memory.x +++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/memory.x @@ -6,13 +6,33 @@ MEMORY SECTIONS { - __STACKSIZE__ = 256; + __STACKSIZE__ = 1024; .text : { - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) + KEEP(*(.isr_vector)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) _etext = .; } > FLASH @@ -21,6 +41,8 @@ SECTIONS _data = .; *(vtable) *(.data*) + *(.ram) + . = ALIGN (8); _edata = .; } > SRAM @@ -29,9 +51,12 @@ SECTIONS _bss = .; *(.bss*) *(COMMON) + . = ALIGN (8); + *(.ram.b .bss.ram) _ebss = .; _stack = .; . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); _estack = .; + } > SRAM } diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/makefile b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/makefile index 6827865d..f0db8622 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/makefile +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/makefile @@ -189,7 +189,7 @@ clean: @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map - @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin @echo +++ Clean complete diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/makefile b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/makefile index 5ebde5d1..dba3037c 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/makefile +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/makefile @@ -166,7 +166,7 @@ clean: @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map - @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec + @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin @echo +++ Clean complete