Refs #311. Reworked compiler specific parts in the STM32F1 port.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@347 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2017-08-17 08:34:14 +00:00
parent 888f3f1d94
commit 605a788a5e
171 changed files with 23976 additions and 19830 deletions

View File

@ -1,9 +1,6 @@
Discarded input sections
.text 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
.data 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
.bss 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
@ -23,6 +20,9 @@ Discarded input sections
.text 0x00000000 0x0 THUMB Flash Debug/../../obj/uart.o
.data 0x00000000 0x0 THUMB Flash Debug/../../obj/uart.o
.bss 0x00000000 0x0 THUMB Flash Debug/../../obj/uart.o
.text 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Flash Debug/../../obj/assert.o
.data 0x00000000 0x0 THUMB Flash Debug/../../obj/assert.o
.bss 0x00000000 0x0 THUMB Flash Debug/../../obj/assert.o
@ -942,88 +942,88 @@ Linker script and memory map
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
.glue_7 0x000001dc 0x0 linker stubs
.glue_7t 0x000001dc 0x0 linker stubs
.text.CpuIrqDisable
0x000001dc 0x4 THUMB Flash Debug/../../obj/cpu_comp.o
0x000001dc CpuIrqDisable
.text.CpuIrqEnable
0x000001e0 0x4 THUMB Flash Debug/../../obj/cpu_comp.o
0x000001e0 CpuIrqEnable
.text.CpuInit 0x000001e4 0x8 THUMB Flash Debug/../../obj/cpu.o
0x000001e4 CpuInit
.text.CpuInit 0x000001dc 0x8 THUMB Flash Debug/../../obj/cpu.o
0x000001dc CpuInit
.text.CpuStartUserProgram
0x000001ec 0x4c THUMB Flash Debug/../../obj/cpu.o
0x000001ec CpuStartUserProgram
0x000001e4 0x4c THUMB Flash Debug/../../obj/cpu.o
0x000001e4 CpuStartUserProgram
.text.CpuMemCopy
0x00000238 0x20 THUMB Flash Debug/../../obj/cpu.o
0x00000238 CpuMemCopy
0x00000230 0x20 THUMB Flash Debug/../../obj/cpu.o
0x00000230 CpuMemCopy
.text.FlashGetSector
0x00000258 0x40 THUMB Flash Debug/../../obj/flash.o
0x00000250 0x40 THUMB Flash Debug/../../obj/flash.o
.text.FlashWriteBlock
0x00000298 0x60 THUMB Flash Debug/../../obj/flash.o
0x00000290 0x60 THUMB Flash Debug/../../obj/flash.o
.text.FlashSwitchBlock
0x000002f8 0x58 THUMB Flash Debug/../../obj/flash.o
0x000002f0 0x58 THUMB Flash Debug/../../obj/flash.o
.text.FlashAddToBlock
0x00000350 0x94 THUMB Flash Debug/../../obj/flash.o
0x00000348 0x94 THUMB Flash Debug/../../obj/flash.o
.text.FlashInit
0x000003e4 0x20 THUMB Flash Debug/../../obj/flash.o
0x000003e4 FlashInit
0x000003dc 0x20 THUMB Flash Debug/../../obj/flash.o
0x000003dc FlashInit
.text.FlashWrite
0x00000404 0x54 THUMB Flash Debug/../../obj/flash.o
0x00000404 FlashWrite
0x000003fc 0x54 THUMB Flash Debug/../../obj/flash.o
0x000003fc FlashWrite
.text.FlashErase
0x00000458 0x100 THUMB Flash Debug/../../obj/flash.o
0x00000458 FlashErase
0x00000450 0x100 THUMB Flash Debug/../../obj/flash.o
0x00000450 FlashErase
.text.FlashWriteChecksum
0x00000558 0x48 THUMB Flash Debug/../../obj/flash.o
0x00000558 FlashWriteChecksum
0x00000550 0x48 THUMB Flash Debug/../../obj/flash.o
0x00000550 FlashWriteChecksum
.text.FlashVerifyChecksum
0x000005a0 0x46 THUMB Flash Debug/../../obj/flash.o
0x000005a0 FlashVerifyChecksum
*fill* 0x000005e6 0x2
0x00000598 0x46 THUMB Flash Debug/../../obj/flash.o
0x00000598 FlashVerifyChecksum
*fill* 0x000005de 0x2
.text.FlashDone
0x000005e8 0x40 THUMB Flash Debug/../../obj/flash.o
0x000005e8 FlashDone
0x000005e0 0x40 THUMB Flash Debug/../../obj/flash.o
0x000005e0 FlashDone
.text.FlashGetUserProgBaseAddress
0x00000628 0x6 THUMB Flash Debug/../../obj/flash.o
0x00000628 FlashGetUserProgBaseAddress
*fill* 0x0000062e 0x2
.text.NvmInit 0x00000630 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000630 NvmInit
0x00000620 0x6 THUMB Flash Debug/../../obj/flash.o
0x00000620 FlashGetUserProgBaseAddress
*fill* 0x00000626 0x2
.text.NvmInit 0x00000628 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000628 NvmInit
.text.NvmWrite
0x00000638 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000638 NvmWrite
0x00000630 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000630 NvmWrite
.text.NvmErase
0x00000640 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000640 NvmErase
0x00000638 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000638 NvmErase
.text.NvmVerifyChecksum
0x00000648 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000648 NvmVerifyChecksum
0x00000640 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000640 NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x00000650 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000650 NvmGetUserProgBaseAddress
.text.NvmDone 0x00000658 0x1c THUMB Flash Debug/../../obj/nvm.o
0x00000658 NvmDone
0x00000648 0x8 THUMB Flash Debug/../../obj/nvm.o
0x00000648 NvmGetUserProgBaseAddress
.text.NvmDone 0x00000650 0x1c THUMB Flash Debug/../../obj/nvm.o
0x00000650 NvmDone
.text.TimerInit
0x00000674 0x20 THUMB Flash Debug/../../obj/timer.o
0x00000674 TimerInit
0x0000066c 0x20 THUMB Flash Debug/../../obj/timer.o
0x0000066c TimerInit
.text.TimerReset
0x00000694 0xc THUMB Flash Debug/../../obj/timer.o
0x00000694 TimerReset
0x0000068c 0xc THUMB Flash Debug/../../obj/timer.o
0x0000068c TimerReset
.text.TimerUpdate
0x000006a0 0x1c THUMB Flash Debug/../../obj/timer.o
0x000006a0 TimerUpdate
0x00000698 0x1c THUMB Flash Debug/../../obj/timer.o
0x00000698 TimerUpdate
.text.TimerGet
0x000006bc 0x14 THUMB Flash Debug/../../obj/timer.o
0x000006bc TimerGet
0x000006b4 0x14 THUMB Flash Debug/../../obj/timer.o
0x000006b4 TimerGet
.text.UartInit
0x000006d0 0xac THUMB Flash Debug/../../obj/uart.o
0x000006d0 UartInit
0x000006c8 0xac THUMB Flash Debug/../../obj/uart.o
0x000006c8 UartInit
.text.UartTransmitPacket
0x0000077c 0x88 THUMB Flash Debug/../../obj/uart.o
0x0000077c UartTransmitPacket
0x00000774 0x88 THUMB Flash Debug/../../obj/uart.o
0x00000774 UartTransmitPacket
.text.UartReceivePacket
0x00000804 0x9c THUMB Flash Debug/../../obj/uart.o
0x00000804 UartReceivePacket
0x000007fc 0x9c THUMB Flash Debug/../../obj/uart.o
0x000007fc UartReceivePacket
.text.CpuIrqDisable
0x00000898 0x4 THUMB Flash Debug/../../obj/cpu_comp.o
0x00000898 CpuIrqDisable
.text.CpuIrqEnable
0x0000089c 0x4 THUMB Flash Debug/../../obj/cpu_comp.o
0x0000089c CpuIrqEnable
.text.AssertFailure
0x000008a0 0xc THUMB Flash Debug/../../obj/assert.o
0x000008a0 AssertFailure
@ -1168,7 +1168,7 @@ Linker script and memory map
.v4_bx 0x00000000 0x0 linker stubs
.iplt 0x00000000 0x0
.iplt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.iplt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= __FLASH_segment_end__)), error: .text is too large to fit in FLASH memory segment)
0x00001670 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
@ -1231,7 +1231,7 @@ Linker script and memory map
0x00001950 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
.rel.dyn 0x00000000 0x0
.rel.iplt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.rel.iplt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x120 load address 0x00001830
@ -1257,7 +1257,7 @@ Linker script and memory map
0x0000195c __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
.igot.plt 0x00000000 0x0
.igot.plt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu_comp.o
.igot.plt 0x00000000 0x0 THUMB Flash Debug/../../obj/cpu.o
0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment)
.data_run 0x20000120 0xc load address 0x00001950
@ -1367,12 +1367,12 @@ Linker script and memory map
0x2000079c __SRAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run))
0x00000001 . = ASSERT (((__tdata_run_end__ >= __SRAM_segment_start__) && (__tdata_run_end__ <= __SRAM_segment_end__)), error: .tdata_run is too large to fit in SRAM memory segment)
START GROUP
LOAD THUMB Flash Debug/../../obj/cpu_comp.o
LOAD THUMB Flash Debug/../../obj/cpu.o
LOAD THUMB Flash Debug/../../obj/flash.o
LOAD THUMB Flash Debug/../../obj/nvm.o
LOAD THUMB Flash Debug/../../obj/timer.o
LOAD THUMB Flash Debug/../../obj/uart.o
LOAD THUMB Flash Debug/../../obj/cpu_comp.o
LOAD THUMB Flash Debug/../../obj/assert.o
LOAD THUMB Flash Debug/../../obj/backdoor.o
LOAD THUMB Flash Debug/../../obj/boot.o
@ -1418,12 +1418,12 @@ END GROUP
OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_frame 0x00000000 0xd00
.debug_frame 0x00000000 0x30 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_frame 0x00000030 0x70 THUMB Flash Debug/../../obj/cpu.o
.debug_frame 0x000000a0 0x19c THUMB Flash Debug/../../obj/flash.o
.debug_frame 0x0000023c 0x9c THUMB Flash Debug/../../obj/nvm.o
.debug_frame 0x000002d8 0x5c THUMB Flash Debug/../../obj/timer.o
.debug_frame 0x00000334 0x84 THUMB Flash Debug/../../obj/uart.o
.debug_frame 0x00000000 0x70 THUMB Flash Debug/../../obj/cpu.o
.debug_frame 0x00000070 0x19c THUMB Flash Debug/../../obj/flash.o
.debug_frame 0x0000020c 0x9c THUMB Flash Debug/../../obj/nvm.o
.debug_frame 0x000002a8 0x5c THUMB Flash Debug/../../obj/timer.o
.debug_frame 0x00000304 0x84 THUMB Flash Debug/../../obj/uart.o
.debug_frame 0x00000388 0x30 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_frame 0x000003b8 0x2c THUMB Flash Debug/../../obj/assert.o
.debug_frame 0x000003e4 0x60 THUMB Flash Debug/../../obj/backdoor.o
.debug_frame 0x00000444 0x58 THUMB Flash Debug/../../obj/boot.o
@ -1441,12 +1441,12 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_frame 0x00000ce0 0x20 THUMB Flash Debug/../../obj/vectors.o
.debug_info 0x00000000 0x5ce0
.debug_info 0x00000000 0x7c THUMB Flash Debug/../../obj/cpu_comp.o
.debug_info 0x0000007c 0x157 THUMB Flash Debug/../../obj/cpu.o
.debug_info 0x000001d3 0x8bf THUMB Flash Debug/../../obj/flash.o
.debug_info 0x00000a92 0x1ce THUMB Flash Debug/../../obj/nvm.o
.debug_info 0x00000c60 0x12b THUMB Flash Debug/../../obj/timer.o
.debug_info 0x00000d8b 0x928 THUMB Flash Debug/../../obj/uart.o
.debug_info 0x00000000 0x157 THUMB Flash Debug/../../obj/cpu.o
.debug_info 0x00000157 0x8bf THUMB Flash Debug/../../obj/flash.o
.debug_info 0x00000a16 0x1ce THUMB Flash Debug/../../obj/nvm.o
.debug_info 0x00000be4 0x12b THUMB Flash Debug/../../obj/timer.o
.debug_info 0x00000d0f 0x928 THUMB Flash Debug/../../obj/uart.o
.debug_info 0x00001637 0x7c THUMB Flash Debug/../../obj/cpu_comp.o
.debug_info 0x000016b3 0xaa THUMB Flash Debug/../../obj/assert.o
.debug_info 0x0000175d 0xe3 THUMB Flash Debug/../../obj/backdoor.o
.debug_info 0x00001840 0xb4 THUMB Flash Debug/../../obj/boot.o
@ -1465,12 +1465,12 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_info 0x00005be2 0xfe THUMB Flash Debug/../../obj/vectors.o
.debug_abbrev 0x00000000 0x1f47
.debug_abbrev 0x00000000 0x43 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00000043 0xf0 THUMB Flash Debug/../../obj/cpu.o
.debug_abbrev 0x00000133 0x2f5 THUMB Flash Debug/../../obj/flash.o
.debug_abbrev 0x00000428 0xdc THUMB Flash Debug/../../obj/nvm.o
.debug_abbrev 0x00000504 0xeb THUMB Flash Debug/../../obj/timer.o
.debug_abbrev 0x000005ef 0x242 THUMB Flash Debug/../../obj/uart.o
.debug_abbrev 0x00000000 0xf0 THUMB Flash Debug/../../obj/cpu.o
.debug_abbrev 0x000000f0 0x2f5 THUMB Flash Debug/../../obj/flash.o
.debug_abbrev 0x000003e5 0xdc THUMB Flash Debug/../../obj/nvm.o
.debug_abbrev 0x000004c1 0xeb THUMB Flash Debug/../../obj/timer.o
.debug_abbrev 0x000005ac 0x242 THUMB Flash Debug/../../obj/uart.o
.debug_abbrev 0x000007ee 0x43 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00000831 0x6d THUMB Flash Debug/../../obj/assert.o
.debug_abbrev 0x0000089e 0xa8 THUMB Flash Debug/../../obj/backdoor.o
.debug_abbrev 0x00000946 0x72 THUMB Flash Debug/../../obj/boot.o
@ -1488,20 +1488,37 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_abbrev 0x00001e57 0x14 THUMB Flash Debug/../../obj/cstart.o
.debug_abbrev 0x00001e6b 0xdc THUMB Flash Debug/../../obj/vectors.o
.debug_loc 0x00000000 0x2cdd
.debug_loc 0x00000000 0xce THUMB Flash Debug/../../obj/cpu.o
.debug_loc 0x000000ce 0x705 THUMB Flash Debug/../../obj/flash.o
.debug_loc 0x000007d3 0xa5 THUMB Flash Debug/../../obj/nvm.o
.debug_loc 0x00000878 0x25f THUMB Flash Debug/../../obj/uart.o
.debug_loc 0x00000ad7 0x42 THUMB Flash Debug/../../obj/assert.o
.debug_loc 0x00000b19 0x42 THUMB Flash Debug/../../obj/com.o
.debug_loc 0x00000b5b 0x37e THUMB Flash Debug/../../obj/xcp.o
.debug_loc 0x00000ed9 0xca THUMB Flash Debug/../../obj/system_efm32.o
.debug_loc 0x00000fa3 0xfb6 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_loc 0x00001f59 0xf8 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_loc 0x00002051 0x4f8 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_loc 0x00002549 0x457 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_loc 0x000029a0 0x140 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_loc 0x00002ae0 0x98 THUMB Flash Debug/../../obj/efm32_system.o
.debug_loc 0x00002b78 0x165 THUMB Flash Debug/../../obj/main.o
.debug_pubnames
0x00000000 0x2376
.debug_pubnames
0x00000000 0x35 THUMB Flash Debug/../../obj/cpu_comp.o
0x00000000 0x45 THUMB Flash Debug/../../obj/cpu.o
.debug_pubnames
0x00000035 0x45 THUMB Flash Debug/../../obj/cpu.o
0x00000045 0x205 THUMB Flash Debug/../../obj/flash.o
.debug_pubnames
0x0000007a 0x205 THUMB Flash Debug/../../obj/flash.o
0x0000024a 0x86 THUMB Flash Debug/../../obj/nvm.o
.debug_pubnames
0x0000027f 0x86 THUMB Flash Debug/../../obj/nvm.o
0x000002d0 0x64 THUMB Flash Debug/../../obj/timer.o
.debug_pubnames
0x00000305 0x64 THUMB Flash Debug/../../obj/timer.o
0x00000334 0x69e THUMB Flash Debug/../../obj/uart.o
.debug_pubnames
0x00000369 0x69e THUMB Flash Debug/../../obj/uart.o
0x000009d2 0x35 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_pubnames
0x00000a07 0x24 THUMB Flash Debug/../../obj/assert.o
.debug_pubnames
@ -1536,17 +1553,17 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_pubtypes
0x00000000 0x144a
.debug_pubtypes
0x00000000 0x91 THUMB Flash Debug/../../obj/cpu_comp.o
0x00000000 0xca THUMB Flash Debug/../../obj/cpu.o
.debug_pubtypes
0x00000091 0xca THUMB Flash Debug/../../obj/cpu.o
0x000000ca 0x14f THUMB Flash Debug/../../obj/flash.o
.debug_pubtypes
0x0000015b 0x14f THUMB Flash Debug/../../obj/flash.o
0x00000219 0xc8 THUMB Flash Debug/../../obj/nvm.o
.debug_pubtypes
0x000002aa 0xc8 THUMB Flash Debug/../../obj/nvm.o
0x000002e1 0xb1 THUMB Flash Debug/../../obj/timer.o
.debug_pubtypes
0x00000372 0xb1 THUMB Flash Debug/../../obj/timer.o
0x00000392 0x1b4 THUMB Flash Debug/../../obj/uart.o
.debug_pubtypes
0x00000423 0x1b4 THUMB Flash Debug/../../obj/uart.o
0x00000546 0x91 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_pubtypes
0x000005d7 0xad THUMB Flash Debug/../../obj/assert.o
.debug_pubtypes
@ -1580,17 +1597,17 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_aranges 0x00000000 0x5e0
.debug_aranges
0x00000000 0x28 THUMB Flash Debug/../../obj/cpu_comp.o
0x00000000 0x30 THUMB Flash Debug/../../obj/cpu.o
.debug_aranges
0x00000028 0x30 THUMB Flash Debug/../../obj/cpu.o
0x00000030 0x78 THUMB Flash Debug/../../obj/flash.o
.debug_aranges
0x00000058 0x78 THUMB Flash Debug/../../obj/flash.o
0x000000a8 0x50 THUMB Flash Debug/../../obj/nvm.o
.debug_aranges
0x000000d0 0x50 THUMB Flash Debug/../../obj/nvm.o
0x000000f8 0x38 THUMB Flash Debug/../../obj/timer.o
.debug_aranges
0x00000120 0x38 THUMB Flash Debug/../../obj/timer.o
0x00000130 0x30 THUMB Flash Debug/../../obj/uart.o
.debug_aranges
0x00000158 0x30 THUMB Flash Debug/../../obj/uart.o
0x00000160 0x28 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_aranges
0x00000188 0x20 THUMB Flash Debug/../../obj/assert.o
.debug_aranges
@ -1625,12 +1642,12 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
0x000005c0 0x20 THUMB Flash Debug/../../obj/vectors.o
.debug_ranges 0x00000000 0x6d8
.debug_ranges 0x00000000 0x18 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000018 0x20 THUMB Flash Debug/../../obj/cpu.o
.debug_ranges 0x00000038 0xc8 THUMB Flash Debug/../../obj/flash.o
.debug_ranges 0x00000100 0x40 THUMB Flash Debug/../../obj/nvm.o
.debug_ranges 0x00000140 0x28 THUMB Flash Debug/../../obj/timer.o
.debug_ranges 0x00000168 0x60 THUMB Flash Debug/../../obj/uart.o
.debug_ranges 0x00000000 0x20 THUMB Flash Debug/../../obj/cpu.o
.debug_ranges 0x00000020 0xc8 THUMB Flash Debug/../../obj/flash.o
.debug_ranges 0x000000e8 0x40 THUMB Flash Debug/../../obj/nvm.o
.debug_ranges 0x00000128 0x28 THUMB Flash Debug/../../obj/timer.o
.debug_ranges 0x00000150 0x60 THUMB Flash Debug/../../obj/uart.o
.debug_ranges 0x000001b0 0x18 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_ranges 0x000001c8 0x10 THUMB Flash Debug/../../obj/assert.o
.debug_ranges 0x000001d8 0x18 THUMB Flash Debug/../../obj/backdoor.o
.debug_ranges 0x000001f0 0x18 THUMB Flash Debug/../../obj/boot.o
@ -1647,82 +1664,82 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_ranges 0x000006a0 0x28 THUMB Flash Debug/../../obj/main.o
.debug_ranges 0x000006c8 0x10 THUMB Flash Debug/../../obj/vectors.o
.debug_line 0x00000000 0x3399
.debug_line 0x00000000 0xd3 THUMB Flash Debug/../../obj/cpu_comp.o
.debug_line 0x000000d3 0x127 THUMB Flash Debug/../../obj/cpu.o
.debug_line 0x000001fa 0x425 THUMB Flash Debug/../../obj/flash.o
.debug_line 0x0000061f 0x165 THUMB Flash Debug/../../obj/nvm.o
.debug_line 0x00000784 0x134 THUMB Flash Debug/../../obj/timer.o
.debug_line 0x000008b8 0x3b2 THUMB Flash Debug/../../obj/uart.o
.debug_line 0x00000c6a 0xee THUMB Flash Debug/../../obj/assert.o
.debug_line 0x00000d58 0x111 THUMB Flash Debug/../../obj/backdoor.o
.debug_line 0x00000e69 0xc2 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x00000f2b 0x186 THUMB Flash Debug/../../obj/com.o
.debug_line 0x000010b1 0xa5 THUMB Flash Debug/../../obj/cop.o
.debug_line 0x00001156 0x20c THUMB Flash Debug/../../obj/xcp.o
.debug_line 0x00001362 0x2f4 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x00001656 0x6b6 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x00001d0c 0x3d1 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x000020dd 0x3cc THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x000024a9 0x3e8 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x00002891 0x337 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x00002bc8 0x2cc THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x00002e94 0x30e THUMB Flash Debug/../../obj/main.o
.debug_line 0x000031a2 0x11e THUMB Flash Debug/../../obj/cstart.o
.debug_line 0x000032c0 0xd9 THUMB Flash Debug/../../obj/vectors.o
.debug_line 0x00000000 0x3392
.debug_line 0x00000000 0x127 THUMB Flash Debug/../../obj/cpu.o
.debug_line 0x00000127 0x425 THUMB Flash Debug/../../obj/flash.o
.debug_line 0x0000054c 0x165 THUMB Flash Debug/../../obj/nvm.o
.debug_line 0x000006b1 0x134 THUMB Flash Debug/../../obj/timer.o
.debug_line 0x000007e5 0x3b2 THUMB Flash Debug/../../obj/uart.o
.debug_line 0x00000b97 0xcc THUMB Flash Debug/../../obj/cpu_comp.o
.debug_line 0x00000c63 0xee THUMB Flash Debug/../../obj/assert.o
.debug_line 0x00000d51 0x111 THUMB Flash Debug/../../obj/backdoor.o
.debug_line 0x00000e62 0xc2 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x00000f24 0x186 THUMB Flash Debug/../../obj/com.o
.debug_line 0x000010aa 0xa5 THUMB Flash Debug/../../obj/cop.o
.debug_line 0x0000114f 0x20c THUMB Flash Debug/../../obj/xcp.o
.debug_line 0x0000135b 0x2f4 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x0000164f 0x6b6 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x00001d05 0x3d1 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x000020d6 0x3cc THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x000024a2 0x3e8 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x0000288a 0x337 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x00002bc1 0x2cc THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x00002e8d 0x30e THUMB Flash Debug/../../obj/main.o
.debug_line 0x0000319b 0x11e THUMB Flash Debug/../../obj/cstart.o
.debug_line 0x000032b9 0xd9 THUMB Flash Debug/../../obj/vectors.o
.debug_str 0x00000000 0x2549
.debug_str 0x00000000 0x202 THUMB Flash Debug/../../obj/cpu_comp.o
0x232 (size before relaxing)
.debug_str 0x00000202 0xef THUMB Flash Debug/../../obj/cpu.o
.debug_str 0x00000000 0x2542
.debug_str 0x00000000 0x243 THUMB Flash Debug/../../obj/cpu.o
0x273 (size before relaxing)
.debug_str 0x000002f1 0x35f THUMB Flash Debug/../../obj/flash.o
.debug_str 0x00000243 0x35f THUMB Flash Debug/../../obj/flash.o
0x52f (size before relaxing)
.debug_str 0x00000650 0xdb THUMB Flash Debug/../../obj/nvm.o
.debug_str 0x000005a2 0xdb THUMB Flash Debug/../../obj/nvm.o
0x290 (size before relaxing)
.debug_str 0x0000072b 0xd5 THUMB Flash Debug/../../obj/timer.o
.debug_str 0x0000067d 0xd5 THUMB Flash Debug/../../obj/timer.o
0x269 (size before relaxing)
.debug_str 0x00000800 0x73c THUMB Flash Debug/../../obj/uart.o
.debug_str 0x00000752 0x73c THUMB Flash Debug/../../obj/uart.o
0x952 (size before relaxing)
.debug_str 0x00000f3c 0x9a THUMB Flash Debug/../../obj/assert.o
.debug_str 0x00000e8e 0xa7 THUMB Flash Debug/../../obj/cpu_comp.o
0x22b (size before relaxing)
.debug_str 0x00000f35 0x9a THUMB Flash Debug/../../obj/assert.o
0x229 (size before relaxing)
.debug_str 0x00000fd6 0xb4 THUMB Flash Debug/../../obj/backdoor.o
.debug_str 0x00000fcf 0xb4 THUMB Flash Debug/../../obj/backdoor.o
0x24c (size before relaxing)
.debug_str 0x0000108a 0x89 THUMB Flash Debug/../../obj/boot.o
.debug_str 0x00001083 0x89 THUMB Flash Debug/../../obj/boot.o
0x20d (size before relaxing)
.debug_str 0x00001113 0x12a THUMB Flash Debug/../../obj/com.o
.debug_str 0x0000110c 0x12a THUMB Flash Debug/../../obj/com.o
0x2f1 (size before relaxing)
.debug_str 0x0000123d 0x81 THUMB Flash Debug/../../obj/cop.o
.debug_str 0x00001236 0x81 THUMB Flash Debug/../../obj/cop.o
0x205 (size before relaxing)
.debug_str 0x000012be 0x26e THUMB Flash Debug/../../obj/xcp.o
.debug_str 0x000012b7 0x26e THUMB Flash Debug/../../obj/xcp.o
0x438 (size before relaxing)
.debug_str 0x0000152c 0x252 THUMB Flash Debug/../../obj/system_efm32.o
.debug_str 0x00001525 0x252 THUMB Flash Debug/../../obj/system_efm32.o
0x441 (size before relaxing)
.debug_str 0x0000177e 0x4e8 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_str 0x00001777 0x4e8 THUMB Flash Debug/../../obj/efm32_cmu.o
0xa63 (size before relaxing)
.debug_str 0x00001c66 0x192 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_str 0x00001c5f 0x192 THUMB Flash Debug/../../obj/efm32_emu.o
0x472 (size before relaxing)
.debug_str 0x00001df8 0x2ac THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_str 0x00001df1 0x2ac THUMB Flash Debug/../../obj/efm32_gpio.o
0x649 (size before relaxing)
.debug_str 0x000020a4 0x151 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_str 0x0000209d 0x151 THUMB Flash Debug/../../obj/efm32_leuart.o
0x724 (size before relaxing)
.debug_str 0x000021f5 0xf1 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_str 0x000021ee 0xf1 THUMB Flash Debug/../../obj/efm32_msc.o
0x365 (size before relaxing)
.debug_str 0x000022e6 0x14c THUMB Flash Debug/../../obj/efm32_system.o
.debug_str 0x000022df 0x14c THUMB Flash Debug/../../obj/efm32_system.o
0x30d (size before relaxing)
.debug_str 0x00002432 0x7e THUMB Flash Debug/../../obj/main.o
.debug_str 0x0000242b 0x7e THUMB Flash Debug/../../obj/main.o
0x7c3 (size before relaxing)
.debug_str 0x000024b0 0x99 THUMB Flash Debug/../../obj/vectors.o
.debug_str 0x000024a9 0x99 THUMB Flash Debug/../../obj/vectors.o
0x231 (size before relaxing)
.comment 0x00000000 0x4c
.comment 0x00000000 0x4c THUMB Flash Debug/../../obj/cpu_comp.o
.comment 0x00000000 0x4c THUMB Flash Debug/../../obj/cpu.o
0x4d (size before relaxing)
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/cpu.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/flash.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/nvm.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/timer.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/uart.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/assert.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/backdoor.o
.comment 0x0000004c 0x4d THUMB Flash Debug/../../obj/boot.o
@ -1742,17 +1759,17 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.ARM.attributes
0x00000000 0x31
.ARM.attributes
0x00000000 0x33 THUMB Flash Debug/../../obj/cpu_comp.o
0x00000000 0x33 THUMB Flash Debug/../../obj/cpu.o
.ARM.attributes
0x00000033 0x33 THUMB Flash Debug/../../obj/cpu.o
0x00000033 0x33 THUMB Flash Debug/../../obj/flash.o
.ARM.attributes
0x00000066 0x33 THUMB Flash Debug/../../obj/flash.o
0x00000066 0x33 THUMB Flash Debug/../../obj/nvm.o
.ARM.attributes
0x00000099 0x33 THUMB Flash Debug/../../obj/nvm.o
0x00000099 0x33 THUMB Flash Debug/../../obj/timer.o
.ARM.attributes
0x000000cc 0x33 THUMB Flash Debug/../../obj/timer.o
0x000000cc 0x33 THUMB Flash Debug/../../obj/uart.o
.ARM.attributes
0x000000ff 0x33 THUMB Flash Debug/../../obj/uart.o
0x000000ff 0x33 THUMB Flash Debug/../../obj/cpu_comp.o
.ARM.attributes
0x00000132 0x33 THUMB Flash Debug/../../obj/assert.o
.ARM.attributes
@ -1785,20 +1802,3 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
0x000003fc 0x21 THUMB Flash Debug/../../obj/cstart.o
.ARM.attributes
0x0000041d 0x33 THUMB Flash Debug/../../obj/vectors.o
.debug_loc 0x00000000 0x2cdd
.debug_loc 0x00000000 0xce THUMB Flash Debug/../../obj/cpu.o
.debug_loc 0x000000ce 0x705 THUMB Flash Debug/../../obj/flash.o
.debug_loc 0x000007d3 0xa5 THUMB Flash Debug/../../obj/nvm.o
.debug_loc 0x00000878 0x25f THUMB Flash Debug/../../obj/uart.o
.debug_loc 0x00000ad7 0x42 THUMB Flash Debug/../../obj/assert.o
.debug_loc 0x00000b19 0x42 THUMB Flash Debug/../../obj/com.o
.debug_loc 0x00000b5b 0x37e THUMB Flash Debug/../../obj/xcp.o
.debug_loc 0x00000ed9 0xca THUMB Flash Debug/../../obj/system_efm32.o
.debug_loc 0x00000fa3 0xfb6 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_loc 0x00001f59 0xf8 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_loc 0x00002051 0x4f8 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_loc 0x00002549 0x457 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_loc 0x000029a0 0x140 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_loc 0x00002ae0 0x98 THUMB Flash Debug/../../obj/efm32_system.o
.debug_loc 0x00002b78 0x165 THUMB Flash Debug/../../obj/main.o

View File

@ -30,135 +30,135 @@ S11301A8701600007016000070160000701600002B
S11301B87016000070160000701600002D1800005C
S11301C82C0100201A0600201C0600209C06002092
S10701D87D1400008E
S11301DC72B6704762B67047004B1847DD010000D9
S11301EC10B50C4B984798B10B4B98470B4C0C4BD8
S11301FC9847A0470B4B20F0604020F07F0018601C
S113020CA0474468084B98472346BDE8104018475C
S113021C10BD00BF49060000C909000051060000CA
S113022C9506000008ED00E0E1010000F8B5013A84
S113023C054F4D1E5618441AB54204D015F8013F0B
S113024C6355B847F8E7F8BD170A00002DE9F041EB
S113025C05460C4F0C4E00244FF00C08B84708FB15
S113026C04F39959A94207D833445A680A4495426D
S113027C02D2187ABDE8F08101340F2CEED1FF20A4
S113028CBDE8F081170A0000701600002DE9F34751
S113029C134B054600689847FF2801D100201BE04A
S11302ACDFF84080DFF840900024261D2F68AB59FE
S11302BC04EB070A0193C04704220DEB02015046DC
S11302CCC8470028EAD1E259019B9A42E6D1B6F517
S11302DC007F3446E9D1012002B0BDE8F08700BFAD
S11302EC59020000170A00000100002038B5114B18
S11302FC044698420D4606D0B1F5005F05D00E4B6E
S113030C984718B911E00D4C00E01C46C5F30803DE
S113031C5BB923689D420AD020464FF4007240F822
S113032C045B2946064B984701E0002038BD204663
S113033C38BD00BF2C0100209902000030030020BE
S113034C390200002DE9F84F9846036821F4FF7632
S113035C013304460D46174626F0010606D140F833
S113036C046B4FF400723146184B984723689E4235
S113037C08D020463146164B9847044610B9002045
S113038CBDE8F88FB9462368DFF848A0ED1A254478
S113039CDFF83CB0043506F50076D047231DEB1A84
S11303ACB3F5007F06D320463146D84704460028CF
S11303BCE5D0051D19F8013B05F8013BC9EB080311
S11303CCDF42EAD10120BDE8F88F00BF39020000FA
S11303DCF9020000170A000008B5044B9847044AB8
S11303EC4FF0FF331360034A136008BD211400005F
S11303FC300300202C0100202DE9F0410F4E04465F
S113040C0D461746B047FF2815D0681E2044B04748
S113041CFF2810D024F4FF7323F00103084EB3F526
S113042C005F3A462B462146B446BDE8F0410CBF6A
S113043C0448054860470020BDE8F08159020000DB
S113044C510300002C010020300300202DE9F84F4B
S113045C394E0C460746B0470546601E3844B04733
S113046C8542814602D90020BDE8F88F6B1EDBB2B1
S113047CFD2BF8D80F28F6D8304B1B78472B08D017
S113048C492B06D0482B0CBF4FF480564FF4006612
S113049C01E04FF40076DFF8A880DFF8A8B0002460
S11304ACC0470C2303FB04B31A7A254FAA42DFF886
S11304BC94A001D11D6804E001340F2CF0D14FF04D
S11304CCFF3500244FF00C08B84708FB04A31A7A34
S11304DC4A4501D11C6804E001340F2CF4D14FF0CF
S11304ECFF344FF000084FF00C0BB8470BFB08A37C
S11304FC1A7A4A4501D15B6805E008F10108B8F1A4
S113050C0F0FF2D10023641B1C44B4FBF6F4DFF888
S113051C3890A4B24FF000081FFA88F3A34208D213
S113052CB8472846C84708F1010835440028F3D0D9
S113053C99E70120BDE8F88F59020000FE81E00F15
S113054C170A000070160000AD0000200F4B07B511
S113055C1A68013216D09A68596842F2B8001144EC
S113056CDA6811441A6911445A6911449A6911449C
S113057CDA698B185B4202AA42F8043D0421044B4D
S113058C984700E0012003B05DF804FB2C01002027
S113059C050400004FF400531A6842F204031B686C
S11305AC134442F208021268134442F20C02126819
S11305BC134442F21002116842F2140212680B4402
S11305CC1A4442F218031B68134442F2B80212682C
S11305DCD3420CBF01200020704700000B4808B523
S11305EC0368013304D10A480368013306D109E0D6
S11305FC084B98470028F6D1002008BD054B9847B6
S113060C0028F9D0044B9847012008BD2C01002088
S113061C3003002099020000411400004FF40050F4
S113062C70470000004B1847E5030000004B1847C7
S113063C05040000004B184759040000004B1847F0
S113064CA1050000004B18472906000010B5044B07
S113065C984718B1BDE81040024B184710BD00BFB5
S113066C59050000E905000043F2AF61044B002278
S113067C1A60596005219A601960024B1A60704720
S113068C10E000E034050020014B00221A60704792
S113069C10E000E0044B1B68DB0341BF034A136802
S11306AC01331360704700BF10E000E034050020F4
S11306BC08B5024B9847024B186808BDA106000008
S11306CC340500207FB51D4B1D4C0FCB8DE80F005E
S11306DC01211C48A0471C4E0123042206210220A0
S11306ECB0470122002307210220B047174E0121F5
S11306FC1748A04702211748174B98473046174B09
S113070C0121984730460121A047154C0026694623
S113071C2046144B8DF8006098474FF4165231461E
S113072C2046114B98470323636504236363052117
S113073C20460E4B984704B070BD00BF2417000030
S113074C7D0F000000C20200C1120000401516000B
S113075C0023040003001200CD110000510E000010
S113076C00440840B1130000491300009513000025
S113077C40292DE9F84380460F4603D96C211948CA
S113078C194B9847194CA368D80609D53946204605
S113079C174B9847174DA368D90605D4A847FAE711
S11307AC70211048104B9847124E4546B146C8EB81
S11307BC05039BB29F4212D9B047A368DA0608D549
S11307CC29780A480A4B9847A368DB0605D4C8471E
S11307DCFAE779210348044B98470135E7E7BDE86C
S11307ECF88300BF34170000A1080000004408403F
S11307FC05140000170A0000F8B51E4D06462C78A7
S113080C1D489CB9C36A5B0701D4002430E01B4B20
S113081C98471B4B18700028F7D01A4B98471A4B63
S113082C18601A4B1C7001232B7021E0C46A14F05D
S113083C040415D0154C114B27789847104923788C
S113084C0F44787001330A78DBB29A422370DCD1FE
S113085C0F4B01313046984700232B70012407E0DD
S113086C084B9847084B1B6864339842CDD92C70BD
S113087C2046F8BD3805002000440840F913000058
S113088C40050020BD0600003C0500208105002029
S113089C3902000008B5014CA047FDE7170A000017
S11301DC004B18479908000010B50C4B984798B180
S11301EC0B4B98470B4C0C4B9847A0470B4B20F0F0
S11301FC604020F07F001860A0474468084B984783
S113020C2346BDE81040184710BD00BF410600004E
S113021CC9090000490600008D06000008ED00E045
S113022C9D080000F8B5013A054F4D1E5618441AA6
S113023CB54204D015F8013F6355B847F8E7F8BD4B
S113024C170A00002DE9F04105460C4F0C4E002412
S113025C4FF00C08B84708FB04F39959A94207D886
S113026C33445A680A44954202D2187ABDE8F081A4
S113027C01340F2CEED1FF20BDE8F081170A0000E9
S113028C701600002DE9F347134B05460068984798
S113029CFF2801D100201BE0DFF84080DFF84090FC
S11302AC0024261D2F68AB5904EB070A0193C047A1
S11302BC04220DEB02015046C8470028EAD1E2594A
S11302CC019B9A42E6D1B6F5007F3446E9D1012070
S11302DC02B0BDE8F08700BF51020000170A00000D
S11302EC0100002038B5114B044698420D4606D047
S11302FCB1F5005F05D00E4B984718B911E00D4CC1
S113030C00E01C46C5F308035BB923689D420AD080
S113031C20464FF4007240F8045B2946064B98477C
S113032C01E0002038BD204638BD00BF2C01002060
S113033C9102000030030020310200002DE9F84F37
S113034C9846036821F4FF76013304460D4617469C
S113035C26F0010606D140F8046B4FF400723146C6
S113036C184B984723689E4208D020463146164BBA
S113037C9847044610B90020BDE8F88FB9462368A5
S113038CDFF848A0ED1A2544DFF83CB0043506F537
S113039C0076D047231DEB1AB3F5007F06D3204615
S11303AC3146D84704460028E5D0051D19F8013B11
S11303BC05F8013BC9EB0803DF42EAD10120BDE893
S11303CCF88F00BF31020000F1020000170A000090
S11303DC08B5044B9847044A4FF0FF331360034AA3
S11303EC136008BD21140000300300202C010020F0
S11303FC2DE9F0410F4E04460D461746B047FF2831
S113040C15D0681E2044B047FF2810D024F4FF7385
S113041C23F00103084EB3F5005F3A462B46214600
S113042CB446BDE8F0410CBF0448054860470020C1
S113043CBDE8F08151020000490300002C010020AA
S113044C300300202DE9F84F394E0C460746B047CF
S113045C0546601E3844B0478542814602D90020C7
S113046CBDE8F88F6B1EDBB2FD2BF8D80F28F6D83D
S113047C304B1B78472B08D0492B06D0482B0CBF8C
S113048C4FF480564FF4006601E04FF40076DFF829
S113049CA880DFF8A8B00024C0470C2303FB04B3E6
S11304AC1A7A254FAA42DFF894A001D11D6804E002
S11304BC01340F2CF0D14FF0FF3500244FF00C0811
S11304CCB84708FB04A31A7A4A4501D11C6804E016
S11304DC01340F2CF4D14FF0FF344FF000084FF0DF
S11304EC0C0BB8470BFB08A31A7A4A4501D15B687D
S11304FC05E008F10108B8F10F0FF2D10023641BD9
S113050C1C44B4FBF6F4DFF83890A4B24FF00008A6
S113051C1FFA88F3A34208D2B8472846C84708F103
S113052C010835440028F3D099E70120BDE8F88F81
S113053C51020000FE81E00F170A00007016000043
S113054CAD0000200F4B07B51A68013216D09A681B
S113055C596842F2B8001144DA6811441A6911441A
S113056C5A6911449A691144DA698B185B4202AADC
S113057C42F8043D0421044B984700E0012003B0E9
S113058C5DF804FB2C010020FD0300004FF4005324
S113059C1A6842F204031B68134442F208021268FC
S11305AC134442F20C021268134442F21002116812
S11305BC42F2140212680B441A4442F218031B68E8
S11305CC134442F2B8021268D3420CBF012000203B
S11305DC704700000B4808B50368013304D10A487E
S11305EC0368013306D109E0084B98470028F6D17B
S11305FC002008BD054B98470028F9D0044B9847B8
S113060C012008BD2C0100203003002091020000C1
S113061C411400004FF4005070470000004B184781
S113062CDD030000004B1847FD030000004B184786
S113063C51040000004B184799050000004B184763
S113064C2106000010B5044B984718B1BDE81040C2
S113065C024B184710BD00BF51050000E105000016
S113066C43F2AF61044B00221A60596005219A6071
S113067C1960024B1A60704710E000E0340500204A
S113068C014B00221A60704710E000E0044B1B6819
S113069CDB0341BF034A136801331360704700BF87
S11306AC10E000E03405002008B5024B9847024BDB
S11306BC186808BD99060000340500207FB51D4B51
S11306CC1D4C0FCB8DE80F0001211C48A0471C4E7C
S11306DC0123042206210220B04701220023072112
S11306EC0220B047174E01211748A0470221174892
S11306FC174B98473046174B012198473046012138
S113070CA047154C002669462046144B8DF8006012
S113071C98474FF4165231462046114B9847032301
S113072C636504236363052120460E4B984704B08C
S113073C70BD00BF241700007D0F000000C2020032
S113074CC11200004015160000230400030012001F
S113075CCD110000510E000000440840B1130000FC
S113076C491300009513000040292DE9F8438046F5
S113077C0F4603D96C211948194B9847194CA36897
S113078CD80609D539462046174B9847174DA36808
S113079CD90605D4A847FAE770211048104B98479E
S11307AC124E4546B146C8EB05039BB29F4212D983
S11307BCB047A368DA0608D529780A480A4B984743
S11307CCA368DB0605D4C847FAE779210348044B30
S11307DC98470135E7E7BDE8F88300BF34170000FC
S11307ECA10800000044084005140000170A00008A
S11307FCF8B51E4D06462C781D489CB9C36A5B0798
S113080C01D4002430E01B4B98471B4B1870002874
S113081CF7D01A4B98471A4B18601A4B1C700123CB
S113082C2B7021E0C46A14F0040415D0154C114B40
S113083C27789847104923780F44787001330A7845
S113084CDBB29A422370DCD10F4B0131304698470E
S113085C00232B70012407E0084B9847084B1B68B6
S113086C64339842CDD92C702046F8BD380500204D
S113087C00440840F913000040050020B5060000B0
S113088C3C050020810500203102000072B670473F
S113089C62B6704708B5014CA047FDE7170A000083
S11308AC10B50B4B9847012811D00A4C2378012B17
S11308BC0DD1094B9847094B1B6803F5FA73984201
S11308CC05D300232370BDE81040054B184710BD19
S11308DC0D0A000082050020BD06000084050020DE
S11308ECED010000054B012210B51A70044B98471A
S11308DC0D0A000082050020B506000084050020E6
S11308ECE5010000054B012210B51A70044B984722
S11308FCBDE81040034B1860034B184782050020D9
S113090CBD06000084050020AD08000010B5074B9F
S113090CB506000084050020AD08000010B5074BA7
S113091C9847074B9847074B9847074B9847074B03
S113092C9847BDE81040064B184700BFE50100008E
S113093C150A000075060000310600007909000054
S113092C9847BDE81040064B184700BFDD01000096
S113093C150A00006D060000290600007909000064
S113094CF108000010B5054B9847054B9847054B2B
S113095C9847BDE81040044B184700BF170A000025
S113096CA106000099090000AD08000008B5044B6D
S113096C9906000099090000AD08000008B5044B75
S113097C9847044B9847044B00221A7008BD00BFDB
S113098C2D0A0000D10600002001002010B50748F4
S113098C2D0A0000C90600002001002010B50748FC
S113099C074B9847012807D1BDE81040054B0022AE
S11309AC1A700248044B184710BD00BF880500207C
S11309BC0508000020010020690A000070470000AF
S11309BCFD07000020010020690A000070470000B8
S11309CC054B10B51B7813B9C9B2044B9847BDE855
S11309DC1040034B184700BF200100207D07000086
S11309DC1040034B184700BF20010020750700008E
S11309EC590A0000034B1B78013B022B8CBF40209F
S11309FC0020704720010020004B1847F10900002B
S1130A0C004B1847490A000070477047034BFE22FD
@ -200,9 +200,9 @@ S1130C3C04E0312000E02020164B984794F8433010
S1130C4C012B02D11020134B9847B4F944100748D8
S1130C5C002908DD012380F8433089B203300E4BA0
S1130C6CBDE8F0411847BDE8F08100BFC80500207D
S1130C7C050A0000F10900003106000039020000E9
S1130C8CB8170000390600005906000041060000A0
S1130C9CED010000190A0000CD0900001B4AD36ABB
S1130C7C050A0000F10900002906000031020000F9
S1130C8CB8170000310600005106000039060000B8
S1130C9CE5010000190A0000CD0900001B4AD36AC3
S1130CAC03F47053B3F5805F2AD0B3F5005F04D01E
S1130CBCB3F5006F04D1164B00E0164B186870475F
S1130CCCD36803F4E063B3F5007F13D005D89BB16C

View File

@ -46,9 +46,6 @@
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc" />
<folder Name="Source">
<folder Name="ARMCM3_EFM32">
<folder Name="Crossworks">
<file file_name="../../../../Source/ARMCM3_EFM32/Crossworks/cpu_comp.c" />
</folder>
<file file_name="../../../../Source/ARMCM3_EFM32/cpu.c" />
<file file_name="../../../../Source/ARMCM3_EFM32/flash.c" />
<file file_name="../../../../Source/ARMCM3_EFM32/flash.h" />
@ -56,6 +53,9 @@
<file file_name="../../../../Source/ARMCM3_EFM32/timer.c" />
<file file_name="../../../../Source/ARMCM3_EFM32/types.h" />
<file file_name="../../../../Source/ARMCM3_EFM32/uart.c" />
<folder Name="GCC">
<file file_name="../../../../Source/ARMCM3_EFM32/GCC/cpu_comp.c" />
</folder>
</folder>
<file file_name="../../../../Source/assert.c" />
<file file_name="../../../../Source/assert.h" />

View File

@ -25,6 +25,8 @@
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source;ARMCM3_EFM32" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;Source Files;Source;ARMCM3_EFM32;GCC" name="unnamed" />
<ProjectSessionItem path="EFM32G880_crossworks;openbtl_olimex_efm32g880;System Files" name="unnamed" />
</Project>
<Register1>
@ -58,5 +60,5 @@
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Default" x="0" debugPath="../main.c" y="10" path="../main.c" left="0" selected="1" name="unnamed" top="0" />
</Files>
<ARMCrossStudioWindow activeProject="openbtl_olimex_efm32g880" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
<ARMCrossStudioWindow activeProject="openbtl_olimex_efm32g880" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_EFM32/GCC" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
</session>

View File

@ -512,9 +512,6 @@ Discarded input sections
.text 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.data 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
@ -532,6 +529,9 @@ Discarded input sections
.text 0x00000000 0x0 THUMB Debug/../../obj/uart.o
.data 0x00000000 0x0 THUMB Debug/../../obj/uart.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/uart.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.data 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/assert.o
@ -2654,92 +2654,92 @@ Linker script and memory map
.text.UnusedISR
0x00001c4c 0xc THUMB Debug/../../obj/vectors.o
0x00001c4c UnusedISR
.text.CpuIrqDisable
0x00001c58 0x4 THUMB Debug/../../obj/cpu_comp.o
0x00001c58 CpuIrqDisable
.text.CpuIrqEnable
0x00001c5c 0x4 THUMB Debug/../../obj/cpu_comp.o
0x00001c5c CpuIrqEnable
.text.CpuInit 0x00001c60 0x4 THUMB Debug/../../obj/cpu.o
0x00001c60 CpuInit
.text.CpuInit 0x00001c58 0x4 THUMB Debug/../../obj/cpu.o
0x00001c58 CpuInit
.text.CpuStartUserProgram
0x00001c64 0x38 THUMB Debug/../../obj/cpu.o
0x00001c64 CpuStartUserProgram
0x00001c5c 0x38 THUMB Debug/../../obj/cpu.o
0x00001c5c CpuStartUserProgram
.text.CpuMemCopy
0x00001c9c 0x1c THUMB Debug/../../obj/cpu.o
0x00001c9c CpuMemCopy
0x00001c94 0x1c THUMB Debug/../../obj/cpu.o
0x00001c94 CpuMemCopy
.text.FlashGetSector
0x00001cb8 0x34 THUMB Debug/../../obj/flash.o
0x00001cb0 0x34 THUMB Debug/../../obj/flash.o
.text.FlashWriteBlock
0x00001cec 0x4e THUMB Debug/../../obj/flash.o
*fill* 0x00001d3a 0x2
0x00001ce4 0x4e THUMB Debug/../../obj/flash.o
*fill* 0x00001d32 0x2
.text.FlashSwitchBlock
0x00001d3c 0x50 THUMB Debug/../../obj/flash.o
0x00001d34 0x50 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
0x00001d8c 0x82 THUMB Debug/../../obj/flash.o
*fill* 0x00001e0e 0x2
0x00001d84 0x82 THUMB Debug/../../obj/flash.o
*fill* 0x00001e06 0x2
.text.FlashReinit
0x00001e10 0x18 THUMB Debug/../../obj/flash.o
0x00001e10 FlashReinit
0x00001e08 0x18 THUMB Debug/../../obj/flash.o
0x00001e08 FlashReinit
.text.FlashInit
0x00001e28 0x4 THUMB Debug/../../obj/flash.o
0x00001e28 FlashInit
0x00001e20 0x4 THUMB Debug/../../obj/flash.o
0x00001e20 FlashInit
.text.FlashWrite
0x00001e2c 0x48 THUMB Debug/../../obj/flash.o
0x00001e2c FlashWrite
0x00001e24 0x48 THUMB Debug/../../obj/flash.o
0x00001e24 FlashWrite
.text.FlashErase
0x00001e74 0xc4 THUMB Debug/../../obj/flash.o
0x00001e74 FlashErase
0x00001e6c 0xc4 THUMB Debug/../../obj/flash.o
0x00001e6c FlashErase
.text.FlashWriteChecksum
0x00001f38 0x44 THUMB Debug/../../obj/flash.o
0x00001f38 FlashWriteChecksum
0x00001f30 0x44 THUMB Debug/../../obj/flash.o
0x00001f30 FlashWriteChecksum
.text.FlashVerifyChecksum
0x00001f7c 0x46 THUMB Debug/../../obj/flash.o
0x00001f7c FlashVerifyChecksum
*fill* 0x00001fc2 0x2
0x00001f74 0x46 THUMB Debug/../../obj/flash.o
0x00001f74 FlashVerifyChecksum
*fill* 0x00001fba 0x2
.text.FlashDone
0x00001fc4 0x34 THUMB Debug/../../obj/flash.o
0x00001fc4 FlashDone
0x00001fbc 0x34 THUMB Debug/../../obj/flash.o
0x00001fbc FlashDone
.text.FlashGetUserProgBaseAddress
0x00001ff8 0x6 THUMB Debug/../../obj/flash.o
0x00001ff8 FlashGetUserProgBaseAddress
.text.NvmInit 0x00001ffe 0x4 THUMB Debug/../../obj/nvm.o
0x00001ffe NvmInit
0x00001ff0 0x6 THUMB Debug/../../obj/flash.o
0x00001ff0 FlashGetUserProgBaseAddress
.text.NvmInit 0x00001ff6 0x4 THUMB Debug/../../obj/nvm.o
0x00001ff6 NvmInit
.text.NvmWrite
0x00002002 0x4 THUMB Debug/../../obj/nvm.o
0x00002002 NvmWrite
0x00001ffa 0x4 THUMB Debug/../../obj/nvm.o
0x00001ffa NvmWrite
.text.NvmErase
0x00002006 0x4 THUMB Debug/../../obj/nvm.o
0x00002006 NvmErase
0x00001ffe 0x4 THUMB Debug/../../obj/nvm.o
0x00001ffe NvmErase
.text.NvmVerifyChecksum
0x0000200a 0x4 THUMB Debug/../../obj/nvm.o
0x0000200a NvmVerifyChecksum
0x00002002 0x4 THUMB Debug/../../obj/nvm.o
0x00002002 NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x0000200e 0x4 THUMB Debug/../../obj/nvm.o
0x0000200e NvmGetUserProgBaseAddress
.text.NvmDone 0x00002012 0x12 THUMB Debug/../../obj/nvm.o
0x00002012 NvmDone
0x00002006 0x4 THUMB Debug/../../obj/nvm.o
0x00002006 NvmGetUserProgBaseAddress
.text.NvmDone 0x0000200a 0x12 THUMB Debug/../../obj/nvm.o
0x0000200a NvmDone
.text.TimerInit
0x00002024 0x20 THUMB Debug/../../obj/timer.o
0x00002024 TimerInit
0x0000201c 0x20 THUMB Debug/../../obj/timer.o
0x0000201c TimerInit
.text.TimerReset
0x00002044 0xc THUMB Debug/../../obj/timer.o
0x00002044 TimerReset
0x0000203c 0xc THUMB Debug/../../obj/timer.o
0x0000203c TimerReset
.text.TimerUpdate
0x00002050 0x1c THUMB Debug/../../obj/timer.o
0x00002050 TimerUpdate
0x00002048 0x1c THUMB Debug/../../obj/timer.o
0x00002048 TimerUpdate
.text.TimerGet
0x0000206c 0x10 THUMB Debug/../../obj/timer.o
0x0000206c TimerGet
0x00002064 0x10 THUMB Debug/../../obj/timer.o
0x00002064 TimerGet
.text.UartInit
0x0000207c 0x28 THUMB Debug/../../obj/uart.o
0x0000207c UartInit
0x00002074 0x28 THUMB Debug/../../obj/uart.o
0x00002074 UartInit
.text.UartTransmitPacket
0x000020a4 0x74 THUMB Debug/../../obj/uart.o
0x000020a4 UartTransmitPacket
0x0000209c 0x74 THUMB Debug/../../obj/uart.o
0x0000209c UartTransmitPacket
.text.UartReceivePacket
0x00002118 0x94 THUMB Debug/../../obj/uart.o
0x00002118 UartReceivePacket
0x00002110 0x94 THUMB Debug/../../obj/uart.o
0x00002110 UartReceivePacket
.text.CpuIrqDisable
0x000021a4 0x4 THUMB Debug/../../obj/cpu_comp.o
0x000021a4 CpuIrqDisable
.text.CpuIrqEnable
0x000021a8 0x4 THUMB Debug/../../obj/cpu_comp.o
0x000021a8 CpuIrqEnable
.text.AssertFailure
0x000021ac 0x8 THUMB Debug/../../obj/assert.o
0x000021ac AssertFailure
@ -3362,12 +3362,12 @@ LOAD THUMB Debug/../../obj/hooks.o
LOAD THUMB Debug/../../obj/main.o
LOAD THUMB Debug/../../obj/cstart.o
LOAD THUMB Debug/../../obj/vectors.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/cpu.o
LOAD THUMB Debug/../../obj/flash.o
LOAD THUMB Debug/../../obj/nvm.o
LOAD THUMB Debug/../../obj/timer.o
LOAD THUMB Debug/../../obj/uart.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/assert.o
LOAD THUMB Debug/../../obj/backdoor.o
LOAD THUMB Debug/../../obj/boot.o
@ -3405,12 +3405,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_frame 0x00001afc 0xb8 THUMB Debug/../../obj/hooks.o
.debug_frame 0x00001bb4 0x2c THUMB Debug/../../obj/main.o
.debug_frame 0x00001be0 0x20 THUMB Debug/../../obj/vectors.o
.debug_frame 0x00001c00 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00001c30 0x6c THUMB Debug/../../obj/cpu.o
.debug_frame 0x00001c9c 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x00001e1c 0x9c THUMB Debug/../../obj/nvm.o
.debug_frame 0x00001eb8 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00001f14 0x78 THUMB Debug/../../obj/uart.o
.debug_frame 0x00001c00 0x6c THUMB Debug/../../obj/cpu.o
.debug_frame 0x00001c6c 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x00001dec 0x9c THUMB Debug/../../obj/nvm.o
.debug_frame 0x00001e88 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00001ee4 0x78 THUMB Debug/../../obj/uart.o
.debug_frame 0x00001f5c 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00001f8c 0x2c THUMB Debug/../../obj/assert.o
.debug_frame 0x00001fb8 0x60 THUMB Debug/../../obj/backdoor.o
.debug_frame 0x00002018 0x58 THUMB Debug/../../obj/boot.o
@ -3439,12 +3439,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_info 0x000073f4 0x136 THUMB Debug/../../obj/main.o
.debug_info 0x0000752a 0xd6 THUMB Debug/../../obj/cstart.o
.debug_info 0x00007600 0x11b THUMB Debug/../../obj/vectors.o
.debug_info 0x0000771b 0x91 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x000077ac 0x1d8 THUMB Debug/../../obj/cpu.o
.debug_info 0x00007984 0x86e THUMB Debug/../../obj/flash.o
.debug_info 0x000081f2 0x25f THUMB Debug/../../obj/nvm.o
.debug_info 0x00008451 0x13e THUMB Debug/../../obj/timer.o
.debug_info 0x0000858f 0x455 THUMB Debug/../../obj/uart.o
.debug_info 0x0000771b 0x1d8 THUMB Debug/../../obj/cpu.o
.debug_info 0x000078f3 0x86e THUMB Debug/../../obj/flash.o
.debug_info 0x00008161 0x25f THUMB Debug/../../obj/nvm.o
.debug_info 0x000083c0 0x13e THUMB Debug/../../obj/timer.o
.debug_info 0x000084fe 0x455 THUMB Debug/../../obj/uart.o
.debug_info 0x00008953 0x91 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x000089e4 0xd3 THUMB Debug/../../obj/assert.o
.debug_info 0x00008ab7 0x14f THUMB Debug/../../obj/backdoor.o
.debug_info 0x00008c06 0x18b THUMB Debug/../../obj/boot.o
@ -3472,12 +3472,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_abbrev 0x00001081 0xbb THUMB Debug/../../obj/main.o
.debug_abbrev 0x0000113c 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00001150 0xef THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x0000123f 0x43 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00001282 0xdf THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x00001361 0x276 THUMB Debug/../../obj/flash.o
.debug_abbrev 0x000015d7 0xd9 THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x000016b0 0xea THUMB Debug/../../obj/timer.o
.debug_abbrev 0x0000179a 0x19e THUMB Debug/../../obj/uart.o
.debug_abbrev 0x0000123f 0xdf THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x0000131e 0x276 THUMB Debug/../../obj/flash.o
.debug_abbrev 0x00001594 0xd9 THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x0000166d 0xea THUMB Debug/../../obj/timer.o
.debug_abbrev 0x00001757 0x19e THUMB Debug/../../obj/uart.o
.debug_abbrev 0x000018f5 0x43 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00001938 0x89 THUMB Debug/../../obj/assert.o
.debug_abbrev 0x000019c1 0xae THUMB Debug/../../obj/backdoor.o
.debug_abbrev 0x00001a6f 0x6f THUMB Debug/../../obj/boot.o
@ -3541,17 +3541,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_pubnames
0x0000179d 0x2d THUMB Debug/../../obj/vectors.o
.debug_pubnames
0x000017ca 0x35 THUMB Debug/../../obj/cpu_comp.o
0x000017ca 0x45 THUMB Debug/../../obj/cpu.o
.debug_pubnames
0x000017ff 0x45 THUMB Debug/../../obj/cpu.o
0x0000180f 0x178 THUMB Debug/../../obj/flash.o
.debug_pubnames
0x00001844 0x178 THUMB Debug/../../obj/flash.o
0x00001987 0x86 THUMB Debug/../../obj/nvm.o
.debug_pubnames
0x000019bc 0x86 THUMB Debug/../../obj/nvm.o
0x00001a0d 0x64 THUMB Debug/../../obj/timer.o
.debug_pubnames
0x00001a42 0x64 THUMB Debug/../../obj/timer.o
0x00001a71 0x75 THUMB Debug/../../obj/uart.o
.debug_pubnames
0x00001aa6 0x75 THUMB Debug/../../obj/uart.o
0x00001ae6 0x35 THUMB Debug/../../obj/cpu_comp.o
.debug_pubnames
0x00001b1b 0x24 THUMB Debug/../../obj/assert.o
.debug_pubnames
@ -3602,17 +3602,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_pubtypes
0x00000920 0xe2 THUMB Debug/../../obj/vectors.o
.debug_pubtypes
0x00000a02 0xc6 THUMB Debug/../../obj/cpu_comp.o
0x00000a02 0xff THUMB Debug/../../obj/cpu.o
.debug_pubtypes
0x00000ac8 0xff THUMB Debug/../../obj/cpu.o
0x00000b01 0x131 THUMB Debug/../../obj/flash.o
.debug_pubtypes
0x00000bc7 0x131 THUMB Debug/../../obj/flash.o
0x00000c32 0xfd THUMB Debug/../../obj/nvm.o
.debug_pubtypes
0x00000cf8 0xfd THUMB Debug/../../obj/nvm.o
0x00000d2f 0xe6 THUMB Debug/../../obj/timer.o
.debug_pubtypes
0x00000df5 0xe6 THUMB Debug/../../obj/timer.o
0x00000e15 0x10e THUMB Debug/../../obj/uart.o
.debug_pubtypes
0x00000edb 0x10e THUMB Debug/../../obj/uart.o
0x00000f23 0xc6 THUMB Debug/../../obj/cpu_comp.o
.debug_pubtypes
0x00000fe9 0xe2 THUMB Debug/../../obj/assert.o
.debug_pubtypes
@ -3664,17 +3664,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_aranges
0x00000820 0x20 THUMB Debug/../../obj/vectors.o
.debug_aranges
0x00000840 0x28 THUMB Debug/../../obj/cpu_comp.o
0x00000840 0x30 THUMB Debug/../../obj/cpu.o
.debug_aranges
0x00000868 0x30 THUMB Debug/../../obj/cpu.o
0x00000870 0x70 THUMB Debug/../../obj/flash.o
.debug_aranges
0x00000898 0x70 THUMB Debug/../../obj/flash.o
0x000008e0 0x50 THUMB Debug/../../obj/nvm.o
.debug_aranges
0x00000908 0x50 THUMB Debug/../../obj/nvm.o
0x00000930 0x38 THUMB Debug/../../obj/timer.o
.debug_aranges
0x00000958 0x38 THUMB Debug/../../obj/timer.o
0x00000968 0x30 THUMB Debug/../../obj/uart.o
.debug_aranges
0x00000990 0x30 THUMB Debug/../../obj/uart.o
0x00000998 0x28 THUMB Debug/../../obj/cpu_comp.o
.debug_aranges
0x000009c0 0x20 THUMB Debug/../../obj/assert.o
.debug_aranges
@ -3714,12 +3714,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_ranges 0x00000760 0x38 THUMB Debug/../../obj/hooks.o
.debug_ranges 0x00000798 0x10 THUMB Debug/../../obj/main.o
.debug_ranges 0x000007a8 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x000007b8 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x000007d0 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x000007f0 0xa8 THUMB Debug/../../obj/flash.o
.debug_ranges 0x00000898 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x000008d8 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000900 0x60 THUMB Debug/../../obj/uart.o
.debug_ranges 0x000007b8 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x000007d8 0xa8 THUMB Debug/../../obj/flash.o
.debug_ranges 0x00000880 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x000008c0 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x000008e8 0x60 THUMB Debug/../../obj/uart.o
.debug_ranges 0x00000948 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000960 0x10 THUMB Debug/../../obj/assert.o
.debug_ranges 0x00000970 0x18 THUMB Debug/../../obj/backdoor.o
.debug_ranges 0x00000988 0x18 THUMB Debug/../../obj/boot.o
@ -3734,7 +3734,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_ranges 0x00000f68 0x28 THUMB Debug/../../obj/net.o
.debug_ranges 0x00000f90 0x1098 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi_small.a(libc2.o)
.debug_line 0x00000000 0x6fe9
.debug_line 0x00000000 0x6fe2
.debug_line 0x00000000 0x8ad THUMB Debug/../../obj/sysctl.o
.debug_line 0x000008ad 0x770 THUMB Debug/../../obj/gpio.o
.debug_line 0x0000101d 0x426 THUMB Debug/../../obj/flashlib.o
@ -3747,27 +3747,27 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_line 0x00002ef3 0x139 THUMB Debug/../../obj/main.o
.debug_line 0x0000302c 0x105 THUMB Debug/../../obj/cstart.o
.debug_line 0x00003131 0xff THUMB Debug/../../obj/vectors.o
.debug_line 0x00003230 0xc6 THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x000032f6 0x16d THUMB Debug/../../obj/cpu.o
.debug_line 0x00003463 0x337 THUMB Debug/../../obj/flash.o
.debug_line 0x0000379a 0x162 THUMB Debug/../../obj/nvm.o
.debug_line 0x000038fc 0x126 THUMB Debug/../../obj/timer.o
.debug_line 0x00003a22 0x235 THUMB Debug/../../obj/uart.o
.debug_line 0x00003c57 0x10f THUMB Debug/../../obj/assert.o
.debug_line 0x00003d66 0x14d THUMB Debug/../../obj/backdoor.o
.debug_line 0x00003eb3 0x126 THUMB Debug/../../obj/boot.o
.debug_line 0x00003fd9 0x1aa THUMB Debug/../../obj/com.o
.debug_line 0x00004183 0x99 THUMB Debug/../../obj/cop.o
.debug_line 0x0000421c 0x23b THUMB Debug/../../obj/xcp.o
.debug_line 0x00004457 0x3f0 THUMB Debug/../../obj/file.o
.debug_line 0x00004847 0xfda THUMB Debug/../../obj/ff.o
.debug_line 0x00005821 0x117 THUMB Debug/../../obj/unicode.o
.debug_line 0x00005938 0x645 THUMB Debug/../../obj/uip.o
.debug_line 0x00005f7d 0x2d7 THUMB Debug/../../obj/uip_arp.o
.debug_line 0x00006254 0x26f THUMB Debug/../../obj/net.o
.debug_line 0x000064c3 0xb26 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi_small.a(libc2.o)
.debug_line 0x00003230 0x16d THUMB Debug/../../obj/cpu.o
.debug_line 0x0000339d 0x337 THUMB Debug/../../obj/flash.o
.debug_line 0x000036d4 0x162 THUMB Debug/../../obj/nvm.o
.debug_line 0x00003836 0x126 THUMB Debug/../../obj/timer.o
.debug_line 0x0000395c 0x235 THUMB Debug/../../obj/uart.o
.debug_line 0x00003b91 0xbf THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x00003c50 0x10f THUMB Debug/../../obj/assert.o
.debug_line 0x00003d5f 0x14d THUMB Debug/../../obj/backdoor.o
.debug_line 0x00003eac 0x126 THUMB Debug/../../obj/boot.o
.debug_line 0x00003fd2 0x1aa THUMB Debug/../../obj/com.o
.debug_line 0x0000417c 0x99 THUMB Debug/../../obj/cop.o
.debug_line 0x00004215 0x23b THUMB Debug/../../obj/xcp.o
.debug_line 0x00004450 0x3f0 THUMB Debug/../../obj/file.o
.debug_line 0x00004840 0xfda THUMB Debug/../../obj/ff.o
.debug_line 0x0000581a 0x117 THUMB Debug/../../obj/unicode.o
.debug_line 0x00005931 0x645 THUMB Debug/../../obj/uip.o
.debug_line 0x00005f76 0x2d7 THUMB Debug/../../obj/uip_arp.o
.debug_line 0x0000624d 0x26f THUMB Debug/../../obj/net.o
.debug_line 0x000064bc 0xb26 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi_small.a(libc2.o)
.debug_str 0x00000000 0x565e
.debug_str 0x00000000 0x5657
.debug_str 0x00000000 0x757 THUMB Debug/../../obj/sysctl.o
0x7bf (size before relaxing)
.debug_str 0x00000757 0x411 THUMB Debug/../../obj/gpio.o
@ -3790,43 +3790,43 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
0x24d (size before relaxing)
.debug_str 0x00001d4b 0x8d THUMB Debug/../../obj/vectors.o
0x246 (size before relaxing)
.debug_str 0x00001dd8 0xa1 THUMB Debug/../../obj/cpu_comp.o
0x241 (size before relaxing)
.debug_str 0x00001e79 0x117 THUMB Debug/../../obj/cpu.o
.debug_str 0x00001dd8 0x132 THUMB Debug/../../obj/cpu.o
0x2e7 (size before relaxing)
.debug_str 0x00001f90 0x267 THUMB Debug/../../obj/flash.o
.debug_str 0x00001f0a 0x267 THUMB Debug/../../obj/flash.o
0x497 (size before relaxing)
.debug_str 0x000021f7 0xac THUMB Debug/../../obj/nvm.o
.debug_str 0x00002171 0xac THUMB Debug/../../obj/nvm.o
0x318 (size before relaxing)
.debug_str 0x000022a3 0xb9 THUMB Debug/../../obj/timer.o
.debug_str 0x0000221d 0xb9 THUMB Debug/../../obj/timer.o
0x278 (size before relaxing)
.debug_str 0x0000235c 0x120 THUMB Debug/../../obj/uart.o
.debug_str 0x000022d6 0x120 THUMB Debug/../../obj/uart.o
0x399 (size before relaxing)
.debug_str 0x0000247c 0x6d THUMB Debug/../../obj/assert.o
.debug_str 0x000023f6 0x7f THUMB Debug/../../obj/cpu_comp.o
0x23a (size before relaxing)
.debug_str 0x00002475 0x6d THUMB Debug/../../obj/assert.o
0x244 (size before relaxing)
.debug_str 0x000024e9 0xe2 THUMB Debug/../../obj/backdoor.o
.debug_str 0x000024e2 0xe2 THUMB Debug/../../obj/backdoor.o
0x2b3 (size before relaxing)
.debug_str 0x000025cb 0x95 THUMB Debug/../../obj/boot.o
.debug_str 0x000025c4 0x95 THUMB Debug/../../obj/boot.o
0x293 (size before relaxing)
.debug_str 0x00002660 0x160 THUMB Debug/../../obj/com.o
.debug_str 0x00002659 0x160 THUMB Debug/../../obj/com.o
0x38f (size before relaxing)
.debug_str 0x000027c0 0x6a THUMB Debug/../../obj/cop.o
.debug_str 0x000027b9 0x6a THUMB Debug/../../obj/cop.o
0x215 (size before relaxing)
.debug_str 0x0000282a 0x23c THUMB Debug/../../obj/xcp.o
.debug_str 0x00002823 0x23c THUMB Debug/../../obj/xcp.o
0x4d9 (size before relaxing)
.debug_str 0x00002a66 0x36e THUMB Debug/../../obj/file.o
.debug_str 0x00002a5f 0x36e THUMB Debug/../../obj/file.o
0x8d6 (size before relaxing)
.debug_str 0x00002dd4 0x361 THUMB Debug/../../obj/ff.o
.debug_str 0x00002dcd 0x361 THUMB Debug/../../obj/ff.o
0x85d (size before relaxing)
.debug_str 0x00003135 0x95 THUMB Debug/../../obj/unicode.o
.debug_str 0x0000312e 0x95 THUMB Debug/../../obj/unicode.o
0x24b (size before relaxing)
.debug_str 0x000031ca 0x3dd THUMB Debug/../../obj/uip.o
.debug_str 0x000031c3 0x3dd THUMB Debug/../../obj/uip.o
0x685 (size before relaxing)
.debug_str 0x000035a7 0x17e THUMB Debug/../../obj/uip_arp.o
.debug_str 0x000035a0 0x17e THUMB Debug/../../obj/uip_arp.o
0x451 (size before relaxing)
.debug_str 0x00003725 0xbd THUMB Debug/../../obj/net.o
.debug_str 0x0000371e 0xbd THUMB Debug/../../obj/net.o
0x4a0 (size before relaxing)
.debug_str 0x000037e2 0x1e7c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi_small.a(libc2.o)
.debug_str 0x000037db 0x1e7c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi_small.a(libc2.o)
0x2019 (size before relaxing)
.comment 0x00000000 0x4c
@ -3842,12 +3842,12 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.comment 0x0000004c 0x4d THUMB Debug/../../obj/hooks.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/main.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/vectors.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/flash.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/nvm.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/timer.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/uart.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/assert.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/backdoor.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/boot.o
@ -3889,17 +3889,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.ARM.attributes
0x0000021f 0x33 THUMB Debug/../../obj/vectors.o
.ARM.attributes
0x00000252 0x33 THUMB Debug/../../obj/cpu_comp.o
0x00000252 0x33 THUMB Debug/../../obj/cpu.o
.ARM.attributes
0x00000285 0x33 THUMB Debug/../../obj/cpu.o
0x00000285 0x33 THUMB Debug/../../obj/flash.o
.ARM.attributes
0x000002b8 0x33 THUMB Debug/../../obj/flash.o
0x000002b8 0x33 THUMB Debug/../../obj/nvm.o
.ARM.attributes
0x000002eb 0x33 THUMB Debug/../../obj/nvm.o
0x000002eb 0x33 THUMB Debug/../../obj/timer.o
.ARM.attributes
0x0000031e 0x33 THUMB Debug/../../obj/timer.o
0x0000031e 0x33 THUMB Debug/../../obj/uart.o
.ARM.attributes
0x00000351 0x33 THUMB Debug/../../obj/uart.o
0x00000351 0x33 THUMB Debug/../../obj/cpu_comp.o
.ARM.attributes
0x00000384 0x33 THUMB Debug/../../obj/assert.o
.ARM.attributes

View File

@ -301,9 +301,9 @@ S113129805F12003D107FAD4E400E4B244F00104D0
S11312A81C601A68D207FCD4286B80B238BD00BF12
S11312B800800440A65A000013B5064C0146204697
S11312C8FFF7FCFD204601A9FFF718FE9DF804006E
S11312D802B010BD0080004038B500F0C3FE00F530
S11312D802B010BD0080004038B500F0BFFE00F534
S11312E8FA75FF20FFF7E8FFFF28044603D000F053
S11312F8B9FE8542F5D8A4F1FF035842584138BDD8
S11312F8B5FE8542F5D8A4F1FF035842584138BDDC
S113130808B5012204481146FFF706FBBDE808406A
S1131318FF20FFF7D1BF00BF0070004010B50022C6
S113132801210848FFF7F8FAFF20FFF7C5FFFFF788
@ -322,8 +322,8 @@ S11313E805F2022514F8020CFFF766FF023414F81C
S11313F8030CFFF761FFAC42F4D1FF20FFF75CFF59
S1131408FF20FFF759FFFF20FFF756FF00F01F00EA
S1131418431F5842584138BD012038BD70B50646AF
S11314280D4600F01FFE00F16404FF20FFF744FF9F
S1131438FF2805D100F016FE8442F6D8002070BDBE
S11314280D4600F01BFE00F16404FF20FFF744FFA3
S1131438FF2805D100F012FE8442F6D8002070BDC2
S1131448FE28FBD1B41C0235FF20FFF735FF04F852
S1131458020CFF20FFF730FF023404F8030C2B1BA7
S1131468DE42F1D1FF20FFF727FFFF20FFF724FF1B
@ -341,17 +341,17 @@ S11315184FF04020FFF700FA0A240DF10C08FF21D0
S11315285A48FFF7CBFC41465848FFF7E7FC013C13
S1131538F5D120214FF04020FFF734FA224601214B
S11315485048FFF7E9F921462046FFF7FDFE012838
S1131558054661D100F086FD4FF4D57100F57A7720
S1131558054661D100F082FD4FF4D57100F57A7724
S11315680820FFF7F1FE012836D1FF20FFF7A4FE7B
S113157808F804000134042CF7D19DF80E30012B2F
S11315884AD19DF80F30AA2B46D100F06BFD874253
S113159804D800F067FD87423ED907E04FF0804148
S11315884AD19DF80F30AA2B46D100F067FD874257
S113159804D800F063FD87423ED907E04FF080414C
S11315A8A920FFF7D1FE0028EFD1F2E700213A2065
S11315B8FFF7CAFE80BB0446FF20FFF77DFE08F84C
S11315C804000134042CF7D19DF80C3013F0400FBB
S11315D814BF0C24042420E02146A920FFF7B4FEFC
S11315E8012887BF2C4625460224A92500F03AFD88
S11315F8874204D800F036FD87420DD906E0002161
S11315E8012887BF2C4625460224A92500F036FD8C
S11315F8874204D800F032FD87420DD906E0002165
S11316082846FFF7A1FE0028F0D1F3E74FF4007154
S11316181020FFF799FE00B100241D4B1C60FFF752
S11316286FFE3378DCB103F0FE0318483370FFF71C
@ -417,8 +417,8 @@ S11319D8B5FF7F213A48FFF705FC00213848FFF797
S11319E81DFC01463648FFF72DFCFEF7D3FD0146E2
S11319F83348FFF70DFB16213148FFF71FFB30482A
S1131A08FFF778FB01212E48FFF736FC054600F066
S1131A1829FB00F59C540834680708D40121284898
S1131A28FFF72AFC054600F01DFB8442F4D808237E
S1131A1825FB00F59C540834680708D4012128489C
S1131A28FFF72AFC054600F019FB8442F4D8082382
S1131A388DF8083000238DF8093027238DF80A30F3
S1131A4869238DF80B305B238DF80C3001A94523ED
S1131A5868468DF80D30FFF777F8009A541C12D0B9
@ -440,9 +440,9 @@ S1131B48002047B05DF804FB135B000000487047B1
S1131B58135B000010B5074C00230A2206492046EF
S1131B6884F8283202F05EF910B9012384F8283287
S1131B7810BD00BF1C0000202E5B000010B50C48EF
S1131B8890F82832012B01D102F0CAFB00F06AFA5E
S1131B8890F82832012B01D102F0CAFB00F066FA62
S1131B9800F164040748FFF7F1F8012803D100F0C5
S1131BA861FA8442F6D20448BDE8104002F08ABCC7
S1131BA85DFA8442F6D20448BDE8104002F08ABCCB
S1131BB81C00002000C00040135B0000034890F89C
S1131BC82832012B01D102F0ABBB70471C00002066
S1131BD838B50F4D044695F82832012B0AD1294609
@ -453,110 +453,110 @@ S1131C181C00002000C0004008B50848FEF712FC6C
S1131C280748FEF7D7FB03214FF04020FEF7D4FE08
S1131C3800F0F0FA00F0FFFAFCE700BF8003C001EF
S1131C48010000203821014800F0ACBA3B5B0000D9
S1131C5872B6704762B67047FFF7FABF10B500F066
S1131C68D0F9A0B100F022FB00F0E8F900F0CBF9BC
S1131C78074B20F0604020F07F00186000F0C3F9A3
S1131C884468FFF7E7FF2346BDE81040184710BD36
S1131C9808ED00E0013A70B54D1E5618441AB542D5
S1131CA805D015F8013F635500F029FBF7E770BD2F
S1131CB8F8B505460A4E00240C2700F020FB07FB64
S1131CC804F39959A94206D833445A680A449542F8
S1131CD801D2187AF8BD0134102CEED1FF20F8BDDA
S1131CE89C5B00002DE9F34105460068FFF7E0FF1F
S1131CF8FF2801D1002019E00024261D2F68AB59C4
S1131D0804EB0708019300F0FAFA042241460DEBAC
S1131D180200FEF7A3FE0028ECD1E259019B9A4287
S1131D28E8D1B6F5007F3446E7D1012002B0BDE81A
S1131D38F081000038B5114B044698420D4606D090
S1131D48B1F5004F05D0FFF7CDFF18B911E00C4CE1
S1131D5800E01C46C5F308035BB923689D420AD01A
S1131D6820464FF4007240F8045B2946FFF792FFBF
S1131D7801E0002038BD204638BD00BF48020020DD
S1131D884C0400202DE9F8439846036821F4FF76B3
S1131D98013304460D46174626F0010606D140F8DD
S1131DA8046B4FF400723146FFF774FF23689E42B8
S1131DB808D020463146FFF7BDFF044610B900207D
S1131DC8BDE8F883B946236806F50076ED1A25447C
S1131DD8043500F094FA231DEB1AB3F5007F07D3FA
S1131DE820463146FFF7A6FF04460028E7D0051D24
S1131DF819F8013B05F8013BC9EB0803DF42E8D1B8
S1131E080120BDE8F8830000034A4FF0FF33136054
S1131E18024A1360704700BF4C04002048020020A7
S1131E28FFF7F2BF70B504460D461646FFF740FFAC
S1131E38FF2815D0681E2044FFF73AFFFF280FD06B
S1131E4824F4FF7323F00103B3F5004F32462B4605
S1131E582146BDE870400CBF02480348FFF792BF13
S1131E68002070BD480200204C0400202DE9F843EE
S1131E780C460646FFF71CFF0546601E3044FFF774
S1131E8817FF8542074602D90020BDE8F8832B1FB7
S1131E98DBB2FA2BF8D81328F6D8244E00244FF0D6
S1131EA80C0900F02CFA09FB04631A7ADFF87C8029
S1131EB8AA4201D11E6804E00134102CF1D14FF07C
S1131EC8FF3600240C2500F01AFA05FB04831A7A5D
S1131ED8BA4201D11C6804E00134102CF3D14FF04C
S1131EE8FF3400254FF00C0900F009FA09FB0583BB
S1131EF81A7ABA4201D15B6803E00135102DF3D197
S1131F080023A41B2344C3F38F240025ABB29C42B3
S1131F1809D900F0F4F906EB8520FEF777FD0135C1
S1131F280028F3D0B0E70120BDE8F8839C5B0000EB
S1131F380F4B07B51A68013216D09A68596848F2E7
S1131F48F0001144DA6811441A6911445A691144B9
S1131F589A691144DA698B185B4202AA42F8043D73
S1131F680421FFF75FFF00E0012003B05DF804FBE4
S1131F78480200204FF400431A6848F204031B681F
S1131F88134448F208021268134448F20C02126817
S1131F98134448F21002116848F2140212680B4400
S1131FA81A4448F218031B68134448F2F0021268F2
S1131FB8D3420CBF01200020704700000A4808B52E
S1131FC80368013305D109480368013306D10120A8
S1131FD808BDFFF787FE0028F5D108BDFFF782FE8C
S1131FE8003018BF012008BD480200204C0400201E
S1131FF84FF400407047FFF713BFFFF713BFFFF715
S113200835BFFFF7B7BFFFF7F3BF08B5FFF790FF7A
S113201818B1BDE80840FFF7D1BF08BD4CF24F31F5
S1132028044B00221A60596005219A601960024B1A
S11320381A60704710E000E050060020014B0022AF
S11320481A60704710E000E0044B1B68DB0341BFD3
S1132058034A136801331360704700BF10E000E0BF
S11320685006002008B5FFF7EFFF014B186808BDBC
S11320785006002010B50748FEF7ACF9FEF78AFAB7
S1132088BDE81040014660234FF461420248FEF760
S1132098CDBD00BF0100001000C00040402970B54C
S11320A806460C4603D95B21174800F07BF8214605
S11320B81648FEF74FFE30B11448FEF725FE30B936
S11320C800F01DF9F8E75F210F4800F06BF835467A
S11320D8A4B2AB1B9BB2A3420FD200F010F915F8BF
S11320E8011B0A48FEF736FE40B10848FEF70CFE0D
S11320F80028EED100F003F9F7E770BD6821024823
S113210800F050F8E5E700BF5C5C000000C0004048
S1132118F8B51F4D07462C78A4B91E48FEF706FEED
S1132128421C01D1002430E01B4BC0B218700028B7
S1132138F8D0FFF797FF194B1860194B1C7001234F
S11321482B7022E0164C13482678FEF7EFFD431C4B
S113215806F1010610D010492378885501330A780E
S1132168DBB29A422370DDD101313846FFF792FD84
S113217800232B70012408E0FFF774FF074B1B684A
S113218864339842CED900242C702046F8BD00BF91
S11321989A06002000C0004058060020540600207B
S11321A89906002008B500F0AAF8FCE710B500F07D
S1131C5800F0A4BA10B500F0D0F9A0B100F026FB4A
S1131C6800F0E8F900F0CBF9074B20F0604020F0D1
S1131C787F00186000F0C3F9446800F091FA234625
S1131C88BDE81040184710BD08ED00E0013A70B5F2
S1131C984D1E5618441AB54205D015F8013F635530
S1131CA800F02DFBF7E770BDF8B505460A4E002491
S1131CB80C2700F024FB07FB04F39959A94206D822
S1131CC833445A680A44954201D2187AF8BD01345B
S1131CD8102CEED1FF20F8BD9C5B00002DE9F341E8
S1131CE805460068FFF7E0FFFF2801D1002019E04E
S1131CF80024261D2F68AB5904EB0708019300F054
S1131D08FEFA042241460DEB0200FEF7A7FE002866
S1131D18ECD1E259019B9A42E8D1B6F5007F3446EA
S1131D28E7D1012002B0BDE8F081000038B5114BBD
S1131D38044698420D4606D0B1F5004F05D0FFF78A
S1131D48CDFF18B911E00C4C00E01C46C5F308039C
S1131D585BB923689D420AD020464FF4007240F8CC
S1131D68045B2946FFF792FF01E0002038BD2046B6
S1131D7838BD00BF480200204C0400202DE9F84378
S1131D889846036821F4FF76013304460D46174646
S1131D9826F0010606D140F8046B4FF40072314670
S1131DA8FFF774FF23689E4208D020463146FFF7A8
S1131DB8BDFF044610B90020BDE8F883B94623687E
S1131DC806F50076ED1A2544043500F098FA231D2B
S1131DD8EB1AB3F5007F07D320463146FFF7A6FF79
S1131DE804460028E7D0051D19F8013B05F8013B16
S1131DF8C9EB0803DF42E8D10120BDE8F8830000FD
S1131E08034A4FF0FF331360024A1360704700BF60
S1131E184C04002048020020FFF7F2BF70B50446C6
S1131E280D461646FFF740FFFF2815D0681E2044CC
S1131E38FFF73AFFFF280FD024F4FF7323F00103C0
S1131E48B3F5004F32462B462146BDE870400CBF1F
S1131E5802480348FFF792BF002070BD48020020E3
S1131E684C0400202DE9F8430C460646FFF71CFFF6
S1131E780546601E3044FFF717FF8542074602D91E
S1131E880020BDE8F8832B1FDBB2FA2BF8D81328FF
S1131E98F6D8244E00244FF00C0900F030FA09FB60
S1131EA804631A7ADFF87C80AA4201D11E6804E030
S1131EB80134102CF1D14FF0FF3600240C2500F02A
S1131EC81EFA05FB04831A7ABA4201D11C6804E09D
S1131ED80134102CF3D14FF0FF3400254FF00C09D6
S1131EE800F00DFA09FB05831A7ABA4201D15B683E
S1131EF803E00135102DF3D10023A41B2344C3F3BD
S1131F088F240025ABB29C4209D900F0F8F906EBFE
S1131F188520FEF77BFD01350028F3D0B0E70120CA
S1131F28BDE8F8839C5B00000F4B07B51A680132C3
S1131F3816D09A68596848F2F0001144DA681144D6
S1131F481A6911445A6911449A691144DA698B1857
S1131F585B4202AA42F8043D0421FFF75FFF00E058
S1131F68012003B05DF804FB480200204FF400434D
S1131F781A6848F204031B68134448F208021268FA
S1131F88134448F20C021268134448F21002116810
S1131F9848F2140212680B441A4448F218031B68E6
S1131FA8134448F2F0021268D3420CBF0120002007
S1131FB8704700000A4808B50368013305D1094889
S1131FC80368013306D1012008BDFFF787FE002806
S1131FD8F5D108BDFFF782FE003018BF012008BD07
S1131FE8480200204C0400204FF400407047FFF7DB
S1131FF813BFFFF713BFFFF735BFFFF7B7BFFFF7EF
S1132008F3BF08B5FFF790FF18B1BDE80840FFF724
S1132018D1BF08BD4CF24F31044B00221A605960FD
S113202805219A601960024B1A60704710E000E0BD
S113203850060020014B00221A60704710E000E0AF
S1132048044B1B68DB0341BF034A13680133136065
S1132058704700BF10E000E05006002008B5FFF705
S1132068EFFF014B186808BD5006002010B507485B
S1132078FEF7B0F9FEF78EFABDE81040014660237A
S11320884FF461420248FEF7D1BD00BF01000010C1
S113209800C00040402970B506460C4603D95B21B0
S11320A8174800F07FF821461648FEF753FE30B172
S11320B81448FEF729FE30B900F021F9F8E75F214A
S11320C80F4800F06FF83546A4B2AB1B9BB2A3428D
S11320D80FD200F014F915F8011B0A48FEF73AFE6E
S11320E840B10848FEF710FE0028EED100F007F9C9
S11320F8F7E770BD6821024800F054F8E5E700BF2F
S11321085C5C000000C00040F8B51F4D07462C7801
S1132118A4B91E48FEF70AFE421C01D1002430E08F
S11321281B4BC0B218700028F8D0FFF797FF194B63
S11321381860194B1C7001232B7022E0164C1348AD
S11321482678FEF7F3FD431C06F1010610D010496A
S11321582378885501330A78DBB29A422370DDD19B
S113216801313846FFF792FD00232B70012408E063
S1132178FFF774FF074B1B6864339842CED90024D9
S11321882C702046F8BD00BF9A06002000C000400D
S113219858060020540600209906002072B670479D
S11321A862B6704708B500F0AAF8FCE710B500F06D
S11321B8A3F8012818D000F047FAA8B10B4C2378EB
S11321C8012B11D1FFF74EFF094B1B6803F51C5374
S11321C8012B11D1FFF74AFF094B1B6803F51C5378
S11321D81033984208D30023237000F03DFA18B94D
S11321E8BDE81040FFF73ABD10BD00BF9B060020B4
S11321F89C06002008B5054B01221A70FFF732FF30
S11321E8BDE81040FFF736BD10BD00BF9B060020B8
S11321F89C06002008B5054B01221A70FFF72EFF34
S1132208034B1860BDE80840FFF7D0BF9B060020C9
S11322189C06002008B5FFF71FFD00F06FF8FFF7D4
S1132228FDFEFFF7E8FE00F0F7F900F011F8BDE84D
S11322380840FFF7DFBF08B500F061F8FFF704FFB7
S11322189C06002008B5FFF71BFD00F06FF8FFF7D8
S1132228F9FEFFF7E4FE00F0F7F900F011F8BDE855
S11322380840FFF7DFBF08B500F061F8FFF700FFBB
S113224800F0F8FA00F014F8BDE80840FFF7AEBF54
S113225810B5064C00F05EF8FFF70CFF002323705E
S113225810B5064C00F05EF8FFF708FF0023237062
S113226803F07AF90323237010BD00BF0100002096
S113227808B50C48FFF74CFF012805D10A4B00228A
S113227808B50C48FFF748FF012805D10A4B00228E
S113228808481A7000F064F8064803F0B9F9012800
S113229807D1054B03221A700248BDE8084000F034
S11322A857B808BDA00600200100002070470000B0
S11322B80A4B70B51A7806460D461C4612B9C9B2BF
S11322C8FFF7ECFE2378032B03D1E9B2304603F081
S11322C8FFF7E8FE2378032B03D1E9B2304603F085
S11322D879F9BDE8704000F033B800BF0100002070
S11322E8034B1B78013B012B8CBF40200020704717
S11322F801000020FFF7F4BF00F01AB870477047D8
@ -569,7 +569,7 @@ S1132358F8B506780546FF2E824C1ED100F074F9B4
S113236808B91020E6E00023102201256370637188
S113237822712570E670FFF7BDFFA071FFF7B0FF6B
S1132388E071FFF7ADFF0823000A20726572A57299
S1132398A4F84430FFF72FFECEE02778012F40F051
S1132398A4F84430FFF72BFECEE02778012F40F055
S11323A8E080F32E53D01ED8CF2E00F0B98005D884
S11323B8C92E7FD0CC2E00F0BA80BAE0D12E00F01E
S11323C8A980C0F08980D22E40F0B3800025FF2375
@ -579,7 +579,7 @@ S11323F819D3F62E40F09D80FF23E3704368A3644D
S113240892E0FD2E47D0FE2E50D0FC2E40F0918055
S113241800208FE0FFF76EFF6A78904201DC2220EB
S113242888E0A16C07E0FFF765FF6B789842F6DD5A
S11324386968A1646A78201DFFF72CFCFF23E37008
S11324386968A1646A78201DFFF728FCFF23E3700C
S11324486B78A26C1344A3646B7801335FE0FF23B9
S1132458E370A26C4168002311448A4204D012F844
S1132468010B0344DBB2F8E7C4F8073001232371F6
@ -588,13 +588,13 @@ S1132488A364002323716371A371E27123726372DD
S1132498A37208233BE0FF236278E37000232371CF
S11324A8A371E37123726271062330E00023237061
S11324B8637037E0A66CFFF71DFF6A1C411E3046A7
S11324C8FFF79BFD98B3FF23E370FFF713FFA36C9B
S11324C8FFF797FD98B3FF23E370FFF713FFA36C9F
S11324D801381844A06427E0FFF70CFF6B78013833
S11324E898429CDDFF23E370A4F84470697819B915
S11324F8FFF78BFD00BB1AE0AA1CA06C194EFFF76E
S11325087CFDA0B16B78B26C1344B36414E0A4F8F6
S1132518443011E04168A06CFFF771FD10B906E082
S1132528FFF79CFBFF23E370A4F8447004E0312018
S11324F8FFF787FD00BB1AE0AA1CA06C194EFFF772
S113250878FDA0B16B78B26C1344B36414E0A4F8FA
S1132518443011E04168A06CFFF76DFD10B906E086
S1132528FFF798FBFF23E370A4F8447004E031201C
S113253800E02020FFF7E4FE94F84330012B02D199
S11325481020FFF7DDFEB4F944100648002908DD21
S1132558012380F8433089B20330BDE8F840FFF71F
@ -644,7 +644,7 @@ S11328089DB100239FB2A74206EB430003F10108E0
S11328180BDAFFF7ABFE4346E855F3E74FF0FF301A
S1132828BDE8F0810020BDE8F0812046BDE8F081D4
S1132838DE5C00002DE9F84FB94D2E78A846002E2D
S113284800F0CC81012E28D1FFF7D5FBFFF782F9E0
S113284800F0CC81012E28D1FFF7D1FBFFF782F9E4
S1132858B448FFF7BDF9B448FFF7BAF9FFF776F9BA
S113286832460146B14801F0DDFA044638B1B048B1
S1132878FFF7AEF93046BDE8F84FFFF79FB9AD480A
@ -663,7 +663,7 @@ S1132938FFF74EF96068FFF73BFE8548FFF748F953
S11329488448FFF745F98249E078FFF749FE824950
S1132958A078FFF745FE81496078FFF741FE80497A
S11329682078FFF73DFE7A48FFF732F97D48FFF7F4
S11329782FF994E80300FFF742FB20B96C48FFF7EE
S11329782FF994E80300FFF73EFB20B96C48FFF7F2
S113298827F9052019E06B48FFF722F96B48FFF790
S11329981FF9D7F8803184E84800D9F84422D9F8D7
S11329A83C329A4240F01A810021604801F0C5FC8B
@ -674,7 +674,7 @@ S11329E86068FFF7E5FD5A48FFF7F2F85948FFF722
S11329F8EFF85749E078FFF7F3FD5749A078FFF758
S1132A08EFFD56496078FFF7EBFD55492078FFF74D
S1132A18E7FD4F48FFF7DCF85248FFF7D9F894E888
S1132A280300FFF7ECFA0028A8D04248FFF7D0F8D3
S1132A280300FFF7E8FA0028A8D04248FFF7D0F8D7
S1132A380323C8E7032E40F0D180424F424C07F5E8
S1132A480C724FF48071204601F090FD97F841B262
S1132A58BA46BBF1000F08D04348FFF7B9F8022083
@ -687,7 +687,7 @@ S1132AB87FFD2748FFF78CF82E48FFF789F824494B
S1132AC894F88301FFF78CFD234994F88201FFF7FA
S1132AD887FD224994F88101FFF782FD204994F883
S1132AE88001FFF77DFD1A48FFF772F81D48FFF7CC
S1132AF86FF804F58072D4F880014946FFF77DFA2F
S1132AF86FF804F58072D4F880014946FFF779FA33
S1132B080446C8BB0A48FFF763F80620FFF756F8DF
S1132B1807F50C7001F004FC2C70BDE8F88F00BFB9
S1132B286C070020495D00006C5D0000A8090020C6
@ -697,11 +697,11 @@ S1132B582C070020F35D00002E070020300700201A
S1132B68320700208D5D00000C5E00002D5E000021
S1132B784E5E00005B5E00001948FFF729F8DAF89A
S1132B884422DAF83C329A4228D11648FFF720F852
S1132B98FFF73BFA044660B91348FFF719F8072012
S1132B98FFF737FA044660B91348FFF719F8072016
S1132BA8FFF70CF8114801F0BBFB88F80040BDE8BA
S1132BB8F88F0B48FFF70CF80D48FFF709F80B4896
S1132BC801F0AEFB0B48FFF703F8002388F8003048
S1132BD8FEF7D4FFBDE8F84FFFF740B8BDE8F88F1B
S1132BD8FEF7D4FFBDE8F84FFFF73CB8BDE8F88F1F
S1132BE8915D0000725E0000465E0000A8090020A6
S1132BF88E5E0000A65E000042884378007843EAAF
S1132C08022340EA0320704743690239023B994290
@ -1366,7 +1366,7 @@ S11355281A63000020160020C80F0020A2160020CD
S1135538D00F00203E16002040160020F60F002051
S113554838160020DC0F0020EC0F00200C1000207F
S113555818160020CC0F002008B5FCF725FAFCF734
S113556881FD134B00F5FA701860FCF77BFD114BB5
S11355687DFD134B00F5FA701860FCF777FD114BBD
S113557800F51C5010301860FFF730F943F613712A
S11355880D4B4FF6A96259804FF6FF711A800B4BE9
S11355984EF60300198000215980094B1A8040F205
@ -1380,10 +1380,10 @@ S113560870B5FCF761FA00B3234C244D20804FF4A5
S11356180060AE89FFF7C6FD864207D10120FFF777
S113562803F923888BB1FFF7E7FE0AE040F606008A
S1135638AD89FFF7B7FD854207D1FFF781FE2388BF
S11356481BB1FCF75BFA00232380FCF70BFD144A1B
S11356481BB1FCF75BFA00232380FCF707FD144A1F
S11356581368984211D303F5FA7313600E4C114B77
S1135668114A02201A60FFF7DFF823882BB1FFF7ED
S1135678C3FEFCF743FA00232380FCF7F3FC0B4A30
S1135678C3FEFCF743FA00232380FCF7EFFC0B4A34
S11356881368984205D303F51C5310331360FFF7CE
S11356982FFE002070BD00BFCC0F0020D60F0020C5
S11356A8AC1600205C0F0020600F0020A816002014

View File

@ -104,9 +104,6 @@
</folder>
<folder Name="Source">
<folder Name="ARMCM3_LM3S">
<folder Name="Crossworks">
<file file_name="../../../../Source/ARMCM3_LM3S/Crossworks/cpu_comp.c" />
</folder>
<file file_name="../../../../Source/ARMCM3_LM3S/cpu.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/flash.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/flash.h" />
@ -114,6 +111,9 @@
<file file_name="../../../../Source/ARMCM3_LM3S/timer.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/types.h" />
<file file_name="../../../../Source/ARMCM3_LM3S/uart.c" />
<folder Name="GCC">
<file file_name="../../../../Source/ARMCM3_LM3S/GCC/cpu_comp.c" />
</folder>
</folder>
<file file_name="../../../../Source/assert.c" />
<file file_name="../../../../Source/assert.h" />

View File

@ -1,9 +1,7 @@
<!DOCTYPE CrossStudio_Session_File>
<session>
<Bookmarks/>
<Breakpoints>
<Exceptions set="MemManage;UsageFault_Coprocessor;UsageFault_CheckingError;UsageFault_StateError;BusFault;ExceptionEntryReturnFault;HardFault" />
</Breakpoints>
<Breakpoints/>
<ExecutionProfileWindow/>
<FrameBufferWindow>
<FrameBufferWindow addressText="" bufferWidth="-1" bufferHeight="-1" addressSpace="" />
@ -30,6 +28,9 @@
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files;Source" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files;Source;ARMCM3_LM3S" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;Source Files;Source;ARMCM3_LM3S;GCC" name="unnamed" />
<ProjectSessionItem path="lm3s6965_crossworks;openblt_ek_lm3s6965;System Files" name="unnamed" />
</Project>
<Register1>
@ -67,5 +68,5 @@
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="56" path="../main.c" left="0" selected="1" name="unnamed" top="32" />
</Files>
<ARMCrossStudioWindow activeProject="openblt_ek_lm3s6965" autoConnectTarget="Luminary USB Debug" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
<ARMCrossStudioWindow activeProject="openblt_ek_lm3s6965" autoConnectTarget="Luminary USB Debug" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_LM3S/GCC" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session>

View File

@ -382,9 +382,6 @@ Discarded input sections
.stack_process
0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.heap 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu.o
@ -405,6 +402,9 @@ Discarded input sections
.text 0x00000000 0x0 THUMB Debug/../../obj/can.o
.data 0x00000000 0x0 THUMB Debug/../../obj/can.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/can.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.data 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/assert.o
@ -573,100 +573,100 @@ Linker script and memory map
.text.UnusedISR
0x000012e4 0xc THUMB Debug/../../obj/vectors.o
0x000012e4 UnusedISR
.text.CpuIrqDisable
0x000012f0 0x4 THUMB Debug/../../obj/cpu_comp.o
0x000012f0 CpuIrqDisable
.text.CpuIrqEnable
0x000012f4 0x4 THUMB Debug/../../obj/cpu_comp.o
0x000012f4 CpuIrqEnable
.text.CpuInit 0x000012f8 0x4 THUMB Debug/../../obj/cpu.o
0x000012f8 CpuInit
.text.CpuInit 0x000012f0 0x4 THUMB Debug/../../obj/cpu.o
0x000012f0 CpuInit
.text.CpuStartUserProgram
0x000012fc 0x38 THUMB Debug/../../obj/cpu.o
0x000012fc CpuStartUserProgram
0x000012f4 0x38 THUMB Debug/../../obj/cpu.o
0x000012f4 CpuStartUserProgram
.text.CpuMemCopy
0x00001334 0x1c THUMB Debug/../../obj/cpu.o
0x00001334 CpuMemCopy
0x0000132c 0x1c THUMB Debug/../../obj/cpu.o
0x0000132c CpuMemCopy
.text.FlashGetSector
0x00001350 0x34 THUMB Debug/../../obj/flash.o
0x00001348 0x34 THUMB Debug/../../obj/flash.o
.text.FlashWriteBlock
0x00001384 0x4e THUMB Debug/../../obj/flash.o
*fill* 0x000013d2 0x2
0x0000137c 0x4e THUMB Debug/../../obj/flash.o
*fill* 0x000013ca 0x2
.text.FlashSwitchBlock
0x000013d4 0x50 THUMB Debug/../../obj/flash.o
0x000013cc 0x50 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
0x00001424 0x82 THUMB Debug/../../obj/flash.o
*fill* 0x000014a6 0x2
0x0000141c 0x82 THUMB Debug/../../obj/flash.o
*fill* 0x0000149e 0x2
.text.FlashReinit
0x000014a8 0x18 THUMB Debug/../../obj/flash.o
0x000014a8 FlashReinit
0x000014a0 0x18 THUMB Debug/../../obj/flash.o
0x000014a0 FlashReinit
.text.FlashInit
0x000014c0 0x4 THUMB Debug/../../obj/flash.o
0x000014c0 FlashInit
0x000014b8 0x4 THUMB Debug/../../obj/flash.o
0x000014b8 FlashInit
.text.FlashWrite
0x000014c4 0x48 THUMB Debug/../../obj/flash.o
0x000014c4 FlashWrite
0x000014bc 0x48 THUMB Debug/../../obj/flash.o
0x000014bc FlashWrite
.text.FlashErase
0x0000150c 0xc4 THUMB Debug/../../obj/flash.o
0x0000150c FlashErase
0x00001504 0xc4 THUMB Debug/../../obj/flash.o
0x00001504 FlashErase
.text.FlashWriteChecksum
0x000015d0 0x44 THUMB Debug/../../obj/flash.o
0x000015d0 FlashWriteChecksum
0x000015c8 0x44 THUMB Debug/../../obj/flash.o
0x000015c8 FlashWriteChecksum
.text.FlashVerifyChecksum
0x00001614 0x46 THUMB Debug/../../obj/flash.o
0x00001614 FlashVerifyChecksum
*fill* 0x0000165a 0x2
0x0000160c 0x46 THUMB Debug/../../obj/flash.o
0x0000160c FlashVerifyChecksum
*fill* 0x00001652 0x2
.text.FlashDone
0x0000165c 0x34 THUMB Debug/../../obj/flash.o
0x0000165c FlashDone
0x00001654 0x34 THUMB Debug/../../obj/flash.o
0x00001654 FlashDone
.text.FlashGetUserProgBaseAddress
0x00001690 0x6 THUMB Debug/../../obj/flash.o
0x00001690 FlashGetUserProgBaseAddress
.text.NvmInit 0x00001696 0x4 THUMB Debug/../../obj/nvm.o
0x00001696 NvmInit
0x00001688 0x6 THUMB Debug/../../obj/flash.o
0x00001688 FlashGetUserProgBaseAddress
.text.NvmInit 0x0000168e 0x4 THUMB Debug/../../obj/nvm.o
0x0000168e NvmInit
.text.NvmWrite
0x0000169a 0x4 THUMB Debug/../../obj/nvm.o
0x0000169a NvmWrite
0x00001692 0x4 THUMB Debug/../../obj/nvm.o
0x00001692 NvmWrite
.text.NvmErase
0x0000169e 0x4 THUMB Debug/../../obj/nvm.o
0x0000169e NvmErase
0x00001696 0x4 THUMB Debug/../../obj/nvm.o
0x00001696 NvmErase
.text.NvmVerifyChecksum
0x000016a2 0x4 THUMB Debug/../../obj/nvm.o
0x000016a2 NvmVerifyChecksum
0x0000169a 0x4 THUMB Debug/../../obj/nvm.o
0x0000169a NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x000016a6 0x4 THUMB Debug/../../obj/nvm.o
0x000016a6 NvmGetUserProgBaseAddress
.text.NvmDone 0x000016aa 0x12 THUMB Debug/../../obj/nvm.o
0x000016aa NvmDone
0x0000169e 0x4 THUMB Debug/../../obj/nvm.o
0x0000169e NvmGetUserProgBaseAddress
.text.NvmDone 0x000016a2 0x12 THUMB Debug/../../obj/nvm.o
0x000016a2 NvmDone
.text.TimerInit
0x000016bc 0x20 THUMB Debug/../../obj/timer.o
0x000016bc TimerInit
0x000016b4 0x20 THUMB Debug/../../obj/timer.o
0x000016b4 TimerInit
.text.TimerReset
0x000016dc 0xc THUMB Debug/../../obj/timer.o
0x000016dc TimerReset
0x000016d4 0xc THUMB Debug/../../obj/timer.o
0x000016d4 TimerReset
.text.TimerUpdate
0x000016e8 0x1c THUMB Debug/../../obj/timer.o
0x000016e8 TimerUpdate
0x000016e0 0x1c THUMB Debug/../../obj/timer.o
0x000016e0 TimerUpdate
.text.TimerGet
0x00001704 0x10 THUMB Debug/../../obj/timer.o
0x00001704 TimerGet
0x000016fc 0x10 THUMB Debug/../../obj/timer.o
0x000016fc TimerGet
.text.UartInit
0x00001714 0x28 THUMB Debug/../../obj/uart.o
0x00001714 UartInit
0x0000170c 0x28 THUMB Debug/../../obj/uart.o
0x0000170c UartInit
.text.UartTransmitPacket
0x0000173c 0x74 THUMB Debug/../../obj/uart.o
0x0000173c UartTransmitPacket
0x00001734 0x74 THUMB Debug/../../obj/uart.o
0x00001734 UartTransmitPacket
.text.UartReceivePacket
0x000017b0 0x94 THUMB Debug/../../obj/uart.o
0x000017b0 UartReceivePacket
.text.CanInit 0x00001844 0xa8 THUMB Debug/../../obj/can.o
0x00001844 CanInit
0x000017a8 0x94 THUMB Debug/../../obj/uart.o
0x000017a8 UartReceivePacket
.text.CanInit 0x0000183c 0xa8 THUMB Debug/../../obj/can.o
0x0000183c CanInit
.text.CanTransmitPacket
0x000018ec 0x54 THUMB Debug/../../obj/can.o
0x000018ec CanTransmitPacket
0x000018e4 0x54 THUMB Debug/../../obj/can.o
0x000018e4 CanTransmitPacket
.text.CanReceivePacket
0x00001940 0x2c THUMB Debug/../../obj/can.o
0x00001940 CanReceivePacket
0x00001938 0x2c THUMB Debug/../../obj/can.o
0x00001938 CanReceivePacket
.text.CpuIrqDisable
0x00001964 0x4 THUMB Debug/../../obj/cpu_comp.o
0x00001964 CpuIrqDisable
.text.CpuIrqEnable
0x00001968 0x4 THUMB Debug/../../obj/cpu_comp.o
0x00001968 CpuIrqEnable
.text.AssertFailure
0x0000196c 0x8 THUMB Debug/../../obj/assert.o
0x0000196c AssertFailure
@ -944,13 +944,13 @@ LOAD THUMB Debug/../../obj/hooks.o
LOAD THUMB Debug/../../obj/main.o
LOAD THUMB Debug/../../obj/vectors.o
LOAD THUMB Debug/../../obj/cstart.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/cpu.o
LOAD THUMB Debug/../../obj/flash.o
LOAD THUMB Debug/../../obj/nvm.o
LOAD THUMB Debug/../../obj/timer.o
LOAD THUMB Debug/../../obj/uart.o
LOAD THUMB Debug/../../obj/can.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/assert.o
LOAD THUMB Debug/../../obj/backdoor.o
LOAD THUMB Debug/../../obj/boot.o
@ -969,13 +969,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_frame 0x0000117c 0x3a8 THUMB Debug/../../obj/canlib.o
.debug_frame 0x00001524 0x2c THUMB Debug/../../obj/main.o
.debug_frame 0x00001550 0x20 THUMB Debug/../../obj/vectors.o
.debug_frame 0x00001570 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x000015a0 0x6c THUMB Debug/../../obj/cpu.o
.debug_frame 0x0000160c 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x0000178c 0x9c THUMB Debug/../../obj/nvm.o
.debug_frame 0x00001828 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00001884 0x78 THUMB Debug/../../obj/uart.o
.debug_frame 0x000018fc 0x98 THUMB Debug/../../obj/can.o
.debug_frame 0x00001570 0x6c THUMB Debug/../../obj/cpu.o
.debug_frame 0x000015dc 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x0000175c 0x9c THUMB Debug/../../obj/nvm.o
.debug_frame 0x000017f8 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00001854 0x78 THUMB Debug/../../obj/uart.o
.debug_frame 0x000018cc 0x98 THUMB Debug/../../obj/can.o
.debug_frame 0x00001964 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00001994 0x2c THUMB Debug/../../obj/assert.o
.debug_frame 0x000019c0 0x60 THUMB Debug/../../obj/backdoor.o
.debug_frame 0x00001a20 0x58 THUMB Debug/../../obj/boot.o
@ -993,13 +993,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_info 0x00005369 0x161 THUMB Debug/../../obj/main.o
.debug_info 0x000054ca 0x10d THUMB Debug/../../obj/vectors.o
.debug_info 0x000055d7 0xd6 THUMB Debug/../../obj/cstart.o
.debug_info 0x000056ad 0x7c THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x00005729 0x1c3 THUMB Debug/../../obj/cpu.o
.debug_info 0x000058ec 0x860 THUMB Debug/../../obj/flash.o
.debug_info 0x0000614c 0x24a THUMB Debug/../../obj/nvm.o
.debug_info 0x00006396 0x129 THUMB Debug/../../obj/timer.o
.debug_info 0x000064bf 0x447 THUMB Debug/../../obj/uart.o
.debug_info 0x00006906 0x490 THUMB Debug/../../obj/can.o
.debug_info 0x000056ad 0x1c3 THUMB Debug/../../obj/cpu.o
.debug_info 0x00005870 0x860 THUMB Debug/../../obj/flash.o
.debug_info 0x000060d0 0x24a THUMB Debug/../../obj/nvm.o
.debug_info 0x0000631a 0x129 THUMB Debug/../../obj/timer.o
.debug_info 0x00006443 0x447 THUMB Debug/../../obj/uart.o
.debug_info 0x0000688a 0x490 THUMB Debug/../../obj/can.o
.debug_info 0x00006d1a 0x7c THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x00006d96 0xbe THUMB Debug/../../obj/assert.o
.debug_info 0x00006e54 0x112 THUMB Debug/../../obj/backdoor.o
.debug_info 0x00006f66 0x14e THUMB Debug/../../obj/boot.o
@ -1017,13 +1017,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_abbrev 0x00000a5c 0xbb THUMB Debug/../../obj/main.o
.debug_abbrev 0x00000b17 0xef THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00000c06 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00000c1a 0x43 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00000c5d 0xdf THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x00000d3c 0x276 THUMB Debug/../../obj/flash.o
.debug_abbrev 0x00000fb2 0xd9 THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x0000108b 0xea THUMB Debug/../../obj/timer.o
.debug_abbrev 0x00001175 0x19e THUMB Debug/../../obj/uart.o
.debug_abbrev 0x00001313 0x1bb THUMB Debug/../../obj/can.o
.debug_abbrev 0x00000c1a 0xdf THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x00000cf9 0x276 THUMB Debug/../../obj/flash.o
.debug_abbrev 0x00000f6f 0xd9 THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x00001048 0xea THUMB Debug/../../obj/timer.o
.debug_abbrev 0x00001132 0x19e THUMB Debug/../../obj/uart.o
.debug_abbrev 0x000012d0 0x1bb THUMB Debug/../../obj/can.o
.debug_abbrev 0x0000148b 0x43 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x000014ce 0x89 THUMB Debug/../../obj/assert.o
.debug_abbrev 0x00001557 0xae THUMB Debug/../../obj/backdoor.o
.debug_abbrev 0x00001605 0x6f THUMB Debug/../../obj/boot.o
@ -1066,19 +1066,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_pubnames
0x000010f5 0x2d THUMB Debug/../../obj/vectors.o
.debug_pubnames
0x00001122 0x35 THUMB Debug/../../obj/cpu_comp.o
0x00001122 0x45 THUMB Debug/../../obj/cpu.o
.debug_pubnames
0x00001157 0x45 THUMB Debug/../../obj/cpu.o
0x00001167 0x178 THUMB Debug/../../obj/flash.o
.debug_pubnames
0x0000119c 0x178 THUMB Debug/../../obj/flash.o
0x000012df 0x86 THUMB Debug/../../obj/nvm.o
.debug_pubnames
0x00001314 0x86 THUMB Debug/../../obj/nvm.o
0x00001365 0x64 THUMB Debug/../../obj/timer.o
.debug_pubnames
0x0000139a 0x64 THUMB Debug/../../obj/timer.o
0x000013c9 0x75 THUMB Debug/../../obj/uart.o
.debug_pubnames
0x000013fe 0x75 THUMB Debug/../../obj/uart.o
0x0000143e 0x13b THUMB Debug/../../obj/can.o
.debug_pubnames
0x00001473 0x13b THUMB Debug/../../obj/can.o
0x00001579 0x35 THUMB Debug/../../obj/cpu_comp.o
.debug_pubnames
0x000015ae 0x24 THUMB Debug/../../obj/assert.o
.debug_pubnames
@ -1111,19 +1111,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_pubtypes
0x00000533 0xba THUMB Debug/../../obj/vectors.o
.debug_pubtypes
0x000005ed 0x91 THUMB Debug/../../obj/cpu_comp.o
0x000005ed 0xca THUMB Debug/../../obj/cpu.o
.debug_pubtypes
0x0000067e 0xca THUMB Debug/../../obj/cpu.o
0x000006b7 0x109 THUMB Debug/../../obj/flash.o
.debug_pubtypes
0x00000748 0x109 THUMB Debug/../../obj/flash.o
0x000007c0 0xc8 THUMB Debug/../../obj/nvm.o
.debug_pubtypes
0x00000851 0xc8 THUMB Debug/../../obj/nvm.o
0x00000888 0xb1 THUMB Debug/../../obj/timer.o
.debug_pubtypes
0x00000919 0xb1 THUMB Debug/../../obj/timer.o
0x00000939 0xe6 THUMB Debug/../../obj/uart.o
.debug_pubtypes
0x000009ca 0xe6 THUMB Debug/../../obj/uart.o
0x00000a1f 0xfd THUMB Debug/../../obj/can.o
.debug_pubtypes
0x00000ab0 0xfd THUMB Debug/../../obj/can.o
0x00000b1c 0x91 THUMB Debug/../../obj/cpu_comp.o
.debug_pubtypes
0x00000bad 0xad THUMB Debug/../../obj/assert.o
.debug_pubtypes
@ -1157,19 +1157,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_aranges
0x00000638 0x20 THUMB Debug/../../obj/cstart.o
.debug_aranges
0x00000658 0x28 THUMB Debug/../../obj/cpu_comp.o
0x00000658 0x30 THUMB Debug/../../obj/cpu.o
.debug_aranges
0x00000680 0x30 THUMB Debug/../../obj/cpu.o
0x00000688 0x70 THUMB Debug/../../obj/flash.o
.debug_aranges
0x000006b0 0x70 THUMB Debug/../../obj/flash.o
0x000006f8 0x50 THUMB Debug/../../obj/nvm.o
.debug_aranges
0x00000720 0x50 THUMB Debug/../../obj/nvm.o
0x00000748 0x38 THUMB Debug/../../obj/timer.o
.debug_aranges
0x00000770 0x38 THUMB Debug/../../obj/timer.o
0x00000780 0x30 THUMB Debug/../../obj/uart.o
.debug_aranges
0x000007a8 0x30 THUMB Debug/../../obj/uart.o
0x000007b0 0x30 THUMB Debug/../../obj/can.o
.debug_aranges
0x000007d8 0x30 THUMB Debug/../../obj/can.o
0x000007e0 0x28 THUMB Debug/../../obj/cpu_comp.o
.debug_aranges
0x00000808 0x20 THUMB Debug/../../obj/assert.o
.debug_aranges
@ -1192,13 +1192,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_ranges 0x000004d8 0xd8 THUMB Debug/../../obj/canlib.o
.debug_ranges 0x000005b0 0x10 THUMB Debug/../../obj/main.o
.debug_ranges 0x000005c0 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x000005d0 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x000005e8 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x00000608 0xa8 THUMB Debug/../../obj/flash.o
.debug_ranges 0x000006b0 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x000006f0 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000718 0x60 THUMB Debug/../../obj/uart.o
.debug_ranges 0x00000778 0x20 THUMB Debug/../../obj/can.o
.debug_ranges 0x000005d0 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x000005f0 0xa8 THUMB Debug/../../obj/flash.o
.debug_ranges 0x00000698 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x000006d8 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000700 0x60 THUMB Debug/../../obj/uart.o
.debug_ranges 0x00000760 0x20 THUMB Debug/../../obj/can.o
.debug_ranges 0x00000780 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000798 0x10 THUMB Debug/../../obj/assert.o
.debug_ranges 0x000007a8 0x18 THUMB Debug/../../obj/backdoor.o
.debug_ranges 0x000007c0 0x18 THUMB Debug/../../obj/boot.o
@ -1206,7 +1206,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_ranges 0x00000810 0x10 THUMB Debug/../../obj/cop.o
.debug_ranges 0x00000820 0x78 THUMB Debug/../../obj/xcp.o
.debug_line 0x00000000 0x3ac0
.debug_line 0x00000000 0x3ab9
.debug_line 0x00000000 0x7be THUMB Debug/../../obj/sysctl.o
.debug_line 0x000007be 0x31d THUMB Debug/../../obj/interrupt.o
.debug_line 0x00000adb 0x619 THUMB Debug/../../obj/gpio.o
@ -1216,21 +1216,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_line 0x0000231b 0x13b THUMB Debug/../../obj/main.o
.debug_line 0x00002456 0xff THUMB Debug/../../obj/vectors.o
.debug_line 0x00002555 0x105 THUMB Debug/../../obj/cstart.o
.debug_line 0x0000265a 0xc6 THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x00002720 0x16d THUMB Debug/../../obj/cpu.o
.debug_line 0x0000288d 0x396 THUMB Debug/../../obj/flash.o
.debug_line 0x00002c23 0x162 THUMB Debug/../../obj/nvm.o
.debug_line 0x00002d85 0x126 THUMB Debug/../../obj/timer.o
.debug_line 0x00002eab 0x235 THUMB Debug/../../obj/uart.o
.debug_line 0x000030e0 0x21b THUMB Debug/../../obj/can.o
.debug_line 0x000032fb 0x10f THUMB Debug/../../obj/assert.o
.debug_line 0x0000340a 0x141 THUMB Debug/../../obj/backdoor.o
.debug_line 0x0000354b 0x11a THUMB Debug/../../obj/boot.o
.debug_line 0x00003665 0x198 THUMB Debug/../../obj/com.o
.debug_line 0x000037fd 0x99 THUMB Debug/../../obj/cop.o
.debug_line 0x00003896 0x22a THUMB Debug/../../obj/xcp.o
.debug_line 0x0000265a 0x16d THUMB Debug/../../obj/cpu.o
.debug_line 0x000027c7 0x396 THUMB Debug/../../obj/flash.o
.debug_line 0x00002b5d 0x162 THUMB Debug/../../obj/nvm.o
.debug_line 0x00002cbf 0x126 THUMB Debug/../../obj/timer.o
.debug_line 0x00002de5 0x235 THUMB Debug/../../obj/uart.o
.debug_line 0x0000301a 0x21b THUMB Debug/../../obj/can.o
.debug_line 0x00003235 0xbf THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x000032f4 0x10f THUMB Debug/../../obj/assert.o
.debug_line 0x00003403 0x141 THUMB Debug/../../obj/backdoor.o
.debug_line 0x00003544 0x11a THUMB Debug/../../obj/boot.o
.debug_line 0x0000365e 0x198 THUMB Debug/../../obj/com.o
.debug_line 0x000037f6 0x99 THUMB Debug/../../obj/cop.o
.debug_line 0x0000388f 0x22a THUMB Debug/../../obj/xcp.o
.debug_str 0x00000000 0x24c6
.debug_str 0x00000000 0x24bf
.debug_str 0x00000000 0x662 THUMB Debug/../../obj/sysctl.o
0x6b8 (size before relaxing)
.debug_str 0x00000662 0x1d3 THUMB Debug/../../obj/interrupt.o
@ -1247,31 +1247,31 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
0x233 (size before relaxing)
.debug_str 0x000016c9 0x98 THUMB Debug/../../obj/vectors.o
0x226 (size before relaxing)
.debug_str 0x00001761 0xa1 THUMB Debug/../../obj/cpu_comp.o
0x218 (size before relaxing)
.debug_str 0x00001802 0x121 THUMB Debug/../../obj/cpu.o
.debug_str 0x00001761 0x13c THUMB Debug/../../obj/cpu.o
0x2be (size before relaxing)
.debug_str 0x00001923 0x285 THUMB Debug/../../obj/flash.o
.debug_str 0x0000189d 0x285 THUMB Debug/../../obj/flash.o
0x477 (size before relaxing)
.debug_str 0x00001ba8 0xac THUMB Debug/../../obj/nvm.o
.debug_str 0x00001b22 0xac THUMB Debug/../../obj/nvm.o
0x2ef (size before relaxing)
.debug_str 0x00001c54 0xc2 THUMB Debug/../../obj/timer.o
.debug_str 0x00001bce 0xc2 THUMB Debug/../../obj/timer.o
0x24f (size before relaxing)
.debug_str 0x00001d16 0x120 THUMB Debug/../../obj/uart.o
.debug_str 0x00001c90 0x120 THUMB Debug/../../obj/uart.o
0x379 (size before relaxing)
.debug_str 0x00001e36 0xf5 THUMB Debug/../../obj/can.o
.debug_str 0x00001db0 0xf5 THUMB Debug/../../obj/can.o
0x44f (size before relaxing)
.debug_str 0x00001f2b 0x80 THUMB Debug/../../obj/assert.o
.debug_str 0x00001ea5 0x7f THUMB Debug/../../obj/cpu_comp.o
0x211 (size before relaxing)
.debug_str 0x00001f24 0x80 THUMB Debug/../../obj/assert.o
0x21b (size before relaxing)
.debug_str 0x00001fab 0xb7 THUMB Debug/../../obj/backdoor.o
.debug_str 0x00001fa4 0xb7 THUMB Debug/../../obj/backdoor.o
0x25f (size before relaxing)
.debug_str 0x00002062 0x83 THUMB Debug/../../obj/boot.o
.debug_str 0x0000205b 0x83 THUMB Debug/../../obj/boot.o
0x258 (size before relaxing)
.debug_str 0x000020e5 0x135 THUMB Debug/../../obj/com.o
.debug_str 0x000020de 0x135 THUMB Debug/../../obj/com.o
0x36f (size before relaxing)
.debug_str 0x0000221a 0x6a THUMB Debug/../../obj/cop.o
.debug_str 0x00002213 0x6a THUMB Debug/../../obj/cop.o
0x1ec (size before relaxing)
.debug_str 0x00002284 0x242 THUMB Debug/../../obj/xcp.o
.debug_str 0x0000227d 0x242 THUMB Debug/../../obj/xcp.o
0x4ae (size before relaxing)
.comment 0x00000000 0x4c
@ -1284,13 +1284,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.comment 0x0000004c 0x4d THUMB Debug/../../obj/canlib.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/main.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/vectors.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/flash.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/nvm.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/timer.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/uart.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/can.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/assert.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/backdoor.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/boot.o
@ -1319,19 +1319,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.ARM.attributes
0x00000198 0x21 THUMB Debug/../../obj/cstart.o
.ARM.attributes
0x000001b9 0x33 THUMB Debug/../../obj/cpu_comp.o
0x000001b9 0x33 THUMB Debug/../../obj/cpu.o
.ARM.attributes
0x000001ec 0x33 THUMB Debug/../../obj/cpu.o
0x000001ec 0x33 THUMB Debug/../../obj/flash.o
.ARM.attributes
0x0000021f 0x33 THUMB Debug/../../obj/flash.o
0x0000021f 0x33 THUMB Debug/../../obj/nvm.o
.ARM.attributes
0x00000252 0x33 THUMB Debug/../../obj/nvm.o
0x00000252 0x33 THUMB Debug/../../obj/timer.o
.ARM.attributes
0x00000285 0x33 THUMB Debug/../../obj/timer.o
0x00000285 0x33 THUMB Debug/../../obj/uart.o
.ARM.attributes
0x000002b8 0x33 THUMB Debug/../../obj/uart.o
0x000002b8 0x33 THUMB Debug/../../obj/can.o
.ARM.attributes
0x000002eb 0x33 THUMB Debug/../../obj/can.o
0x000002eb 0x33 THUMB Debug/../../obj/cpu_comp.o
.ARM.attributes
0x0000031e 0x33 THUMB Debug/../../obj/assert.o
.ARM.attributes

View File

@ -302,128 +302,128 @@ S11312A8FFF738F80A48FFF715F803214FF04020F4
S11312B8FFF71CFB0748FFF70DF803210648FFF763
S11312C8FBFA00F07FFB00F08CFBFCE78003C00115
S11312D80100002008000020007000403821014867
S11312E800F040BB0B20000072B6704762B670472E
S11312F8FFF7FABF10B500F0D0F9A0B100F0AAFBCF
S113130800F0E8F900F0CBF9074B20F0604020F03A
S11313187F00186000F0C3F94468FFF7E7FF23462D
S1131328BDE81040184710BD08ED00E0013A70B55B
S11313384D1E5618441AB54205D015F8013F635599
S113134800F0B5FBF7E770BDF8B505460A4E002472
S11313580C2700F0ACFB07FB04F39959A94206D803
S113136833445A680A44954201D2187AF8BD0134C4
S1131378122CEED1FF20F8BD6C2000002DE9F341BA
S113138805460068FFF7E0FFFF2801D1002019E0B7
S11313980024261D2F68AB5904EB0708019300F0BD
S11313A886FB042241460DEB0200FFF7DBFA002816
S11313B8ECD1E259019B9A42E8D1B6F5007F344654
S11313C8E7D1012002B0BDE8F081000038B5114B27
S11313D8044698420D4606D0B1F5804F05D0FFF774
S11313E8CDFF18B911E00C4C00E01C46C5F3080306
S11313F85BB923689D420AD020464FF4007240F836
S1131408045B2946FFF792FF01E0002038BD20461F
S113141838BD00BF04000020080200202DE9F8436D
S11314289846036821F4FF76013304460D461746AF
S113143826F0010606D140F8046B4FF400723146D9
S1131448FFF774FF23689E4208D020463146FFF711
S1131458BDFF044610B90020BDE8F883B9462368E7
S113146806F50076ED1A2544043500F020FB231D0B
S1131478EB1AB3F5007F07D320463146FFF7A6FFE2
S113148804460028E7D0051D19F8013B05F8013B7F
S1131498C9EB0803DF42E8D10120BDE8F883000066
S11314A8034A4FF0FF331360024A1360704700BFCA
S11314B80802002004000020FFF7F2BF70B50446BC
S11314C80D461646FFF740FFFF2815D0681E204436
S11314D8FFF73AFFFF280FD024F4FF7323F001032A
S11314E8B3F5804F32462B462146BDE870400CBF09
S11314F802480348FFF792BF002070BD0400002093
S1131508080200202DE9F8430C460646FFF71CFFA5
S11315180546601E3044FFF717FF8542074602D987
S11315280020BDE8F883AB1EDBB2FC2BF8D81328E7
S1131538F6D8244E00244FF00C0900F0B8FA09FB41
S113154804631A7ADFF87C80AA4201D11E6804E099
S11315580134122CF1D14FF0FF3600240C2500F091
S1131568A6FA05FB04831A7ABA4201D11C6804E07E
S11315780134122CF3D14FF0FF3400254FF00C093D
S113158800F095FA09FB05831A7ABA4201D15B681F
S113159803E00135122DF3D10023A41B2344C3F324
S11315A88F240025ABB29C4209D900F080FA06EBDF
S11315B88520FFF7B5F901350028F3D0B0E70120FD
S11315C8BDE8F8836C2000000F4B07B51A68013298
S11315D816D09A68596844F2F0001144DA68114444
S11315E81A6911445A6911449A691144DA698B18C1
S11315F85B4202AA42F8043D0421FFF75FFF00E0C2
S1131608012003B05DF804FB040000204FF480437C
S11316181A6844F204031B68134444F2080212686B
S1131628134444F20C021268134444F21002116881
S113163844F2140212680B441A4444F218031B6857
S1131648134444F2F0021268D3420CBF0120002074
S1131658704700000A4808B50368013305D10948F2
S11316680368013306D1012008BDFFF787FE00286F
S1131678F5D108BDFFF782FE003018BF012008BD70
S113168804000020080200204FF480407047FFF750
S113169813BFFFF713BFFFF735BFFFF7B7BFFFF758
S11316A8F3BF08B5FFF790FF18B1BDE80840FFF78E
S11316B8D1BF08BD4CF24F31044B00221A60596067
S11316C805219A601960024B1A60704710E000E027
S11316D80C040020014B00221A60704710E000E05F
S11316E8044B1B68DB0341BF034A136801331360CF
S11316F8704700BF10E000E00C04002008B5FFF7B5
S1131708EFFF014B186808BD0C04002010B507480A
S1131718FEF7E0FDFEF798FEBDE8104001466023A1
S11317284FF461420248FFF7CFB900BF010000102F
S113173800C00040402970B506460C4603D95B2119
S1131748174800F00FF921461648FFF751FA30B14F
S11317581448FFF727FA30B900F0A9F9F8E75F2130
S11317680F4800F0FFF83546A4B2AB1B9BB2A34266
S11317780FD200F09CF915F8011B0A48FFF738FA54
S113178840B10848FFF70EFA0028EED100F08FF9AF
S1131798F7E770BD6821024800F0E4F8E5E700BF08
S11317A84421000000C00040F8B51F4D07462C78BE
S11317B8A4B91E48FFF708FA421C01D1002430E0FE
S11317C81B4BC0B218700028F8D0FFF797FF194BCD
S11317D81860194B1C7001232B7022E0164C134817
S11317E82678FFF7F1F9431C06F1010610D01049D9
S11317F82378885501330A78DBB29A422370DDD105
S113180801313846FFF792FD00232B70012408E0CC
S1131818FFF774FF074B1B6864339842CED9002442
S11318282C702046F8BD00BF5204002000C00040C0
S1131838100400205404002051040020F0B5264868
S113184887B0FEF747FD2548FFF748FA04230393BA
S1131858102340F2A4641E460193002508225F1C4D
S1131868E2B1B818B4FBF0F14139C9B20A2913D866
S1131878B6FBF0F1414310290ED1029205B1019350
S11318881023B3FBF0F0032A049001A9134898BF6E
S11318980392FFF785FA0BE0013AE1E7013BA4F173
S11318A864044FF00105D9D18B210D4800F05AF892
S11318B80A48FFF75FFA40F26763019340F2FF7347
S11318C8029308230393049301AA022301210348E2
S11318D8FFF712FB07B0F0BD000110000000044040
S11318E8BB21000030B5044687B00D4610480121DD
S11318F8FFF7C4FA820703D5AE210E4800F032F888
S113190840F2E17301AA01930221002308480393DA
S113191804950594FFF7F0FA01210548FFF7AEFA9C
S1131928044600F0C4F8A307F6D407B030BD00BFDE
S113193800000440BB21000010B5022186B0044613
S11319480748FFF79BFA10F0010007D00123044869
S113195801AA19460594FFF7C5FB012006B010BD7E
S11319680000044008B500F0A2F8FCE710B500F048
S11312E800F040BB0B20000000F038BB10B500F044
S11312F8D0F9A0B100F0AEFB00F0E8F900F0CBF9AA
S1131308074B20F0604020F07F00186000F0C3F91C
S1131318446800F025FB2346BDE81040184710BD7B
S113132808ED00E0013A70B54D1E5618441AB5424E
S113133805D015F8013F635500F0B9FBF7E770BD18
S1131348F8B505460A4E00240C2700F0B0FB07FB4D
S113135804F39959A94206D833445A680A44954271
S113136801D2187AF8BD0134122CEED1FF20F8BD51
S11313786C2000002DE9F34105460068FFF7E0FF03
S1131388FF2801D1002019E00024261D2F68AB593D
S113139804EB0708019300F08AFB042241460DEB95
S11313A80200FFF7DFFA0028ECD1E259019B9A42C8
S11313B8E8D1B6F5007F3446E7D1012002B0BDE894
S11313C8F081000038B5114B044698420D4606D00A
S11313D8B1F5804F05D0FFF7CDFF18B911E00C4CDB
S11313E800E01C46C5F308035BB923689D420AD094
S11313F820464FF4007240F8045B2946FFF792FF39
S113140801E0002038BD204638BD00BF040000209C
S1131418080200202DE9F8439846036821F4FF7672
S1131428013304460D46174626F0010606D140F856
S1131438046B4FF400723146FFF774FF23689E4231
S113144808D020463146FFF7BDFF044610B90020F6
S1131458BDE8F883B946236806F50076ED1A2544F5
S1131468043500F024FB231DEB1AB3F5007F07D3E2
S113147820463146FFF7A6FF04460028E7D0051D9D
S113148819F8013B05F8013BC9EB0803DF42E8D131
S11314980120BDE8F8830000034A4FF0FF331360CE
S11314A8024A1360704700BF0802002004000020AD
S11314B8FFF7F2BF70B504460D461646FFF740FF26
S11314C8FF2815D0681E2044FFF73AFFFF280FD0E5
S11314D824F4FF7323F00103B3F5804F32462B46FF
S11314E82146BDE870400CBF02480348FFF792BF8D
S11314F8002070BD04000020080200202DE9F843F4
S11315080C460646FFF71CFF0546601E3044FFF7ED
S113151817FF8542074602D90020BDE8F883AB1EB1
S1131528DBB2FC2BF8D81328F6D8244E00244FF04D
S11315380C0900F0BCFA09FB04631A7ADFF87C8012
S1131548AA4201D11E6804E00134122CF1D14FF0F3
S1131558FF3600240C2500F0AAFA05FB04831A7A46
S1131568BA4201D11C6804E00134122CF3D14FF0C3
S1131578FF3400254FF00C0900F099FA09FB0583A4
S11315881A7ABA4201D15B6803E00135122DF3D10E
S11315980023A41B2344C3F38F240025ABB29C422D
S11315A809D900F084FA06EB8520FFF7B9F901356B
S11315B80028F3D0B0E70120BDE8F8836C200000D0
S11315C80F4B07B51A68013216D09A68596844F265
S11315D8F0001144DA6811441A6911445A69114433
S11315E89A691144DA698B185B4202AA42F8043DED
S11315F80421FFF75FFF00E0012003B05DF804FB5E
S1131608040000204FF480431A6844F204031B6862
S1131618134444F208021268134444F20C02126898
S1131628134444F21002116844F2140212680B4481
S11316381A4444F218031B68134444F2F002126873
S1131648D3420CBF01200020704700000A4808B5A7
S11316580368013305D109480368013306D1012021
S113166808BDFFF787FE0028F5D108BDFFF782FE05
S1131678003018BF012008BD040000200802002023
S11316884FF480407047FFF713BFFFF713BFFFF70E
S113169835BFFFF7B7BFFFF7F3BF08B5FFF790FFF4
S11316A818B1BDE80840FFF7D1BF08BD4CF24F316F
S11316B8044B00221A60596005219A601960024B94
S11316C81A60704710E000E00C040020014B00226F
S11316D81A60704710E000E0044B1B68DB0341BF4D
S11316E8034A136801331360704700BF10E000E039
S11316F80C04002008B5FFF7EFFF014B186808BD7C
S11317080C04002010B50748FEF7E4FDFEF79CFE24
S1131718BDE81040014660234FF461420248FFF7D8
S1131728D3B900BF0100001000C00040402970B5C3
S113173806460C4603D95B21174800F013F92146E5
S11317481648FFF755FA30B11448FFF72BFA30B9A9
S113175800F0ADF9F8E75F210F4800F003F93546CA
S1131768A4B2AB1B9BB2A3420FD200F0A0F915F8A8
S1131778011B0A48FFF73CFA40B10848FFF712FA80
S11317880028EED100F093F9F7E770BD682102480C
S113179800F0E8F8E5E700BF4421000000C000407D
S11317A8F8B51F4D07462C78A4B91E48FFF70CFA64
S11317B8421C01D1002430E01B4BC0B21870002831
S11317C8F8D0FFF797FF194B1860194B1C700123C9
S11317D82B7022E0164C13482678FFF7F5F9431CC2
S11317E806F1010610D010492378885501330A7888
S11317F8DBB29A422370DDD101313846FFF792FDFE
S113180800232B70012408E0FFF774FF074B1B68C3
S113181864339842CED900242C702046F8BD00BF0A
S11318285204002000C0004010040020540400208A
S113183851040020F0B5264887B0FEF74BFD254833
S1131848FFF74CFA04230393102340F2A4641E46C2
S11318580193002508225F1CE2B1B818B4FBF0F12B
S11318684139C9B20A2913D8B6FBF0F1414310290A
S11318780ED1029205B101931023B3FBF0F0032AB1
S1131888049001A9134898BF0392FFF789FA0BE063
S1131898013AE1E7013BA4F164044FF00105D9D111
S11318A88B210D4800F05EF80A48FFF763FA40F20E
S11318B86763019340F2FF7302930823039304932D
S11318C801AA022301210348FFF716FB07B0F0BD64
S11318D80001100000000440BB21000030B504469C
S11318E887B00D4610480121FFF7C8FA820703D5CF
S11318F8AE210E4800F036F840F2E17301AA0193D4
S1131908022100230848039304950594FFF7F4FA89
S113191801210548FFF7B2FA044600F0C8F8A30706
S1131928F6D407B030BD00BF00000440BB2100005E
S113193810B5022186B004460748FFF79FFA10F055
S1131948010007D00123044801AA19460594FFF7AA
S1131958C9FB012006B010BD0000044072B67047F0
S113196862B6704708B500F0A2F8FCE710B500F0BD
S11319789BF8012811D0094C2378012B0DD1FFF7CE
S1131988BDFE074B1B6803F5FA73984205D3002381
S11319982370BDE81040FFF7ADBC10BD580400200B
S11319A85C04002008B5054B01221A70FFF7A6FE57
S1131988B9FE074B1B6803F5FA73984205D3002385
S11319982370BDE81040FFF7A9BC10BD580400200F
S11319A85C04002008B5054B01221A70FFF7A2FE5B
S11319B8034B1860BDE80840FFF7D8BF580400205F
S11319C85C04002008B5FFF793FC00F06FF8FFF7FC
S11319D871FEFFF75CFE00F00FF8BDE80840FFF762
S11319E8E1BF08B500F063F8FFF77AFE00F014F8D9
S11319C85C04002008B5FFF78FFC00F06FF8FFF700
S11319D86DFEFFF758FE00F00FF8BDE80840FFF76A
S11319E8E1BF08B500F063F8FFF776FE00F014F8DD
S11319F8BDE80840FFF7BABF10B5064C00F062F81E
S1131A08FFF71CFF01232370FFF780FE00232370D8
S1131A1810BD00BF0000002008B50C48FFF78CFF7C
S1131A08FFF718FF01232370FFF77CFE00232370E0
S1131A1810BD00BF0000002008B50C48FFF788FF80
S1131A28012804D10A4B1870084800F069F80748DF
S1131A38FFF7BAFE012807D1054B00221A700348A4
S1131A38FFF7B6FE012807D1054B00221A700348A8
S1131A48BDE8084000F05CB808BD00BF6004002091
S1131A5800000020704700000A4B70B51A7806464B
S1131A68012A0D461C4602D1C9B2FFF73BFF237871
S1131A781BB9E9B23046FFF75DFEBDE8704000F0DF
S1131A68012A0D461C4602D1C9B2FFF737FF237875
S1131A781BB9E9B23046FFF759FEBDE8704000F0E3
S1131A8837B800BF00000020044B1B78013BDBB2D1
S1131A98022B9ABF024AD05C402070470000002005
S1131AA831220000FFF7F0BF00F01AB87047704702
@ -435,7 +435,7 @@ S1131AF8024B002283F84320704700BFA004002053
S1131B08F8B503780546FF2B804C19D1002201252E
S1131B18E37010232371627062712570FFF7C2FFAE
S1131B28A071FFF7B1FFE071FFF7AEFF0823000AC9
S1131B3820726572A572A4F84430FFF7A8FDCEE0C0
S1131B3820726572A572A4F84430FFF7A4FDCEE0C4
S1131B482678012E40F0E080F32B53D01ED8CF2BFB
S1131B5800F0B98005D8C92B7FD0CC2B00F0BA800F
S1131B68BAE0D12B00F0A980C0F08980D22B40F0D4
@ -446,7 +446,7 @@ S1131BA8E3704368A36492E0FD2B47D0FE2B50D02A
S1131BB8FC2B40F0918000208FE0FFF773FF6A78D8
S1131BC8904201DC222088E0A16C07E0FFF76AFF5D
S1131BD86B789842F6DD6968A1646A78201DFFF77E
S1131BE8A5FBFF23E3706B78A26C1344A3646B78A2
S1131BE8A1FBFF23E3706B78A26C1344A3646B78A6
S1131BF801335FE0FF23E370A26C416800231144C2
S1131C088A4204D012F8010B0344DBB2F8E7C4F8A3
S1131C1807300123237100236371A3710CE0FF23B0
@ -454,13 +454,13 @@ S1131C28E3703B4B0722A364002323716371A37100
S1131C38E27123726372A37208233BE0FF23627884
S1131C48E37000232371A371E37123726271062385
S1131C5830E000232370637037E0A76CFFF722FF9E
S1131C686A1C411E3846FFF714FD98B3FF23E3703E
S1131C686A1C411E3846FFF710FD98B3FF23E37042
S1131C78FFF718FFA36C01381844A06427E0FFF7A6
S1131C8811FF6B78013898429CDDFF23E370A4F8B8
S1131C984460697819B9FFF704FD00BB1AE0AA1C6F
S1131CA8A06C1A4EFFF7F5FCA0B16B78B26C134424
S1131C984460697819B9FFF700FD00BB1AE0AA1C73
S1131CA8A06C1A4EFFF7F1FCA0B16B78B26C134428
S1131CB8B36414E0A4F8443011E04168A06CFFF761
S1131CC8EAFC10B906E0FFF715FBFF23E370A4F85C
S1131CC8E6FC10B906E0FFF711FBFF23E370A4F864
S1131CD8446004E0312000E02020FFF7E9FE94F896
S1131CE84330012B02D11020FFF7E2FEB4F944106F
S1131CF80648002908DD012380F8433089B20330FF

View File

@ -90,9 +90,6 @@
</folder>
<folder Name="Source">
<folder Name="ARMCM3_LM3S">
<folder Name="Crossworks">
<file file_name="../../../../Source/ARMCM3_LM3S/Crossworks/cpu_comp.c" />
</folder>
<file file_name="../../../../Source/ARMCM3_LM3S/cpu.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/flash.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/flash.h" />
@ -101,6 +98,9 @@
<file file_name="../../../../Source/ARMCM3_LM3S/types.h" />
<file file_name="../../../../Source/ARMCM3_LM3S/uart.c" />
<file file_name="../../../../Source/ARMCM3_LM3S/can.c" />
<folder Name="GCC">
<file file_name="../../../../Source/ARMCM3_LM3S/GCC/cpu_comp.c" />
</folder>
</folder>
<file file_name="../../../../Source/assert.c" />
<file file_name="../../../../Source/assert.h" />

View File

@ -26,7 +26,7 @@
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;Source Files;Source" name="unnamed" />
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;Source Files;Source;ARMCM3_LM3S" name="unnamed" />
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;Source Files;Source;ARMCM3_LM3S;Crossworks" name="unnamed" />
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;Source Files;Source;ARMCM3_LM3S;GCC" name="unnamed" />
<ProjectSessionItem path="lm3s8962_crossworks;openblt_ek_lm3s8962;System Files" name="unnamed" />
</Project>
<Register1>
@ -62,5 +62,5 @@
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../blt_conf.h" y="80" path="../blt_conf.h" left="0" selected="0" name="unnamed" top="63" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Default" x="0" debugPath="../../../../Source/ARMCM3_LM3S/uart.c" y="185" path="../../../../Source/ARMCM3_LM3S/uart.c" left="0" selected="0" name="unnamed" top="161" />
</Files>
<ARMCrossStudioWindow activeProject="openblt_ek_lm3s8962" autoConnectTarget="Texas Instruments ICDI" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
<ARMCrossStudioWindow activeProject="openblt_ek_lm3s8962" autoConnectTarget="Texas Instruments ICDI" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_LM3S/GCC" fileDialogDefaultFilter="" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session>

View File

@ -7,145 +7,264 @@ start address 0x08000000
Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x00001164 memsz 0x00001164 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08001164 align 2**15
filesz 0x00000001 memsz 0x000006f4 flags rw-
filesz 0x00001290 memsz 0x00001290 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08001290 align 2**15
filesz 0x0000000c memsz 0x00000515 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00001164 08000000 08000000 00008000 2**2
0 .text 00001290 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000001 20000000 08001164 00010000 2**0
1 .data 0000000c 20000000 08001290 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 000006f0 20000004 08001168 00010001 2**2
2 .bss 00000509 2000000c 0800129c 0001000c 2**2
ALLOC
3 .debug_info 000025f8 00000000 00000000 00010001 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 00000fe9 00000000 00000000 000125f9 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000320 00000000 00000000 000135e2 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_ranges 00000248 00000000 00000000 00013902 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000da9 00000000 00000000 00013b4a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00000b8e 00000000 00000000 000148f3 2**0
CONTENTS, READONLY, DEBUGGING
9 .comment 00000030 00000000 00000000 00015481 2**0
3 .heap 00000800 20000518 20000518 00010010 2**3
CONTENTS, READONLY
10 .ARM.attributes 00000033 00000000 00000000 000154b1 2**0
4 .stack_dummy 00000800 20000518 20000518 00010810 2**3
CONTENTS, READONLY
11 .debug_frame 00000658 00000000 00000000 000154e4 2**2
5 .ARM.attributes 00000027 00000000 00000000 00011010 2**0
CONTENTS, READONLY
6 .comment 00000030 00000000 00000000 00011037 2**0
CONTENTS, READONLY
7 .debug_line 000017d1 00000000 00000000 00011067 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00000f9b 00000000 00000000 00015b3c 2**0
8 .debug_info 0000237b 00000000 00000000 00012838 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00000d42 00000000 00000000 00014bb3 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 000003c8 00000000 00000000 000158f8 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 000002d8 00000000 00000000 00015cc0 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_macro 000009b5 00000000 00000000 00015f98 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_str 00039565 00000000 00000000 0001694d 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_frame 000007b0 00000000 00000000 0004feb4 2**2
CONTENTS, READONLY, DEBUGGING
15 .debug_loc 00000e34 00000000 00000000 00050664 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
20000000 l d .data 00000000 .data
20000004 l d .bss 00000000 .bss
2000000c l d .bss 00000000 .bss
20000518 l d .heap 00000000 .heap
20000518 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
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_line 00000000 .debug_line
00000000 l d .debug_macro 00000000 .debug_macro
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 d .debug_loc 00000000 .debug_loc
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 obj/startup_stm32f10x_md.o
00000800 l *ABS* 00000000 Stack_Size
00000800 l *ABS* 00000000 Heap_Size
080001be l .text 00000000 .flash_to_ram_loop
080001f0 l .text 00000000 .fill_zero_bss
080001ec l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
0800128c l O .text 00000000 __EH_FRAME_BEGIN__
080000ec l F .text 00000000 deregister_tm_clones
08000114 l F .text 00000000 register_tm_clones
08000144 l F .text 00000000 __do_global_dtors_aux
2000000c l .bss 00000000 completed.7922
20000008 l O .data 00000000 __do_global_dtors_aux_fini_array_entry
08000174 l F .text 00000000 frame_dummy
20000010 l .bss 00000000 object.7927
20000004 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 main.c
0800026c l F .text 00000166 Init
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 backdoor.c
20000028 l O .bss 00000001 backdoorOpen
2000002c l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c
20000004 l O .bss 00000040 xcpCtoReqPacket.4160
20000030 l O .bss 00000040 xcpCtoReqPacket.4160
20000000 l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 xcp.c
080003a0 l F .text 00000016 XcpSetCtoError
08001068 l O .text 00000008 xcpStationId
20000044 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
20000090 l O .bss 00000001 backdoorOpen
20000094 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 xcp.c
0800053c l F .text 00000020 XcpComputeChecksum
0800055c l F .text 0000000e XcpProtectResources
0800056c l F .text 00000016 XcpSetCtoError
08000584 l F .text 0000001e XcpCmdDisconnect
080005a4 l F .text 00000022 XcpCmdGetStatus
080005c8 l F .text 0000000a XcpCmdSynch
080005d4 l F .text 00000030 XcpCmdGetId
08000604 l F .text 00000018 XcpCmdSetMta
0800061c l F .text 00000028 XcpCmdBuildCheckSum
08000644 l F .text 0000000a XcpCmdProgramPrepare
08000650 l F .text 00000028 XcpCmdProgramStart
08000678 l F .text 00000044 XcpCmdConnect
080006bc l F .text 00000040 XcpCmdUpload
080006fc l F .text 00000042 XcpCmdShortUpload
08000740 l F .text 00000046 XcpCmdProgramMax
08000788 l F .text 00000068 XcpCmdProgram
080007f0 l F .text 00000030 XcpCmdProgramClear
08000820 l F .text 0000001a XcpCmdProgramReset
0800083c l F .text 0000000a XcpTransmitPacket
080011a8 l O .text 00000008 xcpStationId
20000070 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 uart.c
08000844 l F .text 0000004e UartTransmitByte
20000098 l O .bss 00000004 xcpCtoRxStartTime.4186
2000009c l O .bss 00000001 xcpCtoRxLength.4184
200000a0 l O .bss 00000041 xcpCtoReqPacket.4183
200000e4 l O .bss 00000001 xcpCtoRxInProgress.4185
00000000 l df *ABS* 00000000 flash.c
080009dc l F .text 00000022 FlashUnlock
08000a00 l F .text 00000012 FlashLock
08000a14 l F .text 00000050 FlashGetSector
08000a64 l F .text 000000b6 FlashWriteBlock
08000b1c l F .text 00000042 FlashGetSectorBaseAddr
08000b60 l F .text 00000042 FlashGetSectorSize
08000ba4 l F .text 000000b0 FlashEraseSectors
08000c54 l F .text 00000026 FlashInitBlock
08000c7c l F .text 0000004e FlashSwitchBlock
08000ccc l F .text 00000082 FlashAddToBlock
080011b0 l O .text 000000b4 flashLayout
200000bc l O .bss 00000204 bootBlockInfo
200002c0 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
200000e8 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
08000acc l F .text 00000012 FlashLock
08000ae0 l F .text 00000044 FlashGetSector
08000b24 l F .text 000000d0 FlashWriteBlock
08000bf4 l F .text 00000062 FlashSwitchBlock
08000c58 l F .text 00000084 FlashAddToBlock
08001098 l O .text 0000009c flashLayout
200000ec l O .bss 00000204 bootBlockInfo
200002f0 l O .bss 00000204 blockInfo
200004c4 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 uart.c
08000fb0 l F .text 00000026 UartReceiveByte
08000fd8 l F .text 00000040 UartTransmitByte
200004c8 l O .bss 00000004 xcpCtoRxStartTime.4186
200004cc l O .bss 00000001 xcpCtoRxLength.4184
200004d0 l O .bss 00000041 xcpCtoReqPacket.4183
20000514 l O .bss 00000001 xcpCtoRxInProgress.4185
00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c
08001040 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crti.o
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crtn.o
00000000 l df *ABS* 00000000 crtstuff.c
0800128c l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__
080002ec g F .text 00000018 ComInit
08000cf8 g F .text 00000050 FlashWrite
080007e0 g F .text 00000008 AssertFailure
08000ffc g F .text 00000058 reset_handler
08000a94 g F .text 00000022 TimerUpdate
080003e8 g F .text 00000010 XcpPacketTransmitted
08000304 g F .text 0000002c ComTask
080002bc g F .text 0000001c BootInit
080007b4 g F .text 00000022 BackDoorInit
080007dc g F .text 00000002 CopService
08001164 g .text 00000000 _etext
08000ff4 g F .text 00000004 CpuIrqDisable
08000fd4 g F .text 0000000a FlashGetUserProgBaseAddress
08000a84 g F .text 0000000e TimerReset
080002d8 g F .text 00000014 BootTask
08000ec8 g F .text 00000058 FlashWriteChecksum
08000334 g F .text 0000001a ComTransmitPacket
080003d4 g F .text 00000012 XcpIsConnected
08000a20 g F .text 00000008 NvmInit
08000cdc g F .text 0000001a FlashInit
08000a40 g F .text 00000008 NvmGetUserProgBaseAddress
200004f4 g .bss 00000000 _ebss
08000fe0 g F .text 00000012 UnusedISR
08000330 g F .text 00000002 ComFree
08000894 g F .text 0000002a UartInit
08000a30 g F .text 00000008 NvmErase
20000004 g .bss 00000000 _bss
080003f8 g F .text 0000037a XcpPacketReceived
080007e8 g F .text 00000008 CpuInit
08000f88 g F .text 0000004c FlashDone
080003b8 g F .text 0000001c XcpInit
08000d48 g F .text 0000017e FlashErase
08000150 g F .text 0000016a main
08000a48 g F .text 00000012 NvmDone
080008c0 g F .text 00000066 UartTransmitPacket
08000a38 g F .text 00000008 NvmVerifyChecksum
08000824 g F .text 0000001e CpuMemCopy
08000374 g F .text 00000024 ComGetActiveInterfaceMaxTxLen
08000928 g F .text 000000f8 UartReceivePacket
08000ff8 g F .text 00000004 CpuIrqEnable
20000000 g .data 00000000 _data
080007d8 g F .text 00000002 CopInit
08000a28 g F .text 00000008 NvmWrite
080007f0 g F .text 00000034 CpuStartUserProgram
200006f4 g .bss 00000000 _estack
08000f20 g F .text 00000068 FlashVerifyChecksum
20000001 g .data 00000000 _edata
08000000 g O .text 00000150 _vectab
08000398 g F .text 00000008 ComIsConnected
08000350 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
08000774 g F .text 00000040 BackDoorCheck
200004f4 g .bss 00000000 _stack
08000ab8 g F .text 00000012 TimerGet
08000a5c g F .text 00000028 TimerInit
00000800 l *ABS* 00000000 __HEAP_SIZE
08001290 l .text 00000000 __exidx_end
08001290 l .text 00000000 __exidx_start
00000800 l *ABS* 00000000 __STACK_SIZE
08000480 g F .text 00000018 ComInit
08000d6c g F .text 00000050 FlashWrite
0800021e w F .text 00000002 EXTI2_IRQHandler
20000518 g .heap 00000800 __HeapBase
080003e4 g F .text 00000008 AssertFailure
08000206 w F .text 00000002 DebugMon_Handler
08000f78 g F .text 00000022 TimerUpdate
08000878 g F .text 00000010 XcpPacketTransmitted
20000000 g .data 00000000 __data_start__
08000244 w F .text 00000002 TIM1_CC_IRQHandler
08000498 g F .text 0000002c ComTask
080001fc w F .text 00000002 HardFault_Handler
0800020a w F .text 00000002 SysTick_Handler
08000210 w F .text 00000002 PVD_IRQHandler
08000450 g F .text 0000001c BootInit
08000208 w F .text 00000002 PendSV_Handler
080001fa w F .text 00000002 NMI_Handler
08000220 w F .text 00000002 EXTI3_IRQHandler
0800042c g F .text 00000022 BackDoorInit
08001290 g .text 00000000 __etext
08000538 g F .text 00000002 CopService
08001180 g F .text 00000004 CpuIrqDisable
08000ef4 g F .text 0000000a FlashGetUserProgBaseAddress
2000000c g O .data 00000000 .hidden __TMC_END__
08000f3c g F .text 0000000e TimerReset
0800021a w F .text 00000002 EXTI0_IRQHandler
08000250 w F .text 00000002 I2C2_EV_IRQHandler
0800046c g F .text 00000014 BootTask
08000de8 g F .text 00000058 FlashWriteChecksum
08000202 w F .text 00000002 UsageFault_Handler
080004c8 g F .text 0000001a ComTransmitPacket
08000232 w F .text 00000002 ADC1_2_IRQHandler
20000d18 g .heap 00000000 __HeapLimit
2000000c g .bss 00000000 __bss_start__
08000254 w F .text 00000002 SPI1_IRQHandler
08000212 w F .text 00000002 TAMPER_IRQHandler
0800022a w F .text 00000002 DMA1_Channel4_IRQHandler
08000864 g F .text 00000012 XcpIsConnected
08001188 g F .text 00000000 _init
08000f00 g F .text 00000008 NvmInit
08000d50 g F .text 0000001a FlashInit
08000f20 g F .text 00000008 NvmGetUserProgBaseAddress
0800025c w F .text 00000002 USART3_IRQHandler
08000214 w F .text 00000002 RTC_IRQHandler
08000230 w F .text 00000002 DMA1_Channel7_IRQHandler
080001b4 g F .text 00000030 Reset_Handler
08000238 w F .text 00000002 CAN1_RX1_IRQHandler
080004c4 g F .text 00000002 ComFree
0800024a w F .text 00000002 TIM4_IRQHandler
00000000 w *UND* 00000000 __deregister_frame_info
20000518 g .heap 00000000 end
0800024c w F .text 00000002 I2C1_EV_IRQHandler
08001018 g F .text 0000002a UartInit
2000000c g .data 00000000 __data_end__
00000000 w *UND* 00000000 _ITM_registerTMCloneTable
08000f10 g F .text 00000008 NvmErase
0800022e w F .text 00000002 DMA1_Channel6_IRQHandler
20000515 g .bss 00000000 __bss_end__
08000248 w F .text 00000002 TIM3_IRQHandler
08000218 w F .text 00000002 RCC_IRQHandler
08000242 w F .text 00000002 TIM1_TRG_COM_IRQHandler
08000224 w F .text 00000002 DMA1_Channel1_IRQHandler
0800020c w F .text 00000002 Default_Handler
080001e4 w F .text 00000016 _start
08000888 g F .text 000000f6 XcpPacketReceived
08000980 g F .text 00000008 CpuInit
0800025e w F .text 00000002 EXTI15_10_IRQHandler
08000ea8 g F .text 0000004c FlashDone
0800023c w F .text 00000002 EXTI9_5_IRQHandler
08000848 g F .text 0000001c XcpInit
00000000 w *UND* 00000000 _ITM_deregisterTMCloneTable
08000256 w F .text 00000002 SPI2_IRQHandler
08000dbc g F .text 0000002a FlashErase
080001fe w F .text 00000002 MemManage_Handler
08000000 g .text 000000ec __isr_vector
080003d4 g F .text 00000010 main
08000204 w F .text 00000002 SVC_Handler
08000f28 g F .text 00000012 NvmDone
08001044 g F .text 00000064 UartTransmitPacket
08000f18 g F .text 00000008 NvmVerifyChecksum
080009bc g F .text 00000020 CpuMemCopy
20000518 g .heap 00000000 __end__
0800022c w F .text 00000002 DMA1_Channel5_IRQHandler
08000222 w F .text 00000002 EXTI4_IRQHandler
08000236 w F .text 00000002 USB_LP_CAN1_RX0_IRQHandler
08001194 g F .text 00000000 _fini
08000234 w F .text 00000002 USB_HP_CAN1_TX_IRQHandler
08000508 g F .text 00000024 ComGetActiveInterfaceMaxTxLen
080010a8 g F .text 000000d8 UartReceivePacket
08001184 g F .text 00000004 CpuIrqEnable
08000228 w F .text 00000002 DMA1_Channel3_IRQHandler
20005000 g *ABS* 00000000 __StackTop
08000240 w F .text 00000002 TIM1_UP_IRQHandler
0800020e w F .text 00000002 WWDG_IRQHandler
08000534 g F .text 00000002 CopInit
08000246 w F .text 00000002 TIM2_IRQHandler
08000f08 g F .text 00000008 NvmWrite
08000988 g F .text 00000034 CpuStartUserProgram
0800023e w F .text 00000002 TIM1_BRK_IRQHandler
0800021c w F .text 00000002 EXTI1_IRQHandler
08000e40 g F .text 00000068 FlashVerifyChecksum
08000260 w F .text 00000002 RTCAlarm_IRQHandler
20004800 g *ABS* 00000800 __StackLimit
0800025a w F .text 00000002 USART2_IRQHandler
08000252 w F .text 00000002 I2C2_ER_IRQHandler
0800052c g F .text 00000008 ComIsConnected
08000226 w F .text 00000002 DMA1_Channel2_IRQHandler
0800023a w F .text 00000002 CAN1_SCE_IRQHandler
08000216 w F .text 00000002 FLASH_IRQHandler
080004e4 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
08000200 w F .text 00000002 BusFault_Handler
08000258 w F .text 00000002 USART1_IRQHandler
080003ec g F .text 00000040 BackDoorCheck
0800024e w F .text 00000002 I2C1_ER_IRQHandler
08000f9c g F .text 00000012 TimerGet
00000000 w *UND* 00000000 _Jv_RegisterClasses
08000f4c g F .text 0000002c TimerInit
00000000 w *UND* 00000000 __register_frame_info
08000262 w F .text 00000002 USBWakeUp_IRQHandler

View File

@ -1,282 +1,300 @@
S026000062696E2F6F70656E626C745F6E75636C656F5F73746D33326631303372622E73726563D7
S31508000000F4060020FD0F0008E10F0008E10F0008C4
S31508000010E10F0008E10F0008E10F0008E10F0008F2
S31508000020E10F0008E10F0008E10F0008E10F0008E2
S31508000030E10F0008E10F0008E10F0008E10F0008D2
S31508000040E10F0008E10F0008E10F0008E10F0008C2
S31508000050E10F0008E10F0008E10F0008E10F0008B2
S31508000060E10F0008E10F0008E10F0008E10F0008A2
S31508000070E10F0008E10F0008E10F0008E10F000892
S31508000080E10F0008E10F0008E10F0008E10F000882
S31508000090E10F0008E10F0008E10F0008E10F000872
S315080000A0E10F0008E10F0008E10F0008E10F000862
S315080000B0E10F0008E10F0008E10F0008E10F000852
S315080000C0E10F0008E10F0008E10F0008E10F000842
S315080000D0E10F0008E10F0008E10F0008E10F000832
S315080000E0E10F0008E10F0008E10F0008E10F000822
S315080000F0E10F0008E10F0008E10F0008E10F000812
S31508000100E10F0008E10F0008E10F0008E10F000801
S31508000110E10F0008E10F0008E10F0008E10F0008F1
S31508000120E10F0008E10F0008E10F0008E10F0008E1
S31508000130E10F0008E10F0008E10F0008E10F0008D1
S31508000140E10F0008E10F0008E10F0008E10F0008C1
S3150800015000B583B00023009301934FF48053C4F293
S3150800016002031A6842F001021A6059680022CFF6A3
S31508000170FF020A405A601A6822F0847222F480321A
S315080001801A601A6822F480221A605A6822F4FE025B
S315080001905A604FF41F029A601A6842F480321A6055
S315080001A04FF48053C4F2020340F2DC52196801F49A
S315080001B000310191009901310091019911B9009915
S315080001C09142F3D14FF48053C4F202031B6813F42F
S315080001D0003F06D141F26000C0F600006E2100F033
S315080001E0FFFA4FF40053C4F202031A6842F01002F1
S315080001F01A601A6822F003021A601A6842F00202AC
S315080002001A604FF48053C4F202035A685A605A6857
S3150800021042F400525A605A6842F480625A605A6838
S3150800022022F47C125A605A6842F4E8125A601A6834
S3150800023042F080721A604FF48053C4F202031A68BF
S3150800024012F0007FFBD04FF48053C4F202035A68C1
S3150800025022F003025A605A6842F002025A604FF4CA
S315080002608053C4F202035A6802F00C02082AFAD133
S315080002704FF48053C4F20203DA6942F40032DA61B9
S315080002809A6942F005029A614FF40063C4F20103C9
S315080002901A6822F470621A601A6842F430621A60A8
S315080002A01A6822F470421A601A6842F480421A6088
S315080002B000F004F800F010F8FCE700BF08B500F0FD
S315080002C093FA00F089FA00F0C9FB00F0A9FB00F0E8
S315080002D00DF800F06FFA08BD08B500F07FFA00F0D7
S315080002E0D9FB00F00FF800F045FA08BD08B500F094
S315080002F063F800F0CFFA40F20003C2F200030022CE
S315080003001A7008BD08B540F20400C2F2000000F0F9
S315080003100BFB01280BD140F20003C2F200030022B6
S315080003201A7040F20400C2F2000000F065F808BD39
S31508000330704700BF08B540F20003C2F200031B78FD
S3150800034013B9C9B200F0BCFA00F04EF808BD00BFF8
S3150800035040F20003C2F200031878022806D00328E8
S3150800036006D001280CBF082040207047002070479F
S315080003700020704740F20003C2F2000318780228F2
S3150800038006D0032806D001280CBF08204020704755
S31508000390002070470020704708B500F01BF808BD1C
S315080003A040F24403C2F20003FE22DA7018710222F8
S315080003B0A3F84420704700BF40F24403C2F200038A
S315080003C000221A709A6483F84320A3F844209A708E
S315080003D05A70704740F24403C2F20003187800309E
S315080003E018BF0120704700BF40F24403C2F2000361
S315080003F0002283F84320704738B504460178FF2960
S315080004001ED140F24404C2F20004002363700125A1
S315080004102570FF22E270102222716371FFF798FFA0
S31508000420A071FFF7A7FFE071FFF7A4FF000A20728B
S315080004306572A5720823A4F8443000F0F1FA79E150
S3150800044040F24403C2F200031B78012B40F090816E
S31508000450C939352900F26B81DFE811F0DB00690143
S3150800046069016501690169015901FC0042012F0111
S31508000470690169016901690169016901690169011E
S31508000480690169016901690169016901690169010E
S3150800049069016901690169016901690169016901FE
S315080004A069016901690169016901690169016901EE
S315080004B07F00540036007300690169016901A100D3
S315080004C06901B900BD00CE004578FFF741FF013844
S315080004D0854203DD2220FFF763FF2BE140F2440546
S315080004E0C2F20005281DA96C627800F09BF9FF236B
S315080004F0EB706278AB6C1344AB6463780133A5F890
S31508000500443017E14578FFF723FF0138854203DDBC
S315080005102220FFF745FF0DE1616840F24405C2F26B
S315080005200005A964281D627800F07CF9FF23EB70AA
S315080005306278AB6C1344AB6463780133A5F8443036
S31508000540F8E040F24403C2F20003FF22DA70426880
S315080005509A640122A3F84420ECE040F24403C2F274
S315080005600003FF22DA709B6C406840B118440022F1
S3150800057013F8011B0A44D2B28342F9D100E00022E3
S3150800058040F24403C2F20003C3F8072001221A719D
S3150800059000225A719A710822A3F84420CAE040F250
S315080005A04403C2F20003FF22DA7041F26802C0F681
S315080005B000029A6400221A715A719A710721D97138
S315080005C01A725A729A720822A3F84420B2E00020DE
S315080005D0FFF7E6FEAEE040F24403C2F20003FF2254
S315080005E0DA7000221A71597859719A71DA711A7289
S315080005F00622A3F844209DE040F24403C2F2000319
S3150800060000221A705A70FF22DA700122A3F84420D9
S3150800061090E040F24403C2F200039D6CFFF798FE97
S31508000620411E2846621C00F0FFF918B93120FFF771
S31508000630B7FE7FE040F24404C2F20004FF23E370F1
S31508000640A56CFFF785FE013D2844A0640123A4F8A4
S3150800065044306FE04578FFF77BFE0238854203DDBC
S315080006602220FFF79DFE65E040F24403C2F2000334
S31508000670FF22DA700122A3F84420617839B900F024
S31508000680E3F9002856D13120FFF78AFE52E040F2FE
S315080006904403C2F20003986CA21C00F0C5F918B90D
S315080006A03120FFF77DFE45E040F24403C2F2000325
S315080006B061789A6C0A449A643CE040F24404C2F2B7
S315080006C00004FF23E370002525716571FFF740FEDE
S315080006D0A071E571257265720723A4F8443029E0F4
S315080006E040F24403C2F20003986C616800F0A0F976
S315080006F018B93120FFF754FE1CE040F24403C2F259
S315080007000003FF22DA700122A3F8442012E000F069
S315080007106FF840F24403C2F20003FF22DA700122A6
S31508000720A3F8442006E03120FFF73AFE02E0202035
S31508000730FFF736FE40F24403C2F2000393F8433053
S31508000740012B02D11020FFF72BFE40F24403C2F220
S315080007500003B3F844100BB2002B09DD40F2440045
S31508000760C2F20000012380F843300330FFF7E2FDB0
S3150800077038BD00BF08B5FFF70FFE012819D040F2B3
S315080007809003C2F200031B78012B12D100F094F9F2
S3150800079040F29403C2F200031B6803F5FA73984209
S315080007A007D340F29003C2F2000300221A7000F049
S315080007B01FF808BD08B540F29003C2F200030122F3
S315080007C01A7000F079F940F29403C2F20003186037
S315080007D0FFF7D0FF08BD00BF704700BF704700BFD6
S315080007E008B5FFF7FBFFFCE708B500F003FC08BDFA
S315080007F010B500F021F9A0B1FFF79AFD00F042F913
S3150800080000F01EF920F0604020F07F004EF60853F5
S31508000810CEF20003186000F013F9446800F0ECFB10
S31508000820A04710BD70B5561EB6B24AB14C1E0E444E
S31508000830451A14F8013F2B55FFF7D0FFB442F8D1FB
S3150800084070BD00BF10B54FF48843C4F200031B887F
S3150800085003F080039BB2B3B14FF48843C4F200039C
S3150800086098801B8803F080039BB273B94FF48844C1
S31508000870C4F20004FFF7B2FF238803F080039BB29B
S31508000880002BF7D003E0002010BD012010BD012089
S3150800089010BD00BF4FF48843C4F2000300221A813A
S315080008A09A811A829A821A8340F271221A819A8947
S315080008B092B242F4005242F00C029A81704700BF8D
S315080008C02DE9F04106460C46402906D941F270004A
S315080008D0C0F600008D21FFF783FF2046FFF7B2FF21
S315080008E0012806D041F27000C0F600009121FFF7FA
S315080008F077FF2546ACB1002441F27007C0F6000721
S315080009004FF09A08FFF76AFF305DFFF79BFF012853
S3150800091003D038464146FFF763FF0134A3B2AB4222
S31508000920F0D3BDE8F08100BF10B540F2E403C2F28F
S3150800093000031B785BBB4FF48843C4F200031B8893
S3150800094003F020039BB2002B56D04FF48843C4F221
S3150800095000039A8892B240F2A003C2F200031A700A
S3150800096012F0FF0F4AD000F0A7F840F29803C2F23F
S315080009700003186040F29C03C2F2000300201870BE
S3150800098040F2E403C2F2000301221A7010BD40F2DD
S315080009909C03C2F200031A784FF48843C4F200039A
S315080009A01B8803F020039BB263B34FF48843C4F259
S315080009B000039C8840F2A003C2F2000399184C7009
S315080009C00132D2B240F29C01C2F200010A701B78D1
S315080009D0934215D11149FFF725FF40F2E403C2F20D
S315080009E0000300221A70012010BD40F2E403C2F28F
S315080009F000030020187010BD002010BD002010BD97
S31508000A00002010BD00F058F840F29803C2F2000327
S31508000A101B6864339842E8D8002010BDA100002066
S31508000A2008B500F05BF908BD08B500F065F908BD22
S31508000A3008B500F089F908BD08B500F071FA08BDD7
S31508000A4008B500F0C7FA08BD08B500F03DFA10B1C0
S31508000A5000F09AFA08BD002008BD00BF4EF2100348
S31508000A60CEF2000300221A6041F63F11C0F20101DE
S31508000A7059609A600521196040F2E803C2F2000342
S31508000A801A6070474EF21003CEF2000300221A6075
S31508000A90704700BF4EF21003CEF200031B6813F432
S31508000AA0803F1FBF40F2E803C2F200031A68013212
S31508000AB018BF1A60704700BF08B5FFF7EBFF40F292
S31508000AC0E803C2F20003186808BD00BF4FF40053DC
S31508000AD0C4F202031A6942F080021A61704700BF25
S31508000AE0F8B507460024254641F29806C0F60006E2
S31508000AF0FFF774FEA359BB420ED8311949680B4457
S31508000B009F4209D241F29803C0F6000305EB45025D
S31508000B1003EB8203187AF8BD01350C349C2CE7D117
S31508000B20FF20F8BD2DE9F84380460068FFF7D8FF97
S31508000B30FF285CD04FF40053C4F2020340F223129C
S31508000B40C4F267525A6048F6AB12CCF6EF525A60B6
S31508000B503422DA60DB6813F0010F04D0FFF7B6FF22
S31508000B600020BDE8F8834FF40053C4F202031A6963
S31508000B7042F001021A61002508F104094FF40054F5
S31508000B80C4F20204D8F80030EF1859F80560B2B27A
S31508000B90EA52E36813F0010F05D0FFF71FFEE3687A
S31508000BA013F0010FF9D1330C7B80E36813F0010FC2
S31508000BB005D0FFF713FEE36813F0010FF9D13B6880
S31508000BC0B34204D10435B5F5007FDBD101E000243A
S31508000BD000E001244FF40053C4F202031A6922F01C
S31508000BE001021A61FFF772FF2046BDE8F88300206C
S31508000BF0BDE8F88338B504460D4640F2EC03C2F268
S31508000C000003984209D04FF4C043C0F60003994246
S31508000C100BD0FFF787FF20B917E040F2F024C2F2A5
S31508000C200004C5F3080393B903E040F2EC04C2F2EA
S31508000C30000423689D420CD0204640F8045B2946F0
S31508000C404FF40072FFF7EEFD03E0002038BD0020E8
S31508000C5038BD204638BD00BF2DE9F04106460C4692
S31508000C6017461D464FEA51284FEA48280368B3F14C
S31508000C70FF3F06D140F8048B41464FF40072FFF758
S31508000C80D1FD3368434505D030464146FFF7B2FFEC
S31508000C900646D0B13368E41A3444043408F50078BB
S31508000CA0FFF79CFD331DE31AB3F5007F06D33046E4
S31508000CB04146FFF79FFF064650B1041D17F8013B52
S31508000CC004F8013B013DEBD105E00020BDE8F081C9
S31508000CD00020BDE8F0810120BDE8F08140F2F02354
S31508000CE0C2F200034FF0FF321A6040F2EC03C2F280
S31508000CF000031A60704700BF70B504460D461646D5
S31508000D00FFF7EEFEFF281BD0681E2044FFF7E8FE1B
S31508000D10FF2817D0620A4FF4C043C0F60003B3EBAE
S31508000D20422F07BF40F2EC00C2F2000040F2F0206A
S31508000D30C2F20000214632462B46FFF78DFF70BDF2
S31508000D40002070BD002070BD2DE9F84304460E460C
S31508000D50FFF7C6FE0546701E2044FFF7C1FE04468F
S31508000D60FF2D18BFFF2800F0AB80854200F29F8058
S31508000D70022D40F29F800F2800F29F804FF4005307
S31508000D80C4F2020340F22312C4F267525A6048F6CC
S31508000D90AB12CCF6EF525A603422DA60DB6813F0F5
S31508000DA0010F04D0FFF792FE0020BDE8F8834FF448
S31508000DB00053C4F202031A6942F002021A6141F2B0
S31508000DC09809C0F600094F460026FFF707FD3B7A4B
S31508000DD0AB4208D141F29803C0F6000306EB46027F
S31508000DE053F8227005E001360C370D2EEDD14FF081
S31508000DF0FF37C8460025FFF7F1FC98F80830A342EC
S31508000E0008D141F29803C0F6000305EB450253F8F2
S31508000E10228006E0013508F10C080D2DEBD14FF0C4
S31508000E20FF384E460025FFF7D9FC337AA34209D18D
S31508000E3041F29803C0F6000305EB450203EB820373
S31508000E405B6804E001350C360D2DECD10023C7EBA9
S31508000E5008084344C3F38F23E3B1013B9EB201362E
S31508000E60B60200254FF40054C4F20204EB1963617C
S31508000E70236943F040032361E36813F0010F05D0AB
S31508000E80FFF7ACFCE36813F0010FF9D105F58065AF
S31508000E90B542EBD14FF40053C4F202031A6922F0AB
S31508000EA002021A61FFF712FE0120BDE8F88300204E
S31508000EB0BDE8F8830020BDE8F8830020BDE8F88384
S31508000EC00020BDE8F88300BF00B583B040F2EC030C
S31508000ED0C2F200031B68B3F1FF3F08BF01201CD014
S31508000EE040F2EC03C2F2000399685A681144DA68C2
S31508000EF011441A6911445A6911449A690A44D9690C
S31508000F0053185B4202AA42F8043D46F25010C0F656
S31508000F1000000421FFF7F0FEFFE703B05DF804FBCD
S31508000F2046F20402C0F600024FF4C043C0F60003BE
S31508000F3010681B68184446F20803C0F600031B68CD
S31508000F40184446F20C03C0F600031B68184446F220
S31508000F501003C0F600031B68184446F21403C0F6D3
S31508000F6000031B68184446F21803C0F600031B6802
S31508000F70184446F25013C0F600031B681844D0F113
S31508000F80010038BF0020704708B540F2EC03C2F2F2
S31508000F9000031B68B3F1FF3F06D040F2EC00C2F233
S31508000FA00000FFF7BFFD88B140F2F023C2F200034C
S31508000FB01B68B3F1FF3F0BD040F2F020C2F20000ED
S31508000FC0FFF7B0FD003018BF012008BD002008BD9E
S31508000FD0012008BD4FF4C040C0F60000704700BFAE
S31508000FE008B541F23410C0F600003121FFF7F8FBCE
S31508000FF008BD00BF72B6704762B6704710B515498E
S315080010008D4640F20002C2F2000240F20103C2F22B
S3150800101000039A4210D2131D0D4CE41A24F003045F
S3150800102004340023104641F26411C0F600015A58F0
S315080010301A500433A342FAD1074808494FF0000270
S315080010408842B8BF40F8042BFADBFFF781F810BDD9
S3150800105004000020F406002004000020F404002008
S315080010606D61696E2E6300004F70656E424C5400C8
S315080010702E2E2F2E2E2F2E2E2F536F757263652F21
S3150800108041524D434D335F53544D333246312F75DC
S315080010906172742E630000000060000800200000E2
S315080010A00300000000800008002000000400000083
S315080010B000A00008002000000500000000C000088D
S315080010C0002000000600000000E0000800200000E4
S315080010D007000000000001080020000008000000CA
S315080010E00020010800200000090000000040010857
S315080010F0002000000A00000000600108002000002F
S315080011000B00000000800108002000000C00000011
S3150800111000A00108002000000D00000000C0010822
S31508001120002000000E00000000E00108002000007A
S315080011300F0000002E2E2F2E2E2F2E2E2F536F75BA
S315080011407263652F41524D434D335F53544D3332CD
S3150800115046312F4743432F766563746F72732E6348
S30908001160000000007D
S306080011640478
S3150800000000500020B5010008FB010008FD010008AA
S31508000010FF010008010200080302000800000000B2
S3150800002000000000000000000000000005020008B3
S315080000300702000800000000090200080B02000879
S315080000400F02000811020008130200081502000832
S3150800005017020008190200081B0200081D02000802
S315080000601F020008210200082302000825020008D2
S3150800007027020008290200082B0200082D020008A2
S315080000802F02000831020008330200083502000872
S3150800009037020008390200083B0200083D02000842
S315080000A03F02000841020008430200084502000812
S315080000B047020008490200084B0200084D020008E2
S315080000C04F020008510200085302000855020008B2
S315080000D057020008590200085B0200085D02000882
S315080000E05F020008610200086302000808B540F2D2
S315080000F00C00074BC2F200001B1A062B00D808BDDD
S3150800010040F20003C0F20003002BF8D09847F6E748
S315080001100F00002008B540F20C0040F20C03C2F2B2
S315080001200000C2F200031B1A9B1003EBD37359108D
S3150800013000D108BD40F20002C0F20002002AF8D041
S315080001409047F6E710B540F20C04C2F20004237893
S3150800015073B9FFF7CBFF40F20003C0F200032BB1DF
S3150800016041F28C20C0F60000AFF300800123237013
S3150800017010BD00BF08B540F20003C0F200034BB142
S3150800018041F28C2040F21001C0F60000C2F20001D4
S31508000190AFF3008040F20C00C2F2000003682BB1F6
S315080001A040F20003C0F2000303B19847BDE80840D7
S315080001B0B0E700BF06498D460649074A074B9A42EB
S315080001C0BEBF51F8040B42F8040BF8E70448004791
S315080001D00050002090120008000000200C000020AB
S315080001E0E50100081F49204A002301E041F8043BC5
S315080001F09142FBD300F0EEF8FEE7FEE7FEE7FEE7E6
S31508000200FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B8
S31508000210FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7A8
S31508000220FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE798
S31508000230FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE788
S31508000240FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE778
S31508000250FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE768
S31508000260FEE7FEE70C0000201505002000B583B068
S315080002700023019300934FF48053C4F202031A68D3
S3150800028042F001021A6059680022CFF6FF020A40BE
S315080002905A601A6822F0847222F480321A601A6848
S315080002A022F480221A605A6822F4FE025A604FF439
S315080002B01F029A601A6842F480321A604FF480521C
S315080002C0C4F2020240F2DC51136803F400330093CF
S315080002D0019B01330193009B13B9019B8B42F3D118
S315080002E04FF48053C4F202031B6813F4003F06D18F
S315080002F041F2A010C0F600006E2100F073F84FF42A
S315080003000053C4F202031A6842F010021A601A680F
S3150800031022F003021A601A6842F002021A604FF4C9
S315080003208053C4F202035A685A605A6842F400526B
S315080003305A605A6842F480625A605A6822F47C12FB
S315080003405A605A6842F4E8125A601A6842F0807293
S315080003501A604FF48052C4F20202136813F0007F49
S31508000360FBD04FF48053C4F202035A6822F003020A
S315080003705A605A6842F002025A604FF48052C4F238
S315080003800202536803F00C03082BFAD14FF480538A
S31508000390C4F20203DA6942F40032DA619A6942F079
S315080003A005029A614FF40063C4F201031A6822F445
S315080003B070621A601A6842F430621A601A6822F487
S315080003C070421A601A6842F480421A6003B05DF8F7
S315080003D004FB00BF08B5FFF749FF00F039F800F045
S315080003E045F8FCE708B500F0A7F8FCE708B500F003
S315080003F09DF8012819D040F22803C2F200031B78A1
S31508000400012B12D100F0CAFD40F22C03C2F2000300
S315080004101B6803F5FA73984207D340F22803C2F221
S31508000420000300221A7000F0AFFA08BD08B540F2C2
S315080004302803C2F2000301221A7000F0AFFD40F251
S315080004402C03C2F200031860FFF7D0FF08BD00BFF7
S3150800045008B500F095FA00F06DF800F077FD00F0A9
S315080004604FFD00F00DF8FFF7E1FF08BD08B500F0F5
S3150800047063F800F081FD00F00FF8FFF7B7FF08BD3D
S3150800048008B500F0E1F900F0C7FD40F20003C2F23A
S31508000490000300221A7008BD08B540F23000C2F207
S315080004A0000000F001FE01280BD140F20003C2F261
S315080004B0000300221A7040F23000C2F2000000F079
S315080004C0E3F908BD704700BF08B540F20003C2F261
S315080004D000031B7813B9C9B200F0B4FD00F0CCF9DB
S315080004E008BD00BF40F20003C2F2000318780228D4
S315080004F006D0032806D001280CBF082040207047E4
S31508000500002070470020704740F20003C2F2000343
S315080005101878022806D0032806D001280CBF082020
S3150800052040207047002070470020704708B500F04B
S3150800053099F908BD704700BF704700BF10B4002383
S3150800054004E010F8011B0B44DBB221464C1E0029BF
S31508000550F7D1136001205DF8044B704740F2700331
S31508000560C2F2000300225A70704700BF40F27003BF
S31508000570C2F20003FE22DA7018710222A3F84420A0
S31508000580704700BF10B540F27004C2F200040023A1
S315080005902370FFF7E3FFFF23E3700123A4F8443039
S315080005A010BD00BF40F27003C2F20003FF22DA70EA
S315080005B000221A71597859719A71DA711A720622DB
S315080005C0A3F84420704700BF08B50020FFF7CEFF08
S315080005D008BD00BF40F27003C2F20003FF22DA70C2
S315080005E041F2A812C0F600029A6400221A715A71E2
S315080005F09A710721D9711A725A729A720822A3F847
S315080006004420704740F27003C2F20003FF22DA70FA
S3150800061042689A640122A3F84420704710B540F254
S315080006207004C2F20004FF23E3704168A06CE21D67
S31508000630FFF784FF207100236371A3710823A4F8D0
S31508000640443010BD08B53120FFF790FF08BD00BF44
S3150800065038B540F27004C2F20004FF23E3700025A7
S3150800066025716571FFF73EFFA071E5712572657208
S315080006700723A4F8443038BD38B5FFF76FFF40F2BA
S315080006807004C2F2000401252570FF23E3701023CD
S31508000690237100236371FFF725FFA071FFF734FF6D
S315080006A0E071FFF731FFC0F3072020726572A5726B
S315080006B00823A4F8443000F023FC38BD38B50546B5
S315080006C04478FFF70FFF0138844203DD2220FFF745
S315080006D04DFF38BD40F27004C2F20004201DA16C23
S315080006E06A7800F06BF9FF23E3706A78A36C134409
S315080006F0A3646B780133A4F8443038BD38B5054691
S315080007004478FFF7EFFE0138844203DD2220FFF725
S315080007102DFF38BD696840F27004C2F20004A16476
S31508000720201D6A7800F04AF9FF23E3706A78A36C03
S315080007301344A3646B780133A4F8443038BD00BF72
S3150800074038B5044640F27003C2F200039D6CFFF709
S31508000750C9FE411E2846621C00F0D6FB18B9312096
S31508000760FFF704FF38BD40F27004C2F20004FF230D
S31508000770E370A56CFFF7B6FE2844451EA564012361
S31508000780A4F8443038BD00BF38B504464578FFF7AD
S31508000790A9FE0238854203DD2220FFF7E7FE38BDB1
S315080007A040F27003C2F20003FF22DA700122A3F8B6
S315080007B04420617831B900F0B7FBC0B93120FFF7A2
S315080007C0D5FE38BD40F27003C2F20003986CA21C35
S315080007D000F09AFB18B93120FFF7C8FE38BD6178DA
S315080007E040F27003C2F200039A6C0A449A6438BD58
S315080007F008B540F27003C2F200034168986C00F035
S3150800080087FB18B93120FFF7B1FE08BD40F2700327
S31508000810C2F20003FF22DA700122A3F8442008BDC1
S3150800082008B500F0B1F840F27003C2F20003FF22E7
S31508000830DA700122A3F8442008BD00BF08B589B2C2
S31508000840FFF742FE08BD00BF40F27003C2F2000384
S3150800085000221A709A6483F84320A3F844209A70F9
S315080008605A70704740F27003C2F2000318780030DD
S3150800087018BF0120704700BF40F27003C2F20003A0
S31508000880002283F84320704708B50278FF2A02D170
S31508000890FFF7F2FE53E040F27003C2F200031B7842
S315080008A0012B6BD1C93A352A46D8DFE802F0334521
S315080008B0454245453F363C39454545454545454507
S315080008C045454545454545454545454545454545CA
S315080008D04545454545454545241E1B21454545276E
S315080008E0452A2D30FFF7EAFE29E0FFF707FF26E045
S315080008F0FFF788FE23E0FFF791FE20E0FFF76AFE88
S315080009001DE0FFF761FE1AE0FFF74CFE17E0FFF760
S3150800091039FE14E0FFF714FF11E0FFF735FF0EE08C
S31508000920FFF796FE0BE0FFF763FF08E0FFF778FF97
S3150800093005E0FFF787FE02E02020FFF717FE40F2EA
S315080009407003C2F2000393F84330012B02D1102042
S31508000950FFF70CFE40F27003C2F20003B3F844102E
S315080009600BB2002B0ADD40F27000C2F20000012330
S3150800097080F84330033009B2FFF760FF08BD00BFB7
S3150800098008B500F0FDFB08BD10B500F0C5FAA0B12A
S31508000990FFF798FD00F0D2FA00F0C2FA20F06040A6
S315080009A020F07F004EF60853CEF20003186000F0E0
S315080009B0B7FA446800F0E6FBA04710BD70B508E03A
S315080009C0461C4D1C0B780370FFF7B6FD22463046D1
S315080009D02946531E9CB2002AF2D170BD4FF400532B
S315080009E0C4F2020340F22312C4F267525A6048F670
S315080009F0AB12CCF6EF525A603422DA60704700BF69
S31508000A004FF40053C4F202031A6942F080021A61D5
S31508000A10704700BF70B50646002441F2B015C0F60F
S31508000A2000051BE0FFF788FD04EB440355F8233067
S31508000A30B34211D804EB440105EB810149680B4424
S31508000A40B34209D941F2B013C0F6000304EB4402DD
S31508000A5003EB8203187A70BD0134E4B20E2CE1D997
S31508000A60FF2070BD2DE9F04781460068FFF7D2FFE9
S31508000A70FF284FD0FFF7B2FF4FF40053C4F202032A
S31508000A80DB6813F0010F04D0FFF7BAFF0020BDE8BA
S31508000A90F0874FF40053C4F202031A6942F00102C8
S31508000AA01A6100254FF40054C4F2020420E0D9F874
S31508000AB00080AF0008EB070A09EB07035E68B3B2CC
S31508000AC028F8253001E0FFF737FDE36813F0010F3A
S31508000AD0F9D1330CAAF8023001E0FFF72DFDE368DF
S31508000AE013F0010FF9D158F80730B34204D1013594
S31508000AF07F2DDCD9012400E000244FF40053C4F212
S31508000B0002031A6922F001021A61FFF779FF2046EB
S31508000B10BDE8F0870020BDE8F08700BF70B506463F
S31508000B20002441F2B015C0F6000513E0FFF704FDF6
S31508000B3004EB440305EB83031B7AB34208D141F265
S31508000B40B013C0F6000304EB440253F8220070BD4C
S31508000B500134E4B20E2CE9D94FF0FF3070BD00BF66
S31508000B6070B50646002441F2B015C0F6000514E03B
S31508000B70FFF7E2FC04EB440305EB83031B7AB3425D
S31508000B8009D141F2B013C0F6000304EB440203EBAB
S31508000B908203586870BD0134E4B20E2CE8D90020EF
S31508000BA070BD00BFF8B504460D4688424CD80028EB
S31508000BB04CD00F294CD8FFF711FF4FF40053C4F25D
S31508000BC00203DB6813F0010F03D0FFF719FF0020BB
S31508000BD0F8BD4FF40053C4F202031A6942F0020248
S31508000BE01A612046FFF79AFF06462846FFF796FF42
S31508000BF004462846FFF7B4FF2044871BC7F38F2710
S31508000C0000254FF40054C4F202040FE006EB8523D6
S31508000C106361236943F04003236101E0FFF78CFC1D
S31508000C20E36813F0010FF9D10135ADB2BD42EDD33A
S31508000C304FF40053C4F202031A6922F002021A6141
S31508000C40FFF7DEFE0120F8BD0020F8BD0020F8BD44
S31508000C500020F8BD08B5C1F3080353B903688B42F1
S31508000C6009D040F8041B4FF40072FFF7A7FE0120D5
S31508000C7008BD002008BD012008BD00BF38B50446E0
S31508000C800D4640F2BC03C2F20003984209D04FF465
S31508000C900053C0F60003994208D0FFF7E3FE48B9AF
S31508000CA011E040F2C024C2F2000403E040F2BC04A2
S31508000CB0C2F2000420462946FFF7CCFF002814BFDD
S31508000CC02046002038BD002038BD00BF2DE9F04180
S31508000CD006460C4617461D464FEA51284FEA48284D
S31508000CE00368B3F1FF3F03D14146FFF7B3FF28B3CB
S31508000CF03368434505D030464146FFF7BFFF0646F1
S31508000D00F8B13368E41A3444043408F50078FFF778
S31508000D1013FC331DE31AB3F5007F06D3304641466C
S31508000D20FFF7ACFF064678B1041D17F8013B04F837
S31508000D30013B013DEBD10120BDE8F0810020BDE873
S31508000D40F0810020BDE8F0810020BDE8F08100BFF9
S31508000D5040F2C023C2F200034FF0FF321A6040F29D
S31508000D60BC03C2F200031A60704700BF70B50446A0
S31508000D700D461646FFF74EFEFF281BD060190138B0
S31508000D80FFF748FEFF2817D0620A4FF40053C0F653
S31508000D900003B3EB422F07BF40F2BC00C2F20000CB
S31508000DA040F2C020C2F20000214632462B46FFF729
S31508000DB08DFF70BD002070BD002070BD70B5064661
S31508000DC00D46FFF727FE044670190138FFF722FE85
S31508000DD00146FF2818BFFF2C03D02046FFF7E2FE86
S31508000DE070BD002070BD00BF00B583B040F2BC03E3
S31508000DF0C2F200031B68B3F1FF3F08BF01201CD0F5
S31508000E0040F2BC03C2F2000359689A681144DA68D2
S31508000E1011441A6911445A6911449A690A44D969EC
S31508000E2053185B4202AA42F8043D42F2EC00C0F6AF
S31508000E3000000421FFF79AFFFFE703B05DF804FB03
S31508000E404FF40053C0F60003186842F20403C0F6D4
S31508000E5000031B68184442F20803C0F600031B6827
S31508000E60184442F20C03C0F600031B68184442F209
S31508000E701003C0F600031B68184442F21403C0F6B8
S31508000E8000031B68184442F21803C0F600031A68E8
S31508000E9042F2EC03C0F600031B6810441844D0F174
S31508000EA0010038BF0020704708B540F2BC03C2F203
S31508000EB000031B68B3F1FF3F06D040F2BC00C2F244
S31508000EC00000FFF7CFFD88B140F2C023C2F200034D
S31508000ED01B68B3F1FF3F0BD040F2C020C2F20000FE
S31508000EE0FFF7C0FD003018BF012008BD002008BD6F
S31508000EF0012008BD4FF40050C0F60000704700BF3F
S31508000F0008B5FFF725FF08BD08B5FFF72FFF08BD91
S31508000F1008B5FFF753FF08BD08B5FFF791FF08BDF1
S31508000F2008B5FFF7E7FF08BD08B5FFF75DFF10B185
S31508000F30FFF7BAFF08BD002008BD00BF4EF2100338
S31508000F40CEF2000300221A60704700BF08B5FFF70B
S31508000F50F5FF4EF21003CEF2000341F63F12C0F23F
S31508000F6001025A6000229A600521196040F2C443C2
S31508000F70C2F200031A6008BD4EF21003CEF2000357
S31508000F801B6813F4803F1FBF40F2C443C2F200033C
S31508000F901A68013218BF1A60704700BF08B5FFF714
S31508000FA0EBFF40F2C443C2F20003186808BD00BF55
S31508000FB04FF48843C4F200031B8803F020039BB256
S31508000FC03BB14FF48843C4F200039B8803700120A9
S31508000FD070470020704700BF10B54FF48843C4F22D
S31508000FE000031B8803F080039BB29BB14FF4884330
S31508000FF0C4F2000398804FF48844C4F2000401E068
S31508001000FFF79AFA238803F080039BB2002BF7D0E8
S31508001010012010BD002010BD4FF48843C4F2000320
S3150800102000221A819A811A829A821A8340F27122C0
S315080010301A819A8992B242F4005242F00C029A81BD
S31508001040704700BF2DE9F04106460D46402906D9EE
S3150800105041F26420C0F600008D21FFF7C3F9284647
S31508001060FFF7BAFF012806D041F26420C0F6000057
S315080010709121FFF7B7F9002441F26427C0F600076B
S315080010804FF09A080CE0FFF757FA305DFFF7A4FF18
S31508001090012803D038464146FFF7A4F90134A4B223
S315080010A0A542F0D8BDE8F08110B5044640F21453C5
S315080010B0C2F200031B7813BB40F2D040C2F2000014
S315080010C0FFF776FF012851D140F2D043C2F2000360
S315080010D01B78002B4CD0FFF761FF40F2C843C2F2E1
S315080010E00003186040F2CC43C2F2000300201870D7
S315080010F040F21453C2F2000301221A7010BD40F2E6
S31508001100CC43C2F200031B781C481844FFF750FF73
S3150800111001281AD140F2CC43C2F200031A780132F0
S31508001120D2B21A7040F2D043C2F200031B789A4238
S3150800113020D120461149FFF741FC40F21453C2F270
S31508001140000300221A70012010BDFFF727FF40F2A6
S31508001150C843C2F200031B68643398420CD940F2B4
S315080011601453C2F200030020187010BD002010BDF1
S31508001170002010BD002010BD002010BDD1040020A5
S3150800118072B6704762B67047F8B500BFF8BC08BCBF
S315080011909E467047F8B500BFF8BC08BC9E46704727
S315080011A06D61696E2E6300004F70656E424C540087
S315080011B00020000800200000010000000040000890
S315080011C00020000002000000006000080020000067
S315080011D00300000000800008002000000400000052
S315080011E000A00008002000000500000000C000085C
S315080011F0002000000600000000E0000800200000B3
S315080012000700000000000108002000000800000098
S315080012100020010800200000090000000040010825
S31508001220002000000A0000000060010800200000FD
S315080012300B00000000800108002000000C000000E0
S3150800124000A00108002000000D00000000C00108F1
S31508001250002000000E00000000E001080020000049
S315080012600F0000002E2E2F2E2E2F2E2E2F536F7589
S315080012707263652F41524D434D335F53544D33329C
S3150800128046312F756172742E63000000000000005D
S3110800129004000000750100084501000874
S70508000000F2

View File

@ -137,6 +137,23 @@
#define BOOT_NVM_CHECKSUM_HOOKS_ENABLE (0)
/****************************************************************************************
* F L A S H M E M O R Y D R I V E R C O N F I G U R A T I O N
****************************************************************************************/
/** \brief This microcontroller has a smaller vector table then the default STM32F1xx
* project as assumed in the bootloader's core. This means the user program has
* a different checksum location, because this one is added at the end of the
* user program's vector table.
*/
#define FLASH_VECTOR_TABLE_CS_OFFSET (0xec)
/** \brief Enable support for a custom flash layout table. It is located in
* flash_layout.c. This was done because the default flashLayout[] table
* in the bootloader's core has more flash memory reserved for the bootloader
* than is needed for this demo.
*/
#define BOOT_FLASH_CUSTOM_LAYOUT_ENABLE (1)
/****************************************************************************************
* W A T C H D O G D R I V E R C O N F I G U R A T I O N
****************************************************************************************/

View File

@ -0,0 +1,59 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Nucleo_F103RB_GCC\Boot\flash_layout.c
* \brief Custom flash layout table source file.
* \ingroup Boot_ARMCM3_STM32F1_Nucleo_F103RB_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/** \brief Array wit the layout of the flash memory.
* \details Also controls what part of the flash memory is reserved for the bootloader.
* If the bootloader size changes, the reserved sectors for the bootloader
* might need adjustment to make sure the bootloader doesn't get overwritten.
*/
static const tFlashSector flashLayout[] =
{
/* space is reserved for a bootloader configuration with all supported communication
* interfaces enabled. when for example only UART is needed, than the space required
* for the bootloader can be made a lot smaller here.
*/
/* { 0x08000000, 0x02000, 0}, flash sector 0 - reserved for bootloader */
{ 0x08002000, 0x02000, 1}, /* flash sector 1 - 8kb */
{ 0x08004000, 0x02000, 2}, /* flash sector 2 - 8kb */
{ 0x08006000, 0x02000, 3}, /* flash sector 3 - 8kb */
{ 0x08008000, 0x02000, 4}, /* flash sector 4 - 8kb */
{ 0x0800A000, 0x02000, 5}, /* flash sector 5 - 8kb */
{ 0x0800C000, 0x02000, 6}, /* flash sector 6 - 8kb */
{ 0x0800E000, 0x02000, 7}, /* flash sector 7 - 8kb */
{ 0x08010000, 0x02000, 8}, /* flash sector 8 - 8kb */
{ 0x08012000, 0x02000, 9}, /* flash sector 9 - 8kb */
{ 0x08014000, 0x02000, 10}, /* flash sector 10 - 8kb */
{ 0x08016000, 0x02000, 11}, /* flash sector 11 - 8kb */
{ 0x08018000, 0x02000, 12}, /* flash sector 12 - 8kb */
{ 0x0801A000, 0x02000, 13}, /* flash sector 13 - 8kb */
{ 0x0801C000, 0x02000, 14}, /* flash sector 14 - 8kb */
{ 0x0801E000, 0x02000, 15}, /* flash sector 15 - 8kb */
};
/*********************************** end of flash_layout.c *****************************/

View File

@ -1,11 +1,11 @@
#****************************************************************************************
#| Description: Makefile for STM32 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) 2011 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,130 +25,113 @@
#****************************************************************************************
SHELL = sh
#|---------------------------------------------------------------------------------------|
#| Configure project name |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Configure project name |
#|--------------------------------------------------------------------------------------|
PROJ_NAME=openblt_nucleo_stm32f103rb
#|---------------------------------------------------------------------------------------|
#| Speficy project source files |
#|---------------------------------------------------------------------------------------|
PROJ_FILES= \
blt_conf.h \
hooks.c \
main.c \
./lib/CMSIS/CM3/CoreSupport/core_cm3.c \
./lib/CMSIS/CM3/CoreSupport/core_cm3.h \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h \
./lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h \
./lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h \
./lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h \
./lib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h \
./lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \
./lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \
./lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \
./lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \
./lib/STM32F10x_StdPeriph_Driver/stm32f10x_conf.h \
../../../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/file.c \
../../../Source/file.h \
../../../Source/assert.c \
../../../Source/assert.h \
../../../Source/cpu.h \
../../../Source/can.h \
../../../Source/uart.h \
../../../Source/nvm.h \
../../../Source/timer.h \
../../../Source/plausibility.h \
../../../Source/ARMCM3_STM32F1/types.h \
../../../Source/ARMCM3_STM32F1/cpu.c \
../../../Source/ARMCM3_STM32F1/can.c \
../../../Source/ARMCM3_STM32F1/uart.c \
../../../Source/ARMCM3_STM32F1/nvm.c \
../../../Source/ARMCM3_STM32F1/timer.c \
../../../Source/ARMCM3_STM32F1/flash.c \
../../../Source/ARMCM3_STM32F1/flash.h \
../../../Source/ARMCM3_STM32F1/GCC/vectors.c \
../../../Source/ARMCM3_STM32F1/GCC/cpu_comp.c \
../../../Source/ARMCM3_STM32F1/GCC/cstart.c
#|--------------------------------------------------------------------------------------|
#| Configure tool path |
#|--------------------------------------------------------------------------------------|
TOOL_PATH=
#|---------------------------------------------------------------------------------------|
#| 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_STM32F1/*.c)
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/*.h)
# Collect bootloader port compiler specific files
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/GCC/*.c)
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/GCC/*.h)
#|---------------------------------------------------------------------------------------|
#| Extract file names |
#|---------------------------------------------------------------------------------------|
PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
#|--------------------------------------------------------------------------------------|
#| Toolchain binaries |
#|--------------------------------------------------------------------------------------|
RM = cs-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.
LIB_PATH = -L../../../Source/ARMCM3_STM32F1/GCC/
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 -O1 -T memory.x
CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -Wno-main
CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\)
CFLAGS += -ffunction-sections -fdata-sections $(INC_PATH) -D STM32F10X_MD -D GCC_ARMCM3
CFLAGS += -D USE_STDPERIPH_DRIVER -D VECT_TAB_FLASH -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 srec
ODFLAGS = -x
SZFLAGS = -B -d
#|--------------------------------------------------------------------------------------|
#| Options for toolchain binaries |
#|--------------------------------------------------------------------------------------|
HEAP_SIZE = 0x0800
STACK_SIZE = 0x0800
STDFLAGS = -mcpu=cortex-m3 -mthumb -fno-strict-aliasing -Wno-maybe-uninitialized
STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3
OPTFLAGS = -Og
CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3
CFLAGS += -D__HEAP_SIZE=$(HEAP_SIZE) -D__STACK_SIZE=$(STACK_SIZE)
CFLAGS += $(INC_PATH)
AFLAGS = $(CFLAGS)
LFLAGS = $(STDFLAGS) $(OPTFLAGS)
LFLAGS += -Wl,--defsym=__HEAP_SIZE=$(HEAP_SIZE) -Wl,--defsym=__STACK_SIZE=$(STACK_SIZE)
LFLAGS += -Wl,-script="stm32f103rb_flash.ld" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
LFLAGS += -Wl,--gc-sections $(LIB_PATH)
OFLAGS = -O srec
ODFLAGS = -x
SZFLAGS = -B -d
RMFLAGS = -f
#|---------------------------------------------------------------------------------------|
#| Specify library files |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Specify library files |
#|--------------------------------------------------------------------------------------|
LIBS =
#|---------------------------------------------------------------------------------------|
#| Define targets |
#|---------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
#|--------------------------------------------------------------------------------------|
#| 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
@ -160,31 +143,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 |
#|---------------------------------------------------------------------------------------|
$(AOBJS): %.o: %.s $(PROJ_CHDRS)
#|--------------------------------------------------------------------------------------|
#| 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

@ -0,0 +1,285 @@
/* File: startup_ARMCM3.S
* Purpose: startup file for Cortex-M3 devices. Should use with
* GCC for ARM Embedded Processors
* Version: V1.3
* Date: 08 Feb 2012
*
* Copyright (c) 2012, ARM Limited
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the ARM Limited nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES//
* LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.syntax unified
.arch armv7-m
.section .stack
.align 3
#ifdef __STACK_SIZE
.equ Stack_Size, __STACK_SIZE
#else
.equ Stack_Size, 0x400
#endif
.globl __StackTop
.globl __StackLimit
__StackLimit:
.space Stack_Size
.size __StackLimit, . - __StackLimit
__StackTop:
.size __StackTop, . - __StackTop
.section .heap
.align 3
#ifdef __HEAP_SIZE
.equ Heap_Size, __HEAP_SIZE
#else
.equ Heap_Size, 0xC00
#endif
.globl __HeapBase
.globl __HeapLimit
__HeapBase:
.if Heap_Size
.space Heap_Size
.endif
.size __HeapBase, . - __HeapBase
__HeapLimit:
.size __HeapLimit, . - __HeapLimit
.section .isr_vector
.align 2
.globl __isr_vector
__isr_vector:
.long __StackTop /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
.long MemManage_Handler /* MPU Fault Handler */
.long BusFault_Handler /* Bus Fault Handler */
.long UsageFault_Handler /* Usage Fault Handler */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long SVC_Handler /* SVCall Handler */
.long DebugMon_Handler /* Debug Monitor Handler */
.long 0 /* Reserved */
.long PendSV_Handler /* PendSV Handler */
.long SysTick_Handler /* SysTick Handler */
// External Interrupts
.long WWDG_IRQHandler // Window Watchdog
.long PVD_IRQHandler // PVD through EXTI Line detect
.long TAMPER_IRQHandler // Tamper
.long RTC_IRQHandler // RTC
.long FLASH_IRQHandler // Flash
.long RCC_IRQHandler // RCC
.long EXTI0_IRQHandler // EXTI Line 0
.long EXTI1_IRQHandler // EXTI Line 1
.long EXTI2_IRQHandler // EXTI Line 2
.long EXTI3_IRQHandler // EXTI Line 3
.long EXTI4_IRQHandler // EXTI Line 4
.long DMA1_Channel1_IRQHandler // DMA1 Channel 1
.long DMA1_Channel2_IRQHandler // DMA1 Channel 2
.long DMA1_Channel3_IRQHandler // DMA1 Channel 3
.long DMA1_Channel4_IRQHandler // DMA1 Channel 4
.long DMA1_Channel5_IRQHandler // DMA1 Channel 5
.long DMA1_Channel6_IRQHandler // DMA1 Channel 6
.long DMA1_Channel7_IRQHandler // DMA1 Channel 7
.long ADC1_2_IRQHandler // ADC1_2
.long USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
.long USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
.long CAN1_RX1_IRQHandler // CAN1 RX1
.long CAN1_SCE_IRQHandler // CAN1 SCE
.long EXTI9_5_IRQHandler // EXTI Line 9..5
.long TIM1_BRK_IRQHandler // TIM1 Break
.long TIM1_UP_IRQHandler // TIM1 Update
.long TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
.long TIM1_CC_IRQHandler // TIM1 Capture Compare
.long TIM2_IRQHandler // TIM2
.long TIM3_IRQHandler // TIM3
.long TIM4_IRQHandler // TIM4
.long I2C1_EV_IRQHandler // I2C1 Event
.long I2C1_ER_IRQHandler // I2C1 Error
.long I2C2_EV_IRQHandler // I2C2 Event
.long I2C2_ER_IRQHandler // I2C2 Error
.long SPI1_IRQHandler // SPI1
.long SPI2_IRQHandler // SPI2
.long USART1_IRQHandler // USART1
.long USART2_IRQHandler // USART2
.long USART3_IRQHandler // USART3
.long EXTI15_10_IRQHandler // EXTI Line 15..10
.long RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
.long USBWakeUp_IRQHandler // USB Wakeup from suspend
.size __isr_vector, . - __isr_vector
.text
.thumb
.thumb_func
.align 2
.globl Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Initialize the stackpointer. this is done automatically after a reset event, but
* this program is started by the bootloader and not a reset event. */
ldr r1, =__StackTop
mov sp, r1
/* Loop to copy data from read only memory to RAM. The ranges
* of copy from/to are specified by following symbols evaluated in
* linker script.
* __etext: End of code section, i.e., begin of data sections to copy from.
* __data_start__/__data_end__: RAM address range that data should be
* copied to. Both must be aligned to 4 bytes boundary. */
ldr r1, =__etext
ldr r2, =__data_start__
ldr r3, =__data_end__
#if 1
/* Here are two copies of loop implemenations. First one favors code size
* and the second one favors performance. Default uses the first one.
* Change to "#if 0" to use the second one */
.flash_to_ram_loop:
cmp r2, r3
ittt lt
ldrlt r0, [r1], #4
strlt r0, [r2], #4
blt .flash_to_ram_loop
#else
subs r3, r2
ble .flash_to_ram_loop_end
.flash_to_ram_loop:
subs r3, #4
ldr r0, [r1, r3]
str r0, [r2, r3]
bgt .flash_to_ram_loop
.flash_to_ram_loop_end:
#endif
#define __NO_SYSTEM_INIT
#ifndef __NO_SYSTEM_INIT
ldr r0, =SystemInit
blx r0
#endif
ldr r0, =_start
bx r0
.pool
.size Reset_Handler, . - Reset_Handler
/* Our weak _start alternative if we don't use the library _start
* The zero init section must be cleared, otherwise the librtary is
* doing that */
.align 1
.thumb_func
.weak _start
.type _start, %function
_start:
/* Zero fill the bss segment. */
ldr r1, = __bss_start__
ldr r2, = __bss_end__
movs r3, #0
b .fill_zero_bss
.loop_zero_bss:
str r3, [r1], #4
.fill_zero_bss:
cmp r1, r2
bcc .loop_zero_bss
/* Jump to our main */
bl main
b .
.size _start, . - _start
/* Macro to define default handlers. Default handler
* will be weak symbol and just dead loops. They can be
* overwritten by other handlers */
.macro def_irq_handler handler_name
.align 1
.thumb_func
.weak \handler_name
.type \handler_name, %function
\handler_name :
b .
.size \handler_name, . - \handler_name
.endm
def_irq_handler NMI_Handler
def_irq_handler HardFault_Handler
def_irq_handler MemManage_Handler
def_irq_handler BusFault_Handler
def_irq_handler UsageFault_Handler
def_irq_handler SVC_Handler
def_irq_handler DebugMon_Handler
def_irq_handler PendSV_Handler
def_irq_handler SysTick_Handler
def_irq_handler Default_Handler
// External Interrupts
def_irq_handler WWDG_IRQHandler // Window Watchdog
def_irq_handler PVD_IRQHandler // PVD through EXTI Line detect
def_irq_handler TAMPER_IRQHandler // Tamper
def_irq_handler RTC_IRQHandler // RTC
def_irq_handler FLASH_IRQHandler // Flash
def_irq_handler RCC_IRQHandler // RCC
def_irq_handler EXTI0_IRQHandler // EXTI Line 0
def_irq_handler EXTI1_IRQHandler // EXTI Line 1
def_irq_handler EXTI2_IRQHandler // EXTI Line 2
def_irq_handler EXTI3_IRQHandler // EXTI Line 3
def_irq_handler EXTI4_IRQHandler // EXTI Line 4
def_irq_handler DMA1_Channel1_IRQHandler // DMA1 Channel 1
def_irq_handler DMA1_Channel2_IRQHandler // DMA1 Channel 2
def_irq_handler DMA1_Channel3_IRQHandler // DMA1 Channel 3
def_irq_handler DMA1_Channel4_IRQHandler // DMA1 Channel 4
def_irq_handler DMA1_Channel5_IRQHandler // DMA1 Channel 5
def_irq_handler DMA1_Channel6_IRQHandler // DMA1 Channel 6
def_irq_handler DMA1_Channel7_IRQHandler // DMA1 Channel 7
def_irq_handler ADC1_2_IRQHandler // ADC1_2
def_irq_handler USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
def_irq_handler USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
def_irq_handler CAN1_RX1_IRQHandler // CAN1 RX1
def_irq_handler CAN1_SCE_IRQHandler // CAN1 SCE
def_irq_handler EXTI9_5_IRQHandler // EXTI Line 9..5
def_irq_handler TIM1_BRK_IRQHandler // TIM1 Break
def_irq_handler TIM1_UP_IRQHandler // TIM1 Update
def_irq_handler TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
def_irq_handler TIM1_CC_IRQHandler // TIM1 Capture Compare
def_irq_handler TIM2_IRQHandler // TIM2
def_irq_handler TIM3_IRQHandler // TIM3
def_irq_handler TIM4_IRQHandler // TIM4
def_irq_handler I2C1_EV_IRQHandler // I2C1 Event
def_irq_handler I2C1_ER_IRQHandler // I2C1 Error
def_irq_handler I2C2_EV_IRQHandler // I2C2 Event
def_irq_handler I2C2_ER_IRQHandler // I2C2 Error
def_irq_handler SPI1_IRQHandler // SPI1
def_irq_handler SPI2_IRQHandler // SPI2
def_irq_handler USART1_IRQHandler // USART1
def_irq_handler USART2_IRQHandler // USART2
def_irq_handler USART3_IRQHandler // USART3
def_irq_handler EXTI15_10_IRQHandler // EXTI Line 15..10
def_irq_handler RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
def_irq_handler USBWakeUp_IRQHandler // USB Wakeup from suspend
.end

View File

@ -0,0 +1,183 @@
/* ---------------------------------------------------------------------------- */
/* Em::Blocks embedded development Support */
/* ---------------------------------------------------------------------------- */
/* Copyright (c) 2014, EmBlocks */
/* */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following condition is met: */
/* */
/* - Redistributions of source code must retain the above copyright notice, */
/* this list of conditions and the disclaimer below. */
/* */
/* EmBlocks's name may not be used to endorse or promote products derived from */
/* this software without specific prior written permission. */
/* */
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY EBLOCKS "AS IS" AND ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
/* DISCLAIMED. IN NO EVENT SHALL EMBLOCKS BE LIABLE FOR ANY DIRECT, INDIRECT, */
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* ---------------------------------------------------------------------------- */
/*------------------------------------------------------------------------------
* Linker script for running in internal FLASH on the STM32F103RB
*----------------------------------------------------------------------------*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
/* reserve space for the OpenBLT bootloader which occupies the first part
* of flash.
*/
ROM (rx) : ORIGIN = 0x08000000, LENGTH = 8K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.
* It references following symbols, which must be defined in code:
* Reset_Handler : Entry of reset handler
*
* It defines following symbols, which code can use without definition:
* __exidx_start
* __exidx_end
* __etext
* __data_start__
* __preinit_array_start
* __preinit_array_end
* __init_array_start
* __init_array_end
* __fini_array_start
* __fini_array_end
* __data_end__
* __bss_start__
* __bss_end__
* __end__
* end
* __HeapLimit
* __StackLimit
* __StackTop
* __stack
*/
SECTIONS
{
.text :
{
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*))
} > ROM
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > ROM
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > ROM
__exidx_end = .;
__etext = .;
.data : AT (__etext)
{
__data_start__ = .;
*(vtable)
*(.data*)
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(4);
/* All data end */
__data_end__ = .;
} > RAM
.bss (NOLOAD):
{
__bss_start__ = .;
*(.bss*)
*(COMMON)
__bss_end__ = .;
} > RAM
.heap (NOLOAD):
{
__end__ = .;
end = __end__;
*(.heap*)
__HeapLimit = .;
} > RAM
/* .stack_dummy section doesn't contains any symbols. It is only
* used for linker to calculate size of stack sections, and assign
* values to stack symbols later */
.stack_dummy (NOLOAD):
{
*(.stack)
} > RAM
/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}

View File

@ -3,107 +3,204 @@ bin/demoprog_nucleo_stm32f103rb.elf: file format elf32-littlearm
bin/demoprog_nucleo_stm32f103rb.elf
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08006000
start address 0x08002000
Program Header:
LOAD off 0x00000000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x000068f4 memsz 0x000068f4 flags r-x
LOAD off 0x00008000 vaddr 0x20000000 paddr 0x080068f4 align 2**15
filesz 0x00000014 memsz 0x0000016c flags rw-
filesz 0x0000295c memsz 0x0000295c flags r-x
LOAD off 0x00008000 vaddr 0x20000000 paddr 0x0800295c align 2**15
filesz 0x0000001c memsz 0x00000090 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000008f4 08006000 08006000 00006000 2**2
0 .text 0000095c 08002000 08002000 00002000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000014 20000000 080068f4 00008000 2**2
1 .data 0000001c 20000000 0800295c 00008000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000158 20000014 08006908 00008014 2**2
2 .bss 00000074 2000001c 08002978 0000801c 2**2
ALLOC
3 .debug_info 00002ed9 00000000 00000000 00008014 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 00000d36 00000000 00000000 0000aeed 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_loc 00001297 00000000 00000000 0000bc23 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000003c0 00000000 00000000 0000ceba 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000330 00000000 00000000 0000d27a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00001273 00000000 00000000 0000d5aa 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001374 00000000 00000000 0000e81d 2**0
CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0000fb91 2**0
3 .heap 00000800 20000090 20000090 00008020 2**3
CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 0000fbc1 2**0
4 .stack_dummy 00000800 20000090 20000090 00008820 2**3
CONTENTS, READONLY
12 .debug_frame 00000718 00000000 00000000 0000fbf4 2**2
5 .ARM.attributes 00000027 00000000 00000000 00009020 2**0
CONTENTS, READONLY
6 .comment 00000030 00000000 00000000 00009047 2**0
CONTENTS, READONLY
7 .debug_line 00002bc9 00000000 00000000 00009077 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_info 00002f85 00000000 00000000 0000bc40 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00000c5e 00000000 00000000 0000ebc5 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 000003b8 00000000 00000000 0000f828 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 000011cb 00000000 00000000 0000fbe0 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000328 00000000 00000000 00010dab 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_macro 0000d653 00000000 00000000 000110d3 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_str 0004e8a4 00000000 00000000 0001e726 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 0000071c 00000000 00000000 0006cfcc 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08006000 l d .text 00000000 .text
08002000 l d .text 00000000 .text
20000000 l d .data 00000000 .data
20000014 l d .bss 00000000 .bss
2000001c l d .bss 00000000 .bss
20000090 l d .heap 00000000 .heap
20000090 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
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_loc 00000000 .debug_loc
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_macro 00000000 .debug_macro
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 obj/startup_stm32f10x_md.o
00000800 l *ABS* 00000000 Stack_Size
00000800 l *ABS* 00000000 Heap_Size
080021c2 l .text 00000000 .flash_to_ram_loop
080021f4 l .text 00000000 .fill_zero_bss
080021f0 l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
08002958 l O .text 00000000 __EH_FRAME_BEGIN__
080020f0 l F .text 00000000 deregister_tm_clones
08002118 l F .text 00000000 register_tm_clones
08002148 l F .text 00000000 __do_global_dtors_aux
2000001c l .bss 00000000 completed.7922
20000018 l O .data 00000000 __do_global_dtors_aux_fini_array_entry
08002178 l F .text 00000000 frame_dummy
20000020 l .bss 00000000 object.7927
20000014 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 boot.c
08006154 l F .text 00000038 UartReceiveByte
20000014 l O .bss 00000041 xcpCtoReqPacket.6443
20000058 l O .bss 00000001 xcpCtoRxLength.6444
20000059 l O .bss 00000001 xcpCtoRxInProgress.6445
2000005c l O .bss 00000004 xcpCtoRxStartTime.6446
00000000 l df *ABS* 00000000 cstart.c
0800638c l F .text 00000000 zero_loop
08002270 l F .text 00000086 BootComUartInit
080022f8 l F .text 0000002c UartReceiveByte
0800234c l F .text 000000d8 BootComUartCheckActivationRequest
20000038 l O .bss 00000041 xcpCtoReqPacket.6441
2000007c l O .bss 00000001 xcpCtoRxLength.6442
2000007d l O .bss 00000001 xcpCtoRxInProgress.6443
20000080 l O .bss 00000004 xcpCtoRxStartTime.6444
00000000 l df *ABS* 00000000 led.c
20000060 l O .bss 00000004 timer_counter_last.6428
20000064 l O .bss 00000001 led_toggle_state.6427
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 timer.c
20000068 l O .bss 00000004 millisecond_counter
20000084 l O .bss 00000004 timer_counter_last.6426
20000088 l O .bss 00000001 led_toggle_state.6425
00000000 l df *ABS* 00000000 stm32f10x_gpio.c
00000000 l df *ABS* 00000000 stm32f10x_rcc.c
20000000 l O .data 00000004 ADCPrescTable
20000004 l O .data 00000010 APBAHBPrescTable
00000000 l df *ABS* 00000000 stm32f10x_usart.c
00000000 l df *ABS* 00000000 main.c
080027b0 l F .text 00000122 Init
00000000 l df *ABS* 00000000 timer.c
2000008c l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crti.o
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crtn.o
00000000 l df *ABS* 00000000 crtstuff.c
08002958 l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
00000100 l *ABS* 00000000 __STACKSIZE__
08006348 g F .text 00000060 reset_handler
080068e8 g F .text 0000000c USART_GetFlagStatus
080068f4 g .text 00000000 _etext
080065f8 g F .text 00000010 TimerISRHandler
080068e0 g F .text 00000008 USART_ReceiveData
080067a4 g F .text 00000024 RCC_APB2PeriphClockCmd
0800660c g F .text 000000a4 GPIO_Init
080068c4 g F .text 0000001c USART_Cmd
080067c8 g F .text 00000024 RCC_APB1PeriphClockCmd
08006230 g F .text 0000001e BootActivate
2000006c g .bss 00000000 _ebss
08006608 g F .text 00000002 UnusedISR
080063b4 g F .text 0000003e LedInit
080066b0 g F .text 00000004 GPIO_SetBits
080066b8 g F .text 000000ea RCC_GetClocksFreq
080067ec g F .text 000000d8 USART_Init
20000014 g .bss 00000000 _bss
080066b4 g F .text 00000004 GPIO_ResetBits
08006470 g F .text 00000148 main
0800618c g F .text 000000a4 BootComInit
20000000 g .data 00000000 _data
080063f4 g F .text 0000007a LedToggle
2000016c g .bss 00000000 _estack
20000014 g .data 00000000 _edata
08006000 g O .text 00000154 _vectab
08006250 g F .text 000000f8 BootComCheckActivationRequest
2000006c g .bss 00000000 _stack
080065ec g F .text 0000000c TimerGet
080065b8 g F .text 00000034 TimerInit
00000800 l *ABS* 00000000 __HEAP_SIZE
0800295c l .text 00000000 __exidx_end
0800295c l .text 00000000 __exidx_start
00000800 l *ABS* 00000000 __STACK_SIZE
08002222 w F .text 00000002 EXTI2_IRQHandler
20000090 g .heap 00000800 __HeapBase
0800220a w F .text 00000002 DebugMon_Handler
20000000 g .data 00000000 __data_start__
08002248 w F .text 00000002 TIM1_CC_IRQHandler
08002200 w F .text 00000002 HardFault_Handler
08002930 g F .text 00000010 SysTick_Handler
08002214 w F .text 00000002 PVD_IRQHandler
0800220c w F .text 00000002 PendSV_Handler
080021fe w F .text 00000002 NMI_Handler
08002224 w F .text 00000002 EXTI3_IRQHandler
0800295c g .text 00000000 __etext
080027a4 g F .text 0000000c USART_GetFlagStatus
2000001c g O .data 00000000 .hidden __TMC_END__
0800221e w F .text 00000002 EXTI0_IRQHandler
08002254 w F .text 00000002 I2C2_EV_IRQHandler
0800279c g F .text 00000008 USART_ReceiveData
08002206 w F .text 00000002 UsageFault_Handler
08002668 g F .text 00000024 RCC_APB2PeriphClockCmd
08002236 w F .text 00000002 ADC1_2_IRQHandler
080024c8 g F .text 000000aa GPIO_Init
20000890 g .heap 00000000 __HeapLimit
2000001c g .bss 00000000 __bss_start__
08002258 w F .text 00000002 SPI1_IRQHandler
08002780 g F .text 0000001c USART_Cmd
08002216 w F .text 00000002 TAMPER_IRQHandler
0800268c g F .text 00000024 RCC_APB1PeriphClockCmd
0800222e w F .text 00000002 DMA1_Channel4_IRQHandler
08002940 g F .text 00000000 _init
0800232c g F .text 0000001e BootActivate
08002260 w F .text 00000002 USART3_IRQHandler
08002218 w F .text 00000002 RTC_IRQHandler
08002234 w F .text 00000002 DMA1_Channel7_IRQHandler
080021b8 g F .text 00000030 Reset_Handler
0800223c w F .text 00000002 CAN1_RX1_IRQHandler
0800242c g F .text 00000032 LedInit
08002574 g F .text 00000004 GPIO_SetBits
0800224e w F .text 00000002 TIM4_IRQHandler
00000000 w *UND* 00000000 __deregister_frame_info
20000090 g .heap 00000000 end
08002250 w F .text 00000002 I2C1_EV_IRQHandler
2000001c g .data 00000000 __data_end__
00000000 w *UND* 00000000 _ITM_registerTMCloneTable
0800257c g F .text 000000ea RCC_GetClocksFreq
08002232 w F .text 00000002 DMA1_Channel6_IRQHandler
080026b0 g F .text 000000d0 USART_Init
20000090 g .bss 00000000 __bss_end__
0800224c w F .text 00000002 TIM3_IRQHandler
0800221c w F .text 00000002 RCC_IRQHandler
08002246 w F .text 00000002 TIM1_TRG_COM_IRQHandler
08002228 w F .text 00000002 DMA1_Channel1_IRQHandler
08002210 w F .text 00000002 Default_Handler
080021e8 w F .text 00000016 _start
08002262 w F .text 00000002 EXTI15_10_IRQHandler
08002578 g F .text 00000004 GPIO_ResetBits
08002240 w F .text 00000002 EXTI9_5_IRQHandler
00000000 w *UND* 00000000 _ITM_deregisterTMCloneTable
0800225a w F .text 00000002 SPI2_IRQHandler
08002202 w F .text 00000002 MemManage_Handler
08002000 g .text 000000f0 __isr_vector
080028d4 g F .text 00000014 main
08002208 w F .text 00000002 SVC_Handler
20000090 g .heap 00000000 __end__
08002230 w F .text 00000002 DMA1_Channel5_IRQHandler
08002226 w F .text 00000002 EXTI4_IRQHandler
080028e8 g F .text 0000000c TimerSet
0800223a w F .text 00000002 USB_LP_CAN1_RX0_IRQHandler
08002324 g F .text 00000008 BootComInit
0800294c g F .text 00000000 _fini
08002238 w F .text 00000002 USB_HP_CAN1_TX_IRQHandler
0800222c w F .text 00000002 DMA1_Channel3_IRQHandler
20005000 g *ABS* 00000000 __StackTop
08002244 w F .text 00000002 TIM1_UP_IRQHandler
08002212 w F .text 00000002 WWDG_IRQHandler
08002460 g F .text 00000068 LedToggle
0800224a w F .text 00000002 TIM2_IRQHandler
08002242 w F .text 00000002 TIM1_BRK_IRQHandler
08002220 w F .text 00000002 EXTI1_IRQHandler
08002264 w F .text 00000002 RTCAlarm_IRQHandler
20004800 g *ABS* 00000800 __StackLimit
0800225e w F .text 00000002 USART2_IRQHandler
08002256 w F .text 00000002 I2C2_ER_IRQHandler
0800222a w F .text 00000002 DMA1_Channel2_IRQHandler
08002424 g F .text 00000008 BootComCheckActivationRequest
0800223e w F .text 00000002 CAN1_SCE_IRQHandler
0800221a w F .text 00000002 FLASH_IRQHandler
08002204 w F .text 00000002 BusFault_Handler
0800225c w F .text 00000002 USART1_IRQHandler
08002252 w F .text 00000002 I2C1_ER_IRQHandler
08002924 g F .text 0000000c TimerGet
00000000 w *UND* 00000000 _Jv_RegisterClasses
080028f4 g F .text 00000030 TimerInit
00000000 w *UND* 00000000 __register_frame_info
08002266 w F .text 00000002 USBWakeUp_IRQHandler

View File

@ -1,148 +1,154 @@
S027000062696E2F64656D6F70726F675F6E75636C656F5F73746D33326631303372622E737265636D
S315080060006C01002049630008096600080966000853
S315080060100966000809660008096600080966000896
S315080060200966000809660008096600080966000886
S31508006030096600080966000809660008F965000887
S315080060400966000809660008096600080966000866
S315080060500966000809660008096600080966000856
S315080060600966000809660008096600080966000846
S315080060700966000809660008096600080966000836
S315080060800966000809660008096600080966000826
S315080060900966000809660008096600080966000816
S315080060A00966000809660008096600080966000806
S315080060B009660008096600080966000809660008F6
S315080060C009660008096600080966000809660008E6
S315080060D009660008096600080966000809660008D6
S315080060E009660008096600080966000809660008C6
S315080060F009660008096600080966000809660008B6
S3150800610009660008096600080966000809660008A5
S315080061100966000809660008096600080966000895
S315080061200966000809660008096600080966000885
S315080061300966000809660008096600080966000875
S315080061400966000809660008096600080966000865
S31508006150EE11AA5510B504464FF48840C4F2000063
S31508006160202146F6E903C0F60003984701280BD11B
S315080061704FF48840C4F2000046F6E103C0F6000377
S3150800618098472070012010BD002010BD70B586B05C
S315080061904FF40030012146F2C973C0F60003984750
S315080061A00520012146F2A573C0F600039847182377
S315080061B08DF807300426ADF8046003238DF8063001
S315080061C04FF40065C4F2010528460DEB060146F2B8
S315080061D00D64C0F60004A0478DF807600823ADF8E3
S315080061E0043028460DEB0601A0474FF4614302939D
S315080061F00023ADF80C30ADF80E30ADF81030ADF820
S3150800620014300C23ADF812304FF48844C4F200045D
S31508006210204602A946F2ED73C0F6000398472046C9
S31508006220012146F6C503C0F60003984706B070BDBF
S315080062304FF46D42CEF20002D16801F4E061042306
S31508006240C0F2FA530B43D360BFF34F8FFEE700BF8C
S3150800625008B540F25903C2F200031B7843BB40F26B
S315080062601400C2F2000046F25513C0F60003984720
S31508006270012865D140F21403C2F200031B78002BF3
S315080062805ED046F2ED53C0F60003984740F25C0331
S31508006290C2F20003186040F25903C2F20003012259
S315080062A01A7040F25803C2F2000300221A7008BDA1
S315080062B040F25803C2F200031878224B184446F2FB
S315080062C05513C0F600039847012826D140F2580313
S315080062D0C2F200031A780132D2B21A7040F21403DD
S315080062E0C2F200031B7893422AD140F25903C2F244
S315080062F0000300221A7040F21403C2F200035B780E
S31508006300FF2B1DD140F21403C2F200039B78BBB9E0
S3150800631046F23123C0F60003984746F2ED53C0F61D
S315080063200003984740F25C03C2F200031B6864331B
S31508006330984281BF40F25903C2F2000300221A7044
S3150800634008BD00BF1500002010B517498D4640F25C
S315080063500002C2F2000240F21403C2F200039A429B
S3150800636010D2131D0F4CE41A24F00304043400233E
S31508006370104646F6F401C0F600015A581A5004337E
S31508006380A342FAD109480A494FF000028842B8BF29
S3150800639040F8042BFADB46F27143C0F6000398472F
S315080063A010BD00BF170000206C010020140000205B
S315080063B06C00002000B583B00420012146F2A573C5
S315080063C0C0F6000398472023ADF8043003238DF860
S315080063D0063010238DF807304FF40060C4F2010030
S315080063E001A946F20D63C0F60003984703B05DF8AD
S315080063F004FB00BF10B546F2ED53C0F600039847FC
S31508006400044640F26003C2F200031B68C31AB3F5E0
S31508006410FA7F2BD340F26403C2F200031B7883B9D8
S3150800642040F26403C2F2000301221A704FF40060BE
S31508006430C4F20100202146F2B163C0F60003984772
S315080064400FE040F26403C2F2000300221A704FF410
S315080064500060C4F20100202146F2B563C0F60003CD
S31508006460984740F26003C2F200031C6010BD00BFEB
S3150800647000B583B00023009301934FF48053C4F210
S3150800648002031A6842F001021A6059680022CFF620
S31508006490FF020A405A601A6822F0847222F4803297
S315080064A01A601A6822F480221A605A6822F4FE02D8
S315080064B05A604FF41F029A601A6842F480321A60D2
S315080064C04FF48053C4F2020340F2DC511A6802F416
S315080064D000320192009A01320092019A12B9009A8A
S315080064E08A42F3D14FF48053C4F202031B6813F4B3
S315080064F0003F00D1FEE74FF40053C4F202031A68C6
S3150800650042F010021A601A6822F003021A601A682A
S3150800651042F002021A604FF48053C4F202035A682A
S315080065205A605A6842F400525A605A6842F48062C5
S315080065305A605A6822F47C125A605A6842F4E81281
S315080065405A601A6842F080721A604FF48053C4F297
S3150800655002031A6812F0007FFBD04FF48053C4F28E
S3150800656002035A6822F003025A605A6842F002028D
S315080065705A604FF48053C4F202035A6802F00C02C0
S31508006580082AFAD146F2B533C0F60003984746F210
S31508006590B953C0F60003984746F28D13C0F60003B8
S315080065A0984746F2F535C0F6000546F25124C0F67E
S315080065B00004A847A047FCE74EF21003CEF20003FA
S315080065C041F63F12C0F201025A604FF46D42CEF214
S315080065D00002F02182F8231000229A600721196030
S315080065E040F26803C2F200031A60704740F268037B
S315080065F0C2F200031868704740F26803C2F200034B
S315080066001A6801321A607047FEE700BF2DE9F001EB
S31508006610CB7803F00F0513F0100F1CBF8B781D43C2
S315080066200B78F3B10768002301264FF00F0C06FA22
S3150800663003F20C88144094420FD19A000CFA02F81F
S3150800664027EA080705FA02F21743CA78282A08BF74
S31508006650446102D0482A08BF04610133082BE6D1F9
S3150800666007600B88FF2B20D94768002301264FF0C7
S315080066700F0C03F1080206FA02F20C881440944241
S315080066800FD19A000CFA02F827EA080705FA02F26F
S315080066901743CA78282A08BF4461CA78482A08BF17
S315080066A004610133082BE4D14760BDE8F001704767
S315080066B0016170474161704710B44FF48053C4F2CA
S315080066C002035B6803F00C03042B08D0082B0CD0DC
S315080066D09BBB4FF49053C0F27A03036032E04FF449
S315080066E09053C0F27A0303602CE04FF48053C4F24F
S315080066F002035A685B68C2F38342023213F4803F8E
S3150800670007D14FF41063C0F23D0303FB02F20260A7
S3150800671018E04FF48053C4F202035B6813F4003F99
S3150800672019BF4FF41063C0F23D034FF49053C0F203
S315080067307A0303FB02F2026004E04FF49053C0F2BE
S315080067407A0303604FF48053C4F202035968C1F315
S31508006750031140F20402C2F20002515CC9B2046895
S3150800676024FA01F141605C68C4F30224145DE4B2C2
S3150800677021FA04F484605C68C4F3C224125DD2B2C0
S31508006780D140C1605A68C2F3813240F20003C2F2B6
S3150800679000039B5CDBB2B1FBF3F101615DF8044BCE
S315080067A0704700BF39B14FF48053C4F202039A69A7
S315080067B01043986170474FF48053C4F202039A69F4
S315080067C022EA00009861704739B14FF48053C4F249
S315080067D00203DA691043D86170474FF48053C4F254
S315080067E00203DA6922EA0000D861704730B587B03B
S315080067F004460D46038A23F440531B041B0CCA881F
S315080068001343038283890989AA880A4369890A4343
S3150800681023F4B05323F00C031B041B0C13439BB245
S315080068208381838A23F440731B041B0CAA891343B0
S31508006830838201A846F2B963C0F6000398474FF46D
S315080068406053C4F201039C420CBF049A039AA389BD
S315080068501BB2002B02EB820202EB8202BDBF2B6841
S315080068605B00B2FBF3F22968A4BF8900B2FBF1F220
S3150800687048F21F53C5F2EB13A3FB02135B091D0174
S31508006880642003FB1023A08900B200280BDADB0082
S31508006890323348F21F51C5F2EB11A1FB0321C1F3B4
S315080068A0421129430AE01B01323348F21F51C5F24F
S315080068B0EB11A1FB0321C1F34311294389B22181BD
S315080068C007B030BD29B183899BB243F40053838155
S315080068D07047838923F400531B041B0C838170477C
S315080068E08088C0F308007047038819420CBF00204F
S309080068F001207047BE
S315080068F4020406080000000001020304010203045E
S309080069040607080963
S7050800600092
S3150800200000500020B9210008FF210008012200081D
S315080020100322000805220008072200080000000025
S31508002020000000000000000000000000092200086F
S315080020300B220008000000000D22000831290008C4
S315080020401322000815220008172200081922000882
S315080020501B2200081D2200081F2200082122000852
S315080020602322000825220008272200082922000822
S315080020702B2200082D2200082F22000831220008F2
S3150800208033220008352200083722000839220008C2
S315080020903B2200083D2200083F2200084122000892
S315080020A04322000845220008472200084922000862
S315080020B04B2200084D2200084F2200085122000832
S315080020C05322000855220008572200085922000802
S315080020D05B2200085D2200085F22000861220008D2
S315080020E0632200086522000867220008EE11AA5537
S315080020F008B540F21C00074BC2F200001B1A062B5B
S3150800210000D808BD40F20003C0F20003002BF8D047
S315080021109847F6E71F00002008B540F21C0040F279
S315080021201C03C2F20000C2F200031B1A9B1003EB49
S31508002130D373591000D108BD40F20002C0F2000264
S31508002140002AF8D09047F6E710B540F21C04C2F210
S315080021500004237873B9FFF7CBFF40F20003C0F2FF
S3150800216000032BB142F65810C0F60000AFF300800A
S315080021700123237010BD00BF08B540F20003C0F26A
S3150800218000034BB142F6581040F22001C0F6000099
S31508002190C2F20001AFF3008040F21C00C2F2000058
S315080021A003682BB140F20003C0F2000303B198475D
S315080021B0BDE80840B0E700BF06498D460649074A0C
S315080021C0074B9A42BEBF51F8040B42F8040BF8E7D6
S315080021D004480047005000205C2900080000002041
S315080021E01C000020E92100081F49204A002301E0BD
S315080021F041F8043B9142FBD300F06CFBFEE7FEE797
S31508002200FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE798
S31508002210FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE788
S31508002220FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE778
S31508002230FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE768
S31508002240FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE758
S31508002250FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE748
S31508002260FEE7FEE7FEE7FEE71C00002090000020E0
S3150800227030B587B04FF40030012100F007FA052089
S31508002280012100F0F1F918238DF817300425ADF86F
S31508002290145003238DF816304FF40064C4F2010479
S315080022A0204605A900F010F98DF817500823ADF857
S315080022B01430204605A900F007F94FF4614301934D
S315080022C00023ADF80830ADF80A30ADF80C30ADF89B
S315080022D010300C23ADF80E304FF48844C4F20004D5
S315080022E020460DEB050100F0E3F92046012100F038
S315080022F047FA07B030BD00BF10B504464FF4884012
S31508002300C4F20000202100F04DFA012808D14FF44C
S315080023108840C4F2000000F041FA2070012010BD88
S31508002320002010BD08B5FFF7A3FF08BD4FF46D42A6
S31508002330CEF20002D16801F4E0610423C0F2FA5338
S315080023400B43D360BFF34F8FFEE700BF08B540F2DB
S315080023507D03C2F200031B7813BB40F23800C2F2B9
S315080023600000FFF7C9FF012859D140F23803C2F22D
S3150800237000031B78002B52D000F0D4FA40F28003F9
S31508002380C2F20003186040F27D03C2F20003012284
S315080023901A7040F27C03C2F2000300221A7008BDCC
S315080023A040F27C03C2F200031B781D481844FFF76D
S315080023B0A3FF012823D140F27C03C2F200031A7856
S315080023C00132D2B21A7040F23803C2F200031B7807
S315080023D09A4224D140F27D03C2F2000300221A7009
S315080023E040F23803C2F200035B78FF2B17D140F2A4
S315080023F03803C2F200039B788BB9FFF797FF00F00A
S3150800240091FA40F28003C2F200031B6864339842D3
S3150800241081BF40F27D03C2F2000300221A7008BD94
S315080024203900002008B5FFF791FF08BD00B583B055
S315080024300420012100F018F92023ADF80430032305
S315080024408DF8063010238DF807304FF40060C4F27B
S31508002450010001A900F038F803B05DF804FB00BFDD
S3150800246010B500F05FFA044640F28403C2F2000396
S315080024701B68C31AB3F5FA7F25D340F28803C2F264
S3150800248000031B786BB940F28803C2F200030122ED
S315080024901A704FF40060C4F20100202100F06AF8B7
S315080024A00CE040F28803C2F2000300221A704FF4CF
S315080024B00060C4F20100202100F05EF840F28403B7
S315080024C0C2F200031C6010BD2DE9F001CB7803F0C1
S315080024D00F02164613F0100F1CBF8E7816430B78A2
S315080024E0FBB10768002301254FF00F0C16E005FA2B
S315080024F003F20C88144094420FD19C000CFA04F89D
S3150800250027EA080706FA04F42743CC78282C08BFDC
S31508002510426102D0482C08BF02610133072BE6D975
S3150800252007600B88FF2B21D94768002301254FF048
S315080025300F0C18E003F1080205FA02F20C881440A1
S3150800254094420FD19C000CFA04F827EA080706FA09
S3150800255004F42743CC78282C08BF4261CC78482C51
S3150800256008BF02610133072BE4D94760BDE8F001D3
S31508002570704700BF016170474161704710B44FF45E
S315080025808053C4F202035B6803F00C03042B08D0E3
S31508002590082B0CD09BBB4FF49053C0F27A03036010
S315080025A032E04FF49053C0F27A0303602CE04FF404
S315080025B08053C4F202035A685B68C2F3834202324C
S315080025C013F4803F07D14FF41063C0F23D0303FBB9
S315080025D002F2026018E04FF48053C4F202035B680B
S315080025E013F4003F19BF4FF41063C0F23D034FF4D4
S315080025F09053C0F27A0303FB02F2026004E04FF440
S315080026009053C0F27A0303604FF48053C4F2020376
S315080026105968C1F3031140F20402C2F20002515C88
S31508002620C9B2046824FA01F141605C68C4F3022463
S31508002630145DE4B221FA04F484605C68C4F3C2242D
S31508002640125DD2B2D140C1605A68C2F3813240F2FB
S315080026500003C2F200039B5CDBB2B1FBF3F101613C
S315080026605DF8044B704700BF39B14FF48053C4F28C
S3150800267002039A691043986170474FF48053C4F275
S3150800268002039A6922EA00009861704739B14FF44B
S315080026908053C4F20203DA691043D86170474FF4D5
S315080026A08053C4F20203DA6922EA0000D86170474F
S315080026B030B587B004460D46038A23F440531B04FD
S315080026C01B0CCA8813430382838923F4B05323F06F
S315080026D00C031B041B0C88880A89498902430A4390
S315080026E01343A381A38A23F440731B041B0CAA89F2
S315080026F01343A38201A8FFF741FF4FF46053C4F2C6
S3150800270001039C420CBF049A039AA3891BB2002BAF
S3150800271002EB820202EB8202BDBF2B685B00B2FBB2
S31508002720F3F22968A4BF8900B2FBF1F248F21F53FD
S31508002730C5F2EB13A3FB02135B091D01642003FB1F
S315080027401023A08900B200280BDADB00323348F2E6
S315080027501F51C5F2EB11A1FB0321C1F34211294315
S315080027600AE01B01323348F21F51C5F2EB11A1FBF7
S315080027700321C1F34311294389B2218107B030BD32
S3150800278029B183899BB243F40053838170478389B7
S3150800279023F400531B041B0C838170478088C0F305
S315080027A00800704700880840003018BF01207047AD
S315080027B000B583B00023019300934FF48053C4F20D
S315080027C002031A6842F001021A6059680022CFF61D
S315080027D0FF020A405A601A6822F0847222F4803294
S315080027E01A601A6822F480221A605A6822F4FE02D5
S315080027F05A604FF41F029A601A6842F480321A60CF
S315080028004FF48053C4F2020340F2DC511A6802F412
S3150800281000320092019A01320192009A12B9019A85
S315080028208A42F3D14FF48053C4F202031B6813F4AF
S31508002830003F00D1FEE74FF40053C4F202031A68C2
S3150800284042F010021A601A6822F003021A601A6827
S3150800285042F002021A604FF48053C4F202035A6827
S315080028605A605A6842F400525A605A6842F48062C2
S315080028705A605A6822F47C125A605A6842F4E8127E
S315080028805A601A6842F080721A604FF48053C4F294
S3150800289002031A6812F0007FFBD04FF48053C4F28B
S315080028A002035A6822F003025A605A6842F002028A
S315080028B05A604FF48053C4F202035A6802F00C02BD
S315080028C0082AFAD1FFF7B2FD00F014F803B05DF854
S315080028D004FB00BF08B5FFF76BFFFFF723FDFFF703
S315080028E0BFFDFFF79FFDFAE740F28C03C2F2000333
S315080028F01860704708B54EF21003CEF2000341F691
S315080029003F12C0F201025A604FF46D42CEF2000245
S31508002910F02182F823100020986007221A60FFF73A
S31508002920E3FF08BD40F28C03C2F200031868704743
S3150800293040F28C03C2F200031A6801321A6070472B
S31508002940F8B500BFF8BC08BC9E467047F8B500BF8E
S31108002950F8BC08BC9E467047000000005A
S3150800295C0204060800000000010203040102030435
S3110800296C0607080979210008492100081F
S70508002000D2

View File

@ -1,89 +0,0 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Nucleo_F103RB_GCC\Prog\cstart.c
* \brief Demo program C startup source file.
* \ingroup Prog_ARMCM3_STM32F1_Nucleo_F103RB_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
/****************************************************************************************
* External function protoypes
****************************************************************************************/
extern int main(void);
/****************************************************************************************
* External data declarations
****************************************************************************************/
/* these externals are declared by the linker */
extern unsigned long _etext;
extern unsigned long _data;
extern unsigned long _edata;
extern unsigned long _bss;
extern unsigned long _ebss;
extern unsigned long _estack;
/************************************************************************************//**
** \brief Reset interrupt service routine. Configures the stack, initializes
** RAM and jumps to function main.
** \return none.
**
****************************************************************************************/
void reset_handler(void)
{
unsigned long *pSrc, *pDest;
/* initialize stack pointer */
__asm(" ldr r1, =_estack\n"
" mov sp, r1");
/* copy the data segment initializers from flash to SRAM */
pSrc = &_etext;
for(pDest = &_data; pDest < &_edata; )
{
*pDest++ = *pSrc++;
}
/* zero fill the bss segment. this is done with inline assembly since this will
* clear the value of pDest if it is not kept in a register.
*/
__asm(" ldr r0, =_bss\n"
" ldr r1, =_ebss\n"
" mov r2, #0\n"
" .thumb_func\n"
"zero_loop:\n"
" cmp r0, r1\n"
" it lt\n"
" strlt r2, [r0], #4\n"
" blt zero_loop");
/* start the software application by calling its entry point */
main();
} /*** end of reset_handler ***/
/************************************ end of cstart.c **********************************/

View File

@ -1,11 +1,11 @@
#****************************************************************************************
#| Description: Makefile for STM32 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) 2011 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,144 +25,103 @@
#****************************************************************************************
SHELL = sh
#|---------------------------------------------------------------------------------------|
#| Configure project name |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Configure project name |
#|--------------------------------------------------------------------------------------|
PROJ_NAME=demoprog_nucleo_stm32f103rb
#|---------------------------------------------------------------------------------------|
#| 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/stdperiphlib/stm32f10x_conf.h \
lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c \
lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c
#|--------------------------------------------------------------------------------------|
#| Configure tool path |
#|--------------------------------------------------------------------------------------|
TOOL_PATH=
#|---------------------------------------------------------------------------------------|
#| 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 |
#|---------------------------------------------------------------------------------------|
PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
#|--------------------------------------------------------------------------------------|
#| Toolchain binaries |
#|--------------------------------------------------------------------------------------|
RM = cs-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.
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 STM32F10X_MD -D USE_STDPERIPH_DRIVER -D VECT_TAB_FLASH -D GCC_ARMCM3
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 |
#|--------------------------------------------------------------------------------------|
HEAP_SIZE = 0x0800
STACK_SIZE = 0x0800
STDFLAGS = -mcpu=cortex-m3 -mthumb -fno-strict-aliasing
STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3
OPTFLAGS = -Og
CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3
CFLAGS += -D__HEAP_SIZE=$(HEAP_SIZE) -D__STACK_SIZE=$(STACK_SIZE)
CFLAGS += $(INC_PATH)
AFLAGS = $(CFLAGS)
LFLAGS = $(STDFLAGS) $(OPTFLAGS)
LFLAGS += -Wl,--defsym=__HEAP_SIZE=$(HEAP_SIZE) -Wl,--defsym=__STACK_SIZE=$(STACK_SIZE)
LFLAGS += -Wl,-script="stm32f103rb_flash.ld" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
LFLAGS += -Wl,--gc-sections $(LIB_PATH)
OFLAGS = -O srec
ODFLAGS = -x
SZFLAGS = -B -d
RMFLAGS = -f
#|---------------------------------------------------------------------------------------|
#| Specify library files |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Specify library files |
#|--------------------------------------------------------------------------------------|
LIBS =
#|---------------------------------------------------------------------------------------|
#| Define targets |
#|---------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
#|--------------------------------------------------------------------------------------|
#| 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
@ -174,31 +133,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 |
#|---------------------------------------------------------------------------------------|
$(AOBJS): %.o: %.s $(PROJ_CHDRS)
#|--------------------------------------------------------------------------------------|
#| 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

@ -1,37 +0,0 @@
MEMORY
{
FLASH (rx) : ORIGIN = 0x08006000, LENGTH = 104K
SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
SECTIONS
{
__STACKSIZE__ = 256;
.text :
{
KEEP(*(.isr_vector))
*(.text*)
*(.rodata*)
_etext = .;
} > FLASH
.data : AT (ADDR(.text) + SIZEOF(.text))
{
_data = .;
*(vtable)
*(.data*)
_edata = .;
} > SRAM
.bss :
{
_bss = .;
*(.bss*)
*(COMMON)
_ebss = .;
_stack = .;
. = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4);
_estack = .;
} > SRAM
}

View File

@ -0,0 +1,286 @@
/* File: startup_ARMCM3.S
* Purpose: startup file for Cortex-M3 devices. Should use with
* GCC for ARM Embedded Processors
* Version: V1.3
* Date: 08 Feb 2012
*
* Copyright (c) 2012, ARM Limited
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the ARM Limited nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES//
* LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.syntax unified
.arch armv7-m
.section .stack
.align 3
#ifdef __STACK_SIZE
.equ Stack_Size, __STACK_SIZE
#else
.equ Stack_Size, 0x400
#endif
.globl __StackTop
.globl __StackLimit
__StackLimit:
.space Stack_Size
.size __StackLimit, . - __StackLimit
__StackTop:
.size __StackTop, . - __StackTop
.section .heap
.align 3
#ifdef __HEAP_SIZE
.equ Heap_Size, __HEAP_SIZE
#else
.equ Heap_Size, 0xC00
#endif
.globl __HeapBase
.globl __HeapLimit
__HeapBase:
.if Heap_Size
.space Heap_Size
.endif
.size __HeapBase, . - __HeapBase
__HeapLimit:
.size __HeapLimit, . - __HeapLimit
.section .isr_vector
.align 2
.globl __isr_vector
__isr_vector:
.long __StackTop /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
.long MemManage_Handler /* MPU Fault Handler */
.long BusFault_Handler /* Bus Fault Handler */
.long UsageFault_Handler /* Usage Fault Handler */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long SVC_Handler /* SVCall Handler */
.long DebugMon_Handler /* Debug Monitor Handler */
.long 0 /* Reserved */
.long PendSV_Handler /* PendSV Handler */
.long SysTick_Handler /* SysTick Handler */
// External Interrupts
.long WWDG_IRQHandler // Window Watchdog
.long PVD_IRQHandler // PVD through EXTI Line detect
.long TAMPER_IRQHandler // Tamper
.long RTC_IRQHandler // RTC
.long FLASH_IRQHandler // Flash
.long RCC_IRQHandler // RCC
.long EXTI0_IRQHandler // EXTI Line 0
.long EXTI1_IRQHandler // EXTI Line 1
.long EXTI2_IRQHandler // EXTI Line 2
.long EXTI3_IRQHandler // EXTI Line 3
.long EXTI4_IRQHandler // EXTI Line 4
.long DMA1_Channel1_IRQHandler // DMA1 Channel 1
.long DMA1_Channel2_IRQHandler // DMA1 Channel 2
.long DMA1_Channel3_IRQHandler // DMA1 Channel 3
.long DMA1_Channel4_IRQHandler // DMA1 Channel 4
.long DMA1_Channel5_IRQHandler // DMA1 Channel 5
.long DMA1_Channel6_IRQHandler // DMA1 Channel 6
.long DMA1_Channel7_IRQHandler // DMA1 Channel 7
.long ADC1_2_IRQHandler // ADC1_2
.long USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
.long USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
.long CAN1_RX1_IRQHandler // CAN1 RX1
.long CAN1_SCE_IRQHandler // CAN1 SCE
.long EXTI9_5_IRQHandler // EXTI Line 9..5
.long TIM1_BRK_IRQHandler // TIM1 Break
.long TIM1_UP_IRQHandler // TIM1 Update
.long TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
.long TIM1_CC_IRQHandler // TIM1 Capture Compare
.long TIM2_IRQHandler // TIM2
.long TIM3_IRQHandler // TIM3
.long TIM4_IRQHandler // TIM4
.long I2C1_EV_IRQHandler // I2C1 Event
.long I2C1_ER_IRQHandler // I2C1 Error
.long I2C2_EV_IRQHandler // I2C2 Event
.long I2C2_ER_IRQHandler // I2C2 Error
.long SPI1_IRQHandler // SPI1
.long SPI2_IRQHandler // SPI2
.long USART1_IRQHandler // USART1
.long USART2_IRQHandler // USART2
.long USART3_IRQHandler // USART3
.long EXTI15_10_IRQHandler // EXTI Line 15..10
.long RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
.long USBWakeUp_IRQHandler // USB Wakeup from suspend
.long 0x55AA11EE // Reserved for OpenBLT checksum
.size __isr_vector, . - __isr_vector
.text
.thumb
.thumb_func
.align 2
.globl Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Initialize the stackpointer. this is done automatically after a reset event, but
* this program is started by the bootloader and not a reset event. */
ldr r1, =__StackTop
mov sp, r1
/* Loop to copy data from read only memory to RAM. The ranges
* of copy from/to are specified by following symbols evaluated in
* linker script.
* __etext: End of code section, i.e., begin of data sections to copy from.
* __data_start__/__data_end__: RAM address range that data should be
* copied to. Both must be aligned to 4 bytes boundary. */
ldr r1, =__etext
ldr r2, =__data_start__
ldr r3, =__data_end__
#if 1
/* Here are two copies of loop implemenations. First one favors code size
* and the second one favors performance. Default uses the first one.
* Change to "#if 0" to use the second one */
.flash_to_ram_loop:
cmp r2, r3
ittt lt
ldrlt r0, [r1], #4
strlt r0, [r2], #4
blt .flash_to_ram_loop
#else
subs r3, r2
ble .flash_to_ram_loop_end
.flash_to_ram_loop:
subs r3, #4
ldr r0, [r1, r3]
str r0, [r2, r3]
bgt .flash_to_ram_loop
.flash_to_ram_loop_end:
#endif
#define __NO_SYSTEM_INIT
#ifndef __NO_SYSTEM_INIT
ldr r0, =SystemInit
blx r0
#endif
ldr r0, =_start
bx r0
.pool
.size Reset_Handler, . - Reset_Handler
/* Our weak _start alternative if we don't use the library _start
* The zero init section must be cleared, otherwise the librtary is
* doing that */
.align 1
.thumb_func
.weak _start
.type _start, %function
_start:
/* Zero fill the bss segment. */
ldr r1, = __bss_start__
ldr r2, = __bss_end__
movs r3, #0
b .fill_zero_bss
.loop_zero_bss:
str r3, [r1], #4
.fill_zero_bss:
cmp r1, r2
bcc .loop_zero_bss
/* Jump to our main */
bl main
b .
.size _start, . - _start
/* Macro to define default handlers. Default handler
* will be weak symbol and just dead loops. They can be
* overwritten by other handlers */
.macro def_irq_handler handler_name
.align 1
.thumb_func
.weak \handler_name
.type \handler_name, %function
\handler_name :
b .
.size \handler_name, . - \handler_name
.endm
def_irq_handler NMI_Handler
def_irq_handler HardFault_Handler
def_irq_handler MemManage_Handler
def_irq_handler BusFault_Handler
def_irq_handler UsageFault_Handler
def_irq_handler SVC_Handler
def_irq_handler DebugMon_Handler
def_irq_handler PendSV_Handler
def_irq_handler SysTick_Handler
def_irq_handler Default_Handler
// External Interrupts
def_irq_handler WWDG_IRQHandler // Window Watchdog
def_irq_handler PVD_IRQHandler // PVD through EXTI Line detect
def_irq_handler TAMPER_IRQHandler // Tamper
def_irq_handler RTC_IRQHandler // RTC
def_irq_handler FLASH_IRQHandler // Flash
def_irq_handler RCC_IRQHandler // RCC
def_irq_handler EXTI0_IRQHandler // EXTI Line 0
def_irq_handler EXTI1_IRQHandler // EXTI Line 1
def_irq_handler EXTI2_IRQHandler // EXTI Line 2
def_irq_handler EXTI3_IRQHandler // EXTI Line 3
def_irq_handler EXTI4_IRQHandler // EXTI Line 4
def_irq_handler DMA1_Channel1_IRQHandler // DMA1 Channel 1
def_irq_handler DMA1_Channel2_IRQHandler // DMA1 Channel 2
def_irq_handler DMA1_Channel3_IRQHandler // DMA1 Channel 3
def_irq_handler DMA1_Channel4_IRQHandler // DMA1 Channel 4
def_irq_handler DMA1_Channel5_IRQHandler // DMA1 Channel 5
def_irq_handler DMA1_Channel6_IRQHandler // DMA1 Channel 6
def_irq_handler DMA1_Channel7_IRQHandler // DMA1 Channel 7
def_irq_handler ADC1_2_IRQHandler // ADC1_2
def_irq_handler USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
def_irq_handler USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
def_irq_handler CAN1_RX1_IRQHandler // CAN1 RX1
def_irq_handler CAN1_SCE_IRQHandler // CAN1 SCE
def_irq_handler EXTI9_5_IRQHandler // EXTI Line 9..5
def_irq_handler TIM1_BRK_IRQHandler // TIM1 Break
def_irq_handler TIM1_UP_IRQHandler // TIM1 Update
def_irq_handler TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
def_irq_handler TIM1_CC_IRQHandler // TIM1 Capture Compare
def_irq_handler TIM2_IRQHandler // TIM2
def_irq_handler TIM3_IRQHandler // TIM3
def_irq_handler TIM4_IRQHandler // TIM4
def_irq_handler I2C1_EV_IRQHandler // I2C1 Event
def_irq_handler I2C1_ER_IRQHandler // I2C1 Error
def_irq_handler I2C2_EV_IRQHandler // I2C2 Event
def_irq_handler I2C2_ER_IRQHandler // I2C2 Error
def_irq_handler SPI1_IRQHandler // SPI1
def_irq_handler SPI2_IRQHandler // SPI2
def_irq_handler USART1_IRQHandler // USART1
def_irq_handler USART2_IRQHandler // USART2
def_irq_handler USART3_IRQHandler // USART3
def_irq_handler EXTI15_10_IRQHandler // EXTI Line 15..10
def_irq_handler RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
def_irq_handler USBWakeUp_IRQHandler // USB Wakeup from suspend
.end

View File

@ -0,0 +1,183 @@
/* ---------------------------------------------------------------------------- */
/* Em::Blocks embedded development Support */
/* ---------------------------------------------------------------------------- */
/* Copyright (c) 2014, EmBlocks */
/* */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following condition is met: */
/* */
/* - Redistributions of source code must retain the above copyright notice, */
/* this list of conditions and the disclaimer below. */
/* */
/* EmBlocks's name may not be used to endorse or promote products derived from */
/* this software without specific prior written permission. */
/* */
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY EBLOCKS "AS IS" AND ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
/* DISCLAIMED. IN NO EVENT SHALL EMBLOCKS BE LIABLE FOR ANY DIRECT, INDIRECT, */
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* ---------------------------------------------------------------------------- */
/*------------------------------------------------------------------------------
* Linker script for running in internal FLASH on the STM32F103RB
*----------------------------------------------------------------------------*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
/* reserve space for the OpenBLT bootloader which occupies the first part
* of flash.
*/
ROM (rx) : ORIGIN = 0x08002000, LENGTH = 128K-8K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.
* It references following symbols, which must be defined in code:
* Reset_Handler : Entry of reset handler
*
* It defines following symbols, which code can use without definition:
* __exidx_start
* __exidx_end
* __etext
* __data_start__
* __preinit_array_start
* __preinit_array_end
* __init_array_start
* __init_array_end
* __fini_array_start
* __fini_array_end
* __data_end__
* __bss_start__
* __bss_end__
* __end__
* end
* __HeapLimit
* __StackLimit
* __StackTop
* __stack
*/
SECTIONS
{
.text :
{
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*))
} > ROM
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > ROM
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > ROM
__exidx_end = .;
__etext = .;
.data : AT (__etext)
{
__data_start__ = .;
*(vtable)
*(.data*)
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(4);
/* All data end */
__data_end__ = .;
} > RAM
.bss (NOLOAD):
{
__bss_start__ = .;
*(.bss*)
*(COMMON)
__bss_end__ = .;
} > RAM
.heap (NOLOAD):
{
__end__ = .;
end = __end__;
*(.heap*)
__HeapLimit = .;
} > RAM
/* .stack_dummy section doesn't contains any symbols. It is only
* used for linker to calculate size of stack sections, and assign
* values to stack symbols later */
.stack_dummy (NOLOAD):
{
*(.stack)
} > RAM
/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}

View File

@ -96,11 +96,11 @@ unsigned long TimerGet(void)
** \return none.
**
****************************************************************************************/
void TimerISRHandler(void)
void SysTick_Handler(void)
{
/* increment the millisecond counter */
millisecond_counter++;
} /*** end of TimerISRHandler ***/
} /*** end of SysTick_Handler ***/
/*********************************** end of timer.c ************************************/

View File

@ -35,7 +35,6 @@ void TimerInit(void);
void TimerDeinit(void);
void TimerSet(unsigned long timer_value);
unsigned long TimerGet(void);
void TimerISRHandler(void);
#endif /* TIMER_H */
/*********************************** end of timer.h ************************************/

View File

@ -1,164 +0,0 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Nucleo_F103RB_GCC\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARMCM3_STM32F1_Nucleo_F103RB_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
/****************************************************************************************
* External functions
****************************************************************************************/
extern void reset_handler(void); /* implemented in cstart.c */
/****************************************************************************************
* External data declarations
****************************************************************************************/
/** \brief Stack end address (memory.x) */
extern unsigned long _estack;
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
{
/* unexpected interrupt occured, so halt the system */
while (1) { ; }
} /*** end of UnusedISR ***/
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /**< for ISR function pointers */
unsigned long ptr; /**< for stack pointer entry */
}tIsrFunc;
/** \brief Interrupt vector table. */
__attribute__ ((section(".isr_vector")))
const tIsrFunc _vectab[] =
{
{ .ptr = (unsigned long)&_estack }, /* the initial stack pointer */
{ reset_handler }, /* the reset handler */
{ UnusedISR }, /* NMI Handler */
{ UnusedISR }, /* Hard Fault Handler */
{ UnusedISR }, /* MPU Fault Handler */
{ UnusedISR }, /* Bus Fault Handler */
{ UnusedISR }, /* Usage Fault Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* SVCall Handler */
{ UnusedISR }, /* Debug Monitor Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* PendSV Handler */
{ TimerISRHandler }, /* SysTick Handler */
{ UnusedISR }, /* Window Watchdog */
{ UnusedISR }, /* PVD through EXTI Line detect */
{ UnusedISR }, /* Tamper */
{ UnusedISR }, /* RTC */
{ UnusedISR }, /* Flash */
{ UnusedISR }, /* RCC */
{ UnusedISR }, /* EXTI Line 0 */
{ UnusedISR }, /* EXTI Line 1 */
{ UnusedISR }, /* EXTI Line 2 */
{ UnusedISR }, /* EXTI Line 3 */
{ UnusedISR }, /* EXTI Line 4 */
{ UnusedISR }, /* DMA1 Channel 1 */
{ UnusedISR }, /* DMA1 Channel 2 */
{ UnusedISR }, /* DMA1 Channel 3 */
{ UnusedISR }, /* DMA1 Channel 4 */
{ UnusedISR }, /* DMA1 Channel 5 */
{ UnusedISR }, /* DMA1 Channel 6 */
{ UnusedISR }, /* DMA1 Channel 7 */
{ UnusedISR }, /* ADC1 and ADC2 */
{ UnusedISR }, /* CAN1 TX */
{ UnusedISR }, /* CAN1 RX0 */
{ UnusedISR }, /* CAN1 RX1 */
{ UnusedISR }, /* CAN1 SCE */
{ UnusedISR }, /* EXTI Line 9..5 */
{ UnusedISR }, /* TIM1 Break */
{ UnusedISR }, /* TIM1 Update */
{ UnusedISR }, /* TIM1 Trigger and Commutation */
{ UnusedISR }, /* TIM1 Capture Compare */
{ UnusedISR }, /* TIM2 */
{ UnusedISR }, /* TIM3 */
{ UnusedISR }, /* TIM4 */
{ UnusedISR }, /* I2C1 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* I2C2 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* SPI1 */
{ UnusedISR }, /* SPI2 */
{ UnusedISR }, /* USART1 */
{ UnusedISR }, /* USART2 */
{ UnusedISR }, /* USART3 */
{ UnusedISR }, /* EXTI Line 15..10 */
{ UnusedISR }, /* RTC alarm through EXTI line */
{ UnusedISR }, /* USB OTG FS Wakeup */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* TIM5 */
{ UnusedISR }, /* SPI3 */
{ UnusedISR }, /* UART4 */
{ UnusedISR }, /* UART5 */
{ UnusedISR }, /* TIM6 */
{ UnusedISR }, /* TIM7 */
{ UnusedISR }, /* DMA2 Channel1 */
{ UnusedISR }, /* DMA2 Channel2 */
{ UnusedISR }, /* DMA2 Channel3 */
{ UnusedISR }, /* DMA2 Channel4 */
{ UnusedISR }, /* DMA2 Channel5 */
{ UnusedISR }, /* Ethernet */
{ UnusedISR }, /* Ethernet Wakeup */
{ UnusedISR }, /* CAN2 TX */
{ UnusedISR }, /* CAN2 RX0 */
{ UnusedISR }, /* CAN2 RX1 */
{ UnusedISR }, /* CAN2 SCE */
{ UnusedISR }, /* USB OTG FS */
{ (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */
};
/************************************ end of vectors.c *********************************/

View File

@ -177,9 +177,6 @@ Discarded input sections
.bss.ResumeS 0x00000000 0x2 THUMB Debug/../../obj/usb_pwr.o
.data.fSuspendEnabled
0x00000000 0x1 THUMB Debug/../../obj/usb_pwr.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
@ -245,6 +242,9 @@ Discarded input sections
0x00000000 0x14 THUMB Debug/../../obj/usb.o
.text.UsbLeaveLowPowerMode
0x00000000 0x24 THUMB Debug/../../obj/usb.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.data 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/assert.o
@ -2107,7 +2107,7 @@ Memory Configuration
Name Origin Length Attributes
UNPLACED_SECTIONS 0xffffffff 0x00000000 xw
SRAM 0x20000000 0x00002000 xw
FLASH 0x08000000 0x00006000 xr
FLASH 0x08000000 0x00004000 xr
*default* 0x00000000 0xffffffff
Linker script and memory map
@ -2117,7 +2117,7 @@ Linker script and memory map
0x20000000 __SRAM_segment_start__ = 0x20000000
0x20002000 __SRAM_segment_end__ = 0x20002000
0x08000000 __FLASH_segment_start__ = 0x8000000
0x08006000 __FLASH_segment_end__ = 0x8006000
0x08004000 __FLASH_segment_end__ = 0x8004000
0x00000200 __STACKSIZE__ = 0x200
0x00000000 __STACKSIZE_PROCESS__ = 0x0
0x00000000 __STACKSIZE_IRQ__ = 0x0
@ -2157,7 +2157,7 @@ Linker script and memory map
0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= __FLASH_segment_end__)), error: .init is too large to fit in FLASH memory segment)
0x08000258 __text_load_start__ = ALIGN (__init_end__, 0x4)
.text 0x08000258 0x20c4
.text 0x08000258 0x20c8
0x08000258 __text_start__ = .
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
.glue_7 0x08000258 0x0 linker stubs
@ -2338,160 +2338,160 @@ Linker script and memory map
0x08001544 Bulk_GetBulkDescriptor
.text.PowerOn 0x08001554 0x30 THUMB Debug/../../obj/usb_pwr.o
0x08001554 PowerOn
.text.CpuIrqDisable
0x08001584 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001584 CpuIrqDisable
.text.CpuIrqEnable
0x08001588 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001588 CpuIrqEnable
.text.UnusedISR
0x0800158c 0x10 THUMB Debug/../../obj/vectors.o
0x0800158c UnusedISR
.text.CpuInit 0x0800159c 0x8 THUMB Debug/../../obj/cpu.o
0x0800159c CpuInit
0x08001584 0x10 THUMB Debug/../../obj/vectors.o
0x08001584 UnusedISR
.text.CpuInit 0x08001594 0x8 THUMB Debug/../../obj/cpu.o
0x08001594 CpuInit
.text.CpuStartUserProgram
0x080015a4 0x38 THUMB Debug/../../obj/cpu.o
0x080015a4 CpuStartUserProgram
0x0800159c 0x38 THUMB Debug/../../obj/cpu.o
0x0800159c CpuStartUserProgram
.text.CpuMemCopy
0x080015dc 0x24 THUMB Debug/../../obj/cpu.o
0x080015dc CpuMemCopy
0x080015d4 0x24 THUMB Debug/../../obj/cpu.o
0x080015d4 CpuMemCopy
.text.FlashLock
0x08001600 0x10 THUMB Debug/../../obj/flash.o
0x080015f8 0x10 THUMB Debug/../../obj/flash.o
.text.FlashGetSector
0x08001610 0x38 THUMB Debug/../../obj/flash.o
0x08001608 0x3c THUMB Debug/../../obj/flash.o
.text.FlashWriteBlock
0x08001648 0xb4 THUMB Debug/../../obj/flash.o
0x08001644 0xb4 THUMB Debug/../../obj/flash.o
.text.FlashSwitchBlock
0x080016fc 0x58 THUMB Debug/../../obj/flash.o
0x080016f8 0x58 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
0x08001754 0x84 THUMB Debug/../../obj/flash.o
0x08001750 0x84 THUMB Debug/../../obj/flash.o
.text.FlashInit
0x080017d8 0x18 THUMB Debug/../../obj/flash.o
0x080017d8 FlashInit
0x080017d4 0x18 THUMB Debug/../../obj/flash.o
0x080017d4 FlashInit
.text.FlashWrite
0x080017f0 0x50 THUMB Debug/../../obj/flash.o
0x080017f0 FlashWrite
0x080017ec 0x50 THUMB Debug/../../obj/flash.o
0x080017ec FlashWrite
.text.FlashErase
0x08001840 0x148 THUMB Debug/../../obj/flash.o
0x08001840 FlashErase
0x0800183c 0x148 THUMB Debug/../../obj/flash.o
0x0800183c FlashErase
.text.FlashWriteChecksum
0x08001988 0x50 THUMB Debug/../../obj/flash.o
0x08001988 FlashWriteChecksum
0x08001984 0x50 THUMB Debug/../../obj/flash.o
0x08001984 FlashWriteChecksum
.text.FlashVerifyChecksum
0x080019d8 0x50 THUMB Debug/../../obj/flash.o
0x080019d8 FlashVerifyChecksum
0x080019d4 0x50 THUMB Debug/../../obj/flash.o
0x080019d4 FlashVerifyChecksum
.text.FlashDone
0x08001a28 0x3c THUMB Debug/../../obj/flash.o
0x08001a28 FlashDone
0x08001a24 0x3c THUMB Debug/../../obj/flash.o
0x08001a24 FlashDone
.text.FlashGetUserProgBaseAddress
0x08001a64 0x8 THUMB Debug/../../obj/flash.o
0x08001a64 FlashGetUserProgBaseAddress
.text.NvmInit 0x08001a6c 0x8 THUMB Debug/../../obj/nvm.o
0x08001a6c NvmInit
0x08001a60 0x8 THUMB Debug/../../obj/flash.o
0x08001a60 FlashGetUserProgBaseAddress
.text.NvmInit 0x08001a68 0x8 THUMB Debug/../../obj/nvm.o
0x08001a68 NvmInit
.text.NvmWrite
0x08001a74 0x8 THUMB Debug/../../obj/nvm.o
0x08001a74 NvmWrite
0x08001a70 0x8 THUMB Debug/../../obj/nvm.o
0x08001a70 NvmWrite
.text.NvmErase
0x08001a7c 0x8 THUMB Debug/../../obj/nvm.o
0x08001a7c NvmErase
0x08001a78 0x8 THUMB Debug/../../obj/nvm.o
0x08001a78 NvmErase
.text.NvmVerifyChecksum
0x08001a84 0x8 THUMB Debug/../../obj/nvm.o
0x08001a84 NvmVerifyChecksum
0x08001a80 0x8 THUMB Debug/../../obj/nvm.o
0x08001a80 NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x08001a8c 0x8 THUMB Debug/../../obj/nvm.o
0x08001a8c NvmGetUserProgBaseAddress
.text.NvmDone 0x08001a94 0x14 THUMB Debug/../../obj/nvm.o
0x08001a94 NvmDone
0x08001a88 0x8 THUMB Debug/../../obj/nvm.o
0x08001a88 NvmGetUserProgBaseAddress
.text.NvmDone 0x08001a90 0x14 THUMB Debug/../../obj/nvm.o
0x08001a90 NvmDone
.text.TimerInit
0x08001aa8 0x24 THUMB Debug/../../obj/timer.o
0x08001aa8 TimerInit
0x08001aa4 0x24 THUMB Debug/../../obj/timer.o
0x08001aa4 TimerInit
.text.TimerReset
0x08001acc 0xc THUMB Debug/../../obj/timer.o
0x08001acc TimerReset
0x08001ac8 0xc THUMB Debug/../../obj/timer.o
0x08001ac8 TimerReset
.text.TimerUpdate
0x08001ad8 0x1c THUMB Debug/../../obj/timer.o
0x08001ad8 TimerUpdate
0x08001ad4 0x1c THUMB Debug/../../obj/timer.o
0x08001ad4 TimerUpdate
.text.TimerGet
0x08001af4 0x10 THUMB Debug/../../obj/timer.o
0x08001af4 TimerGet
0x08001af0 0x10 THUMB Debug/../../obj/timer.o
0x08001af0 TimerGet
.text.IntToUnicode
0x08001b04 0x30 THUMB Debug/../../obj/usb.o
0x08001b00 0x30 THUMB Debug/../../obj/usb.o
.text.UsbFifoMgrWrite
0x08001b34 0x6c THUMB Debug/../../obj/usb.o
0x08001b30 0x6c THUMB Debug/../../obj/usb.o
.text.UsbFifoMgrRead
0x08001ba0 0x64 THUMB Debug/../../obj/usb.o
.text.UsbInit 0x08001c04 0x60 THUMB Debug/../../obj/usb.o
0x08001c04 UsbInit
.text.UsbFree 0x08001c64 0xc THUMB Debug/../../obj/usb.o
0x08001c64 UsbFree
0x08001b9c 0x64 THUMB Debug/../../obj/usb.o
.text.UsbInit 0x08001c00 0x60 THUMB Debug/../../obj/usb.o
0x08001c00 UsbInit
.text.UsbFree 0x08001c60 0xc THUMB Debug/../../obj/usb.o
0x08001c60 UsbFree
.text.UsbTransmitPacket
0x08001c70 0x68 THUMB Debug/../../obj/usb.o
0x08001c70 UsbTransmitPacket
0x08001c6c 0x68 THUMB Debug/../../obj/usb.o
0x08001c6c UsbTransmitPacket
.text.UsbReceivePacket
0x08001cd8 0x8c THUMB Debug/../../obj/usb.o
0x08001cd8 UsbReceivePacket
0x08001cd4 0x8c THUMB Debug/../../obj/usb.o
0x08001cd4 UsbReceivePacket
.text.UsbTransmitPipeBulkIN
0x08001d64 0x98 THUMB Debug/../../obj/usb.o
0x08001d64 UsbTransmitPipeBulkIN
0x08001d60 0x98 THUMB Debug/../../obj/usb.o
0x08001d60 UsbTransmitPipeBulkIN
.text.UsbReceivePipeBulkOUT
0x08001dfc 0x54 THUMB Debug/../../obj/usb.o
0x08001dfc UsbReceivePipeBulkOUT
0x08001df8 0x54 THUMB Debug/../../obj/usb.o
0x08001df8 UsbReceivePipeBulkOUT
.text.UsbGetSerialNum
0x08001e50 0x38 THUMB Debug/../../obj/usb.o
0x08001e50 UsbGetSerialNum
0x08001e4c 0x38 THUMB Debug/../../obj/usb.o
0x08001e4c UsbGetSerialNum
.text.CpuIrqDisable
0x08001e84 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001e84 CpuIrqDisable
.text.CpuIrqEnable
0x08001e88 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001e88 CpuIrqEnable
.text.AssertFailure
0x08001e88 0x8 THUMB Debug/../../obj/assert.o
0x08001e88 AssertFailure
0x08001e8c 0x8 THUMB Debug/../../obj/assert.o
0x08001e8c AssertFailure
.text.BackDoorCheck
0x08001e90 0x38 THUMB Debug/../../obj/backdoor.o
0x08001e90 BackDoorCheck
0x08001e94 0x38 THUMB Debug/../../obj/backdoor.o
0x08001e94 BackDoorCheck
.text.BackDoorInit
0x08001ec8 0x20 THUMB Debug/../../obj/backdoor.o
0x08001ec8 BackDoorInit
0x08001ecc 0x20 THUMB Debug/../../obj/backdoor.o
0x08001ecc BackDoorInit
.text.BootInit
0x08001ee8 0x1c THUMB Debug/../../obj/boot.o
0x08001ee8 BootInit
0x08001eec 0x1c THUMB Debug/../../obj/boot.o
0x08001eec BootInit
.text.BootTask
0x08001f04 0x14 THUMB Debug/../../obj/boot.o
0x08001f04 BootTask
.text.ComInit 0x08001f18 0x18 THUMB Debug/../../obj/com.o
0x08001f18 ComInit
.text.ComTask 0x08001f30 0x24 THUMB Debug/../../obj/com.o
0x08001f30 ComTask
.text.ComFree 0x08001f54 0x8 THUMB Debug/../../obj/com.o
0x08001f54 ComFree
0x08001f08 0x14 THUMB Debug/../../obj/boot.o
0x08001f08 BootTask
.text.ComInit 0x08001f1c 0x18 THUMB Debug/../../obj/com.o
0x08001f1c ComInit
.text.ComTask 0x08001f34 0x24 THUMB Debug/../../obj/com.o
0x08001f34 ComTask
.text.ComFree 0x08001f58 0x8 THUMB Debug/../../obj/com.o
0x08001f58 ComFree
.text.ComTransmitPacket
0x08001f5c 0x1c THUMB Debug/../../obj/com.o
0x08001f5c ComTransmitPacket
0x08001f60 0x1c THUMB Debug/../../obj/com.o
0x08001f60 ComTransmitPacket
.text.ComGetActiveInterfaceMaxRxLen
0x08001f78 0x18 THUMB Debug/../../obj/com.o
0x08001f78 ComGetActiveInterfaceMaxRxLen
0x08001f7c 0x18 THUMB Debug/../../obj/com.o
0x08001f7c ComGetActiveInterfaceMaxRxLen
.text.ComGetActiveInterfaceMaxTxLen
0x08001f90 0x18 THUMB Debug/../../obj/com.o
0x08001f90 ComGetActiveInterfaceMaxTxLen
0x08001f94 0x18 THUMB Debug/../../obj/com.o
0x08001f94 ComGetActiveInterfaceMaxTxLen
.text.ComIsConnected
0x08001fa8 0x8 THUMB Debug/../../obj/com.o
0x08001fa8 ComIsConnected
.text.CopInit 0x08001fb0 0x4 THUMB Debug/../../obj/cop.o
0x08001fb0 CopInit
0x08001fac 0x8 THUMB Debug/../../obj/com.o
0x08001fac ComIsConnected
.text.CopInit 0x08001fb4 0x4 THUMB Debug/../../obj/cop.o
0x08001fb4 CopInit
.text.CopService
0x08001fb4 0x4 THUMB Debug/../../obj/cop.o
0x08001fb4 CopService
0x08001fb8 0x4 THUMB Debug/../../obj/cop.o
0x08001fb8 CopService
.text.XcpSetCtoError
0x08001fb8 0x14 THUMB Debug/../../obj/xcp.o
.text.XcpInit 0x08001fcc 0x1c THUMB Debug/../../obj/xcp.o
0x08001fcc XcpInit
0x08001fbc 0x14 THUMB Debug/../../obj/xcp.o
.text.XcpInit 0x08001fd0 0x1c THUMB Debug/../../obj/xcp.o
0x08001fd0 XcpInit
.text.XcpIsConnected
0x08001fe8 0x10 THUMB Debug/../../obj/xcp.o
0x08001fe8 XcpIsConnected
0x08001fec 0x10 THUMB Debug/../../obj/xcp.o
0x08001fec XcpIsConnected
.text.XcpPacketTransmitted
0x08001ff8 0x10 THUMB Debug/../../obj/xcp.o
0x08001ff8 XcpPacketTransmitted
0x08001ffc 0x10 THUMB Debug/../../obj/xcp.o
0x08001ffc XcpPacketTransmitted
.text.XcpPacketReceived
0x08002008 0x314 THUMB Debug/../../obj/xcp.o
0x08002008 XcpPacketReceived
0x0800231c __text_end__ = (__text_start__ + SIZEOF (.text))
0x0800231c __text_load_end__ = __text_end__
0x0800200c 0x314 THUMB Debug/../../obj/xcp.o
0x0800200c XcpPacketReceived
0x08002320 __text_end__ = (__text_start__ + SIZEOF (.text))
0x08002320 __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@ -2502,87 +2502,88 @@ Linker script and memory map
.iplt 0x00000000 0x0
.iplt 0x00000000 0x0 THUMB Debug/../../obj/hooks.o
0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= __FLASH_segment_end__)), error: .text is too large to fit in FLASH memory segment)
0x0800231c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
0x08002320 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
.dtors 0x0800231c 0x0
0x0800231c __dtors_start__ = .
.dtors 0x08002320 0x0
0x08002320 __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
0x0800231c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x0800231c __dtors_load_end__ = __dtors_end__
0x08002320 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x08002320 __dtors_load_end__ = __dtors_end__
0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= __FLASH_segment_end__)), error: .dtors is too large to fit in FLASH memory segment)
0x0800231c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
0x08002320 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
.ctors 0x0800231c 0x0
0x0800231c __ctors_start__ = .
.ctors 0x08002320 0x0
0x08002320 __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
0x0800231c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x0800231c __ctors_load_end__ = __ctors_end__
0x08002320 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x08002320 __ctors_load_end__ = __ctors_end__
0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= __FLASH_segment_end__)), error: .ctors is too large to fit in FLASH memory segment)
0x0800231c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
0x08002320 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
.rodata 0x0800231c 0x2c4
0x0800231c __rodata_start__ = .
.rodata 0x08002320 0x2a8
0x08002320 __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.str1.4
0x0800231c 0x63 THUMB Debug/../../obj/main.o
*fill* 0x0800237f 0x1
0x08002320 0x63 THUMB Debug/../../obj/main.o
*fill* 0x08002383 0x1
.rodata.Bulk_DeviceDescriptor
0x08002380 0x12 THUMB Debug/../../obj/usb_desc.o
0x08002380 Bulk_DeviceDescriptor
*fill* 0x08002392 0x2
0x08002384 0x12 THUMB Debug/../../obj/usb_desc.o
0x08002384 Bulk_DeviceDescriptor
*fill* 0x08002396 0x2
.rodata.Bulk_StringLangID
0x08002394 0x4 THUMB Debug/../../obj/usb_desc.o
0x08002394 Bulk_StringLangID
0x08002398 0x4 THUMB Debug/../../obj/usb_desc.o
0x08002398 Bulk_StringLangID
.rodata.Bulk_StringProduct
0x08002398 0x26 THUMB Debug/../../obj/usb_desc.o
0x08002398 Bulk_StringProduct
*fill* 0x080023be 0x2
0x0800239c 0x26 THUMB Debug/../../obj/usb_desc.o
0x0800239c Bulk_StringProduct
*fill* 0x080023c2 0x2
.rodata.Bulk_ConfigDescriptor
0x080023c0 0x20 THUMB Debug/../../obj/usb_desc.o
0x080023c0 Bulk_ConfigDescriptor
0x080023c4 0x20 THUMB Debug/../../obj/usb_desc.o
0x080023c4 Bulk_ConfigDescriptor
.rodata.Bulk_StringVendor
0x080023e0 0x1a THUMB Debug/../../obj/usb_desc.o
0x080023e0 Bulk_StringVendor
*fill* 0x080023fa 0x2
0x080023e4 0x1a THUMB Debug/../../obj/usb_desc.o
0x080023e4 Bulk_StringVendor
*fill* 0x080023fe 0x2
.rodata.Bulk_StringInterface
0x080023fc 0x2c THUMB Debug/../../obj/usb_desc.o
0x080023fc Bulk_StringInterface
0x08002400 0x2c THUMB Debug/../../obj/usb_desc.o
0x08002400 Bulk_StringInterface
.rodata.str1.4
0x08002428 0x90 THUMB Debug/../../obj/vectors.o
0x0800242c 0x66 THUMB Debug/../../obj/vectors.o
*fill* 0x08002492 0x2
.rodata.flashLayout
0x080024b8 0x9c THUMB Debug/../../obj/flash.o
0x08002494 0xa8 THUMB Debug/../../obj/flash.o
.rodata.str1.4
0x08002554 0x84 THUMB Debug/../../obj/usb.o
0x0800253c 0x84 THUMB Debug/../../obj/usb.o
0x81 (size before relaxing)
.rodata.xcpStationId
0x080025d8 0x8 THUMB Debug/../../obj/xcp.o
0x080025e0 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x080025e0 __rodata_load_end__ = __rodata_end__
0x080025c0 0x8 THUMB Debug/../../obj/xcp.o
0x080025c8 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x080025c8 __rodata_load_end__ = __rodata_end__
.rel.dyn 0x08000000 0x0
.rel.iplt 0x08000000 0x0 THUMB Debug/../../obj/hooks.o
0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment)
0x080025e0 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
0x080025c8 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
.ARM.exidx 0x080025e0 0x0
0x080025e0 __ARM.exidx_start__ = .
0x080025e0 __exidx_start = __ARM.exidx_start__
.ARM.exidx 0x080025c8 0x0
0x080025c8 __ARM.exidx_start__ = .
0x080025c8 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
0x080025e0 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x080025e0 __exidx_end = __ARM.exidx_end__
0x080025e0 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x080025c8 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x080025c8 __exidx_end = __ARM.exidx_end__
0x080025c8 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= __FLASH_segment_end__)), error: .ARM.exidx is too large to fit in FLASH memory segment)
0x080025e0 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
0x080025c8 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
.fast 0x20000000 0x0 load address 0x080025e0
.fast 0x20000000 0x0 load address 0x080025c8
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
0x080025e0 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x080025c8 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@ -2591,9 +2592,9 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
0x080025e0 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
0x080025c8 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
.data 0x20000000 0xeb load address 0x080025e0
.data 0x20000000 0xeb load address 0x080025c8
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
.data.Bulk_StringSerial
@ -2629,13 +2630,13 @@ Linker script and memory map
.data.comActiveInterface
0x200000ea 0x1 THUMB Debug/../../obj/com.o
0x200000eb __data_end__ = (__data_start__ + SIZEOF (.data))
0x080026cb __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x080026b3 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
.igot.plt 0x00000000 0x0
.igot.plt 0x00000000 0x0 THUMB Debug/../../obj/hooks.o
0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment)
.data_run 0x20000000 0xeb load address 0x080025e0
.data_run 0x20000000 0xeb load address 0x080025c8
0x20000000 __data_run_start__ = .
0x200000eb . = MAX ((__data_run_start__ + SIZEOF (.data)), .)
*fill* 0x20000000 0xeb
@ -2774,14 +2775,14 @@ Linker script and memory map
0x200009cc __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x200009cc __tbss_load_end__ = __tbss_end__
0x00000001 . = ASSERT (((__tbss_end__ >= __SRAM_segment_start__) && (__tbss_end__ <= __SRAM_segment_end__)), error: .tbss is too large to fit in SRAM memory segment)
0x080026cc __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
0x080026b4 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
.tdata 0x200009cc 0x0 load address 0x080026cc
.tdata 0x200009cc 0x0 load address 0x080026b4
0x200009cc __tdata_start__ = .
*(.tdata .tdata.*)
0x200009cc __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
0x080026cc __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x080026cc __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x080026b4 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x080026b4 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x00000001 . = ASSERT (((__tdata_load_end__ >= __FLASH_segment_start__) && (__tdata_load_end__ <= __FLASH_segment_end__)), error: .tdata is too large to fit in FLASH memory segment)
.tdata_run 0x200009cc 0x0
@ -2806,7 +2807,6 @@ LOAD THUMB Debug/../../obj/usb_endp.o
LOAD THUMB Debug/../../obj/usb_istr.o
LOAD THUMB Debug/../../obj/usb_prop.o
LOAD THUMB Debug/../../obj/usb_pwr.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/cstart.o
LOAD THUMB Debug/../../obj/vectors.o
LOAD THUMB Debug/../../obj/can.o
@ -2816,6 +2816,7 @@ LOAD THUMB Debug/../../obj/nvm.o
LOAD THUMB Debug/../../obj/timer.o
LOAD THUMB Debug/../../obj/uart.o
LOAD THUMB Debug/../../obj/usb.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/assert.o
LOAD THUMB Debug/../../obj/backdoor.o
LOAD THUMB Debug/../../obj/boot.o
@ -2833,7 +2834,7 @@ LOAD C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib
END GROUP
OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Crossworks/Boot/ide/../bin/openblt_olimex_stm32h103.elf elf32-littlearm)
.debug_frame 0x00000000 0x1144
.debug_frame 0x00000000 0x1148
.debug_frame 0x00000000 0x50 THUMB Debug/../../obj/hooks.o
.debug_frame 0x00000050 0x30 THUMB Debug/../../obj/main.o
.debug_frame 0x00000080 0x1fc THUMB Debug/../../obj/usb_core.o
@ -2846,21 +2847,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_frame 0x00000808 0x2c THUMB Debug/../../obj/usb_istr.o
.debug_frame 0x00000834 0x134 THUMB Debug/../../obj/usb_prop.o
.debug_frame 0x00000968 0xa0 THUMB Debug/../../obj/usb_pwr.o
.debug_frame 0x00000a08 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00000a38 0x2c THUMB Debug/../../obj/vectors.o
.debug_frame 0x00000a64 0x74 THUMB Debug/../../obj/cpu.o
.debug_frame 0x00000ad8 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x00000c58 0xd4 THUMB Debug/../../obj/nvm.o
.debug_frame 0x00000d2c 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00000d88 0x1a4 THUMB Debug/../../obj/usb.o
.debug_frame 0x00000f2c 0x2c THUMB Debug/../../obj/assert.o
.debug_frame 0x00000f58 0x48 THUMB Debug/../../obj/backdoor.o
.debug_frame 0x00000fa0 0x48 THUMB Debug/../../obj/boot.o
.debug_frame 0x00000fe8 0xbc THUMB Debug/../../obj/com.o
.debug_frame 0x000010a4 0x30 THUMB Debug/../../obj/cop.o
.debug_frame 0x000010d4 0x70 THUMB Debug/../../obj/xcp.o
.debug_frame 0x00000a08 0x2c THUMB Debug/../../obj/vectors.o
.debug_frame 0x00000a34 0x74 THUMB Debug/../../obj/cpu.o
.debug_frame 0x00000aa8 0x184 THUMB Debug/../../obj/flash.o
.debug_frame 0x00000c2c 0xd4 THUMB Debug/../../obj/nvm.o
.debug_frame 0x00000d00 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00000d5c 0x1a4 THUMB Debug/../../obj/usb.o
.debug_frame 0x00000f00 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00000f30 0x2c THUMB Debug/../../obj/assert.o
.debug_frame 0x00000f5c 0x48 THUMB Debug/../../obj/backdoor.o
.debug_frame 0x00000fa4 0x48 THUMB Debug/../../obj/boot.o
.debug_frame 0x00000fec 0xbc THUMB Debug/../../obj/com.o
.debug_frame 0x000010a8 0x30 THUMB Debug/../../obj/cop.o
.debug_frame 0x000010d8 0x70 THUMB Debug/../../obj/xcp.o
.debug_info 0x00000000 0x6839
.debug_info 0x00000000 0x680f
.debug_info 0x00000000 0x228 THUMB Debug/../../obj/hooks.o
.debug_info 0x00000228 0x32f THUMB Debug/../../obj/main.o
.debug_info 0x00000557 0xe36 THUMB Debug/../../obj/usb_core.o
@ -2874,20 +2875,20 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_info 0x00002d22 0x278 THUMB Debug/../../obj/usb_istr.o
.debug_info 0x00002f9a 0xaa7 THUMB Debug/../../obj/usb_prop.o
.debug_info 0x00003a41 0x31e THUMB Debug/../../obj/usb_pwr.o
.debug_info 0x00003d5f 0x80 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x00003ddf 0x110 THUMB Debug/../../obj/cstart.o
.debug_info 0x00003eef 0x111 THUMB Debug/../../obj/vectors.o
.debug_info 0x00004000 0x1e3 THUMB Debug/../../obj/cpu.o
.debug_info 0x000041e3 0x8cd THUMB Debug/../../obj/flash.o
.debug_info 0x00004ab0 0x24e THUMB Debug/../../obj/nvm.o
.debug_info 0x00004cfe 0x127 THUMB Debug/../../obj/timer.o
.debug_info 0x00004e25 0xbaa THUMB Debug/../../obj/usb.o
.debug_info 0x000059cf 0xc2 THUMB Debug/../../obj/assert.o
.debug_info 0x00005a91 0x110 THUMB Debug/../../obj/backdoor.o
.debug_info 0x00005ba1 0x152 THUMB Debug/../../obj/boot.o
.debug_info 0x00005cf3 0x29e THUMB Debug/../../obj/com.o
.debug_info 0x00005f91 0x80 THUMB Debug/../../obj/cop.o
.debug_info 0x00006011 0x828 THUMB Debug/../../obj/xcp.o
.debug_info 0x00003d5f 0xe6 THUMB Debug/../../obj/cstart.o
.debug_info 0x00003e45 0x111 THUMB Debug/../../obj/vectors.o
.debug_info 0x00003f56 0x1e3 THUMB Debug/../../obj/cpu.o
.debug_info 0x00004139 0x8cd THUMB Debug/../../obj/flash.o
.debug_info 0x00004a06 0x24e THUMB Debug/../../obj/nvm.o
.debug_info 0x00004c54 0x127 THUMB Debug/../../obj/timer.o
.debug_info 0x00004d7b 0xbaa THUMB Debug/../../obj/usb.o
.debug_info 0x00005925 0x80 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x000059a5 0xc2 THUMB Debug/../../obj/assert.o
.debug_info 0x00005a67 0x110 THUMB Debug/../../obj/backdoor.o
.debug_info 0x00005b77 0x152 THUMB Debug/../../obj/boot.o
.debug_info 0x00005cc9 0x29e THUMB Debug/../../obj/com.o
.debug_info 0x00005f67 0x80 THUMB Debug/../../obj/cop.o
.debug_info 0x00005fe7 0x828 THUMB Debug/../../obj/xcp.o
.debug_abbrev 0x00000000 0x1fbc
.debug_abbrev 0x00000000 0xf4 THUMB Debug/../../obj/hooks.o
@ -2903,14 +2904,14 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_abbrev 0x00000cb9 0x11d THUMB Debug/../../obj/usb_istr.o
.debug_abbrev 0x00000dd6 0x239 THUMB Debug/../../obj/usb_prop.o
.debug_abbrev 0x0000100f 0x14f THUMB Debug/../../obj/usb_pwr.o
.debug_abbrev 0x0000115e 0x45 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x000011a3 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x000011b7 0xee THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x000012a5 0xc8 THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x0000136d 0x24b THUMB Debug/../../obj/flash.o
.debug_abbrev 0x000015b8 0xca THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x00001682 0x104 THUMB Debug/../../obj/timer.o
.debug_abbrev 0x00001786 0x344 THUMB Debug/../../obj/usb.o
.debug_abbrev 0x0000115e 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00001172 0xee THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00001260 0xc8 THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x00001328 0x24b THUMB Debug/../../obj/flash.o
.debug_abbrev 0x00001573 0xca THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x0000163d 0x104 THUMB Debug/../../obj/timer.o
.debug_abbrev 0x00001741 0x344 THUMB Debug/../../obj/usb.o
.debug_abbrev 0x00001a85 0x45 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x00001aca 0x8b THUMB Debug/../../obj/assert.o
.debug_abbrev 0x00001b55 0x7f THUMB Debug/../../obj/backdoor.o
.debug_abbrev 0x00001bd4 0x63 THUMB Debug/../../obj/boot.o
@ -2947,19 +2948,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_pubnames
0x0000108d 0x1b3 THUMB Debug/../../obj/usb_pwr.o
.debug_pubnames
0x00001240 0x35 THUMB Debug/../../obj/cpu_comp.o
0x00001240 0x2d THUMB Debug/../../obj/vectors.o
.debug_pubnames
0x00001275 0x2d THUMB Debug/../../obj/vectors.o
0x0000126d 0x45 THUMB Debug/../../obj/cpu.o
.debug_pubnames
0x000012a2 0x45 THUMB Debug/../../obj/cpu.o
0x000012b2 0x1a4 THUMB Debug/../../obj/flash.o
.debug_pubnames
0x000012e7 0x1a4 THUMB Debug/../../obj/flash.o
0x00001456 0x86 THUMB Debug/../../obj/nvm.o
.debug_pubnames
0x0000148b 0x86 THUMB Debug/../../obj/nvm.o
0x000014dc 0x64 THUMB Debug/../../obj/timer.o
.debug_pubnames
0x00001511 0x64 THUMB Debug/../../obj/timer.o
0x00001540 0x202 THUMB Debug/../../obj/usb.o
.debug_pubnames
0x00001575 0x202 THUMB Debug/../../obj/usb.o
0x00001742 0x35 THUMB Debug/../../obj/cpu_comp.o
.debug_pubnames
0x00001777 0x24 THUMB Debug/../../obj/assert.o
.debug_pubnames
@ -3002,19 +3003,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_pubtypes
0x00000eb7 0x152 THUMB Debug/../../obj/usb_pwr.o
.debug_pubtypes
0x00001009 0x91 THUMB Debug/../../obj/cpu_comp.o
0x00001009 0xba THUMB Debug/../../obj/vectors.o
.debug_pubtypes
0x0000109a 0xba THUMB Debug/../../obj/vectors.o
0x000010c3 0xca THUMB Debug/../../obj/cpu.o
.debug_pubtypes
0x00001154 0xca THUMB Debug/../../obj/cpu.o
0x0000118d 0x118 THUMB Debug/../../obj/flash.o
.debug_pubtypes
0x0000121e 0x118 THUMB Debug/../../obj/flash.o
0x000012a5 0xc8 THUMB Debug/../../obj/nvm.o
.debug_pubtypes
0x00001336 0xc8 THUMB Debug/../../obj/nvm.o
0x0000136d 0xb1 THUMB Debug/../../obj/timer.o
.debug_pubtypes
0x000013fe 0xb1 THUMB Debug/../../obj/timer.o
0x0000141e 0x1d6 THUMB Debug/../../obj/usb.o
.debug_pubtypes
0x000014af 0x1d6 THUMB Debug/../../obj/usb.o
0x000015f4 0x91 THUMB Debug/../../obj/cpu_comp.o
.debug_pubtypes
0x00001685 0xad THUMB Debug/../../obj/assert.o
.debug_pubtypes
@ -3056,21 +3057,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_aranges
0x00000468 0x40 THUMB Debug/../../obj/usb_pwr.o
.debug_aranges
0x000004a8 0x28 THUMB Debug/../../obj/cpu_comp.o
0x000004a8 0x20 THUMB Debug/../../obj/cstart.o
.debug_aranges
0x000004d0 0x20 THUMB Debug/../../obj/cstart.o
0x000004c8 0x20 THUMB Debug/../../obj/vectors.o
.debug_aranges
0x000004f0 0x20 THUMB Debug/../../obj/vectors.o
0x000004e8 0x30 THUMB Debug/../../obj/cpu.o
.debug_aranges
0x00000510 0x30 THUMB Debug/../../obj/cpu.o
0x00000518 0x80 THUMB Debug/../../obj/flash.o
.debug_aranges
0x00000540 0x80 THUMB Debug/../../obj/flash.o
0x00000598 0x50 THUMB Debug/../../obj/nvm.o
.debug_aranges
0x000005c0 0x50 THUMB Debug/../../obj/nvm.o
0x000005e8 0x38 THUMB Debug/../../obj/timer.o
.debug_aranges
0x00000610 0x38 THUMB Debug/../../obj/timer.o
0x00000620 0x78 THUMB Debug/../../obj/usb.o
.debug_aranges
0x00000648 0x78 THUMB Debug/../../obj/usb.o
0x00000698 0x28 THUMB Debug/../../obj/cpu_comp.o
.debug_aranges
0x000006c0 0x20 THUMB Debug/../../obj/assert.o
.debug_aranges
@ -3097,13 +3098,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_ranges 0x000003c8 0x10 THUMB Debug/../../obj/usb_istr.o
.debug_ranges 0x000003d8 0x70 THUMB Debug/../../obj/usb_prop.o
.debug_ranges 0x00000448 0x30 THUMB Debug/../../obj/usb_pwr.o
.debug_ranges 0x00000478 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000490 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x000004a0 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x000004c0 0x88 THUMB Debug/../../obj/flash.o
.debug_ranges 0x00000548 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x00000588 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x000005b0 0x80 THUMB Debug/../../obj/usb.o
.debug_ranges 0x00000478 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x00000488 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x000004a8 0x88 THUMB Debug/../../obj/flash.o
.debug_ranges 0x00000530 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x00000570 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000598 0x80 THUMB Debug/../../obj/usb.o
.debug_ranges 0x00000618 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000630 0x10 THUMB Debug/../../obj/assert.o
.debug_ranges 0x00000640 0x18 THUMB Debug/../../obj/backdoor.o
.debug_ranges 0x00000658 0x18 THUMB Debug/../../obj/boot.o
@ -3111,7 +3112,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_ranges 0x000006b0 0x18 THUMB Debug/../../obj/cop.o
.debug_ranges 0x000006c8 0x30 THUMB Debug/../../obj/xcp.o
.debug_line 0x00000000 0x34c6
.debug_line 0x00000000 0x3482
.debug_line 0x00000000 0x209 THUMB Debug/../../obj/hooks.o
.debug_line 0x00000209 0x229 THUMB Debug/../../obj/main.o
.debug_line 0x00000432 0x47c THUMB Debug/../../obj/usb_core.o
@ -3125,22 +3126,22 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.debug_line 0x00001840 0x1d1 THUMB Debug/../../obj/usb_istr.o
.debug_line 0x00001a11 0x2f0 THUMB Debug/../../obj/usb_prop.o
.debug_line 0x00001d01 0x235 THUMB Debug/../../obj/usb_pwr.o
.debug_line 0x00001f36 0xd1 THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x00002007 0x137 THUMB Debug/../../obj/cstart.o
.debug_line 0x0000213e 0x110 THUMB Debug/../../obj/vectors.o
.debug_line 0x0000224e 0x156 THUMB Debug/../../obj/cpu.o
.debug_line 0x000023a4 0x2e0 THUMB Debug/../../obj/flash.o
.debug_line 0x00002684 0x197 THUMB Debug/../../obj/nvm.o
.debug_line 0x0000281b 0x120 THUMB Debug/../../obj/timer.o
.debug_line 0x0000293b 0x3d3 THUMB Debug/../../obj/usb.o
.debug_line 0x00002d0e 0x108 THUMB Debug/../../obj/assert.o
.debug_line 0x00002e16 0x138 THUMB Debug/../../obj/backdoor.o
.debug_line 0x00002f4e 0x120 THUMB Debug/../../obj/boot.o
.debug_line 0x0000306e 0x19a THUMB Debug/../../obj/com.o
.debug_line 0x00003208 0xb0 THUMB Debug/../../obj/cop.o
.debug_line 0x000032b8 0x20e THUMB Debug/../../obj/xcp.o
.debug_line 0x00001f36 0x10d THUMB Debug/../../obj/cstart.o
.debug_line 0x00002043 0xe6 THUMB Debug/../../obj/vectors.o
.debug_line 0x00002129 0x156 THUMB Debug/../../obj/cpu.o
.debug_line 0x0000227f 0x2f7 THUMB Debug/../../obj/flash.o
.debug_line 0x00002576 0x197 THUMB Debug/../../obj/nvm.o
.debug_line 0x0000270d 0x120 THUMB Debug/../../obj/timer.o
.debug_line 0x0000282d 0x3d3 THUMB Debug/../../obj/usb.o
.debug_line 0x00002c00 0xca THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x00002cca 0x108 THUMB Debug/../../obj/assert.o
.debug_line 0x00002dd2 0x138 THUMB Debug/../../obj/backdoor.o
.debug_line 0x00002f0a 0x120 THUMB Debug/../../obj/boot.o
.debug_line 0x0000302a 0x19a THUMB Debug/../../obj/com.o
.debug_line 0x000031c4 0xb0 THUMB Debug/../../obj/cop.o
.debug_line 0x00003274 0x20e THUMB Debug/../../obj/xcp.o
.debug_str 0x00000000 0x2820
.debug_str 0x00000000 0x27ef
.debug_str 0x00000000 0x317 THUMB Debug/../../obj/hooks.o
0x357 (size before relaxing)
.debug_str 0x00000317 0xda THUMB Debug/../../obj/main.o
@ -3167,31 +3168,31 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
0xab8 (size before relaxing)
.debug_str 0x000017a1 0x15e THUMB Debug/../../obj/usb_pwr.o
0x476 (size before relaxing)
.debug_str 0x000018ff 0xac THUMB Debug/../../obj/cpu_comp.o
0x27c (size before relaxing)
.debug_str 0x000019ab 0xbf THUMB Debug/../../obj/vectors.o
0x2b1 (size before relaxing)
.debug_str 0x00001a6a 0x12c THUMB Debug/../../obj/cpu.o
.debug_str 0x000018ff 0x95 THUMB Debug/../../obj/vectors.o
0x287 (size before relaxing)
.debug_str 0x00001994 0x147 THUMB Debug/../../obj/cpu.o
0x33a (size before relaxing)
.debug_str 0x00001b96 0x2b2 THUMB Debug/../../obj/flash.o
.debug_str 0x00001adb 0x2b2 THUMB Debug/../../obj/flash.o
0x509 (size before relaxing)
.debug_str 0x00001e48 0xad THUMB Debug/../../obj/nvm.o
.debug_str 0x00001d8d 0xad THUMB Debug/../../obj/nvm.o
0x353 (size before relaxing)
.debug_str 0x00001ef5 0xcd THUMB Debug/../../obj/timer.o
.debug_str 0x00001e3a 0xcd THUMB Debug/../../obj/timer.o
0x2b3 (size before relaxing)
.debug_str 0x00001fc2 0x29a THUMB Debug/../../obj/usb.o
.debug_str 0x00001f07 0x29a THUMB Debug/../../obj/usb.o
0x7c3 (size before relaxing)
.debug_str 0x0000225c 0x88 THUMB Debug/../../obj/assert.o
.debug_str 0x000021a1 0x8a THUMB Debug/../../obj/cpu_comp.o
0x275 (size before relaxing)
.debug_str 0x0000222b 0x88 THUMB Debug/../../obj/assert.o
0x27c (size before relaxing)
.debug_str 0x000022e4 0xbf THUMB Debug/../../obj/backdoor.o
.debug_str 0x000022b3 0xbf THUMB Debug/../../obj/backdoor.o
0x2c0 (size before relaxing)
.debug_str 0x000023a3 0x8b THUMB Debug/../../obj/boot.o
.debug_str 0x00002372 0x8b THUMB Debug/../../obj/boot.o
0x2b9 (size before relaxing)
.debug_str 0x0000242e 0x15b THUMB Debug/../../obj/com.o
.debug_str 0x000023fd 0x15b THUMB Debug/../../obj/com.o
0x3c8 (size before relaxing)
.debug_str 0x00002589 0x72 THUMB Debug/../../obj/cop.o
.debug_str 0x00002558 0x72 THUMB Debug/../../obj/cop.o
0x255 (size before relaxing)
.debug_str 0x000025fb 0x225 THUMB Debug/../../obj/xcp.o
.debug_str 0x000025ca 0x225 THUMB Debug/../../obj/xcp.o
0x50f (size before relaxing)
.comment 0x00000000 0x4c
@ -3209,13 +3210,13 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.comment 0x0000004c 0x4d THUMB Debug/../../obj/usb_istr.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/usb_prop.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/usb_pwr.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/vectors.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/flash.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/nvm.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/timer.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/usb.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/assert.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/backdoor.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/boot.o
@ -3252,21 +3253,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Cros
.ARM.attributes
0x00000264 0x33 THUMB Debug/../../obj/usb_pwr.o
.ARM.attributes
0x00000297 0x33 THUMB Debug/../../obj/cpu_comp.o
0x00000297 0x21 THUMB Debug/../../obj/cstart.o
.ARM.attributes
0x000002ca 0x21 THUMB Debug/../../obj/cstart.o
0x000002b8 0x33 THUMB Debug/../../obj/vectors.o
.ARM.attributes
0x000002eb 0x33 THUMB Debug/../../obj/vectors.o
0x000002eb 0x33 THUMB Debug/../../obj/cpu.o
.ARM.attributes
0x0000031e 0x33 THUMB Debug/../../obj/cpu.o
0x0000031e 0x33 THUMB Debug/../../obj/flash.o
.ARM.attributes
0x00000351 0x33 THUMB Debug/../../obj/flash.o
0x00000351 0x33 THUMB Debug/../../obj/nvm.o
.ARM.attributes
0x00000384 0x33 THUMB Debug/../../obj/nvm.o
0x00000384 0x33 THUMB Debug/../../obj/timer.o
.ARM.attributes
0x000003b7 0x33 THUMB Debug/../../obj/timer.o
0x000003b7 0x33 THUMB Debug/../../obj/usb.o
.ARM.attributes
0x000003ea 0x33 THUMB Debug/../../obj/usb.o
0x000003ea 0x33 THUMB Debug/../../obj/cpu_comp.o
.ARM.attributes
0x0000041d 0x33 THUMB Debug/../../obj/assert.o
.ARM.attributes

View File

@ -1,25 +1,25 @@
S02B0000433A2F576F726B2F736F6674776172652F4F70656E424C542F5461726765742F44656D6F2F41524DEF
S31508000000CC090020510100088D1500088D1500083F
S315080000108D1500088D1500088D1500088D1500082A
S315080000208D1500088D1500088D1500088D1500081A
S315080000308D1500088D1500088D1500088D1500080A
S315080000408D1500088D1500088D1500088D150008FA
S315080000508D1500088D1500088D1500088D150008EA
S315080000608D1500088D1500088D1500088D150008DA
S315080000708D1500088D1500088D1500088D150008CA
S315080000808D1500088D1500088D1500088D150008BA
S315080000908D1500088D1500088D1500088D150008AA
S315080000A08D1500088D1500088D1500088D1500089A
S315080000B08D1500088D1500088D1500088D1500088A
S315080000C08D1500088D1500088D1500088D1500087A
S315080000D08D1500088D1500088D1500088D1500086A
S315080000E08D1500088D1500088D1500088D1500085A
S315080000F08D1500088D1500088D1500088D1500084A
S315080001008D1500088D1500088D1500088D15000839
S315080001108D1500088D1500088D1500088D15000829
S315080001208D1500088D1500088D1500088D15000819
S315080001308D1500088D1500088D1500088D15000809
S315080001408D1500088D1500088D1500088D150008F9
S31508000000CC0900205101000885150008851500084F
S31508000010851500088515000885150008851500084A
S31508000020851500088515000885150008851500083A
S31508000030851500088515000885150008851500082A
S31508000040851500088515000885150008851500081A
S31508000050851500088515000885150008851500080A
S3150800006085150008851500088515000885150008FA
S3150800007085150008851500088515000885150008EA
S3150800008085150008851500088515000885150008DA
S3150800009085150008851500088515000885150008CA
S315080000A085150008851500088515000885150008BA
S315080000B085150008851500088515000885150008AA
S315080000C0851500088515000885150008851500089A
S315080000D0851500088515000885150008851500088A
S315080000E0851500088515000885150008851500087A
S315080000F0851500088515000885150008851500086A
S315080001008515000885150008851500088515000859
S315080001108515000885150008851500088515000849
S315080001208515000885150008851500088515000839
S315080001308515000885150008851500088515000829
S315080001408515000885150008851500088515000819
S315080001502949072291438D4628482949294A00F00A
S3150800016039F8294829492A4A00F034F829482A49F9
S315080001702A4A00F02FF82A482A492B4A00F02AF87A
@ -30,12 +30,12 @@ S315080001B01C481D49884205D00268043003B490479C
S315080001C003BCF7E700208646EC4600200021214ABA
S315080001D09047FEE7884207D0521A05D003780130C7
S315080001E00B700131013AF9D17047884202D002708A
S315080001F00130FAE770470000CC090020E025000826
S315080001F00130FAE770470000CC090020C82500083E
S3150800020000000020EB0000205802000858020008F1
S315080002101C230008E025000800000020000000203C
S315080002201C2300081C2300081C2300081C230008A4
S315080002301C2300081C2300081C2300081C23000894
S31508000240E0250008EC0000204C0700204C070020A1
S3150800021020230008C8250008000000200000002050
S315080002202023000820230008202300082023000894
S315080002302023000820230008202300082023000884
S31508000240C8250008EC0000204C0700204C070020B9
S30D08000250CC070020AD020008EE
S315080002580D4B1B7883B90D4A936943F010039361D4
S315080002680B4B5A6822F470425A605A6842F4E042C4
@ -49,7 +49,7 @@ S315080002D81A601A6822F480221A605A6822F4FE0202
S315080002E85A604FF41F029A601A6842F480321A60FC
S315080002F8194640F2DC520B6803F400330193009B5D
S3150800030801330093019B13B9009B9342F3D12F4BFA
S315080003181B6813F4003F03D167212D4801F0B0FD8F
S315080003181B6813F4003F03D167212D4801F0B2FD8D
S315080003282C4B1A6842F010021A601A6822F0030267
S315080003381A601A6842F002021A60A3F580535A68CE
S315080003485A605A6842F400525A605A6842F48062FF
@ -59,9 +59,9 @@ S31508000378FBD0164B5A6822F003025A605A6842F0B4
S3150800038802025A601A46536803F00C03082BFAD17E
S315080003980E4B9A6942F004029A610F4A116821F0D5
S315080003A80F011160116841F0040111605A6822F4BE
S315080003B880025A60DA6942F40002DA6101F090FDB7
S315080003C801F09CFDFCE700BF0000FFF800100240A2
S315080003D81C230008002002400008014008B520B97F
S315080003B880025A60DA6942F40002DA6101F092FDB5
S315080003C801F09EFDFCE700BF0000FFF800100240A0
S315080003D820230008002002400008014008B520B97B
S315080003E8064B1B6801221A8208BD054B1B681B6849
S315080003F89847024B18680A3008BD00BF1401002048
S315080004081801002008B520B9064B1B6801221A8274
@ -304,8 +304,8 @@ S315080012C80643034A1380034A13607047445C004088
S315080012D81C010020405C004070B50E4600F07F05F2
S315080012E82846FFF7D3FF04462846FFF791FF22460C
S315080012F801463046FFF79CFE204670BD08B500F04B
S315080013082DFD08BD08B500F075FD08BD08B5034BE9
S315080013181B68052B01D100F021FD08BD2C01002012
S315080013082BFD08BD08B500F073FD08BD08B5034BED
S315080013181B68052B01D100F01FFD08BD2C01002014
S3150800132808B51A4B1B689BB2194A13801288194BC1
S315080013381B88134003F400739BB253B14FF6FF5250
S31508001348124B1A60144A13780133DBB21370FFF78D
@ -322,7 +322,7 @@ S315080013E842B99A78212A07D0022070470220704706
S315080013F8022070470220704710B5054A9A610024F2
S315080014085C82204600F09AF8204610BD1401002098
S31508001418451500080220704721B9002814BF022084
S31508001428002070470220704710B500F00DFD054BE7
S31508001428002070470220704710B500F00BFD054BE9
S315080014381B6800249C7200F089F8FFF73DFF024BF1
S315080014481C6010BD140100202C01002010B5264B85
S315080014581B6800249C72254AD2795A72DC72204687
@ -334,7 +334,7 @@ S315080014A80120FFF7DDFD4FF480710120FFF782FE6A
S315080014B8C0210120FFF78EFE40210120FFF7B6FE66
S315080014C840210120FFF7C0FE4FF440510120FFF7E5
S315080014D8F3FD20210120FFF7D1FD2046FFF7E0FBA9
S315080014E80122044B1A6010BD14010020C02300080D
S315080014E80122044B1A6010BD14010020C423000809
S315080014F85C0000202C01002008B50249FFF78CF98A
S3150800150808BD00BFB800002008B50249FFF784F9EE
S3150800151808BD00BF5400002008B5064B1B68DB78D9
@ -343,283 +343,281 @@ S31508001538002008BD14010020C000002008B5024993
S31508001548FFF76AF908BD00BFB000002008B50120FA
S31508001558FEF77EFE064B01221A6000201860054A2F
S3150800156810604FF4E05204490A801A6008BD00BFAB
S31508001578405C0040445C00401C01002072B670477D
S3150800158862B6704708B53821014800F079FC08BDED
S315080015982824000808B5FFF7F1FF08BD10B500F0C4
S315080015A86DFAA0B1FEF776FE88B100F0CFFC00F020
S315080015B889FA00F067FA20F0604020F07F00044BB3
S315080015C8186000F05FFA4468FFF7DAFFA04710BD15
S315080015D808ED00E072B170B50D46561EB6B2441E47
S315080015E8064415F8013B04F8013F00F0DFFCB44255
S315080015F8F7D170BD704700BF024A136943F08003EC
S31508001608136170470020024070B506460B4D00244A
S3150800161800F0CCFC2B68B3420AD86A6813449E4289
S3150800162806D204EB4401054B03EB8101087A70BD29
S3150800163801340C350D2CEBD1FF2070BDB8240008F9
S315080016482DE9F04107460068FFF7DEFFFF2849D075
S31508001658264B274A5A6002F188325A603422DA60E1
S31508001668DB6813F0010304D0FFF7C6FF0020BDE8C6
S31508001678F0811E490A6942F001020A610C463A6875
S3150800168803EB02081E1DBD59A9B29952E36813F067
S31508001698010F05D000F08AFCE36813F0010FF9D1B1
S315080016A82B0CA8F80230E36813F0010F05D000F0F8
S315080016B87DFCE36813F0010FF9D1D8F800309D4294
S315080016C805D13346B6F5007FD9D1012400E00024B8
S315080016D8064A136923F001031361FFF78DFF2046B5
S315080016E8BDE8F0810020BDE8F08100BF0020024077
S315080016F82301674538B50D46114B984207D004466D
S31508001708104B994208D0FFF79BFF08B911E00E4C19
S31508001718C5F308037BB900E0094C2368AB420CD033
S31508001728204640F8045B4FF400722946FFF752FF3B
S3150800173803E0002038BD002038BD204638BD00BF6C
S315080017483001002000600008340300202DE9F0412C
S3150800175806460C4617461D4621F4FF7828F0010868
S315080017680368B3F1FF3F06D140F8048B4FF40072C3
S315080017784146FFF72FFF3368984505D0414630465E
S31508001788FFF7B8FF0646E0B13368E41A3444043470
S3150800179808F5007800F00AFC331DE31AB3F5007F54
S315080017A806D341463046FFF7A5FF064660B1041D35
S315080017B817F8013B04F8013B013DEBD10120BDE8D0
S315080017C8F0810020BDE8F0810020BDE8F08100BF67
S315080017D84FF0FF33024A1360024A1360704700BF8E
S315080017E8340300203001002070B504460D4616461D
S315080017F8FFF70AFFFF2814D0681E2044FFF704FFE6
S31508001808FF2810D024F4FF7323F00103074A9342F4
S315080018182B46324621460CBF05480648FFF796FF71
S3150800182870BD002070BD002070BD00BF00600008B4
S3150800183830010020340300202DE9F04106460C4605
S31508001848FFF7E2FE0546601E3044FFF7DDFE8542D7
S3150800185800F286800446EB1EDBB2FB2B00F283807F
S315080018680F2800F28380434B434A5A6002F18832B4
S315080018785A603422DA60DB6813F0010F04D0FFF7E8
S31508001888BBFE0020BDE8F0813A4A136943F002031B
S3150800189813613A4FB846002600F088FB98F80830D6
S315080018A8AB4205D106EB4602344B53F8225006E004
S315080018B8013608F10C080D2EEED14FF0FF35B84663
S315080018C8002600F073FB98F80830A34205D106EB0A
S315080018D846022A4B53F8228006E0013608F10C081E
S315080018E80D2EEED14FF0FF38002600F05FFB3B7A4D
S315080018F8A34206D106EB4602204B03EB8202536845
S3150800190804E001360C370D2EEFD10023C5EB080885
S315080019184344C3F38F23CBB15E1EB6B205F5806385
S3150800192803EB8626134C6561236943F0400323615C
S31508001938E36813F0010F05D000F038FBE36813F0ED
S31508001948010FF9D105F58065B542ECD1094A136945
S3150800195823F002031361FFF74FFE0120BDE8F0816B
S315080019680020BDE8F0810020BDE8F0810020BDE830
S31508001978F08100BF0020024023016745B82400080B
S31508001988114B1B68B3F1FF3F18D000B583B00E4B57
S3150800199859689A681144DA6811441A6911445A69E7
S315080019A811449A691144DA698B185B4202AA42F80B
S315080019B8043D04210548FFF717FF01E00120704799
S315080019C803B05DF804FB00BF300100205061000831
S315080019D80D4B1A6804331B6813440C4A12681344DF
S315080019E80B4A126813440B4A11680B4404321268EE
S315080019F81A44094B1B681344084A1268D3420CBF99
S31508001A0801200020704700BF006000080860000831
S31508001A180C6000081060000818600008506100088B
S31508001A2808B50C4B1B68B3F1FF3F04D00948FFF70C
S31508001A3807FE034660B1084B1B68B3F1FF3F06D0A3
S31508001A480548FFF7FDFD031C18BF012300E0012325
S31508001A58184608BD300100203403002000487047A6
S31508001A680060000808B5FFF7B3FE08BD08B5FFF71C
S31508001A78BBFE08BD08B5FFF7DFFE08BD08B5FFF7CA
S31508001A88A7FF08BD08B5FFF7E9FF08BD08B5FFF7C2
S31508001A9877FF034610B1FFF7C3FF0346184608BD8C
S31508001AA8054B00221A60054959609A600521196094
S31508001AB8034B1A60704700BF10E000E03F190100A9
S31508001AC8380500200022014B1A60704710E000E034
S31508001AD8044B1B6813F4803F03D0034A1368013389
S31508001AE81360704710E000E03805002008B5FFF7D6
S31508001AF8EFFF014B186808BD38050020A2B110B4DD
S31508001B084C1C531EDBB201EB430103310022030FC1
S31508001B18092B94BF3033373304F8013C000104F825
S31508001B28022B8C42F3D110BC704700BF38B5044667
S31508001B380D46012804D94FF4FC71154800F0A0F9A0
S31508001B4804EB4403134A02EBC3035A7C1B7C9A42F0
S31508001B581AD004EB44030F4A02EBC303DA6815707C
S31508001B685A7C01325A74DA680132DA605B689A423A
S31508001B780CD9084A61000B1902EBC3030C4452F846
S31508001B883420DA60012038BD002038BD012038BD70
S31508001B9854250008C405002038B504460D46012812
S31508001BA804D940F21A21134800F06AF904EB4403F1
S31508001BB8114A02EBC303587CD8B104EB440302EB81
S31508001BC8C3039A6812782A705A7C013A5A749A6832
S31508001BD801329A605B689A420AD9074A61000B196A
S31508001BE802EBC3030C4452F834209A60012038BD2E
S31508001BF8012038BD54250008C405002038B5134B04
S31508001C0800229A7403F118015961012483F82A40BD
S31508001C18DA6240251D740E4908199860D8605A7406
S31508001C281860481958600A700A490A6083F82850E3
S31508001C38094908191862586283F8292098614A19C7
S31508001C48DA610C70FFF782F838BD00BFC4050020BA
S31508001C5878060020C0050020F405002008B50020F5
S31508001C68FEF7F6FA08BD00BF2DE9F04105460C4611
S31508001C783F2903D99921144800F002F92146134B44
S31508001C881878FFF753FF012803D09D210E4800F066
S31508001C98F7F8A3B2B3B16C1E013B9BB21D440B4EB9
S31508001CA8DFF82480A62700F081F914F8011F307898
S31508001CB8FFF73CFF012803D03946404600F0E0F814
S31508001CC8AC42F0D1BDE8F08154250008780600201A
S31508001CD838B50546FFF724FB1B4B1C7884B91B4906
S31508001CE81B4B1878FFF758FF01282AD1174B1B7882
S31508001CF813B30122144B1A700022164B1A7020E0EF
S31508001D08144B1978144B1944114B1878FFF744FFEC
S31508001D18012813D10F4B1A780132D2B21A700B4B1D
S31508001D281B7893420CD10C492846FFF753FC00222E
S31508001D38054B1A70012404E01C4602E0002400E062
S31508001D480024204638BD00BFBD0500203C050020FC
S31508001D58F4050020BC0500203D0500202DE9F041CA
S31508001D6882B0204B1C78012C04D940F23A211E482F
S31508001D7800F086F804EB44041C4B03EBC404647CAB
S31508001D886CB3402C28BF4024A046CCB1184D6C1E15
S31508001D9808F1FF33DBB21D44124E134F0DF107014C
S31508001DA83078FFF7F9FE012804D040F24911384681
S31508001DB800F066F89DF8073004F8013FAC42EDD10B
S31508001DC81FFA88F422464FF480710948FFF716F976
S31508001DD821460120FFF72AFA0120FFF78BF902B0FE
S31508001DE8BDE8F0817806002054250008C4050020BF
S31508001DF87C0500202DE9F04110490120FFF76CFA0F
S31508001E0880B2B0B10D4D6C1E431E9BB21D440C4EDC
S31508001E18DFF830804FF4B77714F8011F3078FFF7EA
S31508001E2885FE012803D03946404600F029F8AC4219
S31508001E38F2D10120FFF772F9BDE8F08138060020D3
S31508001E48F40500205425000838B50A4B1B680A4AC9
S31508001E5814680432106818180AD0084D082229464A
S31508001E68FFF74CFE042205F110012046FFF746FE4F
S31508001E7838BD00BFE8F7FF1FECF7FF1F0200002078
S31508001E8808B500F093F8FCE708B500F089F80128CA
S31508001E9810D0094B1B78012B0CD1FFF727FE074BEF
S31508001EA81B6803F5FA63984204D30022024B1A709A
S31508001EB8FFF774FB08BD00BFB9060020BC06002062
S31508001EC808B50122044B1A70FFF710FE034B186079
S31508001ED8FFF7DAFF08BD00BFB9060020BC060020D8
S31508001EE808B5FFF757FB00F05FF8FFF7D9FDFFF7CE
S31508001EF8B9FD00F00DF8FFF7E3FF08BD08B500F0D7
S31508001F0855F8FFF7E5FD00F00FF8FFF7BDFF08BD28
S31508001F1808B500F057F8FFF771FE0222014B1A7050
S31508001F2808BD00BFEA00002008B50648FFF7D0FE3E
S31508001F38012805D10222044B1A70024800F060F8FD
S31508001F4808BD00BFC0060020EA00002008B5FFF754
S31508001F5885FE08BD08B5054B1B78022B02D1C9B208
S31508001F68FFF782FE00F044F808BD00BFEA0000202B
S31508001F78044B1B78012B03D9032B01D03F2070474C
S31508001F8800207047EA000020044B1B78012B03D970
S31508001F98032B01D03F20704700207047EA00002035
S31508001FA808B500F01DF808BD704700BF704700BFA8
S31508001FB8034BFE22DA7018710222A3F844207047F0
S31508001FC800070020054B00221A709A6483F84220FD
S31508001FD8A3F844209A705A70704700BF000700207B
S31508001FE8024B1878003018BF0120704700070020F8
S31508001FF80022024B83F84220704700BF00070020E2
S3150800200838B50378FF2B1BD1AD4C00236370012527
S315080020182570FF22E270102222716371FFF7A8FF6C
S31508002028A071FFF7B1FFE071FFF7AEFF000A207253
S315080020386572A5720823A4F84430FFF713FD46E134
S3150800204804469F4A1278012A40F06181C93B352B1C
S3150800205800F23A81DFE813F0C000380138012F0191
S31508002068380138012601DB00150105013801380158
S31508001578405C0040445C00401C01002008B5382146
S31508001588014800F07FFC08BD2C24000808B500F0C7
S3150800159875FC08BD10B500F06FFAA0B1FEF77AFE23
S315080015A888B100F0D5FC00F08BFA00F069FA20F053
S315080015B8604020F07F00044B186000F061FA446828
S315080015C800F05EFCA04710BD08ED00E072B170B5EA
S315080015D80D46561EB6B2441E064415F8013B04F8D5
S315080015E8013F00F0E5FCB442F7D170BD704700BF73
S315080015F8024A136943F080031361704700200240CA
S31508001608F8B506460C4C04F1A807002500F0D0FCEE
S315080016182368B3420AD8626813449E4206D205EB89
S315080016284501054B03EB8101087AF8BD01350C34F1
S31508001638BC42EBD1FF20F8BD942400082DE9F041FF
S3150800164807460068FFF7DCFFFF2849D0264B274ADC
S315080016585A6002F188325A603422DA60DB6813F07D
S31508001668010304D0FFF7C4FF0020BDE8F0811E4936
S315080016780A6942F001020A610C463A6803EB020855
S315080016881E1DBD59A9B29952E36813F0010F05D07A
S3150800169800F08EFCE36813F0010FF9D12B0CA8F8BB
S315080016A80230E36813F0010F05D000F081FCE36807
S315080016B813F0010FF9D1D8F800309D4205D1334609
S315080016C8B6F5007FD9D1012400E00024064A13693B
S315080016D823F001031361FFF78BFF2046BDE8F0816D
S315080016E80020BDE8F08100BF0020024023016745BD
S315080016F838B50D46114B984207D00446104B994207
S3150800170808D0FFF79BFF08B911E00E4CC5F308038C
S315080017187BB900E0094C2368AB420CD0204640F858
S31508001728045B4FF400722946FFF750FF03E00020D8
S3150800173838BD002038BD204638BD00BF300100201E
S3150800174800400008340300202DE9F04106460C46FF
S3150800175817461D4621F4FF7828F001080368B3F1F7
S31508001768FF3F06D140F8048B4FF400724146FFF755
S315080017782DFF3368984505D041463046FFF7B8FF30
S315080017880646E0B13368E41A3444043408F50078A8
S3150800179800F00EFC331DE31AB3F5007F06D3414665
S315080017A83046FFF7A5FF064660B1041D17F8013B4A
S315080017B804F8013B013DEBD10120BDE8F08100208A
S315080017C8BDE8F0810020BDE8F08100BF4FF0FF3387
S315080017D8024A1360024A1360704700BF34030020A8
S315080017E83001002070B504460D461646FFF708FF77
S315080017F8FF2814D0681E2044FFF702FFFF2810D0E0
S3150800180824F4FF7323F00103074A93422B46324612
S3150800181821460CBF05480648FFF796FF70BD00200D
S3150800182870BD002070BD00BF0040000830010020D0
S31508001838340300202DE9F04106460C46FFF7E0FE82
S315080018480546601E3044FFF7DBFE854200F28680B7
S315080018580446AB1EDBB2FC2B00F283800F2800F28D
S315080018688380434B434A5A6002F188325A603422CD
S31508001878DA60DB6813F0010F04D0FFF7B9FE002021
S31508001888BDE8F0813A4A136943F0020313613A4FF7
S31508001898B846002600F08CFB98F80830AB4205D10C
S315080018A806EB4602344B53F8225006E0013608F197
S315080018B80C080E2EEED14FF0FF35B846002600F07C
S315080018C877FB98F80830A34205D106EB46022A4B5F
S315080018D853F8228006E0013608F10C080E2EEED1E0
S315080018E84FF0FF38002600F063FB3B7AA34206D187
S315080018F806EB4602204B03EB8202536804E00136E6
S315080019080C370E2EEFD10023C5EB08084344C3F362
S315080019188F23CBB15E1EB6B205F5806303EB862628
S31508001928134C6561236943F040032361E36813F0A8
S31508001938010F05D000F03CFBE36813F0010FF9D15D
S3150800194805F58065B542ECD1094A136923F0020307
S315080019581361FFF74DFE0120BDE8F0810020BDE8C0
S31508001968F0810020BDE8F0810020BDE8F08100BFC5
S31508001978002002402301674594240008114B1B6880
S31508001988B3F1FF3F18D000B583B00E4B59689A6873
S315080019981144DA6811441A6911445A6911449A6952
S315080019A81144DA698B185B4202AA42F8043D0421FD
S315080019B80548FFF717FF01E00120704703B05DF8F7
S315080019C804FB00BF30010020504100080D4B1A687F
S315080019D804331B6813440C4A126813440B4A1268EA
S315080019E813440B4A11680B44043212681A44094B0B
S315080019F81B681344084A1268D3420CBF012000200A
S31508001A08704700BF00400008084000080C4000085E
S31508001A1810400008184000085041000808B50C4B4B
S31508001A281B68B3F1FF3F04D00948FFF707FE0346D2
S31508001A3860B1084B1B68B3F1FF3F06D00548FFF7AE
S31508001A48FDFD031C18BF012300E00123184608BD45
S31508001A583001002034030020004870470040000881
S31508001A6808B5FFF7B3FE08BD08B5FFF7BBFE08BD06
S31508001A7808B5FFF7DFFE08BD08B5FFF7A7FF08BDDD
S31508001A8808B5FFF7E9FF08BD08B5FFF777FF03466E
S31508001A9810B1FFF7C3FF0346184608BD054B0022D9
S31508001AA81A60054959609A6005211960034B1A603E
S31508001AB8704700BF10E000E03F1901003805002014
S31508001AC80022014B1A60704710E000E0044B1B68BF
S31508001AD813F4803F03D0034A136801331360704731
S31508001AE810E000E03805002008B5FFF7EFFF014BC6
S31508001AF8186808BD38050020A2B110B44C1C531E3E
S31508001B08DBB201EB430103310022030F092B94BF13
S31508001B183033373304F8013C000104F8022B8C42B1
S31508001B28F3D110BC704700BF38B504460D460128E6
S31508001B3804D94FF4FC71154800F0A4F904EB4403E2
S31508001B48134A02EBC3035A7C1B7C9A421AD004EB4D
S31508001B5844030F4A02EBC303DA6815705A7C01324C
S31508001B685A74DA680132DA605B689A420CD9084A0C
S31508001B7861000B1902EBC3030C4452F83420DA60EF
S31508001B88012038BD002038BD012038BD3C25000895
S31508001B98C405002038B504460D46012804D940F284
S31508001BA81A21134800F06EF904EB4403114A02EBB4
S31508001BB8C303587CD8B104EB440302EBC3039A6801
S31508001BC812782A705A7C013A5A749A6801329A60CD
S31508001BD85B689A420AD9074A61000B1902EBC303E4
S31508001BE80C4452F834209A60012038BD012038BDCB
S31508001BF83C250008C405002038B5134B00229A7402
S31508001C0803F118015961012483F82A40DA6240254C
S31508001C181D740E4908199860D8605A7418604819CE
S31508001C2858600A700A490A6083F828500949081949
S31508001C381862586283F8292098614A19DA610C7083
S31508001C48FFF784F838BD00BFC405002078060020D1
S31508001C58C0050020F405002008B50020FEF7F8FAAC
S31508001C6808BD00BF2DE9F04105460C463F2903D9B2
S31508001C789921144800F006F92146134B1878FFF7FE
S31508001C8853FF012803D09D210E4800F0FBF8A3B2A4
S31508001C98B3B16C1E013B9BB21D440B4EDFF8248082
S31508001CA8A62700F085F914F8011F3078FFF73CFFDE
S31508001CB8012803D03946404600F0E4F8AC42F0D192
S31508001CC8BDE8F0813C2500087806002038B50546A9
S31508001CD8FFF726FB1B4B1C7884B91B491B4B187846
S31508001CE8FFF758FF01282AD1174B1B7813B301228F
S31508001CF8144B1A700022164B1A7020E0144B1978E8
S31508001D08144B1944114B1878FFF744FF012813D1CF
S31508001D180F4B1A780132D2B21A700B4B1B789342C2
S31508001D280CD10C492846FFF751FC0022054B1A70BE
S31508001D38012404E01C4602E0002400E000242046B2
S31508001D4838BD00BFBD0500203C050020F40500206D
S31508001D58BC0500203D0500202DE9F04182B0204B46
S31508001D681C78012C04D940F23A211E4800F08AF85A
S31508001D7804EB44041C4B03EBC404647C6CB3402C8E
S31508001D8828BF4024A046CCB1184D6C1E08F1FF3375
S31508001D98DBB21D44124E134F0DF107013078FFF7D9
S31508001DA8F9FE012804D040F24911384600F06AF8CD
S31508001DB89DF8073004F8013FAC42EDD11FFA88F4C4
S31508001DC822464FF480710948FFF718F92146012081
S31508001DD8FFF72CFA0120FFF78DF902B0BDE8F0816C
S31508001DE8780600203C250008C40500207C0500204C
S31508001DF82DE9F04110490120FFF76EFA80B2B0B11B
S31508001E080D4D6C1E431E9BB21D440C4EDFF83080E8
S31508001E184FF4B77714F8011F3078FFF785FE0128C5
S31508001E2803D03946404600F02DF8AC42F2D10120DD
S31508001E38FFF774F9BDE8F08138060020F40500209C
S31508001E483C25000838B50A4B1B680A4A1468043248
S31508001E58106818180AD0084D08222946FFF74CFEBC
S31508001E68042205F110012046FFF746FE38BD00BFDB
S31508001E78E8F7FF1FECF7FF1F0200002072B670474D
S31508001E8862B6704708B500F093F8FCE708B500F0A5
S31508001E9889F8012810D0094B1B78012B0CD1FFF7BC
S31508001EA823FE074B1B6803F5FA63984204D30022FE
S31508001EB8024B1A70FFF76EFB08BD00BFB906002073
S31508001EC8BC06002008B50122044B1A70FFF70CFE61
S31508001ED8034B1860FFF7DAFF08BD00BFB9060020F4
S31508001EE8BC06002008B5FFF751FB00F05FF8FFF7BE
S31508001EF8D5FDFFF7B5FD00F00DF8FFF7E3FF08BDC0
S31508001F0808B500F055F8FFF7E1FD00F00FF8FFF700
S31508001F18BDFF08BD08B500F057F8FFF76DFE0222A9
S31508001F28014B1A7008BD00BFEA00002008B506482C
S31508001F38FFF7CCFE012805D10222044B1A70024885
S31508001F4800F060F808BD00BFC0060020EA000020BF
S31508001F5808B5FFF781FE08BD08B5054B1B78022BA7
S31508001F6802D1C9B2FFF77EFE00F044F808BD00BFEB
S31508001F78EA000020044B1B78012B03D9032B01D058
S31508001F883F20704700207047EA000020044B1B7862
S31508001F98012B03D9032B01D03F2070470020704737
S31508001FA8EA00002008B500F01DF808BD704700BF14
S31508001FB8704700BF034BFE22DA7018710222A3F895
S31508001FC84420704700070020054B00221A709A64BF
S31508001FD883F84220A3F844209A705A70704700BFC5
S31508001FE800070020024B1878003018BF01207047F8
S31508001FF8000700200022024B83F84220704700BFE2
S315080020080007002038B50378FF2B1BD1AD4C0023F9
S31508002018637001252570FF22E27010222271637110
S31508002028FFF7A8FFA071FFF7B1FFE071FFF7AEFF52
S31508002038000A20726572A5720823A4F84430FFF7CF
S315080020480FFD46E104469F4A1278012A40F061814D
S31508002058C93B352B00F23A81DFE813F0C000380196
S3150800206838012F01380138012601DB001501050161
S315080020783801380138013801380138013801380182
S315080020883801380138013801380138013801380172
S315080020983801380138013801380138013801380162
S315080020A838013801380138013801380176005100FD
S315080020B836006D0038013801380192003801A4004D
S315080020C8A800B6004578FFF753FF0138854203DDB7
S315080020D82220FFF76DFFFAE0794D6278A96C281D72
S315080020E8FFF778FAFF23EB706378AA6C1344AB649E
S315080020F863780133A5F84430E9E04578FFF738FFF7
S315080021080138854203DD2220FFF752FFDFE06168C8
S315080021186B4DA9646278281DFFF75CFAFF23EB70FC
S315080021286378AA6C1344AB6463780133A5F8443022
S31508002138CDE0634BFF22DA7042689A640122A3F85D
S315080021484420DEE05E4BFF22DA709A6C406840B1A4
S315080021581044002312F8011B0B44DBB29042F9D154
S3150800216800E00023564AC2F80730012313710023FA
S31508002178537193710823A2F84430C2E0504BFF22EA
S31508002188DA70504A9A6400221A715A719A710721AC
S31508002198D9711A725A729A720822A3F84420B0E0C2
S315080021A80020FFF705FF92E0454BFF22DA70002270
S315080021B81A71597859719A71DA711A720622A3F83E
S315080021C844209EE03E4B00221A705A70FF22DA70AD
S315080021D80122A3F8442094E0394B9D6CFFF7C8FE0A
S315080021E8621C411E2846FFF741FC18B93120FFF743
S315080021F8DFFE6CE0324CFF23E370FFF7B9FE0138C7
S31508002208A36C0344A3640123A4F8443079E0457811
S31508002218FFF7AEFE0238854203DD2220FFF7C8FE27
S3150800222855E0274BFF22DA700122A3F8442061788B
S3150800223839B9FFF72BFC002849D13120FFF7B8FE3A
S3150800224845E0A21C1E4B986CFFF710FC18B9312004
S31508002258FFF7AEFE3BE01A4A6378916C0B44936429
S3150800226835E0174CFF23E370002525716571FFF7E4
S315080022787FFEA071E571257265720723A4F84430BC
S315080022883FE041680E4B986CFFF7F4FB18B931200C
S31508002298FFF78EFE1BE00A4BFF22DA700122A3F82D
S315080022A844202EE0FFF77AF9054BFF22DA7001225F
S315080022B8A3F8442025E03120FFF77AFE07E000BF9F
S315080022C800070020D82500082020FFF771FE104BCC
S315080022D893F84230012B02D11020FFF769FE0C4B08
S315080022E8B3F94410002912DD0948012380F8423061
S315080022F889B20330FFF72EFE38BD054BB3F94410F3
S31508002308F2E7034B93F84230012BF6D1E4E738BDE0
S30908002318000700208C
S3150800231C433A2F576F726B2F736F667477617265BA
S3150800232C2F4F70656E424C542F5461726765742F2B
S3150800233C44656D6F2F41524D434D335F53544D33A6
S3150800234C3246315F4F6C696D65785F53544D333245
S3150800235C483130335F43726F7373776F726B732FB9
S3150800236C426F6F742F6964652F2E2E2F6D61696EFF
S3150800237C2E6300001201100100000040501DAC60D5
S3150800238C0001010203010000040309042603570097
S3150800239C69006E005500530042002000420075008B
S315080023AC6C006B0020004400650076006900630031
S315080023BC6500000009022000010100C03209040072
S315080023CC0002FF0000040705810240000007050112
S315080023DC024000001A034F00700065006E004200B0
S315080023EC4C00540020005500730065007200000074
S315080023FC2C03570069006E0055005300420020005C
S3150800240C420075006C006B00200049006E007400D9
S3150800241C650072006600610063006500433A2F5739
S3150800242C6F726B2F736F6674776172652F4F706559
S3150800243C6E424C542F5461726765742F44656D6FE8
S3150800244C2F41524D434D335F53544D333246315F12
S3150800245C4F6C696D65785F53544D33324831303360
S3150800246C5F43726F7373776F726B732F426F6F74F0
S3150800247C2F6964652F2E2E2F2E2E2F2E2E2F2E2EB5
S3150800248C2F536F757263652F41524D434D335F530E
S3150800249C544D333246312F43726F7373776F726BA9
S315080024AC732F766563746F72732E63000060000871
S315080024BC0020000003000000008000080020000037
S315080024CC0400000000A00008002000000500000021
S315080024DC00C00008002000000600000000E000080C
S315080024EC0020000007000000000001080020000082
S315080024FC0800000000200108002000000900000068
S3150800250C00400108002000000A00000000600108D5
S3150800251C002000000B0000000080010800200000CD
S3150800252C0C00000000A00108002000000D000000AF
S3150800253C00C00108002000000E00000000E00108A1
S3150800254C002000000F000000433A2F576F726B2FC4
S3150800255C736F6674776172652F4F70656E424C5453
S3150800256C2F5461726765742F44656D6F2F41524DF8
S3150800257C434D335F53544D333246315F4F6C696D5F
S3150800258C65785F53544D3332483130335F43726F3D
S3150800259C7373776F726B732F426F6F742F696465E1
S315080025AC2F2E2E2F2E2E2F2E2E2F2E2E2F536F757F
S315080025BC7263652F41524D434D335F53544D33323D
S315080025CC46312F7573622E63000000004F70656EDE
S309080025DC424C54000B
S315080025E01C0353004500520031003200330034000A
S315080025F0350036003700380039003000051300086A
S31508002600510D0008510D0008510D0008510D000824
S31508002610510D0008510D00080D130008510D000852
S31508002620510D0008510D0008510D0008510D000804
S31508002630510D0008C02300082000000031140008CE
S3150800264055140008CD130008D1130008D513000847
S315080026501D140008211400080115000811150008AA
S31508002660211500080000000040000000510D000878
S31508002670A9130008510D0008510D0008510D000856
S31508002680510D0008510D0008510D0008C11300082E
S31508002690D223000809000000802300081200000069
S315080026A09423000804000000E02300081A00000034
S315080026B09823000826000000000000201C000000E7
S310080026C0FC2300082C000000030104A6
S315080020A83801380138013801380138013801380152
S315080020B87600510036006D00380138013801920063
S315080020C83801A400A800B6004578FFF753FF013881
S315080020D8854203DD2220FFF76DFFFAE0794D627825
S315080020E8A96C281DFFF772FAFF23EB706378AA6CB0
S315080020F81344AB6463780133A5F84430E9E04578BE
S31508002108FFF738FF0138854203DD2220FFF752FF23
S31508002118DFE061686B4DA9646278281DFFF756FAF7
S31508002128FF23EB706378AA6C1344AB6463780133B6
S31508002138A5F84430CDE0634BFF22DA7042689A640A
S315080021480122A3F84420DEE05E4BFF22DA709A6C7F
S31508002158406840B11044002312F8011B0B44DBB257
S315080021689042F9D100E00023564AC2F80730012305
S3150800217813710023537193710823A2F84430C2E0FF
S31508002188504BFF22DA70504A9A6400221A715A7123
S315080021989A710721D9711A725A729A720822A3F883
S315080021A84420B0E00020FFF705FF92E0454BFF22E8
S315080021B8DA7000221A71597859719A71DA711A7295
S315080021C80622A3F844209EE03E4B00221A705A7055
S315080021D8FF22DA700122A3F8442094E0394B9D6C5B
S315080021E8FFF7C8FE621C411E2846FFF73DFC18B9D2
S315080021F83120FFF7DFFE6CE0324CFF23E370FFF770
S31508002208B9FE0138A36C0344A3640123A4F8443037
S3150800221879E04578FFF7AEFE0238854203DD2220CD
S31508002228FFF7C8FE55E0274BFF22DA700122A3F80C
S315080022384420617839B9FFF727FC002849D13120AD
S31508002248FFF7B8FE45E0A21C1E4B986CFFF70CFC7E
S3150800225818B93120FFF7AEFE3BE01A4A6378916C4D
S315080022680B44936435E0174CFF23E370002525716A
S315080022786571FFF77FFEA071E57125726572072300
S31508002288A4F844303FE041680E4B986CFFF7F0FB22
S3150800229818B93120FFF78EFE1BE00A4BFF22DA70C9
S315080022A80122A3F844202EE0FFF774F9054BFF2214
S315080022B8DA700122A3F8442025E03120FFF77AFED8
S315080022C807E000BF00070020C02500082020FFF708
S315080022D871FE104B93F84230012B02D11020FFF7FC
S315080022E869FE0C4BB3F94410002912DD094801238D
S315080022F880F8423089B20330FFF72EFE38BD054B09
S31508002308B3F94410F2E7034B93F84230012BF6D1A0
S30D08002318E4E738BD00070020C8
S31508002320433A2F576F726B2F736F667477617265B6
S315080023302F4F70656E424C542F5461726765742F27
S3150800234044656D6F2F41524D434D335F53544D33A2
S315080023503246315F4F6C696D65785F53544D333241
S31508002360483130335F43726F7373776F726B732FB5
S31508002370426F6F742F6964652F2E2E2F6D61696EFB
S315080023802E6300001201100100000040501DAC60D1
S315080023900001010203010000040309042603570093
S315080023A069006E0055005300420020004200750087
S315080023B06C006B002000440065007600690063002D
S315080023C06500000009022000010100C0320904006E
S315080023D00002FF000004070581024000000705010E
S315080023E0024000001A034F00700065006E004200AC
S315080023F04C00540020005500730065007200000070
S315080024002C03570069006E00550053004200200057
S31508002410420075006C006B00200049006E007400D5
S31508002420650072006600610063006500433A2F5735
S315080024306F726B2F736F6674776172652F4F706555
S315080024406E424C542F5461726765742F44656D6FE4
S315080024502F41524D434D335F53544D333246315F0E
S315080024604F6C696D65785F53544D3332483130335C
S315080024705F43726F7373776F726B732F426F6F74EC
S315080024802F6964652F2E2E2F766563746F72732EEF
S315080024906300000000400008002000000200000061
S315080024A0006000080020000003000000008000080B
S315080024B0002000000400000000A000080020000022
S315080024C00500000000C0000800200000060000000B
S315080024D000E00008002000000700000000000108D6
S315080024E0002000000800000000200108002000006D
S315080024F00900000000400108002000000A00000052
S3150800250000600108002000000B00000000800108A0
S31508002510002000000C00000000A0010800200000B8
S315080025200D00000000C00108002000000E00000099
S3150800253000E00108002000000F000000433A2F5772
S315080025406F726B2F736F6674776172652F4F706544
S315080025506E424C542F5461726765742F44656D6FD3
S315080025602F41524D434D335F53544D333246315FFD
S315080025704F6C696D65785F53544D3332483130334B
S315080025805F43726F7373776F726B732F426F6F74DB
S315080025902F6964652F2E2E2F2E2E2F2E2E2F2E2EA0
S315080025A02F536F757263652F41524D434D335F53F9
S315080025B0544D333246312F7573622E630000000086
S30D080025C04F70656E424C540091
S315080025C81C03530045005200310032003300340022
S315080025D83500360037003800390030000513000882
S315080025E8510D0008510D0008510D0008510D00083D
S315080025F8510D0008510D00080D130008510D00086B
S31508002608510D0008510D0008510D0008510D00081C
S31508002618510D0008C42300082000000031140008E2
S3150800262855140008CD130008D1130008D51300085F
S315080026381D140008211400080115000811150008C2
S31508002648211500080000000040000000510D000890
S31508002658A9130008510D0008510D0008510D00086E
S31508002668510D0008510D0008510D0008C113000846
S31508002678D623000809000000842300081200000079
S315080026889823000804000000E42300081A00000044
S315080026989C23000826000000000000201C000000FB
S310080026A8002400082C000000030104B9
S70508000151A0

View File

@ -120,6 +120,17 @@
#define BOOT_NVM_CHECKSUM_HOOKS_ENABLE (0)
/****************************************************************************************
* F L A S H M E M O R Y D R I V E R C O N F I G U R A T I O N
****************************************************************************************/
/** \brief Enable support for a custom flash layout table. It is located in
* flash_layout.c. This was done because the default flashLayout[] table
* in the bootloader's core has more flash memory reserved for the bootloader
* than is needed for this demo.
*/
#define BOOT_FLASH_CUSTOM_LAYOUT_ENABLE (1)
/****************************************************************************************
* W A T C H D O G D R I V E R C O N F I G U R A T I O N
****************************************************************************************/

View File

@ -0,0 +1,59 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_Crossworks\Boot\flash_layout.c
* \brief Custom flash layout table source file.
* \ingroup Boot_ARMCM3_STM32F1_Olimex_STM32H103_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/** \brief Array wit the layout of the flash memory.
* \details Also controls what part of the flash memory is reserved for the bootloader.
* If the bootloader size changes, the reserved sectors for the bootloader
* might need adjustment to make sure the bootloader doesn't get overwritten.
*/
static const tFlashSector flashLayout[] =
{
/* space is reserved for a bootloader configuration with all supported communication
* interfaces enabled. when for example only UART is needed, than the space required
* for the bootloader can be made a lot smaller here.
*/
/* { 0x08000000, 0x02000, 0}, flash sector 0 - reserved for bootloader */
/* { 0x08002000, 0x02000, 1}, flash sector 1 - reserved for bootloader */
{ 0x08004000, 0x02000, 2}, /* flash sector 2 - 8kb */
{ 0x08006000, 0x02000, 3}, /* flash sector 3 - 8kb */
{ 0x08008000, 0x02000, 4}, /* flash sector 4 - 8kb */
{ 0x0800A000, 0x02000, 5}, /* flash sector 5 - 8kb */
{ 0x0800C000, 0x02000, 6}, /* flash sector 6 - 8kb */
{ 0x0800E000, 0x02000, 7}, /* flash sector 7 - 8kb */
{ 0x08010000, 0x02000, 8}, /* flash sector 8 - 8kb */
{ 0x08012000, 0x02000, 9}, /* flash sector 9 - 8kb */
{ 0x08014000, 0x02000, 10}, /* flash sector 10 - 8kb */
{ 0x08016000, 0x02000, 11}, /* flash sector 11 - 8kb */
{ 0x08018000, 0x02000, 12}, /* flash sector 12 - 8kb */
{ 0x0801A000, 0x02000, 13}, /* flash sector 13 - 8kb */
{ 0x0801C000, 0x02000, 14}, /* flash sector 14 - 8kb */
{ 0x0801E000, 0x02000, 15}, /* flash sector 15 - 8kb */
};
/*********************************** end of flash_layout.c *****************************/

View File

@ -93,15 +93,17 @@
<file file_name="../usb_pwr.c" />
<file file_name="../usb_pwr.h" />
<file file_name="../blt_conf.h" />
<file file_name="../cstart.s" />
<file file_name="../vectors.c" />
<file file_name="../flash_layout.c">
<configuration
Name="THUMB Debug"
build_exclude_from_build="Yes" />
</file>
</folder>
</folder>
<folder Name="Source">
<folder Name="ARMCM3_STM32F1">
<folder Name="Crossworks">
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/cpu_comp.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/cstart.s" />
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/vectors.c" />
</folder>
<file file_name="../../../../Source/ARMCM3_STM32F1/can.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/cpu.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/flash.c" />
@ -111,6 +113,9 @@
<file file_name="../../../../Source/ARMCM3_STM32F1/types.h" />
<file file_name="../../../../Source/ARMCM3_STM32F1/uart.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/usb.c" />
<folder Name="GCC">
<file file_name="../../../../Source/ARMCM3_STM32F1/GCC/cpu_comp.c" />
</folder>
</folder>
<file file_name="../../../../Source/assert.c" />
<file file_name="../../../../Source/assert.h" />
@ -137,7 +142,7 @@
<file file_name="$(TargetsDir)/STM32/STM32_Target.js">
<configuration Name="Common" file_type="Reset Script" />
</file>
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/memory.x">
<file file_name="../memory.x">
<configuration Name="Common" file_type="Linker Script" />
</file>
</folder>

View File

@ -30,12 +30,10 @@
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Demo;Boot;lib" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Demo;Boot;lib;CoreSupport" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Demo;Boot;lib;DeviceSupport" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Source" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Source;ARMCM3_STM32F1" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Source;ARMCM3_STM32F1;Crossworks" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;Source Files;Source;ARMCM3_STM32F1;GCC" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32h103;System Files" name="unnamed" />
</Project>
<Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" unsignedNodes="" decimalNodes="" octalNodes="" asciiNodes="" visibleNodes="" name="openbtl_olimex_stm32h103" />
@ -75,7 +73,6 @@
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="48" path="../main.c" left="0" selected="1" name="unnamed" top="9" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Default" x="0" debugPath="../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h" y="64" path="../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h" left="0" selected="0" name="unnamed" top="31" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="" x="0" debugPath="../../../../Source/ARMCM3_STM32F1/Crossworks/vectors.c" y="30" path="../../../../Source/ARMCM3_STM32F1/Crossworks/vectors.c" left="0" selected="0" name="unnamed" top="17" />
</Files>
<ARMCrossStudioWindow activeProject="openblt_olimex_stm32h103" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_STM32F1/Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="3711" debugSearchPath="" buildConfiguration="THUMB Debug" />
<ARMCrossStudioWindow activeProject="openblt_olimex_stm32h103" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32H103_Crossworks/Boot" fileDialogDefaultFilter="*.c" autoConnectCapabilities="3711" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session>

View File

@ -0,0 +1,272 @@
MEMORY
{
UNPLACED_SECTIONS (wx) : ORIGIN = 0x100000000, LENGTH = 0
SRAM (wx) : ORIGIN = 0x20000000, LENGTH = 0x00002000
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x00004000
}
SECTIONS
{
__SRAM_segment_start__ = 0x20000000;
__SRAM_segment_end__ = 0x20002000;
__FLASH_segment_start__ = 0x08000000;
__FLASH_segment_end__ = 0x08004000;
__STACKSIZE__ = 512;
__STACKSIZE_PROCESS__ = 0;
__STACKSIZE_IRQ__ = 0;
__STACKSIZE_FIQ__ = 0;
__STACKSIZE_SVC__ = 0;
__STACKSIZE_ABT__ = 0;
__STACKSIZE_UND__ = 0;
__HEAPSIZE__ = 128;
__vectors_ram_load_start__ = ALIGN(__SRAM_segment_start__ , 256);
.vectors_ram ALIGN(__SRAM_segment_start__ , 256) (NOLOAD) : AT(ALIGN(__SRAM_segment_start__ , 256))
{
__vectors_ram_start__ = .;
*(.vectors_ram .vectors_ram.*)
}
__vectors_ram_end__ = __vectors_ram_start__ + SIZEOF(.vectors_ram);
__vectors_ram_load_end__ = __vectors_ram_end__;
. = ASSERT(__vectors_ram_end__ >= __SRAM_segment_start__ && __vectors_ram_end__ <= __SRAM_segment_end__ , "error: .vectors_ram is too large to fit in SRAM memory segment");
__vectors_load_start__ = ALIGN(__FLASH_segment_start__ , 256);
.vectors ALIGN(__FLASH_segment_start__ , 256) : AT(ALIGN(__FLASH_segment_start__ , 256))
{
__vectors_start__ = .;
*(.vectors .vectors.*)
}
__vectors_end__ = __vectors_start__ + SIZEOF(.vectors);
__vectors_load_end__ = __vectors_end__;
. = ASSERT(__vectors_end__ >= __FLASH_segment_start__ && __vectors_end__ <= __FLASH_segment_end__ , "error: .vectors is too large to fit in FLASH memory segment");
__init_load_start__ = ALIGN(__vectors_end__ , 4);
.init ALIGN(__vectors_end__ , 4) : AT(ALIGN(__vectors_end__ , 4))
{
__init_start__ = .;
*(.init .init.*)
}
__init_end__ = __init_start__ + SIZEOF(.init);
__init_load_end__ = __init_end__;
. = ASSERT(__init_end__ >= __FLASH_segment_start__ && __init_end__ <= __FLASH_segment_end__ , "error: .init is too large to fit in FLASH memory segment");
__text_load_start__ = ALIGN(__init_end__ , 4);
.text ALIGN(__init_end__ , 4) : AT(ALIGN(__init_end__ , 4))
{
__text_start__ = .;
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
}
__text_end__ = __text_start__ + SIZEOF(.text);
__text_load_end__ = __text_end__;
. = ASSERT(__text_end__ >= __FLASH_segment_start__ && __text_end__ <= __FLASH_segment_end__ , "error: .text is too large to fit in FLASH memory segment");
__dtors_load_start__ = ALIGN(__text_end__ , 4);
.dtors ALIGN(__text_end__ , 4) : AT(ALIGN(__text_end__ , 4))
{
__dtors_start__ = .;
KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) KEEP (*(.fini_array .fini_array.*))
}
__dtors_end__ = __dtors_start__ + SIZEOF(.dtors);
__dtors_load_end__ = __dtors_end__;
. = ASSERT(__dtors_end__ >= __FLASH_segment_start__ && __dtors_end__ <= __FLASH_segment_end__ , "error: .dtors is too large to fit in FLASH memory segment");
__ctors_load_start__ = ALIGN(__dtors_end__ , 4);
.ctors ALIGN(__dtors_end__ , 4) : AT(ALIGN(__dtors_end__ , 4))
{
__ctors_start__ = .;
KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) KEEP (*(.init_array .init_array.*))
}
__ctors_end__ = __ctors_start__ + SIZEOF(.ctors);
__ctors_load_end__ = __ctors_end__;
. = ASSERT(__ctors_end__ >= __FLASH_segment_start__ && __ctors_end__ <= __FLASH_segment_end__ , "error: .ctors is too large to fit in FLASH memory segment");
__rodata_load_start__ = ALIGN(__ctors_end__ , 4);
.rodata ALIGN(__ctors_end__ , 4) : AT(ALIGN(__ctors_end__ , 4))
{
__rodata_start__ = .;
*(.rodata .rodata.* .gnu.linkonce.r.*)
}
__rodata_end__ = __rodata_start__ + SIZEOF(.rodata);
__rodata_load_end__ = __rodata_end__;
. = ASSERT(__rodata_end__ >= __FLASH_segment_start__ && __rodata_end__ <= __FLASH_segment_end__ , "error: .rodata is too large to fit in FLASH memory segment");
__ARM.exidx_load_start__ = ALIGN(__rodata_end__ , 4);
.ARM.exidx ALIGN(__rodata_end__ , 4) : AT(ALIGN(__rodata_end__ , 4))
{
__ARM.exidx_start__ = .;
__exidx_start = __ARM.exidx_start__;
*(.ARM.exidx .ARM.exidx.*)
}
__ARM.exidx_end__ = __ARM.exidx_start__ + SIZEOF(.ARM.exidx);
__exidx_end = __ARM.exidx_end__;
__ARM.exidx_load_end__ = __ARM.exidx_end__;
. = ASSERT(__ARM.exidx_end__ >= __FLASH_segment_start__ && __ARM.exidx_end__ <= __FLASH_segment_end__ , "error: .ARM.exidx is too large to fit in FLASH memory segment");
__fast_load_start__ = ALIGN(__ARM.exidx_end__ , 4);
.fast ALIGN(__vectors_ram_end__ , 4) : AT(ALIGN(__ARM.exidx_end__ , 4))
{
__fast_start__ = .;
*(.fast .fast.*)
}
__fast_end__ = __fast_start__ + SIZEOF(.fast);
__fast_load_end__ = __fast_load_start__ + SIZEOF(.fast);
. = ASSERT(__fast_load_end__ >= __FLASH_segment_start__ && __fast_load_end__ <= __FLASH_segment_end__ , "error: .fast is too large to fit in FLASH memory segment");
.fast_run ALIGN(__vectors_ram_end__ , 4) (NOLOAD) :
{
__fast_run_start__ = .;
. = MAX(__fast_run_start__ + SIZEOF(.fast), .);
}
__fast_run_end__ = __fast_run_start__ + SIZEOF(.fast_run);
__fast_run_load_end__ = __fast_run_end__;
. = ASSERT(__fast_run_end__ >= __SRAM_segment_start__ && __fast_run_end__ <= __SRAM_segment_end__ , "error: .fast_run is too large to fit in SRAM memory segment");
__data_load_start__ = ALIGN(__fast_load_start__ + SIZEOF(.fast) , 4);
.data ALIGN(__fast_run_end__ , 4) : AT(ALIGN(__fast_load_start__ + SIZEOF(.fast) , 4))
{
__data_start__ = .;
*(.data .data.* .gnu.linkonce.d.*)
}
__data_end__ = __data_start__ + SIZEOF(.data);
__data_load_end__ = __data_load_start__ + SIZEOF(.data);
. = ASSERT(__data_load_end__ >= __FLASH_segment_start__ && __data_load_end__ <= __FLASH_segment_end__ , "error: .data is too large to fit in FLASH memory segment");
.data_run ALIGN(__fast_run_end__ , 4) (NOLOAD) :
{
__data_run_start__ = .;
. = MAX(__data_run_start__ + SIZEOF(.data), .);
}
__data_run_end__ = __data_run_start__ + SIZEOF(.data_run);
__data_run_load_end__ = __data_run_end__;
. = ASSERT(__data_run_end__ >= __SRAM_segment_start__ && __data_run_end__ <= __SRAM_segment_end__ , "error: .data_run is too large to fit in SRAM memory segment");
__bss_load_start__ = ALIGN(__data_run_end__ , 4);
.bss ALIGN(__data_run_end__ , 4) (NOLOAD) : AT(ALIGN(__data_run_end__ , 4))
{
__bss_start__ = .;
*(.bss .bss.* .gnu.linkonce.b.*) *(COMMON)
}
__bss_end__ = __bss_start__ + SIZEOF(.bss);
__bss_load_end__ = __bss_end__;
. = ASSERT(__bss_end__ >= __SRAM_segment_start__ && __bss_end__ <= __SRAM_segment_end__ , "error: .bss is too large to fit in SRAM memory segment");
__non_init_load_start__ = ALIGN(__bss_end__ , 4);
.non_init ALIGN(__bss_end__ , 4) (NOLOAD) : AT(ALIGN(__bss_end__ , 4))
{
__non_init_start__ = .;
*(.non_init .non_init.*)
}
__non_init_end__ = __non_init_start__ + SIZEOF(.non_init);
__non_init_load_end__ = __non_init_end__;
. = ASSERT(__non_init_end__ >= __SRAM_segment_start__ && __non_init_end__ <= __SRAM_segment_end__ , "error: .non_init is too large to fit in SRAM memory segment");
__heap_load_start__ = ALIGN(__non_init_end__ , 4);
.heap ALIGN(__non_init_end__ , 4) (NOLOAD) : AT(ALIGN(__non_init_end__ , 4))
{
__heap_start__ = .;
*(.heap .heap.*)
. = ALIGN(MAX(__heap_start__ + __HEAPSIZE__ , .), 4);
}
__heap_end__ = __heap_start__ + SIZEOF(.heap);
__heap_load_end__ = __heap_end__;
. = ASSERT(__heap_end__ >= __SRAM_segment_start__ && __heap_end__ <= __SRAM_segment_end__ , "error: .heap is too large to fit in SRAM memory segment");
__stack_load_start__ = ALIGN(__heap_end__ , 4);
.stack ALIGN(__heap_end__ , 4) (NOLOAD) : AT(ALIGN(__heap_end__ , 4))
{
__stack_start__ = .;
*(.stack .stack.*)
. = ALIGN(MAX(__stack_start__ + __STACKSIZE__ , .), 4);
}
__stack_end__ = __stack_start__ + SIZEOF(.stack);
__stack_load_end__ = __stack_end__;
. = ASSERT(__stack_end__ >= __SRAM_segment_start__ && __stack_end__ <= __SRAM_segment_end__ , "error: .stack is too large to fit in SRAM memory segment");
__stack_process_load_start__ = ALIGN(__stack_end__ , 4);
.stack_process ALIGN(__stack_end__ , 4) (NOLOAD) : AT(ALIGN(__stack_end__ , 4))
{
__stack_process_start__ = .;
*(.stack_process .stack_process.*)
. = ALIGN(MAX(__stack_process_start__ + __STACKSIZE_PROCESS__ , .), 4);
}
__stack_process_end__ = __stack_process_start__ + SIZEOF(.stack_process);
__stack_process_load_end__ = __stack_process_end__;
. = ASSERT(__stack_process_end__ >= __SRAM_segment_start__ && __stack_process_end__ <= __SRAM_segment_end__ , "error: .stack_process is too large to fit in SRAM memory segment");
__tbss_load_start__ = ALIGN(__stack_process_end__ , 4);
.tbss ALIGN(__stack_process_end__ , 4) (NOLOAD) : AT(ALIGN(__stack_process_end__ , 4))
{
__tbss_start__ = .;
*(.tbss .tbss.*)
}
__tbss_end__ = __tbss_start__ + SIZEOF(.tbss);
__tbss_load_end__ = __tbss_end__;
. = ASSERT(__tbss_end__ >= __SRAM_segment_start__ && __tbss_end__ <= __SRAM_segment_end__ , "error: .tbss is too large to fit in SRAM memory segment");
__tdata_load_start__ = ALIGN(__data_load_start__ + SIZEOF(.data) , 4);
.tdata ALIGN(__tbss_end__ , 4) : AT(ALIGN(__data_load_start__ + SIZEOF(.data) , 4))
{
__tdata_start__ = .;
*(.tdata .tdata.*)
}
__tdata_end__ = __tdata_start__ + SIZEOF(.tdata);
__tdata_load_end__ = __tdata_load_start__ + SIZEOF(.tdata);
__FLASH_segment_used_end__ = ALIGN(__data_load_start__ + SIZEOF(.data) , 4) + SIZEOF(.tdata);
. = ASSERT(__tdata_load_end__ >= __FLASH_segment_start__ && __tdata_load_end__ <= __FLASH_segment_end__ , "error: .tdata is too large to fit in FLASH memory segment");
.tdata_run ALIGN(__tbss_end__ , 4) (NOLOAD) :
{
__tdata_run_start__ = .;
. = MAX(__tdata_run_start__ + SIZEOF(.tdata), .);
}
__tdata_run_end__ = __tdata_run_start__ + SIZEOF(.tdata_run);
__tdata_run_load_end__ = __tdata_run_end__;
__SRAM_segment_used_end__ = ALIGN(__tbss_end__ , 4) + SIZEOF(.tdata_run);
. = ASSERT(__tdata_run_end__ >= __SRAM_segment_start__ && __tdata_run_end__ <= __SRAM_segment_end__ , "error: .tdata_run is too large to fit in SRAM memory segment");
}

View File

@ -3223,7 +3223,7 @@ Memory Configuration
Name Origin Length Attributes
UNPLACED_SECTIONS 0xffffffff 0x00000000 xw
FLASH 0x08006000 0x0001a000 xr
FLASH 0x08004000 0x0001c000 xr
RAM 0x20000000 0x00005000 xw
USB_CAN_RAM 0x40006000 0x00000200 xw
CM3_System_Control_Space 0xe000e000 0x00001000 xw
@ -3233,7 +3233,7 @@ Linker script and memory map
0x00000000 __vfprintf = __vfprintf_float_long_long
0x00000000 __vfscanf = __vfscanf_float_long_long_cc
0x08006000 __FLASH_segment_start__ = 0x8006000
0x08004000 __FLASH_segment_start__ = 0x8004000
0x08020000 __FLASH_segment_end__ = 0x8020000
0x20000000 __RAM_segment_start__ = 0x20000000
0x20005000 __RAM_segment_end__ = 0x20005000
@ -3257,76 +3257,76 @@ Linker script and memory map
0x20000000 __vectors_ram_end__ = (__vectors_ram_start__ + SIZEOF (.vectors_ram))
0x20000000 __vectors_ram_load_end__ = __vectors_ram_end__
0x00000001 . = ASSERT (((__vectors_ram_end__ >= __RAM_segment_start__) && (__vectors_ram_end__ <= (__RAM_segment_start__ + 0x5000))), error: .vectors_ram is too large to fit in RAM memory segment)
0x08006000 __vectors_load_start__ = ALIGN (__FLASH_segment_start__, 0x100)
0x08004000 __vectors_load_start__ = ALIGN (__FLASH_segment_start__, 0x100)
.vectors 0x08006000 0x154
0x08006000 __vectors_start__ = .
.vectors 0x08004000 0x154
0x08004000 __vectors_start__ = .
*(.vectors .vectors.*)
.vectors 0x08006000 0x154 THUMB Debug/../../obj/vectors.o
0x08006000 _vectors
0x08006154 __vectors_end__ = (__vectors_start__ + SIZEOF (.vectors))
0x08006154 __vectors_load_end__ = __vectors_end__
.vectors 0x08004000 0x154 THUMB Debug/../../obj/vectors.o
0x08004000 _vectors
0x08004154 __vectors_end__ = (__vectors_start__ + SIZEOF (.vectors))
0x08004154 __vectors_load_end__ = __vectors_end__
0x00000001 . = ASSERT (((__vectors_end__ >= __FLASH_segment_start__) && (__vectors_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .vectors is too large to fit in FLASH memory segment)
0x08006154 __init_load_start__ = ALIGN (__vectors_end__, 0x4)
0x08004154 __init_load_start__ = ALIGN (__vectors_end__, 0x4)
.init 0x08006154 0x118
0x08006154 __init_start__ = .
.init 0x08004154 0x118
0x08004154 __init_start__ = .
*(.init .init.*)
.init 0x08006154 0x118 THUMB Debug/../../obj/cstart.o
0x08006154 _start
0x080061d6 exit
0x080061fa reset_handler
0x0800626c __init_end__ = (__init_start__ + SIZEOF (.init))
0x0800626c __init_load_end__ = __init_end__
.init 0x08004154 0x118 THUMB Debug/../../obj/cstart.o
0x08004154 _start
0x080041d6 exit
0x080041fa reset_handler
0x0800426c __init_end__ = (__init_start__ + SIZEOF (.init))
0x0800426c __init_load_end__ = __init_end__
0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .init is too large to fit in FLASH memory segment)
0x0800626c __text_load_start__ = ALIGN (__init_end__, 0x4)
0x0800426c __text_load_start__ = ALIGN (__init_end__, 0x4)
.text 0x0800626c 0x4ec
0x0800626c __text_start__ = .
.text 0x0800426c 0x4ec
0x0800426c __text_start__ = .
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
.glue_7 0x0800626c 0x0 linker stubs
.glue_7t 0x0800626c 0x0 linker stubs
.text.LedInit 0x0800626c 0x34 THUMB Debug/../../obj/led.o
0x0800626c LedInit
.glue_7 0x0800426c 0x0 linker stubs
.glue_7t 0x0800426c 0x0 linker stubs
.text.LedInit 0x0800426c 0x34 THUMB Debug/../../obj/led.o
0x0800426c LedInit
.text.LedToggle
0x080062a0 0x60 THUMB Debug/../../obj/led.o
0x080062a0 LedToggle
.text.main 0x08006300 0x10 THUMB Debug/../../obj/main.o
0x08006300 main
.text.Init 0x08006310 0x158 THUMB Debug/../../obj/main.o
0x080042a0 0x60 THUMB Debug/../../obj/led.o
0x080042a0 LedToggle
.text.main 0x08004300 0x10 THUMB Debug/../../obj/main.o
0x08004300 main
.text.Init 0x08004310 0x158 THUMB Debug/../../obj/main.o
.text.NVIC_SetPriority
0x08006468 0x54 THUMB Debug/../../obj/timer.o
0x08004468 0x54 THUMB Debug/../../obj/timer.o
.text.SysTick_Config
0x080064bc 0x44 THUMB Debug/../../obj/timer.o
0x080044bc 0x44 THUMB Debug/../../obj/timer.o
.text.TimerInit
0x08006500 0x18 THUMB Debug/../../obj/timer.o
0x08006500 TimerInit
0x08004500 0x18 THUMB Debug/../../obj/timer.o
0x08004500 TimerInit
.text.TimerSet
0x08006518 0x1c THUMB Debug/../../obj/timer.o
0x08006518 TimerSet
0x08004518 0x1c THUMB Debug/../../obj/timer.o
0x08004518 TimerSet
.text.TimerGet
0x08006534 0x14 THUMB Debug/../../obj/timer.o
0x08006534 TimerGet
0x08004534 0x14 THUMB Debug/../../obj/timer.o
0x08004534 TimerGet
.text.TimerISRHandler
0x08006548 0x1c THUMB Debug/../../obj/timer.o
0x08006548 TimerISRHandler
0x08004548 0x1c THUMB Debug/../../obj/timer.o
0x08004548 TimerISRHandler
.text.UnusedISR
0x08006564 0x8 THUMB Debug/../../obj/vectors.o
0x08006564 UnusedISR
0x08004564 0x8 THUMB Debug/../../obj/vectors.o
0x08004564 UnusedISR
.text.GPIO_Init
0x0800656c 0x178 THUMB Debug/../../obj/stm32f10x_gpio.o
0x0800656c GPIO_Init
0x0800456c 0x178 THUMB Debug/../../obj/stm32f10x_gpio.o
0x0800456c GPIO_Init
.text.GPIO_SetBits
0x080066e4 0x1c THUMB Debug/../../obj/stm32f10x_gpio.o
0x080066e4 GPIO_SetBits
0x080046e4 0x1c THUMB Debug/../../obj/stm32f10x_gpio.o
0x080046e4 GPIO_SetBits
.text.GPIO_ResetBits
0x08006700 0x1c THUMB Debug/../../obj/stm32f10x_gpio.o
0x08006700 GPIO_ResetBits
0x08004700 0x1c THUMB Debug/../../obj/stm32f10x_gpio.o
0x08004700 GPIO_ResetBits
.text.RCC_APB2PeriphClockCmd
0x0800671c 0x3c THUMB Debug/../../obj/stm32f10x_rcc.o
0x0800671c RCC_APB2PeriphClockCmd
0x08006758 __text_end__ = (__text_start__ + SIZEOF (.text))
0x08006758 __text_load_end__ = __text_end__
0x0800471c 0x3c THUMB Debug/../../obj/stm32f10x_rcc.o
0x0800471c RCC_APB2PeriphClockCmd
0x08004758 __text_end__ = (__text_start__ + SIZEOF (.text))
0x08004758 __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@ -3337,54 +3337,54 @@ Linker script and memory map
.iplt 0x00000000 0x0
.iplt 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.rel.dyn 0x08006000 0x0
.rel.iplt 0x08006000 0x0 THUMB Debug/../../obj/cstart.o
.rel.dyn 0x08004000 0x0
.rel.iplt 0x08004000 0x0 THUMB Debug/../../obj/cstart.o
0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .text is too large to fit in FLASH memory segment)
0x08006758 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
0x08004758 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
.dtors 0x08006758 0x0
0x08006758 __dtors_start__ = .
.dtors 0x08004758 0x0
0x08004758 __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
0x08006758 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x08006758 __dtors_load_end__ = __dtors_end__
0x08004758 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x08004758 __dtors_load_end__ = __dtors_end__
0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .dtors is too large to fit in FLASH memory segment)
0x08006758 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
0x08004758 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
.ctors 0x08006758 0x0
0x08006758 __ctors_start__ = .
.ctors 0x08004758 0x0
0x08004758 __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
0x08006758 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x08006758 __ctors_load_end__ = __ctors_end__
0x08004758 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x08004758 __ctors_load_end__ = __ctors_end__
0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .ctors is too large to fit in FLASH memory segment)
0x08006758 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
0x08004758 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
.rodata 0x08006758 0x0
0x08006758 __rodata_start__ = .
.rodata 0x08004758 0x0
0x08004758 __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
0x08006758 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x08006758 __rodata_load_end__ = __rodata_end__
0x08004758 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x08004758 __rodata_load_end__ = __rodata_end__
0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .rodata is too large to fit in FLASH memory segment)
0x08006758 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
0x08004758 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
.ARM.exidx 0x08006758 0x0
0x08006758 __ARM.exidx_start__ = .
0x08006758 __exidx_start = __ARM.exidx_start__
.ARM.exidx 0x08004758 0x0
0x08004758 __ARM.exidx_start__ = .
0x08004758 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
0x08006758 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x08006758 __exidx_end = __ARM.exidx_end__
0x08006758 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x08004758 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x08004758 __exidx_end = __ARM.exidx_end__
0x08004758 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .ARM.exidx is too large to fit in FLASH memory segment)
0x08006758 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
0x08004758 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
.fast 0x20000000 0x0 load address 0x08006758
.fast 0x20000000 0x0 load address 0x08004758
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
0x08006758 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x08004758 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT ((((__fast_load_start__ + SIZEOF (.fast)) >= __FLASH_segment_start__) && ((__fast_load_start__ + SIZEOF (.fast)) <= (__FLASH_segment_start__ + 0x20000))), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@ -3393,13 +3393,13 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __RAM_segment_start__) && (__fast_run_end__ <= (__RAM_segment_start__ + 0x5000))), error: .fast_run is too large to fit in RAM memory segment)
0x08006758 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
0x08004758 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
.data 0x20000000 0x0 load address 0x08006758
.data 0x20000000 0x0 load address 0x08004758
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
0x20000000 __data_end__ = (__data_start__ + SIZEOF (.data))
0x08006758 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x08004758 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
.igot.plt 0x00000000 0x0
.igot.plt 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
@ -3472,14 +3472,14 @@ Linker script and memory map
0x2000018c __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x2000018c __tbss_load_end__ = __tbss_end__
0x00000001 . = ASSERT (((__tbss_end__ >= __RAM_segment_start__) && (__tbss_end__ <= (__RAM_segment_start__ + 0x5000))), error: .tbss is too large to fit in RAM memory segment)
0x08006758 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
0x08004758 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
.tdata 0x2000018c 0x0 load address 0x08006758
.tdata 0x2000018c 0x0 load address 0x08004758
0x2000018c __tdata_start__ = .
*(.tdata .tdata.*)
0x2000018c __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
0x08006758 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x08006758 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x08004758 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x08004758 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x00000001 . = ASSERT ((((__tdata_load_start__ + SIZEOF (.tdata)) >= __FLASH_segment_start__) && ((__tdata_load_start__ + SIZEOF (.tdata)) <= (__FLASH_segment_start__ + 0x20000))), error: .tdata is too large to fit in FLASH memory segment)
.tdata_run 0x2000018c 0x0

View File

@ -1,121 +1,121 @@
S02B0000433A2F576F726B2F736F6674776172652F4F70656E424C542F5461726765742F44656D6F2F41524DEF
S315080060008C010020FB6100086565000865650008CD
S31508006010656500086565000865650008656500082A
S31508006020656500086565000865650008656500081A
S315080060306565000865650008656500084965000826
S3150800604065650008656500086565000865650008FA
S3150800605065650008656500086565000865650008EA
S3150800606065650008656500086565000865650008DA
S3150800607065650008656500086565000865650008CA
S3150800608065650008656500086565000865650008BA
S3150800609065650008656500086565000865650008AA
S315080060A0656500086565000865650008656500089A
S315080060B0656500086565000865650008656500088A
S315080060C0656500086565000865650008656500087A
S315080060D0656500086565000865650008656500086A
S315080060E0656500086565000865650008656500085A
S315080060F0656500086565000865650008656500084A
S315080061006565000865650008656500086565000839
S315080061106565000865650008656500086565000829
S315080061206565000865650008656500086565000819
S315080061306565000865650008656500086565000809
S3150800614065650008656500086565000865650008F9
S30908006150EE11AA553F
S315080061542B49072291438D462A482B492B4A00F09E
S3150800616439F82B482B492C4A00F034F82B482C498B
S315080061742C4A00F02FF82C482C492D4A00F02AF80E
S315080061842C482D492D4A00F025F82D482D492E4A2C
S3150800619400F020F82D482E49002200F026F82D4854
S315080061A42D49091A082903DB00220260043001601C
S315080061B41E481F49884205D00268043003B4904734
S315080061C403BCF7E700208646EC4600200021234A54
S315080061D49047FEE7884207D0521A05D00378013063
S315080061E40B700131013AF9D17047884202D0027026
S315080061F40130FAE770471A481A490160A8E700000F
S315080062048C010020586700080000002000000020C8
S315080062146C6200086C620008586700085867000832
S31508006224000000200000002058670008586700088E
S315080062345867000858670008586700085867000830
S3150800624458670008586700085867000800000020C7
S315080062540C0000200C0000208C00002001630008BC
S30D0800626408ED00E000600008E7
S3150800626C80B582B000AF0121102000F051FA4FF42E
S3150800627C8053BB800323BB711023FB713B1D19464E
S3150800628C034800F06DF900BF0837BD4680BD00BF56
S3150800629C0010014080B582B000AF00F045F9786077
S315080062AC114B1B687A68D31AB3F5FA7F18D30F4BC0
S315080062BC1B78002B08D10D4B01221A704FF4805114
S315080062CC0B4800F017FA07E0084B00221A704FF437
S315080062DC8051074800F000FA034A7B68136000E017
S315080062EC00BF0837BD4680BD000000200400002012
S315080062FC0010014080B500AF00F004F8FFF7CAFFA4
S3150800630CFCE700BF80B584B000AF0023BB60002358
S3150800631C7B604F4A4E4B1B6843F0010313604C4994
S3150800632C4B4B5A684B4B13404B60494A484B1B68BE
S3150800633C23F0847323F480331360454A444B1B685B
S3150800634C23F480231360424A414B5B6823F4FE0313
S3150800635C53603F4B4FF41F029A603D4A3C4B1B68F7
S3150800636C43F4803313603A4B1B6803F400337B60A9
S3150800637CBB680133BB607B68002B04D1BB6840F259
S3150800638CDC529342EFD1324B1B6803F40033002BDB
S3150800639C00D1FEE7304A304B1B6843F010031360FC
S315080063AC2D4A2D4B1B6823F0030313602A4A2A4BEC
S315080063BC1B6843F002031360254A254B5B68536040
S315080063CC234A234B5B6843F400535360204A204B03
S315080063DC5B6843F4806353601D4A1D4B5B6823F46A
S315080063EC7C1353600923FB60FB68023B9B04FB6030
S315080063FC1749174B5A68FB68134343F480334B60B1
S3150800640C134A134B1B6843F08073136000BF104B81
S3150800641C1B6803F00073002BF9D00D4A0C4B5B6814
S3150800642C23F0030353600A4A094B5B6843F00203E3
S3150800643C536000BF064B5B6803F00C03082BF9D1BD
S3150800644CFFF70EFF00F056F800BF1037BD4680BDAB
S3150800645C001002400000FFF80020024080B483B010
S3150800646C00AF03463960FB7197F90730002B0BDA3E
S3150800647C0D49FB7903F00F03043B3A68D2B21201BB
S3150800648CD2B20B441A7609E0084997F907303A68EC
S3150800649CD2B21201D2B20B4483F8002300BF0C37D8
S315080064ACBD4680BC704700BF00ED00E000E100E08F
S315080064BC80B582B000AF78607B68B3F1807F01D37A
S315080064CC012311E00A4A7B6823F07F43013B5360A2
S315080064DC0F214FF0FF30FFF7C1FF054B00229A60E2
S315080064EC034B07221A60002318460837BD4680BDA1
S315080064FC10E000E080B500AF0348FFF7D9FF002095
S3150800650C00F004F800BF80BD4019010080B483B0C8
S3150800651C00AF7860034A7B68136000BF0C37BD4632
S3150800652C80BC70470800002080B400AF024B1B6883
S3150800653C1846BD4680BC70470800002080B400AFE2
S3150800654C044B1B680133034A136000BFBD4680BC6D
S3150800655C704700BF0800002080B400AFFEE700BFFC
S3150800656C80B489B000AF786039600023FB610023E2
S3150800657C3B610023BB610023FB6000237B61002386
S3150800658CBB603B68DB7803F00F03FB613B68DB7889
S3150800659C03F01003002B05D03B689B781A46FB6961
S315080065AC1343FB613B681B88DBB2002B44D07B682A
S315080065BC1B687B610023BB6138E00122BB6902FAC8
S315080065CC03F3FB603B681B881A46FB6813403B6168
S315080065DC3A69FB689A4226D1BB699B00FB600F227D
S315080065ECFB6802FA03F3BB60BB68DB437A691340AA
S315080065FC7B61FA69FB6802FA03F37A6913437B61D8
S3150800660C3B68DB78282B05D10122BB699A407B684D
S3150800661C5A6108E03B68DB78482B04D10122BB6938
S3150800662C9A407B681A61BB690133BB61BB69072B4E
S3150800663CC3D97B687A691A603B681B88FF2B46D9D5
S3150800664C7B685B687B610023BB613AE0BB690833F6
S3150800665C012202FA03F3FB603B681B881A46FB68A7
S3150800666C13403B613A69FB689A4227D1BB699B0088
S3150800667CFB600F22FB6802FA03F3BB60BB68DB43C3
S3150800668C7A6913407B61FA69FB6802FA03F37A6943
S3150800669C13437B613B68DB78282B05D1BB69083330
S315080066AC01229A407B685A613B68DB78482B05D1F6
S315080066BCBB69083301229A407B681A61BB690133AE
S315080066CCBB61BB69072BC1D97B687A695A6000BF65
S315080066DC2437BD4680BC704780B483B000AF786061
S315080066EC0B467B807A887B681A6100BF0C37BD46DF
S315080066FC80BC704780B483B000AF78600B467B8053
S3150800670C7A887B685A6100BF0C37BD4680BC7047D7
S3150800671C80B483B000AF78600B46FB70FB78002B17
S3150800672C06D00949084B9A697B6813438B6106E0C6
S3150800673C0549054B9A697B68DB4313408B6100BF9F
S3110800674C0C37BD4680BC704700100240A8
S705080061FB96
S315080040008C010020FB41000865450008654500084D
S3150800401065450008654500086545000865450008CA
S3150800402065450008654500086545000865450008BA
S3150800403065450008654500086545000849450008C6
S31508004040654500086545000865450008654500089A
S31508004050654500086545000865450008654500088A
S31508004060654500086545000865450008654500087A
S31508004070654500086545000865450008654500086A
S31508004080654500086545000865450008654500085A
S31508004090654500086545000865450008654500084A
S315080040A0654500086545000865450008654500083A
S315080040B0654500086545000865450008654500082A
S315080040C0654500086545000865450008654500081A
S315080040D0654500086545000865450008654500080A
S315080040E065450008654500086545000865450008FA
S315080040F065450008654500086545000865450008EA
S3150800410065450008654500086545000865450008D9
S3150800411065450008654500086545000865450008C9
S3150800412065450008654500086545000865450008B9
S3150800413065450008654500086545000865450008A9
S315080041406545000865450008654500086545000899
S30908004150EE11AA555F
S315080041542B49072291438D462A482B492B4A00F0BE
S3150800416439F82B482B492C4A00F034F82B482C49AB
S315080041742C4A00F02FF82C482C492D4A00F02AF82E
S315080041842C482D492D4A00F025F82D482D492E4A4C
S3150800419400F020F82D482E49002200F026F82D4874
S315080041A42D49091A082903DB00220260043001603C
S315080041B41E481F49884205D00268043003B4904754
S315080041C403BCF7E700208646EC4600200021234A74
S315080041D49047FEE7884207D0521A05D00378013083
S315080041E40B700131013AF9D17047884202D0027046
S315080041F40130FAE770471A481A490160A8E700002F
S315080042048C01002058470008000000200000002008
S315080042146C4200086C4200085847000858470008D2
S3150800422400000020000000205847000858470008EE
S3150800423458470008584700085847000858470008D0
S315080042445847000858470008584700080000002047
S315080042540C0000200C0000208C00002001430008FC
S30D0800426408ED00E00040000827
S3150800426C80B582B000AF0121102000F051FA4FF44E
S3150800427C8053BB800323BB711023FB713B1D19466E
S3150800428C034800F06DF900BF0837BD4680BD00BF76
S3150800429C0010014080B582B000AF00F045F9786097
S315080042AC114B1B687A68D31AB3F5FA7F18D30F4BE0
S315080042BC1B78002B08D10D4B01221A704FF4805134
S315080042CC0B4800F017FA07E0084B00221A704FF457
S315080042DC8051074800F000FA034A7B68136000E037
S315080042EC00BF0837BD4680BD000000200400002032
S315080042FC0010014080B500AF00F004F8FFF7CAFFC4
S3150800430CFCE700BF80B584B000AF0023BB60002378
S3150800431C7B604F4A4E4B1B6843F0010313604C49B4
S3150800432C4B4B5A684B4B13404B60494A484B1B68DE
S3150800433C23F0847323F480331360454A444B1B687B
S3150800434C23F480231360424A414B5B6823F4FE0333
S3150800435C53603F4B4FF41F029A603D4A3C4B1B6817
S3150800436C43F4803313603A4B1B6803F400337B60C9
S3150800437CBB680133BB607B68002B04D1BB6840F279
S3150800438CDC529342EFD1324B1B6803F40033002BFB
S3150800439C00D1FEE7304A304B1B6843F0100313601C
S315080043AC2D4A2D4B1B6823F0030313602A4A2A4B0C
S315080043BC1B6843F002031360254A254B5B68536060
S315080043CC234A234B5B6843F400535360204A204B23
S315080043DC5B6843F4806353601D4A1D4B5B6823F48A
S315080043EC7C1353600923FB60FB68023B9B04FB6050
S315080043FC1749174B5A68FB68134343F480334B60D1
S3150800440C134A134B1B6843F08073136000BF104BA1
S3150800441C1B6803F00073002BF9D00D4A0C4B5B6834
S3150800442C23F0030353600A4A094B5B6843F0020303
S3150800443C536000BF064B5B6803F00C03082BF9D1DD
S3150800444CFFF70EFF00F056F800BF1037BD4680BDCB
S3150800445C001002400000FFF80020024080B483B030
S3150800446C00AF03463960FB7197F90730002B0BDA5E
S3150800447C0D49FB7903F00F03043B3A68D2B21201DB
S3150800448CD2B20B441A7609E0084997F907303A680C
S3150800449CD2B21201D2B20B4483F8002300BF0C37F8
S315080044ACBD4680BC704700BF00ED00E000E100E0AF
S315080044BC80B582B000AF78607B68B3F1807F01D39A
S315080044CC012311E00A4A7B6823F07F43013B5360C2
S315080044DC0F214FF0FF30FFF7C1FF054B00229A6002
S315080044EC034B07221A60002318460837BD4680BDC1
S315080044FC10E000E080B500AF0348FFF7D9FF0020B5
S3150800450C00F004F800BF80BD4019010080B483B0E8
S3150800451C00AF7860034A7B68136000BF0C37BD4652
S3150800452C80BC70470800002080B400AF024B1B68A3
S3150800453C1846BD4680BC70470800002080B400AF02
S3150800454C044B1B680133034A136000BFBD4680BC8D
S3150800455C704700BF0800002080B400AFFEE700BF1C
S3150800456C80B489B000AF786039600023FB61002302
S3150800457C3B610023BB610023FB6000237B610023A6
S3150800458CBB603B68DB7803F00F03FB613B68DB78A9
S3150800459C03F01003002B05D03B689B781A46FB6981
S315080045AC1343FB613B681B88DBB2002B44D07B684A
S315080045BC1B687B610023BB6138E00122BB6902FAE8
S315080045CC03F3FB603B681B881A46FB6813403B6188
S315080045DC3A69FB689A4226D1BB699B00FB600F229D
S315080045ECFB6802FA03F3BB60BB68DB437A691340CA
S315080045FC7B61FA69FB6802FA03F37A6913437B61F8
S3150800460C3B68DB78282B05D10122BB699A407B686D
S3150800461C5A6108E03B68DB78482B04D10122BB6958
S3150800462C9A407B681A61BB690133BB61BB69072B6E
S3150800463CC3D97B687A691A603B681B88FF2B46D9F5
S3150800464C7B685B687B610023BB613AE0BB69083316
S3150800465C012202FA03F3FB603B681B881A46FB68C7
S3150800466C13403B613A69FB689A4227D1BB699B00A8
S3150800467CFB600F22FB6802FA03F3BB60BB68DB43E3
S3150800468C7A6913407B61FA69FB6802FA03F37A6963
S3150800469C13437B613B68DB78282B05D1BB69083350
S315080046AC01229A407B685A613B68DB78482B05D116
S315080046BCBB69083301229A407B681A61BB690133CE
S315080046CCBB61BB69072BC1D97B687A695A6000BF85
S315080046DC2437BD4680BC704780B483B000AF786081
S315080046EC0B467B807A887B681A6100BF0C37BD46FF
S315080046FC80BC704780B483B000AF78600B467B8073
S3150800470C7A887B685A6100BF0C37BD4680BC7047F7
S3150800471C80B483B000AF78600B46FB70FB78002B37
S3150800472C06D00949084B9A697B6813438B6106E0E6
S3150800473C0549054B9A697B68DB4313408B6100BFBF
S3110800474C0C37BD4680BC704700100240C8
S705080041FBB6

View File

@ -1,7 +1,7 @@
MEMORY
{
UNPLACED_SECTIONS (wx) : ORIGIN = 0x100000000, LENGTH = 0
FLASH (rx) : ORIGIN = 0x08006000, LENGTH = 0x00020000-0x6000
FLASH (rx) : ORIGIN = 0x08004000, LENGTH = 0x00020000-0x4000
RAM (wx) : ORIGIN = 0x20000000, LENGTH = 0x00005000
USB_CAN_RAM (wx) : ORIGIN = 0x40006000, LENGTH = 0x00000200
CM3_System_Control_Space (wx) : ORIGIN = 0xe000e000, LENGTH = 0x00001000
@ -10,7 +10,7 @@ MEMORY
SECTIONS
{
__FLASH_segment_start__ = 0x08006000;
__FLASH_segment_start__ = 0x08004000;
__FLASH_segment_end__ = 0x08020000;
__RAM_segment_start__ = 0x20000000;
__RAM_segment_end__ = 0x20005000;

View File

@ -7,258 +7,384 @@ start address 0x08000000
Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x000028bc memsz 0x000028bc flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x080028bc align 2**15
filesz 0x000000ed memsz 0x0000095c flags rw-
filesz 0x00002a64 memsz 0x00002a64 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08002a64 align 2**15
filesz 0x000000f8 memsz 0x00000778 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000028bc 08000000 08000000 00008000 2**2
0 .text 00002a64 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000000ed 20000000 080028bc 00010000 2**2
1 .data 000000f8 20000000 08002a64 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000086c 200000f0 080029ac 000100ed 2**2
2 .bss 00000680 200000f8 08002b5c 000100f8 2**2
ALLOC
3 .debug_info 000069af 00000000 00000000 000100ed 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 000021f2 00000000 00000000 00016a9c 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 000007f0 00000000 00000000 00018c8e 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_ranges 00000738 00000000 00000000 0001947e 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00002744 00000000 00000000 00019bb6 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00001e44 00000000 00000000 0001c2fa 2**0
CONTENTS, READONLY, DEBUGGING
9 .comment 00000030 00000000 00000000 0001e13e 2**0
3 .heap 00000800 20000778 20000778 000100f8 2**3
CONTENTS, READONLY
10 .ARM.attributes 00000033 00000000 00000000 0001e16e 2**0
4 .stack_dummy 00000800 20000778 20000778 000108f8 2**3
CONTENTS, READONLY
11 .debug_frame 0000111c 00000000 00000000 0001e1a4 2**2
5 .ARM.attributes 00000027 00000000 00000000 000110f8 2**0
CONTENTS, READONLY
6 .comment 00000030 00000000 00000000 0001111f 2**0
CONTENTS, READONLY
7 .debug_line 00005019 00000000 00000000 0001114f 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_loc 00002dec 00000000 00000000 0001f2c0 2**0
8 .debug_info 000065f0 00000000 00000000 00016168 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00001e8e 00000000 00000000 0001c758 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 000008c8 00000000 00000000 0001e5e8 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000740 00000000 00000000 0001eeb0 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_macro 0000af2b 00000000 00000000 0001f5f0 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_str 00036622 00000000 00000000 0002a51b 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_frame 00001248 00000000 00000000 00060b40 2**2
CONTENTS, READONLY, DEBUGGING
15 .debug_loc 00002b1d 00000000 00000000 00061d88 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
20000000 l d .data 00000000 .data
200000f0 l d .bss 00000000 .bss
200000f8 l d .bss 00000000 .bss
20000778 l d .heap 00000000 .heap
20000778 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
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_line 00000000 .debug_line
00000000 l d .debug_macro 00000000 .debug_macro
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 d .debug_loc 00000000 .debug_loc
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 obj/startup_stm32f10x_md.o
00000800 l *ABS* 00000000 Stack_Size
00000800 l *ABS* 00000000 Heap_Size
080001be l .text 00000000 .flash_to_ram_loop
080001f0 l .text 00000000 .fill_zero_bss
080001ec l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
08002a60 l O .text 00000000 __EH_FRAME_BEGIN__
080000ec l F .text 00000000 deregister_tm_clones
08000114 l F .text 00000000 register_tm_clones
08000144 l F .text 00000000 __do_global_dtors_aux
200000f8 l .bss 00000000 completed.7922
200000f4 l O .data 00000000 __do_global_dtors_aux_fini_array_entry
08000174 l F .text 00000000 frame_dummy
200000fc l .bss 00000000 object.7927
200000f0 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 hooks.c
200000f0 l O .bss 00000001 initialized.5010
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 usb_endp.c
00000000 l df *ABS* 00000000 usb_prop.c
00000000 l df *ABS* 00000000 usb_istr.c
00000000 l df *ABS* 00000000 usb_pwr.c
20000114 l O .bss 00000001 initialized.5008
00000000 l df *ABS* 00000000 usb_core.c
0800072c l F .text 000000d0 DataStageIn
08000414 l F .text 000000d2 DataStageIn
080004e8 l F .text 00000282 Data_Setup0
0800076c l F .text 000000ca DataStageOut
08000ac0 l F .text 00000120 NoData_Setup0
00000000 l df *ABS* 00000000 usb_init.c
00000000 l df *ABS* 00000000 usb_int.c
00000000 l df *ABS* 00000000 usb_mem.c
00000000 l df *ABS* 00000000 usb_regs.c
00000000 l df *ABS* 00000000 usb_sil.c
00000000 l df *ABS* 00000000 main.c
08001428 l F .text 0000015e Init
00000000 l df *ABS* 00000000 usb_endp.c
00000000 l df *ABS* 00000000 usb_istr.c
00000000 l df *ABS* 00000000 usb_prop.c
00000000 l df *ABS* 00000000 usb_pwr.c
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 backdoor.c
2000011c l O .bss 00000001 backdoorOpen
20000120 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c
200000fc l O .bss 0000003f xcpCtoReqPacket.4170
20000124 l O .bss 0000003f xcpCtoReqPacket.4168
200000ec l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 xcp.c
080017b4 l F .text 00000016 XcpSetCtoError
080027c0 l O .text 00000008 xcpStationId
2000013c l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
20000188 l O .bss 00000001 backdoorOpen
2000018c l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 xcp.c
080019cc l F .text 00000020 XcpComputeChecksum
080019ec l F .text 0000000e XcpProtectResources
080019fc l F .text 00000016 XcpSetCtoError
08001a14 l F .text 0000001e XcpCmdDisconnect
08001a34 l F .text 00000022 XcpCmdGetStatus
08001a58 l F .text 0000000a XcpCmdSynch
08001a64 l F .text 00000030 XcpCmdGetId
08001a94 l F .text 00000018 XcpCmdSetMta
08001aac l F .text 00000028 XcpCmdBuildCheckSum
08001ad4 l F .text 0000000a XcpCmdProgramPrepare
08001ae0 l F .text 00000028 XcpCmdProgramStart
08001b08 l F .text 00000044 XcpCmdConnect
08001b4c l F .text 00000040 XcpCmdUpload
08001b8c l F .text 00000042 XcpCmdShortUpload
08001bd0 l F .text 00000046 XcpCmdProgramMax
08001c18 l F .text 00000068 XcpCmdProgram
08001c80 l F .text 00000030 XcpCmdProgramClear
08001cb0 l F .text 0000001a XcpCmdProgramReset
08001ccc l F .text 0000000a XcpTransmitPacket
08002988 l O .text 00000008 xcpStationId
20000164 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 usb.c
08001c60 l F .text 0000002e IntToUnicode
08001c90 l F .text 0000007c UsbFifoMgrWrite
08001d0c l F .text 00000076 UsbFifoMgrRead
20000190 l O .bss 00000040 xcpCtoReqPacket.5490
200001d0 l O .bss 00000001 xcpCtoRxLength.5491
200001d1 l O .bss 00000001 xcpCtoRxInProgress.5492
200001d4 l O .bss 00000040 USB_Tx_Buffer.5511
20000214 l O .bss 00000004 fifoCtrlFree
20000218 l O .bss 00000030 fifoCtrl
20000248 l O .bss 00000041 fifoPipeBulkOUT
2000028c l O .bss 00000041 fifoPipeBulkIN
200002d0 l O .bss 00000040 USB_Rx_Buffer.5522
00000000 l df *ABS* 00000000 flash.c
08001e74 l F .text 00000022 FlashUnlock
08001e98 l F .text 00000012 FlashLock
08001eac l F .text 00000050 FlashGetSector
08001efc l F .text 000000b6 FlashWriteBlock
08001fb4 l F .text 00000042 FlashGetSectorBaseAddr
08001ff8 l F .text 00000042 FlashGetSectorSize
0800203c l F .text 000000b0 FlashEraseSectors
080020ec l F .text 00000026 FlashInitBlock
08002114 l F .text 0000004e FlashSwitchBlock
08002164 l F .text 00000082 FlashAddToBlock
08002990 l O .text 000000a8 flashLayout
200001b0 l O .bss 00000204 bootBlockInfo
200003b4 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
20000310 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
0800217c l F .text 00000012 FlashLock
08002190 l F .text 00000044 FlashGetSector
080021d4 l F .text 000000d0 FlashWriteBlock
080022a4 l F .text 00000062 FlashSwitchBlock
08002308 l F .text 00000084 FlashAddToBlock
080027f0 l O .text 0000009c flashLayout
20000314 l O .bss 00000204 bootBlockInfo
20000518 l O .bss 00000204 blockInfo
200005b8 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 usb.c
08002448 l F .text 0000002a IntToUnicode
08002474 l F .text 0000003a UsbFifoMgrInit
080024b0 l F .text 00000038 UsbFifoMgrCreate
080024e8 l F .text 0000007c UsbFifoMgrWrite
08002564 l F .text 00000014 UsbTransmitByte
08002578 l F .text 00000076 UsbFifoMgrRead
080025f0 l F .text 00000014 UsbReceiveByte
08002604 l F .text 0000002c UsbFifoMgrScan
200005bc l O .bss 00000040 xcpCtoReqPacket.5488
200005fc l O .bss 00000001 xcpCtoRxInProgress.5490
200005fd l O .bss 00000001 xcpCtoRxLength.5489
20000600 l O .bss 00000004 fifoCtrlFree
20000604 l O .bss 00000030 fifoCtrl
20000634 l O .bss 00000041 fifoPipeBulkOUT
20000678 l O .bss 00000040 USB_Rx_Buffer.5520
200006b8 l O .bss 00000040 USB_Tx_Buffer.5509
200006f8 l O .bss 00000041 fifoPipeBulkIN
00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c
080026f0 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crti.o
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crtn.o
00000000 l df *ABS* 00000000 usb_desc.c
00000000 l df *ABS* 00000000 crtstuff.c
08002a60 l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__
0800170c g F .text 00000018 ComInit
20000756 g O .bss 00000002 SaveRState
080014d4 g F .text 00000022 SetEPRxValid
080023a8 g F .text 00000050 FlashWrite
08001660 g F .text 00000024 GetEPRxCount
08001bf4 g F .text 00000008 AssertFailure
0800032c g F .text 00000016 SOF_Callback
080026ac g F .text 00000058 reset_handler
08002144 g F .text 00000022 TimerUpdate
080017fc g F .text 00000010 XcpPacketTransmitted
080009b8 g F .text 0000009e Standard_SetEndPointFeature
080010a0 g F .text 00000042 USB_Init
08001684 g F .text 0000000a ByteSwap
08001724 g F .text 0000002c ComTask
080015b4 g F .text 0000001e GetEPTxAddr
080003d8 g F .text 00000028 Bulk_Init
080016dc g F .text 0000001c BootInit
08001bc8 g F .text 00000022 BackDoorInit
080015f4 g F .text 00000020 SetEPTxCount
20000724 g O .bss 00000002 SaveState
20000064 g O .data 00000008 Device_Descriptor
08001bf0 g F .text 00000002 CopService
080028bc g .text 00000000 _etext
080003c8 g F .text 00000010 Bulk_Get_Interface_Setting
080026a4 g F .text 00000004 CpuIrqDisable
08001440 g F .text 00000036 SetEPTxStatus
200000d0 g O .data 0000001c pEpInt_OUT
08000a58 g F .text 00000026 Standard_SetDeviceFeature
08002684 g F .text 0000000a FlashGetUserProgBaseAddress
08000324 g F .text 00000008 EP1_OUT_Callback
08002134 g F .text 0000000e TimerReset
0800089c g F .text 0000011c Standard_ClearFeature
080016b8 g F .text 00000024 USB_SIL_Read
08000370 g F .text 00000002 Bulk_Status_In
08000ae4 g F .text 000003d6 Setup0_Process
080016f8 g F .text 00000014 BootTask
08002578 g F .text 00000058 FlashWriteChecksum
08001758 g F .text 0000001c ComTransmitPacket
08002090 g F .text 00000040 UsbGetSerialNum
08002758 g O .text 00000020 Bulk_ConfigDescriptor
08000374 g F .text 00000002 Bulk_Status_Out
2000071c g O .bss 00000002 wIstr
20000728 g O .bss 00000004 pProperty
080007fc g F .text 00000044 Standard_SetConfiguration
200000b4 g O .data 0000001c pEpInt_IN
2000072c g O .bss 00000001 EPindex
20000008 g O .data 00000030 Device_Property
08002778 g O .text 0000001a Bulk_StringVendor
080017e8 g F .text 00000012 XcpIsConnected
0800064c g F .text 000000e0 Standard_GetStatus
080020d0 g F .text 00000008 NvmInit
08002718 g O .text 00000012 Bulk_DeviceDescriptor
0800238c g F .text 0000001a FlashInit
080020f0 g F .text 00000008 NvmGetUserProgBaseAddress
2000006c g O .data 00000028 String_Descriptor
08001518 g F .text 00000026 ClearDTOG_RX
2000075a g .bss 00000000 _ebss
0800109c g F .text 00000002 NOP_Process
08000840 g F .text 0000005a Standard_SetInterface
08001614 g F .text 0000004a SetEPRxCount
08002690 g F .text 00000012 UnusedISR
08001690 g F .text 00000026 USB_SIL_Init
08001750 g F .text 00000008 ComFree
080005b8 g F .text 00000034 PowerOn
20000098 g O .data 0000001c Bulk_StringSerial
080010e4 g F .text 000002da CTR_LP
20000758 g O .bss 00000002 SaveTState
08001414 g F .text 00000012 SetBTABLE
08002030 g F .text 0000005e UsbReceivePipeBulkOUT
080020e0 g F .text 00000008 NvmErase
080001a8 g F .text 00000010 CpuUserProgramStartHook
20000038 g O .data 00000024 User_Standard_Requests
08000400 g F .text 000000b4 Bulk_Reset
20000730 g O .bss 0000001c Device_Info
200000f0 g .bss 00000000 _bss
08000360 g F .text 0000000e Bulk_SetDeviceAddress
080005ec g F .text 00000030 Standard_GetConfiguration
0800180c g F .text 0000037a XcpPacketReceived
08001bfc g F .text 00000008 CpuInit
2000074c g O .bss 00000004 pUser_Standard_Requests
08002638 g F .text 0000004c FlashDone
08000fdc g F .text 00000048 SetDeviceAddress
080013f4 g F .text 0000001e PMAToUserBufferCopy
0800158c g F .text 00000026 SetEPRxAddr
200000f1 g O .bss 00000001 bIntPackSOF
08001e3c g F .text 0000007a UsbTransmitPacket
08001024 g F .text 00000076 In0_Process
08000150 g F .text 00000056 UsbConnectHook
08000378 g F .text 0000004c Bulk_Data_Setup
20000720 g O .bss 00000002 StatusInfo
20000750 g O .bss 00000004 pInformation
08001428 g F .text 00000018 SetEPType
080017cc g F .text 0000001c XcpInit
08001d84 g F .text 000000ac UsbInit
08001e30 g F .text 0000000a UsbFree
080023f8 g F .text 0000017e FlashErase
080001b8 g F .text 00000162 main
0800061c g F .text 00000030 Standard_GetInterface
080020f8 g F .text 00000012 NvmDone
080020e8 g F .text 00000008 NvmVerifyChecksum
08001c40 g F .text 0000001e CpuMemCopy
2000005c g O .data 00000008 Bulk_Descriptor
080003c4 g F .text 00000004 Bulk_NoData_Setup
08001790 g F .text 0000001a ComGetActiveInterfaceMaxTxLen
080004b4 g F .text 00000010 Bulk_GetDeviceDescriptor
080026a8 g F .text 00000004 CpuIrqEnable
08000a80 g F .text 0000001c Standard_GetDescriptorData
08002730 g O .text 00000026 Bulk_StringProduct
08000ebc g F .text 0000011e Out0_Process
20000000 g .data 00000000 _data
0800272c g O .text 00000004 Bulk_StringLangID
08001bec g F .text 00000002 CopInit
0800031c g F .text 00000008 EP1_IN_Callback
080014b0 g F .text 00000022 SetEPTxValid
080004d4 g F .text 00000028 Bulk_GetStringDescriptor
080020d8 g F .text 00000008 NvmWrite
08001c04 g F .text 0000003a CpuStartUserProgram
2000095c g .bss 00000000 _estack
08001eb8 g F .text 000000c0 UsbReceivePacket
080025d0 g F .text 00000068 FlashVerifyChecksum
200000f8 g O .bss 00000001 Data_Mul_MaxPacketSize
200000ed g .data 00000000 _edata
080004fc g F .text 00000010 Bulk_GetBulkDescriptor
08000a9c g F .text 00000048 Post0_Process
08000000 g O .text 00000150 _vectab
0800050c g F .text 000000ac USB_Istr
08001478 g F .text 00000036 SetEPRxStatus
08001540 g F .text 00000026 ClearDTOG_TX
08001568 g F .text 00000024 SetEPTxAddr
080017ac g F .text 00000008 ComIsConnected
20000000 g O .data 00000008 Config_Descriptor
080014f8 g F .text 0000001e Clear_Status_Out
080013c0 g F .text 00000034 UserToPMABufferCopy
08001774 g F .text 0000001a ComGetActiveInterfaceMaxRxLen
08001b88 g F .text 00000040 BackDoorCheck
2000075a g .bss 00000000 _stack
08000344 g F .text 0000001a Bulk_SetConfiguration
200000f4 g O .bss 00000004 bDeviceState
08002168 g F .text 00000012 TimerGet
20000094 g O .data 00000002 Device_Table
08001f78 g F .text 000000b8 UsbTransmitPipeBulkIN
080004c4 g F .text 00000010 Bulk_GetConfigDescriptor
08002794 g O .text 0000002c Bulk_StringInterface
0800210c g F .text 00000028 TimerInit
20000754 g O .bss 00000002 wInterrupt_Mask
080015d4 g F .text 00000020 GetEPRxAddr
00000800 l *ABS* 00000000 __HEAP_SIZE
08002a64 l .text 00000000 __exidx_end
08002a64 l .text 00000000 __exidx_start
00000800 l *ABS* 00000000 __STACK_SIZE
0800190c g F .text 00000018 ComInit
08001220 g F .text 00000022 SetEPRxValid
20000772 g O .bss 00000002 SaveRState
08002204 g F .text 00000050 FlashWrite
0800021e w F .text 00000002 EXTI2_IRQHandler
20000778 g .heap 00000800 __HeapBase
080013ac g F .text 00000024 GetEPRxCount
08001870 g F .text 00000008 AssertFailure
080015a8 g F .text 00000016 SOF_Callback
08000206 w F .text 00000002 DebugMon_Handler
08002410 g F .text 00000022 TimerUpdate
08001d08 g F .text 00000010 XcpPacketTransmitted
20000000 g .data 00000000 __data_start__
080009f8 g F .text 0000009e Standard_SetEndPointFeature
08000df4 g F .text 00000042 USB_Init
08000244 w F .text 00000002 TIM1_CC_IRQHandler
080013d0 g F .text 0000000a ByteSwap
08001924 g F .text 0000002c ComTask
080001fc w F .text 00000002 HardFault_Handler
08001300 g F .text 0000001e GetEPTxAddr
0800020a w F .text 00000002 SysTick_Handler
08000210 w F .text 00000002 PVD_IRQHandler
08001708 g F .text 00000028 Bulk_Init
080018dc g F .text 0000001c BootInit
08000208 w F .text 00000002 PendSV_Handler
080001fa w F .text 00000002 NMI_Handler
08000220 w F .text 00000002 EXTI3_IRQHandler
080018b8 g F .text 00000022 BackDoorInit
08001340 g F .text 00000020 SetEPTxCount
08002a64 g .text 00000000 __etext
20000740 g O .bss 00000002 SaveState
200000b8 g O .data 00000008 Device_Descriptor
080019c8 g F .text 00000002 CopService
080016f8 g F .text 00000010 Bulk_Get_Interface_Setting
080028b8 g F .text 00000004 CpuIrqDisable
0800118c g F .text 00000036 SetEPTxStatus
20000038 g O .data 0000001c pEpInt_OUT
08000a98 g F .text 00000026 Standard_SetDeviceFeature
0800238c g F .text 0000000a FlashGetUserProgBaseAddress
200000f8 g O .data 00000000 .hidden __TMC_END__
080015a0 g F .text 00000008 EP1_OUT_Callback
080023d4 g F .text 0000000e TimerReset
080008dc g F .text 0000011c Standard_ClearFeature
0800021a w F .text 00000002 EXTI0_IRQHandler
08001404 g F .text 00000024 USB_SIL_Read
08000250 w F .text 00000002 I2C2_EV_IRQHandler
08001694 g F .text 00000002 Bulk_Status_In
08000c44 g F .text 0000008c Setup0_Process
080018f8 g F .text 00000014 BootTask
08002280 g F .text 00000058 FlashWriteChecksum
08000202 w F .text 00000002 UsageFault_Handler
08001958 g F .text 0000001c ComTransmitPacket
08000232 w F .text 00000002 ADC1_2_IRQHandler
08002878 g F .text 00000040 UsbGetSerialNum
20000f78 g .heap 00000000 __HeapLimit
200000f8 g .bss 00000000 __bss_start__
08002920 g O .text 00000020 Bulk_ConfigDescriptor
08000254 w F .text 00000002 SPI1_IRQHandler
08001698 g F .text 00000002 Bulk_Status_Out
20000776 g O .bss 00000002 wIstr
08000212 w F .text 00000002 TAMPER_IRQHandler
20000744 g O .bss 00000004 pProperty
08000838 g F .text 00000044 Standard_SetConfiguration
2000001c g O .data 0000001c pEpInt_IN
0800022a w F .text 00000002 DMA1_Channel4_IRQHandler
20000748 g O .bss 00000001 EPindex
2000005c g O .data 00000030 Device_Property
08002940 g O .text 0000001a Bulk_StringVendor
08001cf4 g F .text 00000012 XcpIsConnected
080028c0 g F .text 00000000 _init
08000334 g F .text 000000e0 Standard_GetStatus
08002398 g F .text 00000008 NvmInit
080028e0 g O .text 00000012 Bulk_DeviceDescriptor
080021e8 g F .text 0000001a FlashInit
080023b8 g F .text 00000008 NvmGetUserProgBaseAddress
200000c0 g O .data 00000028 String_Descriptor
08001264 g F .text 00000026 ClearDTOG_RX
0800025c w F .text 00000002 USART3_IRQHandler
08000214 w F .text 00000002 RTC_IRQHandler
08000df0 g F .text 00000002 NOP_Process
08000230 w F .text 00000002 DMA1_Channel7_IRQHandler
080001b4 g F .text 00000030 Reset_Handler
08000238 w F .text 00000002 CAN1_RX1_IRQHandler
0800087c g F .text 00000060 Standard_SetInterface
08001360 g F .text 0000004a SetEPRxCount
080013dc g F .text 00000026 USB_SIL_Init
08001950 g F .text 00000008 ComFree
0800183c g F .text 00000034 PowerOn
0800024a w F .text 00000002 TIM4_IRQHandler
20000000 g O .data 0000001c Bulk_StringSerial
08000e38 g F .text 000002da CTR_LP
00000000 w *UND* 00000000 __deregister_frame_info
20000778 g .heap 00000000 end
0800024c w F .text 00000002 I2C1_EV_IRQHandler
20000774 g O .bss 00000002 SaveTState
200000f8 g .data 00000000 __data_end__
08001160 g F .text 00000012 SetBTABLE
00000000 w *UND* 00000000 _ITM_registerTMCloneTable
0800281c g F .text 0000005a UsbReceivePipeBulkOUT
080023a8 g F .text 00000008 NvmErase
080002c4 g F .text 00000010 CpuUserProgramStartHook
2000008c g O .data 00000024 User_Standard_Requests
0800022e w F .text 00000002 DMA1_Channel6_IRQHandler
20000778 g .bss 00000000 __bss_end__
08001730 g F .text 000000b4 Bulk_Reset
08000248 w F .text 00000002 TIM3_IRQHandler
08000218 w F .text 00000002 RCC_IRQHandler
2000074c g O .bss 0000001c Device_Info
08000242 w F .text 00000002 TIM1_TRG_COM_IRQHandler
08000224 w F .text 00000002 DMA1_Channel1_IRQHandler
08001684 g F .text 0000000e Bulk_SetDeviceAddress
080002d4 g F .text 00000030 Standard_GetConfiguration
0800020c w F .text 00000002 Default_Handler
080001e4 w F .text 00000016 _start
08001d18 g F .text 000000f6 XcpPacketReceived
08001e10 g F .text 00000008 CpuInit
20000768 g O .bss 00000004 pUser_Standard_Requests
0800025e w F .text 00000002 EXTI15_10_IRQHandler
08002340 g F .text 0000004c FlashDone
08000d30 g F .text 00000048 SetDeviceAddress
08001140 g F .text 00000020 PMAToUserBufferCopy
080012d8 g F .text 00000026 SetEPRxAddr
20000116 g O .bss 00000001 bIntPackSOF
08002684 g F .text 00000064 UsbTransmitPacket
08000d78 g F .text 00000076 In0_Process
0800026c g F .text 00000056 UsbConnectHook
0800169c g F .text 00000058 Bulk_Data_Setup
0800023c w F .text 00000002 EXTI9_5_IRQHandler
2000073c g O .bss 00000002 StatusInfo
2000076c g O .bss 00000004 pInformation
08001174 g F .text 00000018 SetEPType
08001cd8 g F .text 0000001c XcpInit
00000000 w *UND* 00000000 _ITM_deregisterTMCloneTable
08002630 g F .text 00000048 UsbInit
08000256 w F .text 00000002 SPI2_IRQHandler
08002678 g F .text 0000000a UsbFree
08002254 g F .text 0000002a FlashErase
080001fe w F .text 00000002 MemManage_Handler
08000000 g .text 000000ec __isr_vector
08001588 g F .text 00000010 main
08000304 g F .text 00000030 Standard_GetInterface
08000204 w F .text 00000002 SVC_Handler
080023c0 g F .text 00000012 NvmDone
080023b0 g F .text 00000008 NvmVerifyChecksum
08001e54 g F .text 00000020 CpuMemCopy
20000778 g .heap 00000000 __end__
0800022c w F .text 00000002 DMA1_Channel5_IRQHandler
08000222 w F .text 00000002 EXTI4_IRQHandler
08000236 w F .text 00000002 USB_LP_CAN1_RX0_IRQHandler
200000b0 g O .data 00000008 Bulk_Descriptor
080028cc g F .text 00000000 _fini
08000234 w F .text 00000002 USB_HP_CAN1_TX_IRQHandler
080016f4 g F .text 00000004 Bulk_NoData_Setup
08001998 g F .text 00000022 ComGetActiveInterfaceMaxTxLen
080017e4 g F .text 00000010 Bulk_GetDeviceDescriptor
080028bc g F .text 00000004 CpuIrqEnable
08000228 w F .text 00000002 DMA1_Channel3_IRQHandler
20005000 g *ABS* 00000000 __StackTop
08000240 w F .text 00000002 TIM1_UP_IRQHandler
08000be0 g F .text 0000001c Standard_GetDescriptorData
080028f8 g O .text 00000026 Bulk_StringProduct
08000cd0 g F .text 00000060 Out0_Process
0800020e w F .text 00000002 WWDG_IRQHandler
080028f4 g O .text 00000004 Bulk_StringLangID
080019c4 g F .text 00000002 CopInit
08001598 g F .text 00000008 EP1_IN_Callback
08000246 w F .text 00000002 TIM2_IRQHandler
080011fc g F .text 00000022 SetEPTxValid
08001804 g F .text 00000028 Bulk_GetStringDescriptor
080023a0 g F .text 00000008 NvmWrite
08001e18 g F .text 0000003a CpuStartUserProgram
0800023e w F .text 00000002 TIM1_BRK_IRQHandler
080026e8 g F .text 000000ac UsbReceivePacket
0800021c w F .text 00000002 EXTI1_IRQHandler
080022d8 g F .text 00000068 FlashVerifyChecksum
20000115 g O .bss 00000001 Data_Mul_MaxPacketSize
0800182c g F .text 00000010 Bulk_GetBulkDescriptor
08000bfc g F .text 00000048 Post0_Process
08000260 w F .text 00000002 RTCAlarm_IRQHandler
080015c0 g F .text 000000a6 USB_Istr
080011c4 g F .text 00000036 SetEPRxStatus
20004800 g *ABS* 00000800 __StackLimit
0800025a w F .text 00000002 USART2_IRQHandler
0800128c g F .text 00000026 ClearDTOG_TX
080012b4 g F .text 00000024 SetEPTxAddr
08000252 w F .text 00000002 I2C2_ER_IRQHandler
080019bc g F .text 00000008 ComIsConnected
08000226 w F .text 00000002 DMA1_Channel2_IRQHandler
20000054 g O .data 00000008 Config_Descriptor
08001244 g F .text 0000001e Clear_Status_Out
0800023a w F .text 00000002 CAN1_SCE_IRQHandler
08000216 w F .text 00000002 FLASH_IRQHandler
08001114 g F .text 0000002c UserToPMABufferCopy
08001974 g F .text 00000022 ComGetActiveInterfaceMaxRxLen
08000200 w F .text 00000002 BusFault_Handler
08000258 w F .text 00000002 USART1_IRQHandler
08001878 g F .text 00000040 BackDoorCheck
08001668 g F .text 0000001a Bulk_SetConfiguration
0800024e w F .text 00000002 I2C1_ER_IRQHandler
20000118 g O .bss 00000004 bDeviceState
08002434 g F .text 00000012 TimerGet
200000e8 g O .data 00000002 Device_Table
08002794 g F .text 00000088 UsbTransmitPipeBulkIN
00000000 w *UND* 00000000 _Jv_RegisterClasses
080017f4 g F .text 00000010 Bulk_GetConfigDescriptor
0800295c g O .text 0000002c Bulk_StringInterface
080023e4 g F .text 0000002c TimerInit
00000000 w *UND* 00000000 __register_frame_info
20000770 g O .bss 00000002 wInterrupt_Mask
08001320 g F .text 00000020 GetEPRxAddr
08000262 w F .text 00000002 USBWakeUp_IRQHandler

View File

@ -120,6 +120,23 @@
#define BOOT_NVM_CHECKSUM_HOOKS_ENABLE (0)
/****************************************************************************************
* F L A S H M E M O R Y D R I V E R C O N F I G U R A T I O N
****************************************************************************************/
/** \brief This microcontroller has a smaller vector table then the default STM32F1xx
* project as assumed in the bootloader's core. This means the user program has
* a different checksum location, because this one is added at the end of the
* user program's vector table.
*/
#define FLASH_VECTOR_TABLE_CS_OFFSET (0xec)
/** \brief Enable support for a custom flash layout table. It is located in
* flash_layout.c. This was done because the default flashLayout[] table
* in the bootloader's core has more flash memory reserved for the bootloader
* than is needed for this demo.
*/
#define BOOT_FLASH_CUSTOM_LAYOUT_ENABLE (1)
/****************************************************************************************
* W A T C H D O G D R I V E R C O N F I G U R A T I O N
****************************************************************************************/

View File

@ -0,0 +1,59 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_GCC\Boot\flash_layout.c
* \brief Custom flash layout table source file.
* \ingroup Boot_ARMCM3_STM32F1_Olimex_STM32H103_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/** \brief Array wit the layout of the flash memory.
* \details Also controls what part of the flash memory is reserved for the bootloader.
* If the bootloader size changes, the reserved sectors for the bootloader
* might need adjustment to make sure the bootloader doesn't get overwritten.
*/
static const tFlashSector flashLayout[] =
{
/* space is reserved for a bootloader configuration with all supported communication
* interfaces enabled. when for example only UART is needed, than the space required
* for the bootloader can be made a lot smaller here.
*/
/* { 0x08000000, 0x02000, 0}, flash sector 0 - reserved for bootloader */
/* { 0x08002000, 0x02000, 1}, flash sector 1 - reserved for bootloader */
{ 0x08004000, 0x02000, 2}, /* flash sector 2 - 8kb */
{ 0x08006000, 0x02000, 3}, /* flash sector 3 - 8kb */
{ 0x08008000, 0x02000, 4}, /* flash sector 4 - 8kb */
{ 0x0800A000, 0x02000, 5}, /* flash sector 5 - 8kb */
{ 0x0800C000, 0x02000, 6}, /* flash sector 6 - 8kb */
{ 0x0800E000, 0x02000, 7}, /* flash sector 7 - 8kb */
{ 0x08010000, 0x02000, 8}, /* flash sector 8 - 8kb */
{ 0x08012000, 0x02000, 9}, /* flash sector 9 - 8kb */
{ 0x08014000, 0x02000, 10}, /* flash sector 10 - 8kb */
{ 0x08016000, 0x02000, 11}, /* flash sector 11 - 8kb */
{ 0x08018000, 0x02000, 12}, /* flash sector 12 - 8kb */
{ 0x0801A000, 0x02000, 13}, /* flash sector 13 - 8kb */
{ 0x0801C000, 0x02000, 14}, /* flash sector 14 - 8kb */
{ 0x0801E000, 0x02000, 15}, /* flash sector 15 - 8kb */
};
/*********************************** end of flash_layout.c *****************************/

View File

@ -1,11 +1,11 @@
#****************************************************************************************
#| Description: Makefile for STM32 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) 2011 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,146 +25,113 @@
#****************************************************************************************
SHELL = sh
#|---------------------------------------------------------------------------------------|
#| Configure project name |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Configure project name |
#|--------------------------------------------------------------------------------------|
PROJ_NAME=openblt_olimex_stm32h103
#|---------------------------------------------------------------------------------------|
#| Speficy project source files |
#|---------------------------------------------------------------------------------------|
PROJ_FILES= \
blt_conf.h \
hooks.c \
main.c \
usb_conf.h \
usb_endp.c \
usb_prop.h \
usb_prop.c \
usb_desc.h \
usb_desc.c \
usb_istr.h \
usb_istr.c \
usb_pwr.h \
usb_pwr.c \
./lib/CMSIS/CM3/CoreSupport/core_cm3.c \
./lib/CMSIS/CM3/CoreSupport/core_cm3.h \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c \
./lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h \
./lib/USB_FS_DEVICE/inc/usb_core.h \
./lib/USB_FS_DEVICE/inc/usb_init.h \
./lib/USB_FS_DEVICE/inc/usb_lib.h \
./lib/USB_FS_DEVICE/inc/usb_regs.h \
./lib/USB_FS_DEVICE/inc/usb_type.h \
./lib/USB_FS_DEVICE/inc/usb_def.h \
./lib/USB_FS_DEVICE/inc/usb_int.h \
./lib/USB_FS_DEVICE/inc/usb_mem.h \
./lib/USB_FS_DEVICE/inc/usb_sil.h \
./lib/USB_FS_DEVICE/src/usb_core.c \
./lib/USB_FS_DEVICE/src/usb_init.c \
./lib/USB_FS_DEVICE/src/usb_int.c \
./lib/USB_FS_DEVICE/src/usb_mem.c \
./lib/USB_FS_DEVICE/src/usb_regs.c \
./lib/USB_FS_DEVICE/src/usb_sil.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/can.h \
../../../Source/uart.h \
../../../Source/usb.h \
../../../Source/nvm.h \
../../../Source/timer.h \
../../../Source/plausibility.h \
../../../Source/ARMCM3_STM32F1/types.h \
../../../Source/ARMCM3_STM32F1/cpu.c \
../../../Source/ARMCM3_STM32F1/can.c \
../../../Source/ARMCM3_STM32F1/uart.c \
../../../Source/ARMCM3_STM32F1/usb.c \
../../../Source/ARMCM3_STM32F1/nvm.c \
../../../Source/ARMCM3_STM32F1/timer.c \
../../../Source/ARMCM3_STM32F1/flash.c \
../../../Source/ARMCM3_STM32F1/flash.h \
../../../Source/ARMCM3_STM32F1/GCC/vectors.c \
../../../Source/ARMCM3_STM32F1/GCC/cpu_comp.c \
../../../Source/ARMCM3_STM32F1/GCC/cstart.c
#|--------------------------------------------------------------------------------------|
#| Configure tool path |
#|--------------------------------------------------------------------------------------|
TOOL_PATH=
#|---------------------------------------------------------------------------------------|
#| 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_STM32F1/*.c)
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/*.h)
# Collect bootloader port compiler specific files
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/GCC/*.c)
PROJ_FILES += $(wildcard ../../../Source/ARMCM3_STM32F1/GCC/*.h)
#|---------------------------------------------------------------------------------------|
#| Extract file names |
#|---------------------------------------------------------------------------------------|
PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
#|--------------------------------------------------------------------------------------|
#| Toolchain binaries |
#|--------------------------------------------------------------------------------------|
RM = cs-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.
LIB_PATH = -L../../../Source/ARMCM3_STM32F1/GCC/
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 -O1 -T memory.x
CFLAGS += -D PACK_STRUCT_END=__attribute\(\(packed\)\) -Wno-main
CFLAGS += -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\)
CFLAGS += -ffunction-sections -fdata-sections $(INC_PATH) -D STM32F10X_MD -D GCC_ARMCM3
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 srec
ODFLAGS = -x
SZFLAGS = -B -d
#|--------------------------------------------------------------------------------------|
#| Options for toolchain binaries |
#|--------------------------------------------------------------------------------------|
HEAP_SIZE = 0x0800
STACK_SIZE = 0x0800
STDFLAGS = -mcpu=cortex-m3 -mthumb -fno-strict-aliasing -Wno-maybe-uninitialized
STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3
OPTFLAGS = -Og
CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -DSTM32F10X_MD -DGCC_ARMCM3
CFLAGS += -D__HEAP_SIZE=$(HEAP_SIZE) -D__STACK_SIZE=$(STACK_SIZE)
CFLAGS += $(INC_PATH)
AFLAGS = $(CFLAGS)
LFLAGS = $(STDFLAGS) $(OPTFLAGS)
LFLAGS += -Wl,--defsym=__HEAP_SIZE=$(HEAP_SIZE) -Wl,--defsym=__STACK_SIZE=$(STACK_SIZE)
LFLAGS += -Wl,-script="stm32f103rb_flash.ld" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
LFLAGS += -Wl,--gc-sections $(LIB_PATH)
OFLAGS = -O srec
ODFLAGS = -x
SZFLAGS = -B -d
RMFLAGS = -f
#|---------------------------------------------------------------------------------------|
#| Specify library files |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Specify library files |
#|--------------------------------------------------------------------------------------|
LIBS =
#|---------------------------------------------------------------------------------------|
#| Define targets |
#|---------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
#|--------------------------------------------------------------------------------------|
#| 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
@ -176,31 +143,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 |
#|---------------------------------------------------------------------------------------|
$(AOBJS): %.o: %.s $(PROJ_CHDRS)
#|--------------------------------------------------------------------------------------|
#| 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

@ -0,0 +1,285 @@
/* File: startup_ARMCM3.S
* Purpose: startup file for Cortex-M3 devices. Should use with
* GCC for ARM Embedded Processors
* Version: V1.3
* Date: 08 Feb 2012
*
* Copyright (c) 2012, ARM Limited
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the ARM Limited nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES//
* LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.syntax unified
.arch armv7-m
.section .stack
.align 3
#ifdef __STACK_SIZE
.equ Stack_Size, __STACK_SIZE
#else
.equ Stack_Size, 0x400
#endif
.globl __StackTop
.globl __StackLimit
__StackLimit:
.space Stack_Size
.size __StackLimit, . - __StackLimit
__StackTop:
.size __StackTop, . - __StackTop
.section .heap
.align 3
#ifdef __HEAP_SIZE
.equ Heap_Size, __HEAP_SIZE
#else
.equ Heap_Size, 0xC00
#endif
.globl __HeapBase
.globl __HeapLimit
__HeapBase:
.if Heap_Size
.space Heap_Size
.endif
.size __HeapBase, . - __HeapBase
__HeapLimit:
.size __HeapLimit, . - __HeapLimit
.section .isr_vector
.align 2
.globl __isr_vector
__isr_vector:
.long __StackTop /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
.long MemManage_Handler /* MPU Fault Handler */
.long BusFault_Handler /* Bus Fault Handler */
.long UsageFault_Handler /* Usage Fault Handler */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long SVC_Handler /* SVCall Handler */
.long DebugMon_Handler /* Debug Monitor Handler */
.long 0 /* Reserved */
.long PendSV_Handler /* PendSV Handler */
.long SysTick_Handler /* SysTick Handler */
// External Interrupts
.long WWDG_IRQHandler // Window Watchdog
.long PVD_IRQHandler // PVD through EXTI Line detect
.long TAMPER_IRQHandler // Tamper
.long RTC_IRQHandler // RTC
.long FLASH_IRQHandler // Flash
.long RCC_IRQHandler // RCC
.long EXTI0_IRQHandler // EXTI Line 0
.long EXTI1_IRQHandler // EXTI Line 1
.long EXTI2_IRQHandler // EXTI Line 2
.long EXTI3_IRQHandler // EXTI Line 3
.long EXTI4_IRQHandler // EXTI Line 4
.long DMA1_Channel1_IRQHandler // DMA1 Channel 1
.long DMA1_Channel2_IRQHandler // DMA1 Channel 2
.long DMA1_Channel3_IRQHandler // DMA1 Channel 3
.long DMA1_Channel4_IRQHandler // DMA1 Channel 4
.long DMA1_Channel5_IRQHandler // DMA1 Channel 5
.long DMA1_Channel6_IRQHandler // DMA1 Channel 6
.long DMA1_Channel7_IRQHandler // DMA1 Channel 7
.long ADC1_2_IRQHandler // ADC1_2
.long USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
.long USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
.long CAN1_RX1_IRQHandler // CAN1 RX1
.long CAN1_SCE_IRQHandler // CAN1 SCE
.long EXTI9_5_IRQHandler // EXTI Line 9..5
.long TIM1_BRK_IRQHandler // TIM1 Break
.long TIM1_UP_IRQHandler // TIM1 Update
.long TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
.long TIM1_CC_IRQHandler // TIM1 Capture Compare
.long TIM2_IRQHandler // TIM2
.long TIM3_IRQHandler // TIM3
.long TIM4_IRQHandler // TIM4
.long I2C1_EV_IRQHandler // I2C1 Event
.long I2C1_ER_IRQHandler // I2C1 Error
.long I2C2_EV_IRQHandler // I2C2 Event
.long I2C2_ER_IRQHandler // I2C2 Error
.long SPI1_IRQHandler // SPI1
.long SPI2_IRQHandler // SPI2
.long USART1_IRQHandler // USART1
.long USART2_IRQHandler // USART2
.long USART3_IRQHandler // USART3
.long EXTI15_10_IRQHandler // EXTI Line 15..10
.long RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
.long USBWakeUp_IRQHandler // USB Wakeup from suspend
.size __isr_vector, . - __isr_vector
.text
.thumb
.thumb_func
.align 2
.globl Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Initialize the stackpointer. this is done automatically after a reset event, but
* this program is started by the bootloader and not a reset event. */
ldr r1, =__StackTop
mov sp, r1
/* Loop to copy data from read only memory to RAM. The ranges
* of copy from/to are specified by following symbols evaluated in
* linker script.
* __etext: End of code section, i.e., begin of data sections to copy from.
* __data_start__/__data_end__: RAM address range that data should be
* copied to. Both must be aligned to 4 bytes boundary. */
ldr r1, =__etext
ldr r2, =__data_start__
ldr r3, =__data_end__
#if 1
/* Here are two copies of loop implemenations. First one favors code size
* and the second one favors performance. Default uses the first one.
* Change to "#if 0" to use the second one */
.flash_to_ram_loop:
cmp r2, r3
ittt lt
ldrlt r0, [r1], #4
strlt r0, [r2], #4
blt .flash_to_ram_loop
#else
subs r3, r2
ble .flash_to_ram_loop_end
.flash_to_ram_loop:
subs r3, #4
ldr r0, [r1, r3]
str r0, [r2, r3]
bgt .flash_to_ram_loop
.flash_to_ram_loop_end:
#endif
#define __NO_SYSTEM_INIT
#ifndef __NO_SYSTEM_INIT
ldr r0, =SystemInit
blx r0
#endif
ldr r0, =_start
bx r0
.pool
.size Reset_Handler, . - Reset_Handler
/* Our weak _start alternative if we don't use the library _start
* The zero init section must be cleared, otherwise the librtary is
* doing that */
.align 1
.thumb_func
.weak _start
.type _start, %function
_start:
/* Zero fill the bss segment. */
ldr r1, = __bss_start__
ldr r2, = __bss_end__
movs r3, #0
b .fill_zero_bss
.loop_zero_bss:
str r3, [r1], #4
.fill_zero_bss:
cmp r1, r2
bcc .loop_zero_bss
/* Jump to our main */
bl main
b .
.size _start, . - _start
/* Macro to define default handlers. Default handler
* will be weak symbol and just dead loops. They can be
* overwritten by other handlers */
.macro def_irq_handler handler_name
.align 1
.thumb_func
.weak \handler_name
.type \handler_name, %function
\handler_name :
b .
.size \handler_name, . - \handler_name
.endm
def_irq_handler NMI_Handler
def_irq_handler HardFault_Handler
def_irq_handler MemManage_Handler
def_irq_handler BusFault_Handler
def_irq_handler UsageFault_Handler
def_irq_handler SVC_Handler
def_irq_handler DebugMon_Handler
def_irq_handler PendSV_Handler
def_irq_handler SysTick_Handler
def_irq_handler Default_Handler
// External Interrupts
def_irq_handler WWDG_IRQHandler // Window Watchdog
def_irq_handler PVD_IRQHandler // PVD through EXTI Line detect
def_irq_handler TAMPER_IRQHandler // Tamper
def_irq_handler RTC_IRQHandler // RTC
def_irq_handler FLASH_IRQHandler // Flash
def_irq_handler RCC_IRQHandler // RCC
def_irq_handler EXTI0_IRQHandler // EXTI Line 0
def_irq_handler EXTI1_IRQHandler // EXTI Line 1
def_irq_handler EXTI2_IRQHandler // EXTI Line 2
def_irq_handler EXTI3_IRQHandler // EXTI Line 3
def_irq_handler EXTI4_IRQHandler // EXTI Line 4
def_irq_handler DMA1_Channel1_IRQHandler // DMA1 Channel 1
def_irq_handler DMA1_Channel2_IRQHandler // DMA1 Channel 2
def_irq_handler DMA1_Channel3_IRQHandler // DMA1 Channel 3
def_irq_handler DMA1_Channel4_IRQHandler // DMA1 Channel 4
def_irq_handler DMA1_Channel5_IRQHandler // DMA1 Channel 5
def_irq_handler DMA1_Channel6_IRQHandler // DMA1 Channel 6
def_irq_handler DMA1_Channel7_IRQHandler // DMA1 Channel 7
def_irq_handler ADC1_2_IRQHandler // ADC1_2
def_irq_handler USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
def_irq_handler USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
def_irq_handler CAN1_RX1_IRQHandler // CAN1 RX1
def_irq_handler CAN1_SCE_IRQHandler // CAN1 SCE
def_irq_handler EXTI9_5_IRQHandler // EXTI Line 9..5
def_irq_handler TIM1_BRK_IRQHandler // TIM1 Break
def_irq_handler TIM1_UP_IRQHandler // TIM1 Update
def_irq_handler TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
def_irq_handler TIM1_CC_IRQHandler // TIM1 Capture Compare
def_irq_handler TIM2_IRQHandler // TIM2
def_irq_handler TIM3_IRQHandler // TIM3
def_irq_handler TIM4_IRQHandler // TIM4
def_irq_handler I2C1_EV_IRQHandler // I2C1 Event
def_irq_handler I2C1_ER_IRQHandler // I2C1 Error
def_irq_handler I2C2_EV_IRQHandler // I2C2 Event
def_irq_handler I2C2_ER_IRQHandler // I2C2 Error
def_irq_handler SPI1_IRQHandler // SPI1
def_irq_handler SPI2_IRQHandler // SPI2
def_irq_handler USART1_IRQHandler // USART1
def_irq_handler USART2_IRQHandler // USART2
def_irq_handler USART3_IRQHandler // USART3
def_irq_handler EXTI15_10_IRQHandler // EXTI Line 15..10
def_irq_handler RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
def_irq_handler USBWakeUp_IRQHandler // USB Wakeup from suspend
.end

View File

@ -0,0 +1,183 @@
/* ---------------------------------------------------------------------------- */
/* Em::Blocks embedded development Support */
/* ---------------------------------------------------------------------------- */
/* Copyright (c) 2014, EmBlocks */
/* */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following condition is met: */
/* */
/* - Redistributions of source code must retain the above copyright notice, */
/* this list of conditions and the disclaimer below. */
/* */
/* EmBlocks's name may not be used to endorse or promote products derived from */
/* this software without specific prior written permission. */
/* */
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY EBLOCKS "AS IS" AND ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
/* DISCLAIMED. IN NO EVENT SHALL EMBLOCKS BE LIABLE FOR ANY DIRECT, INDIRECT, */
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* ---------------------------------------------------------------------------- */
/*------------------------------------------------------------------------------
* Linker script for running in internal FLASH on the STM32F103RB
*----------------------------------------------------------------------------*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
/* reserve space for the OpenBLT bootloader which occupies the first part
* of flash.
*/
ROM (rx) : ORIGIN = 0x08000000, LENGTH = 16K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.
* It references following symbols, which must be defined in code:
* Reset_Handler : Entry of reset handler
*
* It defines following symbols, which code can use without definition:
* __exidx_start
* __exidx_end
* __etext
* __data_start__
* __preinit_array_start
* __preinit_array_end
* __init_array_start
* __init_array_end
* __fini_array_start
* __fini_array_end
* __data_end__
* __bss_start__
* __bss_end__
* __end__
* end
* __HeapLimit
* __StackLimit
* __StackTop
* __stack
*/
SECTIONS
{
.text :
{
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*))
} > ROM
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > ROM
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > ROM
__exidx_end = .;
__etext = .;
.data : AT (__etext)
{
__data_start__ = .;
*(vtable)
*(.data*)
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(4);
/* All data end */
__data_end__ = .;
} > RAM
.bss (NOLOAD):
{
__bss_start__ = .;
*(.bss*)
*(COMMON)
__bss_end__ = .;
} > RAM
.heap (NOLOAD):
{
__end__ = .;
end = __end__;
*(.heap*)
__HeapLimit = .;
} > RAM
/* .stack_dummy section doesn't contains any symbols. It is only
* used for linker to calculate size of stack sections, and assign
* values to stack symbols later */
.stack_dummy (NOLOAD):
{
*(.stack)
} > RAM
/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}

View File

@ -3,86 +3,184 @@ bin/demoprog_olimex_stm32h103.elf: file format elf32-littlearm
bin/demoprog_olimex_stm32h103.elf
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x08006000
start address 0x08004000
Program Header:
LOAD off 0x00000000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x000064d8 memsz 0x000064d8 flags r-x
LOAD off 0x00008000 vaddr 0x20000000 paddr 0x20000000 align 2**15
filesz 0x00000000 memsz 0x0000010c flags rw-
filesz 0x0000458c memsz 0x0000458c flags r-x
LOAD off 0x00008000 vaddr 0x20000000 paddr 0x0800458c align 2**15
filesz 0x00000008 memsz 0x00000030 flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000004d8 08006000 08006000 00006000 2**2
0 .text 0000058c 08004000 08004000 00004000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 0000010c 20000000 20000000 00008000 2**2
1 .data 00000008 20000000 0800458c 00008000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000028 20000008 08004594 00008008 2**2
ALLOC
2 .debug_info 00001d3b 00000000 00000000 000064d8 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_abbrev 00000986 00000000 00000000 00008213 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_loc 00000bf7 00000000 00000000 00008b99 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_aranges 00000280 00000000 00000000 00009790 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_ranges 00000210 00000000 00000000 00009a10 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000c53 00000000 00000000 00009c20 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00000e4e 00000000 00000000 0000a873 2**0
CONTENTS, READONLY, DEBUGGING
9 .comment 00000030 00000000 00000000 0000b6c1 2**0
3 .heap 00000800 20000030 20000030 00008008 2**3
CONTENTS, READONLY
10 .ARM.attributes 00000033 00000000 00000000 0000b6f1 2**0
4 .stack_dummy 00000800 20000030 20000030 00008808 2**3
CONTENTS, READONLY
11 .debug_frame 0000048c 00000000 00000000 0000b724 2**2
5 .ARM.attributes 00000027 00000000 00000000 00009008 2**0
CONTENTS, READONLY
6 .comment 00000030 00000000 00000000 0000902f 2**0
CONTENTS, READONLY
7 .debug_line 00001e9e 00000000 00000000 0000905f 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_info 00001cac 00000000 00000000 0000aefd 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00000883 00000000 00000000 0000cba9 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 00000268 00000000 00000000 0000d430 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 00000b48 00000000 00000000 0000d698 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 000001f8 00000000 00000000 0000e1e0 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_macro 0000cff4 00000000 00000000 0000e3d8 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_str 0004de64 00000000 00000000 0001b3cc 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 00000464 00000000 00000000 00069230 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08006000 l d .text 00000000 .text
20000000 l d .bss 00000000 .bss
08004000 l d .text 00000000 .text
20000000 l d .data 00000000 .data
20000008 l d .bss 00000000 .bss
20000030 l d .heap 00000000 .heap
20000030 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
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_loc 00000000 .debug_loc
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_macro 00000000 .debug_macro
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 cstart.c
08006198 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 obj/startup_stm32f10x_md.o
00000800 l *ABS* 00000000 Stack_Size
00000800 l *ABS* 00000000 Heap_Size
080041c2 l .text 00000000 .flash_to_ram_loop
080041f4 l .text 00000000 .fill_zero_bss
080041f0 l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
08004588 l O .text 00000000 __EH_FRAME_BEGIN__
080040f0 l F .text 00000000 deregister_tm_clones
08004118 l F .text 00000000 register_tm_clones
08004148 l F .text 00000000 __do_global_dtors_aux
20000008 l .bss 00000000 completed.7922
20000004 l O .data 00000000 __do_global_dtors_aux_fini_array_entry
08004178 l F .text 00000000 frame_dummy
2000000c l .bss 00000000 object.7927
20000000 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 led.c
20000000 l O .bss 00000004 timer_counter_last.6420
20000004 l O .bss 00000001 led_toggle_state.6419
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 timer.c
20000008 l O .bss 00000004 millisecond_counter
20000024 l O .bss 00000004 timer_counter_last.6418
20000028 l O .bss 00000001 led_toggle_state.6417
00000000 l df *ABS* 00000000 stm32f10x_gpio.c
00000000 l df *ABS* 00000000 stm32f10x_rcc.c
00000000 l df *ABS* 00000000 main.c
080043e8 l F .text 00000122 Init
00000000 l df *ABS* 00000000 timer.c
2000002c l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crti.o
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crtn.o
00000000 l df *ABS* 00000000 crtstuff.c
08004588 l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
00000100 l *ABS* 00000000 __STACKSIZE__
08006154 g F .text 00000060 reset_handler
080064d8 g .text 00000000 _etext
080063f4 g F .text 00000010 TimerISRHandler
080064b4 g F .text 00000024 RCC_APB2PeriphClockCmd
08006408 g F .text 000000a4 GPIO_Init
2000000c g .bss 00000000 _ebss
08006404 g F .text 00000002 UnusedISR
080061c0 g F .text 00000040 LedInit
080064ac g F .text 00000004 GPIO_SetBits
20000000 g .bss 00000000 _bss
080064b0 g F .text 00000004 GPIO_ResetBits
08006280 g F .text 00000134 main
20000000 g .text 00000000 _data
08006200 g F .text 0000007e LedToggle
2000010c g .bss 00000000 _estack
20000000 g .text 00000000 _edata
08006000 g O .text 00000154 _vectab
2000000c g .bss 00000000 _stack
080063e8 g F .text 0000000c TimerGet
080063b4 g F .text 00000034 TimerInit
00000800 l *ABS* 00000000 __HEAP_SIZE
0800458c l .text 00000000 __exidx_end
0800458c l .text 00000000 __exidx_start
00000800 l *ABS* 00000000 __STACK_SIZE
08004222 w F .text 00000002 EXTI2_IRQHandler
20000030 g .heap 00000800 __HeapBase
0800420a w F .text 00000002 DebugMon_Handler
20000000 g .data 00000000 __data_start__
08004248 w F .text 00000002 TIM1_CC_IRQHandler
08004200 w F .text 00000002 HardFault_Handler
08004560 g F .text 00000010 SysTick_Handler
08004214 w F .text 00000002 PVD_IRQHandler
0800420c w F .text 00000002 PendSV_Handler
080041fe w F .text 00000002 NMI_Handler
08004224 w F .text 00000002 EXTI3_IRQHandler
0800458c g .text 00000000 __etext
20000008 g O .data 00000000 .hidden __TMC_END__
0800421e w F .text 00000002 EXTI0_IRQHandler
08004254 w F .text 00000002 I2C2_EV_IRQHandler
08004206 w F .text 00000002 UsageFault_Handler
080043c4 g F .text 00000024 RCC_APB2PeriphClockCmd
08004236 w F .text 00000002 ADC1_2_IRQHandler
08004310 g F .text 000000aa GPIO_Init
20000830 g .heap 00000000 __HeapLimit
20000008 g .bss 00000000 __bss_start__
08004258 w F .text 00000002 SPI1_IRQHandler
08004216 w F .text 00000002 TAMPER_IRQHandler
0800422e w F .text 00000002 DMA1_Channel4_IRQHandler
08004570 g F .text 00000000 _init
08004260 w F .text 00000002 USART3_IRQHandler
08004218 w F .text 00000002 RTC_IRQHandler
08004234 w F .text 00000002 DMA1_Channel7_IRQHandler
080041b8 g F .text 00000030 Reset_Handler
0800423c w F .text 00000002 CAN1_RX1_IRQHandler
08004270 g F .text 00000034 LedInit
080043bc g F .text 00000004 GPIO_SetBits
0800424e w F .text 00000002 TIM4_IRQHandler
00000000 w *UND* 00000000 __deregister_frame_info
20000030 g .heap 00000000 end
08004250 w F .text 00000002 I2C1_EV_IRQHandler
20000008 g .data 00000000 __data_end__
00000000 w *UND* 00000000 _ITM_registerTMCloneTable
08004232 w F .text 00000002 DMA1_Channel6_IRQHandler
20000030 g .bss 00000000 __bss_end__
0800424c w F .text 00000002 TIM3_IRQHandler
0800421c w F .text 00000002 RCC_IRQHandler
08004246 w F .text 00000002 TIM1_TRG_COM_IRQHandler
08004228 w F .text 00000002 DMA1_Channel1_IRQHandler
08004210 w F .text 00000002 Default_Handler
080041e8 w F .text 00000016 _start
08004262 w F .text 00000002 EXTI15_10_IRQHandler
080043c0 g F .text 00000004 GPIO_ResetBits
08004240 w F .text 00000002 EXTI9_5_IRQHandler
00000000 w *UND* 00000000 _ITM_deregisterTMCloneTable
0800425a w F .text 00000002 SPI2_IRQHandler
08004202 w F .text 00000002 MemManage_Handler
08004000 g .text 000000f0 __isr_vector
0800450c g F .text 0000000c main
08004208 w F .text 00000002 SVC_Handler
20000030 g .heap 00000000 __end__
08004230 w F .text 00000002 DMA1_Channel5_IRQHandler
08004226 w F .text 00000002 EXTI4_IRQHandler
08004518 g F .text 0000000c TimerSet
0800423a w F .text 00000002 USB_LP_CAN1_RX0_IRQHandler
0800457c g F .text 00000000 _fini
08004238 w F .text 00000002 USB_HP_CAN1_TX_IRQHandler
0800422c w F .text 00000002 DMA1_Channel3_IRQHandler
20005000 g *ABS* 00000000 __StackTop
08004244 w F .text 00000002 TIM1_UP_IRQHandler
08004212 w F .text 00000002 WWDG_IRQHandler
080042a4 g F .text 0000006c LedToggle
0800424a w F .text 00000002 TIM2_IRQHandler
08004242 w F .text 00000002 TIM1_BRK_IRQHandler
08004220 w F .text 00000002 EXTI1_IRQHandler
08004264 w F .text 00000002 RTCAlarm_IRQHandler
20004800 g *ABS* 00000800 __StackLimit
0800425e w F .text 00000002 USART2_IRQHandler
08004256 w F .text 00000002 I2C2_ER_IRQHandler
0800422a w F .text 00000002 DMA1_Channel2_IRQHandler
0800423e w F .text 00000002 CAN1_SCE_IRQHandler
0800421a w F .text 00000002 FLASH_IRQHandler
08004204 w F .text 00000002 BusFault_Handler
0800425c w F .text 00000002 USART1_IRQHandler
08004252 w F .text 00000002 I2C1_ER_IRQHandler
08004554 g F .text 0000000c TimerGet
00000000 w *UND* 00000000 _Jv_RegisterClasses
08004524 g F .text 00000030 TimerInit
00000000 w *UND* 00000000 __register_frame_info
08004266 w F .text 00000002 USBWakeUp_IRQHandler

View File

@ -1,80 +1,92 @@
S025000062696E2F64656D6F70726F675F6F6C696D65785F73746D3332683130332E7372656339
S315080060000C010020556100080564000805640008B5
S3150800601005640008056400080564000805640008AE
S31508006020056400080564000805640008056400089E
S31508006030056400080564000805640008F56300089F
S31508006040056400080564000805640008056400087E
S31508006050056400080564000805640008056400086E
S31508006060056400080564000805640008056400085E
S31508006070056400080564000805640008056400084E
S31508006080056400080564000805640008056400083E
S31508006090056400080564000805640008056400082E
S315080060A0056400080564000805640008056400081E
S315080060B0056400080564000805640008056400080E
S315080060C005640008056400080564000805640008FE
S315080060D005640008056400080564000805640008EE
S315080060E005640008056400080564000805640008DE
S315080060F005640008056400080564000805640008CE
S3150800610005640008056400080564000805640008BD
S3150800611005640008056400080564000805640008AD
S31508006120056400080564000805640008056400089D
S31508006130056400080564000805640008056400088D
S31508006140056400080564000805640008056400087D
S31508006150EE11AA5510B517498D4640F20002C2F253
S31508006160000240F20003C2F200039A4210D2131D45
S315080061700F4CE41A24F0030404340023104646F2B4
S31508006180D841C0F600015A581A500433A342FAD12E
S3150800619009480A494FF000028842B8BF40F8042B64
S315080061A0FADB46F28123C0F60003984710BD00BF0C
S315080061B0030000200C010020000000200C00002035
S315080061C000B583B01020012146F2B543C0F600039E
S315080061D098474FF48053ADF8043003238DF8063002
S315080061E010238DF807304FF48050C4F2010001A93E
S315080061F046F20943C0F60003984703B05DF804FB6E
S3150800620010B546F2E933C0F600039847044640F253
S315080062100003C2F200031B68C31AB3F5FA7F2DD335
S3150800622040F20403C2F200031B788BB940F2040360
S31508006230C2F2000301221A704FF48050C4F2010022
S315080062404FF4805146F2B143C0F60003984710E078
S3150800625040F20403C2F2000300221A704FF4805081
S31508006260C4F201004FF4805146F2AD43C0F6000374
S31508006270984740F20003C2F200031C6010BD00BF3D
S3150800628000B583B00023009301934FF48053C4F202
S3150800629002031A6842F001021A6059680022CFF612
S315080062A0FF020A405A601A6822F0847222F4803289
S315080062B01A601A6822F480221A605A6822F4FE02CA
S315080062C05A604FF41F029A601A6842F480321A60C4
S315080062D04FF48053C4F2020340F2DC511A6802F408
S315080062E000320192009A01320092019A12B9009A7C
S315080062F08A42F3D14FF48053C4F202031B6813F4A5
S31508006300003F00D1FEE74FF40053C4F202031A68B7
S3150800631042F010021A601A6822F003021A601A681C
S3150800632042F002021A604FF48053C4F202035A681C
S315080063305A605A6842F400525A605A6842F48062B7
S315080063405A605A6822F47C125A605A6842F4E81273
S315080063505A601A6842F080721A604FF48053C4F289
S3150800636002031A6812F0007FFBD04FF48053C4F280
S3150800637002035A6822F003025A605A6842F002027F
S315080063805A604FF48053C4F202035A6802F00C02B2
S31508006390082AFAD146F2C113C0F60003984746F216
S315080063A0B533C0F60003984746F20124C0F6000448
S315080063B0A047FDE74EF21003CEF2000341F63F1266
S315080063C0C0F201025A604FF46D42CEF20002F0218B
S315080063D082F8231000229A600721196040F2080308
S315080063E0C2F200031A60704740F20803C2F20003C3
S315080063F01868704740F20803C2F200031A680132AF
S315080064001A607047FEE700BF2DE9F001CB7803F06C
S315080064100F0513F0100F1CBF8B781D430B78F3B1D3
S315080064200768002301264FF00F0C06FA03F20C88C2
S31508006430144094420FD19A000CFA02F827EA08078A
S3150800644005FA02F21743CA78282A08BF446102D01F
S31508006450482A08BF04610133082BE6D107600B8878
S31508006460FF2B20D94768002301264FF00F0C03F1B4
S31508006470080206FA02F20C88144094420FD19A00D8
S315080064800CFA02F827EA080705FA02F21743CA784F
S31508006490282A08BF4461CA78482A08BF046101331C
S315080064A0082BE4D14760BDE8F001704701617047E9
S315080064B04161704739B14FF48053C4F202039A69B7
S315080064C01043986170474FF48053C4F202039A69E7
S30D080064D022EA000098617047FA
S7050800600092
S3150800400000500020B9410008FF410008014200089D
S3150800401003420008054200080742000800000000A5
S31508004020000000000000000000000000094200082F
S315080040300B420008000000000D4200086145000818
S3150800404013420008154200081742000819420008E2
S315080040501B4200081D4200081F42000821420008B2
S315080040602342000825420008274200082942000882
S315080040702B4200082D4200082F4200083142000852
S315080040803342000835420008374200083942000822
S315080040903B4200083D4200083F42000841420008F2
S315080040A043420008454200084742000849420008C2
S315080040B04B4200084D4200084F4200085142000892
S315080040C05342000855420008574200085942000862
S315080040D05B4200085D4200085F4200086142000832
S315080040E0634200086542000867420008EE11AA55B7
S315080040F008B540F20800074BC2F200001B1A062B4F
S3150800410000D808BD40F20003C0F20003002BF8D027
S315080041109847F6E70B00002008B540F2080040F281
S315080041200803C2F20000C2F200031B1A9B1003EB3D
S31508004130D373591000D108BD40F20002C0F2000244
S31508004140002AF8D09047F6E710B540F20804C2F204
S315080041500004237873B9FFF7CBFF40F20003C0F2DF
S3150800416000032BB144F28850C0F60000AFF300807C
S315080041700123237010BD00BF08B540F20003C0F24A
S3150800418000034BB144F2885040F20C01C0F600001F
S31508004190C2F20001AFF3008040F20800C2F200004C
S315080041A003682BB140F20003C0F2000303B198473D
S315080041B0BDE80840B0E700BF06498D460649074AEC
S315080041C0074B9A42BEBF51F8040B42F8040BF8E7B6
S315080041D004480047005000208C45000800000020D5
S315080041E008000020E94100081F49204A002301E091
S315080041F041F8043B9142FBD300F088F9FEE7FEE75D
S31508004200FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE778
S31508004210FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE768
S31508004220FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE758
S31508004230FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE748
S31508004240FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE738
S31508004250FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE728
S31508004260FEE7FEE7FEE7FEE7080000203000002034
S3150800427000B583B01020012100F0A4F84FF4805354
S31508004280ADF8043003238DF8063010238DF8073077
S315080042904FF48050C4F2010001A900F039F803B0C8
S315080042A05DF804FB10B500F055F9044640F2240306
S315080042B0C2F200031B68C31AB3F5FA7F27D340F28C
S315080042C02803C2F200031B7873B940F22803C2F22E
S315080042D0000301221A704FF48050C4F201004FF413
S315080042E0805100F06DF80DE040F22803C2F2000399
S315080042F000221A704FF48050C4F201004FF4805126
S3150800430000F05CF840F22403C2F200031C6010BD02
S315080043102DE9F001CB7803F00F02164613F0100FC3
S315080043201CBF8E7816430B78FBB10768002301255E
S315080043304FF00F0C16E005FA03F20C88144094426D
S315080043400FD19C000CFA04F827EA080706FA04F4C9
S315080043502743CC78282C08BF426102D0482C08BFD6
S3150800436002610133072BE6D907600B88FF2B21D999
S315080043704768002301254FF00F0C18E003F10802E7
S3150800438005FA02F20C88144094420FD19C000CFAEC
S3150800439004F827EA080706FA04F42743CC78282CF9
S315080043A008BF4261CC78482C08BF02610133072B4D
S315080043B0E4D94760BDE8F001704700BF0161704766
S315080043C04161704739B14FF48053C4F202039A69C8
S315080043D01043986170474FF48053C4F202039A69F8
S315080043E022EA00009861704700B583B00023019364
S315080043F000934FF48053C4F202031A6842F0010294
S315080044001A6059680022CFF6FF020A405A601A68F5
S3150800441022F0847222F480321A601A6822F480220A
S315080044201A605A6822F4FE025A604FF41F029A6014
S315080044301A6842F480321A604FF48053C4F20203B9
S3150800444040F2DC511A6802F400320092019A0132F5
S315080044500192009A12B9019A8A42F3D14FF4805315
S31508004460C4F202031B6813F4003F00D1FEE74FF4C1
S315080044700053C4F202031A6842F010021A601A685E
S3150800448022F003021A601A6842F002021A604FF418
S315080044908053C4F202035A685A605A6842F40052BA
S315080044A05A605A6842F480625A605A6822F47C124A
S315080044B05A605A6842F4E8125A601A6842F08072E2
S315080044C01A604FF48053C4F202031A6812F0007F90
S315080044D0FBD04FF48053C4F202035A6822F0030259
S315080044E05A605A6842F002025A604FF48053C4F286
S315080044F002035A6802F00C02082AFAD1FFF7B8FE3E
S3150800450000F010F803B05DF804FB00BF08B5FFF72C
S315080045106BFFFFF7C7FEFCE740F22C03C2F200036D
S315080045201860704708B54EF21003CEF2000341F644
S315080045303F12C0F201025A604FF46D42CEF20002F9
S31508004540F02182F823100020986007221A60FFF7EE
S31508004550E3FF08BD40F22C03C2F200031868704757
S3150800456040F22C03C2F200031A6801321A6070473F
S31508004570F8B500BFF8BC08BC9E467047F8B500BF42
S31108004580F8BC08BC9E467047000000000E
S30D0800458C7941000849410008C5
S70508004000B2

View File

@ -1,89 +0,0 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_GCC\Prog\cstart.c
* \brief Demo program C startup source file.
* \ingroup Prog_ARMCM3_STM32F1_Olimex_STM32H103_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
/****************************************************************************************
* External function protoypes
****************************************************************************************/
extern int main(void);
/****************************************************************************************
* External data declarations
****************************************************************************************/
/* these externals are declared by the linker */
extern unsigned long _etext;
extern unsigned long _data;
extern unsigned long _edata;
extern unsigned long _bss;
extern unsigned long _ebss;
extern unsigned long _estack;
/************************************************************************************//**
** \brief Reset interrupt service routine. Configures the stack, initializes
** RAM and jumps to function main.
** \return none.
**
****************************************************************************************/
void reset_handler(void)
{
unsigned long *pSrc, *pDest;
/* initialize stack pointer */
__asm(" ldr r1, =_estack\n"
" mov sp, r1");
/* copy the data segment initializers from flash to SRAM */
pSrc = &_etext;
for(pDest = &_data; pDest < &_edata; )
{
*pDest++ = *pSrc++;
}
/* zero fill the bss segment. this is done with inline assembly since this will
* clear the value of pDest if it is not kept in a register.
*/
__asm(" ldr r0, =_bss\n"
" ldr r1, =_ebss\n"
" mov r2, #0\n"
" .thumb_func\n"
"zero_loop:\n"
" cmp r0, r1\n"
" it lt\n"
" strlt r2, [r0], #4\n"
" blt zero_loop");
/* start the software application by calling its entry point */
main();
} /*** end of reset_handler ***/
/************************************ end of cstart.c **********************************/

View File

@ -1,11 +1,11 @@
#****************************************************************************************
#| Description: Makefile for STM32 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) 2011 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,142 +25,103 @@
#****************************************************************************************
SHELL = sh
#|---------------------------------------------------------------------------------------|
#| Configure project name |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Configure project name |
#|--------------------------------------------------------------------------------------|
PROJ_NAME=demoprog_olimex_stm32h103
#|---------------------------------------------------------------------------------------|
#| Speficy project source files |
#|---------------------------------------------------------------------------------------|
PROJ_FILES= \
cstart.c \
header.h \
led.c \
led.h \
main.c \
timer.c \
timer.h \
vectors.c \
lib/stdperiphlib/stm32f10x_conf.h \
lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.c \
lib/stdperiphlib/CMSIS/CM3/CoreSupport/core_cm3.h \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c \
lib/stdperiphlib/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/misc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_adc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_bkp.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_can.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_cec.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_crc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dac.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dbgmcu.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_dma.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_exti.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_flash.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_fsmc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_gpio.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_i2c.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_iwdg.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_pwr.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rcc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_rtc.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_sdio.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_spi.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_tim.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_usart.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/inc/stm32f10x_wwdg.h \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/misc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c \
lib/stdperiphlib/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c
#|--------------------------------------------------------------------------------------|
#| Configure tool path |
#|--------------------------------------------------------------------------------------|
TOOL_PATH=
#|---------------------------------------------------------------------------------------|
#| 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 |
#|---------------------------------------------------------------------------------------|
PROJ_ASRCS = $(filter %.s,$(foreach file,$(PROJ_FILES),$(notdir $(file))))
#|--------------------------------------------------------------------------------------|
#| Toolchain binaries |
#|--------------------------------------------------------------------------------------|
RM = cs-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.
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 STM32F10X_MD -D USE_STDPERIPH_DRIVER -D VECT_TAB_FLASH -D GCC_ARMCM3
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 |
#|--------------------------------------------------------------------------------------|
HEAP_SIZE = 0x0800
STACK_SIZE = 0x0800
STDFLAGS = -mcpu=cortex-m3 -mthumb -fno-strict-aliasing
STDFLAGS += -fdata-sections -ffunction-sections -Wall -g3
OPTFLAGS = -Og
CFLAGS = $(STDFLAGS) $(OPTFLAGS)
CFLAGS += -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -DVECT_TAB_FLASH -DGCC_ARMCM3
CFLAGS += -D__HEAP_SIZE=$(HEAP_SIZE) -D__STACK_SIZE=$(STACK_SIZE)
CFLAGS += $(INC_PATH)
AFLAGS = $(CFLAGS)
LFLAGS = $(STDFLAGS) $(OPTFLAGS)
LFLAGS += -Wl,--defsym=__HEAP_SIZE=$(HEAP_SIZE) -Wl,--defsym=__STACK_SIZE=$(STACK_SIZE)
LFLAGS += -Wl,-script="stm32f103rb_flash.ld" -Wl,-Map=$(BIN_PATH)/$(PROJ_NAME).map
LFLAGS += -Wl,--gc-sections $(LIB_PATH)
OFLAGS = -O srec
ODFLAGS = -x
SZFLAGS = -B -d
RMFLAGS = -f
#|---------------------------------------------------------------------------------------|
#| Specify library files |
#|---------------------------------------------------------------------------------------|
#|--------------------------------------------------------------------------------------|
#| Specify library files |
#|--------------------------------------------------------------------------------------|
LIBS =
#|---------------------------------------------------------------------------------------|
#| Define targets |
#|---------------------------------------------------------------------------------------|
AOBJS = $(patsubst %.s,%.o,$(PROJ_ASRCS))
#|--------------------------------------------------------------------------------------|
#| 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
@ -172,31 +133,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 |
#|---------------------------------------------------------------------------------------|
$(AOBJS): %.o: %.s $(PROJ_CHDRS)
#|--------------------------------------------------------------------------------------|
#| 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

@ -1,37 +0,0 @@
MEMORY
{
FLASH (rx) : ORIGIN = 0x08006000, LENGTH = 110K
SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
SECTIONS
{
__STACKSIZE__ = 256;
.text :
{
KEEP(*(.isr_vector))
*(.text*)
*(.rodata*)
_etext = .;
} > FLASH
.data : AT (ADDR(.text) + SIZEOF(.text))
{
_data = .;
*(vtable)
*(.data*)
_edata = .;
} > SRAM
.bss :
{
_bss = .;
*(.bss*)
*(COMMON)
_ebss = .;
_stack = .;
. = ALIGN(MAX(_stack + __STACKSIZE__ , .), 4);
_estack = .;
} > SRAM
}

View File

@ -0,0 +1,286 @@
/* File: startup_ARMCM3.S
* Purpose: startup file for Cortex-M3 devices. Should use with
* GCC for ARM Embedded Processors
* Version: V1.3
* Date: 08 Feb 2012
*
* Copyright (c) 2012, ARM Limited
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the ARM Limited nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES//
* LOSS OF USE, DATA, OR PROFITS// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
.syntax unified
.arch armv7-m
.section .stack
.align 3
#ifdef __STACK_SIZE
.equ Stack_Size, __STACK_SIZE
#else
.equ Stack_Size, 0x400
#endif
.globl __StackTop
.globl __StackLimit
__StackLimit:
.space Stack_Size
.size __StackLimit, . - __StackLimit
__StackTop:
.size __StackTop, . - __StackTop
.section .heap
.align 3
#ifdef __HEAP_SIZE
.equ Heap_Size, __HEAP_SIZE
#else
.equ Heap_Size, 0xC00
#endif
.globl __HeapBase
.globl __HeapLimit
__HeapBase:
.if Heap_Size
.space Heap_Size
.endif
.size __HeapBase, . - __HeapBase
__HeapLimit:
.size __HeapLimit, . - __HeapLimit
.section .isr_vector
.align 2
.globl __isr_vector
__isr_vector:
.long __StackTop /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
.long MemManage_Handler /* MPU Fault Handler */
.long BusFault_Handler /* Bus Fault Handler */
.long UsageFault_Handler /* Usage Fault Handler */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long 0 /* Reserved */
.long SVC_Handler /* SVCall Handler */
.long DebugMon_Handler /* Debug Monitor Handler */
.long 0 /* Reserved */
.long PendSV_Handler /* PendSV Handler */
.long SysTick_Handler /* SysTick Handler */
// External Interrupts
.long WWDG_IRQHandler // Window Watchdog
.long PVD_IRQHandler // PVD through EXTI Line detect
.long TAMPER_IRQHandler // Tamper
.long RTC_IRQHandler // RTC
.long FLASH_IRQHandler // Flash
.long RCC_IRQHandler // RCC
.long EXTI0_IRQHandler // EXTI Line 0
.long EXTI1_IRQHandler // EXTI Line 1
.long EXTI2_IRQHandler // EXTI Line 2
.long EXTI3_IRQHandler // EXTI Line 3
.long EXTI4_IRQHandler // EXTI Line 4
.long DMA1_Channel1_IRQHandler // DMA1 Channel 1
.long DMA1_Channel2_IRQHandler // DMA1 Channel 2
.long DMA1_Channel3_IRQHandler // DMA1 Channel 3
.long DMA1_Channel4_IRQHandler // DMA1 Channel 4
.long DMA1_Channel5_IRQHandler // DMA1 Channel 5
.long DMA1_Channel6_IRQHandler // DMA1 Channel 6
.long DMA1_Channel7_IRQHandler // DMA1 Channel 7
.long ADC1_2_IRQHandler // ADC1_2
.long USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
.long USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
.long CAN1_RX1_IRQHandler // CAN1 RX1
.long CAN1_SCE_IRQHandler // CAN1 SCE
.long EXTI9_5_IRQHandler // EXTI Line 9..5
.long TIM1_BRK_IRQHandler // TIM1 Break
.long TIM1_UP_IRQHandler // TIM1 Update
.long TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
.long TIM1_CC_IRQHandler // TIM1 Capture Compare
.long TIM2_IRQHandler // TIM2
.long TIM3_IRQHandler // TIM3
.long TIM4_IRQHandler // TIM4
.long I2C1_EV_IRQHandler // I2C1 Event
.long I2C1_ER_IRQHandler // I2C1 Error
.long I2C2_EV_IRQHandler // I2C2 Event
.long I2C2_ER_IRQHandler // I2C2 Error
.long SPI1_IRQHandler // SPI1
.long SPI2_IRQHandler // SPI2
.long USART1_IRQHandler // USART1
.long USART2_IRQHandler // USART2
.long USART3_IRQHandler // USART3
.long EXTI15_10_IRQHandler // EXTI Line 15..10
.long RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
.long USBWakeUp_IRQHandler // USB Wakeup from suspend
.long 0x55AA11EE // Reserved for OpenBLT checksum
.size __isr_vector, . - __isr_vector
.text
.thumb
.thumb_func
.align 2
.globl Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
/* Initialize the stackpointer. this is done automatically after a reset event, but
* this program is started by the bootloader and not a reset event. */
ldr r1, =__StackTop
mov sp, r1
/* Loop to copy data from read only memory to RAM. The ranges
* of copy from/to are specified by following symbols evaluated in
* linker script.
* __etext: End of code section, i.e., begin of data sections to copy from.
* __data_start__/__data_end__: RAM address range that data should be
* copied to. Both must be aligned to 4 bytes boundary. */
ldr r1, =__etext
ldr r2, =__data_start__
ldr r3, =__data_end__
#if 1
/* Here are two copies of loop implemenations. First one favors code size
* and the second one favors performance. Default uses the first one.
* Change to "#if 0" to use the second one */
.flash_to_ram_loop:
cmp r2, r3
ittt lt
ldrlt r0, [r1], #4
strlt r0, [r2], #4
blt .flash_to_ram_loop
#else
subs r3, r2
ble .flash_to_ram_loop_end
.flash_to_ram_loop:
subs r3, #4
ldr r0, [r1, r3]
str r0, [r2, r3]
bgt .flash_to_ram_loop
.flash_to_ram_loop_end:
#endif
#define __NO_SYSTEM_INIT
#ifndef __NO_SYSTEM_INIT
ldr r0, =SystemInit
blx r0
#endif
ldr r0, =_start
bx r0
.pool
.size Reset_Handler, . - Reset_Handler
/* Our weak _start alternative if we don't use the library _start
* The zero init section must be cleared, otherwise the librtary is
* doing that */
.align 1
.thumb_func
.weak _start
.type _start, %function
_start:
/* Zero fill the bss segment. */
ldr r1, = __bss_start__
ldr r2, = __bss_end__
movs r3, #0
b .fill_zero_bss
.loop_zero_bss:
str r3, [r1], #4
.fill_zero_bss:
cmp r1, r2
bcc .loop_zero_bss
/* Jump to our main */
bl main
b .
.size _start, . - _start
/* Macro to define default handlers. Default handler
* will be weak symbol and just dead loops. They can be
* overwritten by other handlers */
.macro def_irq_handler handler_name
.align 1
.thumb_func
.weak \handler_name
.type \handler_name, %function
\handler_name :
b .
.size \handler_name, . - \handler_name
.endm
def_irq_handler NMI_Handler
def_irq_handler HardFault_Handler
def_irq_handler MemManage_Handler
def_irq_handler BusFault_Handler
def_irq_handler UsageFault_Handler
def_irq_handler SVC_Handler
def_irq_handler DebugMon_Handler
def_irq_handler PendSV_Handler
def_irq_handler SysTick_Handler
def_irq_handler Default_Handler
// External Interrupts
def_irq_handler WWDG_IRQHandler // Window Watchdog
def_irq_handler PVD_IRQHandler // PVD through EXTI Line detect
def_irq_handler TAMPER_IRQHandler // Tamper
def_irq_handler RTC_IRQHandler // RTC
def_irq_handler FLASH_IRQHandler // Flash
def_irq_handler RCC_IRQHandler // RCC
def_irq_handler EXTI0_IRQHandler // EXTI Line 0
def_irq_handler EXTI1_IRQHandler // EXTI Line 1
def_irq_handler EXTI2_IRQHandler // EXTI Line 2
def_irq_handler EXTI3_IRQHandler // EXTI Line 3
def_irq_handler EXTI4_IRQHandler // EXTI Line 4
def_irq_handler DMA1_Channel1_IRQHandler // DMA1 Channel 1
def_irq_handler DMA1_Channel2_IRQHandler // DMA1 Channel 2
def_irq_handler DMA1_Channel3_IRQHandler // DMA1 Channel 3
def_irq_handler DMA1_Channel4_IRQHandler // DMA1 Channel 4
def_irq_handler DMA1_Channel5_IRQHandler // DMA1 Channel 5
def_irq_handler DMA1_Channel6_IRQHandler // DMA1 Channel 6
def_irq_handler DMA1_Channel7_IRQHandler // DMA1 Channel 7
def_irq_handler ADC1_2_IRQHandler // ADC1_2
def_irq_handler USB_HP_CAN1_TX_IRQHandler // USB High Priority or CAN1 TX
def_irq_handler USB_LP_CAN1_RX0_IRQHandler // USB Low Priority or CAN1 RX0
def_irq_handler CAN1_RX1_IRQHandler // CAN1 RX1
def_irq_handler CAN1_SCE_IRQHandler // CAN1 SCE
def_irq_handler EXTI9_5_IRQHandler // EXTI Line 9..5
def_irq_handler TIM1_BRK_IRQHandler // TIM1 Break
def_irq_handler TIM1_UP_IRQHandler // TIM1 Update
def_irq_handler TIM1_TRG_COM_IRQHandler // TIM1 Trigger and Commutation
def_irq_handler TIM1_CC_IRQHandler // TIM1 Capture Compare
def_irq_handler TIM2_IRQHandler // TIM2
def_irq_handler TIM3_IRQHandler // TIM3
def_irq_handler TIM4_IRQHandler // TIM4
def_irq_handler I2C1_EV_IRQHandler // I2C1 Event
def_irq_handler I2C1_ER_IRQHandler // I2C1 Error
def_irq_handler I2C2_EV_IRQHandler // I2C2 Event
def_irq_handler I2C2_ER_IRQHandler // I2C2 Error
def_irq_handler SPI1_IRQHandler // SPI1
def_irq_handler SPI2_IRQHandler // SPI2
def_irq_handler USART1_IRQHandler // USART1
def_irq_handler USART2_IRQHandler // USART2
def_irq_handler USART3_IRQHandler // USART3
def_irq_handler EXTI15_10_IRQHandler // EXTI Line 15..10
def_irq_handler RTCAlarm_IRQHandler // RTC Alarm through EXTI Line
def_irq_handler USBWakeUp_IRQHandler // USB Wakeup from suspend
.end

View File

@ -0,0 +1,183 @@
/* ---------------------------------------------------------------------------- */
/* Em::Blocks embedded development Support */
/* ---------------------------------------------------------------------------- */
/* Copyright (c) 2014, EmBlocks */
/* */
/* All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without */
/* modification, are permitted provided that the following condition is met: */
/* */
/* - Redistributions of source code must retain the above copyright notice, */
/* this list of conditions and the disclaimer below. */
/* */
/* EmBlocks's name may not be used to endorse or promote products derived from */
/* this software without specific prior written permission. */
/* */
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY EBLOCKS "AS IS" AND ANY EXPRESS OR */
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
/* DISCLAIMED. IN NO EVENT SHALL EMBLOCKS BE LIABLE FOR ANY DIRECT, INDIRECT, */
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* ---------------------------------------------------------------------------- */
/*------------------------------------------------------------------------------
* Linker script for running in internal FLASH on the STM32F103RB
*----------------------------------------------------------------------------*/
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
SEARCH_DIR(.)
/* Memory Spaces Definitions */
MEMORY
{
/* reserve space for the OpenBLT bootloader which occupies the first part
* of flash.
*/
ROM (rx) : ORIGIN = 0x08004000, LENGTH = 128K-16K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Linker script to place sections and symbol values. Should be used together
* with other linker script that defines memory regions FLASH and RAM.
* It references following symbols, which must be defined in code:
* Reset_Handler : Entry of reset handler
*
* It defines following symbols, which code can use without definition:
* __exidx_start
* __exidx_end
* __etext
* __data_start__
* __preinit_array_start
* __preinit_array_end
* __init_array_start
* __init_array_end
* __fini_array_start
* __fini_array_end
* __data_end__
* __bss_start__
* __bss_end__
* __end__
* end
* __HeapLimit
* __StackLimit
* __StackTop
* __stack
*/
SECTIONS
{
.text :
{
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*))
} > ROM
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > ROM
__exidx_start = .;
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > ROM
__exidx_end = .;
__etext = .;
.data : AT (__etext)
{
__data_start__ = .;
*(vtable)
*(.data*)
. = ALIGN(4);
/* preinit data */
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP(*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
. = ALIGN(4);
/* init data */
PROVIDE_HIDDEN (__init_array_start = .);
KEEP(*(SORT(.init_array.*)))
KEEP(*(.init_array))
PROVIDE_HIDDEN (__init_array_end = .);
. = ALIGN(4);
/* finit data */
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP(*(SORT(.fini_array.*)))
KEEP(*(.fini_array))
PROVIDE_HIDDEN (__fini_array_end = .);
. = ALIGN(4);
/* All data end */
__data_end__ = .;
} > RAM
.bss (NOLOAD):
{
__bss_start__ = .;
*(.bss*)
*(COMMON)
__bss_end__ = .;
} > RAM
.heap (NOLOAD):
{
__end__ = .;
end = __end__;
*(.heap*)
__HeapLimit = .;
} > RAM
/* .stack_dummy section doesn't contains any symbols. It is only
* used for linker to calculate size of stack sections, and assign
* values to stack symbols later */
.stack_dummy (NOLOAD):
{
*(.stack)
} > RAM
/* Set stack top to end of RAM, and stack limit move down by
* size of stack_dummy section */
__StackTop = ORIGIN(RAM) + LENGTH(RAM);
__StackLimit = __StackTop - SIZEOF(.stack_dummy);
PROVIDE(__stack = __StackTop);
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}

View File

@ -85,11 +85,11 @@ unsigned long TimerGet(void)
** \return none.
**
****************************************************************************************/
void TimerISRHandler(void)
void SysTick_Handler(void)
{
/* increment the millisecond counter */
millisecond_counter++;
} /*** end of TimerISRHandler ***/
} /*** end of SysTick_Handler ***/
/*********************************** end of timer.c ************************************/

View File

@ -34,7 +34,6 @@
void TimerInit(void);
void TimerSet(unsigned long timer_value);
unsigned long TimerGet(void);
void TimerISRHandler(void);
#endif /* TIMER_H */
/*********************************** end of timer.h ************************************/

View File

@ -1,164 +0,0 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_GCC\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARMCM3_STM32F1_Olimex_STM32H103_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
/****************************************************************************************
* External functions
****************************************************************************************/
extern void reset_handler(void); /* implemented in cstart.c */
/****************************************************************************************
* External data declarations
****************************************************************************************/
/** \brief Stack end address (memory.x) */
extern unsigned long _estack;
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
{
/* unexpected interrupt occured, so halt the system */
while (1) { ; }
} /*** end of UnusedISR ***/
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /**< for ISR function pointers */
unsigned long ptr; /**< for stack pointer entry */
}tIsrFunc;
/** \brief Interrupt vector table. */
__attribute__ ((section(".isr_vector")))
const tIsrFunc _vectab[] =
{
{ .ptr = (unsigned long)&_estack }, /* the initial stack pointer */
{ reset_handler }, /* the reset handler */
{ UnusedISR }, /* NMI Handler */
{ UnusedISR }, /* Hard Fault Handler */
{ UnusedISR }, /* MPU Fault Handler */
{ UnusedISR }, /* Bus Fault Handler */
{ UnusedISR }, /* Usage Fault Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* SVCall Handler */
{ UnusedISR }, /* Debug Monitor Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* PendSV Handler */
{ TimerISRHandler }, /* SysTick Handler */
{ UnusedISR }, /* Window Watchdog */
{ UnusedISR }, /* PVD through EXTI Line detect */
{ UnusedISR }, /* Tamper */
{ UnusedISR }, /* RTC */
{ UnusedISR }, /* Flash */
{ UnusedISR }, /* RCC */
{ UnusedISR }, /* EXTI Line 0 */
{ UnusedISR }, /* EXTI Line 1 */
{ UnusedISR }, /* EXTI Line 2 */
{ UnusedISR }, /* EXTI Line 3 */
{ UnusedISR }, /* EXTI Line 4 */
{ UnusedISR }, /* DMA1 Channel 1 */
{ UnusedISR }, /* DMA1 Channel 2 */
{ UnusedISR }, /* DMA1 Channel 3 */
{ UnusedISR }, /* DMA1 Channel 4 */
{ UnusedISR }, /* DMA1 Channel 5 */
{ UnusedISR }, /* DMA1 Channel 6 */
{ UnusedISR }, /* DMA1 Channel 7 */
{ UnusedISR }, /* ADC1 and ADC2 */
{ UnusedISR }, /* CAN1 TX */
{ UnusedISR }, /* CAN1 RX0 */
{ UnusedISR }, /* CAN1 RX1 */
{ UnusedISR }, /* CAN1 SCE */
{ UnusedISR }, /* EXTI Line 9..5 */
{ UnusedISR }, /* TIM1 Break */
{ UnusedISR }, /* TIM1 Update */
{ UnusedISR }, /* TIM1 Trigger and Commutation */
{ UnusedISR }, /* TIM1 Capture Compare */
{ UnusedISR }, /* TIM2 */
{ UnusedISR }, /* TIM3 */
{ UnusedISR }, /* TIM4 */
{ UnusedISR }, /* I2C1 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* I2C2 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* SPI1 */
{ UnusedISR }, /* SPI2 */
{ UnusedISR }, /* USART1 */
{ UnusedISR }, /* USART2 */
{ UnusedISR }, /* USART3 */
{ UnusedISR }, /* EXTI Line 15..10 */
{ UnusedISR }, /* RTC alarm through EXTI line */
{ UnusedISR }, /* USB OTG FS Wakeup */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* TIM5 */
{ UnusedISR }, /* SPI3 */
{ UnusedISR }, /* UART4 */
{ UnusedISR }, /* UART5 */
{ UnusedISR }, /* TIM6 */
{ UnusedISR }, /* TIM7 */
{ UnusedISR }, /* DMA2 Channel1 */
{ UnusedISR }, /* DMA2 Channel2 */
{ UnusedISR }, /* DMA2 Channel3 */
{ UnusedISR }, /* DMA2 Channel4 */
{ UnusedISR }, /* DMA2 Channel5 */
{ UnusedISR }, /* Ethernet */
{ UnusedISR }, /* Ethernet Wakeup */
{ UnusedISR }, /* CAN2 TX */
{ UnusedISR }, /* CAN2 RX0 */
{ UnusedISR }, /* CAN2 RX1 */
{ UnusedISR }, /* CAN2 SCE */
{ UnusedISR }, /* USB OTG FS */
{ (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */
};
/************************************ end of vectors.c *********************************/

View File

@ -120,6 +120,23 @@
#define BOOT_NVM_CHECKSUM_HOOKS_ENABLE (0)
/****************************************************************************************
* F L A S H M E M O R Y D R I V E R C O N F I G U R A T I O N
****************************************************************************************/
/** \brief This microcontroller has a smaller vector table then the default STM32F1xx
* project as assumed in the bootloader's core. This means the user program has
* a different checksum location, because this one is added at the end of the
* user program's vector table.
*/
#define FLASH_VECTOR_TABLE_CS_OFFSET (0xec)
/** \brief Enable support for a custom flash layout table. It is located in
* flash_layout.c. This was done because the default flashLayout[] table
* in the bootloader's core has more flash memory reserved for the bootloader
* than is needed for this demo.
*/
#define BOOT_FLASH_CUSTOM_LAYOUT_ENABLE (1)
/****************************************************************************************
* W A T C H D O G D R I V E R C O N F I G U R A T I O N
****************************************************************************************/

View File

@ -0,0 +1,59 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_IAR\Boot\flash_layout.c
* \brief Custom flash layout table source file.
* \ingroup Boot_ARMCM3_STM32F1_Olimex_STM32H103_IAR
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2017 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/** \brief Array wit the layout of the flash memory.
* \details Also controls what part of the flash memory is reserved for the bootloader.
* If the bootloader size changes, the reserved sectors for the bootloader
* might need adjustment to make sure the bootloader doesn't get overwritten.
*/
static const tFlashSector flashLayout[] =
{
/* space is reserved for a bootloader configuration with all supported communication
* interfaces enabled. when for example only UART is needed, than the space required
* for the bootloader can be made a lot smaller here.
*/
/* { 0x08000000, 0x02000, 0}, flash sector 0 - reserved for bootloader */
/* { 0x08002000, 0x02000, 1}, flash sector 1 - reserved for bootloader */
{ 0x08004000, 0x02000, 2}, /* flash sector 2 - 8kb */
{ 0x08006000, 0x02000, 3}, /* flash sector 3 - 8kb */
{ 0x08008000, 0x02000, 4}, /* flash sector 4 - 8kb */
{ 0x0800A000, 0x02000, 5}, /* flash sector 5 - 8kb */
{ 0x0800C000, 0x02000, 6}, /* flash sector 6 - 8kb */
{ 0x0800E000, 0x02000, 7}, /* flash sector 7 - 8kb */
{ 0x08010000, 0x02000, 8}, /* flash sector 8 - 8kb */
{ 0x08012000, 0x02000, 9}, /* flash sector 9 - 8kb */
{ 0x08014000, 0x02000, 10}, /* flash sector 10 - 8kb */
{ 0x08016000, 0x02000, 11}, /* flash sector 11 - 8kb */
{ 0x08018000, 0x02000, 12}, /* flash sector 12 - 8kb */
{ 0x0801A000, 0x02000, 13}, /* flash sector 13 - 8kb */
{ 0x0801C000, 0x02000, 14}, /* flash sector 14 - 8kb */
{ 0x0801E000, 0x02000, 15}, /* flash sector 15 - 8kb */
};
/*********************************** end of flash_layout.c *****************************/

View File

@ -82,7 +82,7 @@
<Top><Row0><Sizes><Toolbar-029F7A60><key>iaridepm.enu1</key></Toolbar-029F7A60></Sizes></Row0><Row1><Sizes><Toolbar-0E562BB0><key>debuggergui.enu1</key></Toolbar-0E562BB0></Sizes></Row1><Row2><Sizes><Toolbar-0E562C78><key>armjlink2.enu1</key></Toolbar-0E562C78></Sizes></Row2></Top><Left><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>713</Bottom><Right>259</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202381</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd5></Sizes></Row0></Left><Right><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>713</Bottom><Right>462</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202381</sizeHorzCY><sizeVertCX>241667</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd6></Sizes></Row0><Row1><Sizes><Wnd7><Rect><Top>-2</Top><Left>460</Left><Bottom>713</Bottom><Right>795</Right><x>460</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198413</sizeHorzCY><sizeVertCX>174479</sizeVertCX><sizeVertCY>709325</sizeVertCY></Rect></Wnd7></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>202</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>204</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>202381</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>202381</sizeVertCY></Rect></Wnd4></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-05CFDDB8><key>iaridepm.enu1</key></Toolbar-05CFDDB8></Sizes></Row0><Row1><Sizes><Toolbar-10A02BA8><key>debuggergui.enu1</key></Toolbar-10A02BA8></Sizes></Row1><Row2><Sizes><Toolbar-10A02888><key>armjlink2.enu1</key></Toolbar-10A02888></Sizes></Row2></Top><Left><Row0><Sizes><Wnd5><Rect><Top>-2</Top><Left>-2</Left><Bottom>712</Bottom><Right>259</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202582</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd5></Sizes></Row0></Left><Right><Row0><Sizes><Wnd6><Rect><Top>-2</Top><Left>-2</Left><Bottom>712</Bottom><Right>462</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>204</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>202582</sizeHorzCY><sizeVertCX>241667</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd6></Sizes></Row0><Row1><Sizes><Wnd7><Rect><Top>-2</Top><Left>460</Left><Bottom>712</Bottom><Right>795</Right><x>460</x><y>-2</y><xscreen>200</xscreen><yscreen>200</yscreen><sizeHorzCX>104167</sizeHorzCX><sizeHorzCY>198610</sizeHorzCY><sizeVertCX>174479</sizeVertCX><sizeVertCY>709037</sizeVertCY></Rect></Wnd7></Sizes></Row1></Right><Bottom><Row0><Sizes><Wnd4><Rect><Top>-2</Top><Left>-2</Left><Bottom>202</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>204</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>202582</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>202582</sizeVertCY></Rect></Wnd4></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Project>

View File

@ -18,7 +18,7 @@ ActionState=1
Enabled=0
ShowSource=1
[DebugChecksum]
Checksum=-932522750
Checksum=-2028845894
[DisAssemblyWindow]
NumStates=_ 1
State 1=_ 1

View File

@ -17,7 +17,7 @@
<Build><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1059</ColumnWidth1><ColumnWidth2>282</ColumnWidth2><ColumnWidth3>70</ColumnWidth3></Build><Debug-Log><ColumnWidth0>20</ColumnWidth0><ColumnWidth1>1413</ColumnWidth1></Debug-Log><TerminalIO/><Select-Ambiguous-Definitions><ColumnWidth0>664</ColumnWidth0><ColumnWidth1>94</ColumnWidth1><ColumnWidth2>1138</ColumnWidth2></Select-Ambiguous-Definitions></Static>
<Windows>
<Wnd0>
<Wnd2>
<Tabs>
<Tab>
<Identity>TabID-32216-31616</Identity>
@ -25,11 +25,11 @@
<Factory>Workspace</Factory>
<Session>
<NodeDict><ExpandedNode>stm32f103</ExpandedNode><ExpandedNode>stm32f103/Boot</ExpandedNode><ExpandedNode>stm32f103/Output</ExpandedNode><ExpandedNode>stm32f103/Source</ExpandedNode><ExpandedNode>stm32f103/Source/ARMCM3_STM32F1</ExpandedNode><ExpandedNode>stm32f103/Source/ARMCM3_STM32F1/IAR</ExpandedNode><ExpandedNode>stm32f103/lib</ExpandedNode><ExpandedNode>stm32f103/src</ExpandedNode><ExpandedNode>stm32f103/src/app</ExpandedNode><ExpandedNode>stm32f103/src/hw</ExpandedNode><ExpandedNode>stm32f103/src/os</ExpandedNode></NodeDict></Session>
<NodeDict><ExpandedNode>stm32f103</ExpandedNode><ExpandedNode>stm32f103/Boot</ExpandedNode><ExpandedNode>stm32f103/Output</ExpandedNode><ExpandedNode>stm32f103/Source</ExpandedNode><ExpandedNode>stm32f103/lib</ExpandedNode><ExpandedNode>stm32f103/src</ExpandedNode><ExpandedNode>stm32f103/src/app</ExpandedNode><ExpandedNode>stm32f103/src/hw</ExpandedNode><ExpandedNode>stm32f103/src/os</ExpandedNode></NodeDict></Session>
</Tab>
</Tabs>
<SelectedTab>0</SelectedTab></Wnd0><Wnd1><Tabs><Tab><Identity>TabID-12497-1878</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-2690-2881</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-24296-22939</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd1></Windows>
<SelectedTab>0</SelectedTab></Wnd2><Wnd3><Tabs><Tab><Identity>TabID-12497-1878</Identity><TabName>Build</TabName><Factory>Build</Factory><Session/></Tab><Tab><Identity>TabID-2690-2881</Identity><TabName>Debug Log</TabName><Factory>Debug-Log</Factory><Session/></Tab><Tab><Identity>TabID-24296-22939</Identity><TabName>Ambiguous Definitions</TabName><Factory>Select-Ambiguous-Definitions</Factory><Session/></Tab></Tabs><SelectedTab>0</SelectedTab></Wnd3></Windows>
<Editor>
@ -42,7 +42,7 @@
<Top><Row0><Sizes><Toolbar-053CA5F0><key>iaridepm.enu1</key></Toolbar-053CA5F0></Sizes></Row0></Top><Left><Row0><Sizes><Wnd0><Rect><Top>-2</Top><Left>-2</Left><Bottom>725</Bottom><Right>454</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>203</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>201589</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>721946</sizeVertCY></Rect></Wnd0></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd1><Rect><Top>-2</Top><Left>-2</Left><Bottom>237</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>239</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>237339</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>201589</sizeVertCY></Rect></Wnd1></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-05CFDDB8><key>iaridepm.enu1</key></Toolbar-05CFDDB8></Sizes></Row0><Row1><Sizes/></Row1></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>725</Bottom><Right>454</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>203</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>201589</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>721946</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>237</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>239</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>237339</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>201589</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

View File

@ -731,7 +731,7 @@
</option>
<option>
<name>IlinkIcfFile</name>
<state>$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32F1\IAR\memory.x</state>
<state>$PROJ_DIR$\..\stm32f103xB.icf</state>
</option>
<option>
<name>IlinkIcfFileSlave</name>
@ -2005,12 +2005,21 @@
<file>
<name>$PROJ_DIR$\..\blt_conf.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\flash_layout.c</name>
<excluded>
<configuration>Debug</configuration>
</excluded>
</file>
<file>
<name>$PROJ_DIR$\..\hooks.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\main.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\startup_stm32f103xb.s</name>
</file>
<file>
<name>$PROJ_DIR$\..\usb_conf.h</name>
</file>
@ -2051,12 +2060,6 @@
<file>
<name>$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32F1\IAR\cpu_comp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32F1\IAR\cstart.s</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32F1\IAR\vectors.c</name>
</file>
</group>
<file>
<name>$PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32F1\can.c</name>

View File

@ -0,0 +1,413 @@
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
;* File Name : startup_stm32f103xb.s
;* Author : MCD Application Team
;* Version : V1.4.0
;* Date : 29-April-2016
;* Description : STM32F103xB Performance Line Devices vector table for
;* EWARM toolchain.
;* This module performs:
;* - Set the initial SP
;* - Configure the clock system
;* - Set the initial PC == __iar_program_start,
;* - Set the vector table entries with the exceptions ISR
;* address.
;* After Reset the Cortex-M3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;********************************************************************************
;*
;* <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
;*
;* Redistribution and use in source and binary forms, with or without modification,
;* are permitted provided that the following conditions are met:
;* 1. Redistributions of source code must retain the above copyright notice,
;* this list of conditions and the following disclaimer.
;* 2. Redistributions in binary form must reproduce the above copyright notice,
;* this list of conditions and the following disclaimer in the documentation
;* and/or other materials provided with the distribution.
;* 3. Neither the name of STMicroelectronics nor the names of its contributors
;* may be used to endorse or promote products derived from this software
;* without specific prior written permission.
;*
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*
;*******************************************************************************
;
;
; The modules in this file are included in the libraries, and may be replaced
; by any user-defined modules that define the PUBLIC symbol _program_start or
; a user defined start symbol.
; To override the cstartup defined in the library, simply add your modified
; version to the workbench project.
;
; The vector table is normally located at address 0.
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
; The name "__vector_table" has special meaning for C-SPY:
; it is where the SP start value is found, and the NVIC vector
; table register (VTOR) is initialized to this address if != 0.
;
; Cortex-M version
;
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN __iar_program_start
EXTERN SystemInit
PUBLIC __vector_table
DATA
__vector_table
DCD sfe(CSTACK)
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_IRQHandler ; Tamper
DCD RTC_IRQHandler ; RTC
DCD FLASH_IRQHandler ; Flash
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
DCD ADC1_2_IRQHandler ; ADC1 & ADC2
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD TIM1_BRK_IRQHandler ; TIM1 Break
DCD TIM1_UP_IRQHandler ; TIM1 Update
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
THUMB
PUBWEAK Reset_Handler
SECTION .text:CODE:REORDER:NOROOT(2)
Reset_Handler
; Initialize the stack pointer
LDR R0, =sfe(CSTACK)
MOV SP, R0
LDR R0, =SystemInit
BLX R0
LDR R0, =__iar_program_start
BX R0
PUBWEAK NMI_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
NMI_Handler
B NMI_Handler
PUBWEAK HardFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
HardFault_Handler
B HardFault_Handler
PUBWEAK MemManage_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
MemManage_Handler
B MemManage_Handler
PUBWEAK BusFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
BusFault_Handler
B BusFault_Handler
PUBWEAK UsageFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
UsageFault_Handler
B UsageFault_Handler
PUBWEAK SVC_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
SVC_Handler
B SVC_Handler
PUBWEAK DebugMon_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
DebugMon_Handler
B DebugMon_Handler
PUBWEAK PendSV_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
PendSV_Handler
B PendSV_Handler
PUBWEAK SysTick_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
SysTick_Handler
B SysTick_Handler
PUBWEAK WWDG_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
WWDG_IRQHandler
B WWDG_IRQHandler
PUBWEAK PVD_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
PVD_IRQHandler
B PVD_IRQHandler
PUBWEAK TAMPER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TAMPER_IRQHandler
B TAMPER_IRQHandler
PUBWEAK RTC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RTC_IRQHandler
B RTC_IRQHandler
PUBWEAK FLASH_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
FLASH_IRQHandler
B FLASH_IRQHandler
PUBWEAK RCC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RCC_IRQHandler
B RCC_IRQHandler
PUBWEAK EXTI0_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI0_IRQHandler
B EXTI0_IRQHandler
PUBWEAK EXTI1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI1_IRQHandler
B EXTI1_IRQHandler
PUBWEAK EXTI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI2_IRQHandler
B EXTI2_IRQHandler
PUBWEAK EXTI3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI3_IRQHandler
B EXTI3_IRQHandler
PUBWEAK EXTI4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI4_IRQHandler
B EXTI4_IRQHandler
PUBWEAK DMA1_Channel1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel1_IRQHandler
B DMA1_Channel1_IRQHandler
PUBWEAK DMA1_Channel2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel2_IRQHandler
B DMA1_Channel2_IRQHandler
PUBWEAK DMA1_Channel3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel3_IRQHandler
B DMA1_Channel3_IRQHandler
PUBWEAK DMA1_Channel4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel4_IRQHandler
B DMA1_Channel4_IRQHandler
PUBWEAK DMA1_Channel5_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel5_IRQHandler
B DMA1_Channel5_IRQHandler
PUBWEAK DMA1_Channel6_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel6_IRQHandler
B DMA1_Channel6_IRQHandler
PUBWEAK DMA1_Channel7_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel7_IRQHandler
B DMA1_Channel7_IRQHandler
PUBWEAK ADC1_2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
ADC1_2_IRQHandler
B ADC1_2_IRQHandler
PUBWEAK USB_HP_CAN1_TX_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USB_HP_CAN1_TX_IRQHandler
B USB_HP_CAN1_TX_IRQHandler
PUBWEAK USB_LP_CAN1_RX0_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USB_LP_CAN1_RX0_IRQHandler
B USB_LP_CAN1_RX0_IRQHandler
PUBWEAK CAN1_RX1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
CAN1_RX1_IRQHandler
B CAN1_RX1_IRQHandler
PUBWEAK CAN1_SCE_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
CAN1_SCE_IRQHandler
B CAN1_SCE_IRQHandler
PUBWEAK EXTI9_5_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI9_5_IRQHandler
B EXTI9_5_IRQHandler
PUBWEAK TIM1_BRK_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_BRK_IRQHandler
B TIM1_BRK_IRQHandler
PUBWEAK TIM1_UP_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_UP_IRQHandler
B TIM1_UP_IRQHandler
PUBWEAK TIM1_TRG_COM_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_TRG_COM_IRQHandler
B TIM1_TRG_COM_IRQHandler
PUBWEAK TIM1_CC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_CC_IRQHandler
B TIM1_CC_IRQHandler
PUBWEAK TIM2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM2_IRQHandler
B TIM2_IRQHandler
PUBWEAK TIM3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM3_IRQHandler
B TIM3_IRQHandler
PUBWEAK TIM4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM4_IRQHandler
B TIM4_IRQHandler
PUBWEAK I2C1_EV_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C1_EV_IRQHandler
B I2C1_EV_IRQHandler
PUBWEAK I2C1_ER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C1_ER_IRQHandler
B I2C1_ER_IRQHandler
PUBWEAK I2C2_EV_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C2_EV_IRQHandler
B I2C2_EV_IRQHandler
PUBWEAK I2C2_ER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C2_ER_IRQHandler
B I2C2_ER_IRQHandler
PUBWEAK SPI1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
SPI1_IRQHandler
B SPI1_IRQHandler
PUBWEAK SPI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
SPI2_IRQHandler
B SPI2_IRQHandler
PUBWEAK USART1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART1_IRQHandler
B USART1_IRQHandler
PUBWEAK USART2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART2_IRQHandler
B USART2_IRQHandler
PUBWEAK USART3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART3_IRQHandler
B USART3_IRQHandler
PUBWEAK EXTI15_10_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI15_10_IRQHandler
B EXTI15_10_IRQHandler
PUBWEAK RTC_Alarm_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RTC_Alarm_IRQHandler
B RTC_Alarm_IRQHandler
PUBWEAK USBWakeUp_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USBWakeUp_IRQHandler
B USBWakeUp_IRQHandler
END
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -1,15 +1,13 @@
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x08006000;
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08006000;
define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF;
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x08003FFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
define symbol __ICFEDIT_size_heap__ = 0x800;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x800;
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
@ -19,7 +17,6 @@ define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
initialize by copy { readwrite };
//initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
do not initialize { section .noinit };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
@ -27,4 +24,3 @@ place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };

View File

@ -1,90 +1,97 @@
S021000064656D6F70726F675F6F6C696D65785F73746D3332683130332E73726563A5
S3150800600010040020616500083F6500083F65000828
S315080060103F6500083F6500083F6500083F650008C2
S315080060203F6500083F6500083F6500083F650008B2
S315080060303F6500083F6500083F6500088B63000858
S315080060403F6500083F6500083F6500083F65000892
S315080060503F6500083F6500083F6500083F65000882
S315080060603F6500083F6500083F6500083F65000872
S315080060703F6500083F6500083F6500083F65000862
S315080060803F6500083F6500083F6500083F65000852
S315080060903F6500083F6500083F6500083F65000842
S315080060A03F6500083F6500083F6500083F65000832
S315080060B03F6500083F6500083F6500083F65000822
S315080060C03F6500083F6500083F6500083F65000812
S315080060D03F6500083F6500083F6500083F65000802
S315080060E03F6500083F6500083F6500083F650008F2
S315080060F03F6500083F6500083F6500083F650008E2
S315080061003F6500083F6500083F6500083F650008D1
S315080061103F6500083F6500083F6500083F650008C1
S315080061203F6500083F6500083F6500083F650008B1
S315080061303F6500083F6500083F6500083F650008A1
S315080061403F6500083F6500083F6500083F65000891
S30908006150EE11AA553F
S3150800615480B500F003F800F0B7F8FCE700B583B0A3
S3150800616400200090002001904748006850F0010084
S315080061744549086045480068454908404349086058
S3150800618441480068434908403F4908603E4800685A
S3150800619430F480203C4908603C48006830F4FE002E
S315080061A43A4908605FF41F003B49086036480068AE
S315080061B450F48030344908603348006810F40030DD
S315080061C401900098401C00900198002804D100987A
S315080061D440F2DC518842EFD12B480068800300D492
S315080061E4FEE72E48006850F010002C4908602B483A
S315080061F4006880088000294908602848006850F02B
S3150800620402002649086021480068204908601F489A
S31508006214006850F400501D4908601C48006850F492
S3150800622480601A4908601948006830F47C101749D8
S3150800623408600920801E80041449096850F48030D7
S315080062440843124908601048006850F080700E49E7
S3150800625408600D4800688001FBD50C480068800872
S3150800626480000A4908600948006850F00200074996
S3150800627408600648006810F00C000828F9D100F0F8
S315080062840FF800F072F807BD00100240041002402F
S315080062940000FFF8FFFFF6FE081002400020024047
S315080062A480B50121102000F083F84FF48050ADF832
S315080062B4000003208DF8020010208DF803006946BB
S315080062C4124800F087F801BD10B500F059F804002B
S315080062D40F480068201AB0F5FA7F16D30D480078DF
S315080062E4002808D101200B4908704FF4805107484B
S315080062F400F0D3F807E00020064908704FF48051EF
S31508006304024800F0C7F80248046010BD00100140B6
S31508006314000000200800002040B2002808D5090122
S315080063241C4A40B210F00F00104400F8041C03E0A5
S315080063340901194A40B21154704780B5B0F1807FFB
S3150800634401D3012010E020F07F40401E1349086065
S315080063540F215FF0FF30FFF7DFFF002010490860C8
S31508006364072010490860002002BD80B50E48FFF7D3
S31508006374E4FF002000F001F801BD0C4908607047ED
S315080063840A480068704709480068401C07490860BD
S315080063947047000018ED00E000E400E014E000E0B7
S315080063A418E000E010E000E04019010004000020B5
S315080063B4C9B2002905D00649096808430449086092
S315080063C405E00349096831EA000001490860704795
S315080063D41810024070B40022002500230026002469
S315080063E40025CA7812F00F02CB78DB0601D58B7824
S315080063F41A430B781B0621D00468002306E0CD78DF
S31508006404482D02D101259D4005615B1C082B14D239
S31508006414012515FA03F60D883540B542F5D19E00D7
S315080064240F25B540AC4312FA06F52C43CD78282D32
S31508006434E5D101259D404561E7E704600B88FF2BFC
S3150800644426DD4468002320E0012513F1080615FA21
S3150800645406F60D883540B54216D19E000F25B5407F
S31508006464AC4312FA06F52C43CD78282D04D1012520
S3150800647413F10806B5404561CD78482D04D10125A8
S3150800648413F10806B54005615B1C082BDCD3446090
S3150800649470BC704789B20161704789B2416170471F
S315080064A419E050F8041BCB0744BFA9F10103591896
S315080064B4121F0023042A41F8043BF9D25FEA827CBE
S315080064C40B4604D54FF0000CA1F800C09B1CD1075D
S315080064D444BF0021197050F8042B002AE1D17047F3
S315080064E410B5074979441831064C7C44163404E03F
S315080064F40A68081D114488470146A142F8D110BD0F
S31508006504080000001400000099FFFFFF0C000000BB
S31508006514000000200000000000F00BF8002801D05D
S31508006524FFF7DEFF0020AFF30080FFF711FE00F04F
S3150800653402F80120704700F001B8FEE7074638461E
S3150800654400F002F8FBE7000080B5AFF30080024ACA
S3150800655411001820ABBEFBE726000200034B9D463C
S31508006564AFF30080AFF30080FFF7D6FF10040020D6
S705080065612C
S3150800400010080020FD440008194500081D45000851
S31508004010214500082545000829450008000000003C
S315080040200000000000000000000000002D45000808
S315080040303145000800000000354500082743000800
S31508004040394500083D450008414500084545000832
S31508004050494500084D4500085145000855450008E2
S31508004060594500085D450008614500086545000892
S31508004070694500086D450008714500087545000842
S31508004080794500087D4500088145000885450008F2
S31508004090894500088D4500089145000895450008A2
S315080040A0994500089D450008A1450008A545000852
S315080040B0A9450008AD450008B1450008B545000802
S315080040C0B9450008BD450008C1450008C5450008B2
S315080040D0C9450008CD450008D1450008D545000862
S315080040E0D9450008DD450008E1450008EE11AA5546
S315080040F080B500F003F800F0B7F8FCE700B583B028
S3150800410000200090002001904748006850F0010008
S3150800411045490860454800684549084043490860DC
S3150800412041480068434908403F4908603E480068DE
S3150800413030F480203C4908603C48006830F4FE00B2
S315080041403A4908605FF41F003B4908603648006832
S3150800415050F48030344908603348006810F4003061
S3150800416001900098401C00900198002804D10098FE
S3150800417040F2DC518842EFD12B480068800300D416
S31508004180FEE72E48006850F010002C4908602B48BE
S31508004190006880088000294908602848006850F0AF
S315080041A002002649086021480068204908601F481F
S315080041B0006850F400501D4908601C48006850F417
S315080041C080601A4908601948006830F47C1017495D
S315080041D008600920801E80041449096850F480305C
S315080041E00843124908601048006850F080700E496C
S315080041F008600D4800688001FBD50C4800688008F7
S3150800420080000A4908600948006850F0020007491A
S3150800421008600648006810F00C000828F9D100F07C
S315080042200FF800F072F807BD0010024004100240B3
S315080042300000FFF8FFFFF6FE0810024000200240CB
S3150800424080B50121102000F083F84FF48050ADF8B6
S31508004250000003208DF8020010208DF8030069463F
S31508004260124800F087F801BD10B500F059F80400AF
S315080042700F480068201AB0F5FA7F16D30D48007863
S31508004280002808D101200B4908704FF480510748CF
S3150800429000F0D3F807E00020064908704FF4805173
S315080042A0024800F0C7F80248046010BD001001403B
S315080042B0000000200800002040B2002808D50901A7
S315080042C01C4A40B210F00F00104400F8041C03E02A
S315080042D00901194A40B21154704780B5B0F1807F80
S315080042E001D3012010E020F07F40401E13490860EA
S315080042F00F215FF0FF30FFF7DFFF0020104908604D
S31508004300072010490860002002BD80B50E48FFF757
S31508004310E4FF002000F001F801BD0C490860704771
S315080043200A480068704709480068401C0749086041
S315080043307047000018ED00E000E400E014E000E03B
S3150800434018E000E010E000E0401901000400002039
S31508004350C9B2002905D00649096808430449086016
S3150800436005E00349096831EA000001490860704719
S315080043701810024070B400220025002300260024ED
S315080043800025CA7812F00F02CB78DB0601D58B78A8
S315080043901A430B781B0621D00468002306E0CD7863
S315080043A0482D02D101259D4005615B1C082B14D2BE
S315080043B0012515FA03F60D883540B542F5D19E005C
S315080043C00F25B540AC4312FA06F52C43CD78282DB7
S315080043D0E5D101259D404561E7E704600B88FF2B81
S315080043E026DD4468002320E0012513F1080615FAA6
S315080043F006F60D883540B54216D19E000F25B54004
S31508004400AC4312FA06F52C43CD78282D04D10125A4
S3150800441013F10806B5404561CD78482D04D101252C
S3150800442013F10806B54005615B1C082BDCD3446014
S3150800443070BC704789B20161704789B241617047A3
S3150800444019E050F8041BCB0744BFA9F1010359181A
S31508004450121F0023042A41F8043BF9D25FEA827C42
S315080044600B4604D54FF0000CA1F800C09B1CD107E1
S3150800447044BF0021197050F8042B002AE1D1704777
S3150800448010B5074979441831064C7C44163404E0C3
S315080044900A68081D114488470146A142F8D110BD93
S315080044A0080000001400000099FFFFFF0C00000040
S315080044B0000000200000000000F00BF8002801D0E2
S315080044C0FFF7DEFF0020AFF30080FFF711FE00F0D4
S315080044D002F80120704700F001B800000746384688
S315080044E000F002F8FBE7000080B5AFF30080024A4F
S315080044F011001820ABBEFBE72600020001488546DE
S3150800450001480047100800200D450008AFF3008059
S31508004510AFF30080FFF7D0FFFFF7FEBFFFF7FEBF40
S31508004520FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFB1
S31508004530FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFA1
S31508004540FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF91
S31508004550FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF81
S31508004560FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF71
S31508004570FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF61
S31508004580FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF51
S31508004590FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF41
S315080045A0FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF31
S315080045B0FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF21
S315080045C0FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF11
S315080045D0FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF01
S309080045E0FFF7FEBF16
S7050800450DA0

View File

@ -1,64 +0,0 @@
/****************************************************************************************
| Description: Demo program C startup source file
| File Name: cstart.s
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You have received a copy of the GNU General Public License along with OpenBLT. It
| should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
|
****************************************************************************************/
MODULE ?cstartup
; Forward declaration of section.
SECTION CSTACK:DATA:NOROOT(3)
PUBLIC __iar_program_start
EXTERN __cmain
EXTERN __vector_table
EXTWEAK __iar_init_core
EXTWEAK __iar_init_vfp
/****************************************************************************************
** NAME: __iar_program_start
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Reset interrupt service routine. Configures the stack, initializes RAM
** and jumps to function main.
**
****************************************************************************************/
SECTION .text:CODE:REORDER(2)
THUMB
__iar_program_start:
; Initialize the stack pointer
LDR R3, =sfe(CSTACK)
MOV SP, R3
BL __iar_init_core
BL __iar_init_vfp
BL __cmain
REQUIRE __vector_table
END
/*********************************** end of cstart.s ***********************************/

View File

@ -42,7 +42,7 @@
<Top><Row0><Sizes><Toolbar-02BC7A60><key>iaridepm.enu1</key></Toolbar-02BC7A60></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>726</Bottom><Right>454</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>203</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>201389</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>722222</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>237</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>239</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>237103</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>201389</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
<Top><Row0><Sizes><Toolbar-00AFDDB8><key>iaridepm.enu1</key></Toolbar-00AFDDB8></Sizes></Row0></Top><Left><Row0><Sizes><Wnd2><Rect><Top>-2</Top><Left>-2</Left><Bottom>725</Bottom><Right>454</Right><x>-2</x><y>-2</y><xscreen>261</xscreen><yscreen>203</yscreen><sizeHorzCX>135938</sizeHorzCX><sizeHorzCY>201589</sizeHorzCY><sizeVertCX>237500</sizeVertCX><sizeVertCY>721946</sizeVertCY></Rect></Wnd2></Sizes></Row0></Left><Right><Row0><Sizes/></Row0></Right><Bottom><Row0><Sizes><Wnd3><Rect><Top>-2</Top><Left>-2</Left><Bottom>237</Bottom><Right>1922</Right><x>-2</x><y>-2</y><xscreen>1924</xscreen><yscreen>239</yscreen><sizeHorzCX>1002083</sizeHorzCX><sizeHorzCY>237339</sizeHorzCY><sizeVertCX>135938</sizeVertCX><sizeVertCY>201589</sizeVertCY></Rect></Wnd3></Sizes></Row0></Bottom><Float><Sizes/></Float></Positions>
</Desktop>
</Workspace>

View File

@ -730,7 +730,7 @@
</option>
<option>
<name>IlinkIcfFile</name>
<state>$PROJ_DIR$\..\memory.x</state>
<state>$PROJ_DIR$\..\stm32f103xB.icf</state>
</option>
<option>
<name>IlinkIcfFileSlave</name>
@ -2094,9 +2094,6 @@
<name>$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h</name>
</file>
</group>
<file>
<name>$PROJ_DIR$\..\cstart.s</name>
</file>
<file>
<name>$PROJ_DIR$\..\header.h</name>
</file>
@ -2109,15 +2106,15 @@
<file>
<name>$PROJ_DIR$\..\main.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\startup_stm32f103xb.s</name>
</file>
<file>
<name>$PROJ_DIR$\..\timer.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\timer.h</name>
</file>
<file>
<name>$PROJ_DIR$\..\vectors.c</name>
</file>
</group>
</project>

View File

@ -0,0 +1,412 @@
;******************** (C) COPYRIGHT 2016 STMicroelectronics ********************
;* File Name : startup_stm32f103xb.s
;* Author : MCD Application Team
;* Version : V1.4.0
;* Date : 29-April-2016
;* Description : STM32F103xB Performance Line Devices vector table for
;* EWARM toolchain.
;* This module performs:
;* - Set the initial SP
;* - Configure the clock system
;* - Set the initial PC == __iar_program_start,
;* - Set the vector table entries with the exceptions ISR
;* address.
;* After Reset the Cortex-M3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;********************************************************************************
;*
;* <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
;*
;* Redistribution and use in source and binary forms, with or without modification,
;* are permitted provided that the following conditions are met:
;* 1. Redistributions of source code must retain the above copyright notice,
;* this list of conditions and the following disclaimer.
;* 2. Redistributions in binary form must reproduce the above copyright notice,
;* this list of conditions and the following disclaimer in the documentation
;* and/or other materials provided with the distribution.
;* 3. Neither the name of STMicroelectronics nor the names of its contributors
;* may be used to endorse or promote products derived from this software
;* without specific prior written permission.
;*
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
;*
;*******************************************************************************
;
;
; The modules in this file are included in the libraries, and may be replaced
; by any user-defined modules that define the PUBLIC symbol _program_start or
; a user defined start symbol.
; To override the cstartup defined in the library, simply add your modified
; version to the workbench project.
;
; The vector table is normally located at address 0.
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
; The name "__vector_table" has special meaning for C-SPY:
; it is where the SP start value is found, and the NVIC vector
; table register (VTOR) is initialized to this address if != 0.
;
; Cortex-M version
;
MODULE ?cstartup
;; Forward declaration of sections.
SECTION CSTACK:DATA:NOROOT(3)
SECTION .intvec:CODE:NOROOT(2)
EXTERN __iar_program_start
EXTERN SystemInit
PUBLIC __vector_table
DATA
__vector_table
DCD sfe(CSTACK)
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_IRQHandler ; Tamper
DCD RTC_IRQHandler ; RTC
DCD FLASH_IRQHandler ; Flash
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
DCD ADC1_2_IRQHandler ; ADC1 & ADC2
DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX
DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD TIM1_BRK_IRQHandler ; TIM1 Break
DCD TIM1_UP_IRQHandler ; TIM1 Update
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
DCD 0x55AA11EE ; Reserved for OpenBLT checksum
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
THUMB
PUBWEAK Reset_Handler
SECTION .text:CODE:REORDER:NOROOT(2)
Reset_Handler
; Initialize the stack pointer
LDR R0, =sfe(CSTACK)
MOV SP, R0
LDR R0, =__iar_program_start
BX R0
PUBWEAK NMI_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
NMI_Handler
B NMI_Handler
PUBWEAK HardFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
HardFault_Handler
B HardFault_Handler
PUBWEAK MemManage_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
MemManage_Handler
B MemManage_Handler
PUBWEAK BusFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
BusFault_Handler
B BusFault_Handler
PUBWEAK UsageFault_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
UsageFault_Handler
B UsageFault_Handler
PUBWEAK SVC_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
SVC_Handler
B SVC_Handler
PUBWEAK DebugMon_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
DebugMon_Handler
B DebugMon_Handler
PUBWEAK PendSV_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
PendSV_Handler
B PendSV_Handler
PUBWEAK SysTick_Handler
SECTION .text:CODE:REORDER:NOROOT(1)
SysTick_Handler
B SysTick_Handler
PUBWEAK WWDG_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
WWDG_IRQHandler
B WWDG_IRQHandler
PUBWEAK PVD_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
PVD_IRQHandler
B PVD_IRQHandler
PUBWEAK TAMPER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TAMPER_IRQHandler
B TAMPER_IRQHandler
PUBWEAK RTC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RTC_IRQHandler
B RTC_IRQHandler
PUBWEAK FLASH_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
FLASH_IRQHandler
B FLASH_IRQHandler
PUBWEAK RCC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RCC_IRQHandler
B RCC_IRQHandler
PUBWEAK EXTI0_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI0_IRQHandler
B EXTI0_IRQHandler
PUBWEAK EXTI1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI1_IRQHandler
B EXTI1_IRQHandler
PUBWEAK EXTI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI2_IRQHandler
B EXTI2_IRQHandler
PUBWEAK EXTI3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI3_IRQHandler
B EXTI3_IRQHandler
PUBWEAK EXTI4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI4_IRQHandler
B EXTI4_IRQHandler
PUBWEAK DMA1_Channel1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel1_IRQHandler
B DMA1_Channel1_IRQHandler
PUBWEAK DMA1_Channel2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel2_IRQHandler
B DMA1_Channel2_IRQHandler
PUBWEAK DMA1_Channel3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel3_IRQHandler
B DMA1_Channel3_IRQHandler
PUBWEAK DMA1_Channel4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel4_IRQHandler
B DMA1_Channel4_IRQHandler
PUBWEAK DMA1_Channel5_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel5_IRQHandler
B DMA1_Channel5_IRQHandler
PUBWEAK DMA1_Channel6_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel6_IRQHandler
B DMA1_Channel6_IRQHandler
PUBWEAK DMA1_Channel7_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
DMA1_Channel7_IRQHandler
B DMA1_Channel7_IRQHandler
PUBWEAK ADC1_2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
ADC1_2_IRQHandler
B ADC1_2_IRQHandler
PUBWEAK USB_HP_CAN1_TX_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USB_HP_CAN1_TX_IRQHandler
B USB_HP_CAN1_TX_IRQHandler
PUBWEAK USB_LP_CAN1_RX0_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USB_LP_CAN1_RX0_IRQHandler
B USB_LP_CAN1_RX0_IRQHandler
PUBWEAK CAN1_RX1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
CAN1_RX1_IRQHandler
B CAN1_RX1_IRQHandler
PUBWEAK CAN1_SCE_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
CAN1_SCE_IRQHandler
B CAN1_SCE_IRQHandler
PUBWEAK EXTI9_5_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI9_5_IRQHandler
B EXTI9_5_IRQHandler
PUBWEAK TIM1_BRK_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_BRK_IRQHandler
B TIM1_BRK_IRQHandler
PUBWEAK TIM1_UP_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_UP_IRQHandler
B TIM1_UP_IRQHandler
PUBWEAK TIM1_TRG_COM_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_TRG_COM_IRQHandler
B TIM1_TRG_COM_IRQHandler
PUBWEAK TIM1_CC_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM1_CC_IRQHandler
B TIM1_CC_IRQHandler
PUBWEAK TIM2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM2_IRQHandler
B TIM2_IRQHandler
PUBWEAK TIM3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM3_IRQHandler
B TIM3_IRQHandler
PUBWEAK TIM4_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
TIM4_IRQHandler
B TIM4_IRQHandler
PUBWEAK I2C1_EV_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C1_EV_IRQHandler
B I2C1_EV_IRQHandler
PUBWEAK I2C1_ER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C1_ER_IRQHandler
B I2C1_ER_IRQHandler
PUBWEAK I2C2_EV_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C2_EV_IRQHandler
B I2C2_EV_IRQHandler
PUBWEAK I2C2_ER_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
I2C2_ER_IRQHandler
B I2C2_ER_IRQHandler
PUBWEAK SPI1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
SPI1_IRQHandler
B SPI1_IRQHandler
PUBWEAK SPI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
SPI2_IRQHandler
B SPI2_IRQHandler
PUBWEAK USART1_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART1_IRQHandler
B USART1_IRQHandler
PUBWEAK USART2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART2_IRQHandler
B USART2_IRQHandler
PUBWEAK USART3_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USART3_IRQHandler
B USART3_IRQHandler
PUBWEAK EXTI15_10_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI15_10_IRQHandler
B EXTI15_10_IRQHandler
PUBWEAK RTC_Alarm_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
RTC_Alarm_IRQHandler
B RTC_Alarm_IRQHandler
PUBWEAK USBWakeUp_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
USBWakeUp_IRQHandler
B USBWakeUp_IRQHandler
END
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -0,0 +1,26 @@
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x08004000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08004000;
define symbol __ICFEDIT_region_ROM_end__ = 0x0801FFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x20004FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__ = 0x800;
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
initialize by copy { readwrite };
do not initialize { section .noinit };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place in ROM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };

View File

@ -85,11 +85,11 @@ unsigned long TimerGet(void)
** \return none.
**
****************************************************************************************/
void TimerISRHandler(void)
void SysTick_Handler(void)
{
/* increment the millisecond counter */
millisecond_counter++;
} /*** end of TimerISRHandler ***/
} /*** end of SysTick_Handler ***/
/*********************************** end of timer.c ************************************/

View File

@ -34,7 +34,6 @@
void TimerInit(void);
void TimerSet(unsigned long timer_value);
unsigned long TimerGet(void);
void TimerISRHandler(void);
#endif /* TIMER_H */
/*********************************** end of timer.h ************************************/

View File

@ -1,163 +0,0 @@
/************************************************************************************//**
* \file Demo\ARMCM3_STM32F1_Olimex_STM32H103_IAR\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARMCM3_STM32F1_Olimex_STM32H103_IAR
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
/****************************************************************************************
* External functions
****************************************************************************************/
extern void __iar_program_start( void );
/****************************************************************************************
* Type definitions
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /**< for ISR function pointers */
void *ptr; /**< for stack pointer entry */
}tIsrFunc;
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
{
/* unexpected interrupt occured, so halt the system */
while (1) { ; }
} /*** end of UnusedISR ***/
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
#pragma language=extended /* enable IAR extensions */
#pragma segment="CSTACK"
/** \brief Interrupt vector table. */
__root const tIsrFunc __vector_table[] @ ".intvec" =
{
{ .ptr = __sfe( "CSTACK" ) }, /* the initial stack pointer */
{ &__iar_program_start }, /* the reset handler */
{ UnusedISR }, /* NMI Handler */
{ UnusedISR }, /* Hard Fault Handler */
{ UnusedISR }, /* MPU Fault Handler */
{ UnusedISR }, /* Bus Fault Handler */
{ UnusedISR }, /* Usage Fault Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* SVCall Handler */
{ UnusedISR }, /* Debug Monitor Handler */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* PendSV Handler */
{ TimerISRHandler }, /* SysTick Handler */
{ UnusedISR }, /* Window Watchdog */
{ UnusedISR }, /* PVD through EXTI Line detect */
{ UnusedISR }, /* Tamper */
{ UnusedISR }, /* RTC */
{ UnusedISR }, /* Flash */
{ UnusedISR }, /* RCC */
{ UnusedISR }, /* EXTI Line 0 */
{ UnusedISR }, /* EXTI Line 1 */
{ UnusedISR }, /* EXTI Line 2 */
{ UnusedISR }, /* EXTI Line 3 */
{ UnusedISR }, /* EXTI Line 4 */
{ UnusedISR }, /* DMA1 Channel 1 */
{ UnusedISR }, /* DMA1 Channel 2 */
{ UnusedISR }, /* DMA1 Channel 3 */
{ UnusedISR }, /* DMA1 Channel 4 */
{ UnusedISR }, /* DMA1 Channel 5 */
{ UnusedISR }, /* DMA1 Channel 6 */
{ UnusedISR }, /* DMA1 Channel 7 */
{ UnusedISR }, /* ADC1 and ADC2 */
{ UnusedISR }, /* CAN1 TX */
{ UnusedISR }, /* CAN1 RX0 */
{ UnusedISR }, /* CAN1 RX1 */
{ UnusedISR }, /* CAN1 SCE */
{ UnusedISR }, /* EXTI Line 9..5 */
{ UnusedISR }, /* TIM1 Break */
{ UnusedISR }, /* TIM1 Update */
{ UnusedISR }, /* TIM1 Trigger and Commutation */
{ UnusedISR }, /* TIM1 Capture Compare */
{ UnusedISR }, /* TIM2 */
{ UnusedISR }, /* TIM3 */
{ UnusedISR }, /* TIM4 */
{ UnusedISR }, /* I2C1 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* I2C2 Event */
{ UnusedISR }, /* I2C1 Error */
{ UnusedISR }, /* SPI1 */
{ UnusedISR }, /* SPI2 */
{ UnusedISR }, /* USART1 */
{ UnusedISR }, /* USART2 */
{ UnusedISR }, /* USART3 */
{ UnusedISR }, /* EXTI Line 15..10 */
{ UnusedISR }, /* RTC alarm through EXTI line */
{ UnusedISR }, /* USB OTG FS Wakeup */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* Reserved */
{ UnusedISR }, /* TIM5 */
{ UnusedISR }, /* SPI3 */
{ UnusedISR }, /* UART4 */
{ UnusedISR }, /* UART5 */
{ UnusedISR }, /* TIM6 */
{ UnusedISR }, /* TIM7 */
{ UnusedISR }, /* DMA2 Channel1 */
{ UnusedISR }, /* DMA2 Channel2 */
{ UnusedISR }, /* DMA2 Channel3 */
{ UnusedISR }, /* DMA2 Channel4 */
{ UnusedISR }, /* DMA2 Channel5 */
{ UnusedISR }, /* Ethernet */
{ UnusedISR }, /* Ethernet Wakeup */
{ UnusedISR }, /* CAN2 TX */
{ UnusedISR }, /* CAN2 RX0 */
{ UnusedISR }, /* CAN2 RX1 */
{ UnusedISR }, /* CAN2 SCE */
{ UnusedISR }, /* USB OTG FS */
{ .ptr = (void*)0x55AA11EE }, /* Reserved for OpenBLT checksum */
};
/************************************ end of vectors.c *********************************/

View File

@ -244,6 +244,16 @@ Discarded input sections
0x00000000 0x44 THUMB Debug/../../obj/stm32f10x_usart.o
.text.USART_ClearITPendingBit
0x00000000 0x10 THUMB Debug/../../obj/stm32f10x_usart.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.stack 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.stack_process
0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.heap 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.text 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.data 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.text 0x00000000 0x0 THUMB Debug/../../obj/can.o
.data 0x00000000 0x0 THUMB Debug/../../obj/can.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/can.o
@ -285,16 +295,6 @@ Discarded input sections
.text 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cpu_comp.o
.text 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.data 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.stack 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.stack_process
0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.heap 0x00000000 0x0 THUMB Debug/../../obj/cstart.o
.text 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.data 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/vectors.o
.text 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.data 0x00000000 0x0 THUMB Debug/../../obj/assert.o
.bss 0x00000000 0x0 THUMB Debug/../../obj/assert.o
@ -2251,101 +2251,101 @@ Linker script and memory map
.text.USART_GetFlagStatus
0x08000ee8 0xc THUMB Debug/../../obj/stm32f10x_usart.o
0x08000ee8 USART_GetFlagStatus
.text.CanInit 0x08000ef4 0x130 THUMB Debug/../../obj/can.o
0x08000ef4 CanInit
.text.CanTransmitPacket
0x08001024 0x98 THUMB Debug/../../obj/can.o
0x08001024 CanTransmitPacket
.text.CanReceivePacket
0x080010bc 0x74 THUMB Debug/../../obj/can.o
0x080010bc CanReceivePacket
.text.CpuInit 0x08001130 0x8 THUMB Debug/../../obj/cpu.o
0x08001130 CpuInit
.text.CpuStartUserProgram
0x08001138 0x34 THUMB Debug/../../obj/cpu.o
0x08001138 CpuStartUserProgram
.text.CpuMemCopy
0x0800116c 0x24 THUMB Debug/../../obj/cpu.o
0x0800116c CpuMemCopy
.text.FlashLock
0x08001190 0x10 THUMB Debug/../../obj/flash.o
.text.FlashGetSector
0x080011a0 0x38 THUMB Debug/../../obj/flash.o
.text.FlashWriteBlock
0x080011d8 0xb4 THUMB Debug/../../obj/flash.o
.text.FlashSwitchBlock
0x0800128c 0x58 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
0x080012e4 0x84 THUMB Debug/../../obj/flash.o
.text.FlashInit
0x08001368 0x18 THUMB Debug/../../obj/flash.o
0x08001368 FlashInit
.text.FlashWrite
0x08001380 0x50 THUMB Debug/../../obj/flash.o
0x08001380 FlashWrite
.text.FlashErase
0x080013d0 0x148 THUMB Debug/../../obj/flash.o
0x080013d0 FlashErase
.text.FlashWriteChecksum
0x08001518 0x50 THUMB Debug/../../obj/flash.o
0x08001518 FlashWriteChecksum
.text.FlashVerifyChecksum
0x08001568 0x50 THUMB Debug/../../obj/flash.o
0x08001568 FlashVerifyChecksum
.text.FlashDone
0x080015b8 0x3c THUMB Debug/../../obj/flash.o
0x080015b8 FlashDone
.text.FlashGetUserProgBaseAddress
0x080015f4 0x8 THUMB Debug/../../obj/flash.o
0x080015f4 FlashGetUserProgBaseAddress
.text.NvmInit 0x080015fc 0x8 THUMB Debug/../../obj/nvm.o
0x080015fc NvmInit
.text.NvmWrite
0x08001604 0x8 THUMB Debug/../../obj/nvm.o
0x08001604 NvmWrite
.text.NvmErase
0x0800160c 0x8 THUMB Debug/../../obj/nvm.o
0x0800160c NvmErase
.text.NvmVerifyChecksum
0x08001614 0x8 THUMB Debug/../../obj/nvm.o
0x08001614 NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x0800161c 0x8 THUMB Debug/../../obj/nvm.o
0x0800161c NvmGetUserProgBaseAddress
.text.NvmDone 0x08001624 0x14 THUMB Debug/../../obj/nvm.o
0x08001624 NvmDone
.text.TimerInit
0x08001638 0x24 THUMB Debug/../../obj/timer.o
0x08001638 TimerInit
.text.TimerReset
0x0800165c 0xc THUMB Debug/../../obj/timer.o
0x0800165c TimerReset
.text.TimerUpdate
0x08001668 0x1c THUMB Debug/../../obj/timer.o
0x08001668 TimerUpdate
.text.TimerGet
0x08001684 0x10 THUMB Debug/../../obj/timer.o
0x08001684 TimerGet
.text.UartTransmitByte
0x08001694 0x40 THUMB Debug/../../obj/uart.o
.text.UartInit
0x080016d4 0x28 THUMB Debug/../../obj/uart.o
0x080016d4 UartInit
.text.UartTransmitPacket
0x080016fc 0x58 THUMB Debug/../../obj/uart.o
0x080016fc UartTransmitPacket
.text.UartReceivePacket
0x08001754 0xb0 THUMB Debug/../../obj/uart.o
0x08001754 UartReceivePacket
.text.CpuIrqDisable
0x08001804 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001804 CpuIrqDisable
.text.CpuIrqEnable
0x08001808 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001808 CpuIrqEnable
.text.UnusedISR
0x0800180c 0x10 THUMB Debug/../../obj/vectors.o
0x0800180c UnusedISR
0x08000ef4 0x10 THUMB Debug/../../obj/vectors.o
0x08000ef4 UnusedISR
.text.CanInit 0x08000f04 0x130 THUMB Debug/../../obj/can.o
0x08000f04 CanInit
.text.CanTransmitPacket
0x08001034 0x98 THUMB Debug/../../obj/can.o
0x08001034 CanTransmitPacket
.text.CanReceivePacket
0x080010cc 0x74 THUMB Debug/../../obj/can.o
0x080010cc CanReceivePacket
.text.CpuInit 0x08001140 0x8 THUMB Debug/../../obj/cpu.o
0x08001140 CpuInit
.text.CpuStartUserProgram
0x08001148 0x34 THUMB Debug/../../obj/cpu.o
0x08001148 CpuStartUserProgram
.text.CpuMemCopy
0x0800117c 0x24 THUMB Debug/../../obj/cpu.o
0x0800117c CpuMemCopy
.text.FlashLock
0x080011a0 0x10 THUMB Debug/../../obj/flash.o
.text.FlashGetSector
0x080011b0 0x38 THUMB Debug/../../obj/flash.o
.text.FlashWriteBlock
0x080011e8 0xb4 THUMB Debug/../../obj/flash.o
.text.FlashSwitchBlock
0x0800129c 0x58 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
0x080012f4 0x84 THUMB Debug/../../obj/flash.o
.text.FlashInit
0x08001378 0x18 THUMB Debug/../../obj/flash.o
0x08001378 FlashInit
.text.FlashWrite
0x08001390 0x50 THUMB Debug/../../obj/flash.o
0x08001390 FlashWrite
.text.FlashErase
0x080013e0 0x148 THUMB Debug/../../obj/flash.o
0x080013e0 FlashErase
.text.FlashWriteChecksum
0x08001528 0x50 THUMB Debug/../../obj/flash.o
0x08001528 FlashWriteChecksum
.text.FlashVerifyChecksum
0x08001578 0x50 THUMB Debug/../../obj/flash.o
0x08001578 FlashVerifyChecksum
.text.FlashDone
0x080015c8 0x3c THUMB Debug/../../obj/flash.o
0x080015c8 FlashDone
.text.FlashGetUserProgBaseAddress
0x08001604 0x8 THUMB Debug/../../obj/flash.o
0x08001604 FlashGetUserProgBaseAddress
.text.NvmInit 0x0800160c 0x8 THUMB Debug/../../obj/nvm.o
0x0800160c NvmInit
.text.NvmWrite
0x08001614 0x8 THUMB Debug/../../obj/nvm.o
0x08001614 NvmWrite
.text.NvmErase
0x0800161c 0x8 THUMB Debug/../../obj/nvm.o
0x0800161c NvmErase
.text.NvmVerifyChecksum
0x08001624 0x8 THUMB Debug/../../obj/nvm.o
0x08001624 NvmVerifyChecksum
.text.NvmGetUserProgBaseAddress
0x0800162c 0x8 THUMB Debug/../../obj/nvm.o
0x0800162c NvmGetUserProgBaseAddress
.text.NvmDone 0x08001634 0x14 THUMB Debug/../../obj/nvm.o
0x08001634 NvmDone
.text.TimerInit
0x08001648 0x24 THUMB Debug/../../obj/timer.o
0x08001648 TimerInit
.text.TimerReset
0x0800166c 0xc THUMB Debug/../../obj/timer.o
0x0800166c TimerReset
.text.TimerUpdate
0x08001678 0x1c THUMB Debug/../../obj/timer.o
0x08001678 TimerUpdate
.text.TimerGet
0x08001694 0x10 THUMB Debug/../../obj/timer.o
0x08001694 TimerGet
.text.UartTransmitByte
0x080016a4 0x40 THUMB Debug/../../obj/uart.o
.text.UartInit
0x080016e4 0x28 THUMB Debug/../../obj/uart.o
0x080016e4 UartInit
.text.UartTransmitPacket
0x0800170c 0x58 THUMB Debug/../../obj/uart.o
0x0800170c UartTransmitPacket
.text.UartReceivePacket
0x08001764 0xb0 THUMB Debug/../../obj/uart.o
0x08001764 UartReceivePacket
.text.CpuIrqDisable
0x08001814 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001814 CpuIrqDisable
.text.CpuIrqEnable
0x08001818 0x4 THUMB Debug/../../obj/cpu_comp.o
0x08001818 CpuIrqEnable
.text.AssertFailure
0x0800181c 0x8 THUMB Debug/../../obj/assert.o
0x0800181c AssertFailure
@ -2563,7 +2563,7 @@ Linker script and memory map
0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= __FLASH_segment_end__)), error: .ctors is too large to fit in FLASH memory segment)
0x08004570 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
.rodata 0x08004570 0xc80
.rodata 0x08004570 0xc58
0x08004570 __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.firmwareFilename
@ -2575,117 +2575,118 @@ Linker script and memory map
0x080045a0 0x63 THUMB Debug/../../obj/main.o
*fill* 0x08004603 0x1
.rodata.str1.4
0x08004604 0x81 THUMB Debug/../../obj/can.o
*fill* 0x08004685 0x3
0x08004604 0x66 THUMB Debug/../../obj/vectors.o
*fill* 0x0800466a 0x2
.rodata.str1.4
0x0800466c 0x81 THUMB Debug/../../obj/can.o
*fill* 0x080046ed 0x3
.rodata.canTiming
0x08004688 0x24 THUMB Debug/../../obj/can.o
0x080046f0 0x24 THUMB Debug/../../obj/can.o
.rodata.flashLayout
0x080046ac 0x9c THUMB Debug/../../obj/flash.o
0x08004714 0x9c THUMB Debug/../../obj/flash.o
.rodata.str1.4
0x08004748 0x82 THUMB Debug/../../obj/uart.o
*fill* 0x080047ca 0x2
.rodata.str1.4
0x080047cc 0x90 THUMB Debug/../../obj/vectors.o
0x080047b0 0x82 THUMB Debug/../../obj/uart.o
*fill* 0x08004832 0x2
.rodata.xcpStationId
0x0800485c 0x8 THUMB Debug/../../obj/xcp.o
0x08004834 0x8 THUMB Debug/../../obj/xcp.o
.rodata.str1.4
0x08004864 0x21d THUMB Debug/../../obj/file.o
0x0800483c 0x21d THUMB Debug/../../obj/file.o
0x221 (size before relaxing)
*fill* 0x08004a81 0x3
*fill* 0x08004a59 0x3
.rodata.str1.4
0x08004a84 0x13 THUMB Debug/../../obj/ff.o
*fill* 0x08004a97 0x1
.rodata.ExCvt 0x08004a98 0x80 THUMB Debug/../../obj/ff.o
0x08004a5c 0x13 THUMB Debug/../../obj/ff.o
*fill* 0x08004a6f 0x1
.rodata.ExCvt 0x08004a70 0x80 THUMB Debug/../../obj/ff.o
.rodata.LfnOfs
0x08004b18 0xd THUMB Debug/../../obj/ff.o
*fill* 0x08004b25 0x3
.rodata.Tbl 0x08004b28 0x100 THUMB Debug/../../obj/unicode.o
0x08004af0 0xd THUMB Debug/../../obj/ff.o
*fill* 0x08004afd 0x3
.rodata.Tbl 0x08004b00 0x100 THUMB Debug/../../obj/unicode.o
.rodata.cvt2.3900
0x08004c28 0xbc THUMB Debug/../../obj/unicode.o
0x08004c00 0xbc THUMB Debug/../../obj/unicode.o
.rodata.cvt1.3899
0x08004ce4 0x1f2 THUMB Debug/../../obj/unicode.o
*fill* 0x08004ed6 0x2
0x08004cbc 0x1f2 THUMB Debug/../../obj/unicode.o
*fill* 0x08004eae 0x2
.rodata.libc.__RAL_c_locale_abbrev_month_names
0x08004ed8 0x31 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004ed8 __RAL_c_locale_abbrev_month_names
*fill* 0x08004f09 0x3
0x08004eb0 0x31 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004eb0 __RAL_c_locale_abbrev_month_names
*fill* 0x08004ee1 0x3
.rodata.libc.__RAL_data_utf8_period
0x08004f0c 0x2 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004f0c __RAL_data_utf8_period
*fill* 0x08004f0e 0x2
0x08004ee4 0x2 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004ee4 __RAL_data_utf8_period
*fill* 0x08004ee6 0x2
.rodata.libc.str1.4
0x08004f10 0xe4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004ee8 0xe4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0xf1 (size before relaxing)
.rodata.libc.__RAL_data_empty_string
0x08004ff4 0x1 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004ff4 __RAL_data_empty_string
*fill* 0x08004ff5 0x3
0x08004fcc 0x1 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004fcc __RAL_data_empty_string
*fill* 0x08004fcd 0x3
.rodata.libc.__RAL_c_locale
0x08004ff8 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004ff8 __RAL_c_locale
0x08004fd0 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004fd0 __RAL_c_locale
.rodata.libc.__RAL_ascii_ctype_mask
0x08005004 0xd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
*fill* 0x08005011 0x3
0x08004fdc 0xd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
*fill* 0x08004fe9 0x3
.rodata.libc.__RAL_c_locale_day_names
0x08005014 0x3a C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005014 __RAL_c_locale_day_names
*fill* 0x0800504e 0x2
0x08004fec 0x3a C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08004fec __RAL_c_locale_day_names
*fill* 0x08005026 0x2
.rodata.libc.__RAL_c_locale_abbrev_day_names
0x08005050 0x1d C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005050 __RAL_c_locale_abbrev_day_names
*fill* 0x0800506d 0x3
0x08005028 0x1d C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005028 __RAL_c_locale_abbrev_day_names
*fill* 0x08005045 0x3
.rodata.libc.__RAL_c_locale_am_pm_indicator
0x08005070 0x7 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005070 __RAL_c_locale_am_pm_indicator
*fill* 0x08005077 0x1
0x08005048 0x7 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005048 __RAL_c_locale_am_pm_indicator
*fill* 0x0800504f 0x1
.rodata.libc.__RAL_c_locale_data
0x08005078 0x58 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005078 __RAL_c_locale_data
0x08005050 0x58 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005050 __RAL_c_locale_data
.rodata.libc.__RAL_codeset_ascii
0x080050d0 0x20 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x080050d0 __RAL_codeset_ascii
0x080050a8 0x20 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x080050a8 __RAL_codeset_ascii
.rodata.libc.__RAL_c_locale_month_names
0x080050f0 0x57 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x080050f0 __RAL_c_locale_month_names
*fill* 0x08005147 0x1
0x080050c8 0x57 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x080050c8 __RAL_c_locale_month_names
*fill* 0x0800511f 0x1
.rodata.libc.__RAL_c_locale_date_time_format
0x08005148 0xf C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005148 __RAL_c_locale_date_time_format
*fill* 0x08005157 0x1
0x08005120 0xf C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005120 __RAL_c_locale_date_time_format
*fill* 0x0800512f 0x1
.rodata.libc.__RAL_c_locale_time_format
0x08005158 0x9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005158 __RAL_c_locale_time_format
*fill* 0x08005161 0x3
0x08005130 0x9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005130 __RAL_c_locale_time_format
*fill* 0x08005139 0x3
.rodata.libc.__RAL_c_locale_date_format
0x08005164 0x9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005164 __RAL_c_locale_date_format
*fill* 0x0800516d 0x3
0x0800513c 0x9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x0800513c __RAL_c_locale_date_format
*fill* 0x08005145 0x3
.rodata.libc.__RAL_ascii_ctype_map
0x08005170 0x80 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005170 __RAL_ascii_ctype_map
0x080051f0 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x080051f0 __rodata_load_end__ = __rodata_end__
0x08005148 0x80 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x08005148 __RAL_ascii_ctype_map
0x080051c8 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x080051c8 __rodata_load_end__ = __rodata_end__
.rel.dyn 0x08000000 0x0
.rel.iplt 0x08000000 0x0 THUMB Debug/../../obj/hooks.o
0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment)
0x080051f0 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
0x080051c8 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
.ARM.exidx 0x080051f0 0x0
0x080051f0 __ARM.exidx_start__ = .
0x080051f0 __exidx_start = __ARM.exidx_start__
.ARM.exidx 0x080051c8 0x0
0x080051c8 __ARM.exidx_start__ = .
0x080051c8 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
0x080051f0 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x080051f0 __exidx_end = __ARM.exidx_end__
0x080051f0 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x080051c8 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x080051c8 __exidx_end = __ARM.exidx_end__
0x080051c8 __ARM.exidx_load_end__ = __ARM.exidx_end__
0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= __FLASH_segment_end__)), error: .ARM.exidx is too large to fit in FLASH memory segment)
0x080051f0 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
0x080051c8 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
.fast 0x20000000 0x0 load address 0x080051f0
.fast 0x20000000 0x0 load address 0x080051c8
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
0x080051f0 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x080051c8 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@ -2694,9 +2695,9 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
0x080051f0 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
0x080051c8 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
.data 0x20000000 0x18 load address 0x080051f0
.data 0x20000000 0x18 load address 0x080051c8
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
.data.Stat 0x20000000 0x1 THUMB Debug/../../obj/mmc.o
@ -2707,13 +2708,13 @@ Linker script and memory map
0x20000004 0x14 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x20000004 __RAL_global_locale
0x20000018 __data_end__ = (__data_start__ + SIZEOF (.data))
0x08005208 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x080051e0 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
.igot.plt 0x00000000 0x0
.igot.plt 0x00000000 0x0 THUMB Debug/../../obj/hooks.o
0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment)
.data_run 0x20000000 0x18 load address 0x080051f0
.data_run 0x20000000 0x18 load address 0x080051c8
0x20000000 __data_run_start__ = .
0x20000018 . = MAX ((__data_run_start__ + SIZEOF (.data)), .)
*fill* 0x20000000 0x18
@ -2814,14 +2815,14 @@ Linker script and memory map
0x200011e0 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x200011e0 __tbss_load_end__ = __tbss_end__
0x00000001 . = ASSERT (((__tbss_end__ >= __SRAM_segment_start__) && (__tbss_end__ <= __SRAM_segment_end__)), error: .tbss is too large to fit in SRAM memory segment)
0x08005208 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
0x080051e0 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
.tdata 0x200011e0 0x0 load address 0x08005208
.tdata 0x200011e0 0x0 load address 0x080051e0
0x200011e0 __tdata_start__ = .
*(.tdata .tdata.*)
0x200011e0 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
0x08005208 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x08005208 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x080051e0 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x080051e0 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x00000001 . = ASSERT (((__tdata_load_end__ >= __FLASH_segment_start__) && (__tdata_load_end__ <= __FLASH_segment_end__)), error: .tdata is too large to fit in FLASH memory segment)
.tdata_run 0x200011e0 0x0
@ -2840,6 +2841,8 @@ LOAD THUMB Debug/../../obj/stm32f10x_gpio.o
LOAD THUMB Debug/../../obj/stm32f10x_rcc.o
LOAD THUMB Debug/../../obj/stm32f10x_spi.o
LOAD THUMB Debug/../../obj/stm32f10x_usart.o
LOAD THUMB Debug/../../obj/cstart.o
LOAD THUMB Debug/../../obj/vectors.o
LOAD THUMB Debug/../../obj/can.o
LOAD THUMB Debug/../../obj/cpu.o
LOAD THUMB Debug/../../obj/flash.o
@ -2848,8 +2851,6 @@ LOAD THUMB Debug/../../obj/timer.o
LOAD THUMB Debug/../../obj/uart.o
LOAD THUMB Debug/../../obj/usb.o
LOAD THUMB Debug/../../obj/cpu_comp.o
LOAD THUMB Debug/../../obj/cstart.o
LOAD THUMB Debug/../../obj/vectors.o
LOAD THUMB Debug/../../obj/assert.o
LOAD THUMB Debug/../../obj/backdoor.o
LOAD THUMB Debug/../../obj/boot.o
@ -2878,14 +2879,14 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_frame 0x00000488 0x240 THUMB Debug/../../obj/stm32f10x_rcc.o
.debug_frame 0x000006c8 0x1d4 THUMB Debug/../../obj/stm32f10x_spi.o
.debug_frame 0x0000089c 0x244 THUMB Debug/../../obj/stm32f10x_usart.o
.debug_frame 0x00000ae0 0x64 THUMB Debug/../../obj/can.o
.debug_frame 0x00000b44 0x74 THUMB Debug/../../obj/cpu.o
.debug_frame 0x00000bb8 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x00000d38 0xd4 THUMB Debug/../../obj/nvm.o
.debug_frame 0x00000e0c 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00000e68 0x88 THUMB Debug/../../obj/uart.o
.debug_frame 0x00000ef0 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00000f20 0x2c THUMB Debug/../../obj/vectors.o
.debug_frame 0x00000ae0 0x2c THUMB Debug/../../obj/vectors.o
.debug_frame 0x00000b0c 0x64 THUMB Debug/../../obj/can.o
.debug_frame 0x00000b70 0x74 THUMB Debug/../../obj/cpu.o
.debug_frame 0x00000be4 0x180 THUMB Debug/../../obj/flash.o
.debug_frame 0x00000d64 0xd4 THUMB Debug/../../obj/nvm.o
.debug_frame 0x00000e38 0x5c THUMB Debug/../../obj/timer.o
.debug_frame 0x00000e94 0x88 THUMB Debug/../../obj/uart.o
.debug_frame 0x00000f1c 0x30 THUMB Debug/../../obj/cpu_comp.o
.debug_frame 0x00000f4c 0x2c THUMB Debug/../../obj/assert.o
.debug_frame 0x00000f78 0x48 THUMB Debug/../../obj/backdoor.o
.debug_frame 0x00000fc0 0x48 THUMB Debug/../../obj/boot.o
@ -2898,7 +2899,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_frame 0x00001b04 0x3d6c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_frame 0x00005870 0xb0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2_asm.o)
.debug_info 0x00000000 0xde0a
.debug_info 0x00000000 0xdde0
.debug_info 0x00000000 0x79d THUMB Debug/../../obj/hooks.o
.debug_info 0x0000079d 0x3a2 THUMB Debug/../../obj/main.o
.debug_info 0x00000b3f 0x1251 THUMB Debug/../../obj/mmc.o
@ -2906,25 +2907,25 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_info 0x000025e9 0x8a1 THUMB Debug/../../obj/stm32f10x_rcc.o
.debug_info 0x00002e8a 0x993 THUMB Debug/../../obj/stm32f10x_spi.o
.debug_info 0x0000381d 0xaee THUMB Debug/../../obj/stm32f10x_usart.o
.debug_info 0x0000430b 0x519 THUMB Debug/../../obj/can.o
.debug_info 0x00004824 0x1e4 THUMB Debug/../../obj/cpu.o
.debug_info 0x00004a08 0x8db THUMB Debug/../../obj/flash.o
.debug_info 0x000052e3 0x263 THUMB Debug/../../obj/nvm.o
.debug_info 0x00005546 0x13c THUMB Debug/../../obj/timer.o
.debug_info 0x00005682 0x397 THUMB Debug/../../obj/uart.o
.debug_info 0x00005a19 0x95 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x00005aae 0x110 THUMB Debug/../../obj/cstart.o
.debug_info 0x00005bbe 0x11f THUMB Debug/../../obj/vectors.o
.debug_info 0x00005cdd 0xd7 THUMB Debug/../../obj/assert.o
.debug_info 0x00005db4 0x14d THUMB Debug/../../obj/backdoor.o
.debug_info 0x00005f01 0x18f THUMB Debug/../../obj/boot.o
.debug_info 0x00006090 0x308 THUMB Debug/../../obj/com.o
.debug_info 0x00006398 0x95 THUMB Debug/../../obj/cop.o
.debug_info 0x0000642d 0x85d THUMB Debug/../../obj/xcp.o
.debug_info 0x00006c8a 0x1284 THUMB Debug/../../obj/file.o
.debug_info 0x00007f0e 0x39db THUMB Debug/../../obj/ff.o
.debug_info 0x0000b8e9 0x1ad THUMB Debug/../../obj/unicode.o
.debug_info 0x0000ba96 0x2374 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_info 0x0000430b 0xe6 THUMB Debug/../../obj/cstart.o
.debug_info 0x000043f1 0x11f THUMB Debug/../../obj/vectors.o
.debug_info 0x00004510 0x519 THUMB Debug/../../obj/can.o
.debug_info 0x00004a29 0x1e4 THUMB Debug/../../obj/cpu.o
.debug_info 0x00004c0d 0x8db THUMB Debug/../../obj/flash.o
.debug_info 0x000054e8 0x263 THUMB Debug/../../obj/nvm.o
.debug_info 0x0000574b 0x13c THUMB Debug/../../obj/timer.o
.debug_info 0x00005887 0x397 THUMB Debug/../../obj/uart.o
.debug_info 0x00005c1e 0x95 THUMB Debug/../../obj/cpu_comp.o
.debug_info 0x00005cb3 0xd7 THUMB Debug/../../obj/assert.o
.debug_info 0x00005d8a 0x14d THUMB Debug/../../obj/backdoor.o
.debug_info 0x00005ed7 0x18f THUMB Debug/../../obj/boot.o
.debug_info 0x00006066 0x308 THUMB Debug/../../obj/com.o
.debug_info 0x0000636e 0x95 THUMB Debug/../../obj/cop.o
.debug_info 0x00006403 0x85d THUMB Debug/../../obj/xcp.o
.debug_info 0x00006c60 0x1284 THUMB Debug/../../obj/file.o
.debug_info 0x00007ee4 0x39db THUMB Debug/../../obj/ff.o
.debug_info 0x0000b8bf 0x1ad THUMB Debug/../../obj/unicode.o
.debug_info 0x0000ba6c 0x2374 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_abbrev 0x00000000 0x2450
.debug_abbrev 0x00000000 0x223 THUMB Debug/../../obj/hooks.o
@ -2934,15 +2935,15 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_abbrev 0x00000849 0x1e7 THUMB Debug/../../obj/stm32f10x_rcc.o
.debug_abbrev 0x00000a30 0x1cd THUMB Debug/../../obj/stm32f10x_spi.o
.debug_abbrev 0x00000bfd 0x1cb THUMB Debug/../../obj/stm32f10x_usart.o
.debug_abbrev 0x00000dc8 0x209 THUMB Debug/../../obj/can.o
.debug_abbrev 0x00000fd1 0xc8 THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x00001099 0x24b THUMB Debug/../../obj/flash.o
.debug_abbrev 0x000012e4 0xca THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x000013ae 0x104 THUMB Debug/../../obj/timer.o
.debug_abbrev 0x000014b2 0x1b6 THUMB Debug/../../obj/uart.o
.debug_abbrev 0x00001668 0x45 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x000016ad 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x000016c1 0xee THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00000dc8 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00000ddc 0xee THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00000eca 0x209 THUMB Debug/../../obj/can.o
.debug_abbrev 0x000010d3 0xc8 THUMB Debug/../../obj/cpu.o
.debug_abbrev 0x0000119b 0x24b THUMB Debug/../../obj/flash.o
.debug_abbrev 0x000013e6 0xca THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x000014b0 0x104 THUMB Debug/../../obj/timer.o
.debug_abbrev 0x000015b4 0x1b6 THUMB Debug/../../obj/uart.o
.debug_abbrev 0x0000176a 0x45 THUMB Debug/../../obj/cpu_comp.o
.debug_abbrev 0x000017af 0x8b THUMB Debug/../../obj/assert.o
.debug_abbrev 0x0000183a 0x7f THUMB Debug/../../obj/backdoor.o
.debug_abbrev 0x000018b9 0x63 THUMB Debug/../../obj/boot.o
@ -2990,21 +2991,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_pubnames
0x00000d2f 0x2bd THUMB Debug/../../obj/stm32f10x_usart.o
.debug_pubnames
0x00000fec 0x6d THUMB Debug/../../obj/can.o
0x00000fec 0x2d THUMB Debug/../../obj/vectors.o
.debug_pubnames
0x00001059 0x45 THUMB Debug/../../obj/cpu.o
0x00001019 0x6d THUMB Debug/../../obj/can.o
.debug_pubnames
0x0000109e 0x1a4 THUMB Debug/../../obj/flash.o
0x00001086 0x45 THUMB Debug/../../obj/cpu.o
.debug_pubnames
0x00001242 0x86 THUMB Debug/../../obj/nvm.o
0x000010cb 0x1a4 THUMB Debug/../../obj/flash.o
.debug_pubnames
0x000012c8 0x64 THUMB Debug/../../obj/timer.o
0x0000126f 0x86 THUMB Debug/../../obj/nvm.o
.debug_pubnames
0x0000132c 0x75 THUMB Debug/../../obj/uart.o
0x000012f5 0x64 THUMB Debug/../../obj/timer.o
.debug_pubnames
0x000013a1 0x35 THUMB Debug/../../obj/cpu_comp.o
0x00001359 0x75 THUMB Debug/../../obj/uart.o
.debug_pubnames
0x000013d6 0x2d THUMB Debug/../../obj/vectors.o
0x000013ce 0x35 THUMB Debug/../../obj/cpu_comp.o
.debug_pubnames
0x00001403 0x24 THUMB Debug/../../obj/assert.o
.debug_pubnames
@ -3041,21 +3042,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_pubtypes
0x000008aa 0x16f THUMB Debug/../../obj/stm32f10x_usart.o
.debug_pubtypes
0x00000a19 0x16a THUMB Debug/../../obj/can.o
0x00000a19 0xe2 THUMB Debug/../../obj/vectors.o
.debug_pubtypes
0x00000b83 0xff THUMB Debug/../../obj/cpu.o
0x00000afb 0x16a THUMB Debug/../../obj/can.o
.debug_pubtypes
0x00000c82 0x140 THUMB Debug/../../obj/flash.o
0x00000c65 0xff THUMB Debug/../../obj/cpu.o
.debug_pubtypes
0x00000dc2 0xfd THUMB Debug/../../obj/nvm.o
0x00000d64 0x140 THUMB Debug/../../obj/flash.o
.debug_pubtypes
0x00000ebf 0xe6 THUMB Debug/../../obj/timer.o
0x00000ea4 0xfd THUMB Debug/../../obj/nvm.o
.debug_pubtypes
0x00000fa5 0x10d THUMB Debug/../../obj/uart.o
0x00000fa1 0xe6 THUMB Debug/../../obj/timer.o
.debug_pubtypes
0x000010b2 0xc6 THUMB Debug/../../obj/cpu_comp.o
0x00001087 0x10d THUMB Debug/../../obj/uart.o
.debug_pubtypes
0x00001178 0xe2 THUMB Debug/../../obj/vectors.o
0x00001194 0xc6 THUMB Debug/../../obj/cpu_comp.o
.debug_pubtypes
0x0000125a 0xe2 THUMB Debug/../../obj/assert.o
.debug_pubtypes
@ -3091,23 +3092,23 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_aranges
0x00000370 0x100 THUMB Debug/../../obj/stm32f10x_usart.o
.debug_aranges
0x00000470 0x30 THUMB Debug/../../obj/can.o
0x00000470 0x20 THUMB Debug/../../obj/cstart.o
.debug_aranges
0x000004a0 0x30 THUMB Debug/../../obj/cpu.o
0x00000490 0x20 THUMB Debug/../../obj/vectors.o
.debug_aranges
0x000004d0 0x80 THUMB Debug/../../obj/flash.o
0x000004b0 0x30 THUMB Debug/../../obj/can.o
.debug_aranges
0x00000550 0x50 THUMB Debug/../../obj/nvm.o
0x000004e0 0x30 THUMB Debug/../../obj/cpu.o
.debug_aranges
0x000005a0 0x38 THUMB Debug/../../obj/timer.o
0x00000510 0x80 THUMB Debug/../../obj/flash.o
.debug_aranges
0x000005d8 0x38 THUMB Debug/../../obj/uart.o
0x00000590 0x50 THUMB Debug/../../obj/nvm.o
.debug_aranges
0x00000610 0x28 THUMB Debug/../../obj/cpu_comp.o
0x000005e0 0x38 THUMB Debug/../../obj/timer.o
.debug_aranges
0x00000638 0x20 THUMB Debug/../../obj/cstart.o
0x00000618 0x38 THUMB Debug/../../obj/uart.o
.debug_aranges
0x00000658 0x20 THUMB Debug/../../obj/vectors.o
0x00000650 0x28 THUMB Debug/../../obj/cpu_comp.o
.debug_aranges
0x00000678 0x20 THUMB Debug/../../obj/assert.o
.debug_aranges
@ -3137,14 +3138,14 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_ranges 0x00000148 0x108 THUMB Debug/../../obj/stm32f10x_rcc.o
.debug_ranges 0x00000250 0xc0 THUMB Debug/../../obj/stm32f10x_spi.o
.debug_ranges 0x00000310 0xf0 THUMB Debug/../../obj/stm32f10x_usart.o
.debug_ranges 0x00000400 0x20 THUMB Debug/../../obj/can.o
.debug_ranges 0x00000420 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x00000440 0x88 THUMB Debug/../../obj/flash.o
.debug_ranges 0x000004c8 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x00000508 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000530 0x40 THUMB Debug/../../obj/uart.o
.debug_ranges 0x00000570 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000588 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x00000400 0x10 THUMB Debug/../../obj/vectors.o
.debug_ranges 0x00000410 0x20 THUMB Debug/../../obj/can.o
.debug_ranges 0x00000430 0x20 THUMB Debug/../../obj/cpu.o
.debug_ranges 0x00000450 0x88 THUMB Debug/../../obj/flash.o
.debug_ranges 0x000004d8 0x40 THUMB Debug/../../obj/nvm.o
.debug_ranges 0x00000518 0x28 THUMB Debug/../../obj/timer.o
.debug_ranges 0x00000540 0x40 THUMB Debug/../../obj/uart.o
.debug_ranges 0x00000580 0x18 THUMB Debug/../../obj/cpu_comp.o
.debug_ranges 0x00000598 0x10 THUMB Debug/../../obj/assert.o
.debug_ranges 0x000005a8 0x18 THUMB Debug/../../obj/backdoor.o
.debug_ranges 0x000005c0 0x18 THUMB Debug/../../obj/boot.o
@ -3156,7 +3157,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_ranges 0x00000928 0x18 THUMB Debug/../../obj/unicode.o
.debug_ranges 0x00000940 0xf90 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_line 0x00000000 0x50bb
.debug_line 0x00000000 0x5060
.debug_line 0x00000000 0x2e6 THUMB Debug/../../obj/hooks.o
.debug_line 0x000002e6 0x232 THUMB Debug/../../obj/main.o
.debug_line 0x00000518 0x556 THUMB Debug/../../obj/mmc.o
@ -3164,27 +3165,27 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.debug_line 0x00000e1e 0x498 THUMB Debug/../../obj/stm32f10x_rcc.o
.debug_line 0x000012b6 0x3fc THUMB Debug/../../obj/stm32f10x_spi.o
.debug_line 0x000016b2 0x478 THUMB Debug/../../obj/stm32f10x_usart.o
.debug_line 0x00001b2a 0x17e THUMB Debug/../../obj/can.o
.debug_line 0x00001ca8 0x157 THUMB Debug/../../obj/cpu.o
.debug_line 0x00001dff 0x2e0 THUMB Debug/../../obj/flash.o
.debug_line 0x000020df 0x197 THUMB Debug/../../obj/nvm.o
.debug_line 0x00002276 0x120 THUMB Debug/../../obj/timer.o
.debug_line 0x00002396 0x1b6 THUMB Debug/../../obj/uart.o
.debug_line 0x0000254c 0xd1 THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x0000261d 0x137 THUMB Debug/../../obj/cstart.o
.debug_line 0x00002754 0x110 THUMB Debug/../../obj/vectors.o
.debug_line 0x00002864 0x108 THUMB Debug/../../obj/assert.o
.debug_line 0x0000296c 0x142 THUMB Debug/../../obj/backdoor.o
.debug_line 0x00002aae 0x12c THUMB Debug/../../obj/boot.o
.debug_line 0x00002bda 0x1a1 THUMB Debug/../../obj/com.o
.debug_line 0x00002d7b 0xb0 THUMB Debug/../../obj/cop.o
.debug_line 0x00002e2b 0x21c THUMB Debug/../../obj/xcp.o
.debug_line 0x00003047 0x3fb THUMB Debug/../../obj/file.o
.debug_line 0x00003442 0x103c THUMB Debug/../../obj/ff.o
.debug_line 0x0000447e 0x117 THUMB Debug/../../obj/unicode.o
.debug_line 0x00004595 0xb26 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_line 0x00001b2a 0x10d THUMB Debug/../../obj/cstart.o
.debug_line 0x00001c37 0xe6 THUMB Debug/../../obj/vectors.o
.debug_line 0x00001d1d 0x17e THUMB Debug/../../obj/can.o
.debug_line 0x00001e9b 0x157 THUMB Debug/../../obj/cpu.o
.debug_line 0x00001ff2 0x2e0 THUMB Debug/../../obj/flash.o
.debug_line 0x000022d2 0x197 THUMB Debug/../../obj/nvm.o
.debug_line 0x00002469 0x120 THUMB Debug/../../obj/timer.o
.debug_line 0x00002589 0x1b6 THUMB Debug/../../obj/uart.o
.debug_line 0x0000273f 0xca THUMB Debug/../../obj/cpu_comp.o
.debug_line 0x00002809 0x108 THUMB Debug/../../obj/assert.o
.debug_line 0x00002911 0x142 THUMB Debug/../../obj/backdoor.o
.debug_line 0x00002a53 0x12c THUMB Debug/../../obj/boot.o
.debug_line 0x00002b7f 0x1a1 THUMB Debug/../../obj/com.o
.debug_line 0x00002d20 0xb0 THUMB Debug/../../obj/cop.o
.debug_line 0x00002dd0 0x21c THUMB Debug/../../obj/xcp.o
.debug_line 0x00002fec 0x3fb THUMB Debug/../../obj/file.o
.debug_line 0x000033e7 0x103c THUMB Debug/../../obj/ff.o
.debug_line 0x00004423 0x117 THUMB Debug/../../obj/unicode.o
.debug_line 0x0000453a 0xb26 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_str 0x00000000 0x4e7e
.debug_str 0x00000000 0x4e4d
.debug_str 0x00000000 0x633 THUMB Debug/../../obj/hooks.o
0x6a6 (size before relaxing)
.debug_str 0x00000633 0x14c THUMB Debug/../../obj/main.o
@ -3199,41 +3200,41 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
0x747 (size before relaxing)
.debug_str 0x0000152e 0x440 THUMB Debug/../../obj/stm32f10x_usart.o
0x7da (size before relaxing)
.debug_str 0x0000196e 0x1b4 THUMB Debug/../../obj/can.o
.debug_str 0x0000196e 0x95 THUMB Debug/../../obj/vectors.o
0x2a7 (size before relaxing)
.debug_str 0x00001a03 0x1b4 THUMB Debug/../../obj/can.o
0x426 (size before relaxing)
.debug_str 0x00001b22 0x127 THUMB Debug/../../obj/cpu.o
.debug_str 0x00001bb7 0x127 THUMB Debug/../../obj/cpu.o
0x34b (size before relaxing)
.debug_str 0x00001c49 0x29d THUMB Debug/../../obj/flash.o
.debug_str 0x00001cde 0x29d THUMB Debug/../../obj/flash.o
0x529 (size before relaxing)
.debug_str 0x00001ee6 0xad THUMB Debug/../../obj/nvm.o
.debug_str 0x00001f7b 0xad THUMB Debug/../../obj/nvm.o
0x37c (size before relaxing)
.debug_str 0x00001f93 0xc4 THUMB Debug/../../obj/timer.o
.debug_str 0x00002028 0xc4 THUMB Debug/../../obj/timer.o
0x2dc (size before relaxing)
.debug_str 0x00002057 0x12a THUMB Debug/../../obj/uart.o
.debug_str 0x000020ec 0x12a THUMB Debug/../../obj/uart.o
0x3d0 (size before relaxing)
.debug_str 0x00002181 0x91 THUMB Debug/../../obj/cpu_comp.o
.debug_str 0x00002216 0x8a THUMB Debug/../../obj/cpu_comp.o
0x29e (size before relaxing)
.debug_str 0x000022a0 0x75 THUMB Debug/../../obj/assert.o
0x2a5 (size before relaxing)
.debug_str 0x00002212 0xbf THUMB Debug/../../obj/vectors.o
0x2d1 (size before relaxing)
.debug_str 0x000022d1 0x75 THUMB Debug/../../obj/assert.o
0x2a5 (size before relaxing)
.debug_str 0x00002346 0xea THUMB Debug/../../obj/backdoor.o
.debug_str 0x00002315 0xea THUMB Debug/../../obj/backdoor.o
0x314 (size before relaxing)
.debug_str 0x00002430 0x9d THUMB Debug/../../obj/boot.o
.debug_str 0x000023ff 0x9d THUMB Debug/../../obj/boot.o
0x2f4 (size before relaxing)
.debug_str 0x000024cd 0x15b THUMB Debug/../../obj/com.o
.debug_str 0x0000249c 0x15b THUMB Debug/../../obj/com.o
0x40e (size before relaxing)
.debug_str 0x00002628 0x72 THUMB Debug/../../obj/cop.o
.debug_str 0x000025f7 0x72 THUMB Debug/../../obj/cop.o
0x27e (size before relaxing)
.debug_str 0x0000269a 0x21f THUMB Debug/../../obj/xcp.o
.debug_str 0x00002669 0x21f THUMB Debug/../../obj/xcp.o
0x53a (size before relaxing)
.debug_str 0x000028b9 0x325 THUMB Debug/../../obj/file.o
.debug_str 0x00002888 0x325 THUMB Debug/../../obj/file.o
0x8e6 (size before relaxing)
.debug_str 0x00002bde 0x364 THUMB Debug/../../obj/ff.o
.debug_str 0x00002bad 0x364 THUMB Debug/../../obj/ff.o
0x86d (size before relaxing)
.debug_str 0x00002f42 0x9d THUMB Debug/../../obj/unicode.o
.debug_str 0x00002f11 0x9d THUMB Debug/../../obj/unicode.o
0x253 (size before relaxing)
.debug_str 0x00002fdf 0x1e9f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
.debug_str 0x00002fae 0x1e9f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 3.7/lib/libc_v7m_t_le_eabi.a(libc2.o)
0x203c (size before relaxing)
.comment 0x00000000 0x4c
@ -3245,6 +3246,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.comment 0x0000004c 0x4d THUMB Debug/../../obj/stm32f10x_rcc.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/stm32f10x_spi.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/stm32f10x_usart.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/vectors.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/can.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/flash.o
@ -3252,7 +3254,6 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.comment 0x0000004c 0x4d THUMB Debug/../../obj/timer.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/uart.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/cpu_comp.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/vectors.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/assert.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/backdoor.o
.comment 0x0000004c 0x4d THUMB Debug/../../obj/boot.o
@ -3281,23 +3282,23 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32F1_Olimex_STM32P103_Cros
.ARM.attributes
0x00000132 0x33 THUMB Debug/../../obj/stm32f10x_usart.o
.ARM.attributes
0x00000165 0x33 THUMB Debug/../../obj/can.o
0x00000165 0x21 THUMB Debug/../../obj/cstart.o
.ARM.attributes
0x00000198 0x33 THUMB Debug/../../obj/cpu.o
0x00000186 0x33 THUMB Debug/../../obj/vectors.o
.ARM.attributes
0x000001cb 0x33 THUMB Debug/../../obj/flash.o
0x000001b9 0x33 THUMB Debug/../../obj/can.o
.ARM.attributes
0x000001fe 0x33 THUMB Debug/../../obj/nvm.o
0x000001ec 0x33 THUMB Debug/../../obj/cpu.o
.ARM.attributes
0x00000231 0x33 THUMB Debug/../../obj/timer.o
0x0000021f 0x33 THUMB Debug/../../obj/flash.o
.ARM.attributes
0x00000264 0x33 THUMB Debug/../../obj/uart.o
0x00000252 0x33 THUMB Debug/../../obj/nvm.o
.ARM.attributes
0x00000297 0x33 THUMB Debug/../../obj/cpu_comp.o
0x00000285 0x33 THUMB Debug/../../obj/timer.o
.ARM.attributes
0x000002ca 0x21 THUMB Debug/../../obj/cstart.o
0x000002b8 0x33 THUMB Debug/../../obj/uart.o
.ARM.attributes
0x000002eb 0x33 THUMB Debug/../../obj/vectors.o
0x000002eb 0x33 THUMB Debug/../../obj/cpu_comp.o
.ARM.attributes
0x0000031e 0x33 THUMB Debug/../../obj/assert.o
.ARM.attributes

View File

@ -0,0 +1,271 @@
/*****************************************************************************
* Copyright (c) 2009 Rowley Associates Limited. *
* *
* This file may be distributed under the terms of the License Agreement *
* provided with this software. *
* *
* THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE *
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *
*****************************************************************************/
/*****************************************************************************
* Preprocessor Definitions
* ------------------------
* APP_ENTRY_POINT
*
* Defines the application entry point function, if undefined this setting
* defaults to "main".
*
* USE_PROCESS_STACK
*
* If defined, thread mode will be configured to use the process stack if
* the size of the process stack is greater than zero bytes in length.
*
* INITIALIZE_STACK
*
* If defined, the contents of the stack will be initialized to a the
* value 0xCC.
*
* INITIALIZE_SECONDARY_SECTIONS
*
* If defined, the .data2, .text2, .rodata2 and .bss2 sections will be initialized.
*
* FULL_LIBRARY
*
* If defined then
* - argc, argv are setup by the debug_getargs.
* - the exit symbol is defined and executes on return from main.
* - the exit symbol calls destructors, atexit functions and then debug_exit.
*
* If not defined then
* - argc and argv are zero.
* - the exit symbol is defined, executes on return from main and loops
*****************************************************************************/
#ifndef APP_ENTRY_POINT
#define APP_ENTRY_POINT main
#endif
#ifndef ARGSSPACE
#define ARGSSPACE 128
#endif
.extern APP_ENTRY_POINT
.global exit
.global reset_handler
.section .init, "ax"
.code 16
.align 2
.thumb_func
/****************************************************************************************
** NAME: reset_handler
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Reset interrupt service routine. Configures the stack, initializes
** RAM and jumps to function main.
**
****************************************************************************************/
reset_handler:
ldr r1, =__stack_end__
#ifdef __ARM_EABI__
mov r2, #0x7
bic r1, r2
#endif
mov sp, r1
#ifdef INITIALIZE_STACK
mov r2, #0xCC
ldr r0, =__stack_start__
bl memory_set
#endif
#ifdef USE_PROCESS_STACK
/* Set up process stack if size > 0 */
ldr r1, =__stack_process_end__
ldr r0, =__stack_process_start__
sub r2, r1, r0
beq 1f
#ifdef __ARM_EABI__
mov r2, #0x7
bic r1, r2
#endif
msr psp, r1
mov r2, #2
msr control, r2
#ifdef INITIALIZE_STACK
mov r2, #0xCC
bl memory_set
#endif
1:
#endif
/* Copy initialised memory sections into RAM (if necessary). */
ldr r0, =__data_load_start__
ldr r1, =__data_start__
ldr r2, =__data_end__
bl memory_copy
ldr r0, =__text_load_start__
ldr r1, =__text_start__
ldr r2, =__text_end__
bl memory_copy
ldr r0, =__fast_load_start__
ldr r1, =__fast_start__
ldr r2, =__fast_end__
bl memory_copy
ldr r0, =__ctors_load_start__
ldr r1, =__ctors_start__
ldr r2, =__ctors_end__
bl memory_copy
ldr r0, =__dtors_load_start__
ldr r1, =__dtors_start__
ldr r2, =__dtors_end__
bl memory_copy
ldr r0, =__rodata_load_start__
ldr r1, =__rodata_start__
ldr r2, =__rodata_end__
bl memory_copy
#ifdef INITIALIZE_SECONDARY_SECTIONS
ldr r0, =__data2_load_start__
ldr r1, =__data2_start__
ldr r2, =__data2_end__
bl memory_copy
ldr r0, =__text2_load_start__
ldr r1, =__text2_start__
ldr r2, =__text2_end__
bl memory_copy
ldr r0, =__rodata2_load_start__
ldr r1, =__rodata2_start__
ldr r2, =__rodata2_end__
bl memory_copy
#endif /* #ifdef INITIALIZE_SECONDARY_SECTIONS */
/* Zero the bss. */
ldr r0, =__bss_start__
ldr r1, =__bss_end__
mov r2, #0
bl memory_set
#ifdef INITIALIZE_SECONDARY_SECTIONS
ldr r0, =__bss2_start__
ldr r1, =__bss2_end__
mov r2, #0
bl memory_set
#endif /* #ifdef INITIALIZE_SECONDARY_SECTIONS */
/* Initialise the heap */
ldr r0, = __heap_start__
ldr r1, = __heap_end__
sub r1, r1, r0
cmp r1, #8
blt 1f
mov r2, #0
str r2, [r0]
add r0, r0, #4
str r1, [r0]
1:
/* Call constructors */
ldr r0, =__ctors_start__
ldr r1, =__ctors_end__
ctor_loop2:
cmp r0, r1
beq ctor_end2
ldr r2, [r0]
add r0, #4
push {r0-r1}
blx r2
pop {r0-r1}
b ctor_loop2
ctor_end2:
/* Setup initial call frame */
mov r0, #0
mov lr, r0
mov r12, sp
start2:
/* Jump to application entry point */
#ifdef FULL_LIBRARY
mov r0, #ARGSSPACE
ldr r1, =args
ldr r2, =debug_getargs
blx r2
ldr r1, =args
#else
mov r0, #0
mov r1, #0
#endif
ldr r2, =APP_ENTRY_POINT
blx r2
.thumb_func
exit:
#ifdef FULL_LIBRARY
mov r5, r0 // save the exit parameter/return result
/* Call destructors */
ldr r0, =__dtors_start__
ldr r1, =__dtors_end__
dtor_loop:
cmp r0, r1
beq dtor_end
ldr r2, [r0]
add r0, #4
push {r0-r1}
blx r2
pop {r0-r1}
b dtor_loop
dtor_end:
/* Call atexit functions */
ldr r2, =_execute_at_exit_fns
blx r2
/* Call debug_exit with return result/exit parameter */
mov r0, r5
ldr r2, =debug_exit
blx r2
#endif
/* Returned from application entry point, loop forever. */
exit_loop:
b exit_loop
.thumb_func
memory_copy:
cmp r0, r1
beq 2f
sub r2, r2, r1
beq 2f
1:
ldrb r3, [r0]
add r0, r0, #1
strb r3, [r1]
add r1, r1, #1
sub r2, r2, #1
bne 1b
2:
bx lr
.thumb_func
memory_set:
cmp r0, r1
beq 1f
strb r2, [r0]
add r0, r0, #1
b memory_set
1:
bx lr
#ifdef FULL_LIBRARY
.bss
args:
.space ARGSSPACE
#endif
/* Setup attibutes of stack and heap sections so they don't take up room in the elf file */
.section .stack, "wa", %nobits
.section .stack_process, "wa", %nobits
.section .heap, "wa", %nobits

View File

@ -80,11 +80,12 @@
</folder>
</folder>
<file file_name="../blt_conf.h" />
<file file_name="../cstart.s" />
<file file_name="../vectors.c" />
</folder>
</folder>
<folder Name="Source">
<folder Name="ARMCM3_STM32F1">
<folder Name="Crossworks" />
<file file_name="../../../../Source/ARMCM3_STM32F1/can.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/cpu.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/flash.c" />
@ -94,9 +95,9 @@
<file file_name="../../../../Source/ARMCM3_STM32F1/types.h" />
<file file_name="../../../../Source/ARMCM3_STM32F1/uart.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/usb.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/cpu_comp.c" />
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/cstart.s" />
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/vectors.c" />
<folder Name="GCC">
<file file_name="../../../../Source/ARMCM3_STM32F1/GCC/cpu_comp.c" />
</folder>
</folder>
<file file_name="../../../../Source/assert.c" />
<file file_name="../../../../Source/assert.h" />
@ -133,7 +134,7 @@
<file file_name="$(TargetsDir)/STM32/STM32_Target.js">
<configuration Name="Common" file_type="Reset Script" />
</file>
<file file_name="../../../../Source/ARMCM3_STM32F1/Crossworks/memory.x">
<file file_name="../memory.x">
<configuration Name="Common" file_type="Linker Script" />
</file>
</folder>

View File

@ -1,9 +1,7 @@
<!DOCTYPE CrossStudio_Session_File>
<session>
<Bookmarks/>
<Breakpoints>
<Exceptions set="MemManage;UsageFault_Coprocessor;UsageFault_CheckingError;UsageFault_StateError;BusFault;ExceptionEntryReturnFault;HardFault" />
</Breakpoints>
<Breakpoints/>
<ExecutionProfileWindow/>
<FrameBufferWindow>
<FrameBufferWindow addressText="" bufferWidth="-1" bufferHeight="-1" addressSpace="" />
@ -30,8 +28,10 @@
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Demo" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Demo;Boot" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Demo;Boot;lib" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Demo;Boot;lib;cmsis" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Source" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Source;ARMCM3_STM32F1" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;Source Files;Source;ARMCM3_STM32F1;GCC" name="unnamed" />
<ProjectSessionItem path="stm32f103_crossworks;openblt_olimex_stm32p103;System Files" name="unnamed" />
</Project>
<Register1>
<RegisterWindow openNodes="CPU" binaryNodes="" unsignedNodes="" decimalNodes="" octalNodes="" asciiNodes="" visibleNodes="" name="openbtl_olimex_stm32p103" />
@ -70,7 +70,8 @@
<Watches active="0" update="Never" />
</Watch4>
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="51" path="../main.c" left="0" selected="1" name="unnamed" top="31" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="51" path="../main.c" left="0" selected="0" name="unnamed" top="31" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Default" x="0" debugPath="../../../../Source/com.c" y="112" path="../../../../Source/com.c" left="0" selected="1" name="unnamed" top="88" />
</Files>
<ARMCrossStudioWindow activeProject="openblt_olimex_stm32p103" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_STM32F1/Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="3711" debugSearchPath="" buildConfiguration="THUMB Debug" />
<ARMCrossStudioWindow activeProject="openblt_olimex_stm32p103" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="C:/Work/software/OpenBLT/Target/Source/ARMCM3_STM32F1/GCC" fileDialogDefaultFilter="" autoConnectCapabilities="3711" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session>

View File

@ -0,0 +1,163 @@
/************************************************************************************//**
* \file Source\ARMCM3_STM32F1\Crossworks\vectors.c
* \brief Bootloader interrupt vector table source file.
* \ingroup Target_ARMCM3_STM32F1
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "boot.h" /* bootloader generic header */
/****************************************************************************************
* External functions
****************************************************************************************/
extern void reset_handler(void); /* implemented in cstart.s */
/****************************************************************************************
* External data declarations
****************************************************************************************/
/** \brief Stack end address (memory.x) */
extern blt_int32u __stack_end__;
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
{
/* unexpected interrupt occured, so trigger an assertion to halt the system */
ASSERT_RT(BLT_FALSE);
} /*** end of UnusedISR ***/
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /**< for ISR function pointers */
blt_int32u ptr; /**< for stack pointer entry */
} tIsrFunc;
/** \brief Interrupt vector table. */
__attribute__((section(".vectors")))
const tIsrFunc _vectors[] =
{
{ .ptr = (blt_int32u) &__stack_end__ }, /* the initial stack pointer */
reset_handler, /* the reset handler */
UnusedISR, /* NMI Handler */
UnusedISR, /* Hard Fault Handler */
UnusedISR, /* MPU Fault Handler */
UnusedISR, /* Bus Fault Handler */
UnusedISR, /* Usage Fault Handler */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* SVCall Handler */
UnusedISR, /* Debug Monitor Handler */
UnusedISR, /* Reserved */
UnusedISR, /* PendSV Handler */
UnusedISR, /* SysTick Handler */
UnusedISR, /* Window Watchdog */
UnusedISR, /* PVD through EXTI Line detect */
UnusedISR, /* Tamper */
UnusedISR, /* RTC */
UnusedISR, /* Flash */
UnusedISR, /* RCC */
UnusedISR, /* EXTI Line 0 */
UnusedISR, /* EXTI Line 1 */
UnusedISR, /* EXTI Line 2 */
UnusedISR, /* EXTI Line 3 */
UnusedISR, /* EXTI Line 4 */
UnusedISR, /* DMA1 Channel 1 */
UnusedISR, /* DMA1 Channel 2 */
UnusedISR, /* DMA1 Channel 3 */
UnusedISR, /* DMA1 Channel 4 */
UnusedISR, /* DMA1 Channel 5 */
UnusedISR, /* DMA1 Channel 6 */
UnusedISR, /* DMA1 Channel 7 */
UnusedISR, /* ADC1 and ADC2 */
UnusedISR, /* CAN1 TX */
UnusedISR, /* CAN1 RX0 */
UnusedISR, /* CAN1 RX1 */
UnusedISR, /* CAN1 SCE */
UnusedISR, /* EXTI Line 9..5 */
UnusedISR, /* TIM1 Break */
UnusedISR, /* TIM1 Update */
UnusedISR, /* TIM1 Trigger and Commutation */
UnusedISR, /* TIM1 Capture Compare */
UnusedISR, /* TIM2 */
UnusedISR, /* TIM3 */
UnusedISR, /* TIM4 */
UnusedISR, /* I2C1 Event */
UnusedISR, /* I2C1 Error */
UnusedISR, /* I2C2 Event */
UnusedISR, /* I2C1 Error */
UnusedISR, /* SPI1 */
UnusedISR, /* SPI2 */
UnusedISR, /* USART1 */
UnusedISR, /* USART2 */
UnusedISR, /* USART3 */
UnusedISR, /* EXTI Line 15..10 */
UnusedISR, /* RTC alarm through EXTI line */
UnusedISR, /* USB OTG FS Wakeup */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* Reserved */
UnusedISR, /* TIM5 */
UnusedISR, /* SPI3 */
UnusedISR, /* UART4 */
UnusedISR, /* UART5 */
UnusedISR, /* TIM6 */
UnusedISR, /* TIM7 */
UnusedISR, /* DMA2 Channel1 */
UnusedISR, /* DMA2 Channel2 */
UnusedISR, /* DMA2 Channel3 */
UnusedISR, /* DMA2 Channel4 */
UnusedISR, /* DMA2 Channel5 */
UnusedISR, /* Ethernet */
UnusedISR, /* Ethernet Wakeup */
UnusedISR, /* CAN2 TX */
UnusedISR, /* CAN2 RX0 */
UnusedISR, /* CAN2 RX1 */
UnusedISR, /* CAN2 SCE */
UnusedISR /* USB OTG FS */
};
/************************************ end of vectors.c *********************************/

View File

@ -54,7 +54,7 @@
<Watches active="0" update="Never" />
</Watch4>
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="0" path="../main.c" left="0" selected="0" name="unnamed" top="0" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="../main.c" y="0" path="../main.c" left="0" selected="1" name="unnamed" top="0" />
</Files>
<ARMCrossStudioWindow activeProject="demoprog_olimex_stm32p103" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:/usr/feaser/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" />
</session>

View File

@ -7,262 +7,399 @@ start address 0x08000000
Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
filesz 0x00005248 memsz 0x00005248 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005248 align 2**15
filesz 0x00000008 memsz 0x00001158 flags rw-
filesz 0x00005210 memsz 0x00005210 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005210 align 2**15
filesz 0x00000010 memsz 0x00000f7c flags rw-
private flags = 5000202: [Version5 EABI] [soft-float ABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00005248 08000000 08000000 00008000 2**2
0 .text 00005210 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000008 20000000 08005248 00010000 2**2
1 .data 00000010 20000000 08005210 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00001150 20000008 08005250 00010008 2**2
2 .bss 00000f6c 20000010 08005220 00010010 2**2
ALLOC
3 .debug_info 0000c02f 00000000 00000000 00010008 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 00002514 00000000 00000000 0001c037 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_loc 00009b46 00000000 00000000 0001e54b 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000009c0 00000000 00000000 00028091 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000938 00000000 00000000 00028a51 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 000037dd 00000000 00000000 00029389 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000026e1 00000000 00000000 0002cb66 2**0
CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 0002f247 2**0
3 .heap 00000800 20000f80 20000f80 00010010 2**3
CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 0002f277 2**0
4 .stack_dummy 00000800 20000f80 20000f80 00010810 2**3
CONTENTS, READONLY
12 .debug_frame 000018bc 00000000 00000000 0002f2ac 2**2
5 .ARM.attributes 00000027 00000000 00000000 00011010 2**0
CONTENTS, READONLY
6 .comment 00000030 00000000 00000000 00011037 2**0
CONTENTS, READONLY
7 .debug_line 00005746 00000000 00000000 00011067 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_info 0000b80d 00000000 00000000 000167ad 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_abbrev 00002103 00000000 00000000 00021fba 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_aranges 00000af8 00000000 00000000 000240c0 2**3
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 00007b66 00000000 00000000 00024bb8 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000980 00000000 00000000 0002c71e 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_macro 0000cff9 00000000 00000000 0002d09e 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_str 000401c1 00000000 00000000 0003a097 2**0
CONTENTS, READONLY, DEBUGGING
15 .debug_frame 00001a74 00000000 00000000 0007a258 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
20000000 l d .data 00000000 .data
20000008 l d .bss 00000000 .bss
20000010 l d .bss 00000000 .bss
20000f80 l d .heap 00000000 .heap
20000f80 l d .stack_dummy 00000000 .stack_dummy
00000000 l d .ARM.attributes 00000000 .ARM.attributes
00000000 l d .comment 00000000 .comment
00000000 l d .debug_line 00000000 .debug_line
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_loc 00000000 .debug_loc
00000000 l d .debug_ranges 00000000 .debug_ranges
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .debug_macro 00000000 .debug_macro
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 obj/startup_stm32f10x_md.o
00000800 l *ABS* 00000000 Stack_Size
00000800 l *ABS* 00000000 Heap_Size
080001be l .text 00000000 .flash_to_ram_loop
080001f0 l .text 00000000 .fill_zero_bss
080001ec l .text 00000000 .loop_zero_bss
00000000 l df *ABS* 00000000 crtstuff.c
0800520c l O .text 00000000 __EH_FRAME_BEGIN__
080000ec l F .text 00000000 deregister_tm_clones
08000114 l F .text 00000000 register_tm_clones
08000144 l F .text 00000000 __do_global_dtors_aux
20000010 l .bss 00000000 completed.7922
2000000c l O .data 00000000 __do_global_dtors_aux_fini_array_entry
08000174 l F .text 00000000 frame_dummy
20000014 l .bss 00000000 object.7927
20000008 l O .data 00000000 __frame_dummy_init_array_entry
00000000 l df *ABS* 00000000 hooks.c
080049ac l O .text 00000020 firmwareFilename
20000008 l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 mmc.c
08000458 l F .text 00000036 xchg_spi
08000490 l F .text 0000002a wait_ready
080004bc l F .text 0000001a deselect
080004d8 l F .text 0000002c select
08000504 l F .text 00000090 send_cmd
08000594 l F .text 0000005c xmit_datablock
080005f0 l F .text 0000005e rcvr_datablock
20000234 l O .bss 00000004 CardType
20000000 l O .data 00000001 Stat
080049a0 l O .text 00000020 firmwareFilename
2000002c l O .bss 0000022c logfile
00000000 l df *ABS* 00000000 stm32f10x_gpio.c
00000000 l df *ABS* 00000000 stm32f10x_rcc.c
00000000 l df *ABS* 00000000 stm32f10x_spi.c
00000000 l df *ABS* 00000000 stm32f10x_usart.c
00000000 l df *ABS* 00000000 ff.c
08000f20 l F .text 00000016 ld_dword
08000f38 l F .text 00000012 mem_cpy
08000f4c l F .text 00000016 clust2sect
08000f64 l F .text 0000001e sum_sfn
08000f84 l F .text 00000056 get_ldnumber
08000fdc l F .text 00000034 validate
08001010 l F .text 0000006c sync_window
0800107c l F .text 0000003c move_window
080010b8 l F .text 000000b8 sync_fs
08001170 l F .text 00000128 put_fat
08001298 l F .text 00000018 st_clust
080012b0 l F .text 000000f4 get_fileinfo
080013a4 l F .text 000000d6 get_fat
0800147c l F .text 000000b4 dir_sdi
08001530 l F .text 000000d8 create_chain
08001608 l F .text 00000096 remove_chain
080016a0 l F .text 00000126 dir_next
080017c8 l F .text 00000058 dir_remove
08001820 l F .text 000001c2 dir_find
080019e4 l F .text 000002fe dir_register
08001ce4 l F .text 00000070 check_fs
08001d54 l F .text 0000030a find_volume
08002060 l F .text 00000156 dir_read
080021b8 l F .text 0000001e ld_clust
080021d8 l F .text 00000352 follow_path
08002a58 l F .text 00000046 putc_bfd
20000238 l O .bss 00000200 LfnBuf
20000438 l O .bss 00000002 Fsid
080049f8 l O .text 00000080 ExCvt
08004a78 l O .text 0000000d LfnOfs
2000043c l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c
08004a88 l O .text 000000bc cvt2.4272
08004b44 l O .text 00000100 Tbl
08004c44 l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 mmc.c
08000568 l F .text 00000012 power_off
0800057c l F .text 00000062 set_max_speed
080005e0 l F .text 0000009e send_initial_clock_train
08000680 l F .text 000000d0 power_on
08000750 l F .text 00000036 xchg_spi
08000788 l F .text 0000002a wait_ready
080007b4 l F .text 0000001a deselect
080007d0 l F .text 0000002c select
080007fc l F .text 00000084 send_cmd
08000880 l F .text 0000000e rcvr_spi_m
08000890 l F .text 00000054 rcvr_datablock
080008e4 l F .text 0000005a xmit_datablock
20000258 l O .bss 00000004 CardType
20000000 l O .data 00000001 Stat
00000000 l df *ABS* 00000000 main.c
08000ec4 l F .text 000001b4 Init
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 backdoor.c
2000025c l O .bss 00000001 backdoorOpen
20000260 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 boot.c
00000000 l df *ABS* 00000000 com.c
20000440 l O .bss 00000040 xcpCtoReqPacket.4398
20000264 l O .bss 00000040 xcpCtoReqPacket.4398
20000001 l O .data 00000001 comActiveInterface
00000000 l df *ABS* 00000000 xcp.c
080030b8 l F .text 00000016 XcpSetCtoError
08004e38 l O .text 00000008 xcpStationId
20000480 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
200004cc l O .bss 00000001 backdoorOpen
200004d0 l O .bss 00000004 backdoorOpenTime
00000000 l df *ABS* 00000000 cop.c
00000000 l df *ABS* 00000000 file.c
08003510 l F .text 0000002e FileLibByteNibbleToChar
08003540 l F .text 00000020 FileLibByteToHexString
08003560 l F .text 00000046 FileLibLongToIntString
080035a8 l F .text 00000066 FileLibHexStringToByte
200004d4 l O .bss 00000040 loggingStr
20000514 l O .bss 00000001 firmwareUpdateState
20000518 l O .bss 00000008 eraseInfo
20000520 l O .bss 00000458 fatFsObjects
20000978 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 assert.c
00000000 l df *ABS* 00000000 cpu.c
0800123c l F .text 0000002e FileLibByteNibbleToChar
0800126c l F .text 00000020 FileLibByteToHexString
0800128c l F .text 00000046 FileLibLongToIntString
080012d4 l F .text 00000066 FileLibHexStringToByte
200002a4 l O .bss 00000040 loggingStr
200002e4 l O .bss 00000001 firmwareUpdateState
200002e8 l O .bss 00000008 eraseInfo
200002f0 l O .bss 00000458 fatFsObjects
20000748 l O .bss 00000184 lineParseObject
00000000 l df *ABS* 00000000 xcp.c
08001b00 l F .text 00000020 XcpComputeChecksum
08001b20 l F .text 0000000e XcpProtectResources
08001b30 l F .text 00000016 XcpSetCtoError
08001b48 l F .text 0000001e XcpCmdDisconnect
08001b68 l F .text 00000022 XcpCmdGetStatus
08001b8c l F .text 0000000a XcpCmdSynch
08001b98 l F .text 00000030 XcpCmdGetId
08001bc8 l F .text 00000018 XcpCmdSetMta
08001be0 l F .text 00000028 XcpCmdBuildCheckSum
08001c08 l F .text 0000000a XcpCmdProgramPrepare
08001c14 l F .text 00000028 XcpCmdProgramStart
08001c3c l F .text 00000052 XcpCmdConnect
08001c90 l F .text 00000040 XcpCmdUpload
08001cd0 l F .text 00000042 XcpCmdShortUpload
08001d14 l F .text 00000046 XcpCmdProgramMax
08001d5c l F .text 00000068 XcpCmdProgram
08001dc4 l F .text 00000030 XcpCmdProgramClear
08001df4 l F .text 0000001a XcpCmdProgramReset
08001e10 l F .text 0000000a XcpTransmitPacket
08004b9c l O .text 00000008 xcpStationId
200008cc l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 can.c
0800502c l O .text 00000024 canTiming
00000000 l df *ABS* 00000000 uart.c
080040f0 l F .text 0000004e UartTransmitByte
20000afc l O .bss 00000001 xcpCtoRxInProgress.4416
20000b00 l O .bss 00000004 xcpCtoRxStartTime.4417
20000b04 l O .bss 00000041 xcpCtoReqPacket.4414
20000b48 l O .bss 00000001 xcpCtoRxLength.4415
08001f54 l F .text 00000060 CanGetSpeedConfig
08004bcc l O .text 00000024 canTiming
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 flash.c
08002268 l F .text 00000022 FlashUnlock
0800228c l F .text 00000012 FlashLock
080022a0 l F .text 00000050 FlashGetSector
080022f0 l F .text 000000b6 FlashWriteBlock
080023a8 l F .text 00000042 FlashGetSectorBaseAddr
080023ec l F .text 00000042 FlashGetSectorSize
08002430 l F .text 000000b0 FlashEraseSectors
080024e0 l F .text 00000026 FlashInitBlock
08002508 l F .text 0000004e FlashSwitchBlock
08002558 l F .text 00000082 FlashAddToBlock
08004bf0 l O .text 0000009c flashLayout
20000918 l O .bss 00000204 bootBlockInfo
20000b1c l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
20000b4c l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
08004378 l F .text 00000012 FlashLock
0800438c l F .text 00000044 FlashGetSector
080043d0 l F .text 000000d0 FlashWriteBlock
080044a0 l F .text 00000062 FlashSwitchBlock
08004504 l F .text 00000084 FlashAddToBlock
08005078 l O .text 0000009c flashLayout
20000b50 l O .bss 00000204 bootBlockInfo
20000d54 l O .bss 00000204 blockInfo
20000d20 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 uart.c
0800283c l F .text 00000026 UartReceiveByte
08002864 l F .text 00000040 UartTransmitByte
20000d24 l O .bss 00000001 xcpCtoRxInProgress.4416
20000d28 l O .bss 00000004 xcpCtoRxStartTime.4417
20000d2c l O .bss 00000041 xcpCtoReqPacket.4414
20000d70 l O .bss 00000001 xcpCtoRxLength.4415
00000000 l df *ABS* 00000000 cpu_comp.c
00000000 l df *ABS* 00000000 cstart.c
080048ec l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 ff.c
08002a14 l F .text 0000000a ld_word
08002a20 l F .text 00000016 ld_dword
08002a38 l F .text 00000008 st_word
08002a40 l F .text 00000014 st_dword
08002a54 l F .text 00000012 mem_cpy
08002a68 l F .text 0000000c mem_set
08002a74 l F .text 0000001e mem_cmp
08002a94 l F .text 00000010 chk_chr
08002aa4 l F .text 00000016 clust2sect
08002abc l F .text 00000024 ld_clust
08002ae0 l F .text 00000024 st_clust
08002b04 l F .text 0000008e pick_lfn
08002b94 l F .text 00000074 put_lfn
08002c08 l F .text 000000a6 gen_numname
08002cb0 l F .text 0000001c sum_sfn
08002ccc l F .text 0000004e get_ldnumber
08002d1c l F .text 00000034 validate
08002d50 l F .text 00000062 sync_window
08002db4 l F .text 0000003c move_window
08002df0 l F .text 00000066 check_fs
08002e58 l F .text 000002d4 find_volume
0800312c l F .text 000000ce get_fat
080031fc l F .text 000000b0 dir_sdi
080032ac l F .text 0000010c put_fat
080033b8 l F .text 000000ce create_chain
08003488 l F .text 00000094 remove_chain
0800351c l F .text 00000122 dir_next
08003640 l F .text 00000056 dir_alloc
08003698 l F .text 000000c8 dir_read
08003760 l F .text 0000005e dir_remove
080037c0 l F .text 0000022c create_name
080039ec l F .text 000000ea get_fileinfo
08003ad8 l F .text 000000a4 cmp_lfn
08003b7c l F .text 000000e6 dir_find
08003c64 l F .text 00000090 follow_path
08003cf4 l F .text 00000140 dir_register
08003e34 l F .text 00000090 sync_fs
080043d0 l F .text 00000048 putc_bfd
20000d74 l O .bss 00000200 LfnBuf
20000f74 l O .bss 00000002 Fsid
08004cc8 l O .text 00000080 ExCvt
08004d48 l O .text 0000000d LfnOfs
20000f78 l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c
08004d58 l O .text 000000bc cvt2.4272
08004e14 l O .text 00000100 Tbl
08004f14 l O .text 000001f2 cvt1.4271
00000000 l df *ABS* 00000000 memset.c
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crti.o
00000000 l df *ABS* 00000000 c:/users/frank voorburg/mentorgraphics/sourcery_codebench_lite_for_arm_eabi/bin/../lib/gcc/arm-none-eabi/4.8.1/thumb2/crtn.o
00000000 l df *ABS* 00000000 ctype_.c
00000000 l df *ABS* 00000000 crtstuff.c
0800520c l O .text 00000000 __FRAME_END__
00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__
08002fbc g F .text 00000020 ComInit
080045a4 g F .text 00000050 FlashWrite
08002dec g F .text 0000004e f_gets
08003df4 g F .text 00000008 AssertFailure
08004068 g F .text 00000088 CanReceivePacket
080048a8 g F .text 00000058 reset_handler
08004340 g F .text 00000022 TimerUpdate
08003100 g F .text 00000010 XcpPacketTransmitted
08000ed8 g F .text 00000004 SPI_I2S_SendData
08002fdc g F .text 00000054 ComTask
08002f84 g F .text 00000020 BootInit
080036dc g F .text 00000038 FileSrecVerifyChecksum
08000edc g F .text 00000006 SPI_I2S_ReceiveData
080034e4 g F .text 00000022 BackDoorInit
08000f14 g F .text 0000000c USART_GetFlagStatus
0800350c g F .text 00000002 CopService
08005248 g .text 00000000 _etext
080048a0 g F .text 00000004 CpuIrqDisable
08002edc g F .text 000000a6 ff_wtoupper
08004880 g F .text 0000000a FlashGetUserProgBaseAddress
08003894 g F .text 00000560 FileTask
08004330 g F .text 0000000e TimerReset
08000650 g F .text 00000330 disk_initialize
08002fa4 g F .text 00000018 BootTask
08004774 g F .text 00000058 FlashWriteChecksum
08000ee4 g F .text 0000001c SPI_CalculateCRC
08000e30 g F .text 00000024 RCC_APB2PeriphClockCmd
08003034 g F .text 00000034 ComTransmitPacket
08000d84 g F .text 000000a4 GPIO_Init
08000980 g F .text 00000014 disk_status
08003714 g F .text 0000017e FileSrecParseLine
08000af4 g F .text 0000028e disk_ioctl
08003658 g F .text 00000036 FileHandleFirmwareUpdateRequest
08000e54 g F .text 00000024 RCC_APB1PeriphClockCmd
08000f00 g F .text 0000000c SPI_I2S_GetFlagStatus
080001cc g F .text 00000054 FileFirmwareUpdateCompletedHook
080030ec g F .text 00000012 XcpIsConnected
08002d24 g F .text 000000c8 f_unlink
080042cc g F .text 00000008 NvmInit
08004588 g F .text 0000001a FlashInit
080042ec g F .text 00000008 NvmGetUserProgBaseAddress
20000f58 g .bss 00000000 _ebss
08002e3c g F .text 00000052 f_puts
0800488c g F .text 00000012 UnusedISR
08003030 g F .text 00000002 ComFree
08000e28 g F .text 00000004 GPIO_SetBits
08004140 g F .text 0000002a UartInit
080042dc g F .text 00000008 NvmErase
20000008 g .bss 00000000 _bss
08002b3c g F .text 00000024 f_close
08003110 g F .text 00000388 XcpPacketReceived
08003dfc g F .text 00000008 CpuInit
0800272c g F .text 0000017c f_read
08004834 g F .text 0000004c FlashDone
08000e2c g F .text 00000004 GPIO_ResetBits
08003fc0 g F .text 000000a8 CanTransmitPacket
080030d0 g F .text 0000001c XcpInit
08003610 g F .text 00000034 FileInit
080045f4 g F .text 0000017e FlashErase
0800490c g F .text 0000009e memset
08000220 g F .text 00000020 FileFirmwareUpdateErrorHook
080002a0 g F .text 000001b8 main
08002aa0 g F .text 0000009c f_sync
08003690 g F .text 0000004c FileSrecGetLineType
080042f4 g F .text 00000012 NvmDone
0800252c g F .text 0000007a f_mount
0800416c g F .text 00000066 UartTransmitPacket
080042e4 g F .text 00000008 NvmVerifyChecksum
08003e38 g F .text 0000001e CpuMemCopy
08000ebc g F .text 0000001c SPI_Cmd
08002b60 g F .text 00000170 f_lseek
0800308c g F .text 00000024 ComGetActiveInterfaceMaxTxLen
080041d4 g F .text 000000f8 UartReceivePacket
08000190 g F .text 0000000a FileGetFirmwareFilenameHook
080048a4 g F .text 00000004 CpuIrqEnable
20000000 g .data 00000000 _data
08002cd0 g F .text 00000054 f_stat
08003508 g F .text 00000002 CopInit
08003e58 g F .text 00000168 CanInit
080042d4 g F .text 00000008 NvmWrite
08003e04 g F .text 00000034 CpuStartUserProgram
20001158 g .bss 00000000 _estack
08000f0c g F .text 00000008 USART_SendData
080047cc g F .text 00000068 FlashVerifyChecksum
20000008 g .data 00000000 _edata
08003644 g F .text 00000014 FileIsIdle
080028a8 g F .text 000001b0 f_write
08000000 g O .text 00000150 _vectab
080025a8 g F .text 00000184 f_open
08000a30 g F .text 000000c2 disk_write
08000240 g F .text 00000060 FileFirmwareUpdateLogHook
00000800 l *ABS* 00000000 __HEAP_SIZE
08005210 l .text 00000000 __exidx_end
08005210 l .text 00000000 __exidx_start
00000800 l *ABS* 00000000 __STACK_SIZE
08001138 g F .text 00000020 ComInit
080025f8 g F .text 00000050 FlashWrite
0800021e w F .text 00000002 EXTI2_IRQHandler
20000f80 g .heap 00000800 __HeapBase
08004760 g F .text 00000054 f_gets
08001088 g F .text 00000008 AssertFailure
08000206 w F .text 00000002 DebugMon_Handler
08002184 g F .text 00000088 CanReceivePacket
08002804 g F .text 00000022 TimerUpdate
08001e4c g F .text 00000010 XcpPacketTransmitted
20000000 g .data 00000000 __data_start__
08000244 w F .text 00000002 TIM1_CC_IRQHandler
08000520 g F .text 00000004 SPI_I2S_SendData
08001158 g F .text 00000054 ComTask
080001fc w F .text 00000002 HardFault_Handler
0800020a w F .text 00000002 SysTick_Handler
08000210 w F .text 00000002 PVD_IRQHandler
08001100 g F .text 00000020 BootInit
08001408 g F .text 00000038 FileSrecVerifyChecksum
08000524 g F .text 00000006 SPI_I2S_ReceiveData
08000208 w F .text 00000002 PendSV_Handler
080001fa w F .text 00000002 NMI_Handler
08000220 w F .text 00000002 EXTI3_IRQHandler
080010dc g F .text 00000022 BackDoorInit
08005210 g .text 00000000 __etext
0800055c g F .text 0000000c USART_GetFlagStatus
08001238 g F .text 00000002 CopService
08002a0c g F .text 00000004 CpuIrqDisable
08004844 g F .text 000000a2 ff_wtoupper
08002780 g F .text 0000000a FlashGetUserProgBaseAddress
080015a4 g F .text 0000055c FileTask
20000010 g O .data 00000000 .hidden __TMC_END__
080027c8 g F .text 0000000e TimerReset
0800021a w F .text 00000002 EXTI0_IRQHandler
08000250 w F .text 00000002 I2C2_EV_IRQHandler
08000940 g F .text 00000182 disk_initialize
08001120 g F .text 00000018 BootTask
08002674 g F .text 00000058 FlashWriteChecksum
0800052c g F .text 0000001c SPI_CalculateCRC
08000202 w F .text 00000002 UsageFault_Handler
0800046c g F .text 00000024 RCC_APB2PeriphClockCmd
080011b0 g F .text 00000034 ComTransmitPacket
08000232 w F .text 00000002 ADC1_2_IRQHandler
080003b8 g F .text 000000aa GPIO_Init
08000ac4 g F .text 00000014 disk_status
20001780 g .heap 00000000 __HeapLimit
20000010 g .bss 00000000 __bss_start__
08001440 g F .text 00000164 FileSrecParseLine
08000254 w F .text 00000002 SPI1_IRQHandler
08000212 w F .text 00000002 TAMPER_IRQHandler
08000c34 g F .text 0000028e disk_ioctl
08001384 g F .text 00000036 FileHandleFirmwareUpdateRequest
08000490 g F .text 00000024 RCC_APB1PeriphClockCmd
08000548 g F .text 0000000c SPI_I2S_GetFlagStatus
0800022a w F .text 00000002 DMA1_Channel4_IRQHandler
080002e4 g F .text 00000054 FileFirmwareUpdateCompletedHook
08001e38 g F .text 00000012 XcpIsConnected
08004690 g F .text 000000ce f_unlink
08004988 g F .text 00000000 _init
0800278c g F .text 00000008 NvmInit
080025dc g F .text 0000001a FlashInit
080027ac g F .text 00000008 NvmGetUserProgBaseAddress
0800025c w F .text 00000002 USART3_IRQHandler
08000214 w F .text 00000002 RTC_IRQHandler
08000230 w F .text 00000002 DMA1_Channel7_IRQHandler
080001b4 g F .text 00000030 Reset_Handler
080047b4 g F .text 00000050 f_puts
08000238 w F .text 00000002 CAN1_RX1_IRQHandler
080011ac g F .text 00000002 ComFree
08000464 g F .text 00000004 GPIO_SetBits
0800024a w F .text 00000002 TIM4_IRQHandler
00000000 w *UND* 00000000 __deregister_frame_info
20000f80 g .heap 00000000 end
0800024c w F .text 00000002 I2C1_EV_IRQHandler
080028a4 g F .text 0000002a UartInit
20000010 g .data 00000000 __data_end__
00000000 w *UND* 00000000 _ITM_registerTMCloneTable
0800279c g F .text 00000008 NvmErase
0800022e w F .text 00000002 DMA1_Channel6_IRQHandler
20000f7c g .bss 00000000 __bss_end__
08000248 w F .text 00000002 TIM3_IRQHandler
08000218 w F .text 00000002 RCC_IRQHandler
08000242 w F .text 00000002 TIM1_TRG_COM_IRQHandler
08000224 w F .text 00000002 DMA1_Channel1_IRQHandler
080044b8 g F .text 00000024 f_close
0800020c w F .text 00000002 Default_Handler
080001e4 w F .text 00000016 _start
08001e5c g F .text 000000f6 XcpPacketReceived
0800220c g F .text 00000008 CpuInit
0800025e w F .text 00000002 EXTI15_10_IRQHandler
080040b0 g F .text 00000172 f_read
08002734 g F .text 0000004c FlashDone
08000468 g F .text 00000004 GPIO_ResetBits
080020e0 g F .text 000000a2 CanTransmitPacket
0800023c w F .text 00000002 EXTI9_5_IRQHandler
08001e1c g F .text 0000001c XcpInit
0800133c g F .text 00000034 FileInit
00000000 w *UND* 00000000 _ITM_deregisterTMCloneTable
08000256 w F .text 00000002 SPI2_IRQHandler
08002648 g F .text 0000002a FlashErase
080048e8 g F .text 0000009e memset
08000338 g F .text 00000020 FileFirmwareUpdateErrorHook
080001fe w F .text 00000002 MemManage_Handler
08000000 g .text 000000ec __isr_vector
08001078 g F .text 00000010 main
08004418 g F .text 0000009e f_sync
08000204 w F .text 00000002 SVC_Handler
080013bc g F .text 0000004c FileSrecGetLineType
080027b4 g F .text 00000012 NvmDone
08003ec4 g F .text 0000006a f_mount
080028d0 g F .text 00000064 UartTransmitPacket
080027a4 g F .text 00000008 NvmVerifyChecksum
08002248 g F .text 00000020 CpuMemCopy
20000f80 g .heap 00000000 __end__
0800022c w F .text 00000002 DMA1_Channel5_IRQHandler
08000222 w F .text 00000002 EXTI4_IRQHandler
08000236 w F .text 00000002 USB_LP_CAN1_RX0_IRQHandler
08000504 g F .text 0000001c SPI_Cmd
08004994 g F .text 00000000 _fini
080044dc g F .text 00000160 f_lseek
08000234 w F .text 00000002 USB_HP_CAN1_TX_IRQHandler
08001208 g F .text 00000024 ComGetActiveInterfaceMaxTxLen
08002934 g F .text 000000d8 UartReceivePacket
080002a8 g F .text 0000000a FileGetFirmwareFilenameHook
08002a10 g F .text 00000004 CpuIrqEnable
08000228 w F .text 00000002 DMA1_Channel3_IRQHandler
20005000 g *ABS* 00000000 __StackTop
08000240 w F .text 00000002 TIM1_UP_IRQHandler
0800020e w F .text 00000002 WWDG_IRQHandler
0800463c g F .text 00000054 f_stat
08001234 g F .text 00000002 CopInit
08000246 w F .text 00000002 TIM2_IRQHandler
08001fb4 g F .text 0000012c CanInit
08002794 g F .text 00000008 NvmWrite
08002214 g F .text 00000034 CpuStartUserProgram
0800023e w F .text 00000002 TIM1_BRK_IRQHandler
08000554 g F .text 00000008 USART_SendData
0800021c w F .text 00000002 EXTI1_IRQHandler
080026cc g F .text 00000068 FlashVerifyChecksum
08001370 g F .text 00000014 FileIsIdle
08004224 g F .text 000001ac f_write
08000260 w F .text 00000002 RTCAlarm_IRQHandler
20004800 g *ABS* 00000800 __StackLimit
0800025a w F .text 00000002 USART2_IRQHandler
08003f30 g F .text 0000017e f_open
08000b74 g F .text 000000c0 disk_write
08000358 g F .text 00000060 FileFirmwareUpdateLogHook
20000004 g O .data 00000004 __ctype_ptr__
080030b0 g F .text 00000008 ComIsConnected
08005144 g O .text 00000101 _ctype_
08000150 g F .text 0000003e FileIsFirmwareUpdateRequestedHook
08003068 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
08000994 g F .text 0000009c disk_read
08003498 g F .text 0000004c BackDoorCheck
20000f58 g .bss 00000000 _stack
08000e78 g F .text 00000042 SPI_Init
08002e90 g F .text 0000004a ff_convert
08004364 g F .text 00000012 TimerGet
08004308 g F .text 00000028 TimerInit
0800019c g F .text 00000030 FileFirmwareUpdateStartedHook
08000252 w F .text 00000002 I2C2_ER_IRQHandler
0800122c g F .text 00000008 ComIsConnected
08000226 w F .text 00000002 DMA1_Channel2_IRQHandler
08005108 g O .text 00000101 _ctype_
0800026c g F .text 0000003c FileIsFirmwareUpdateRequestedHook
0800023a w F .text 00000002 CAN1_SCE_IRQHandler
08000216 w F .text 00000002 FLASH_IRQHandler
080011e4 g F .text 00000024 ComGetActiveInterfaceMaxRxLen
08000200 w F .text 00000002 BusFault_Handler
08000258 w F .text 00000002 USART1_IRQHandler
08000ad8 g F .text 0000009a disk_read
08001090 g F .text 0000004c BackDoorCheck
0800024e w F .text 00000002 I2C1_ER_IRQHandler
080004b4 g F .text 0000004e SPI_Init
08004804 g F .text 00000040 ff_convert
08002828 g F .text 00000012 TimerGet
00000000 w *UND* 00000000 _Jv_RegisterClasses
080027d8 g F .text 0000002c TimerInit
00000000 w *UND* 00000000 __register_frame_info
08000262 w F .text 00000002 USBWakeUp_IRQHandler
080002b4 g F .text 00000030 FileFirmwareUpdateStartedHook

Some files were not shown because too many files have changed in this diff Show More