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: file format elf32-littlearm
bin/openblt_olimex_efm32g880.elf bin/openblt_olimex_efm32g880.elf
architecture: arm, flags 0x00000112: architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED EXEC_P, HAS_SYMS, D_PAGED
start address 0x00000000 start address 0x00000000
Program Header: Program Header:
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 LOAD off 0x00010000 vaddr 0x00000000 paddr 0x00000000 align 2**16
filesz 0x00001530 memsz 0x00001530 flags r-x filesz 0x000018c8 memsz 0x000018c8 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00001530 align 2**15 LOAD off 0x00020000 vaddr 0x20000000 paddr 0x000018c8 align 2**16
filesz 0x00000148 memsz 0x00000738 flags rwx filesz 0x00000158 memsz 0x00000a48 flags rwx
private flags = 5000200: [Version5 EABI] [soft-float ABI] private flags = 5000200: [Version5 EABI] [soft-float ABI]
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 00001530 00000000 00000000 00008000 2**3 0 .text 000018c8 00000000 00000000 00010000 2**3
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000148 20000000 00001530 00010000 2**2 1 .data 00000158 20000000 000018c8 00020000 2**2
CONTENTS, ALLOC, LOAD, CODE CONTENTS, ALLOC, LOAD, CODE
2 .bss 000005f0 20000148 00001678 00010148 2**2 2 .bss 000008f0 20000158 00001a20 00020158 2**2
ALLOC ALLOC
3 .debug_info 000063ae 00000000 00000000 00010148 2**0 3 .ARM.attributes 00000029 00000000 00000000 00020158 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY
4 .debug_abbrev 0000209d 00000000 00000000 000164f6 2**0 4 .comment 0000006e 00000000 00000000 00020181 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY
5 .debug_loc 00002df8 00000000 00000000 00018593 2**0 5 .debug_info 00006138 00000000 00000000 000201ef 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000005f0 00000000 00000000 0001b38b 2**0 6 .debug_abbrev 00001cd1 00000000 00000000 00026327 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000710 00000000 00000000 0001b97b 2**0 7 .debug_aranges 000006d0 00000000 00000000 00027ff8 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_line 00002236 00000000 00000000 0001c08b 2**0 8 .debug_ranges 00000570 00000000 00000000 000286c8 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001d37 00000000 00000000 0001e2c1 2**0 9 .debug_macro 00014a1d 00000000 00000000 00028c38 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0001fff8 2**0 10 .debug_line 000037b1 00000000 00000000 0003d655 2**0
CONTENTS, READONLY CONTENTS, READONLY, DEBUGGING
11 .ARM.attributes 00000033 00000000 00000000 00020028 2**0 11 .debug_str 0007427c 00000000 00000000 00040e06 2**0
CONTENTS, READONLY CONTENTS, READONLY, DEBUGGING
12 .debug_frame 00000c0c 00000000 00000000 0002005c 2**2 12 .debug_frame 00000e38 00000000 00000000 000b5084 2**2
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE: 13 .debug_loc 00002e1a 00000000 00000000 000b5ebc 2**0
00000000 l d .text 00000000 .text CONTENTS, READONLY, DEBUGGING
20000000 l d .data 00000000 .data SYMBOL TABLE:
20000148 l d .bss 00000000 .bss 00000000 l d .text 00000000 .text
00000000 l d .debug_info 00000000 .debug_info 20000000 l d .data 00000000 .data
00000000 l d .debug_abbrev 00000000 .debug_abbrev 20000158 l d .bss 00000000 .bss
00000000 l d .debug_loc 00000000 .debug_loc 00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .debug_aranges 00000000 .debug_aranges 00000000 l d .comment 00000000 .comment
00000000 l d .debug_ranges 00000000 .debug_ranges 00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_line 00000000 .debug_line 00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_str 00000000 .debug_str 00000000 l d .debug_aranges 00000000 .debug_aranges
00000000 l d .comment 00000000 .comment 00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .ARM.attributes 00000000 .ARM.attributes 00000000 l d .debug_macro 00000000 .debug_macro
00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_line 00000000 .debug_line
00000000 l df *ABS* 00000000 vectors.c 00000000 l d .debug_str 00000000 .debug_str
00000000 l df *ABS* 00000000 main.c 00000000 l d .debug_frame 00000000 .debug_frame
00000000 l df *ABS* 00000000 cstart.c 00000000 l d .debug_loc 00000000 .debug_loc
000002c0 l F .text 00000000 zero_loop 00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 system_efm32.c 00000000 l df *ABS* 00000000 main.c
20000000 l O .data 00000004 SystemLFXOClock 000000c8 l F .text 000001e4 Init
20000004 l O .data 00000004 SystemHFXOClock 00000000 l df *ABS* 00000000 cstart.c
00000000 l df *ABS* 00000000 efm32_cmu.c 000002de l F .text 00000000 zero_loop
000003b4 l F .text 00000030 CMU_FlashWaitStateMax 00000000 l df *ABS* 00000000 efm32_leuart.c
000003e4 l F .text 00000054 CMU_FlashWaitStateControl 00000000 l df *ABS* 00000000 efm32_system.c
00000438 l F .text 00000014 CMU_Sync 00000000 l df *ABS* 00000000 efm32_cmu.c
0000044c l F .text 0000003c CMU_LFClkGet 00000424 l F .text 00000030 CMU_FlashWaitStateMax
0000143a l O .text 00000003 CSWTCH.18 00000454 l F .text 0000000c CMU_DivToLog2
00000000 l df *ABS* 00000000 efm32_emu.c 00000460 l F .text 00000060 CMU_FlashWaitStateControl
20000148 l O .bss 00000002 cmuStatus 000004c0 l F .text 00000008 CMU_AUXClkGet
00000000 l df *ABS* 00000000 efm32_gpio.c 000004c8 l F .text 00000038 CMU_LFClkGet
00000000 l df *ABS* 00000000 efm32_leuart.c 00000760 l F .text 00000024 CMU_DBGClkGet
00000950 l F .text 0000000e LEUART_Sync 00000000 l df *ABS* 00000000 efm32_msc.c
00000000 l df *ABS* 00000000 efm32_msc.c 00000000 l df *ABS* 00000000 efm32_gpio.c
00000000 l df *ABS* 00000000 efm32_system.c 00000000 l df *ABS* 00000000 efm32_emu.c
00000000 l df *ABS* 00000000 boot.c 20000158 l O .bss 00000002 cmuStatus
00000000 l df *ABS* 00000000 com.c 00000000 l df *ABS* 00000000 system_efm32.c
2000014a l O .bss 00000040 xcpCtoReqPacket.4160 20000000 l O .data 00000004 SystemLFXOClock
20000008 l O .data 00000001 comActiveInterface 20000004 l O .data 00000004 SystemHFXOClock
00000000 l df *ABS* 00000000 xcp.c 00000000 l df *ABS* 00000000 xcp.c
00000b44 l F .text 00000014 XcpSetCtoError 00000bac l F .text 0000001e XcpComputeChecksum
0000143d l O .text 00000008 xcpStationId 00000bcc l F .text 0000000c XcpProtectResources
2000018c l O .bss 0000004c xcpInfo 00000bd8 l F .text 00000014 XcpSetCtoError
00000000 l df *ABS* 00000000 backdoor.c 00000bec l F .text 0000001c XcpCmdDisconnect
200001d8 l O .bss 00000001 backdoorOpen 00000c08 l F .text 00000020 XcpCmdGetStatus
200001dc l O .bss 00000004 backdoorOpenTime 00000c28 l F .text 0000000a XcpCmdSynch
00000000 l df *ABS* 00000000 cop.c 00000c34 l F .text 0000002c XcpCmdGetId
00000000 l df *ABS* 00000000 assert.c 00000c60 l F .text 00000018 XcpCmdSetMta
00000000 l df *ABS* 00000000 cpu.c 00000c78 l F .text 00000028 XcpCmdBuildCheckSum
00000000 l df *ABS* 00000000 uart.c 00000ca0 l F .text 0000000a XcpCmdProgramPrepare
200001e0 l O .bss 00000004 xcpCtoRxStartTime.5467 00000cac l F .text 00000028 XcpCmdProgramStart
200001e4 l O .bss 00000041 xcpCtoReqPacket.5464 00000cd4 l F .text 00000044 XcpCmdConnect
20000225 l O .bss 00000001 xcpCtoRxLength.5465 00000d18 l F .text 00000040 XcpCmdUpload
20000226 l O .bss 00000001 xcpCtoRxInProgress.5466 00000d58 l F .text 00000040 XcpCmdShortUpload
00000000 l df *ABS* 00000000 nvm.c 00000d98 l F .text 00000040 XcpCmdProgramMax
00000000 l df *ABS* 00000000 timer.c 00000dd8 l F .text 0000005c XcpCmdProgram
20000228 l O .bss 00000004 millisecond_counter 00000e34 l F .text 00000028 XcpCmdProgramClear
00000000 l df *ABS* 00000000 flash.c 00000e5c l F .text 00000018 XcpCmdProgramReset
00001090 l F .text 00000034 FlashGetSector 00000e74 l F .text 0000000a XcpTransmitPacket
000010c4 l F .text 0000004c FlashWriteBlock 000017d4 l O .text 00000008 xcpStationId
00001110 l F .text 00000050 FlashSwitchBlock 2000015c l O .bss 0000004c xcpInfo
00001160 l F .text 00000080 FlashAddToBlock 00000000 l df *ABS* 00000000 com.c
0000147c l O .text 000000b4 flashLayout 200001a8 l O .bss 00000040 xcpCtoReqPacket.4268
2000022c l O .bss 00000204 bootBlockInfo 20000008 l O .data 00000001 comActiveInterface
20000430 l O .bss 00000204 blockInfo 00000000 l df *ABS* 00000000 backdoor.c
00000000 l df *ABS* 00000000 cpu_comp.c 200001e8 l O .bss 00000001 backdoorOpen
00000000 l df *ABS* 00000000 200001ec l O .bss 00000004 backdoorOpenTime
00000100 l *ABS* 00000000 __STACKSIZE__ 00000000 l df *ABS* 00000000 boot.c
00001410 l F .text 00000010 __MSC_ErasePage_veneer 00000000 l df *ABS* 00000000 cop.c
00001420 l F .text 00000010 __MSC_WriteWord_veneer 00000000 l df *ABS* 00000000 assert.c
00000ab0 g F .text 00000018 ComInit 00000000 l df *ABS* 00000000 uart.c
000011fc g F .text 00000048 FlashWrite 000010c4 l F .text 00000030 UartTransmitByte
000008a8 g F .text 00000018 GPIO_DriveModeSet 000010f4 l F .text 00000024 UartReceiveByte
00000e08 g F .text 00000008 AssertFailure 200001f0 l O .bss 00000004 xcpCtoRxStartTime.5593
00000894 g F .text 00000014 EMU_UpdateOscConfig 200001f4 l O .bss 00000041 xcpCtoReqPacket.5590
0000029c g F .text 00000044 reset_handler 20000235 l O .bss 00000001 xcpCtoRxLength.5591
00000678 g F .text 00000118 CMU_ClockFreqGet 20000236 l O .bss 00000001 xcpCtoRxInProgress.5592
00001064 g F .text 0000001c TimerUpdate 00000000 l df *ABS* 00000000 nvm.c
00000b84 g F .text 00000010 XcpPacketTransmitted 00000000 l df *ABS* 00000000 cpu.c
000009a4 g F .text 00000018 LEUART_Enable 00000000 l df *ABS* 00000000 flash.c
00000ac8 g F .text 00000028 ComTask 00001338 l F .text 0000002c FlashCalcPageSize
00000a7c g F .text 0000001e BootInit 00001364 l F .text 00000048 FlashGetSector
00000de4 g F .text 00000020 BackDoorInit 000013ac l F .text 0000005c FlashWriteBlock
00000790 g F .text 00000050 CMU_OscillatorEnable 00001408 l F .text 00000038 FlashGetSectorBaseAddr
00000e06 g F .text 00000002 CopService 00001440 l F .text 00000038 FlashGetSectorSize
00001530 g .text 00000000 _etext 00001478 l F .text 00000068 FlashEraseSectors
00001406 g F .text 00000004 CpuIrqDisable 000014e0 l F .text 00000026 FlashInitBlock
00001400 g F .text 00000006 FlashGetUserProgBaseAddress 00001508 l F .text 0000003c FlashSwitchBlock
00000610 g F .text 00000068 CMU_ClockSelectGet 00001544 l F .text 0000007a FlashAddToBlock
00001058 g F .text 0000000c TimerReset 00001810 l O .text 000000b4 flashLayout
20000634 g O .bss 00000004 SystemCoreClock 20000238 l O .bss 00000204 bootBlockInfo
00000a9a g F .text 00000016 BootTask 2000043c l O .bss 00000204 blockInfo
0000133c g F .text 00000044 FlashWriteChecksum 00000000 l df *ABS* 00000000 timer.c
00000af4 g F .text 0000001c ComTransmitPacket 20000640 l O .bss 00000004 millisecond_counter
000003a8 g F .text 0000000c SystemLFXOClockGet 00000000 l df *ABS* 00000000 cpu_comp.c
000005a4 g F .text 0000006c CMU_ClockEnable 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
000009fc g F .text 0000000c LEUART_Rx 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
00000b74 g F .text 00000010 XcpIsConnected 00000000 l df *ABS* 00000000 crtstuff.c
00001010 g F .text 00000004 NvmInit 000018c4 l O .text 00000000 __EH_FRAME_BEGIN__
000011e0 g F .text 0000001c FlashInit 00000000 l df *ABS* 00000000 crtstuff.c
00001020 g F .text 00000004 NvmGetUserProgBaseAddress 000018c4 l O .text 00000000 __FRAME_END__
20000638 g .bss 00000000 _ebss 00000000 l df *ABS* 00000000
00000290 g F .text 0000000c UnusedISR 00000000 l *UND* 00000000 __bss_start__
00000af0 g F .text 00000002 ComFree 00000000 l *UND* 00000000 __libc_fini_array
000009bc g F .text 00000040 LEUART_Init 00000000 l *UND* 00000000 __sf_fake_stderr
2000007c g F .data 000000c8 MSC_WriteWord 00000000 l *UND* 00000000 __deregister_frame_info
00000e68 g F .text 00000094 UartInit 00000000 l *UND* 00000000 __bss_end__
00000a40 g F .text 0000001c MSC_Deinit 00000000 l *UND* 00000000 __call_exitprocs
000007e0 g F .text 000000b4 CMU_ClockSelectSet 00000000 l *UND* 00000000 software_init_hook
00001018 g F .text 00000004 NvmErase 00000000 l *UND* 00000000 __sf_fake_stdin
20000148 g .bss 00000000 _bss 00000000 l *UND* 00000000 __init_array_end
000002ec g F .text 00000094 SystemHFClockGet 00000000 l *UND* 00000000 hardware_init_hook
00000b94 g F .text 00000218 XcpPacketReceived 00000000 l *UND* 00000000 atexit
00000e10 g F .text 00000004 CpuInit 00000000 l *UND* 00000000 __preinit_array_end
2000000c g F .data 00000070 MSC_ErasePage 00000000 l *UND* 00000000 __stack
000013c8 g F .text 00000038 FlashDone 00000000 l *UND* 00000000 __sf_fake_stdout
00000b58 g F .text 0000001c XcpInit 00000000 l *UND* 00000000 __init_array_start
00001244 g F .text 000000f8 FlashErase 00000000 l *UND* 00000000 _exit
000000b8 g F .text 000001d8 main 00000000 l *UND* 00000000 _Jv_RegisterClasses
00001024 g F .text 00000012 NvmDone 00000000 l *UND* 00000000 __preinit_array_start
00000efc g F .text 0000007c UartTransmitPacket 00000000 l *UND* 00000000 __register_frame_info
0000101c g F .text 00000004 NvmVerifyChecksum 000017b8 l F .text 00000008 __MSC_WriteWord_veneer
00000e48 g F .text 0000001e CpuMemCopy 000017c0 l F .text 00000008 __MSC_ErasePage_veneer
000008c0 g F .text 00000090 GPIO_PinModeSet 00000f9c g F .text 00000018 ComInit
000003a0 g F .text 00000002 SystemInit 000015dc g F .text 00000058 FlashWrite
00000a08 g F .text 00000018 LEUART_Tx 000009dc g F .text 00000020 GPIO_DriveModeSet
00000488 g F .text 0000011c CMU_ClockDivSet 000010bc g F .text 00000008 AssertFailure
00000b28 g F .text 00000018 ComGetActiveInterfaceMaxTxLen 00000ac4 g F .text 00000014 EMU_UpdateOscConfig
00000f78 g F .text 00000098 UartReceivePacket 000002bc g F .text 00000040 reset_handler
0000140a g F .text 00000004 CpuIrqEnable 00000784 g F .text 00000118 CMU_ClockFreqGet
20000000 g .data 00000000 _data 0000176c g F .text 0000001c TimerUpdate
00000e04 g F .text 00000002 CopInit 00000eac g F .text 00000010 XcpPacketTransmitted
000003a2 g F .text 00000006 SystemLFRCOClockGet 00000354 g F .text 0000001e LEUART_Enable
00000960 g F .text 00000044 LEUART_BaudrateSet 00000374 g F .text 00000014 LEUART_FreezeEnable
00000a5c g F .text 00000020 SYSTEM_ChipRevisionGet 00000fb4 g F .text 00000024 ComTask
00000380 g F .text 00000020 SystemCoreClockGet 00001084 g F .text 0000001c BootInit
00001014 g F .text 00000004 NvmWrite 00001064 g F .text 00000020 BackDoorInit
00000e14 g F .text 00000034 CpuStartUserProgram 0000089c g F .text 00000050 CMU_OscillatorEnable
20000738 g .bss 00000000 _estack 000010b8 g F .text 00000002 CopService
00001380 g F .text 00000048 FlashVerifyChecksum 000018c8 g .text 00000000 _etext
20000148 g .data 00000000 _edata 00001798 g F .text 00000004 CpuIrqDisable
00000000 g O .text 000000b8 _vectab 00001734 g F .text 00000006 FlashGetUserProgBaseAddress
00000b40 g F .text 00000004 ComIsConnected 000006cc g F .text 00000094 CMU_ClockSelectGet
00000b10 g F .text 00000018 ComGetActiveInterfaceMaxRxLen 0000173c g F .text 0000000c TimerReset
00000dac g F .text 00000038 BackDoorCheck 20000644 g O .bss 00000004 SystemCoreClock
20000638 g .bss 00000000 _stack 000010a0 g F .text 00000014 BootTask
00001080 g F .text 00000010 TimerGet 00001664 g F .text 0000004c FlashWriteChecksum
00001038 g F .text 00000020 TimerInit 00000fdc g F .text 00000018 ComTransmitPacket
00000a20 g F .text 00000020 MSC_Init 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 #| File Name: makefile
#| #|
#|--------------------------------------------------------------------------------------- #|---------------------------------------------------------------------------------------
#| C O P Y R I G H T #| 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 #| L I C E N S E
@ -25,181 +25,109 @@
#**************************************************************************************** #****************************************************************************************
SHELL = sh SHELL = sh
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Configure project name | #| Configure project name |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
PROJ_NAME=openblt_olimex_efm32g880 PROJ_NAME=openblt_olimex_efm32g880
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Speficy project source files | #| Configure tool path |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
PROJ_FILES= \ TOOL_PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/
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
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Compiler binaries | #| Collect project files |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
CC = arm-none-eabi-gcc # Recursive wildcard function implementation. Example usages:
LN = arm-none-eabi-gcc # $(call rwildcard, , *.c *.h)
OC = arm-none-eabi-objcopy # --> Returns all *.c and *.h files in the current directory and below
OD = arm-none-eabi-objdump # $(call rwildcard, /lib/, *.c)
AS = arm-none-eabi-as # --> Returns all *.c files in the /lib directory and below
SZ = arm-none-eabi-size 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_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
PROJ_CSRCS = $(filter %.c,$(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_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) :) VPATH = $(foreach path,$(sort $(foreach file,$(PROJ_FILES),$(dir $(file)))) $(subst \,/,$(OBJ_PATH)),$(path) :)
OBJ_PATH = obj OBJ_PATH = obj
BIN_PATH = bin BIN_PATH = bin
INC_PATH = $(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))) INC_PATH = $(patsubst %/,%,$(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))))
INC_PATH += -I. -I./lib LIB_PATH =
LIB_PATH = -L./
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Options for compiler binaries | #| Options for toolchain binaries |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
CFLAGS = -g -mthumb -mcpu=cortex-m3 -Os -T memory.x STDFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -fno-strict-aliasing
CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -Wno-main STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3 -Wno-maybe-uninitialized
CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -Wno-attributes OPTFLAGS = -Og
CFLAGS += -ffunction-sections -fdata-sections $(INC_PATH) -D EFM32G880F128 CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -Wa,-adhlns="$(OBJ_PATH)/$(subst .o,.lst,$@)" CFLAGS += -DEFM32G880F128
LFLAGS = -nostartfiles -Xlinker -M -Xlinker -Map=$(BIN_PATH)/$(PROJ_NAME).map CFLAGS += $(INC_PATH)
LFLAGS += $(LIB_PATH) -Xlinker --gc-sections AFLAGS = $(CFLAGS)
OFLAGS = -O binary LFLAGS = $(STDFLAGS) $(OPTFLAGS)
ODFLAGS = -x LFLAGS += -Wl,-script="memory.x" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
SZFLAGS = -B -d 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 = LIBS =
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Define targets | #| Define targets |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS)) AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS)) COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS))
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Make ALL | #| Make ALL |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
all : $(BIN_PATH)/$(PROJ_NAME).bin .PHONY: all
all: $(BIN_PATH)/$(PROJ_NAME).bin
$(BIN_PATH)/$(PROJ_NAME).bin : $(BIN_PATH)/$(PROJ_NAME).elf $(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) $(BIN_PATH)/$(PROJ_NAME).elf : $(AOBJS) $(COBJS)
@echo +++ Linking [$(notdir $@)] @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) $(AOBJS): %.o: %.s $(PROJ_CHDRS)
@echo +++ Assembling [$(notdir $<)] @echo +++ Assembling [$(notdir $<)]
@$(AS) $(AFLAGS) $< -o $(OBJ_PATH)/$(@F) @$(AS) $(AFLAGS) -c $< -o $(OBJ_PATH)/$(@F)
$(COBJS): %.o: %.c $(PROJ_CHDRS) $(COBJS): %.o: %.c $(PROJ_CHDRS)
@echo +++ Compiling [$(notdir $<)] @echo +++ Compiling [$(notdir $<)]
@$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F) @$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F)
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Make CLEAN | #| Make CLEAN |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
clean : .PHONY: clean
clean:
@echo +++ Cleaning build environment @echo +++ Cleaning build environment
@cs-rm -f $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file))
@cs-rm -f $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file))
@cs-rm -f $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file)))
@cs-rm -f $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map
@cs-rm -f $(BIN_PATH)/$(PROJ_NAME).bin @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin
@echo +++ Clean complete @echo +++ Clean complete

