Refs #363. Updated GCC Makefile support in EFM32 demo programs.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@339 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2017-08-16 14:25:56 +00:00
parent dbcf97f9d6
commit dd8874cfde
12 changed files with 909 additions and 951 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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