View File

@ -6,13 +6,33 @@ MEMORY
SECTIONS SECTIONS
{ {
__STACKSIZE__ = 256; __STACKSIZE__ = 1024;
.text : .text :
{ {
KEEP(*(.isr_vector)) KEEP(*(.isr_vector))
*(.text*) *(.text*)
*(.rodata*)
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 = .; _etext = .;
} > FLASH } > FLASH

View File

@ -1,133 +1,172 @@
bin/demoprog_olimex_efm32g880.elf: file format elf32-littlearm bin/demoprog_olimex_efm32g880.elf: file format elf32-littlearm
bin/demoprog_olimex_efm32g880.elf bin/demoprog_olimex_efm32g880.elf
architecture: arm, flags 0x00000112: architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED EXEC_P, HAS_SYMS, D_PAGED
start address 0x00002000 start address 0x00002000
Program Header: Program Header:
LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**15 LOAD off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**16
filesz 0x000032c8 memsz 0x000032c8 flags r-x filesz 0x00002fcc memsz 0x00002fcc flags r-x
LOAD off 0x00008000 vaddr 0x20000000 paddr 0x000032c8 align 2**15 LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00002fcc align 2**16
filesz 0x00000008 memsz 0x0000016c flags rw- filesz 0x00000008 memsz 0x00000470 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point] private flags = 5000200: [Version5 EABI] [soft-float ABI]
Sections: Sections:
Idx Name Size VMA LMA File off Algn Idx Name Size VMA LMA File off Algn
0 .text 000012c8 00002000 00002000 00002000 2**2 0 .text 00000fcc 00002000 00002000 00002000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000008 20000000 000032c8 00008000 2**2 1 .data 00000008 20000000 00002fcc 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000164 20000008 000032d0 00008008 2**2 2 .bss 00000468 20000008 00002fd4 00010008 2**2
ALLOC ALLOC
3 .debug_info 000057a9 00000000 00000000 00008008 2**0 3 .ARM.attributes 00000029 00000000 00000000 00010008 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY
4 .debug_abbrev 000017e4 00000000 00000000 0000d7b1 2**0 4 .comment 0000006e 00000000 00000000 00010031 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY
5 .debug_loc 0000284e 00000000 00000000 0000ef95 2**0 5 .debug_info 00005b43 00000000 00000000 0001009f 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 00000408 00000000 00000000 000117e3 2**0 6 .debug_abbrev 000018c1 00000000 00000000 00015be2 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 000003e0 00000000 00000000 00011beb 2**0 7 .debug_loc 000024e4 00000000 00000000 000174a3 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
8 .debug_line 00001b0e 00000000 00000000 00011fcb 2**0 8 .debug_aranges 00000448 00000000 00000000 00019987 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001a97 00000000 00000000 00013ad9 2**0 9 .debug_ranges 00000378 00000000 00000000 00019dcf 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 00015570 2**0 10 .debug_macro 0001457d 00000000 00000000 0001a147 2**0
CONTENTS, READONLY CONTENTS, READONLY, DEBUGGING
11 .ARM.attributes 00000033 00000000 00000000 000155a0 2**0 11 .debug_line 000031d8 00000000 00000000 0002e6c4 2**0
CONTENTS, READONLY CONTENTS, READONLY, DEBUGGING
12 .debug_frame 000007cc 00000000 00000000 000155d4 2**2 12 .debug_str 00076f46 00000000 00000000 0003189c 2**0
CONTENTS, READONLY, DEBUGGING CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE: 13 .debug_frame 0000088c 00000000 00000000 000a87e4 2**2
00002000 l d .text 00000000 .text CONTENTS, READONLY, DEBUGGING
20000000 l d .data 00000000 .data SYMBOL TABLE:
20000008 l d .bss 00000000 .bss 00002000 l d .text 00000000 .text
00000000 l d .debug_info 00000000 .debug_info 20000000 l d .data 00000000 .data
00000000 l d .debug_abbrev 00000000 .debug_abbrev 20000008 l d .bss 00000000 .bss
00000000 l d .debug_loc 00000000 .debug_loc 00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .debug_aranges 00000000 .debug_aranges 00000000 l d .comment 00000000 .comment
00000000 l d .debug_ranges 00000000 .debug_ranges 00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_line 00000000 .debug_line 00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_str 00000000 .debug_str 00000000 l d .debug_loc 00000000 .debug_loc
00000000 l d .comment 00000000 .comment 00000000 l d .debug_aranges 00000000 .debug_aranges
00000000 l d .ARM.attributes 00000000 .ARM.attributes 00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_frame 00000000 .debug_frame 00000000 l d .debug_macro 00000000 .debug_macro
00000000 l df *ABS* 00000000 vectors.c 00000000 l d .debug_line 00000000 .debug_line
00000000 l df *ABS* 00000000 boot.c 00000000 l d .debug_str 00000000 .debug_str
20000008 l O .bss 00000004 xcpCtoRxStartTime.5456 00000000 l d .debug_frame 00000000 .debug_frame
2000000c l O .bss 00000041 xcpCtoReqPacket.5453 00000000 l df *ABS* 00000000 vectors.c
20000050 l O .bss 00000001 xcpCtoRxLength.5454 00000000 l df *ABS* 00000000 boot.c
20000051 l O .bss 00000001 xcpCtoRxInProgress.5455 000020bc l F .text 00000098 BootComUartInit
00000000 l df *ABS* 00000000 cstart.c 00002154 l F .text 00000024 UartReceiveByte
000022fc l F .text 00000000 zero_loop 000021a0 l F .text 00000094 BootComUartCheckActivationRequest
00000000 l df *ABS* 00000000 led.c 20000008 l O .bss 00000004 xcpCtoRxStartTime.5582
20000054 l O .bss 00000004 timer_counter_last.5438 2000000c l O .bss 00000001 xcpCtoRxLength.5580
20000058 l O .bss 00000001 led_toggle_state.5437 20000010 l O .bss 00000041 xcpCtoReqPacket.5579
00000000 l df *ABS* 00000000 main.c 20000051 l O .bss 00000001 xcpCtoRxInProgress.5581
00000000 l df *ABS* 00000000 timer.c 00000000 l df *ABS* 00000000 main.c
2000005c l O .bss 00000004 millisecond_counter 00002240 l F .text 000001ec Init
00000000 l df *ABS* 00000000 system_efm32.c 00000000 l df *ABS* 00000000 cstart.c
20000000 l O .data 00000004 SystemLFXOClock 00002462 l F .text 00000000 zero_loop
20000004 l O .data 00000004 SystemHFXOClock 00000000 l df *ABS* 00000000 led.c
00000000 l df *ABS* 00000000 lcdcontroller.c 20000054 l O .bss 00000004 timer_counter_last.5564
00002794 l F .text 0000005e LCD_enableSegment 20000058 l O .bss 00000001 led_toggle_state.5563
000027f4 l F .text 0000006e LCD_disableSegment 00000000 l df *ABS* 00000000 timer.c
00000000 l df *ABS* 00000000 efm32_cmu.c 2000005c l O .bss 00000004 millisecond_counter
000029bc l F .text 00000034 CMU_FlashWaitStateMax 00000000 l df *ABS* 00000000 efm32_leuart.c
000029f0 l F .text 0000005c CMU_FlashWaitStateControl 00000000 l df *ABS* 00000000 efm32_system.c
00002a4c l F .text 0000004a CMU_LFClkGet 00000000 l df *ABS* 00000000 efm32_cmu.c
00000000 l df *ABS* 00000000 efm32_emu.c 0000264c l F .text 00000030 CMU_FlashWaitStateMax
20000064 l O .bss 00000002 cmuStatus 0000267c l F .text 0000000c CMU_DivToLog2
00000000 l df *ABS* 00000000 efm32_gpio.c 00002688 l F .text 00000060 CMU_FlashWaitStateControl
00000000 l df *ABS* 00000000 efm32_leuart.c 000026e8 l F .text 00000008 CMU_AUXClkGet
00000000 l df *ABS* 00000000 efm32_system.c 000026f0 l F .text 00000038 CMU_LFClkGet
00000000 l df *ABS* 00000000 00002988 l F .text 00000024 CMU_DBGClkGet
00000100 l *ABS* 00000000 __STACKSIZE__ 00000000 l df *ABS* 00000000 efm32_gpio.c
000030c4 g F .text 0000001a GPIO_DriveModeSet 00000000 l df *ABS* 00000000 efm32_emu.c
000030ac g F .text 00000016 EMU_UpdateOscConfig 20000060 l O .bss 00000002 cmuStatus
000022b8 g F .text 00000060 reset_handler 00000000 l df *ABS* 00000000 lcdcontroller.c
00002db0 g F .text 000001b0 CMU_ClockFreqGet 00002cc4 l F .text 0000005e LCD_enableSegment
00003210 g F .text 0000001e LEUART_Enable 00002d24 l F .text 0000006e LCD_disableSegment
20000060 g O .bss 00000004 frameCounter 00000000 l df *ABS* 00000000 system_efm32.c
00002f60 g F .text 00000064 CMU_OscillatorEnable 20000000 l O .data 00000004 SystemLFXOClock
000028a0 g F .text 0000007e LCD_Symbol 20000004 l O .data 00000004 SystemHFXOClock
000032c8 g .text 00000000 _etext 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
0000268c g F .text 00000010 TimerISRHandler 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
00002d18 g F .text 00000098 CMU_ClockSelectGet 00000000 l df *ABS* 00000000 crtstuff.c
20000068 g O .bss 00000004 SystemCoreClock 00002fc8 l O .text 00000000 __EH_FRAME_BEGIN__
00002788 g F .text 0000000c SystemLFXOClockGet 00000000 l df *ABS* 00000000 crtstuff.c
00002c84 g F .text 00000094 CMU_ClockEnable 00002fc8 l O .text 00000000 __FRAME_END__
00002884 g F .text 0000001a LCD_AllOff 00000000 l df *ABS* 00000000
00003284 g F .text 0000000e LEUART_Rx 00000000 l *UND* 00000000 __bss_start__
00002180 g F .text 00000022 BootActivate 00000000 l *UND* 00000000 __libc_fini_array
2000006c g .bss 00000000 _ebss 00000000 l *UND* 00000000 __sf_fake_stderr
00002864 g F .text 0000001e LCD_IRQHandler 00000000 l *UND* 00000000 __deregister_frame_info
0000269c g F .text 00000002 UnusedISR 00000000 l *UND* 00000000 __bss_end__
00002324 g F .text 00000016 LedInit 00000000 l *UND* 00000000 __call_exitprocs
00003230 g F .text 00000052 LEUART_Init 00000000 l *UND* 00000000 software_init_hook
00002fc4 g F .text 000000e8 CMU_ClockSelectSet 00000000 l *UND* 00000000 __sf_fake_stdin
20000008 g .bss 00000000 _bss 00000000 l *UND* 00000000 __init_array_end
000026a0 g F .text 000000b4 SystemHFClockGet 00000000 l *UND* 00000000 hardware_init_hook
00002920 g F .text 0000009c LCD_Init 00000000 l *UND* 00000000 atexit
000023b8 g F .text 00000278 main 00000000 l *UND* 00000000 __preinit_array_end
000030e0 g F .text 000000ce GPIO_PinModeSet 00000000 l *UND* 00000000 __stack
000020bc g F .text 000000c4 BootComInit 00000000 l *UND* 00000000 __sf_fake_stdout
0000277c g F .text 00000002 SystemInit 00000000 l *UND* 00000000 __init_array_start
00002a98 g F .text 000001ec CMU_ClockDivSet 00000000 l *UND* 00000000 _exit
20000000 g .data 00000000 _data 00000000 l *UND* 00000000 _Jv_RegisterClasses
0000233c g F .text 0000007a LedToggle 00000000 l *UND* 00000000 __preinit_array_start
00002780 g F .text 00000006 SystemLFRCOClockGet 00000000 l *UND* 00000000 __register_frame_info
000031b0 g F .text 0000005e LEUART_BaudrateSet 00002bc8 g F .text 00000020 GPIO_DriveModeSet
00003294 g F .text 00000022 SYSTEM_ChipRevisionGet 00002cb0 g F .text 00000014 EMU_UpdateOscConfig
00002754 g F .text 00000028 SystemCoreClockGet 00002440 g F .text 00000040 reset_handler
2000016c g .bss 00000000 _estack 000029ac g F .text 00000118 CMU_ClockFreqGet
20000008 g .data 00000000 _edata 00002598 g F .text 0000001e LEUART_Enable
00002000 g O .text 000000bc _vectab 000025b8 g F .text 00000014 LEUART_FreezeEnable
000021a4 g F .text 00000114 BootComCheckActivationRequest 20000064 g O .bss 00000004 frameCounter
2000006c g .bss 00000000 _stack 00002ac4 g F .text 00000050 CMU_OscillatorEnable
00002680 g F .text 0000000c TimerGet 00002dcc g F .text 00000072 LCD_Symbol
00002630 g F .text 0000004e TimerInit 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 S025000062696E2F64656D6F70726F675F6F6C696D65785F65666D3332673838302E737265634A
S11320006C010020B92200009D2600009D260000DE S113200070040020412400003D2200003D22000015
S11320109D2600009D2600009D2600009D260000B0 S11320103D2200003D2200003D2200003D22000040
S11320209D2600009D2600009D2600009D260000A0 S11320203D2200003D2200003D2200003D22000030
S11320309D2600009D2600009D2600008D260000A0 S11320303D2200003D2200003D2200003D2500001D
S11320409D2600009D2600009D2600009D26000080 S11320403D2200003D2200003D2200003D22000010
S11320509D2600009D2600009D2600009D26000070 S11320503D2200003D2200003D2200003D22000000
S11320609D2600009D2600009D2600009D26000060 S11320603D2200003D2200003D2200003D220000F0
S11320709D2600009D2600009D2600009D26000050 S11320703D2200003D2200003D2200003D220000E0
S11320809D2600009D2600009D2600009D26000040 S11320803D2200003D2200003D2200003D220000D0
S11320909D2600009D2600009D2600009D26000030 S11320903D2200003D2200003D2200003D220000C0
S11320A09D2600009D2600009D2600006528000056 S11320A03D2200003D2200003D220000952D00004D
S11320B09D2600009D260000EE11AA5570B584B03F S11320B03D2200003D220000EE11AA5570B584B007
S11320C043F2B823C0F200030FCB8DE80F004FF4A6 S11320C01E4B0FCB8DE80F0001211D4800F0D4FBFF
S11320D04240C0F20200012142F68544C0F20004ED S11320D0012304220621022000F086FD00230122B0
S11320E0A047022006210422012343F2E106C0F2A4 S11320E00721022000F080FD0121164800F0C4FB06
S11320F00006B0470220072101220023B0474FF415 S11320F00221154800F00EFD144C0121204600F089
S11321000C50C0F204000121A0470320C0F21200C9 S113210013FB0121204600F0B7FB00268DF8006088
S1132110022142F6C573C0F2000398474FF4AA5651 S11321100F4C6946204600F059FA4FF416523146E6
S1132120C0F216063046012142F69923C0F200039C S1132120204600F013FA0323636504236363052147
S1132130984730460121A04700268DF800604FF4EF S1132130204600F031FA04B070BD00BFB82F000093
S11321408844C4F208042046694643F23123C0F2AD S113214000C2020000230400030012004015160020
S113215000039847204631464FF4165243F2B11318 S113215000440840074BDB6A13F0040F07D010B5A6
S1132160C0F2000398470323636504236363204696 S11321600446044800F05AFA2070012010BD0020F3
S1132170052143F21123C0F20003984704B070BD57 S1132170704700BF0044084008B5FFF79FFF08BD43
S1132180BFF34F8F4FF46D42CEF20002D16801F4D9 S1132180BFF34F8F0449CA6802F4E062034B134360
S1132190E0610423C0F2FA530B43D360BFF34F8FC3 S1132190CB60BFF34F8FFEE700ED00E00400FA05CB
S11321A0FEE700BF10B540F25103C2F200031B78F2 S11321A008B5204B1B789BB91F48FFF7D3FF0128C4
S11321B073BB4FF48843C4F20803DB6A13F0040FC3 S11321B036D11D4B1B78002B32D000F0B9F91B4BE4
S11321C079D04FF48840C4F2080043F28523C0F26A S11321C018600122174B1A700022194B1A7008BDAF
S11321D00003984740F20C03C2F200031870002871 S11321D0174B1B78013314481844FFF7BBFF012841
S11321E069D042F28163C0F20003984740F20803C9 S11321E014D1134A13780133DBB213700E4A1278F8
S11321F0C2F20003186040F25103C2F2000301224C S11321F0934215D100220B4B1A700B4B5B78FF2BCB
S11322001A7040F25003C2F2000300221A7010BD8B S11322000ED1094B9B785BB9FFF7BAFF00F090F948
S113221040F25003C2F200031C784FF48843C4F226 S1132210064B1B686433984202D90022014B1A70A2
S11322200803DB6A13F0040F38D04FF48840C4F27B S113222008BD00BF5100002010000020080000205D
S1132230080043F28523C0F20003984740F20C03E0 S11322300C00002008B5FFF7B3FF08BDFEE700BFA0
S1132240C2F200031C44607040F25002C2F2000269 S113224000B583B000F0A0FE5E4B1B681B0E0DD1E1
S113225011780131C9B211701B788B422BD140F235 S11322505D490A6822F070020A605C4A116821F044
S11322605103C2F2000300221A7040F20C03C2F2BE S113226060411160116861F060611160032B11D845
S113227000035B78FF2B1ED140F20C03C2F2000373 S1132270564A136823F4FC531360002302F50052FA
S11322809B78C3B942F28113C0F20003984740F22D S11322802032136004321360143213600832136076
S11322905103C2F2000300221A7010BD42F281639E S11322901832136001A800F0C9F99DF80430012B2D
S11322A0C0F20003984740F20803C2F200031B681F S11322A010D19DF8053023B9494A136843F002035D
S11322B064339842EBD810BD10B517498D4640F2EF S11322B013609DF80530012B04D8464A136843F097
S11322C00002C2F2000240F20803C2F200039A4282 S11322C001031360444B1A68444B9A4221D8414994
S11322D010D2131D0F4CE41A24F003040434002319 S11322D00B6843F490430B60414803681B0A1B06D8
S11322E0104643F2C821C0F200015A581A50043370 S11322E003F0FE4203681B0403F4FE031343026875
S11322F0A342FAD109480A494FF000028842B8BF04 S11322F002F4FE421343026802F07F021343394A98
S113230040F8042BFADB42F2B933C0F200039847D9 S11323001360394B1A68394B1A600B6823F49043F5
S113231010BD00BF0B0000206C010020080000204D S11323100B6001221146002000F0D4FB344A136CF8
S11323206C00002008B54FF42040C4F2080042F6C7 S113232043F00F031364536C6FEA13436FEA0343E0
S11323302113C0F20003984708BD00BF10B542F254 S1132330536400212F4800F09FFA00212E4800F03A
S11323408163C0F200039847044640F25403C2F28A S11323409BFA00212D4800F097FA00212C4800F058
S113235000031B68C31AB3F5FA7F2BD340F258036A S113235093FA00212B4800F08FFA00212A4800F05C
S1132360C2F200031B7883B940F25803C2F200039F S11323608BFA0021294800F087FA0021284800F060
S113237001221A704FF42040C4F20800002142F6F2 S113237083FA0021274800F07FFA0021264800F064
S1132380A103C0F2000398470FE040F25803C2F2E1 S11323807BFA0021254800F077FA0021244800F068
S1132390000300221A704FF42040C4F208001146D2 S113239073FA0021234800F06FFA0021224800F06C
S11323A042F6A103C0F20003984740F25403C2F27C S11323A06BFA012305220921184600F01DFC0221C5
S11323B000031C6010BD00BF00B583B042F27D7302 S11323B0012000F009FC00F069F800F09BF803B07C
S11323C0C0F20003984748F2FC13C0F6E0731B68A0 S11323C05DF804FBFC81E00F0CA00C4020600C4085
S11323D01B0E14D14AF20C03C4F20C031A6822F047 S11323D040800C4044800C40F081E00FFFB98A4CEF
S11323E070021A6046F22003C4F20C031A6822F049 S11323E0B481E00F34200040C881E00F2C4000404D
S11323F060421A601A6862F060621A6001E0032B9E S11323F000800C40000304000013040000330400B8
S113240021D846F22003C4F20C031A6822F4FC52C9 S113240000A20200000202000012020000220200E8
S11324101A6048F24002C4F20C020023136048F22E S113241000320200007202000082020000B20200D8
S11324204402C4F20C02136048F25802C4F20C02D3 S113242000E2020000F2020000D2020008B5FFF749
S1132430136048F26002C4F20C02136048F278029E S113243007FFFFF7A1FE00F031F8FFF7FBFEFAE714
S1132440C4F20C02136001A843F29523C0F2000306 S113244008B50F498D460B4B0B4A03E01168196020
S113245098479DF80430012B17D19DF805303BB9FE S11324500433043209498B42F8D30A480A494FF03D
S113246048F24003C4F20C031A6842F002021A60F4 S113246000028842B8BF40F8042BFADBFFF7DEFF16
S11324709DF80530012B9FBF48F24403C4F20C03BE S113247008BD00BF00000020CC2F00000800002091
S11324801A6842F0010298BF1A6048F2F013C0F6CD S113248070040020080000207000002008B50248F5
S1132490E0731A684BF6FF13C4F68A439A422FD8A6 S113249000F0D6FC08BD00BF00A0084010B500F055
S11324A048F24403C4F20C031A6842F490421A60DE S11324A047F80E4B1B68C31AB3F5FA7F14D30446DE
S11324B048F2B412C0F6E0721168C1F30621106844 S11324B00B4B1B783BB90122094B1A7000210948C8
S11324C01568146804F07F0405F4FE42224300F00A S11324C000F084FC06E00021054B19700A4605481B
S11324D07F0042EA004242EA016142F23402C4F25D S11324D000F07CFC014B1C6010BD00BF54000020C8
S11324E00002116048F2C812C0F6E072116844F2AA S11324E05800002000A00840014B1860704700BF4E
S11324F02C02C4F2000211601A6822F490421A609D S11324F05C00002008B50A4800F058FA094BA3FB19
S1132500002001210A4642F66173C0F20003984795 S1132500003080090138084B5860E021074A82F8FE
S11325104FF40043C4F20C031A6C42F00F021A6425 S113251023100020986007221A60FFF7E5FF08BD2A
S11325205A6C6FEA12426FEA02425A644FF44070E6 S113252020000400D34D621010E000E000ED00E054
S1132530C0F20400002142F68544C0F20004A04722 S1132530014B1868704700BF5C000020024A136812
S11325404FF49850C0F204000021A0474FF44C50BF S113254001331360704700BF5C00002038B50446B7
S1132550C0F204000021A0474FF42240C0F2020060 S11325501546084659B90D4B9C4205D003F58063D6
S11325600021A0474FF40070C0F202000021A047F0 S11325609C4212D10A4800E00A4800F01FFA4201D6
S11325704FF49050C0F202000021A0474FF40850DD S1132570B2FBF5F2203AD200236C13F0010F03D121
S1132580C0F202000021A0474FF44850C0F20200FC S1132580636C13F0040FFBD1E26038BD00400840D7
S11325900021A0474FF4E440C0F202000021A0470C S11325904015160040051400CB435B0003F00A030A
S11325A04FF40240C0F202000021A0474FF4324031 S11325A01943036C13F0010F03D1436C13F0020FB2
S11325B0C0F202000021A0474FF46240C0F20200C2 S11325B0FBD14160704700BF29B1436C002BFCD1B3
S11325C00021A0474FF47240C0F202000021A0474E S11325C001230364704700230364704738B504464D
S11325D04FF45240C0F202000021A047012009211B S11325D00D46036C13F0010F03D1636C13F0020F6B
S11325E00522034643F2E104C0F20004A04701209F S11325E0FBD10A23636001212046FFF7E5FF22683F
S11325F0022143F2C503C0F20003984742F2253397 S11325F022F01C022B7B1A436B7B1A43AB7B1343E5
S1132600C0F20003984742F23163C0F200039847D6 S11326002360AA6869682046FFF7A0FF2B786360FF
S113261042F2BD03C0F20003984742F23D35C0F2D6 S113261000212046FFF7D0FF38BD00BF836813F0C8
S1132620000542F2A514C0F20004A847A047FCE745 S1132620200FFBD0C069C0B2704700BF06490B69D8
S113263008B52020C0F2040042F6B153C0F20003F2 S113263003F03F0303708B6903F0F002CB69C3F32B
S1132640984744F6D353C1F26203A3FB00208009E8 S11326400313134343707047D0FF0FE00A4B5B68DA
S113265001384EF21003CEF2000358604FF46D427D S113265003F00702032A0CD8DFE802F0020207079E
S1132660CEF20002E02182F8231000229A600721B2 S113266023F0070343F0010303E023F0070343F0DF
S1132670196040F25C03C2F200031A6008BD00BF97 S11326700303014A5360704700000C40B0FA80F035
S113268040F25C03C2F200031868704740F25C0336 S1132680C0B2C0F11F007047134B5B68134A024489
S1132690C2F200031A6801321A607047FEE700BFF5 S113269013498A420DD803F00702023A012A04D8EA
S11326A04FF40043C4F20C03DB6A03F47053B3F534 S11326A023F0070343F0030303E023F0070343F09D
S11326B0805F47D0B3F5005F03D0B3F5006F0CD152 S11326B001030C4A90420BD803F00702023A012AA4
S11326C005E040F20003C2F200031868704740F2CC S11326C004D823F0070343F0020301E023F00703D7
S11326D00403C2F20003186870474FF40043C4F2C5 S11326D0014A5360704700BF00000C40FFDB0BFF52
S11326E00C03DB6803F4E063B3F5007F19D004D86E S11326E0FF23F4000024F40000487047809FD500C5
S11326F00BB3B3F5807F19D022E0B3F5806F24D0FB S11326F008B50C4B9B6A400023FA00F000F003007D
S1132700B3F5A06F03D0B3F5407F19D104E04FF4C3 S1132700022806D0032807D0012809D100F03EFC96
S11327107C50C0F2AB10704749F68070C0F2D5000F S113271008BD00F03FFC08BD00F026FC400808BDE1
S113272070474DF6C000C0F2A70070474CF6C07069 S1132720002008BD00800C4010B50C46C0F3031314
S1132730C0F26A00704744F24020C0F20F007047B4 S1132730013B032B00F29880DFE803F0020C1C66D7
S1132740002070474FF40040704746F64070C0F2D6 S11327400846FFF79BFF494A936823F00F03184399
S11327504010704708B542F2A163C0F200039847E5 S1132750906010BDFFF77AFF2046FFF78FFF434AD2
S11327604FF40043C4F20C035B6803F00F03D8403A S1132760536823F00F031843506000F0FDFBFFF79C
S113277040F26803C2F20003186008BD704700BF4E S11327708BFF10BD3E4B98421BD003F5F6339842B5
S11327804FF40040704700BF40F20003C2F2000360 S11327802CD0A3F57F3398426ED1384B5B6D13F098
S1132790186870471F2AC4BF203A0431012303FA82 S1132790010F04D1354B1B6D13F0040FFAD1204601
S11327A002F2072924D8DFE801F004080C101418F9 S11327A0FFF76CFF314A936E23F00F0318439066D2
S11327B01C20036C1A4302647047436C1A4342643E S11327B010BD2E4B5B6D13F0010F04D12B4B1B6D21
S11327C07047836C1A4382647047C36C1A43C264B3 S11327C013F0040FFAD12046FFF758FF274A936EFF
S11327D07047036D1A4302657047436D1A4342659F S11327D023F0F00343EA0010906610BD234B5B6DB9
S11327E07047836D1A4382657047C36D1A43C2658F S11327E013F0010F04D1214B1B6D13F0040FFAD128
S11327F0704700BF1F2AC4BF203A0431012303FAE3 S11327F02046FFF743FF1D4A936E23F440731038BD
S113280002F207292CD8DFE801F004090E13181D81 S113280043EA0023936610BD1A4B984204D003F5A3
S11328102227036C23EA020202647047436C23EA12 S11328100433984214D010BD144B5B6D13F0010FB8
S1132820020242647047836C23EA020282647047A6 S113282004D1124B1B6D13F0400FFAD12046FFF771
S1132830C36C23EA0202C2647047036D23EA0202F6 S113283025FF0E4A136F23F003031843106710BDDE
S113284002657047436D23EA020242657047836D57 S11328400A4B5B6D13F0010F04D1084B1B6D13F0A1
S113285023EA020282657047C36D23EA0202C2655D S1132850400FFAD12046FFF711FF044A136F23F00B
S1132860704700BF4FF42043C4F208034FF0FF3217 S1132860300343EA0010106710BD00BF00800C4025
S11328705A6240F26003C2F200031A6801321A601D S113287030140A004005140010B4C0F30323013BD4
S1132880704700BF002303640365436443658364A6 S1132880052B27D8DFE803F0031206090C0F0022FA
S11328908365C364C365436E002BFCD1704700BFDE S1132890114C0DE00022114C0AE00122104C07E01B
S11328A038B50B292AD8DFE801F02706090C0F12E6 S11328A01022104C04E000220F4C01E000220F4CD7
S11328B015181B1E2124032301241FE003231C4697 S11328B0C0F3043042B10E4B5B6D13F0010F03D132
S11328C01CE00323002419E00323022416E0272339 S11328C00B4B1B6D1A42FBD104F1047400EBC400E2
S11328D0002413E02723032410E0012303240DE044 S11328D08000016010BC704708800C4040800C40B0
S11328E0012302240AE001231C4607E001231C46BD S11328E058800C4060800C4078800C4044800C4040
S11328F004E00723032401E00F2303243AB1214613 S11328F000800C4000F00F000138032839D8DFE8CD
S11329001A4642F29573C0F20003984738BD214637 S113290000F004182802072070471E4BDB6A03F40A
S11329101A4642F2F573C0F20003984738BD00BF6F S11329107053B3F5805F2ED0B3F5005F03D0B3F5E9
S113292010B504464FF40043C4F20C039A6A22F033 S1132920006F04D101E002207047042070470520A5
S113293003029A629A6A42F002029A629A6D42F023 S11329307047144B9B6A03F00303022B1DD0032B37
S113294004029A659A6E22F440729A669A6E42F470 S113294003D0012B03D103207047062070470120D8
S113295040729A6600238362636E002BFCD14FF0B1 S113295070470C4B9B6A03F00C03022B0FD0032B24
S1132960FF3363624FF46143CEF200034FF0006221 S113296003D0012B03D103207047062070470120B8
S11329701A600123A36241F60B7363604FF40043B2 S113297070470020704703207047022070470220F0
S1132980C4F20C030022DA67204642F68503C0F243 S1132980704700BF00800C4008B50748FFF7B2FF4E
S11329900003984740F2FF33A36005232360636E6E S1132990072804D0082805D100F098FA08BDFFF7ED
S11329A0002BFCD14FF48073C0F21C03E360636E10 S11329A0A3FE08BD002008BD0400180008B500F40B
S11329B0002BFCD101236362A36210BD0023C4F287 S11329B07810B0F5402F4CD012D8B0F5802F2FD01E
S11329C00C035B6803F00702032A0CD8DFE802F06B S11329C004D810B3B0F5003F22D076E0B0F5002F64
S11329D00202070723F0070343F0010303E023F097 S11329D02DD0B0F5202F33D0B0F5C02F6DD122E02B
S11329E0070343F003030022C4F20C025360704750 S11329E0B0F5A01F51D006D8B0F5602F3AD0B0F59D
S11329F00023C4F20C035B684DF6FF32CFF60B7272 S11329F0901F46D061E0B0F5C01F58D0B0F5D01F8D
S1132A00024442F2FF31C0F2F4018A420AD803F0D0 S1132A0058D0B0F5B01F58D148E000F05FFA08BDC7
S1132A100702023A012A23F0070394BF43F0030399 S1132A1000F05CFA2A4B9B6803F00F03D84008BD12
S1132A2043F001034FF41052C0F2F402904208D86C S1132A2000F0A2FA08BD0020FFF762FE08BD0020F6
S1132A3003F00702023A012A23F0070398BF43F088 S1132A30FFF75EFE224B9B6E03F00F03D84008BDE8
S1132A4002030022C4F20C025360704708B54FF42D S1132A400020FFF755FE1E4B9B6EC3F30313D840C3
S1132A500043C4F20C039B6A4000C34003F0030329 S1132A5008BD0020FFF74CFE194B9B6EC3F3012306
S1132A60022B09D0032B0DD0012B12D142F281731A S1132A60D84008BD0020FFF743FE154A936EC3F318
S1132A70C0F20003984708BD42F28973C0F2000314 S1132A700123D840D36F03F007030133B0FBF3F015
S1132A80984708BD42F25573C0F2000398474008C6 S1132A8008BD0120FFF734FE08BD0120FFF730FE2A
S1132A9008BD002008BD00BF10B50C46C0F30313E9 S1132A900B4B1B6F03F00303D84008BD0120FFF765
S1132AA0013B032B00F2ED80DFE803F002112FA0BD S1132AA027FE074B1B6FC3F30113D84008BDFFF784
S1132AB0B1FA81F4E4B24FF40043C4F20C039A680F S1132AB06BFF08BDFFF718FE08BD002008BD00BF6E
S1132AC0C4F11F0422F00F0222439A6010BD42F6A3 S1132AC000800C4008B5042821D8DFE800F00C0988
S1132AD0BD13C0F200039847B4FA84F4E4B24FF48F S1132AD011030600012302200CE01023202009E04A
S1132AE00043C4F20C035A68C4F11F0422F00F021D S1132AE04023802006E04FF480734FF4007001E02F
S1132AF022435A6042F25573C0F20003984742F6EB S1132AF00423082039B106490B6232B1044BDB6A66
S1132B00F113C0F20003984710BD41F23043C0F204 S1132B001842FBD001E0024B186200F0D1F808BD76
S1132B100A0398422AD03023C0F20C03984245D0CD S1132B1000800C4010B500F00F00012804D00028FC
S1132B204FF48663C0F20803984240F0AA804FF441 S1132B204DD0032821D910BD0239032947D8DFE845
S1132B300043C4F20C035B6D13F0010F07D14FF493 S1132B3001F0020B05080020042407E002200446EB
S1132B400042C4F20C02136D13F0040FFBD1B4FA6B S1132B4004E00320012401E00120032401221146B2
S1132B5084F1C9B24FF40043C4F20C039A6EC1F17C S1132B50FFF7B8FFFFF77AFD194B5C6200F0A8F8A5
S1132B601F0122F00F020A439A6610BD4FF400437E S1132B6000F002FAFFF790FD10BD022801D1002405
S1132B70C4F20C035B6D13F0010F07D14FF4004254 S1132B7000E002240139052921D8DFE801F0160319
S1132B80C4F20C02136D13F0040FFBD1B4FA84F1F8 S1132B800A202011012211460020FFF79BFF022397
S1132B90C9B24FF40043C4F20C039A6EC1F11F0191 S1132B900CE0012211461046FFF794FF012305E0E3
S1132BA022F0F00242EA01129A6610BD4FF400438B S1132BA00122084B1A60032300E000230448816AD1
S1132BB0C4F20C035B6D13F0010F07D14FF4004214 S1132BB00322A24021EA0202A3401343836210BD10
S1132BC0C4F20C02136D13F0040FFBD1B4FA84F1B8 S1132BC000800C400808904330B4064AC40025181D
S1132BD0C9B24FF40043C4F20C039A6EC1F10F0161 S1132BD0AB001D46D35823F003031943515130BCB5
S1132BE022F4407242EA01229A6610BD4FF4A863AF S1132BE0704700BF00600040F0B51446AAB153B16D
S1132BF0C0F21403984206D04FF4AA53C0F216034D S1132BF001258D4000EBC006B20002F1804202F5CF
S1132C0098421FD010BD4FF40043C4F20C035B6D17 S1132C00C042156109E001258D4000EBC006B20009
S1132C1013F0010F07D14FF40042C4F20C02136DFC S1132C1002F1804202F5C0425561072915D8DFF858
S1132C2013F0400FFBD1B4FA84F4E4B24FF4004340 S1132C208CC0C7003D18AA00624456684FEA810E62
S1132C30C4F20C031A6FC4F11F0422F003022243EE S1132C300F2202FA0EF226EA020504FA0EF22A43E1
S1132C401A6710BD4FF40043C4F20C035B6D13F01C S1132C403D18AE006644726015E0DFF860E0C7002E
S1132C50010F07D14FF40042C4F20C02136D13F0BC S1132C503D18AA007244966801F18042083A920035
S1132C60400FFBD1B4FA84F4E4B24FF40043C4F24D S1132C600F25954026EA050504FA02F22A433D1889
S1132C700C031A6FC4F11F0422F0300242EA04125A S1132C70AE007644B260BCB95BB1012303FA01F142
S1132C801A6710BD30B4C0F30323013B052B41D8B0 S1132C8000EBC000830003F1804303F5C0431961E6
S1132C90DFE803F0083439191F0348F27804C4F25A S1132C90F0BD012303FA01F100EBC000830003F14E
S1132CA00C0434E0C0F3043048F20804C4F20C0409 S1132CA0804303F5C0435961F0BD00BF006000409C
S1132CB002E02B6D1A42FCD104F1047400EBC40051 S1132CB0024BDA6A024B1A80704700BF00800C4056
S1132CC08000016026E0012248F25804C4F20C049A S1132CC0600000201F2A01DD203A0431012303FAA9
S1132CD004E0102248F26004C4F20C04C0F304308F S1132CD002F2072924D8DFE801F004080C101418C4
S1132CE04FF40043C4F20C035B6D13F0010F04BFF7 S1132CE01C20036C1A4302647047436C1A43426409
S1132CF04FF40045C4F20C05DBD0DDE748F2440490 S1132CF07047836C1A4382647047C36C1A43C2647E
S1132D00C4F20C0403E048F24004C4F20C04C0F31F S1132D007047036D1A4302657047436D1A43426569
S1132D100430D1E730BC704700F00F0001380328BD S1132D107047836D1A4382657047C36D1A43C26559
S1132D203ED8DFE800F004192B02072070474FF467 S1132D20704700BF1F2A01DD203A0431012303FA52
S1132D300043C4F20C03D86A00F47050B0F5805F0D S1132D3002F207292CD8DFE801F004090E13181D4C
S1132D4030D0B0F5005F05D0B0F5006F0CBF0420A3 S1132D402227036C23EA020202647047436C23EADD
S1132D5005207047022070474FF40043C4F20C036F S1132D50020242647047836C23EA02028264704771
S1132D60986A00F0030002281ED0032804D001282A S1132D60C36C23EA0202C2647047036D23EA0202C1
S1132D700CBF032001207047062070474FF4004326 S1132D7002657047436D23EA020242657047836D22
S1132D80C4F20C03986A00F00C0002280ED0032849 S1132D8023EA020282657047C36D23EA0202C26528
S1132D9004D001280CBF032001207047062070478F S1132D90704700BF4FF0FF32034B5A62034A136877
S1132DA000207047032070470220704702207047BC S1132DA001331360704700BF00A008406400002096
S1132DB008B500F47810B0F5402F6AD012D8B0F5F9 S1132DB00023036403654364436583648365C364D8
S1132DC0802F3BD004D828B3B0F5003F28D01FE0B3 S1132DC0C365436E002BFCD1704700BF10B50B29BF
S1132DD0B0F5002F3FD0B0F5202F4BD0B0F5C02F69 S1132DD02AD8DFE801F02706090C0F1215181B1E6C
S1132DE016D131E0B0F5A01F7ED006D8B0F5602F23 S1132DE02124032301241FE003231C461CE00323A6
S1132DF05ED0B0F5901F70D00AE0B0F5C01F00F0AF S1132DF0002419E00323022416E02723002413E00F
S1132E009180B0F5D01F00F0A680B0F5B01F7AD045 S1132E002723032410E0012303240DE001230224DB
S1132E10002008BD42F2A163C0F20003984708BD38 S1132E100AE001231C4607E001231C4604E00723C3
S1132E2042F2A163C0F2000398474FF40043C4F296 S1132E20032401E00F23032422B11A462146FFF7AD
S1132E300C039B6803F00F03D84008BD42F255739E S1132E3049FF10BD1A462146FFF774FF10BD00BFBD
S1132E40C0F20003984708BD002042F64D23C0F2AB S1132E4010B504461E4B9A6A22F003029A629A6AEB
S1132E500003984708BD002042F64D23C0F200034A S1132E5042F002029A629A6D42F004029A659A6EF6
S1132E6098474FF40043C4F20C039B6E03F00F0326 S1132E6022F440729A669A6E42F440729A66002383
S1132E70D84008BD002042F64D23C0F20003984715 S1132E708362636E002BFCD14FF0FF3363624FF02B
S1132E804FF40043C4F20C039B6EC3F30313D84006 S1132E800062104B1A600123A36241F60B73636066
S1132E9008BD002042F64D23C0F2000398474FF4CA S1132E9000220B4BDA672046FFF78AFF40F2FF332C
S1132EA00043C4F20C039B6EC3F30123D84008BD56 S1132EA0A36005232360636E002BFCD1064BE36013
S1132EB0002042F64D23C0F2000398474FF400432C S1132EB0636E002BFCD101236362A36210BD00BFCB
S1132EC0C4F20C039A6EC2F30122D040DB6F03F00C S1132EC000800C4000E100E000011C001D4BDB6AA7
S1132ED007030133B0FBF3F008BD012042F64D2394 S1132ED003F47053B3F5805F2FD0B3F5005F03D0D4
S1132EE0C0F20003984708BD012042F64D23C0F20A S1132EE0B3F5006F06D102E0174B18687047174B13
S1132EF0000398474FF40043C4F20C031B6F03F024 S1132EF018687047134BDB6803F4E063B3F5007F95
S1132F000303D84008BD012042F64D23C0F200035C S1132F0013D004D8ABB1B3F5807F10D013E0B3F580
S1132F1098474FF40043C4F20C031B6FC3F301132F S1132F10806F15D0B3F5A06F03D0B3F5407F0AD10D
S1132F20D84008BD0420C0F2180042F61953C0F27C S1132F2001E00B4870470B4870470B4870470B484B
S1132F3000039847072809D0082801D0002008BDBD S1132F3070470B487047002070474FF400407047BB
S1132F4042F2A163C0F20003984708BD49F68070BD S1132F400848704700800C40000000200400002066
S1132F50C0F2D50008BD49F68070C0F2D50008BDA6 S1132F50003FAB01809FD500C0D8A700C0CF6A0056
S1132F6008B504282DD8DFE800F00C091103060089 S1132F6040420F00406F400108B5FFF7AFFF044B2C
S1132F70012302200CE01023202009E040238020BC S1132F705B6803F00F03D840024B186008BD00BF24
S1132F8006E04FF480734FF4007001E0042308203E S1132F8000800C4068000020704700BF4FF40040F0
S1132F9069B14FF40041C4F20C010B6262B14FF409 S1132F90704700BF014B1868704700BF0000002055
S1132FA00042C4F20C02D36A1842FCD004E04FF48D S1132FA0F8B500BFF8BC08BC9E467047F8B500BF32
S1132FB00043C4F20C03186243F2AD03C0F20003F1 S1132FB0F8BC08BC9E4670470500000000000000F5
S1132FC0984708BD10B500F00F00012804D0002870 S10F2FC08025000000000000000000005C
S1132FD06BD0032833D910BD0239032965D8DFE843 S10B2FCC008000000048E80148
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
S9032000DC 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 #| File Name: makefile
#| #|
#|--------------------------------------------------------------------------------------- #|---------------------------------------------------------------------------------------
#| C O P Y R I G H T #| 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 #| L I C E N S E
@ -25,164 +25,99 @@
#**************************************************************************************** #****************************************************************************************
SHELL = sh SHELL = sh
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Configure project name | #| Configure project name |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
PROJ_NAME=demoprog_olimex_efm32g880 PROJ_NAME=demoprog_olimex_efm32g880
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Speficy project source files | #| Configure tool path |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
PROJ_FILES= \ TOOL_PATH=/opt/gcc-arm-none-eabi-5_4-2016q3/bin/
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
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Compiler binaries | #| Collect project files |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
CC = arm-none-eabi-gcc # Recursive wildcard function implementation. Example usages:
LN = arm-none-eabi-gcc # $(call rwildcard, , *.c *.h)
OC = arm-none-eabi-objcopy # --> Returns all *.c and *.h files in the current directory and below
OD = arm-none-eabi-objdump # $(call rwildcard, /lib/, *.c)
AS = arm-none-eabi-as # --> Returns all *.c files in the /lib directory and below
SZ = arm-none-eabi-size 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_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
PROJ_CSRCS = $(filter %.c,$(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_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) :) VPATH = $(foreach path,$(sort $(foreach file,$(PROJ_FILES),$(dir $(file)))) $(subst \,/,$(OBJ_PATH)),$(path) :)
OBJ_PATH = obj OBJ_PATH = obj
BIN_PATH = bin BIN_PATH = bin
INC_PATH = $(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))) INC_PATH = $(patsubst %/,%,$(patsubst %,-I%,$(sort $(foreach file,$(filter %.h,$(PROJ_FILES)),$(dir $(file))))))
INC_PATH += -I. -I./lib
LIB_PATH = LIB_PATH =
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Options for compiler binaries | #| Options for toolchain binaries |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
CFLAGS = -g -mthumb -mcpu=cortex-m3 -mlong-calls -O1 -T memory.x STDFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -fno-strict-aliasing
CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -D sprintf=usprintf -Wno-main STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3 -Wno-maybe-uninitialized
CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -D snprintf=usnprintf OPTFLAGS = -Og
CFLAGS += -D printf=uipprintf -ffunction-sections -fdata-sections $(INC_PATH) CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -D EFM32G880F128 -Wno-attributes CFLAGS += -DEFM32G880F128
LFLAGS = -nostartfiles -Xlinker -M -Xlinker -Map=$(BIN_PATH)/$(PROJ_NAME).map CFLAGS += $(INC_PATH)
LFLAGS += $(LIB_PATH) -Xlinker --gc-sections AFLAGS = $(CFLAGS)
OFLAGS = -O srec LFLAGS = $(STDFLAGS) $(OPTFLAGS)
ODFLAGS = -x LFLAGS += -Wl,-script="memory.x" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
SZFLAGS = -B -d 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 = LIBS =
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Define targets | #| Define targets |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS)) AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS)) COBJS = $(patsubst %.c,%.o,$(PROJ_CSRCS))
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Make ALL | #| Make ALL |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
all : $(BIN_PATH)/$(PROJ_NAME).srec .PHONY: all
all: $(BIN_PATH)/$(PROJ_NAME).srec
$(BIN_PATH)/$(PROJ_NAME).srec : $(BIN_PATH)/$(PROJ_NAME).elf $(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) $(BIN_PATH)/$(PROJ_NAME).elf : $(AOBJS) $(COBJS)
@echo +++ Linking [$(notdir $@)] @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) $(AOBJS): %.o: %.s $(PROJ_CHDRS)
@echo +++ Assembling [$(notdir $<)] @echo +++ Assembling [$(notdir $<)]
@$(AS) $(AFLAGS) $< -o $(OBJ_PATH)/$(@F) @$(AS) $(AFLAGS) -c $< -o $(OBJ_PATH)/$(@F)
$(COBJS): %.o: %.c $(PROJ_CHDRS) $(COBJS): %.o: %.c $(PROJ_CHDRS)
@echo +++ Compiling [$(notdir $<)] @echo +++ Compiling [$(notdir $<)]
@$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F) @$(CC) $(CFLAGS) -c $< -o $(OBJ_PATH)/$(@F)
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
#| Make CLEAN | #| Make CLEAN |
#|---------------------------------------------------------------------------------------| #|--------------------------------------------------------------------------------------|
clean : .PHONY: clean
clean:
@echo +++ Cleaning build environment @echo +++ Cleaning build environment
@cs-rm -f $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(AOBJS),$(OBJ_PATH)/$(file))
@cs-rm -f $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file))
@cs-rm -f $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file))) @$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(foreach file,$(COBJS),$(OBJ_PATH)/$(file)))
@cs-rm -f $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).elf $(BIN_PATH)/$(PROJ_NAME).map
@cs-rm -f $(BIN_PATH)/$(PROJ_NAME).srec @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec
@echo +++ Clean complete @echo +++ Clean complete

View File

@ -6,13 +6,33 @@ MEMORY
SECTIONS SECTIONS
{ {
__STACKSIZE__ = 256; __STACKSIZE__ = 1024;
.text : .text :
{ {
KEEP(*(.isr_vector)) KEEP(*(.isr_vector))
*(.text*) *(.text*)
*(.rodata*)
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 = .; _etext = .;
} > FLASH } > FLASH
@ -21,6 +41,8 @@ SECTIONS
_data = .; _data = .;
*(vtable) *(vtable)
*(.data*) *(.data*)
*(.ram)
. = ALIGN (8);
_edata = .; _edata = .;
} > SRAM } > SRAM
@ -29,9 +51,12 @@ SECTIONS
_bss = .; _bss = .;
*(.bss*) *(.bss*)
*(COMMON) *(COMMON)
. = ALIGN (8);
*(.ram.b .bss.ram)
_ebss = .; _ebss = .;
_stack = .; _stack = .;
. = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4); . = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4);
_estack = .; _estack = .;
} > SRAM } > SRAM
} }

View File

@ -189,7 +189,7 @@ clean:
@$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file))
@$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(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).elf $(BIN_PATH)/$(PROJ_NAME).map
@$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin
@echo +++ Clean complete @echo +++ Clean complete

View File

@ -166,7 +166,7 @@ clean:
@$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file)) @$(RM) $(RMFLAGS) $(foreach file,$(COBJS),$(OBJ_PATH)/$(file))
@$(RM) $(RMFLAGS) $(patsubst %.o,%.lst,$(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).elf $(BIN_PATH)/$(PROJ_NAME).map
@$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).srec @$(RM) $(RMFLAGS) $(BIN_PATH)/$(PROJ_NAME).bin
@echo +++ Clean complete @echo +++ Clean complete