mirror of https://github.com/FOME-Tech/openblt.git
- Fixed bug in data type of NvmEraseHook return code (blt_bool should have been blt_int8u).
- Added support for additional NVM driver in LPC-L2294 Demo's allowing operations on the 2MB external Intel C3 flash. - Corrected the names of some return values for the NMV hooks (BTL_NVM_xxx to BLT_NVM_xxx). - Fixed problem with incorrect xcpInfo.mta value by changing the GCC/Crossworks linker optimazation from -Os to -O1. git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@11 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
9d0f49c259
commit
59919c4fb9
Binary file not shown.
|
@ -7,6 +7,9 @@ Discarded input sections
|
|||
.text 0x00000000 0x0 ARM Flash Debug/../../obj/main.o
|
||||
.data 0x00000000 0x0 ARM Flash Debug/../../obj/main.o
|
||||
.bss 0x00000000 0x0 ARM Flash Debug/../../obj/main.o
|
||||
.text 0x00000000 0x0 ARM Flash Debug/../../obj/extflash.o
|
||||
.data 0x00000000 0x0 ARM Flash Debug/../../obj/extflash.o
|
||||
.bss 0x00000000 0x0 ARM Flash Debug/../../obj/extflash.o
|
||||
.text 0x00000000 0x0 ARM Flash Debug/../../obj/cstart.o
|
||||
.data 0x00000000 0x0 ARM Flash Debug/../../obj/cstart.o
|
||||
.bss 0x00000000 0x0 ARM Flash Debug/../../obj/cstart.o
|
||||
|
@ -32,8 +35,6 @@ Discarded input sections
|
|||
.text 0x00000000 0x0 ARM Flash Debug/../../obj/timer.o
|
||||
.data 0x00000000 0x0 ARM Flash Debug/../../obj/timer.o
|
||||
.bss 0x00000000 0x0 ARM Flash Debug/../../obj/timer.o
|
||||
.text.TimerSet
|
||||
0x00000000 0x10 ARM Flash Debug/../../obj/timer.o
|
||||
.text 0x00000000 0x0 ARM Flash Debug/../../obj/uart.o
|
||||
.data 0x00000000 0x0 ARM Flash Debug/../../obj/uart.o
|
||||
.bss 0x00000000 0x0 ARM Flash Debug/../../obj/uart.o
|
||||
|
@ -179,131 +180,141 @@ Linker script and memory map
|
|||
0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= (__FLASH_segment_start__ + 0x40000))), error: .init is too large to fit in FLASH memory segment)
|
||||
0x00000370 __text_load_start__ = ALIGN (__init_end__, 0x4)
|
||||
|
||||
.text 0x00000370 0xef0
|
||||
.text 0x00000370 0x110c
|
||||
0x00000370 __text_start__ = .
|
||||
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table)
|
||||
.glue_7 0x00000000 0x0 linker stubs
|
||||
.glue_7t 0x00000000 0x0 linker stubs
|
||||
.text.startup.main
|
||||
0x00000370 0x104 ARM Flash Debug/../../obj/main.o
|
||||
.text.main 0x00000370 0x98 ARM Flash Debug/../../obj/main.o
|
||||
0x00000370 main
|
||||
.text.FlashGetSector
|
||||
0x00000474 0x60 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000408 0x64 ARM Flash Debug/../../obj/flash.o
|
||||
.text.FlashWriteBlock
|
||||
0x000004d4 0xf0 ARM Flash Debug/../../obj/flash.o
|
||||
0x0000046c 0x110 ARM Flash Debug/../../obj/flash.o
|
||||
.text.FlashInitBlock
|
||||
0x0000057c 0x38 ARM Flash Debug/../../obj/flash.o
|
||||
.text.FlashSwitchBlock
|
||||
0x000005c4 0x84 ARM Flash Debug/../../obj/flash.o
|
||||
0x000005b4 0x6c ARM Flash Debug/../../obj/flash.o
|
||||
.text.FlashAddToBlock
|
||||
0x00000648 0xc8 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000620 0xdc ARM Flash Debug/../../obj/flash.o
|
||||
.text.FlashInit
|
||||
0x00000710 0x20 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000710 FlashInit
|
||||
0x000006fc 0x20 ARM Flash Debug/../../obj/flash.o
|
||||
0x000006fc FlashInit
|
||||
.text.FlashWrite
|
||||
0x00000730 0x70 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000730 FlashWrite
|
||||
0x0000071c 0x6c ARM Flash Debug/../../obj/flash.o
|
||||
0x0000071c FlashWrite
|
||||
.text.FlashErase
|
||||
0x000007a0 0x108 ARM Flash Debug/../../obj/flash.o
|
||||
0x000007a0 FlashErase
|
||||
0x00000788 0x130 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000788 FlashErase
|
||||
.text.FlashVerifyChecksum
|
||||
0x000008a8 0x48 ARM Flash Debug/../../obj/flash.o
|
||||
0x000008a8 FlashVerifyChecksum
|
||||
0x000008b8 0x48 ARM Flash Debug/../../obj/flash.o
|
||||
0x000008b8 FlashVerifyChecksum
|
||||
.text.FlashWriteChecksum
|
||||
0x000008f0 0x6c ARM Flash Debug/../../obj/flash.o
|
||||
0x000008f0 FlashWriteChecksum
|
||||
0x00000900 0x74 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000900 FlashWriteChecksum
|
||||
.text.FlashDone
|
||||
0x0000095c 0x50 ARM Flash Debug/../../obj/flash.o
|
||||
0x0000095c FlashDone
|
||||
0x00000974 0x5c ARM Flash Debug/../../obj/flash.o
|
||||
0x00000974 FlashDone
|
||||
.text.CpuMemCopy
|
||||
0x000009ac 0x40 ARM Flash Debug/../../obj/cpu.o
|
||||
0x000009ac CpuMemCopy
|
||||
0x000009d0 0x44 ARM Flash Debug/../../obj/cpu.o
|
||||
0x000009d0 CpuMemCopy
|
||||
.text.CpuStartUserProgram
|
||||
0x000009ec 0x44 ARM Flash Debug/../../obj/cpu.o
|
||||
0x000009ec CpuStartUserProgram
|
||||
0x00000a14 0x44 ARM Flash Debug/../../obj/cpu.o
|
||||
0x00000a14 CpuStartUserProgram
|
||||
.text.CpuReset
|
||||
0x00000a30 0x10 ARM Flash Debug/../../obj/cpu.o
|
||||
0x00000a30 CpuReset
|
||||
.text.NvmInit 0x00000a40 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a40 NvmInit
|
||||
0x00000a58 0x10 ARM Flash Debug/../../obj/cpu.o
|
||||
0x00000a58 CpuReset
|
||||
.text.NvmInit 0x00000a68 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a68 NvmInit
|
||||
.text.NvmWrite
|
||||
0x00000a50 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a50 NvmWrite
|
||||
0x00000a78 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a78 NvmWrite
|
||||
.text.NvmErase
|
||||
0x00000a60 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a60 NvmErase
|
||||
0x00000a88 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a88 NvmErase
|
||||
.text.NvmVerifyChecksum
|
||||
0x00000a70 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a70 NvmVerifyChecksum
|
||||
.text.NvmDone 0x00000a80 0x18 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a80 NvmDone
|
||||
.text.TimerInit
|
||||
0x00000a98 0x48 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000a98 TimerInit
|
||||
0x00000a98 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000a98 NvmVerifyChecksum
|
||||
.text.NvmDone 0x00000aa8 0x1c ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000aa8 NvmDone
|
||||
.text.TimerReset
|
||||
0x00000ae0 0x20 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000ae0 TimerReset
|
||||
0x00000ac4 0x20 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000ac4 TimerReset
|
||||
.text.TimerUpdate
|
||||
0x00000b00 0x38 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000b00 TimerUpdate
|
||||
0x00000ae4 0x38 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000ae4 TimerUpdate
|
||||
.text.TimerSet
|
||||
0x00000b1c 0x10 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000b1c TimerSet
|
||||
.text.TimerInit
|
||||
0x00000b2c 0x48 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000b2c TimerInit
|
||||
.text.TimerGet
|
||||
0x00000b38 0x1c ARM Flash Debug/../../obj/timer.o
|
||||
0x00000b38 TimerGet
|
||||
0x00000b74 0x1c ARM Flash Debug/../../obj/timer.o
|
||||
0x00000b74 TimerGet
|
||||
.text.UartReceiveByte
|
||||
0x00000b90 0x28 ARM Flash Debug/../../obj/uart.o
|
||||
.text.UartTransmitByte
|
||||
0x00000bb8 0x54 ARM Flash Debug/../../obj/uart.o
|
||||
.text.UartInit
|
||||
0x00000b54 0x40 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000b54 UartInit
|
||||
0x00000c0c 0x40 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000c0c UartInit
|
||||
.text.UartTransmitPacket
|
||||
0x00000b94 0xc0 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000b94 UartTransmitPacket
|
||||
0x00000c4c 0x84 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000c4c UartTransmitPacket
|
||||
.text.UartReceivePacket
|
||||
0x00000c54 0xb8 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000c54 UartReceivePacket
|
||||
0x00000cd0 0xc0 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000cd0 UartReceivePacket
|
||||
.text.AssertFailure
|
||||
0x00000d0c 0x24 ARM Flash Debug/../../obj/assert.o
|
||||
0x00000d0c AssertFailure
|
||||
0x00000d90 0x24 ARM Flash Debug/../../obj/assert.o
|
||||
0x00000d90 AssertFailure
|
||||
.text.BackDoorCheck
|
||||
0x00000d30 0x48 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x00000d30 BackDoorCheck
|
||||
0x00000db4 0x4c ARM Flash Debug/../../obj/backdoor.o
|
||||
0x00000db4 BackDoorCheck
|
||||
.text.BackDoorInit
|
||||
0x00000d78 0x20 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x00000d78 BackDoorInit
|
||||
0x00000e00 0x24 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x00000e00 BackDoorInit
|
||||
.text.BootInit
|
||||
0x00000d98 0x1c ARM Flash Debug/../../obj/boot.o
|
||||
0x00000d98 BootInit
|
||||
0x00000e24 0x1c ARM Flash Debug/../../obj/boot.o
|
||||
0x00000e24 BootInit
|
||||
.text.BootTask
|
||||
0x00000db4 0x18 ARM Flash Debug/../../obj/boot.o
|
||||
0x00000db4 BootTask
|
||||
.text.ComInit 0x00000dcc 0x3c ARM Flash Debug/../../obj/com.o
|
||||
0x00000dcc ComInit
|
||||
.text.ComTask 0x00000e08 0x24 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e08 ComTask
|
||||
0x00000e40 0x18 ARM Flash Debug/../../obj/boot.o
|
||||
0x00000e40 BootTask
|
||||
.text.ComInit 0x00000e58 0x44 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e58 ComInit
|
||||
.text.ComTask 0x00000e9c 0x24 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e9c ComTask
|
||||
.text.ComTransmitPacket
|
||||
0x00000e2c 0x18 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e2c ComTransmitPacket
|
||||
0x00000ec0 0x18 ARM Flash Debug/../../obj/com.o
|
||||
0x00000ec0 ComTransmitPacket
|
||||
.text.ComSetConnectEntryState
|
||||
0x00000e44 0x14 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e44 ComSetConnectEntryState
|
||||
0x00000ed8 0x14 ARM Flash Debug/../../obj/com.o
|
||||
0x00000ed8 ComSetConnectEntryState
|
||||
.text.ComIsConnected
|
||||
0x00000e58 0x10 ARM Flash Debug/../../obj/com.o
|
||||
0x00000e58 ComIsConnected
|
||||
.text.CopInit 0x00000e68 0x4 ARM Flash Debug/../../obj/cop.o
|
||||
0x00000e68 CopInit
|
||||
0x00000eec 0x10 ARM Flash Debug/../../obj/com.o
|
||||
0x00000eec ComIsConnected
|
||||
.text.CopInit 0x00000efc 0x4 ARM Flash Debug/../../obj/cop.o
|
||||
0x00000efc CopInit
|
||||
.text.CopService
|
||||
0x00000e6c 0x4 ARM Flash Debug/../../obj/cop.o
|
||||
0x00000e6c CopService
|
||||
0x00000f00 0x4 ARM Flash Debug/../../obj/cop.o
|
||||
0x00000f00 CopService
|
||||
.text.XcpProtectResources
|
||||
0x00000f04 0x14 ARM Flash Debug/../../obj/xcp.o
|
||||
.text.XcpSetCtoError
|
||||
0x00000e70 0x20 ARM Flash Debug/../../obj/xcp.o
|
||||
.text.XcpInit 0x00000e90 0x28 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000e90 XcpInit
|
||||
0x00000f18 0x20 ARM Flash Debug/../../obj/xcp.o
|
||||
.text.XcpInit 0x00000f38 0x28 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000f38 XcpInit
|
||||
.text.XcpIsConnected
|
||||
0x00000eb8 0x18 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000eb8 XcpIsConnected
|
||||
0x00000f60 0x18 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000f60 XcpIsConnected
|
||||
.text.XcpPacketTransmitted
|
||||
0x00000ed0 0x14 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000ed0 XcpPacketTransmitted
|
||||
0x00000f78 0x14 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000f78 XcpPacketTransmitted
|
||||
.text.XcpPacketReceived
|
||||
0x00000ee4 0x37c ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000ee4 XcpPacketReceived
|
||||
0x00001260 __text_end__ = (__text_start__ + SIZEOF (.text))
|
||||
0x00001260 __text_load_end__ = __text_end__
|
||||
0x00000f8c 0x4f0 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000f8c XcpPacketReceived
|
||||
0x0000147c __text_end__ = (__text_start__ + SIZEOF (.text))
|
||||
0x0000147c __text_load_end__ = __text_end__
|
||||
|
||||
.vfp11_veneer 0x00000000 0x0
|
||||
.vfp11_veneer 0x00000000 0x0 linker stubs
|
||||
|
@ -311,50 +322,45 @@ Linker script and memory map
|
|||
.v4_bx 0x00000000 0x0
|
||||
.v4_bx 0x00000000 0x0 linker stubs
|
||||
0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= (__FLASH_segment_start__ + 0x40000))), error: .text is too large to fit in FLASH memory segment)
|
||||
0x00001260 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
|
||||
0x0000147c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
|
||||
|
||||
.dtors 0x00001260 0x0
|
||||
0x00001260 __dtors_start__ = .
|
||||
.dtors 0x0000147c 0x0
|
||||
0x0000147c __dtors_start__ = .
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
0x00001260 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
|
||||
0x00001260 __dtors_load_end__ = __dtors_end__
|
||||
0x0000147c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
|
||||
0x0000147c __dtors_load_end__ = __dtors_end__
|
||||
0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= (__FLASH_segment_start__ + 0x40000))), error: .dtors is too large to fit in FLASH memory segment)
|
||||
0x00001260 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
|
||||
0x0000147c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
|
||||
|
||||
.ctors 0x00001260 0x0
|
||||
0x00001260 __ctors_start__ = .
|
||||
.ctors 0x0000147c 0x0
|
||||
0x0000147c __ctors_start__ = .
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
0x00001260 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
|
||||
0x00001260 __ctors_load_end__ = __ctors_end__
|
||||
0x0000147c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
|
||||
0x0000147c __ctors_load_end__ = __ctors_end__
|
||||
0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= (__FLASH_segment_start__ + 0x40000))), error: .ctors is too large to fit in FLASH memory segment)
|
||||
0x00001260 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
|
||||
0x0000147c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
|
||||
|
||||
.rodata 0x00001260 0x1b8
|
||||
0x00001260 __rodata_start__ = .
|
||||
.rodata 0x0000147c 0x14c
|
||||
0x0000147c __rodata_start__ = .
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
.rodata.pll_dividers.850
|
||||
0x00001260 0x4 ARM Flash Debug/../../obj/main.o
|
||||
.rodata.str1.1
|
||||
0x00001264 0x67 ARM Flash Debug/../../obj/main.o
|
||||
*fill* 0x000012cb 0x1 00
|
||||
.rodata.flashLayout
|
||||
0x000012cc 0xc0 ARM Flash Debug/../../obj/flash.o
|
||||
.rodata.str1.1
|
||||
0x0000138c 0x84 ARM Flash Debug/../../obj/uart.o
|
||||
0x0000147c 0xc0 ARM Flash Debug/../../obj/flash.o
|
||||
.rodata.str1.4
|
||||
0x0000153c 0x84 ARM Flash Debug/../../obj/uart.o
|
||||
.rodata.xcpStationId
|
||||
0x00001410 0x8 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00001418 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
|
||||
0x00001418 __rodata_load_end__ = __rodata_end__
|
||||
0x000015c0 0x8 ARM Flash Debug/../../obj/xcp.o
|
||||
0x000015c8 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
|
||||
0x000015c8 __rodata_load_end__ = __rodata_end__
|
||||
0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= (__FLASH_segment_start__ + 0x40000))), error: .rodata is too large to fit in FLASH memory segment)
|
||||
0x00001418 __data_load_start__ = ALIGN (__rodata_end__, 0x4)
|
||||
0x000015c8 __data_load_start__ = ALIGN (__rodata_end__, 0x4)
|
||||
|
||||
.data 0x4000023c 0x0 load address 0x00001418
|
||||
.data 0x4000023c 0x0 load address 0x000015c8
|
||||
0x4000023c __data_start__ = .
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
0x4000023c __data_end__ = (__data_start__ + SIZEOF (.data))
|
||||
0x00001418 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
|
||||
0x000015c8 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
|
||||
0x00000001 . = ASSERT ((((__data_load_start__ + SIZEOF (.data)) >= __FLASH_segment_start__) && ((__data_load_start__ + SIZEOF (.data)) <= (__FLASH_segment_start__ + 0x40000))), error: .data is too large to fit in FLASH memory segment)
|
||||
|
||||
.data_run 0x4000023c 0x0
|
||||
|
@ -365,7 +371,7 @@ Linker script and memory map
|
|||
0x00000001 . = ASSERT (((__data_run_end__ >= __SRAM_segment_start__) && (__data_run_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .data_run is too large to fit in SRAM memory segment)
|
||||
0x4000023c __bss_load_start__ = ALIGN (__data_run_end__, 0x4)
|
||||
|
||||
.bss 0x4000023c 0x4ec
|
||||
.bss 0x4000023c 0x4f4
|
||||
0x4000023c __bss_start__ = .
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
.bss.bootBlockInfo
|
||||
|
@ -378,122 +384,124 @@ Linker script and memory map
|
|||
0x40000648 0x4 ARM Flash Debug/../../obj/timer.o
|
||||
.bss.xcpCtoRxLength.866
|
||||
0x4000064c 0x1 ARM Flash Debug/../../obj/uart.o
|
||||
*fill* 0x4000064d 0x3 00
|
||||
.bss.xcpCtoReqPacket.865
|
||||
0x4000064d 0x41 ARM Flash Debug/../../obj/uart.o
|
||||
0x40000650 0x44 ARM Flash Debug/../../obj/uart.o
|
||||
.bss.xcpCtoRxInProgress.867
|
||||
0x4000068e 0x1 ARM Flash Debug/../../obj/uart.o
|
||||
*fill* 0x4000068f 0x1 00
|
||||
0x40000694 0x1 ARM Flash Debug/../../obj/uart.o
|
||||
*fill* 0x40000695 0x3 00
|
||||
.bss.assert_failure_file
|
||||
0x40000690 0x4 ARM Flash Debug/../../obj/assert.o
|
||||
0x40000698 0x4 ARM Flash Debug/../../obj/assert.o
|
||||
.bss.assert_failure_line
|
||||
0x40000694 0x4 ARM Flash Debug/../../obj/assert.o
|
||||
0x4000069c 0x4 ARM Flash Debug/../../obj/assert.o
|
||||
.bss.backdoorOpen
|
||||
0x40000698 0x1 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x400006a0 0x1 ARM Flash Debug/../../obj/backdoor.o
|
||||
.bss.comEntryStateConnect
|
||||
0x40000699 0x1 ARM Flash Debug/../../obj/com.o
|
||||
0x400006a1 0x1 ARM Flash Debug/../../obj/com.o
|
||||
*fill* 0x400006a2 0x2 00
|
||||
.bss.xcpCtoReqPacket.855
|
||||
0x4000069a 0x40 ARM Flash Debug/../../obj/com.o
|
||||
*fill* 0x400006da 0x2 00
|
||||
.bss.xcpInfo 0x400006dc 0x4c ARM Flash Debug/../../obj/xcp.o
|
||||
0x400006a4 0x40 ARM Flash Debug/../../obj/com.o
|
||||
.bss.xcpInfo 0x400006e4 0x4c ARM Flash Debug/../../obj/xcp.o
|
||||
*(COMMON)
|
||||
0x40000728 __bss_end__ = (__bss_start__ + SIZEOF (.bss))
|
||||
0x40000728 __bss_load_end__ = __bss_end__
|
||||
0x40000730 __bss_end__ = (__bss_start__ + SIZEOF (.bss))
|
||||
0x40000730 __bss_load_end__ = __bss_end__
|
||||
0x00000001 . = ASSERT (((__bss_end__ >= __SRAM_segment_start__) && (__bss_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .bss is too large to fit in SRAM memory segment)
|
||||
0x40000728 __non_init_load_start__ = ALIGN (__bss_end__, 0x4)
|
||||
0x40000730 __non_init_load_start__ = ALIGN (__bss_end__, 0x4)
|
||||
|
||||
.non_init 0x40000728 0x0
|
||||
0x40000728 __non_init_start__ = .
|
||||
.non_init 0x40000730 0x0
|
||||
0x40000730 __non_init_start__ = .
|
||||
*(.non_init .non_init.*)
|
||||
0x40000728 __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init))
|
||||
0x40000728 __non_init_load_end__ = __non_init_end__
|
||||
0x40000730 __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init))
|
||||
0x40000730 __non_init_load_end__ = __non_init_end__
|
||||
0x00000001 . = ASSERT (((__non_init_end__ >= __SRAM_segment_start__) && (__non_init_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .non_init is too large to fit in SRAM memory segment)
|
||||
0x40000728 __heap_load_start__ = ALIGN (__non_init_end__, 0x4)
|
||||
0x40000730 __heap_load_start__ = ALIGN (__non_init_end__, 0x4)
|
||||
|
||||
.heap 0x40000728 0x400
|
||||
0x40000728 __heap_start__ = .
|
||||
.heap 0x40000730 0x400
|
||||
0x40000730 __heap_start__ = .
|
||||
*(.heap .heap.*)
|
||||
0x40000b28 . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4)
|
||||
*fill* 0x40000728 0x400 00
|
||||
0x40000b28 __heap_end__ = (__heap_start__ + SIZEOF (.heap))
|
||||
0x40000b28 __heap_load_end__ = __heap_end__
|
||||
0x40000b30 . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4)
|
||||
*fill* 0x40000730 0x400 00
|
||||
0x40000b30 __heap_end__ = (__heap_start__ + SIZEOF (.heap))
|
||||
0x40000b30 __heap_load_end__ = __heap_end__
|
||||
0x00000001 . = ASSERT (((__heap_end__ >= __SRAM_segment_start__) && (__heap_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .heap is too large to fit in SRAM memory segment)
|
||||
0x40000b28 __stack_load_start__ = ALIGN (__heap_end__, 0x4)
|
||||
0x40000b30 __stack_load_start__ = ALIGN (__heap_end__, 0x4)
|
||||
|
||||
.stack 0x40000b28 0x400
|
||||
0x40000b28 __stack_start__ = .
|
||||
.stack 0x40000b30 0x400
|
||||
0x40000b30 __stack_start__ = .
|
||||
*(.stack .stack.*)
|
||||
0x40000f28 . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
|
||||
*fill* 0x40000b28 0x400 00
|
||||
0x40000f28 __stack_end__ = (__stack_start__ + SIZEOF (.stack))
|
||||
0x40000f28 __stack_load_end__ = __stack_end__
|
||||
0x40000f30 . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
|
||||
*fill* 0x40000b30 0x400 00
|
||||
0x40000f30 __stack_end__ = (__stack_start__ + SIZEOF (.stack))
|
||||
0x40000f30 __stack_load_end__ = __stack_end__
|
||||
0x00000001 . = ASSERT (((__stack_end__ >= __SRAM_segment_start__) && (__stack_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack is too large to fit in SRAM memory segment)
|
||||
0x40000f28 __stack_irq_load_start__ = ALIGN (__stack_end__, 0x4)
|
||||
0x40000f30 __stack_irq_load_start__ = ALIGN (__stack_end__, 0x4)
|
||||
|
||||
.stack_irq 0x40000f28 0x100
|
||||
0x40000f28 __stack_irq_start__ = .
|
||||
.stack_irq 0x40000f30 0x100
|
||||
0x40000f30 __stack_irq_start__ = .
|
||||
*(.stack_irq .stack_irq.*)
|
||||
0x40001028 . = ALIGN (MAX ((__stack_irq_start__ + __STACKSIZE_IRQ__), .), 0x4)
|
||||
*fill* 0x40000f28 0x100 00
|
||||
0x40001028 __stack_irq_end__ = (__stack_irq_start__ + SIZEOF (.stack_irq))
|
||||
0x40001028 __stack_irq_load_end__ = __stack_irq_end__
|
||||
0x40001030 . = ALIGN (MAX ((__stack_irq_start__ + __STACKSIZE_IRQ__), .), 0x4)
|
||||
*fill* 0x40000f30 0x100 00
|
||||
0x40001030 __stack_irq_end__ = (__stack_irq_start__ + SIZEOF (.stack_irq))
|
||||
0x40001030 __stack_irq_load_end__ = __stack_irq_end__
|
||||
0x00000001 . = ASSERT (((__stack_irq_end__ >= __SRAM_segment_start__) && (__stack_irq_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack_irq is too large to fit in SRAM memory segment)
|
||||
0x40001028 __stack_fiq_load_start__ = ALIGN (__stack_irq_end__, 0x4)
|
||||
0x40001030 __stack_fiq_load_start__ = ALIGN (__stack_irq_end__, 0x4)
|
||||
|
||||
.stack_fiq 0x40001028 0x100
|
||||
0x40001028 __stack_fiq_start__ = .
|
||||
.stack_fiq 0x40001030 0x100
|
||||
0x40001030 __stack_fiq_start__ = .
|
||||
*(.stack_fiq .stack_fiq.*)
|
||||
0x40001128 . = ALIGN (MAX ((__stack_fiq_start__ + __STACKSIZE_FIQ__), .), 0x4)
|
||||
*fill* 0x40001028 0x100 00
|
||||
0x40001128 __stack_fiq_end__ = (__stack_fiq_start__ + SIZEOF (.stack_fiq))
|
||||
0x40001128 __stack_fiq_load_end__ = __stack_fiq_end__
|
||||
0x40001130 . = ALIGN (MAX ((__stack_fiq_start__ + __STACKSIZE_FIQ__), .), 0x4)
|
||||
*fill* 0x40001030 0x100 00
|
||||
0x40001130 __stack_fiq_end__ = (__stack_fiq_start__ + SIZEOF (.stack_fiq))
|
||||
0x40001130 __stack_fiq_load_end__ = __stack_fiq_end__
|
||||
0x00000001 . = ASSERT (((__stack_fiq_end__ >= __SRAM_segment_start__) && (__stack_fiq_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack_fiq is too large to fit in SRAM memory segment)
|
||||
0x40001128 __stack_svc_load_start__ = ALIGN (__stack_fiq_end__, 0x4)
|
||||
0x40001130 __stack_svc_load_start__ = ALIGN (__stack_fiq_end__, 0x4)
|
||||
|
||||
.stack_svc 0x40001128 0x0
|
||||
0x40001128 __stack_svc_start__ = .
|
||||
.stack_svc 0x40001130 0x0
|
||||
0x40001130 __stack_svc_start__ = .
|
||||
*(.stack_svc .stack_svc.*)
|
||||
0x40001128 . = ALIGN (MAX ((__stack_svc_start__ + __STACKSIZE_SVC__), .), 0x4)
|
||||
0x40001128 __stack_svc_end__ = (__stack_svc_start__ + SIZEOF (.stack_svc))
|
||||
0x40001128 __stack_svc_load_end__ = __stack_svc_end__
|
||||
0x40001130 . = ALIGN (MAX ((__stack_svc_start__ + __STACKSIZE_SVC__), .), 0x4)
|
||||
0x40001130 __stack_svc_end__ = (__stack_svc_start__ + SIZEOF (.stack_svc))
|
||||
0x40001130 __stack_svc_load_end__ = __stack_svc_end__
|
||||
0x00000001 . = ASSERT (((__stack_svc_end__ >= __SRAM_segment_start__) && (__stack_svc_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack_svc is too large to fit in SRAM memory segment)
|
||||
0x40001128 __stack_abt_load_start__ = ALIGN (__stack_svc_end__, 0x4)
|
||||
0x40001130 __stack_abt_load_start__ = ALIGN (__stack_svc_end__, 0x4)
|
||||
|
||||
.stack_abt 0x40001128 0x0
|
||||
0x40001128 __stack_abt_start__ = .
|
||||
.stack_abt 0x40001130 0x0
|
||||
0x40001130 __stack_abt_start__ = .
|
||||
*(.stack_abt .stack_abt.*)
|
||||
0x40001128 . = ALIGN (MAX ((__stack_abt_start__ + __STACKSIZE_ABT__), .), 0x4)
|
||||
0x40001128 __stack_abt_end__ = (__stack_abt_start__ + SIZEOF (.stack_abt))
|
||||
0x40001128 __stack_abt_load_end__ = __stack_abt_end__
|
||||
0x40001130 . = ALIGN (MAX ((__stack_abt_start__ + __STACKSIZE_ABT__), .), 0x4)
|
||||
0x40001130 __stack_abt_end__ = (__stack_abt_start__ + SIZEOF (.stack_abt))
|
||||
0x40001130 __stack_abt_load_end__ = __stack_abt_end__
|
||||
0x00000001 . = ASSERT (((__stack_abt_end__ >= __SRAM_segment_start__) && (__stack_abt_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack_abt is too large to fit in SRAM memory segment)
|
||||
0x40001128 __stack_und_load_start__ = ALIGN (__stack_abt_end__, 0x4)
|
||||
0x40001130 __stack_und_load_start__ = ALIGN (__stack_abt_end__, 0x4)
|
||||
|
||||
.stack_und 0x40001128 0x0
|
||||
0x40001128 __stack_und_start__ = .
|
||||
.stack_und 0x40001130 0x0
|
||||
0x40001130 __stack_und_start__ = .
|
||||
*(.stack_und .stack_und.*)
|
||||
0x40001128 . = ALIGN (MAX ((__stack_und_start__ + __STACKSIZE_UND__), .), 0x4)
|
||||
0x40001128 __stack_und_end__ = (__stack_und_start__ + SIZEOF (.stack_und))
|
||||
0x40001128 __stack_und_load_end__ = __stack_und_end__
|
||||
0x40001130 . = ALIGN (MAX ((__stack_und_start__ + __STACKSIZE_UND__), .), 0x4)
|
||||
0x40001130 __stack_und_end__ = (__stack_und_start__ + SIZEOF (.stack_und))
|
||||
0x40001130 __stack_und_load_end__ = __stack_und_end__
|
||||
0x00000001 . = ASSERT (((__stack_und_end__ >= __SRAM_segment_start__) && (__stack_und_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .stack_und is too large to fit in SRAM memory segment)
|
||||
0x00001418 __fast_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
|
||||
0x000015c8 __fast_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
|
||||
|
||||
.fast 0x40001128 0x0 load address 0x00001418
|
||||
0x40001128 __fast_start__ = .
|
||||
.fast 0x40001130 0x0 load address 0x000015c8
|
||||
0x40001130 __fast_start__ = .
|
||||
*(.fast .fast.*)
|
||||
0x40001128 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
|
||||
0x00001418 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
|
||||
0x00001418 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.fast))
|
||||
0x40001130 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
|
||||
0x000015c8 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
|
||||
0x000015c8 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.fast))
|
||||
0x00000001 . = ASSERT ((((__fast_load_start__ + SIZEOF (.fast)) >= __FLASH_segment_start__) && ((__fast_load_start__ + SIZEOF (.fast)) <= (__FLASH_segment_start__ + 0x40000))), error: .fast is too large to fit in FLASH memory segment)
|
||||
|
||||
.fast_run 0x40001128 0x0
|
||||
0x40001128 __fast_run_start__ = .
|
||||
0x40001128 . = MAX ((__fast_run_start__ + SIZEOF (.fast)), .)
|
||||
0x40001128 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
|
||||
0x40001128 __fast_run_load_end__ = __fast_run_end__
|
||||
0x40001128 __SRAM_segment_used_end__ = (ALIGN (__stack_und_end__, 0x4) + SIZEOF (.fast_run))
|
||||
.fast_run 0x40001130 0x0
|
||||
0x40001130 __fast_run_start__ = .
|
||||
0x40001130 . = MAX ((__fast_run_start__ + SIZEOF (.fast)), .)
|
||||
0x40001130 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
|
||||
0x40001130 __fast_run_load_end__ = __fast_run_end__
|
||||
0x40001130 __SRAM_segment_used_end__ = (ALIGN (__stack_und_end__, 0x4) + SIZEOF (.fast_run))
|
||||
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= (__SRAM_segment_start__ + 0x4000))), error: .fast_run is too large to fit in SRAM memory segment)
|
||||
START GROUP
|
||||
LOAD ARM Flash Debug/../../obj/hooks.o
|
||||
LOAD ARM Flash Debug/../../obj/main.o
|
||||
LOAD ARM Flash Debug/../../obj/extflash.o
|
||||
LOAD ARM Flash Debug/../../obj/cstart.o
|
||||
LOAD ARM Flash Debug/../../obj/flash.o
|
||||
LOAD ARM Flash Debug/../../obj/can.o
|
||||
|
@ -518,91 +526,97 @@ LOAD C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib
|
|||
END GROUP
|
||||
OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/ide/../bin/openbtl_olimex_lpc_l2294_20mhz.elf elf32-littlearm)
|
||||
|
||||
.debug_info 0x00000000 0x188c
|
||||
.debug_info 0x00000000 0x1809
|
||||
.debug_info 0x00000000 0x5a ARM Flash Debug/../../obj/hooks.o
|
||||
.debug_info 0x0000005a 0x111 ARM Flash Debug/../../obj/main.o
|
||||
.debug_info 0x0000016b 0x110 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_info 0x0000027b 0x5b2 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_info 0x0000082d 0x5a ARM Flash Debug/../../obj/can.o
|
||||
.debug_info 0x00000887 0x13a ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_info 0x000009c1 0x15e ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_info 0x00000b1f 0x143 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_info 0x00000c62 0x232 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_info 0x00000e94 0xe4 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_info 0x00000f78 0xa4 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_info 0x0000101c 0x88 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_info 0x000010a4 0x18b ARM Flash Debug/../../obj/com.o
|
||||
.debug_info 0x0000122f 0x86 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_info 0x000012b5 0x5d7 ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_info 0x0000005a 0x116 ARM Flash Debug/../../obj/main.o
|
||||
.debug_info 0x00000170 0x5a ARM Flash Debug/../../obj/extflash.o
|
||||
.debug_info 0x000001ca 0x110 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_info 0x000002da 0x539 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_info 0x00000813 0x5a ARM Flash Debug/../../obj/can.o
|
||||
.debug_info 0x0000086d 0x13a ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_info 0x000009a7 0x15e ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_info 0x00000b05 0x119 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_info 0x00000c1e 0x1bf ARM Flash Debug/../../obj/uart.o
|
||||
.debug_info 0x00000ddd 0xe4 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_info 0x00000ec1 0xa4 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_info 0x00000f65 0x88 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_info 0x00000fed 0x18b ARM Flash Debug/../../obj/com.o
|
||||
.debug_info 0x00001178 0x86 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_info 0x000011fe 0x60b ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_abbrev 0x00000000 0xa94
|
||||
.debug_abbrev 0x00000000 0xa6c
|
||||
.debug_abbrev 0x00000000 0x28 ARM Flash Debug/../../obj/hooks.o
|
||||
.debug_abbrev 0x00000028 0xaf ARM Flash Debug/../../obj/main.o
|
||||
.debug_abbrev 0x000000d7 0x12 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_abbrev 0x000000e9 0x21f ARM Flash Debug/../../obj/flash.o
|
||||
.debug_abbrev 0x00000308 0x28 ARM Flash Debug/../../obj/can.o
|
||||
.debug_abbrev 0x00000330 0xaf ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_abbrev 0x000003df 0xa3 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_abbrev 0x00000482 0xd9 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_abbrev 0x0000055b 0x139 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_abbrev 0x00000694 0x7c ARM Flash Debug/../../obj/assert.o
|
||||
.debug_abbrev 0x00000710 0x5b ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_abbrev 0x0000076b 0x3f ARM Flash Debug/../../obj/boot.o
|
||||
.debug_abbrev 0x000007aa 0xe0 ARM Flash Debug/../../obj/com.o
|
||||
.debug_abbrev 0x0000088a 0x3f ARM Flash Debug/../../obj/cop.o
|
||||
.debug_abbrev 0x000008c9 0x1cb ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_abbrev 0x00000028 0xc5 ARM Flash Debug/../../obj/main.o
|
||||
.debug_abbrev 0x000000ed 0x28 ARM Flash Debug/../../obj/extflash.o
|
||||
.debug_abbrev 0x00000115 0x12 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_abbrev 0x00000127 0x21f ARM Flash Debug/../../obj/flash.o
|
||||
.debug_abbrev 0x00000346 0x28 ARM Flash Debug/../../obj/can.o
|
||||
.debug_abbrev 0x0000036e 0xaf ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_abbrev 0x0000041d 0xa3 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_abbrev 0x000004c0 0xad ARM Flash Debug/../../obj/timer.o
|
||||
.debug_abbrev 0x0000056d 0x110 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_abbrev 0x0000067d 0x7c ARM Flash Debug/../../obj/assert.o
|
||||
.debug_abbrev 0x000006f9 0x5b ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_abbrev 0x00000754 0x3f ARM Flash Debug/../../obj/boot.o
|
||||
.debug_abbrev 0x00000793 0xe0 ARM Flash Debug/../../obj/com.o
|
||||
.debug_abbrev 0x00000873 0x3f ARM Flash Debug/../../obj/cop.o
|
||||
.debug_abbrev 0x000008b2 0x1ba ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_line 0x00000000 0x1277
|
||||
.debug_line 0x00000000 0x1245
|
||||
.debug_line 0x00000000 0x1d ARM Flash Debug/../../obj/hooks.o
|
||||
.debug_line 0x0000001d 0x14e ARM Flash Debug/../../obj/main.o
|
||||
.debug_line 0x0000016b 0x19e ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_line 0x00000309 0x2e6 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_line 0x000005ef 0x1d ARM Flash Debug/../../obj/can.o
|
||||
.debug_line 0x0000060c 0xf0 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_line 0x000006fc 0x110 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_line 0x0000080c 0x11b ARM Flash Debug/../../obj/timer.o
|
||||
.debug_line 0x00000927 0x16a ARM Flash Debug/../../obj/uart.o
|
||||
.debug_line 0x00000a91 0x139 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_line 0x00000bca 0x156 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_line 0x00000d20 0xbf ARM Flash Debug/../../obj/boot.o
|
||||
.debug_line 0x00000ddf 0x192 ARM Flash Debug/../../obj/com.o
|
||||
.debug_line 0x00000f71 0xb7 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_line 0x00001028 0x24f ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_line 0x0000001d 0x13a ARM Flash Debug/../../obj/main.o
|
||||
.debug_line 0x00000157 0x1d ARM Flash Debug/../../obj/extflash.o
|
||||
.debug_line 0x00000174 0x19e ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_line 0x00000312 0x2db ARM Flash Debug/../../obj/flash.o
|
||||
.debug_line 0x000005ed 0x1d ARM Flash Debug/../../obj/can.o
|
||||
.debug_line 0x0000060a 0xf6 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_line 0x00000700 0x112 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_line 0x00000812 0x113 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_line 0x00000925 0x15e ARM Flash Debug/../../obj/uart.o
|
||||
.debug_line 0x00000a83 0x137 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_line 0x00000bba 0x150 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_line 0x00000d0a 0xbf ARM Flash Debug/../../obj/boot.o
|
||||
.debug_line 0x00000dc9 0x192 ARM Flash Debug/../../obj/com.o
|
||||
.debug_line 0x00000f5b 0xb7 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_line 0x00001012 0x233 ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_str 0x00000000 0xdaa
|
||||
.debug_str 0x00000000 0xe15
|
||||
.debug_str 0x00000000 0xb1 ARM Flash Debug/../../obj/hooks.o
|
||||
0xcf (size before relaxing)
|
||||
.debug_str 0x000000b1 0xa4 ARM Flash Debug/../../obj/main.o
|
||||
0x110 (size before relaxing)
|
||||
.debug_str 0x00000155 0x24d ARM Flash Debug/../../obj/flash.o
|
||||
.debug_str 0x00000155 0x6b ARM Flash Debug/../../obj/extflash.o
|
||||
0xd2 (size before relaxing)
|
||||
.debug_str 0x000001c0 0x24d ARM Flash Debug/../../obj/flash.o
|
||||
0x2d8 (size before relaxing)
|
||||
.debug_str 0x000003a2 0x83 ARM Flash Debug/../../obj/can.o
|
||||
.debug_str 0x0000040d 0x83 ARM Flash Debug/../../obj/can.o
|
||||
0xea (size before relaxing)
|
||||
.debug_str 0x00000425 0xc7 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_str 0x00000490 0xc7 ARM Flash Debug/../../obj/cpu.o
|
||||
0x157 (size before relaxing)
|
||||
.debug_str 0x000004ec 0xb7 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_str 0x00000557 0xb7 ARM Flash Debug/../../obj/nvm.o
|
||||
0x14f (size before relaxing)
|
||||
.debug_str 0x000005a3 0x10b ARM Flash Debug/../../obj/timer.o
|
||||
.debug_str 0x0000060e 0x10b ARM Flash Debug/../../obj/timer.o
|
||||
0x17d (size before relaxing)
|
||||
.debug_str 0x000006ae 0x11f ARM Flash Debug/../../obj/uart.o
|
||||
.debug_str 0x00000719 0x11f ARM Flash Debug/../../obj/uart.o
|
||||
0x1b4 (size before relaxing)
|
||||
.debug_str 0x000007cd 0xb8 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_str 0x00000838 0xb8 ARM Flash Debug/../../obj/assert.o
|
||||
0x134 (size before relaxing)
|
||||
.debug_str 0x00000885 0xa3 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_str 0x000008f0 0xa3 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x113 (size before relaxing)
|
||||
.debug_str 0x00000928 0x89 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_str 0x00000993 0x89 ARM Flash Debug/../../obj/boot.o
|
||||
0xf0 (size before relaxing)
|
||||
.debug_str 0x000009b1 0x102 ARM Flash Debug/../../obj/com.o
|
||||
.debug_str 0x00000a1c 0x102 ARM Flash Debug/../../obj/com.o
|
||||
0x19c (size before relaxing)
|
||||
.debug_str 0x00000ab3 0x89 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_str 0x00000b1e 0x89 ARM Flash Debug/../../obj/cop.o
|
||||
0xf0 (size before relaxing)
|
||||
.debug_str 0x00000b3c 0x26e ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_str 0x00000ba7 0x26e ARM Flash Debug/../../obj/xcp.o
|
||||
0x312 (size before relaxing)
|
||||
|
||||
.comment 0x00000000 0x11
|
||||
.comment 0x00000000 0x11 ARM Flash Debug/../../obj/hooks.o
|
||||
0x12 (size before relaxing)
|
||||
.comment 0x00000000 0x12 ARM Flash Debug/../../obj/main.o
|
||||
.comment 0x00000000 0x12 ARM Flash Debug/../../obj/extflash.o
|
||||
.comment 0x00000000 0x12 ARM Flash Debug/../../obj/flash.o
|
||||
.comment 0x00000000 0x12 ARM Flash Debug/../../obj/can.o
|
||||
.comment 0x00000000 0x12 ARM Flash Debug/../../obj/cpu.o
|
||||
|
@ -623,98 +637,100 @@ OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_
|
|||
.ARM.attributes
|
||||
0x00000010 0x10 ARM Flash Debug/../../obj/main.o
|
||||
.ARM.attributes
|
||||
0x00000020 0x10 ARM Flash Debug/../../obj/cstart.o
|
||||
0x00000020 0x10 ARM Flash Debug/../../obj/extflash.o
|
||||
.ARM.attributes
|
||||
0x00000030 0x10 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000030 0x10 ARM Flash Debug/../../obj/cstart.o
|
||||
.ARM.attributes
|
||||
0x00000040 0x10 ARM Flash Debug/../../obj/can.o
|
||||
0x00000040 0x10 ARM Flash Debug/../../obj/flash.o
|
||||
.ARM.attributes
|
||||
0x00000050 0x10 ARM Flash Debug/../../obj/cpu.o
|
||||
0x00000050 0x10 ARM Flash Debug/../../obj/can.o
|
||||
.ARM.attributes
|
||||
0x00000060 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
0x00000060 0x10 ARM Flash Debug/../../obj/cpu.o
|
||||
.ARM.attributes
|
||||
0x00000070 0x10 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000070 0x10 ARM Flash Debug/../../obj/nvm.o
|
||||
.ARM.attributes
|
||||
0x00000080 0x10 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000080 0x10 ARM Flash Debug/../../obj/timer.o
|
||||
.ARM.attributes
|
||||
0x00000090 0x10 ARM Flash Debug/../../obj/assert.o
|
||||
0x00000090 0x10 ARM Flash Debug/../../obj/uart.o
|
||||
.ARM.attributes
|
||||
0x000000a0 0x10 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x000000a0 0x10 ARM Flash Debug/../../obj/assert.o
|
||||
.ARM.attributes
|
||||
0x000000b0 0x10 ARM Flash Debug/../../obj/boot.o
|
||||
0x000000b0 0x10 ARM Flash Debug/../../obj/backdoor.o
|
||||
.ARM.attributes
|
||||
0x000000c0 0x10 ARM Flash Debug/../../obj/com.o
|
||||
0x000000c0 0x10 ARM Flash Debug/../../obj/boot.o
|
||||
.ARM.attributes
|
||||
0x000000d0 0x10 ARM Flash Debug/../../obj/cop.o
|
||||
0x000000d0 0x10 ARM Flash Debug/../../obj/com.o
|
||||
.ARM.attributes
|
||||
0x000000e0 0x10 ARM Flash Debug/../../obj/xcp.o
|
||||
0x000000e0 0x10 ARM Flash Debug/../../obj/cop.o
|
||||
.ARM.attributes
|
||||
0x000000f0 0x10 ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_frame 0x00000000 0x548
|
||||
.debug_frame 0x00000000 0x5a8
|
||||
.debug_frame 0x00000000 0x2c ARM Flash Debug/../../obj/main.o
|
||||
.debug_frame 0x0000002c 0x14c ARM Flash Debug/../../obj/flash.o
|
||||
.debug_frame 0x00000178 0x68 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_frame 0x000001e0 0x9c ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_frame 0x0000027c 0x6c ARM Flash Debug/../../obj/timer.o
|
||||
.debug_frame 0x000002e8 0x64 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_frame 0x0000034c 0x2c ARM Flash Debug/../../obj/assert.o
|
||||
.debug_frame 0x00000378 0x48 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_frame 0x000003c0 0x48 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_frame 0x00000408 0xa0 ARM Flash Debug/../../obj/com.o
|
||||
.debug_frame 0x000004a8 0x30 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_frame 0x000004d8 0x70 ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_frame 0x0000002c 0x160 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_frame 0x0000018c 0x68 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_frame 0x000001f4 0x9c ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_frame 0x00000290 0x78 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_frame 0x00000308 0x90 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_frame 0x00000398 0x2c ARM Flash Debug/../../obj/assert.o
|
||||
.debug_frame 0x000003c4 0x48 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_frame 0x0000040c 0x48 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_frame 0x00000454 0xa4 ARM Flash Debug/../../obj/com.o
|
||||
.debug_frame 0x000004f8 0x30 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_frame 0x00000528 0x80 ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_loc 0x00000000 0xb3b
|
||||
.debug_loc 0x00000000 0x99 ARM Flash Debug/../../obj/main.o
|
||||
.debug_loc 0x00000099 0x4e7 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_loc 0x00000580 0xe2 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_loc 0x00000662 0xff ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_loc 0x00000761 0x20 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_loc 0x00000781 0xd9 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_loc 0x0000085a 0x46 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_loc 0x000008a0 0x40 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_loc 0x000008e0 0x40 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_loc 0x00000920 0xa6 ARM Flash Debug/../../obj/com.o
|
||||
.debug_loc 0x000009c6 0x175 ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_loc 0x00000000 0xb16
|
||||
.debug_loc 0x00000000 0x20 ARM Flash Debug/../../obj/main.o
|
||||
.debug_loc 0x00000020 0x4a6 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_loc 0x000004c6 0x109 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_loc 0x000005cf 0xff ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_loc 0x000006ce 0x40 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_loc 0x0000070e 0xe9 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_loc 0x000007f7 0x46 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_loc 0x0000083d 0x40 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_loc 0x0000087d 0x40 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_loc 0x000008bd 0xb2 ARM Flash Debug/../../obj/com.o
|
||||
.debug_loc 0x0000096f 0x1a7 ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_aranges 0x00000000 0x2b0
|
||||
.debug_aranges 0x00000000 0x2d0
|
||||
.debug_aranges
|
||||
0x00000000 0x20 ARM Flash Debug/../../obj/main.o
|
||||
.debug_aranges
|
||||
0x00000020 0x28 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_aranges
|
||||
0x00000048 0x68 ARM Flash Debug/../../obj/flash.o
|
||||
0x00000048 0x70 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_aranges
|
||||
0x000000b0 0x30 ARM Flash Debug/../../obj/cpu.o
|
||||
0x000000b8 0x30 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_aranges
|
||||
0x000000e0 0x40 ARM Flash Debug/../../obj/nvm.o
|
||||
0x000000e8 0x40 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_aranges
|
||||
0x00000120 0x40 ARM Flash Debug/../../obj/timer.o
|
||||
0x00000128 0x40 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_aranges
|
||||
0x00000160 0x30 ARM Flash Debug/../../obj/uart.o
|
||||
0x00000168 0x40 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_aranges
|
||||
0x00000190 0x20 ARM Flash Debug/../../obj/assert.o
|
||||
0x000001a8 0x20 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_aranges
|
||||
0x000001b0 0x28 ARM Flash Debug/../../obj/backdoor.o
|
||||
0x000001c8 0x28 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_aranges
|
||||
0x000001d8 0x28 ARM Flash Debug/../../obj/boot.o
|
||||
0x000001f0 0x28 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_aranges
|
||||
0x00000200 0x48 ARM Flash Debug/../../obj/com.o
|
||||
0x00000218 0x48 ARM Flash Debug/../../obj/com.o
|
||||
.debug_aranges
|
||||
0x00000248 0x28 ARM Flash Debug/../../obj/cop.o
|
||||
0x00000260 0x28 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_aranges
|
||||
0x00000270 0x40 ARM Flash Debug/../../obj/xcp.o
|
||||
0x00000288 0x48 ARM Flash Debug/../../obj/xcp.o
|
||||
|
||||
.debug_ranges 0x00000000 0x308
|
||||
.debug_ranges 0x00000000 0x50 ARM Flash Debug/../../obj/main.o
|
||||
.debug_ranges 0x00000050 0x20 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_ranges 0x00000070 0x58 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_ranges 0x000000c8 0x20 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_ranges 0x000000e8 0x30 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_ranges 0x00000118 0x30 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_ranges 0x00000148 0x90 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_ranges 0x000001d8 0x10 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_ranges 0x000001e8 0x18 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_ranges 0x00000200 0x18 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_ranges 0x00000218 0x38 ARM Flash Debug/../../obj/com.o
|
||||
.debug_ranges 0x00000250 0x18 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_ranges 0x00000268 0xa0 ARM Flash Debug/../../obj/xcp.o
|
||||
.debug_ranges 0x00000000 0x208
|
||||
.debug_ranges 0x00000000 0x10 ARM Flash Debug/../../obj/main.o
|
||||
.debug_ranges 0x00000010 0x20 ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_ranges 0x00000030 0x60 ARM Flash Debug/../../obj/flash.o
|
||||
.debug_ranges 0x00000090 0x20 ARM Flash Debug/../../obj/cpu.o
|
||||
.debug_ranges 0x000000b0 0x30 ARM Flash Debug/../../obj/nvm.o
|
||||
.debug_ranges 0x000000e0 0x30 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_ranges 0x00000110 0x30 ARM Flash Debug/../../obj/uart.o
|
||||
.debug_ranges 0x00000140 0x10 ARM Flash Debug/../../obj/assert.o
|
||||
.debug_ranges 0x00000150 0x18 ARM Flash Debug/../../obj/backdoor.o
|
||||
.debug_ranges 0x00000168 0x18 ARM Flash Debug/../../obj/boot.o
|
||||
.debug_ranges 0x00000180 0x38 ARM Flash Debug/../../obj/com.o
|
||||
.debug_ranges 0x000001b8 0x18 ARM Flash Debug/../../obj/cop.o
|
||||
.debug_ranges 0x000001d0 0x38 ARM Flash Debug/../../obj/xcp.o
|
||||
|
|
|
@ -38,7 +38,7 @@ S1130228280000EB2C019FE52C119FE5001041E00C
|
|||
S1130238080051E30020A0A3042080A4001080A596
|
||||
S1130248E8009FE5E8109FE5010050E1BEFFFF0AC2
|
||||
S1130258042090E403002DE90FE0A0E112FF2FE150
|
||||
S11302680300BDE8B0FFFFEAF30200EB0000A0E3DF
|
||||
S11302680300BDE8B0FFFFEA180300EB0000A0E3B9
|
||||
S11302780010A0E3E4209FE50FE0A0E112FF2FE1C6
|
||||
S1130288010050E10EF0A001012052E00EF0A0019F
|
||||
S1130298013080E1023083E1030013E30400001A13
|
||||
|
@ -47,279 +47,306 @@ S11302B80EF0A0E10130D0E40130C1E4012052E2A3
|
|||
S11302C8FBFFFF1A0EF0A0E1010050E10EF0A001BF
|
||||
S11302D80120C0E4FBFFFFEAFEFFFFEAFEFFFFEA9E
|
||||
S11302E8FEFFFFEAFEFFFFEAFEFFFFEA40C01FE051
|
||||
S11302F8281100402811004028100040281100400F
|
||||
S113030828110040280F0040181400003C02004047
|
||||
S11303183C020040700300007003000060120000FB
|
||||
S11303281814000028110040281100406012000031
|
||||
S113033860120000601200006012000060120000E9
|
||||
S1130348601200006012000060120000181400001F
|
||||
S11303583C0200402807004028070040280B0040C2
|
||||
S11302F830110040301100403010004030110040EF
|
||||
S113030830110040300F0040C81500003C02004086
|
||||
S11303183C02004070030000700300007C140000DD
|
||||
S1130328C815000030110040301100407C14000052
|
||||
S11303387C1400007C1400007C1400007C14000071
|
||||
S11303487C1400007C1400007C140000C815000014
|
||||
S11303583C0200403007004030070040300B0040AA
|
||||
S10B0368700300000000A0E195
|
||||
S113037004E02DE5E4009FE5E4109FE5E4209FE51B
|
||||
S11303800040A0E300C0D4E7910C0CE026CA4CE284
|
||||
S113039016CE4CE202005CE1FF3004E20300009A56
|
||||
S11303A0014084E2040054E3F5FFFF1A260000EA4A
|
||||
S11303B08322A0E1022082E3AC309FE5FF2002E229
|
||||
S11303C08420C3E55510E0E35520A0E30100A0E339
|
||||
S11303D08C10C3E58C20C3E58000C3E58C10C3E515
|
||||
S11303E08C20C3E50320A0E1B818D2E1010B11E38E
|
||||
S11303F074309FE5FBFFFF0A0320A0E38020C3E5E0
|
||||
S11304005520E0E38C20C3E55520A0E38C20C3E510
|
||||
S11304100020A0E30020C3E50420A0E30420C3E5FA
|
||||
S11304200220A0E30020C3E50120A0E30021C3E5EE
|
||||
S11304301D3843E2002093E5052082E3002083E594
|
||||
S1130440540200EB5A0200EBFDFFFFEA1C009FE59B
|
||||
S11304507010A0E32C0200EB0430A0E1D3FFFFEA0C
|
||||
S113046060120000C0D40100A080020000C01FE0A0
|
||||
S11304706412000070402DE950509FE50060A0E137
|
||||
S11304800040A0E3780200EB003095E5030056E15C
|
||||
S11304900700003A042095E5023083E0030056E1AA
|
||||
S11304A028309F350C20A033923424300800D435F2
|
||||
S11304B00400003A014084E2100054E30C5085E249
|
||||
S11304C0EFFFFF1AFF00A0E37040BDE81EFF2FE11D
|
||||
S11304D0CC120000F0452DE90070A0E120D04DE2DF
|
||||
S11304E0000090E5E2FFFFEBFF0050E32F00000A5D
|
||||
S11304F03230A0E30160A0E300308DE504008DE517
|
||||
S113050008008DE514608DE53A51E0E3560200EBF6
|
||||
S11305100D00A0E114108DE20FE0A0E115FF2FE122
|
||||
S113052014809DE5000058E32000001A3330A0E356
|
||||
S11305300740A0E100308DE5043094E418008DE913
|
||||
S113054078309FE502ACA0E310308DE50CA08DE57A
|
||||
S113055014608DE5440200EB0D00A0E114108DE25F
|
||||
S11305600FE0A0E115FF2FE114309DE5000053E3F7
|
||||
S11305700800A0110E00001A3830A0E300308DE509
|
||||
S1130580003097E514608DE518048DE9360200EB20
|
||||
S11305900D00A0E114108DE20FE0A0E115FF2FE1A2
|
||||
S11305A014009DE5010070E20000A033000000EAA1
|
||||
S11305B00000A0E320D08DE2F045BDE81EFF2FE14E
|
||||
S11305C060EA000074309FE5030050E130402DE9FB
|
||||
S11305D00040A0E10150A0E10500000A020A51E335
|
||||
S11305E00500000ABAFFFFEB000050E30300001A05
|
||||
S11305F00E0000EA48409FE5000000EA0340A0E145
|
||||
S1130600853BB0E10040A0130900001A003094E5D6
|
||||
S1130610050053E10600000A0400A0E1045080E450
|
||||
S11306200510A0E1022CA0E3DF0000EB000000EACB
|
||||
S11306300040A0E10400A0E13040BDE81EFF2FE12E
|
||||
S11306403C02004040040040F0452DE90380A0E155
|
||||
S1130650003090E57F7FC1E3010073E30040A0E137
|
||||
S11306600150A0E10260A0E10370C7E304708004BC
|
||||
S11306700710A001022CA003CB00000B003094E56E
|
||||
S1130680070053E10400000A0400A0E10710A0E100
|
||||
S1130690CBFFFFEB004050E21800000A003094E565
|
||||
S11306A0055063E0045085E25CA09FE5055084E0BA
|
||||
S11306B0027C87E2EC0100EB043084E2053063E065
|
||||
S11306C00A0053E10500009A0400A0E10710A0E12C
|
||||
S11306D0BBFFFFEB004050E20800000A045084E234
|
||||
S11306E0018048E20130D6E40888A0E12888B0E11E
|
||||
S11306F00130C5E4EEFFFF1A0100A0E3000000EAA8
|
||||
S11307000400A0E1F045BDE81EFF2FE1FF01000059
|
||||
S113071010209FE50030E0E3003082E508209FE5EB
|
||||
S1130720003082E51EFF2FE1400400403C020040FF
|
||||
S113073070402DE90040A0E10160A0E10250A0E179
|
||||
S11307404BFFFFEBFF0050E30F00000A010044E2FF
|
||||
S1130750060080E046FFFFEBFF0050E30A00000ABA
|
||||
S11307607F3FC4E30330C3E3020A53E324009F053D
|
||||
S11307700638A0E120009F152338A0E10410A0E171
|
||||
S11307800520A0E17040BDE8AEFFFFEA0000A0E351
|
||||
S11307907040BDE81EFF2FE13C02004040040040D1
|
||||
S11307A0F0452DE920D04DE20160A0E10050A0E128
|
||||
S11307B02FFFFFEB0040A0E1010045E2060080E0CE
|
||||
S11307C02BFFFFEBFF0054E3FF0050130060A01366
|
||||
S11307D00160A0030050A0E10060A0032C00000A07
|
||||
S11307E0000054E12A00008A000054E30460A001E0
|
||||
S11307F02700000A100050E32500008A3230A0E3ED
|
||||
S11308000180A0E338008DE814808DE53A71E0E3BF
|
||||
S1130810950100EB0D00A0E114108DE20FE0A0E1C2
|
||||
S113082017FF2FE114A09DE500005AE31800001AF9
|
||||
S11308303430A0E338008DE864309FE514808DE502
|
||||
S11308400C308DE5880100EB0D00A0E114108DE261
|
||||
S11308500FE0A0E117FF2FE114309DE5000053E302
|
||||
S11308600A60A0110A00001A3530A0E338008DE8B0
|
||||
S113087014808DE57C0100EB0D00A0E114108DE2E5
|
||||
S11308800FE0A0E117FF2FE114609DE5016076E21F
|
||||
S11308900060A0330600A0E120D08DE2F045BDE861
|
||||
S11308A01EFF2FE160EA0000023AA0E3050093E88E
|
||||
S11308B0000082E0082093E5020080E00C2093E52C
|
||||
S11308C0020080E0102093E5020080E0142093E50C
|
||||
S11308D0020080E0182093E51C3093E5020080E0DC
|
||||
S11308E0030080E0010070E20000A0331EFF2FE14E
|
||||
S11308F05C309FE511402DE9140093E9024084E047
|
||||
S11309000C2093E5024084E0102093E5024084E04B
|
||||
S1130910142093E5024084E01C2093E5203093E505
|
||||
S1130920024084E0034084E0004064E200408DE53E
|
||||
S1130930DCFFFFEB000054E10100A00314009F154D
|
||||
S11309400410A0130D20A01178FFFF1B1840BDE870
|
||||
S11309501EFF2FE13C0200401420000040009FE5F0
|
||||
S1130960003090E5010073E304E02DE50200000A85
|
||||
S1130970D7FEFFEB000050E30700000A24009FE5C8
|
||||
S1130980003090E5010073E30100A0030200000AB7
|
||||
S1130990CFFEFFEB000090E20100A01304E09DE411
|
||||
S11309A01EFF2FE13C020040400400400228A0E169
|
||||
S11309B070402DE90140A0E12258A0E10060A0E1CF
|
||||
S11309C0050000EA0130D4E40130C6E4260100EB5E
|
||||
S11309D0015045E20558A0E12558A0E1000055E387
|
||||
S11309E0F7FFFF1A7040BDE81EFF2FE104E02DE57C
|
||||
S11309F01E0000EB000050E30900000A4020A0E3C1
|
||||
S1130A000101A0E3021AA0E3E7FFFFEB18309FE522
|
||||
S1130A100220A0E3402083E50131A0E30FE0A0E140
|
||||
S1130A2013FF2FE104E09DE41EFF2FE100C01FE04F
|
||||
S1130A3004E02DE585FDFFEB04E09DE41EFF2FE1BE
|
||||
S1130A4004E02DE531FFFFEB04E09DE41EFF2FE100
|
||||
S1130A5004E02DE535FFFFEB04E09DE41EFF2FE1EC
|
||||
S1130A6004E02DE54DFFFFEB04E09DE41EFF2FE1C4
|
||||
S1130A7004E02DE58BFFFFEB04E09DE41EFF2FE176
|
||||
S1130A8004E02DE599FFFFEB000050E3B2FFFF1BEC
|
||||
S1130A9004E09DE41EFF2FE130309FE530109FE518
|
||||
S1130AA00020A0E3142083E5282083E50C1083E5CF
|
||||
S1130AB00110A0E3041083E5081093E514309FE5CA
|
||||
S1130AC0001083E510309FE5002083E51EFF2FE131
|
||||
S1130AD0004000E05FEA0000480600404406004091
|
||||
S1130AE014309FE50020A0E3042083E50C2083E577
|
||||
S1130AF0082083E5102083E51EFF2FE1004000E07D
|
||||
S1130B0024309FE524109FE5082093E520309FE5DD
|
||||
S1130B10000091E500C093E5000082E000006CE075
|
||||
S1130B20000081E5002083E51EFF2FE1004000E086
|
||||
S1130B30440600404806004004E02DE5EFFFFFEBCB
|
||||
S1130B4008309FE5000093E504E09DE41EFF2FE1DB
|
||||
S1130B504406004034309FE50020A0E37F10E0E32A
|
||||
S1130B600420C3E50820C3E51420C3E50C10C3E545
|
||||
S1130B704110A0E30010C3E50420C3E50320A0E373
|
||||
S1130B800C20C3E50720A0E30820C3E51EFF2FE1E6
|
||||
S1130B9000C000E0F0412DE9FF6001E2400056E3AF
|
||||
S1130BA00080A0E1A0009F858310A0835600008BE5
|
||||
S1130BB098409FE51430D4E5200013E30060C41589
|
||||
S1130BC00100001A040000EAA70000EB1430D4E589
|
||||
S1130BD0200013E3FBFFFF0A020000EA68009FE520
|
||||
S1130BE08610A0E3480000EB60509FE50040A0E3BE
|
||||
S1130BF00570A0E10F0000EA9B0000EB1420D5E58E
|
||||
S1130C000430D8E7200012E30030C5150100001AB3
|
||||
S1130C10040000EA940000EB1430D7E5200013E34D
|
||||
S1130C20FBFFFF0A020000EA1C009FE58E10A0E310
|
||||
S1130C30350000EB014084E20438A0E1230856E1CA
|
||||
S1130C40ECFFFF8AF041BDE81EFF2FE18C1300008A
|
||||
S1130C5000C000E030402DE99C409FE50020D4E531
|
||||
S1130C60000052E394309FE50B00001A1410D3E502
|
||||
S1130C70011011E20120A0011C00000A0010D3E5BC
|
||||
S1130C807C309FE50010C3E50130A0E30030C4E5EB
|
||||
S1130C9070309FE50020C3E5140000EA1420D3E57A
|
||||
S1130CA060C09FE5012012E20050DCE50F00000A5D
|
||||
S1130CB04C109FE50020D3E5053081E00120C3E519
|
||||
S1130CC0013085E20020D1E5FF3003E2030052E168
|
||||
S1130CD00030CCE50020A0130400001A011081E2CA
|
||||
S1130CE031FFFFEB0030A0E30030C4E50120A0E3B6
|
||||
S1130CF00200A0E13040BDE81EFF2FE18E06004057
|
||||
S1130D0000C000E04D0600404C06004014309FE552
|
||||
S1130D1004E02DE5000083E50C309FE5001083E539
|
||||
S1130D20510000EBFDFFFFEA9006004094060040EE
|
||||
S1130D3010402DE9470000EB010050E30A00000ACF
|
||||
S1130D402C409FE50030D4E5010053E30600001A6F
|
||||
S1130D5078FFFFEB310050E30300009A0030A0E37A
|
||||
S1130D600030C4E55DFFFFEB1FFFFFEB1040BDE863
|
||||
S1130D701EFF2FE19806004014309FE50120A0E3F8
|
||||
S1130D8004E02DE50020C3E542FFFFEB04E09DE411
|
||||
S1130D90E6FFFFEA9806004004E02DE5310000EB91
|
||||
S1130DA0F4FFFFEB25FFFFEB070000EB04E09DE4FD
|
||||
S1130DB01EFF2FE104E02DE52B0000EB110000EBFA
|
||||
S1130DC0DAFFFFEB04E09DE41EFF2FE101402DE973
|
||||
S1130DD00030E0E30030CDE50030A0E30130CDE5A4
|
||||
S1130DE02A0000EB5AFFFFEB14309FE50030D3E5F7
|
||||
S1130DF0010053E30D00A0013900000B0840BDE8D9
|
||||
S1130E001EFF2FE19906004004E02DE514009FE544
|
||||
S1130E108FFFFFEB010050E308009F053000000B3B
|
||||
S1130E2004E09DE41EFF2FE19A06004004E02DE556
|
||||
S1130E30FF1001E256FFFFEB240000EB04E09DE409
|
||||
S1130E401EFF2FE108309FE50120A0E30020C3E549
|
||||
S1130E501EFF2FE19906004004E02DE5150000EB8C
|
||||
S1130E6004E09DE41EFF2FE11EFF2FE11EFF2FE192
|
||||
S1130E7014309FE50120E0E30320C3E50220A0E352
|
||||
S1130E800400C3E5B424C3E11EFF2FE1DC060040E7
|
||||
S1130E901C309FE50020A0E30020C3E5482083E543
|
||||
S1130EA04320C3E5B424C3E10220C3E50120C3E524
|
||||
S1130EB01EFF2FE1DC0600400C309FE50000D3E567
|
||||
S1130EC0000090E20100A0131EFF2FE1DC060040A9
|
||||
S1130ED008309FE50020A0E34320C3E51EFF2FE177
|
||||
S1130EE0DC06004070402DE90030D0E5FF0053E3FC
|
||||
S1130EF00050A0E158439FE50D00001A0010E0E304
|
||||
S1130F000310C4E51010A0E30020A0E30130A0E327
|
||||
S1130F100410C4E54010A0E30120C4E50030C4E59A
|
||||
S1130F200520C4E50610C4E50710C4E50820C4E59F
|
||||
S1130F30640000EA0060D4E5010056E3C200001A30
|
||||
S1130F40F30053E33900000A0D00008ACF0053E395
|
||||
S1130F50AA00000A0400008AC90053E36E00000AD4
|
||||
S1130F60CC0053E3AC00001AA90000EAD10053E31B
|
||||
S1130F709C00000A7400003AD20053E3A600001A51
|
||||
S1130F808B0000EAFA0053E34300000A0500008ADC
|
||||
S1130F90F50053E30A00000A0F00003AF60053E399
|
||||
S1130FA09D00001A1D0000EAFD0053E34B00000AF7
|
||||
S1130FB0FE0053E35400000AFC0053E39600001AB9
|
||||
S1130FC0440000EA0120D0E53F0052E3040084928B
|
||||
S1130FD0481094950700009A5E0000EA0130D0E5BD
|
||||
S1130FE03F0053E35B00008A041090E5481084E559
|
||||
S1130FF00120D5E5040084E26BFEFFEB0030E0E362
|
||||
S11310000330C4E5483094E50120D5E5033082E09F
|
||||
S1131010483084E50130D5E5013083E26F0000EA11
|
||||
S11310200030E0E30330C4E5043090E5440000EA16
|
||||
S11310300030E0E30330C4E50030A0E3480094E569
|
||||
S1131040041095E50320A0E1030000EA00C0D3E703
|
||||
S11310500C2082E0FF2002E2013083E2010053E130
|
||||
S1131060F9FFFF1AE8319FE50720C3E5222CA0E130
|
||||
S11310700A20C3E50120A0E30010A0E30420C3E597
|
||||
S11310800820A0E30810C3E50910C3E50510C3E573
|
||||
S11310900610C3E5B424C3E1610000EA0030E0E3D4
|
||||
S11310A00330C4E5AC319FE50720A0E3483084E574
|
||||
S11310B00030A0E30430C4E50530C4E50630C4E5DF
|
||||
S11310C00720C4E50830C4E50930C4E50A30C4E5A6
|
||||
S11310D00830A0E3410000EA0000A0E34F0000EA6A
|
||||
S11310E00030E0E30120D4E50330C4E50030A0E3A0
|
||||
S11310F00430C4E50630C4E50730C4E50830C4E56F
|
||||
S11311000520C4E50630A0E3340000EA0030A0E383
|
||||
S11311100030C4E50130C4E5390000EA480094E534
|
||||
S11311203F10A0E3012085E248FEFFEB000050E3FE
|
||||
S11311303700000A0030E0E30330C4E5483094E5AA
|
||||
S11311403F3083E2483084E52F0000EA0130D0E5E7
|
||||
S11311503E0053E30100009A2200A0E32F0000EABE
|
||||
S11311600030E0E30330C4E5B464C4E10110D0E529
|
||||
S1131170000051E30300001A40FEFFEB000050E3BF
|
||||
S11311802700001A220000EAC4409FE5022085E2FD
|
||||
S1131190480094E52DFEFFEB000050E31C00000A1C
|
||||
S11311A00120D5E5483094E5033082E0483084E5F9
|
||||
S11311B01B0000EA0030E0E34020A0E30330C4E574
|
||||
S11311C00620C4E50030A0E30430C4E50530C4E5DE
|
||||
S11311D00730C4E50830C4E50930C4E50730A0E3AE
|
||||
S11311E0B434C4E10E0000EA480094E5041095E527
|
||||
S11311F01AFEFFEB000050E30100001A040000EAAD
|
||||
S11312000AFEFFEB0030E0E30330C4E5B464C4E15C
|
||||
S1131210030000EA3100A0E3000000EA2000A0E39C
|
||||
S113122012FFFFEB28409FE54330D4E5010053E370
|
||||
S11312301000A0030DFFFF0B0130A0E318009FE591
|
||||
S1131240B414D4E14330C4E5F7FEFFEB7040BDE8CD
|
||||
S11312501EFF2FE1DC06004010140000DF060040F2
|
||||
S113126001020408443A2F7573722F666561736531
|
||||
S1131270722F736F6674776172652F4F70656E425B
|
||||
S11312804C542F5461726765742F44656D6F2F4100
|
||||
S1131290524D375F4C5043323030305F4F6C696D84
|
||||
S11312A065785F4C50435F4C323239345F43726F20
|
||||
S11312B07373776F726B732F426F6F742F696465EA
|
||||
S11312C02F2E2E2F6D61696E2E630000002000000A
|
||||
S11312D00020000001000000004000000020000089
|
||||
S11312E00200000000600000002000000300000075
|
||||
S11312F000800000002000000400000000A00000A6
|
||||
S1131300002000000500000000C0000000200000D4
|
||||
S11313100600000000E000000020000007000000BC
|
||||
S113132000000100000001000800000000000200AD
|
||||
S1131330000001000900000000000300002000007C
|
||||
S11313400A00000000200300002000000B00000041
|
||||
S113135000400300002000000C00000000600300B7
|
||||
S1131360002000000D0000000080030000200000A9
|
||||
S11313700E00000000A00300002000000F00000089
|
||||
S113138000C003000020000010000000443A2F7544
|
||||
S113139073722F6665617365722F736F66747761FC
|
||||
S11313A072652F4F70656E424C542F54617267659D
|
||||
S11313B0742F44656D6F2F41524D375F4C5043324B
|
||||
S11313C03030305F4F6C696D65785F4C50435F4CD3
|
||||
S11313D0323239345F43726F7373776F726B732F6A
|
||||
S11313E0426F6F742F6964652F2E2E2F2E2E2F2E91
|
||||
S11313F02E2F2E2E2F536F757263652F41524D374A
|
||||
S11314005F4C5043323030302F756172742E63005C
|
||||
S10B14104F70656E424C54005C
|
||||
S113037004E02DE588309FE52220A0E38420C3E536
|
||||
S11303805510E0E38C10C3E55520A0E38C20C3E5B1
|
||||
S11303900100A0E38000C3E58C10C3E58C20C3E515
|
||||
S11303A0B828D3E1010B12E3FCFFFF0A50309FE5AC
|
||||
S11303B00320A0E38020C3E55520E0E38C20C3E5BF
|
||||
S11303C05520A0E38C20C3E50020A0E30020C3E572
|
||||
S11303D00420A0E30420C3E50220A0E30020C3E539
|
||||
S11303E00120A0E30021C3E51D3843E2002093E58A
|
||||
S11303F0052082E3002083E5890200EB8F0200EBF5
|
||||
S1130400FDFFFFEA00C01FE070402DE90060A0E19D
|
||||
S113041050509FE50040A0E3B80200EB003095E5A2
|
||||
S1130420060053E10800008A041095E5013083E0DA
|
||||
S1130430030056E10400002A842084E024309FE570
|
||||
S1130440022183E00800D2E5040000EA014084E2CE
|
||||
S11304500C5085E2100054E3EEFFFF1AFF00A0E306
|
||||
S11304607040BDE81EFF2FE17C14000030402DE9F0
|
||||
S113047020D04DE20040A0E1000090E5E1FFFFEB59
|
||||
S1130480FF0050E30000A0033700000A3230A0E36D
|
||||
S11304900C308DE510008DE514008DE50130A0E3EE
|
||||
S11304A000308DE5950200EB0C008DE20D10A0E10B
|
||||
S11304B03A31E0E30FE0A0E113FF2FE100309DE5C6
|
||||
S11304C0000053E30000A0132700001A3330A0E318
|
||||
S11304D00C308DE50450A0E1043095E410308DE536
|
||||
S11304E014508DE5023CA0E318308DE584309FE57F
|
||||
S11304F01C308DE50130A0E300308DE57F0200EB78
|
||||
S11305000C008DE20D10A0E13A31E0E30FE0A0E130
|
||||
S113051013FF2FE100309DE5000053E30000A0131A
|
||||
S11305201100001A3830A0E30C308DE5003094E55A
|
||||
S113053010308DE514508DE5023CA0E318308DE5B4
|
||||
S11305400130A0E300308DE56C0200EB0C008DE27D
|
||||
S11305500D10A0E13A31E0E30FE0A0E113FF2FE139
|
||||
S113056000009DE5010070E20000A03320D08DE280
|
||||
S11305703040BDE81EFF2FE160EA000004E02DE5F5
|
||||
S1130580813BB0E10000A0130700001A003090E5A1
|
||||
S1130590010053E10100A0030300000A041080E4F9
|
||||
S11305A0022CA0E3090100EB0100A0E304E09DE4B8
|
||||
S11305B01EFF2FE130402DE90040A0E10150A0E1F1
|
||||
S11305C050309FE5030050E10500000A020A51E3A0
|
||||
S11305D00500000AA4FFFFEB000050E30300001A2B
|
||||
S11305E0080000EA30409FE5000000EA24409FE54F
|
||||
S11305F00400A0E10510A0E1DFFFFFEB000050E3E1
|
||||
S11306000040A003000000EA0040A0E30400A0E1D1
|
||||
S11306103040BDE81EFF2FE13C0200404004004092
|
||||
S1130620F0452DE90050A0E10140A0E10260A0E105
|
||||
S11306300370A0E1A1A4A0E18AA4A0E1003090E5A8
|
||||
S1130640010073E30400001A0A10A0E1CAFFFFEBE3
|
||||
S1130650000050E30000A0032400000A003095E5E8
|
||||
S11306600A0053E10500000A0500A0E10A10A0E118
|
||||
S1130670CFFFFFEB005050E20000A0031B00000A74
|
||||
S1130680003095E5044063E0044084E2044085E0E2
|
||||
S1130690013086E2018047E20888A0E1288883E0EF
|
||||
S11306A050709FE502AC8AE2140200EB043085E24C
|
||||
S11306B0043063E0070053E10500009A0500A0E15F
|
||||
S11306C00A10A0E1BAFFFFEB005050E20600000A56
|
||||
S11306D0044085E20130D6E40130C4E4080056E168
|
||||
S11306E0F0FFFF1A0100A0E3000000EA0000A0E30D
|
||||
S11306F0F045BDE81EFF2FE1FF0100000030E0E3FC
|
||||
S11307000C209FE5003082E508209FE5003082E55B
|
||||
S11307101EFF2FE1400400403C02004070402DE9E0
|
||||
S11307200040A0E10150A0E10260A0E135FFFFEB31
|
||||
S1130730FF0050E30000A0030E00000A010044E2A1
|
||||
S1130740050080E02FFFFFEBFF0050E30000A00353
|
||||
S11307500800000AA434A0E1100053E30538A0E126
|
||||
S113076018009F0518009F150410A0E10620A0E1C1
|
||||
S11307702338A0E1A9FFFFEB7040BDE81EFF2FE185
|
||||
S11307803C0200404004004070402DE920D04DE27E
|
||||
S11307900050A0E10160A0E11AFFFFEB0040A0E1DE
|
||||
S11307A0010045E2060080E016FFFFEB0050A0E1E7
|
||||
S11307B0FF0050E3FF0054130000A0033900000AB7
|
||||
S11307C0050054E10000A0833600008A000054E3D1
|
||||
S11307D00000A0033300000A100055E30000A083CA
|
||||
S11307E03000008A3230A0E300308DE504408DE50E
|
||||
S11307F008508DE50130A0E314308DE5BF0100EB16
|
||||
S11308000D00A0E114108DE23A31E0E30FE0A0E125
|
||||
S113081013FF2FE114309DE5000053E30000A01303
|
||||
S11308202000001A3430A0E300308DE504408DE54B
|
||||
S113083008508DE578309FE50C308DE50130A0E35C
|
||||
S113084014308DE5AD0100EB0D00A0E114108DE234
|
||||
S11308503A31E0E30FE0A0E113FF2FE114309DE50E
|
||||
S1130860000053E30000A0130E00001A3530A0E38B
|
||||
S113087000308DE504408DE508508DE50130A0E39E
|
||||
S113088014308DE59D0100EB0D00A0E114108DE204
|
||||
S11308903A31E0E30FE0A0E113FF2FE114009DE5FE
|
||||
S11308A0010070E20000A03320D08DE27040BDE86A
|
||||
S11308B01EFF2FE160EA0000023AA0E3050093E87E
|
||||
S11308C0000082E0082093E5020080E00C2093E51C
|
||||
S11308D0020080E0102093E5020080E0142093E5FC
|
||||
S11308E0020080E0182093E5020080E01C3093E5CC
|
||||
S11308F0030080E0010070E20000A0331EFF2FE13E
|
||||
S113090010402DE904D04DE25C309FE5140093E9DA
|
||||
S1130910024084E00C2093E5024084E0102093E53B
|
||||
S1130920024084E0142093E5024084E01C2093E517
|
||||
S1130930024084E0203093E5034084E0004064E218
|
||||
S113094000408DE5DBFFFFEB000054E10100A00354
|
||||
S113095018009F150410A0130D20A0116EFFFF1B9B
|
||||
S113096004D08DE21040BDE81EFF2FE13C020040A0
|
||||
S11309701420000004E02DE548309FE5003093E5A5
|
||||
S1130980010073E30400000A38009FE5B6FEFFEBA4
|
||||
S1130990000050E30000A0030800000A28309FE58F
|
||||
S11309A0003093E5010073E30100A0030300000A93
|
||||
S11309B014009FE5ACFEFFEB000090E20100A013E1
|
||||
S11309C004E09DE41EFF2FE13C020040400400408F
|
||||
S11309D070402DE90160A0E10228A0E12228B0E1E5
|
||||
S11309E00900000A0040A0E1010080E2012042E287
|
||||
S11309F00258A0E1255880E00130D6E40130C4E477
|
||||
S1130A003E0100EB050054E1FAFFFF1A7040BDE817
|
||||
S1130A101EFF2FE104E02DE51E0000EB000050E373
|
||||
S1130A200900000A0101A0E3021AA0E34020A0E3A8
|
||||
S1130A30E6FFFFEB0220A0E314309FE5402083E5AE
|
||||
S1130A400131A0E30FE0A0E113FF2FE104E09DE4F6
|
||||
S1130A501EFF2FE100C01FE004E02DE57BFDFFEB4E
|
||||
S1130A6004E09DE41EFF2FE104E02DE522FFFFEBEF
|
||||
S1130A7004E09DE41EFF2FE104E02DE526FFFFEBDB
|
||||
S1130A8004E09DE41EFF2FE104E02DE53DFFFFEBB4
|
||||
S1130A9004E09DE41EFF2FE104E02DE585FFFFEB5C
|
||||
S1130AA004E09DE41EFF2FE104E02DE593FFFFEB3E
|
||||
S1130AB0000050E30000A003ADFFFF1B04E09DE431
|
||||
S1130AC01EFF2FE114309FE50020A0E3042083E5FE
|
||||
S1130AD00C2083E5082083E5102083E51EFF2FE129
|
||||
S1130AE0004000E024309FE5082093E520109FE5B6
|
||||
S1130AF0000091E5000082E018309FE500C093E516
|
||||
S1130B0000006CE0000081E5002083E51EFF2FE17A
|
||||
S1130B10004000E0440600404806004004309FE5E1
|
||||
S1130B20000083E51EFF2FE14406004004E02DE5AC
|
||||
S1130B3030309FE50000A0E3140083E5280083E53E
|
||||
S1130B4024209FE50C2083E50120A0E3042083E515
|
||||
S1130B50082093E514309FE5002083E5EEFFFFEBCA
|
||||
S1130B6004E09DE41EFF2FE1004000E05FEA000086
|
||||
S1130B704806004004E02DE5D9FFFFEB08309FE56F
|
||||
S1130B80000093E504E09DE41EFF2FE144060040CD
|
||||
S1130B901C309FE51430D3E5010013E310309F159A
|
||||
S1130BA00030D3150030C0150100A0130000A003CD
|
||||
S1130BB01EFF2FE100C000E010402DE944309FE506
|
||||
S1130BC01430D3E5200013E30000A0030B00000A57
|
||||
S1130BD030309FE50000C3E51430D3E5200013E373
|
||||
S1130BE00100A0130500001A18409FE5C30000EBA4
|
||||
S1130BF01430D4E5200013E3FBFFFF0A0100A0E357
|
||||
S1130C001040BDE81EFF2FE100C000E034309FE536
|
||||
S1130C100020A0E30420C3E50820C3E51420C3E5B5
|
||||
S1130C207F10E0E30C10C3E54110A0E30010C3E51E
|
||||
S1130C300420C3E50320A0E30C20C3E50720A0E3C0
|
||||
S1130C400820C3E51EFF2FE100C000E0F0412DE9BC
|
||||
S1130C500050A0E1FF4001E2400054E368009F859A
|
||||
S1130C608310A0834900008B0400A0E1D1FFFFEBB7
|
||||
S1130C70010050E350009F158610A0134300001B91
|
||||
S1130C800460A0E1000054E30D00000A0040A0E36A
|
||||
S1130C9034709FE58E80A0E3980000EB0400D5E754
|
||||
S1130CA0C4FFFFEB010050E30700A0110810A011DE
|
||||
S1130CB03600001B014084E20438A0E1230856E119
|
||||
S1130CC0F4FFFF8AF041BDE81EFF2FE13C15000050
|
||||
S1130CD030402DE90050A0E1A0309FE50030D3E57D
|
||||
S1130CE0000053E30B00001A94009FE5A7FFFFEBFD
|
||||
S1130CF0010050E30000A0131E00001A0120A0E32D
|
||||
S1130D0078309FE50020C3E50000A0E374309FE540
|
||||
S1130D100000C3E5170000EA68309FE50040D3E512
|
||||
S1130D2064009FE5000084E098FFFFEB010050E3BE
|
||||
S1130D300000A0130F00001A014084E2FF2004E227
|
||||
S1130D4040309FE50020C3E534309FE50030D3E513
|
||||
S1130D50020053E10000A0130600001A0500A0E100
|
||||
S1130D6024109FE519FFFFEB0020A0E30C309FE562
|
||||
S1130D700020C3E50100A0E33040BDE81EFF2FE1E1
|
||||
S1130D8094060040500600404C06004051060040C6
|
||||
S1130D9004E02DE510309FE5000083E50C309FE56D
|
||||
S1130DA0001083E5550000EBFDFFFFEA98060040C4
|
||||
S1130DB09C06004004E02DE54B0000EB010050E3ED
|
||||
S1130DC00B00000A30309FE50030D3E5010053E307
|
||||
S1130DD00700001A66FFFFEB310050E30400009A9D
|
||||
S1130DE00020A0E310309FE50020C3E534FFFFEBB3
|
||||
S1130DF007FFFFEB04E09DE41EFF2FE1A006004087
|
||||
S1130E0004E02DE50120A0E310309FE50020C3E5B8
|
||||
S1130E1045FFFFEBE6FFFFEB04E09DE41EFF2FE13F
|
||||
S1130E20A006004004E02DE5330000EBF3FFFFEBE8
|
||||
S1130E300CFFFFEB070000EB04E09DE41EFF2FE135
|
||||
S1130E4004E02DE52D0000EB130000EBD8FFFFEBD1
|
||||
S1130E5004E09DE41EFF2FE104E02DE504D04DE203
|
||||
S1130E600030E0E30030CDE50030A0E30130CDE513
|
||||
S1130E70300000EB64FFFFEB18309FE50030D3E552
|
||||
S1130E80010053E30D00A0013F00000B04D08DE2EC
|
||||
S1130E9004E09DE41EFF2FE1A106004004E02DE5DF
|
||||
S1130EA014009FE589FFFFEB010050E308009F0554
|
||||
S1130EB03500000B04E09DE41EFF2FE1A406004072
|
||||
S1130EC004E02DE5FF1001E25FFFFFEB290000EBDA
|
||||
S1130ED004E09DE41EFF2FE10120A0E304309FE520
|
||||
S1130EE00020C3E51EFF2FE1A106004004E02DE52C
|
||||
S1130EF01A0000EB04E09DE41EFF2FE11EFF2FE12A
|
||||
S1130F001EFF2FE10020A0E304309FE50120C3E58C
|
||||
S1130F101EFF2FE1E406004014309FE50120E0E3CA
|
||||
S1130F200320C3E50400C3E50220A0E3B424C3E125
|
||||
S1130F301EFF2FE1E40600401C309FE50020A0E3E3
|
||||
S1130F400020C3E5482083E54320C3E5B424C3E17E
|
||||
S1130F500220C3E50120C3E51EFF2FE1E4060040A3
|
||||
S1130F600C309FE50000D3E5000090E20100A013DF
|
||||
S1130F701EFF2FE1E40600400020A0E304309FE5BB
|
||||
S1130F804320C3E51EFF2FE1E406004030402DE975
|
||||
S1130F900040A0E10030D0E5FF0053E31200001A46
|
||||
S1130FA0D7FFFFEBC8349FE50120A0E30020C3E591
|
||||
S1130FB00010E0E30310C3E51010A0E30410C3E540
|
||||
S1130FC00010A0E30510C3E54000A0E30600C3E55C
|
||||
S1130FD00700C3E50810C3E50920C3E50A20C3E5FB
|
||||
S1130FE00820A0E3B424C3E1140100EA80249FE5AF
|
||||
S1130FF00020D2E5010052E31B01001AC93043E28C
|
||||
S1131000350053E303F19F970A0100EAC41200007C
|
||||
S113101038140000381400002C14000038140000A8
|
||||
S1131020381400001014000010130000D413000042
|
||||
S11310309C13000038140000381400003814000019
|
||||
S1131040381400003814000038140000381400006C
|
||||
S1131050381400003814000038140000381400005C
|
||||
S1131060381400003814000038140000381400004C
|
||||
S1131070381400003814000038140000381400003C
|
||||
S1131080381400003814000038140000381400002C
|
||||
S1131090381400003814000038140000381400001C
|
||||
S11310A0381400003814000038140000381400000C
|
||||
S11310B038140000AC11000034110000E4100000EA
|
||||
S11310C08C1100003814000038140000381400009B
|
||||
S11310D01C12000038140000601200006C120000A2
|
||||
S11310E0A01200000120D0E53F0052E30200009A64
|
||||
S11310F02200A0E387FFFFEBD00000EA70539FE5D6
|
||||
S1131100040085E2481095E530FEFFEB0030E0E393
|
||||
S11311100330C5E50120D4E5483095E5033082E08D
|
||||
S1131120483085E50130D4E5013083E2B434C5E1CB
|
||||
S1131130C20000EA0130D0E53F0053E30200009A08
|
||||
S11311402200A0E373FFFFEBBC0000EA041090E56B
|
||||
S11311501C539FE5481085E5040085E20120D4E591
|
||||
S11311601AFEFFEB0030E0E30330C5E50120D4E5CF
|
||||
S1131170483095E5033082E0483085E50130D4E518
|
||||
S1131180013083E2B434C5E1AC0000EAE0329FE50B
|
||||
S11311900020E0E30320C3E5042090E5482083E534
|
||||
S11311A00120A0E3B424C3E1A40000EAC0329FE517
|
||||
S11311B00020E0E30320C3E5481093E5043090E504
|
||||
S11311C0000053E30020A0030500000A0020A0E370
|
||||
S11311D00100D1E4002082E0FF2002E2013053E26A
|
||||
S11311E0FAFFFF1A88329FE50010A0E30720C3E549
|
||||
S11311F00810C3E50910C3E5222CA0E10A20C3E5C9
|
||||
S11312000120A0E30420C3E50510C3E50610C3E5EF
|
||||
S11312100820A0E3B424C3E1880000EA50329FE52B
|
||||
S11312200020E0E30320C3E548229FE5482083E54E
|
||||
S11312300020A0E30420C3E50520C3E50620C3E5A0
|
||||
S11312400710A0E30710C3E50820C3E50920C3E5A0
|
||||
S11312500A20C3E50820A0E3B424C3E1770000EA30
|
||||
S11312600000A0E32BFFFFEB740000EA00329FE5CF
|
||||
S11312700020E0E30320C3E50020A0E30420C3E54D
|
||||
S11312800110D3E50510C3E50620C3E50720C3E537
|
||||
S11312900820C3E50620A0E3B424C3E1670000EA04
|
||||
S11312A0CC419FE50030A0E30030C4E514FFFFEB20
|
||||
S11312B00030E0E30330C4E50130A0E3B434C4E11A
|
||||
S11312C05E0000EAA8319FE5480093E53F10A0E3E3
|
||||
S11312D0012084E2E7FDFFEB000050E30200001A66
|
||||
S11312E03100A0E30BFFFFEB540000EA80319FE5DF
|
||||
S11312F00020E0E30320C3E5482093E53F2082E299
|
||||
S1131300482083E50120A0E3B424C3E14B0000EAB4
|
||||
S11313100130D0E53E0053E30200009A2200A0E32E
|
||||
S1131320FCFEFFEB450000EA44319FE50020E0E3CA
|
||||
S11313300320C3E50120A0E3B424C3E10110D0E5F8
|
||||
S1131340000051E30500001AD6FDFFEB000050E356
|
||||
S11313503A00001A3100A0E3EEFEFFEB370000EA8A
|
||||
S11313600C319FE5480093E5022084E2C1FDFFEBC8
|
||||
S1131370000050E30200001A3100A0E3E5FEFFEB99
|
||||
S11313802E0000EAE8309FE50110D4E5482093E5FB
|
||||
S1131390022081E0482083E5280000EAD0309FE560
|
||||
S11313A00020E0E30320C3E50020A0E30420C3E51C
|
||||
S11313B00520C3E54010A0E30610C3E50720C3E5FC
|
||||
S11313C00820C3E50920C3E50720A0E3B424C3E152
|
||||
S11313D01A0000EA98309FE5480093E5041094E56C
|
||||
S11313E0A8FDFFEB000050E30200001A3100A0E367
|
||||
S11313F0C8FEFFEB110000EA74309FE50020E0E333
|
||||
S11314000320C3E50120A0E3B424C3E10B0000EAF8
|
||||
S113141090FDFFEB58309FE50020E0E30320C3E597
|
||||
S11314200120A0E3B424C3E1040000EA3100A0E3F6
|
||||
S1131430B8FEFFEB010000EA2000A0E3B5FEFFEBDD
|
||||
S11314402C309FE54330D3E5010053E31000A003A3
|
||||
S1131450B0FEFF0B18309FE50120A0E34320C3E555
|
||||
S1131460030083E2B414D3E194FEFFEB3040BDE803
|
||||
S10F14701EFF2FE1E4060040C015000040
|
||||
S113147C00200000002000000100000000400000DB
|
||||
S113148C00200000020000000060000000200000AA
|
||||
S113149C0300000000800000002000000400000095
|
||||
S11314AC00A00000002000000500000000C00000A7
|
||||
S11314BC002000000600000000E0000000200000F6
|
||||
S11314CC07000000000001000000010008000000FB
|
||||
S11314DC00000200000001000900000000000300ED
|
||||
S11314EC002000000A00000000200300002000007F
|
||||
S11314FC0B00000000400300002000000C00000062
|
||||
S113150C00600300002000000D00000000800300B8
|
||||
S113151C002000000E00000000A0030000200000CA
|
||||
S113152C0F00000000C003000020000010000000A9
|
||||
S113153C443A2F7573722F6665617365722F736FDE
|
||||
S113154C6674776172652F4F70656E424C542F54DC
|
||||
S113155C61726765742F44656D6F2F41524D375F0F
|
||||
S113156C4C5043323030305F4F6C696D65785F4C52
|
||||
S113157C50435F4C323239345F43726F7373776FFD
|
||||
S113158C726B732F426F6F742F6964652F2E2E2F1D
|
||||
S113159C2E2E2F2E2E2F2E2E2F536F757263652FFA
|
||||
S11315AC41524D375F4C5043323030302F7561729D
|
||||
S10F15BC742E63004F70656E424C5400A6
|
||||
S9030050AC
|
||||
|
|
|
@ -0,0 +1,643 @@
|
|||
/****************************************************************************************
|
||||
| Description: bootloader external flash driver source file
|
||||
| File Name: extflash.c
|
||||
|
|
||||
|----------------------------------------------------------------------------------------
|
||||
| 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 should have received a copy of the GNU General Public License along with OpenBLT.
|
||||
| If not, see <http://www.gnu.org/licenses/>.
|
||||
|
|
||||
| A special exception to the GPL is included to allow you to distribute a combined work
|
||||
| that includes OpenBLT without being obliged to provide the source code for any
|
||||
| proprietary components. The exception text is included at the bottom of the license
|
||||
| file <license.html>.
|
||||
|
|
||||
****************************************************************************************/
|
||||
|
||||
/****************************************************************************************
|
||||
* Include files
|
||||
****************************************************************************************/
|
||||
#include "boot.h" /* bootloader generic header */
|
||||
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
#define FLASH_INVALID_SECTOR (0xff)
|
||||
#define FLASH_INVALID_ADDRESS (0xffffffff)
|
||||
#define FLASH_WRITE_BLOCK_SIZE (512)
|
||||
#define FLASH_TOTAL_SECTORS (sizeof(flashLayout)/sizeof(flashLayout[0]))
|
||||
/* C3 Intel flash commands */
|
||||
#define FLASH_CMD_READ_ARRAY_MODE (0xFF)
|
||||
#define FLASH_CMD_READ_ID_MODE (0x90)
|
||||
#define FLASH_CMD_ERASE_MODE (0x20)
|
||||
#define FLASH_CMD_READ_STATUS_MODE (0x70)
|
||||
#define FLASH_CMD_CHANGE_LOCK_MODE (0x60)
|
||||
#define FLASH_CMD_UNLOCK_SECTOR (0xD0)
|
||||
#define FLASH_CMD_LOCK_SECTOR (0x01)
|
||||
#define FLASH_CMD_PROGRAM_MODE (0x40)
|
||||
#define FLASH_CMD_ERASE_CONFIRM (0xD0)
|
||||
#define FLASH_CMD_CLEAR_STATUS (0x50)
|
||||
/* C3 Intel flash info bits */
|
||||
#define FLASH_LOCK_BIT (0x01)
|
||||
#define FLASH_STATUS_READY_BIT (0x80)
|
||||
/* C3 Intel flash error codes */
|
||||
#define FLASH_ERR_LOCKED (0x02)
|
||||
#define FLASH_ERR_VPP_RANGE (0x08)
|
||||
#define FLASH_ERR_PROGRAM (0x10)
|
||||
#define FLASH_ERR_CMD_SEQ (0x10)
|
||||
#define FLASH_ERR_ERASE (0x20)
|
||||
/* flash operation timeout values */
|
||||
#define FLASH_ERASE_TIMEOUT ((blt_int32u)5000000)
|
||||
#define FLASH_PROGRAM_TIMEOUT ((blt_int32u)1000000)
|
||||
/* supported Intel C3 flash device */
|
||||
#define FLASH_DEV_MAN_ID ((blt_int16u)0x0089)
|
||||
#define FLASH_DEV_ID ((blt_int16u)0x88c3)
|
||||
/* address offsets for reading device information */
|
||||
#define FLASH_DEVINFO_MAN_ID ((blt_int16u)0x0000)
|
||||
#define FLASH_DEVINFO_DEV_ID ((blt_int16u)0x0001)
|
||||
#define FLASH_DEVINFO_LOCK_STATUS ((blt_int16u)0x0002)
|
||||
/* functions implemented in a macro for run-time and codesize optimization */
|
||||
#define ExtFlashGetManID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
|
||||
FLASH_DEVINFO_MAN_ID))
|
||||
#define ExtFlashGetDevID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
|
||||
FLASH_DEVINFO_DEV_ID))
|
||||
#define ExtFlashGetLockStatus(base) (ExtFlashGetDeviceInfo(base, \
|
||||
FLASH_DEVINFO_LOCK_STATUS))
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/* flash sector descriptor type */
|
||||
typedef struct
|
||||
{
|
||||
blt_addr sector_start; /* sector start address */
|
||||
blt_int32u sector_size; /* sector size in bytes */
|
||||
blt_int8u sector_num; /* sector number */
|
||||
} tFlashSector; /* flash sector description */
|
||||
|
||||
/* programming is done per block of max FLASH_WRITE_BLOCK_SIZE. for this a flash block
|
||||
* manager is implemented in this driver. this flash block manager depends on this
|
||||
* flash block info structure. It holds the base address of the flash block and the
|
||||
* data that should be programmed into the flash block.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
blt_addr base_addr;
|
||||
blt_int8u data[FLASH_WRITE_BLOCK_SIZE];
|
||||
} tFlashBlockInfo;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Function prototypes
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address);
|
||||
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr);
|
||||
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
|
||||
blt_int8u *data, blt_int16u len);
|
||||
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block);
|
||||
static blt_bool ExtFlashEraseSector(blt_addr sector_base);
|
||||
static blt_int16u ExtFlashGetDeviceInfo(blt_addr block_base, blt_int16u info);
|
||||
static void ExtFlashLockSector(blt_addr sector_base);
|
||||
static void ExtFlashUnlockSector(blt_addr sector_base);
|
||||
static blt_int8u ExtFlashGetSector(blt_addr address);
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local constant declarations
|
||||
****************************************************************************************/
|
||||
/* The current layout supports the 2MB external C3 Intel flash:
|
||||
* - manufacturer id = 0x0089
|
||||
* - device id = 0x88c3 (16 Mbit bottom boot device)
|
||||
* Note that what Intel calls a block in the user manual, is called a sector in this
|
||||
* driver.
|
||||
*/
|
||||
static const tFlashSector flashLayout[] =
|
||||
{
|
||||
{ 0x80000000, 0x02000, 0}, /* flash sector 0 - 8 kbyte */
|
||||
{ 0x80002000, 0x02000, 1}, /* flash sector 1 - 8 kbyte */
|
||||
{ 0x80004000, 0x02000, 2}, /* flash sector 2 - 8 kbyte */
|
||||
{ 0x80006000, 0x02000, 3}, /* flash sector 3 - 8 kbyte */
|
||||
{ 0x80008000, 0x02000, 4}, /* flash sector 4 - 8 kbyte */
|
||||
{ 0x8000A000, 0x02000, 5}, /* flash sector 5 - 8 kbyte */
|
||||
{ 0x8000C000, 0x02000, 6}, /* flash sector 6 - 8 kbyte */
|
||||
{ 0x8000E000, 0x02000, 7}, /* flash sector 7 - 8 kbyte */
|
||||
{ 0x80010000, 0x10000, 8}, /* flash sector 8 - 64 kbyte */
|
||||
{ 0x80020000, 0x10000, 9}, /* flash sector 9 - 64 kbyte */
|
||||
{ 0x80030000, 0x10000, 10}, /* flash sector 10 - 64 kbyte */
|
||||
{ 0x80040000, 0x10000, 11}, /* flash sector 11 - 64 kbyte */
|
||||
{ 0x80050000, 0x10000, 12}, /* flash sector 12 - 64 kbyte */
|
||||
{ 0x80060000, 0x10000, 13}, /* flash sector 13 - 64 kbyte */
|
||||
{ 0x80070000, 0x10000, 14}, /* flash sector 14 - 64 kbyte */
|
||||
{ 0x80080000, 0x10000, 15}, /* flash sector 15 - 64 kbyte */
|
||||
{ 0x80090000, 0x10000, 16}, /* flash sector 16 - 64 kbyte */
|
||||
{ 0x800A0000, 0x10000, 17}, /* flash sector 17 - 64 kbyte */
|
||||
{ 0x800B0000, 0x10000, 18}, /* flash sector 18 - 64 kbyte */
|
||||
{ 0x800C0000, 0x10000, 19}, /* flash sector 19 - 64 kbyte */
|
||||
{ 0x800D0000, 0x10000, 20}, /* flash sector 20 - 64 kbyte */
|
||||
{ 0x800E0000, 0x10000, 21}, /* flash sector 21 - 64 kbyte */
|
||||
{ 0x800F0000, 0x10000, 22}, /* flash sector 22 - 64 kbyte */
|
||||
{ 0x80100000, 0x10000, 23}, /* flash sector 23 - 64 kbyte */
|
||||
{ 0x80110000, 0x10000, 24}, /* flash sector 24 - 64 kbyte */
|
||||
{ 0x80120000, 0x10000, 25}, /* flash sector 25 - 64 kbyte */
|
||||
{ 0x80130000, 0x10000, 26}, /* flash sector 26 - 64 kbyte */
|
||||
{ 0x80140000, 0x10000, 27}, /* flash sector 27 - 64 kbyte */
|
||||
{ 0x80150000, 0x10000, 28}, /* flash sector 28 - 64 kbyte */
|
||||
{ 0x80160000, 0x10000, 29}, /* flash sector 29 - 64 kbyte */
|
||||
{ 0x80170000, 0x10000, 30}, /* flash sector 30 - 64 kbyte */
|
||||
{ 0x80180000, 0x10000, 31}, /* flash sector 31 - 64 kbyte */
|
||||
{ 0x80190000, 0x10000, 32}, /* flash sector 32 - 64 kbyte */
|
||||
{ 0x801A0000, 0x10000, 33}, /* flash sector 33 - 64 kbyte */
|
||||
{ 0x801B0000, 0x10000, 34}, /* flash sector 34 - 64 kbyte */
|
||||
{ 0x801C0000, 0x10000, 35}, /* flash sector 35 - 64 kbyte */
|
||||
{ 0x801D0000, 0x10000, 36}, /* flash sector 36 - 64 kbyte */
|
||||
{ 0x801E0000, 0x10000, 37}, /* flash sector 37 - 64 kbyte */
|
||||
{ 0x801F0000, 0x10000, 38} /* flash sector 38 - 64 kbyte */
|
||||
};
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local data declarations
|
||||
****************************************************************************************/
|
||||
/* The smallest amount of flash that can be programmed is FLASH_WRITE_BLOCK_SIZE. A flash
|
||||
* block manager is implemented in this driver and stores info in this variable. Whenever
|
||||
* new data should be flashed, it is first added to a RAM buffer, which is part of this
|
||||
* variable. Whenever the RAM buffer, which has the size of a flash block, is full or
|
||||
* data needs to be written to a different block, the contents of the RAM buffer are
|
||||
* programmed to flash. The flash block manager requires some software overhead, yet
|
||||
* results is faster flash programming because data is first harvested, ideally until
|
||||
* there is enough to program an entire flash block, before the flash device is actually
|
||||
* operated on.
|
||||
*/
|
||||
static tFlashBlockInfo blockInfo;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashInit
|
||||
** PARAMETER: none
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Initializes the flash driver.
|
||||
**
|
||||
****************************************************************************************/
|
||||
void ExtFlashInit(void)
|
||||
{
|
||||
/* init the flash block info struct by setting the address to an invalid address */
|
||||
blockInfo.base_addr = FLASH_INVALID_ADDRESS;
|
||||
/* check the flash device identification */
|
||||
if ((ExtFlashGetManID() != FLASH_DEV_MAN_ID) || (ExtFlashGetDevID() != FLASH_DEV_ID))
|
||||
{
|
||||
ASSERT_RT(BLT_FALSE);
|
||||
}
|
||||
} /*** end of ExtFlashInit ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashWrite
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Writes the data to flash.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
/* make sure the addresses are within the flash device */
|
||||
if ( (ExtFlashGetSector(addr) == FLASH_INVALID_SECTOR) || \
|
||||
(ExtFlashGetSector(addr+len-1) == FLASH_INVALID_SECTOR) )
|
||||
{
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
}
|
||||
|
||||
/* let the block manager handle it */
|
||||
if (ExtFlashAddToBlock(&blockInfo, addr, data, len) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NVM_ERROR;
|
||||
}
|
||||
return BLT_NVM_OKAY;
|
||||
} /*** end of FlashWrite ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashErase
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Erases the flash memory. Note that this function also checks that no
|
||||
** data is erased outside the flash memory region.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
blt_int8u first_sector;
|
||||
blt_int8u last_sector;
|
||||
blt_int8u sectorIdx;
|
||||
|
||||
/* obtain the first and last sector number */
|
||||
first_sector = ExtFlashGetSector(addr);
|
||||
last_sector = ExtFlashGetSector(addr+len-1);
|
||||
/* check them */
|
||||
if ( (first_sector == FLASH_INVALID_SECTOR) || (last_sector == FLASH_INVALID_SECTOR) )
|
||||
{
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
}
|
||||
/* erase the sectors one-by-one */
|
||||
for (sectorIdx = first_sector; sectorIdx <= last_sector; sectorIdx++)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* erase the sector */
|
||||
if (ExtFlashEraseSector(flashLayout[sectorIdx].sector_start) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NVM_ERROR;
|
||||
}
|
||||
}
|
||||
/* done so return the result of the operation */
|
||||
return BLT_NVM_OKAY;
|
||||
} /*** end of ExtFlashErase ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashDone
|
||||
** PARAMETER: none
|
||||
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Finilizes the flash driver operations.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool ExtFlashDone(void)
|
||||
{
|
||||
/* check if there is still data waiting to be programmed */
|
||||
if (blockInfo.base_addr != FLASH_INVALID_ADDRESS)
|
||||
{
|
||||
if (ExtFlashWriteBlock(&blockInfo) == BLT_FALSE)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* still here so all is okay */
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashDone ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashInitBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** address base address of the block data.
|
||||
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Copies data currently in flash to the block->data and sets the
|
||||
** base address.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
|
||||
{
|
||||
/* check address alignment */
|
||||
if ((address % FLASH_WRITE_BLOCK_SIZE) != 0)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
/* make sure that we are initializing a new block and not the same one */
|
||||
if (block->base_addr == address)
|
||||
{
|
||||
/* block already initialized, so nothing to do */
|
||||
return BLT_TRUE;
|
||||
}
|
||||
/* set the base address and copies the current data from flash */
|
||||
block->base_addr = address;
|
||||
CpuMemCopy((blt_addr)block->data, address, FLASH_WRITE_BLOCK_SIZE);
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashInitBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashSwitchBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** base_addr base address for the next block
|
||||
** RETURN VALUE: the pointer of the block info struct that is no being used, or a NULL
|
||||
** pointer in case of error.
|
||||
** DESCRIPTION: Switches blocks by programming the current one and initializing the
|
||||
** next.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
if (ExtFlashWriteBlock(block) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NULL;
|
||||
}
|
||||
/* initialize the new block when necessary */
|
||||
if (ExtFlashInitBlock(block, base_addr) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NULL;
|
||||
}
|
||||
/* still here to all is okay */
|
||||
return block;
|
||||
} /*** end of ExtFlashSwitchBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashAddToBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** address flash destination address
|
||||
** data pointer to the byte array with data
|
||||
** len number of bytes to add to the block
|
||||
** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Programming is done per block. This function adds data to the block
|
||||
** that is currently collecting data to be written to flash. If the
|
||||
** address is outside of the current block, the current block is written
|
||||
** to flash an a new block is initialized.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
|
||||
blt_int8u *data, blt_int16u len)
|
||||
{
|
||||
blt_addr current_base_addr;
|
||||
blt_int8u *dst;
|
||||
blt_int8u *src;
|
||||
|
||||
/* determine the current base address */
|
||||
current_base_addr = (address/FLASH_WRITE_BLOCK_SIZE)*FLASH_WRITE_BLOCK_SIZE;
|
||||
|
||||
/* make sure the blockInfo is not uninitialized */
|
||||
if (block->base_addr == FLASH_INVALID_ADDRESS)
|
||||
{
|
||||
/* initialize the blockInfo struct for the current block */
|
||||
if (ExtFlashInitBlock(block, current_base_addr) == BLT_FALSE)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* check if the new data fits in the current block */
|
||||
if (block->base_addr != current_base_addr)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
block = ExtFlashSwitchBlock(block, current_base_addr);
|
||||
if (block == BLT_NULL)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* add the data to the current block, but check for block overflow */
|
||||
dst = &(block->data[address - block->base_addr]);
|
||||
src = data;
|
||||
do
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* buffer overflow? */
|
||||
if ((blt_addr)(dst-&(block->data[0])) >= FLASH_WRITE_BLOCK_SIZE)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
block = ExtFlashSwitchBlock(block, current_base_addr+FLASH_WRITE_BLOCK_SIZE);
|
||||
if (block == BLT_NULL)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
/* reset destination pointer */
|
||||
dst = &(block->data[0]);
|
||||
}
|
||||
/* write the data to the buffer */
|
||||
*dst = *src;
|
||||
/* update pointers */
|
||||
dst++;
|
||||
src++;
|
||||
/* decrement byte counter */
|
||||
len--;
|
||||
}
|
||||
while (len > 0);
|
||||
/* still here so all is good */
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashAddToBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashWriteBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Programs FLASH_WRITE_BLOCK_SIZE bytes to flash from the block->data
|
||||
** array.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
volatile blt_int16u *pData;
|
||||
blt_bool result = BLT_TRUE;
|
||||
volatile blt_int32u timeout = 0;
|
||||
|
||||
/* unlock the sector */
|
||||
ExtFlashUnlockSector(block->base_addr);
|
||||
/* init pointer to valid address in the flash block */
|
||||
pAddr = (blt_int16u *)block->base_addr;
|
||||
/* init pointer to start of block data */
|
||||
pData = (blt_int16u *)block->data;
|
||||
/* program all block data 16-bits at a time */
|
||||
while ((blt_addr)pAddr < (block->base_addr+FLASH_WRITE_BLOCK_SIZE))
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* issue program setup command */
|
||||
*pAddr = FLASH_CMD_PROGRAM_MODE;
|
||||
/* write 16-bit data that is to be programmed to start programming operation */
|
||||
*pAddr = *pData;
|
||||
/* check status register for completion */
|
||||
*pAddr = FLASH_CMD_READ_STATUS_MODE;
|
||||
/* wait for completion or timeout */
|
||||
while( ((*pAddr & FLASH_STATUS_READY_BIT) == 0) && (timeout < FLASH_PROGRAM_TIMEOUT) )
|
||||
{
|
||||
timeout++;
|
||||
}
|
||||
/* check for possible errors */
|
||||
if ( (timeout >= FLASH_ERASE_TIMEOUT) || \
|
||||
((*pAddr & (FLASH_ERR_LOCKED | FLASH_ERR_VPP_RANGE | FLASH_ERR_PROGRAM))!= 0) )
|
||||
{
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
/* clear the status register */
|
||||
*pAddr = FLASH_CMD_CLEAR_STATUS;
|
||||
/* increment address and data pointers */
|
||||
pAddr++;
|
||||
pData++;
|
||||
}
|
||||
/* lock the sector. this also switches back to read array mode */
|
||||
ExtFlashLockSector(block->base_addr);
|
||||
/* inform the caller about the result */
|
||||
return result;
|
||||
} /*** end of ExtFlashWriteBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashEraseSector
|
||||
** PARAMETER: sector_base base address of the sector to erase.
|
||||
** RETURN VALUE: BLT_TRUE is erasure was successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Erases the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashEraseSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
blt_bool result = BLT_TRUE;
|
||||
volatile blt_int32u timeout = 0;
|
||||
|
||||
/* unlock the sector */
|
||||
ExtFlashUnlockSector(sector_base);
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* issue erase setup command */
|
||||
*pAddr = FLASH_CMD_ERASE_MODE;
|
||||
/* issue erase confirm command */
|
||||
*pAddr = FLASH_CMD_ERASE_CONFIRM;
|
||||
/* check status register for completion */
|
||||
*pAddr = FLASH_CMD_READ_STATUS_MODE;
|
||||
/* wait for completion or timeout */
|
||||
while( ((*pAddr & FLASH_STATUS_READY_BIT) == 0) && (timeout < FLASH_ERASE_TIMEOUT) )
|
||||
{
|
||||
timeout++;
|
||||
}
|
||||
/* check for possible errors */
|
||||
if ( (timeout >= FLASH_ERASE_TIMEOUT) || \
|
||||
((*pAddr & (FLASH_ERR_LOCKED | FLASH_ERR_VPP_RANGE | FLASH_ERR_ERASE))!= 0) )
|
||||
{
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
/* clear the status register */
|
||||
*pAddr = FLASH_CMD_CLEAR_STATUS;
|
||||
/* lock the sector. this also switches back to read array mode */
|
||||
ExtFlashLockSector(sector_base);
|
||||
/* inform the caller about the result */
|
||||
return result;
|
||||
} /*** end of ExtFlashEraseSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashLockSector
|
||||
** PARAMETER: sector_base base address of the sector to lock.
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Locks the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void ExtFlashLockSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
|
||||
/* no need to lock a sector that is already locked */
|
||||
if ((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* switch to change lock mode */
|
||||
*pAddr = FLASH_CMD_CHANGE_LOCK_MODE;
|
||||
/* unlock the sector */
|
||||
*pAddr = FLASH_CMD_LOCK_SECTOR;
|
||||
/* check that the sector is now actually locked */
|
||||
ASSERT_RT((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) != 0);
|
||||
} /*** end of ExtFlashLockSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashUnlockSector
|
||||
** PARAMETER: sector_base base address of the sector to unlock.
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Unlocks the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void ExtFlashUnlockSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
|
||||
/* no need to unlock a sector that is already unlocked */
|
||||
if ((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* switch to change lock mode */
|
||||
*pAddr = FLASH_CMD_CHANGE_LOCK_MODE;
|
||||
/* unlock the sector */
|
||||
*pAddr = FLASH_CMD_UNLOCK_SECTOR;
|
||||
/* check that the sector is now actually unlocked */
|
||||
ASSERT_RT((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) == 0);
|
||||
} /*** end of ExtFlashUnlockSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashGetDeviceInfo
|
||||
** PARAMETER: sector_base base address of the sector to get the info from.
|
||||
** info identifier to the type of info to obtain.
|
||||
** RETURN VALUE: device info.
|
||||
** DESCRIPTION: Obtains device information from the flash device.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
blt_int16u readData;
|
||||
|
||||
/* init pointer to any valid address in the flash device */
|
||||
pAddr = (blt_int16u *)sector_base + info;
|
||||
/* switch to read identifier mode */
|
||||
*pAddr = FLASH_CMD_READ_ID_MODE;
|
||||
/* read the info */
|
||||
readData = *pAddr;
|
||||
/* switch back to reading mode */
|
||||
*pAddr = FLASH_CMD_READ_ARRAY_MODE;
|
||||
/* return the result */
|
||||
return readData;
|
||||
} /*** end of ExtFlashGetDeviceInfo ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashGetSector
|
||||
** PARAMETER: address address in the flash sector
|
||||
** RETURN VALUE: flash sector number or FLASH_INVALID_SECTOR
|
||||
** DESCRIPTION: Determines the flash sector the address is in.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_int8u ExtFlashGetSector(blt_addr address)
|
||||
{
|
||||
blt_int8u sectorIdx;
|
||||
|
||||
/* search through the sectors to find the right one */
|
||||
for (sectorIdx = 0; sectorIdx < FLASH_TOTAL_SECTORS; sectorIdx++)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* is the address in this sector? */
|
||||
if ( (address >= flashLayout[sectorIdx].sector_start) && \
|
||||
(address < (flashLayout[sectorIdx].sector_start + \
|
||||
flashLayout[sectorIdx].sector_size)) )
|
||||
{
|
||||
/* return the sector number */
|
||||
return flashLayout[sectorIdx].sector_num;
|
||||
}
|
||||
}
|
||||
/* still here so no valid sector found */
|
||||
return FLASH_INVALID_SECTOR;
|
||||
} /*** end of ExtFlashGetSector ***/
|
||||
#endif
|
||||
|
||||
/*********************************** end of extflash.c *********************************/
|
|
@ -0,0 +1,45 @@
|
|||
/****************************************************************************************
|
||||
| Description: bootloader external flash driver header file
|
||||
| File Name: extflash.h
|
||||
|
|
||||
|----------------------------------------------------------------------------------------
|
||||
| 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 should have received a copy of the GNU General Public License along with OpenBLT.
|
||||
| If not, see <http://www.gnu.org/licenses/>.
|
||||
|
|
||||
| A special exception to the GPL is included to allow you to distribute a combined work
|
||||
| that includes OpenBLT without being obliged to provide the source code for any
|
||||
| proprietary components. The exception text is included at the bottom of the license
|
||||
| file <license.html>.
|
||||
|
|
||||
****************************************************************************************/
|
||||
#ifndef EXTFLASH_H
|
||||
#define EXTFLASH_H
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Function prototypes
|
||||
****************************************************************************************/
|
||||
void ExtFlashInit(void);
|
||||
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data);
|
||||
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len);
|
||||
blt_bool ExtFlashDone(void);
|
||||
#endif
|
||||
|
||||
#endif /* EXTFLASH_H */
|
||||
/*********************************** end of extflash.h *********************************/
|
|
@ -80,6 +80,7 @@ blt_bool BackDoorEntryHook(void)
|
|||
****************************************************************************************/
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
#include "extflash.h"
|
||||
/****************************************************************************************
|
||||
** NAME: NvmInitHook
|
||||
** PARAMETER: none
|
||||
|
@ -90,6 +91,8 @@ blt_bool BackDoorEntryHook(void)
|
|||
****************************************************************************************/
|
||||
void NvmInitHook(void)
|
||||
{
|
||||
/* init the external flash driver */
|
||||
ExtFlashInit();
|
||||
} /*** end of NvmInitHook ***/
|
||||
|
||||
|
||||
|
@ -98,20 +101,21 @@ void NvmInitHook(void)
|
|||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the write
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver write
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** been written yet.
|
||||
**
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
/* attempt to write with the external flash driver */
|
||||
return ExtFlashWrite(addr, len, data);
|
||||
} /*** end of NvmWriteHook ***/
|
||||
|
||||
|
||||
|
@ -119,19 +123,20 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
** NAME: NvmEraseHook
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the erase
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver erase
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** hasn't been erased yet.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
/* attempt to erase with the external flash driver */
|
||||
return ExtFlashErase(addr, len);
|
||||
} /*** end of NvmEraseHook ***/
|
||||
|
||||
|
||||
|
@ -144,7 +149,8 @@ blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
|||
****************************************************************************************/
|
||||
blt_bool NvmDoneHook(void)
|
||||
{
|
||||
return BLT_TRUE;
|
||||
/* finish up the operations of the external flash driver */
|
||||
return ExtFlashDone();
|
||||
} /*** end of NvmDoneHook ***/
|
||||
#endif /* BOOT_NVM_HOOKS_ENABLE > 0 */
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE CrossStudio_Project_File>
|
||||
<solution Name="lpc2294_crossworks" target="8" version="2">
|
||||
<project Name="openbtl_olimex_lpc_l2294_20mhz">
|
||||
<configuration Name="Common" arm_library_optimization="Fast" arm_simulator_memory_simulation_filename="$(PackagesDir)/targets/Philips_LPC210X/LPC2000SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="LPC22;0x20000;0x4000;0x400000;0x100000;0x0;0x0" arm_target_loader_parameter="20000000" arm_use_gcc_libraries="No" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="__TARGET_PROCESSOR=LPC2294;OSCILLATOR_CLOCK_FREQUENCY=20000000" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARM7_LPC2000;$(ProjectDir)/../../../../Source/ARM7_LPC2000/Crossworks" gcc_entry_point="Reset_Handler" gcc_optimization_level="Optimize For Size" gcc_strip_symbols="No" link_include_standard_libraries="Yes" link_include_startup_code="No" linker_DebugIO_enabled="No" linker_additional_files="$(PackagesDir)/lib/liblpc2000$(LibExt)$(LIB)" linker_additional_options="" linker_keep_symbols="_vectors;EntryFromProg" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" project_directory="" project_type="Executable"/>
|
||||
<configuration Name="Common" arm_library_optimization="Fast" arm_simulator_memory_simulation_filename="$(PackagesDir)/targets/Philips_LPC210X/LPC2000SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="LPC22;0x20000;0x4000;0x400000;0x100000;0x0;0x0" arm_target_loader_parameter="20000000" arm_use_gcc_libraries="No" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="__TARGET_PROCESSOR=LPC2294;OSCILLATOR_CLOCK_FREQUENCY=20000000" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARM7_LPC2000;$(ProjectDir)/../../../../Source/ARM7_LPC2000/Crossworks" gcc_entry_point="Reset_Handler" gcc_optimization_level="Level 1" gcc_strip_symbols="No" link_include_standard_libraries="Yes" link_include_startup_code="No" linker_DebugIO_enabled="No" linker_additional_files="$(PackagesDir)/lib/liblpc2000$(LibExt)$(LIB)" linker_additional_options="" linker_keep_symbols="_vectors;EntryFromProg" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" project_directory="" project_type="Executable"/>
|
||||
<configuration Name="RAM" target_reset_script="RAMReset()"/>
|
||||
<configuration Name="Flash" arm_target_flash_loader_file_path="$(PackagesDir)/targets/Olimex_LPC_E2294/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" target_reset_script="FLASHReset()"/>
|
||||
<folder Name="Source Files">
|
||||
|
@ -12,6 +12,8 @@
|
|||
<file file_name="../hooks.c"/>
|
||||
<file file_name="../lpc2294.h"/>
|
||||
<file file_name="../main.c"/>
|
||||
<file file_name="../extflash.c"/>
|
||||
<file file_name="../extflash.h"/>
|
||||
</folder>
|
||||
</folder>
|
||||
<folder Name="Source">
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
</ETMWindow>
|
||||
<ExecutionCountWindow/>
|
||||
<Memory1>
|
||||
<MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
|
||||
<MemoryWindow autoEvaluate="0" addressText="0x80000200" numColumns="8" sizeText="32" dataSize="1" radix="16" addressSpace="" />
|
||||
</Memory1>
|
||||
<Memory2>
|
||||
<MemoryWindow autoEvaluate="0" addressText="" numColumns="8" sizeText="" dataSize="1" radix="16" addressSpace="" />
|
||||
|
@ -55,6 +55,9 @@
|
|||
<Watch4>
|
||||
<Watches active="0" update="Never" />
|
||||
</Watch4>
|
||||
<Files/>
|
||||
<Files>
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\main.c" y="53" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\main.c" left="0" selected="0" name="unnamed" top="47" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="12" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\config.h" y="76" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\config.h" left="0" selected="1" name="unnamed" top="72" />
|
||||
</Files>
|
||||
<ARMCrossStudioWindow activeProject="openbtl_olimex_lpc_l2294_20mhz" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388479" debugSearchPath="" buildConfiguration="ARM Flash Debug" />
|
||||
</session>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
/****************************************************************************************
|
||||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
/* EXTERNAL MEMORY CONTROLLER (EMC) */
|
||||
/* EXTERNAL MEMORY CONTROLLER (EMC) */
|
||||
#define BCFG0 (*((volatile unsigned long *) 0xFFE00000)) /* lpc22xx only */
|
||||
#define BCFG1 (*((volatile unsigned long *) 0xFFE00004)) /* lpc22xx only */
|
||||
#define BCFG2 (*((volatile unsigned long *) 0xFFE00008)) /* lpc22xx only */
|
||||
|
|
|
@ -144,6 +144,29 @@ static void Init(void)
|
|||
MAMCR = 0x2;
|
||||
/* setting peripheral Clock (pclk) to System Clock (cclk) */
|
||||
VPBDIV = 0x1;
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/* in this the external memory on the Olimex LPC-L2294 board is used so configure
|
||||
* the memory banks for the external flash EEPROM and RAM
|
||||
*/
|
||||
/* external flash EEPROM:
|
||||
* IDCY=3 (idle timing)
|
||||
* WST1=4 (read timing)
|
||||
* RBLE=1
|
||||
* WST2=6 (write timing)
|
||||
* MW=1 (16-bit data bus)
|
||||
*/
|
||||
BCFG0 = (0x3 << 0) | (0x4 << 5) | (0x1 << 10) | (0x6 << 11) | (0x1 << 28);
|
||||
/* external RAM:
|
||||
* IDCY=0 (idle timing)
|
||||
* WST1=0 (read timing)
|
||||
* RBLE=1
|
||||
* WST2=0 (write timing)
|
||||
* MW=2 (32-bit data bus)
|
||||
*/
|
||||
BCFG1 = (0x0 << 0) | (0x0 << 5) | (0x1 << 10) | (0x0 << 11) | (0x2 << 28);
|
||||
/* configure use of data bus and strobe pins for the external memory */
|
||||
PINSEL2 = 0x0F000924;
|
||||
#endif
|
||||
#if (BOOT_COM_UART_ENABLE > 0)
|
||||
/* configure P0.0 for UART0 Tx and P0.1 for UART0 Rx functionality */
|
||||
PINSEL0 |= 0x05;
|
||||
|
|
Binary file not shown.
|
@ -785,7 +785,7 @@ VPB_Peripherals 0xe0000000 0x00200000 xw
|
|||
BANK3 0x83000000 0x01000000 xw
|
||||
BANK2 0x82000000 0x01000000 xw
|
||||
External_SRAM 0x81000000 0x00100000 xw
|
||||
External_FLASH 0x80000000 0x00400000 xr
|
||||
External_FLASH 0x80000000 0x00200000 xr
|
||||
SRAM 0x40000200 0x00003ce0 xw
|
||||
FLASH 0x00002000 0x0003e000 xr
|
||||
*default* 0x00000000 0xffffffff
|
||||
|
@ -806,7 +806,7 @@ Linker script and memory map
|
|||
0x81000000 __External_SRAM_segment_start__ = 0x81000000
|
||||
0x81100000 __External_SRAM_segment_end__ = 0x81100000
|
||||
0x80000000 __External_FLASH_segment_start__ = 0x80000000
|
||||
0x80400000 __External_FLASH_segment_end__ = 0x80400000
|
||||
0x80200000 __External_FLASH_segment_end__ = 0x80200000
|
||||
0x40002000 __SRAM_segment_start__ = 0x40002000
|
||||
0x40003ee0 __SRAM_segment_end__ = 0x40003ee0
|
||||
0x00002000 __FLASH_segment_start__ = 0x2000
|
||||
|
@ -1310,20 +1310,20 @@ OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_
|
|||
.debug_ranges 0x000007e0 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v4t_a_le.a(user_libc.o)
|
||||
.debug_ranges 0x00000830 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libarm_v4t_a_le.a(libarm_run_dcc_port_server.o)
|
||||
|
||||
.debug_line 0x00000000 0x12a0
|
||||
.debug_line 0x00000000 0x12a1
|
||||
.debug_line 0x00000000 0xec ARM Flash Debug/../../obj/boot.o
|
||||
.debug_line 0x000000ec 0x11e ARM Flash Debug/../../obj/cstart.o
|
||||
.debug_line 0x0000020a 0xe8 ARM Flash Debug/../../obj/irq.o
|
||||
.debug_line 0x000002f2 0xb6 ARM Flash Debug/../../obj/led.o
|
||||
.debug_line 0x000003a8 0xe9 ARM Flash Debug/../../obj/main.o
|
||||
.debug_line 0x00000491 0xd5 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_line 0x00000566 0x9d ARM Flash Debug/../../obj/vectors.o
|
||||
.debug_line 0x00000603 0x75 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(__vfprintf_int.o)
|
||||
.debug_line 0x00000678 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(__vfscanf_int.o)
|
||||
.debug_line 0x000006ec 0x54f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(libc2.o)
|
||||
.debug_line 0x00000c3b 0x56a C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v4t_a_le.a(libdebugio.o)
|
||||
.debug_line 0x000011a5 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v4t_a_le.a(user_libc.o)
|
||||
.debug_line 0x00001219 0x87 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libarm_v4t_a_le.a(libarm_run_dcc_port_server.o)
|
||||
.debug_line 0x000003a8 0xea ARM Flash Debug/../../obj/main.o
|
||||
.debug_line 0x00000492 0xd5 ARM Flash Debug/../../obj/timer.o
|
||||
.debug_line 0x00000567 0x9d ARM Flash Debug/../../obj/vectors.o
|
||||
.debug_line 0x00000604 0x75 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(__vfprintf_int.o)
|
||||
.debug_line 0x00000679 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(__vfscanf_int.o)
|
||||
.debug_line 0x000006ed 0x54f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_v4t_a_le.a(libc2.o)
|
||||
.debug_line 0x00000c3c 0x56a C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v4t_a_le.a(libdebugio.o)
|
||||
.debug_line 0x000011a6 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v4t_a_le.a(user_libc.o)
|
||||
.debug_line 0x0000121a 0x87 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libarm_v4t_a_le.a(libarm_run_dcc_port_server.o)
|
||||
|
||||
.debug_str 0x00000000 0xfc6
|
||||
.debug_str 0x00000000 0x132 ARM Flash Debug/../../obj/boot.o
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE CrossStudio_Project_File>
|
||||
<solution Name="lpc2294_crossworks" target="8" version="2">
|
||||
<project Name="demoprog_olimex_lpc_l2294_20mhz">
|
||||
<configuration Name="Common" arm_simulator_memory_simulation_filename="$(PackagesDir)/targets/Philips_LPC210X/LPC2000SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="LPC22;0x20000;0x4000;0x400000;0x100000;0x0;0x0" arm_target_loader_parameter="20000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="__TARGET_PROCESSOR=LPC2294;OSCILLATOR_CLOCK_FREQUENCY=20000000" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARM7_LPC2000;$(ProjectDir)/../../../../Source/ARM7_LPC2000/Crossworks" gcc_entry_point="_start" gcc_optimization_level="None" link_include_standard_libraries="Yes" link_include_startup_code="No" linker_DebugIO_enabled="Yes" linker_additional_files="$(PackagesDir)/lib/liblpc2000$(LibExt)$(LIB)" linker_additional_options="" linker_keep_symbols="_vectors;EntryFromProg" linker_output_format="srec" project_directory="" project_type="Executable"/>
|
||||
<configuration Name="Common" arm_simulator_memory_simulation_filename="$(PackagesDir)/targets/Philips_LPC210X/LPC2000SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="LPC22;0x20000;0x4000;0x400000;0x100000;0x0;0x0" arm_target_loader_parameter="20000000" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_preprocessor_definitions="__TARGET_PROCESSOR=LPC2294;OSCILLATOR_CLOCK_FREQUENCY=20000000" c_user_include_directories="$(ProjectDir)/..;$(ProjectDir)/../../../../Source;$(ProjectDir)/../../../../Source/ARM7_LPC2000;$(ProjectDir)/../../../../Source/ARM7_LPC2000/Crossworks" gcc_entry_point="_start" gcc_optimization_level="None" link_include_standard_libraries="Yes" link_include_startup_code="No" linker_DebugIO_enabled="Yes" linker_additional_files="$(PackagesDir)/lib/liblpc2000$(LibExt)$(LIB)" linker_additional_options="" linker_keep_symbols="_vectors;EntryFromProg;ExtFlashTestData" linker_output_format="srec" project_directory="" project_type="Executable"/>
|
||||
<configuration Name="RAM" target_reset_script="RAMReset()"/>
|
||||
<configuration Name="Flash" arm_target_flash_loader_file_path="$(PackagesDir)/targets/Olimex_LPC_E2294/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" target_reset_script="FLASHReset()"/>
|
||||
<folder Name="Source Files">
|
||||
|
|
|
@ -55,6 +55,9 @@
|
|||
<Watch4>
|
||||
<Watches active="0" update="Never" />
|
||||
</Watch4>
|
||||
<Files/>
|
||||
<Files>
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" y="0" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" left="0" selected="1" name="unnamed" top="30" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\boot.c" y="0" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\boot.c" left="0" selected="0" name="unnamed" top="0" />
|
||||
</Files>
|
||||
<ARMCrossStudioWindow activeProject="demoprog_olimex_lpc_l2294_20mhz" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388479" debugSearchPath="" buildConfiguration="ARM Flash Debug" />
|
||||
</session>
|
||||
|
|
|
@ -41,6 +41,25 @@
|
|||
static void Init(void);
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Constant data declarations
|
||||
****************************************************************************************/
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/* ROM data allocated to the external flash on the Olimex LPC-L2294 board to test the
|
||||
* programming of data in external flash. To test programming with the additional
|
||||
* external flash driver, build the bootloader and this program with configurable
|
||||
* BOOT_NVM_HOOKS_ENABLE set to 1 in config.h
|
||||
*/
|
||||
__attribute__((section (".rodata2"))) const unsigned long ExtFlashTestData[] =
|
||||
{
|
||||
0x00000000, 0x11111111, 0x22222222, 0x33333333,
|
||||
0x44444444, 0x55555555, 0x66666666, 0x77777777,
|
||||
0x88888888, 0x99999999, 0xAAAAAAAA, 0xBBBBBBBB,
|
||||
0xCCCCCCCC, 0xDDDDDDDD, 0xEEEEEEEE, 0xFFFFFFFF
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: main
|
||||
** PARAMETER: none
|
||||
|
|
|
@ -6,7 +6,7 @@ MEMORY
|
|||
BANK3 (wx) : ORIGIN = 0x83000000, LENGTH = 0x01000000
|
||||
BANK2 (wx) : ORIGIN = 0x82000000, LENGTH = 0x01000000
|
||||
External_SRAM (wx) : ORIGIN = 0x81000000, LENGTH = 0x00100000
|
||||
External_FLASH (rx) : ORIGIN = 0x80000000, LENGTH = 0x00400000
|
||||
External_FLASH (rx) : ORIGIN = 0x80000000, LENGTH = 0x00200000
|
||||
SRAM (wx) : ORIGIN = 0x40000200, LENGTH = 0x00003CE0
|
||||
FLASH (rx) : ORIGIN = 0x00002000, LENGTH = 0x0003E000
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ SECTIONS
|
|||
__External_SRAM_segment_start__ = 0x81000000;
|
||||
__External_SRAM_segment_end__ = 0x81100000;
|
||||
__External_FLASH_segment_start__ = 0x80000000;
|
||||
__External_FLASH_segment_end__ = 0x80400000;
|
||||
__External_FLASH_segment_end__ = 0x80200000;
|
||||
__SRAM_segment_start__ = 0x40002000;
|
||||
__SRAM_segment_end__ = 0x40003EE0;
|
||||
__FLASH_segment_start__ = 0x00002000;
|
||||
|
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
:1000000018F09FE518F09FE518F09FE518F09FE5C0
|
||||
:1000100018F09FE50000A0E118F09FE510F09FE5C3
|
||||
:100020005000000040150000A00000004015000036
|
||||
:1000300040150000F014000018150000000000003A
|
||||
:10002000500000009C120000A00000009C12000084
|
||||
:100030009C1200006412000080120000000000000A
|
||||
:10004000E4009FE50110A0E3001080E5000000EF50
|
||||
:10005000D8009FE5DBF021E300D0A0E1040040E2FE
|
||||
:10006000D7F021E300D0A0E1040040E2D1F021E389
|
||||
|
@ -12,351 +12,308 @@
|
|||
:1000B000D7F021E300D0A0E1040040E2D1F021E339
|
||||
:1000C00000D0A0E1040040E2D2F021E300D0A0E1A2
|
||||
:1000D000040040E2D3F021E300D0A0E1040040E2BC
|
||||
:1000E000DFF021E300D0A0E1010000EBB80000EB5D
|
||||
:1000E000DFF021E300D0A0E1010000EB810000EB94
|
||||
:1000F000140000EA38109FE538209FE538309FE56E
|
||||
:10010000030052E10400913404008234FBFFFF3A03
|
||||
:100110000000A0E324109FE524209FE5020051E1A8
|
||||
:1001200004008134FCFFFF3A1EFF2FE140C01FE0B6
|
||||
:10013000DC1E004088160000000200400002004063
|
||||
:1001400000020040F406004010402DE908D04DE2C6
|
||||
:10015000FC309FE5003093E504308DE503308DE2FF
|
||||
:100160000040A0E3EC109FE5EC209FE50100F3E5E3
|
||||
:10017000910000E0260A40E2160E40E2020050E143
|
||||
:100180000800009A014084E2FF4004E2040054E3C6
|
||||
:10019000F5FFFF1AC4009FE57010A0E3C0309FE593
|
||||
:1001A0000FE0A0E113FF2FE18422A0E1022082E30F
|
||||
:1001B000FF2002E2AC309FE58420C3E55510E0E368
|
||||
:1001C0008C10C3E55520A0E38C20C3E50100A0E31B
|
||||
:1001D0008000C3E58C10C3E58C20C3E5B828D3E1CB
|
||||
:1001E000010B12E3FCFFFF0A78309FE50320A0E338
|
||||
:1001F0008020C3E55520E0E38C20C3E5AB2082E2FC
|
||||
:100200008C20C3E50020A0E30020C3E5042082E2A7
|
||||
:100210000420C3E50220A0E30020C3E50120A0E301
|
||||
:10022000013C83E20020C3E53C309FE5002093E5DC
|
||||
:10023000052082E3002083E530309FE50FE0A0E158
|
||||
:1002400013FF2FE128409FE50FE0A0E114FF2FE10D
|
||||
:10025000FCFFFFEA64150000C0D40100A08002008A
|
||||
:10026000301600007C0A000000C01FE000C002E061
|
||||
:1002700078020000C402000008402DE930309FE5FC
|
||||
:100280000FE0A0E113FF2FE128309FE50FE0A0E190
|
||||
:1002900013FF2FE120309FE50FE0A0E113FF2FE1D6
|
||||
:1002A00018309FE50FE0A0E113FF2FE10840BDE803
|
||||
:1002B0001EFF2FE1740A0000440A0000800D0000B8
|
||||
:1002C0000003000008402DE924309FE50FE0A0E185
|
||||
:1002D00013FF2FE11C309FE50FE0A0E113FF2FE19A
|
||||
:1002E00014309FE50FE0A0E113FF2FE10840BDE8C7
|
||||
:1002F0001EFF2FE1780A000068030000C809000013
|
||||
:1003000004E02DE50CD04DE20030E0E30430CDE513
|
||||
:100310000030A0E30530CDE538309FE50FE0A0E1E7
|
||||
:1003200013FF2FE130309FE50FE0A0E113FF2FE135
|
||||
:1003300028309FE50030D3E5010053E304008D022F
|
||||
:100340001C309F050FE0A00113FF2F010CD08DE2A0
|
||||
:1003500004E09DE41EFF2FE148040000DC0B0000D8
|
||||
:10036000000200409C04000008402DE924009FE5A5
|
||||
:1003700024309FE50FE0A0E113FF2FE1010050E3DF
|
||||
:1003800010009F0514309F050FE0A00113FF2F01FF
|
||||
:100390000840BDE81EFF2FE104020040C40C00002D
|
||||
:1003A0009C04000008402DE9FF1001E218309FE591
|
||||
:1003B0000FE0A0E113FF2FE110309FE50FE0A0E177
|
||||
:1003C00013FF2FE10840BDE81EFF2FE11C0C0000C9
|
||||
:1003D000880400000120A0E304309FE50020C3E56D
|
||||
:1003E0001EFF2FE10002004004309FE50000D3E52E
|
||||
:1003F0001EFF2FE10002004008402DE90C309FE570
|
||||
:100400000FE0A0E113FF2FE10840BDE81EFF2FE140
|
||||
:10041000700400000020A0E304309FE50120C3E544
|
||||
:100420001EFF2FE14402004014309FE50120E0E36D
|
||||
:100430000320C3E50400C3E50220A0E3B424C3E124
|
||||
:100440001EFF2FE1440200401C309FE50020A0E386
|
||||
:100450000020C3E5482083E54320C3E5B424C3E17D
|
||||
:100460000220C3E50120C3E51EFF2FE14402004046
|
||||
:100470000C309FE50000D3E5000050E20100A0131E
|
||||
:100480001EFF2FE1440200400020A0E304309FE55E
|
||||
:100490004320C3E51EFF2FE14402004038402DE910
|
||||
:1004A0000040A0E10030D0E5FF0053E31200001A45
|
||||
:1004B000D7FFFFEBEC349FE50120A0E30020C3E56C
|
||||
:1004C0000010E0E30310C3E51010A0E30410C3E53F
|
||||
:1004D0000010A0E30510C3E54000A0E30600C3E55B
|
||||
:1004E0000700C3E50810C3E50920C3E50A20C3E5FA
|
||||
:1004F0000820A0E3B424C3E11B0100EAA4249FE583
|
||||
:100500000020D2E5010052E32401001AC93043E281
|
||||
:10051000350053E303F19F97110100EAC80700007B
|
||||
:100520006409000064090000580900006409000023
|
||||
:1005300064090000340900001C080000F0080000F5
|
||||
:10054000B8080000640900006409000064090000A4
|
||||
:1005500064090000640900006409000064090000E7
|
||||
:1005600064090000640900006409000064090000D7
|
||||
:1005700064090000640900006409000064090000C7
|
||||
:1005800064090000640900006409000064090000B7
|
||||
:1005900064090000640900006409000064090000A7
|
||||
:1005A0006409000064090000640900006409000097
|
||||
:1005B0006409000064090000640900006409000087
|
||||
:1005C00064090000CC0600004C060000F4050000A1
|
||||
:1005D000AC06000064090000640900006409000022
|
||||
:1005E0002C07000064090000640700007007000089
|
||||
:1005F000A40700000120D0E53F0052E30200009A6A
|
||||
:100600002200A0E387FFFFEBD70000EA94539FE5A9
|
||||
:10061000040085E2481095E58C339FE50FE0A0E1EA
|
||||
:1006200013FF2FE10030E0E30330C5E50120D4E5FE
|
||||
:10063000483095E5033082E0483085E50130D4E567
|
||||
:10064000013083E2B434C5E1C70000EA0130D0E5EF
|
||||
:100650003F0053E30200009A2200A0E371FFFFEB8A
|
||||
:10066000C10000EA041090E538539FE5481085E585
|
||||
:10067000040085E20120D4E52C339FE50FE0A0E1E2
|
||||
:1006800013FF2FE10030E0E30330C5E50120D4E59E
|
||||
:10069000483095E5033082E0483085E50130D4E507
|
||||
:1006A000013083E2B434C5E1AF0000EAF4329FE5E3
|
||||
:1006B0000020E0E30320C3E5042090E5482083E523
|
||||
:1006C0000120A0E3B424C3E1A70000EAD4C29FE55F
|
||||
:1006D0000030E0E30330CCE548109CE5043090E5C1
|
||||
:1006E000000053E30020A0030500000A0020A0E35F
|
||||
:1006F0000100D1E4002082E0FF2002E2013053E259
|
||||
:10070000FAFFFF1A07208CE598329FE50120A0E34D
|
||||
:100710000420C3E50020A0E30520C3E50620C3E5CF
|
||||
:100720000820A0E3B424C3E18F0000EA74329FE5FF
|
||||
:100730000020E0E30320C3E570229FE5482083E525
|
||||
:100740000020A0E30420C3E50520C3E50620C3E59F
|
||||
:100750000720A0E3072083E50820A0E3B424C3E139
|
||||
:10076000810000EA0000A0E32EFFFFEB7E0000EA1C
|
||||
:1007700030329FE50020E0E30320C3E50020A0E342
|
||||
:100780000420C3E50110D3E50510C3E50620C3E549
|
||||
:100790000720C3E50820C3E50620A0E3B424C3E195
|
||||
:1007A000710000EAFC419FE50030A0E30030C4E5A1
|
||||
:1007B00017FFFFEB0030E0E30330C4E50130A0E3B6
|
||||
:1007C000B434C4E1680000EAD8319FE5480093E5FD
|
||||
:1007D0003F10A0E3012084E2D4319FE50FE0A0E1C7
|
||||
:1007E00013FF2FE1000050E30200001A3100A0E3E4
|
||||
:1007F0000CFFFFEB5C0000EAA8319FE50020E0E37E
|
||||
:100800000320C3E5482093E53F2082E2482083E5AA
|
||||
:100810000120A0E3B424C3E1530000EA0130D0E595
|
||||
:100820003E0053E30200009A2200A0E3FDFEFFEB2E
|
||||
:100830004D0000EA6C319FE50020E0E30320C3E5B2
|
||||
:100840000120A0E3B424C3E10110D0E5000051E38E
|
||||
:100850000700001A5C319FE50FE0A0E113FF2FE1D4
|
||||
:10086000000050E34000001A3100A0E3EDFEFFEB72
|
||||
:100870003D0000EA2C319FE5480093E5022084E228
|
||||
:100880002C319FE50FE0A0E113FF2FE1000050E3C2
|
||||
:100890000200001A3100A0E3E2FEFFEB320000EAA2
|
||||
:1008A00000319FE50110D4E5482093E5022081E066
|
||||
:1008B000482083E52C0000EAE8309FE50020E0E3D3
|
||||
:1008C0000320C3E50020A0E30420C3E50520C3E521
|
||||
:1008D0004010A0E30610C3E50720C3E50820C3E5E8
|
||||
:1008E0000920C3E50720A0E3B424C3E11E0000EA09
|
||||
:1008F000B0309FE5480093E5041094E5B8309FE5DB
|
||||
:100900000FE0A0E113FF2FE1000050E30200001A06
|
||||
:100910003100A0E3C3FEFFEB130000EA84309FE543
|
||||
:100920000020E0E30320C3E50120A0E3B424C3E1F9
|
||||
:100930000D0000EA84309FE50FE0A0E113FF2FE1F6
|
||||
:1009400060309FE50020E0E30320C3E50120A0E341
|
||||
:10095000B424C3E1040000EA3100A0E3B1FEFFEBE0
|
||||
:10096000010000EA2000A0E3AEFEFFEB34309FE57B
|
||||
:100970004330D3E5010053E31000A003A9FEFF0BB1
|
||||
:1009800020309FE50120A0E34320C3E5030083E27C
|
||||
:10099000B414D3E128309FE50FE0A0E113FF2FE16D
|
||||
:1009A0003840BDE81EFF2FE144020040A40A0000C9
|
||||
:1009B000681500009C0D0000F00D0000B80D00004F
|
||||
:1009C000380B0000A403000008402DE95C309FE5CF
|
||||
:1009D0000FE0A0E113FF2FE1010050E31100000A36
|
||||
:1009E0004C309FE50030D3E5010053E30D00001AC1
|
||||
:1009F00040309FE50FE0A0E113FF2FE1310050E30D
|
||||
:100A00000800009A0020A0E324309FE50020C3E501
|
||||
:100A100024309FE50FE0A0E113FF2FE11C309FE59C
|
||||
:100A20000FE0A0E113FF2FE10840BDE81EFF2FE11A
|
||||
:100A3000F803000090020040C80E0000240E0000E1
|
||||
:100A4000E80A000008402DE90120A0E318309FE5E6
|
||||
:100A50000020C3E514309FE50FE0A0E113FF2FE174
|
||||
:100A6000D8FFFFEB0840BDE81EFF2FE190020040D9
|
||||
:100A7000800E00001EFF2FE11EFF2FE110402DE928
|
||||
:100A800014309FE5000083E5041083E50C409FE5EA
|
||||
:100A90000FE0A0E114FF2FE1FCFFFFEA9402004009
|
||||
:100AA000780A0000F8402DE90140A0E1005052E230
|
||||
:100AB0000900000A0060A0E124709FE50130D4E441
|
||||
:100AC0000130C6E40FE0A0E117FF2FE1015045E23D
|
||||
:100AD0000558A0E12558B0E1F7FFFF1AF840BDE83E
|
||||
:100AE0001EFF2FE1780A000008402DE93C309FE509
|
||||
:100AF0000FE0A0E113FF2FE1000050E30900000A1E
|
||||
:100B00000101A0E3021AA0E34020A0E3E4FFFFEB11
|
||||
:100B10000220A0E318309FE5402083E50131A0E3E7
|
||||
:100B20000FE0A0E113FF2FE10840BDE81EFF2FE119
|
||||
:100B3000D40D000000C01FE008402DE90C309FE5F7
|
||||
:100B40000FE0A0E113FF2FE10840BDE81EFF2FE1F9
|
||||
:100B5000500000001C309FE51430D3E5010013E382
|
||||
:100B600010309F150030D3150030C0150100A013C0
|
||||
:100B70000000A0031EFF2FE100C000E038402DE977
|
||||
:100B80004C309FE51430D3E5200013E30000A003B0
|
||||
:100B90000D00000A38309FE50000C3E51430D3E5AE
|
||||
:100BA000200013E30100A0130700001A24509FE562
|
||||
:100BB0001C409FE50FE0A0E115FF2FE11430D4E5C4
|
||||
:100BC000200013E3FAFFFF0A0100A0E33840BDE86C
|
||||
:100BD0001EFF2FE100C000E0780A000034309FE5DE
|
||||
:100BE0000020A0E30420C3E50820C3E51420C3E5EA
|
||||
:100BF0007F10E0E30C10C3E54110A0E30010C3E553
|
||||
:100C00000420C3E50320A0E30C20C3E50720A0E3F4
|
||||
:100C10000820C3E51EFF2FE100C000E0F8452DE9E4
|
||||
:100C20000050A0E10140A0E1400051E384009F8515
|
||||
:100C30008310A08380309F850FE0A08113FF2F8158
|
||||
:100C40000400A0E1CCFFFFEB010050E364009F151E
|
||||
:100C50008610A01360309F150FE0A01113FF2F1115
|
||||
:100C60000460A0E1000054E31000000A0040A0E38B
|
||||
:100C700048709FE53C809FE53CA09FE50FE0A0E128
|
||||
:100C800017FF2FE10400D5E7BBFFFFEB010050E3A6
|
||||
:100C90000800A0118E10A0130FE0A0111AFF2F1151
|
||||
:100CA000014084E20438A0E1230856E1F2FFFF8A04
|
||||
:100CB000F845BDE81EFF2FE1381600007C0A000051
|
||||
:100CC000780A000070402DE90050A0E1A0309FE5B7
|
||||
:100CD0000030D3E5000053E30A00001A94009FE5BA
|
||||
:100CE0009BFFFFEB010050E30000A0131E00001A61
|
||||
:100CF0007C309FE50120A0E30020C3E50000A0E3D5
|
||||
:100D00004500C3E5180000EA64009FE54540D0E5D2
|
||||
:100D1000040080E0050080E28DFFFFEB010050E35E
|
||||
:100D20000000A0131000001A014084E2FF2004E23A
|
||||
:100D30003C309FE54520C3E50430D3E5020053E194
|
||||
:100D40000000A0130800001A24609FE50500A0E140
|
||||
:100D5000051086E220309FE50FE0A0E113FF2FE1B0
|
||||
:100D60000030A0E30030C6E50100A0E37040BDE81C
|
||||
:100D70001EFF2FE19C020040A0020040A40A0000D8
|
||||
:100D800008402DE90C309FE50FE0A0E113FF2FE1B3
|
||||
:100D90000840BDE81EFF2FE11C12000008402DE9AD
|
||||
:100DA0000C309FE50FE0A0E113FF2FE10840BDE804
|
||||
:100DB0001EFF2FE13412000008402DE90C309FE5A2
|
||||
:100DC0000FE0A0E113FF2FE10840BDE81EFF2FE177
|
||||
:100DD000A012000008402DE90C309FE50FE0A0E1D3
|
||||
:100DE00013FF2FE10840BDE81EFF2FE1D4130000E0
|
||||
:100DF00008402DE920309FE50FE0A0E113FF2FE12F
|
||||
:100E0000000050E30000A00310309F150FE0A01178
|
||||
:100E100013FF2F110840BDE81EFF2FE11C14000036
|
||||
:100E20009414000014309FE50020A0E3042083E523
|
||||
:100E30000C2083E5082083E5102083E51EFF2FE1C9
|
||||
:100E4000004000E01C309FE5082093E518309FE546
|
||||
:100E5000001093E5011082E0040093E5011060E0CA
|
||||
:100E6000060083E81EFF2FE1004000E0E40200409E
|
||||
:100E700004309FE5000083E51EFF2FE1E4020040FF
|
||||
:100E800008402DE930309FE50000A0E3140083E521
|
||||
:100E9000280083E524209FE50C2083E50120A0E3C2
|
||||
:100EA000042083E5082093E514309FE5042083E5C2
|
||||
:100EB000EEFFFFEB0840BDE81EFF2FE1004000E021
|
||||
:100EC0005FEA0000E402004008402DE9DCFFFFEB90
|
||||
:100ED00008309FE5000093E50840BDE81EFF2FE1C4
|
||||
:100EE000E4020040F0412DE90060A0E10040A0E3F1
|
||||
:100EF0000450A0E158809FE558709FE50FE0A0E105
|
||||
:100F000018FF2FE1043097E7060053E10900008A3B
|
||||
:100F1000041087E0041091E5013083E0030056E1FE
|
||||
:100F20000400002A852085E028309FE5023183E017
|
||||
:100F30000800D3E5040000EA015085E20C4084E299
|
||||
:100F4000C00054E3ECFFFF1AFF00A0E3F041BDE84E
|
||||
:100F50001EFF2FE1780A00007015000030402DE9D7
|
||||
:100F600024D04DE20040A0E1000090E5DCFFFFEB63
|
||||
:100F7000FF0050E30000A0033D00000A3230A0E370
|
||||
:100F80000C308DE510008DE514008DE50130A0E3F7
|
||||
:100F900000308DE5E4309FE50FE0A0E113FF2FE185
|
||||
:100FA0000C008DE20D10A0E13A31E0E30FE0A0E18A
|
||||
:100FB00013FF2FE100309DE5000053E30000A01374
|
||||
:100FC0002B00001A3330A0E30C308DE50450A0E173
|
||||
:100FD000043095E410308DE514508DE5023CA0E31B
|
||||
:100FE00018308DE598309FE51C308DE50130A0E389
|
||||
:100FF00000308DE584309FE50FE0A0E113FF2FE185
|
||||
:101000000C008DE20D10A0E13A31E0E30FE0A0E129
|
||||
:1010100013FF2FE100309DE5000053E30000A01313
|
||||
:101020001300001A3830A0E30C308DE5003094E551
|
||||
:1010300010308DE514508DE5023CA0E318308DE5AD
|
||||
:101040000130A0E300308DE530309FE50FE0A0E1F6
|
||||
:1010500013FF2FE10C008DE20D10A0E13A31E0E327
|
||||
:101060000FE0A0E113FF2FE100009DE5010070E219
|
||||
:101070000000A03324D08DE23040BDE81EFF2FE1F8
|
||||
:10108000780A000060EA000008402DE9813BB0E1E9
|
||||
:101090000000A0130900001A003090E5010053E1A0
|
||||
:1010A0000100A0030500000A041080E4022CA0E364
|
||||
:1010B00010309FE50FE0A0E113FF2FE10100A0E356
|
||||
:1010C0000840BDE81EFF2FE1A40A000038402DE9CA
|
||||
:1010D0000040A0E10150A0E14C309FE5030050E149
|
||||
:1010E0000600000A020A51E30600000A9AFFFFEB1D
|
||||
:1010F000000050E30040A0030800000A020000EADC
|
||||
:1011000028409FE5000000EA1C409FE50400A0E1A4
|
||||
:101110000510A0E1DBFFFFEB000050E30040A0035F
|
||||
:101120000400A0E13840BDE81EFF2FE1F0040040BC
|
||||
:10113000EC020040F0472DE90050A0E10140A0E1A1
|
||||
:101140000270A0E10360A0E1A194A0E18994A0E174
|
||||
:10115000003090E5010073E30400001A0910A0E1DB
|
||||
:10116000C8FFFFEB000050E30000A0032600000AC8
|
||||
:10117000003095E5090053E10500000A0500A0E1F3
|
||||
:101180000910A0E1D0FFFFEB005050E20000A003E7
|
||||
:101190001D00000A003095E5044063E0044085E04E
|
||||
:1011A000044084E268809FE568A09FE5029C89E294
|
||||
:1011B0000FE0A0E118FF2FE1043085E2043063E086
|
||||
:1011C0000A0053E10500009A0500A0E10910A0E122
|
||||
:1011D000BDFFFFEB005050E20800000A044085E22A
|
||||
:1011E0000130D7E40030C4E5016046E20668A0E1C2
|
||||
:1011F0002668B0E10300000A014084E2EBFFFFEA49
|
||||
:101200000000A0E3000000EA0100A0E3F047BDE811
|
||||
:101210001EFF2FE1780A0000FF0100000C309FE55F
|
||||
:101220000020E0E3002083E5042283E51EFF2FE198
|
||||
:10123000EC02004070402DE90040A0E10150A0E127
|
||||
:101240000260A0E126FFFFEBFF0050E30000A003D7
|
||||
:101250000E00000A010044E2050080E020FFFFEBE1
|
||||
:10126000FF0050E30000A0030800000AA434A0E13E
|
||||
:10127000100053E30538A0E118009F0518009F15E2
|
||||
:101280000410A0E10620A0E12338A0E1A8FFFFEBB5
|
||||
:101290007040BDE81EFF2FE1F0040040EC0200406A
|
||||
:1012A00070402DE920D04DE20050A0E10160A0E1A6
|
||||
:1012B0000BFFFFEB0040A0E1010045E2060080E0EB
|
||||
:1012C00007FFFFEB0050A0E1FF0050E3FF005413C5
|
||||
:1012D0000000A0033900000A050054E10000A083CB
|
||||
:1012E0003600008A000054E30000A0033300000A27
|
||||
:1012F000100055E30000A0833000008A3230A0E3E4
|
||||
:1013000038008DE80130A0E314308DE5B8309FE55A
|
||||
:101310000FE0A0E113FF2FE10D00A0E114108DE21A
|
||||
:101320003A31E0E30FE0A0E113FF2FE114309DE537
|
||||
:10133000000053E30000A0132000001A3430A0E3A3
|
||||
:1013400038008DE884309FE50C308DE50130A0E356
|
||||
:1013500014308DE570309FE50FE0A0E113FF2FE121
|
||||
:101360000D00A0E114108DE23A31E0E30FE0A0E1BE
|
||||
:1013700013FF2FE114309DE5000053E30000A0139C
|
||||
:101380000E00001A3530A0E338008DE80130A0E3EC
|
||||
:1013900014308DE530309FE50FE0A0E113FF2FE121
|
||||
:1013A0000D00A0E114108DE23A31E0E30FE0A0E17E
|
||||
:1013B00013FF2FE114009DE5010070E20000A0334F
|
||||
:1013C00020D08DE27040BDE81EFF2FE1780A0000BA
|
||||
:1013D00060EA0000023AA0E3050093E8000082E022
|
||||
:1013E000082093E5020080E00C2093E5020080E0F5
|
||||
:1013F000102093E5020080E0142093E5020080E0D5
|
||||
:10140000182093E5020080E01C3093E5030080E0A3
|
||||
:10141000010070E20000A0331EFF2FE110402DE913
|
||||
:1014200008D04DE260209FE5823F82E2120093E9FE
|
||||
:10143000044081E0082292E5024084E00C2093E51C
|
||||
:10144000024084E0102093E5024084E0182093E5F8
|
||||
:10145000024084E01C3093E5034084E0004064E2F5
|
||||
:1014600004408DE5DAFFFFEB000054E10100A0032A
|
||||
:1014700018009F150410A01301208D106CFFFF1B96
|
||||
:1014800008D08DE21040BDE81EFF2FE1EC020040C5
|
||||
:101490001420000008402DE948309FE5043293E510
|
||||
:1014A000010073E30400000A3C009FE5AAFEFFEB85
|
||||
:1014B000000050E30000A0030800000A24309FE56C
|
||||
:1014C000003093E5010073E30100A0030300000A6C
|
||||
:1014D00010009FE5A0FEFFEB000050E20100A0130A
|
||||
:1014E0000840BDE81EFF2FE1EC020040F004004080
|
||||
:1014F00004E04EE21F402DE910009FE53810A0E304
|
||||
:101500000C309FE50FE0A0E113FF2FE11F80FDE805
|
||||
:101510005C1600007C0A000004E04EE20F502DE94A
|
||||
:1015200010009FE54610A0E30C309FE50FE0A0E11E
|
||||
:1015300013FF2FE10F90FDE85C1600007C0A00000D
|
||||
:101540000F502DE910009FE55410A0E30C309FE5EB
|
||||
:101550000FE0A0E113FF2FE10F90FDE85C16000003
|
||||
:101560007C0A0000010204084F70656E424C540072
|
||||
:1015700000200000002000000100000000400000EA
|
||||
:1015800000200000020000000060000000200000B9
|
||||
:1015900003000000008000000020000004000000A4
|
||||
:1015A00000A00000002000000500000000C00000B6
|
||||
:1015B000002000000600000000E000000020000005
|
||||
:1015C000070000000000010000000100080000000A
|
||||
:1015D00000000200000001000900000000000300FC
|
||||
:1015E000002000000A00000000200300002000008E
|
||||
:1015F0000B00000000400300002000000C00000071
|
||||
:1016000000600300002000000D00000000800300C7
|
||||
:10161000002000000E00000000A0030000200000D9
|
||||
:101620000F00000000C003000020000010000000B8
|
||||
:101630006D61696E2E6300002E2E2F2E2E2F2E2E02
|
||||
:101640002F536F757263652F41524D375F4C504376
|
||||
:10165000323030302F756172742E63002E2E2F2E93
|
||||
:101660002E2F2E2E2F536F757263652F41524D37DB
|
||||
:101670005F4C5043323030302F4743432F76656301
|
||||
:08168000746F72732E63000009
|
||||
:10013000DC1E0040D8130000000200400002004016
|
||||
:1001400000020040F406004010402DE9D8309FE541
|
||||
:100150000040A0E3D4109FE5D4209FE50100F3E523
|
||||
:10016000910000E0260A40E2160E40E2020050E153
|
||||
:100170000600009A014084E2FF4004E2040054E3D8
|
||||
:10018000F5FFFF1AAC009FE57010A0E3DB0100EB68
|
||||
:100190008422A0E1022082E3FF2002E298309FE562
|
||||
:1001A0008420C3E55510E0E38C10C3E55520A0E39F
|
||||
:1001B0008C20C3E50100A0E38000C3E58C10C3E5FB
|
||||
:1001C0008C20C3E5B828D3E1010B12E3FCFFFF0A42
|
||||
:1001D00064309FE50320A0E38020C3E55520E0E3E1
|
||||
:1001E0008C20C3E5AB2082E28C20C3E50020A0E395
|
||||
:1001F0000020C3E5042082E20420C3E50220A0E33E
|
||||
:100200000020C3E50120A0E3013C83E20020C3E518
|
||||
:1002100028309FE5002093E5052082E3002083E558
|
||||
:10022000070000EB0D0000EBFDFFFFEAB31200003A
|
||||
:10023000C0D40100A08002008013000000C01FE0B5
|
||||
:1002400000C002E008402DE9AA0100EBA00100EB8C
|
||||
:10025000500200EB070000EB0840BDE81EFF2FE155
|
||||
:1002600008402DE9A40100EB130000EB850100EB31
|
||||
:100270000840BDE81EFF2FE104E02DE50CD04DE263
|
||||
:100280000030E0E30430CDE50030A0E30530CDE5FB
|
||||
:10029000320000EBE20100EB18309FE50030D3E5BF
|
||||
:1002A000010053E304008D024100000B0CD08DE2ED
|
||||
:1002B00004E09DE41EFF2FE10002004008402DE90C
|
||||
:1002C00014009FE5070200EB010050E308009F05C2
|
||||
:1002D0003700000B0840BDE81EFF2FE1040200407C
|
||||
:1002E00008402DE9FF1001E2DD0100EB2B0000EBDF
|
||||
:1002F0000840BDE81EFF2FE10120A0E304309FE588
|
||||
:100300000020C3E51EFF2FE10002004004309FE5FE
|
||||
:100310000000D3E51EFF2FE10002004008402DE958
|
||||
:10032000180000EB0840BDE81EFF2FE10020A0E30D
|
||||
:1003300004309FE50120C3E51EFF2FE14402004089
|
||||
:1003400014309FE50120E0E30320C3E50400C3E58A
|
||||
:100350000220A0E3B424C3E11EFF2FE144020040C9
|
||||
:100360001C309FE50020A0E30020C3E5482083E582
|
||||
:100370004320C3E5B424C3E10220C3E50120C3E563
|
||||
:100380001EFF2FE1440200400C309FE50000D3E542
|
||||
:10039000000050E20100A0131EFF2FE144020040C4
|
||||
:1003A0000020A0E304309FE54320C3E51EFF2FE1BA
|
||||
:1003B0004402004038402DE90040A0E10030D0E583
|
||||
:1003C000FF0053E31200001AD7FFFFEBAC349FE5A8
|
||||
:1003D0000120A0E30020C3E50010E0E30310C3E523
|
||||
:1003E0001010A0E30410C3E50010A0E30510C3E55E
|
||||
:1003F0004000A0E30600C3E50700C3E50810C3E51D
|
||||
:100400000920C3E50A20C3E50820A0E3B424C3E122
|
||||
:100410000D0100EA64249FE50020D2E5010052E3CB
|
||||
:100420001401001AC93043E2350053E303F19F97EA
|
||||
:10043000030100EAD0060000440800004408000060
|
||||
:100440003808000044080000440800001C080000B0
|
||||
:100450001C070000E0070000A80700004408000097
|
||||
:10046000440800004408000044080000440800005C
|
||||
:10047000440800004408000044080000440800004C
|
||||
:10048000440800004408000044080000440800003C
|
||||
:10049000440800004408000044080000440800002C
|
||||
:1004A000440800004408000044080000440800001C
|
||||
:1004B000440800004408000044080000440800000C
|
||||
:1004C00044080000440800004408000044080000FC
|
||||
:1004D000440800004408000044080000D40500005F
|
||||
:1004E0005C0500000C050000B40500004408000095
|
||||
:1004F00044080000440800003406000044080000DE
|
||||
:100500006C06000078060000AC0600000120D0E573
|
||||
:100510003F0052E30200009A2200A0E387FFFFEBB6
|
||||
:10052000C90000EA54539FE5040085E2481095E5B0
|
||||
:10053000F90000EB0030E0E30330C5E50120D4E52D
|
||||
:10054000483095E5033082E0483085E50130D4E558
|
||||
:10055000013083E2B434C5E1BB0000EA0130D0E5EC
|
||||
:100560003F0053E30200009A2200A0E373FFFFEB79
|
||||
:10057000B50000EA041090E500539FE5481085E5BA
|
||||
:10058000040085E20120D4E5E30000EB0030E0E365
|
||||
:100590000330C5E50120D4E5483095E5033082E01D
|
||||
:1005A000483085E50130D4E5013083E2B434C5E15B
|
||||
:1005B000A50000EAC4329FE50020E0E30320C3E584
|
||||
:1005C000042090E5482083E50120A0E3B424C3E1A2
|
||||
:1005D0009D0000EAA4C29FE50030E0E30330CCE5D3
|
||||
:1005E00048109CE5043090E5000053E30020A00390
|
||||
:1005F0000500000A0020A0E30100D1E4002082E011
|
||||
:10060000FF2002E2013053E2FAFFFF1A07208CE5D7
|
||||
:1006100068329FE50120A0E30420C3E50020A0E3A9
|
||||
:100620000520C3E50620C3E50820A0E3B424C3E108
|
||||
:10063000850000EA44329FE50020E0E30320C3E5A3
|
||||
:100640003C229FE5482083E50020A0E30420C3E589
|
||||
:100650000520C3E50620C3E50720A0E3072083E5C6
|
||||
:100660000820A0E3B424C3E1770000EA0000A0E37F
|
||||
:1006700032FFFFEB740000EA00329FE50020E0E368
|
||||
:100680000320C3E50020A0E30420C3E50110D3E567
|
||||
:100690000510C3E50620C3E50720C3E50820C3E530
|
||||
:1006A0000620A0E3B424C3E1670000EACC419FE543
|
||||
:1006B0000030A0E30030C4E51BFFFFEB0030E0E3B7
|
||||
:1006C0000330C4E50130A0E3B434C4E15E0000EAC5
|
||||
:1006D000A8319FE5480093E53F10A0E3012084E2A4
|
||||
:1006E000300100EB000050E30200001A3100A0E3EB
|
||||
:1006F00012FFFFEB540000EA80319FE50020E0E3A9
|
||||
:100700000320C3E5482093E53F2082E2482083E5AB
|
||||
:100710000120A0E3B424C3E14B0000EA0130D0E59E
|
||||
:100720003E0053E30200009A2200A0E303FFFFEB28
|
||||
:10073000450000EA44319FE50020E0E30320C3E5E3
|
||||
:100740000120A0E3B424C3E10110D0E5000051E38F
|
||||
:100750000500001A1F0100EB000050E33A00001AE8
|
||||
:100760003100A0E3F5FEFFEB370000EA0C319FE516
|
||||
:10077000480093E5022084E20A0100EB000050E308
|
||||
:100780000200001A3100A0E3ECFEFFEB2E0000EAAD
|
||||
:10079000E8309FE50110D4E5482093E5022081E090
|
||||
:1007A000482083E5280000EAD0309FE50020E0E300
|
||||
:1007B0000320C3E50020A0E30420C3E50520C3E532
|
||||
:1007C0004010A0E30610C3E50720C3E50820C3E5F9
|
||||
:1007D0000920C3E50720A0E3B424C3E11A0000EA1E
|
||||
:1007E00098309FE5480093E5041094E5F10000EB94
|
||||
:1007F000000050E30200001A3100A0E3CFFEFFEB3F
|
||||
:10080000110000EA74309FE50020E0E30320C3E517
|
||||
:100810000120A0E3B424C3E10B0000EA5D0000EB7B
|
||||
:1008200058309FE50020E0E30320C3E50120A0E36A
|
||||
:10083000B424C3E1040000EA3100A0E3BFFEFFEBF3
|
||||
:10084000010000EA2000A0E3BCFEFFEB2C309FE596
|
||||
:100850004330D3E5010053E31000A003B7FEFF0BC4
|
||||
:1008600018309FE50120A0E34320C3E5030083E2A5
|
||||
:10087000B414D3E199FEFFEB3840BDE81EFF2FE131
|
||||
:1008800044020040B812000008402DE9A2FEFFEB30
|
||||
:10089000010050E30B00000A30309FE50030D3E543
|
||||
:1008A000010053E30700001AFA0000EB310050E3A7
|
||||
:1008B0000400009A0020A0E310309FE50020C3E56B
|
||||
:1008C000CB0000EB220000EB0840BDE81EFF2FE14B
|
||||
:1008D0009002004008402DE90120A0E310309FE580
|
||||
:1008E0000020C3E5D90000EBE6FFFFEB0840BDE8C0
|
||||
:1008F0001EFF2FE1900200401EFF2FE11EFF2FE19F
|
||||
:1009000008402DE90C309FE5000083E5041083E5E5
|
||||
:10091000F9FFFFEBFDFFFFEA9402004070402DE974
|
||||
:100920000140A0E1005052E20700000A0060A0E18F
|
||||
:100930000130D4E40130C6E4EFFFFFEB015045E2A3
|
||||
:100940000558A0E12558B0E1F8FFFF1A7040BDE856
|
||||
:100950001EFF2FE108402DE99A0000EB000050E354
|
||||
:100960000900000A0101A0E3021AA0E34020A0E36D
|
||||
:10097000E9FFFFEB0220A0E314309FE5402083E570
|
||||
:100980000131A0E30FE0A0E113FF2FE10840BDE833
|
||||
:100990001EFF2FE100C01FE008402DE9ABFDFFEB7B
|
||||
:1009A0000840BDE81EFF2FE11C309FE51430D3E561
|
||||
:1009B000010013E310309F150030D3150030C0152F
|
||||
:1009C0000100A0130000A0031EFF2FE100C000E003
|
||||
:1009D00010402DE944309FE51430D3E5200013E3A7
|
||||
:1009E0000000A0030B00000A30309FE50000C3E5C3
|
||||
:1009F0001430D3E5200013E30100A0130500001A12
|
||||
:100A000018409FE5BCFFFFEB1430D4E5200013E352
|
||||
:100A1000FBFFFF0A0100A0E31040BDE81EFF2FE12D
|
||||
:100A200000C000E034309FE50020A0E30420C3E5CF
|
||||
:100A30000820C3E51420C3E57F10E0E30C10C3E5F4
|
||||
:100A40004110A0E30010C3E50420C3E50320A0E3A8
|
||||
:100A50000C20C3E50720A0E30820C3E51EFF2FE11B
|
||||
:100A600000C000E0F0412DE90050A0E10140A0E10C
|
||||
:100A7000400051E368009F858310A0839FFFFF8B98
|
||||
:100A80000400A0E1D1FFFFEB010050E350009F15EF
|
||||
:100A90008610A01399FFFF1B0460A0E1000054E33F
|
||||
:100AA0000D00000A0040A0E334709FE58E80A0E3B3
|
||||
:100AB00091FFFFEB0400D5E7C4FFFFEB010050E31B
|
||||
:100AC0000700A0110810A0118CFFFF1B014084E259
|
||||
:100AD0000438A0E1230856E1F4FFFF8AF041BDE8A5
|
||||
:100AE0001EFF2FE18813000070402DE90050A0E1A7
|
||||
:100AF00098309FE50030D3E5000053E30A00001A68
|
||||
:100B00008C009FE5A7FFFFEB010050E30000A0135E
|
||||
:100B10001C00001A74309FE50120A0E30020C3E50B
|
||||
:100B20000000A0E34500C3E5160000EA5C009FE575
|
||||
:100B30004540D0E5040080E0050080E299FFFFEB2E
|
||||
:100B4000010050E30000A0130E00001A014084E2EF
|
||||
:100B5000FF2004E234309FE54520C3E50430D3E5AF
|
||||
:100B6000020053E10000A0130600001A1C609FE57C
|
||||
:100B70000500A0E1051086E267FFFFEB0030A0E36F
|
||||
:100B80000030C6E50100A0E37040BDE81EFF2FE184
|
||||
:100B90009C020040A002004008402DE9020100EB49
|
||||
:100BA0000840BDE81EFF2FE108402DE9040100EBDD
|
||||
:100BB0000840BDE81EFF2FE108402DE91B0100EBB6
|
||||
:100BC0000840BDE81EFF2FE108402DE95D0100EB64
|
||||
:100BD0000840BDE81EFF2FE108402DE96B0100EB46
|
||||
:100BE000000050E30000A0038601001B0840BDE8A0
|
||||
:100BF0001EFF2FE114309FE50020A0E3042083E5D1
|
||||
:100C00000C2083E5082083E5102083E51EFF2FE1FB
|
||||
:100C1000004000E01C309FE5082093E518309FE578
|
||||
:100C2000001093E5011082E0040093E5011060E0FC
|
||||
:100C3000060083E81EFF2FE1004000E0E4020040D0
|
||||
:100C400004309FE5000083E51EFF2FE1E402004031
|
||||
:100C500008402DE930309FE50000A0E3140083E553
|
||||
:100C6000280083E524209FE50C2083E50120A0E3F4
|
||||
:100C7000042083E5082093E514309FE5042083E5F4
|
||||
:100C8000EEFFFFEB0840BDE81EFF2FE1004000E053
|
||||
:100C90005FEA0000E402004008402DE9DCFFFFEBC2
|
||||
:100CA00008309FE5000093E50840BDE81EFF2FE1F6
|
||||
:100CB000E4020040F8402DE90060A0E10040A0E31C
|
||||
:100CC0000450A0E150709FE50BFFFFEB043097E765
|
||||
:100CD000060053E10900008A041087E0041091E542
|
||||
:100CE000013083E0030056E10400002A852085E0FE
|
||||
:100CF00024309FE5023183E00800D3E5040000EAD8
|
||||
:100D0000015085E20C4084E2C00054E3EDFFFF1A7D
|
||||
:100D1000FF00A0E3F840BDE81EFF2FE1C012000075
|
||||
:100D200030402DE924D04DE20040A0E1000090E5E4
|
||||
:100D3000DFFFFFEBFF0050E30000A0033700000AD5
|
||||
:100D40003230A0E30C308DE510008DE514008DE508
|
||||
:100D50000130A0E300308DE5E7FEFFEB0C008DE2F3
|
||||
:100D60000D10A0E13A31E0E30FE0A0E113FF2FE125
|
||||
:100D700000309DE5000053E30000A0132700001A97
|
||||
:100D80003330A0E30C308DE50450A0E1043095E44D
|
||||
:100D900010308DE514508DE5023CA0E318308DE550
|
||||
:100DA00084309FE51C308DE50130A0E300308DE5F7
|
||||
:100DB000D1FEFFEB0C008DE20D10A0E13A31E0E333
|
||||
:100DC0000FE0A0E113FF2FE100309DE5000053E3A9
|
||||
:100DD0000000A0131100001A3830A0E30C308DE59C
|
||||
:100DE000003094E510308DE514508DE5023CA0E311
|
||||
:100DF00018308DE50130A0E300308DE5BEFEFFEB3D
|
||||
:100E00000C008DE20D10A0E13A31E0E30FE0A0E12B
|
||||
:100E100013FF2FE100009DE5010070E20000A03308
|
||||
:100E200024D08DE23040BDE81EFF2FE160EA0000D3
|
||||
:100E300008402DE9813BB0E10000A0130700001A33
|
||||
:100E4000003090E5010053E10100A0030300000A17
|
||||
:100E5000041080E4022CA0E3AFFEFFEB0100A0E34E
|
||||
:100E60000840BDE81EFF2FE138402DE90040A0E119
|
||||
:100E70000150A0E14C309FE5030050E10600000A5C
|
||||
:100E8000020A51E30600000AA4FFFFEB000050E352
|
||||
:100E90000040A0030800000A020000EA28409FE585
|
||||
:100EA000000000EA1C409FE50400A0E10510A0E15D
|
||||
:100EB000DEFFFFEB000050E30040A0030400A0E1D0
|
||||
:100EC0003840BDE81EFF2FE1F0040040EC02004076
|
||||
:100ED000F8452DE90050A0E10140A0E10270A0E139
|
||||
:100EE0000360A0E1A1A4A0E18AA4A0E1003090E504
|
||||
:100EF000010073E30400001A0A10A0E1CBFFFFEB2E
|
||||
:100F0000000050E30000A0032400000A003095E533
|
||||
:100F10000A0053E10500000A0500A0E10A10A0E163
|
||||
:100F2000D0FFFFEB005050E20000A0031B00000ABE
|
||||
:100F3000003095E5044063E0044085E0044084E22D
|
||||
:100F400060809FE502AC8AE26BFEFFEB043085E235
|
||||
:100F5000043063E0080053E10500009A0500A0E1B9
|
||||
:100F60000A10A0E1BFFFFFEB005050E20800000AAA
|
||||
:100F7000044085E20130D7E40030C4E5016046E278
|
||||
:100F80000668A0E12668B0E10300000A014084E29F
|
||||
:100F9000ECFFFFEA0000A0E3000000EA0100A0E38C
|
||||
:100FA000F845BDE81EFF2FE1FF0100000C309FE572
|
||||
:100FB0000020E0E3002083E5042283E51EFF2FE10B
|
||||
:100FC000EC02004070402DE90040A0E10150A0E19A
|
||||
:100FD0000260A0E136FFFFEBFF0050E30000A0033A
|
||||
:100FE0000E00000A010044E2050080E030FFFFEB44
|
||||
:100FF000FF0050E30000A0030800000AA434A0E1B1
|
||||
:10100000100053E30538A0E118009F0518009F1554
|
||||
:101010000410A0E10620A0E12338A0E1ABFFFFEB24
|
||||
:101020007040BDE81EFF2FE1F0040040EC020040DC
|
||||
:1010300070402DE920D04DE20050A0E10160A0E118
|
||||
:101040001BFFFFEB0040A0E1010045E2060080E04D
|
||||
:1010500017FFFFEB0050A0E1FF0050E3FF00541327
|
||||
:101060000000A0033300000A050054E10000A08343
|
||||
:101070003000008A000054E30000A0032D00000AA5
|
||||
:10108000100055E30000A0832A00008A3230A0E35C
|
||||
:1010900038008DE80130A0E314308DE516FEFFEB3B
|
||||
:1010A0000D00A0E114108DE23A31E0E30FE0A0E181
|
||||
:1010B00013FF2FE114309DE5000053E30000A0135F
|
||||
:1010C0001C00001A3430A0E338008DE870309FE532
|
||||
:1010D0000C308DE50130A0E314308DE506FEFFEB0A
|
||||
:1010E0000D00A0E114108DE23A31E0E30FE0A0E141
|
||||
:1010F00013FF2FE114309DE5000053E30000A0131F
|
||||
:101100000C00001A3530A0E338008DE80130A0E370
|
||||
:1011100014308DE5F8FDFFEB0D00A0E114108DE219
|
||||
:101120003A31E0E30FE0A0E113FF2FE114009DE569
|
||||
:10113000010070E20000A03320D08DE27040BDE8D5
|
||||
:101140001EFF2FE160EA0000023AA0E3050093E8E9
|
||||
:10115000000082E0082093E5020080E00C2093E587
|
||||
:10116000020080E0102093E5020080E0142093E567
|
||||
:10117000020080E0182093E5020080E01C3093E537
|
||||
:10118000030080E0010070E20000A0331EFF2FE1A9
|
||||
:1011900010402DE908D04DE260209FE5823F82E2B9
|
||||
:1011A000120093E9044081E0082292E5024084E0C5
|
||||
:1011B0000C2093E5024084E0102093E5024084E097
|
||||
:1011C000182093E5024084E01C3093E5034084E05E
|
||||
:1011D000004064E204408DE5DAFFFFEB000054E1DB
|
||||
:1011E0000100A00318009F150410A01301208D100A
|
||||
:1011F00073FFFF1B08D08DE21040BDE81EFF2FE1FA
|
||||
:10120000EC0200401420000008402DE948309FE522
|
||||
:10121000043293E5010073E30400000A3C009FE5FB
|
||||
:10122000BEFEFFEB000050E30000A0030800000A30
|
||||
:1012300024309FE5003093E5010073E30100A00333
|
||||
:101240000300000A10009FE5B4FEFFEB000050E22F
|
||||
:101250000100A0130840BDE81EFF2FE1EC02004092
|
||||
:10126000F004004004E04EE21F402DE908009FE535
|
||||
:101270003810A0E3A1FDFFEB1F80FDE8AC130000D8
|
||||
:1012800004E04EE20F502DE908009FE54610A0E370
|
||||
:101290009AFDFFEB0F90FDE8AC1300000F502DE915
|
||||
:1012A00008009FE55410A0E394FDFFEB0F90FDE8CC
|
||||
:1012B000AC130000010204084F70656E424C5400EC
|
||||
:1012C000002000000020000001000000004000009D
|
||||
:1012D000002000000200000000600000002000006C
|
||||
:1012E0000300000000800000002000000400000057
|
||||
:1012F00000A00000002000000500000000C0000069
|
||||
:10130000002000000600000000E0000000200000B7
|
||||
:1013100007000000000001000000010008000000BC
|
||||
:1013200000000200000001000900000000000300AE
|
||||
:10133000002000000A000000002003000020000040
|
||||
:101340000B00000000400300002000000C00000023
|
||||
:1013500000600300002000000D000000008003007A
|
||||
:10136000002000000E00000000A00300002000008C
|
||||
:101370000F00000000C0030000200000100000006B
|
||||
:101380006D61696E2E6300002E2E2F2E2E2F2E2EB5
|
||||
:101390002F536F757263652F41524D375F4C504329
|
||||
:1013A000323030302F756172742E63002E2E2F2E46
|
||||
:1013B0002E2F2E2E2F536F757263652F41524D378E
|
||||
:1013C0005F4C5043323030302F4743432F766563B4
|
||||
:0813D000746F72732E630000BC
|
||||
:00000001FF
|
||||
|
|
|
@ -7,38 +7,38 @@ start address 0x00000000
|
|||
|
||||
Program Header:
|
||||
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15
|
||||
filesz 0x00001688 memsz 0x00001688 flags r-x
|
||||
LOAD off 0x00010200 vaddr 0x40000200 paddr 0x00001688 align 2**15
|
||||
filesz 0x000013d8 memsz 0x000013d8 flags r-x
|
||||
LOAD off 0x00010200 vaddr 0x40000200 paddr 0x000013d8 align 2**15
|
||||
filesz 0x00000000 memsz 0x000004f4 flags rw-
|
||||
private flags = 5000000: [Version5 EABI]
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn
|
||||
0 .text 00001688 00000000 00000000 00008000 2**2
|
||||
0 .text 000013d8 00000000 00000000 00008000 2**2
|
||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||
1 .bss 000004f4 40000200 00001688 00010200 2**2
|
||||
1 .bss 000004f4 40000200 000013d8 00010200 2**2
|
||||
ALLOC
|
||||
2 .ARM.attributes 00000030 00000000 00000000 00009688 2**0
|
||||
2 .ARM.attributes 00000030 00000000 00000000 000093d8 2**0
|
||||
CONTENTS, READONLY
|
||||
3 .comment 0000002a 00000000 00000000 000096b8 2**0
|
||||
3 .comment 0000002a 00000000 00000000 00009408 2**0
|
||||
CONTENTS, READONLY
|
||||
4 .debug_abbrev 00000a61 00000000 00000000 000096e2 2**0
|
||||
4 .debug_abbrev 00000aa1 00000000 00000000 00009432 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
5 .debug_info 0000173c 00000000 00000000 0000a143 2**0
|
||||
5 .debug_info 000017a7 00000000 00000000 00009ed3 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
6 .debug_line 00000878 00000000 00000000 0000b87f 2**0
|
||||
6 .debug_line 0000088b 00000000 00000000 0000b67a 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
7 .debug_pubtypes 00000312 00000000 00000000 0000c0f7 2**0
|
||||
7 .debug_pubtypes 00000324 00000000 00000000 0000bf05 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
8 .debug_str 000008fa 00000000 00000000 0000c409 2**0
|
||||
8 .debug_str 00000905 00000000 00000000 0000c229 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
9 .debug_loc 00000bf9 00000000 00000000 0000cd03 2**0
|
||||
9 .debug_loc 00000bed 00000000 00000000 0000cb2e 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
10 .debug_pubnames 000003af 00000000 00000000 0000d8fc 2**0
|
||||
10 .debug_pubnames 000003af 00000000 00000000 0000d71b 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
11 .debug_aranges 000001a0 00000000 00000000 0000dcab 2**0
|
||||
11 .debug_aranges 000001a0 00000000 00000000 0000daca 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
12 .debug_frame 0000063c 00000000 00000000 0000de4c 2**2
|
||||
12 .debug_frame 0000062c 00000000 00000000 0000dc6c 2**2
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
SYMBOL TABLE:
|
||||
00000000 l d .text 00000000 .text
|
||||
|
@ -80,15 +80,16 @@ e01fc040 l *ABS* 00000000 MEMMAP
|
|||
000000a0 l .text 00000000 Reset_Handler_SWI
|
||||
00000000 l df *ABS* 00000000 hooks.c
|
||||
00000000 l df *ABS* 00000000 main.c
|
||||
00001564 l O .text 00000004 C.0.2157
|
||||
000012b4 l O .text 00000004 pll_dividers.1366
|
||||
00000000 l df *ABS* 00000000 extflash.c
|
||||
00000000 l df *ABS* 00000000 boot.c
|
||||
00000000 l df *ABS* 00000000 com.c
|
||||
40000200 l O .bss 00000001 comEntryStateConnect
|
||||
40000204 l O .bss 00000040 xcpCtoReqPacket.1371
|
||||
00000000 l df *ABS* 00000000 xcp.c
|
||||
00000414 l F .text 00000014 XcpProtectResources
|
||||
00000428 l F .text 00000020 XcpSetCtoError
|
||||
00001568 l O .text 00000008 xcpStationId
|
||||
0000032c l F .text 00000014 XcpProtectResources
|
||||
00000340 l F .text 00000020 XcpSetCtoError
|
||||
000012b8 l O .text 00000008 xcpStationId
|
||||
40000244 l O .bss 0000004c xcpInfo
|
||||
00000000 l df *ABS* 00000000 backdoor.c
|
||||
40000290 l O .bss 00000001 backdoorOpen
|
||||
|
@ -99,8 +100,8 @@ e01fc040 l *ABS* 00000000 MEMMAP
|
|||
00000000 l df *ABS* 00000000 cpu.c
|
||||
00000000 l df *ABS* 00000000 can.c
|
||||
00000000 l df *ABS* 00000000 uart.c
|
||||
00000b54 l F .text 00000028 UartReceiveByte
|
||||
00000b7c l F .text 00000060 UartTransmitByte
|
||||
000009a8 l F .text 00000028 UartReceiveByte
|
||||
000009d0 l F .text 00000054 UartTransmitByte
|
||||
4000029c l O .bss 00000001 xcpCtoRxInProgress.1383
|
||||
400002a0 l O .bss 00000041 xcpCtoReqPacket.1381
|
||||
400002e1 l O .bss 00000001 xcpCtoRxLength.1382
|
||||
|
@ -109,68 +110,68 @@ e01fc040 l *ABS* 00000000 MEMMAP
|
|||
400002e4 l O .bss 00000004 millisecond_counter
|
||||
400002e8 l O .bss 00000004 free_running_counter_last
|
||||
00000000 l df *ABS* 00000000 flash.c
|
||||
00000ee4 l F .text 00000078 FlashGetSector
|
||||
00000f5c l F .text 0000012c FlashWriteBlock
|
||||
00001088 l F .text 00000044 FlashInitBlock
|
||||
000010cc l F .text 00000068 FlashSwitchBlock
|
||||
00001134 l F .text 000000e8 FlashAddToBlock
|
||||
00001570 l O .text 000000c0 flashLayout
|
||||
00000cb4 l F .text 0000006c FlashGetSector
|
||||
00000d20 l F .text 00000110 FlashWriteBlock
|
||||
00000e30 l F .text 00000038 FlashInitBlock
|
||||
00000e68 l F .text 00000068 FlashSwitchBlock
|
||||
00000ed0 l F .text 000000dc FlashAddToBlock
|
||||
000012c0 l O .text 000000c0 flashLayout
|
||||
400002ec l O .bss 00000204 blockInfo
|
||||
400004f0 l O .bss 00000204 bootBlockInfo
|
||||
00000000 l df *ABS* 00000000 vectors.c
|
||||
00000300 g F .text 00000068 ComInit
|
||||
00001234 g F .text 0000006c FlashWrite
|
||||
00000a7c g F .text 00000028 AssertFailure
|
||||
00001518 g F .text 00000028 IRQ_ISR
|
||||
00000e44 g F .text 0000002c TimerUpdate
|
||||
00000488 g F .text 00000014 XcpPacketTransmitted
|
||||
00000368 g F .text 0000003c ComTask
|
||||
000003d4 g F .text 00000014 ComSetConnectEntryState
|
||||
00000278 g F .text 0000004c BootInit
|
||||
00000a44 g F .text 00000030 BackDoorInit
|
||||
00000a78 g F .text 00000004 CopService
|
||||
00001688 g .text 00000000 _etext
|
||||
00000e24 g F .text 00000020 TimerReset
|
||||
000002c4 g F .text 0000003c BootTask
|
||||
0000141c g F .text 00000078 FlashWriteChecksum
|
||||
00000278 g F .text 00000044 ComInit
|
||||
00000fc4 g F .text 0000006c FlashWrite
|
||||
00000900 g F .text 0000001c AssertFailure
|
||||
00001280 g F .text 0000001c IRQ_ISR
|
||||
00000c14 g F .text 0000002c TimerUpdate
|
||||
000003a0 g F .text 00000014 XcpPacketTransmitted
|
||||
000002bc g F .text 00000024 ComTask
|
||||
000002f8 g F .text 00000014 ComSetConnectEntryState
|
||||
00000244 g F .text 0000001c BootInit
|
||||
000008d4 g F .text 00000024 BackDoorInit
|
||||
000008fc g F .text 00000004 CopService
|
||||
000013d8 g .text 00000000 _etext
|
||||
00000bf4 g F .text 00000020 TimerReset
|
||||
00000260 g F .text 00000018 BootTask
|
||||
00001190 g F .text 00000078 FlashWriteChecksum
|
||||
40000200 g .bss 00000000 _bss_start
|
||||
000003a4 g F .text 00000030 ComTransmitPacket
|
||||
000002e0 g F .text 00000018 ComTransmitPacket
|
||||
00000000 g .text 00000000 _startup
|
||||
00000470 g F .text 00000018 XcpIsConnected
|
||||
00000d80 g F .text 0000001c NvmInit
|
||||
0000121c g F .text 00000018 FlashInit
|
||||
00000388 g F .text 00000018 XcpIsConnected
|
||||
00000b98 g F .text 00000010 NvmInit
|
||||
00000fac g F .text 00000018 FlashInit
|
||||
400006f4 g *ABS* 00000000 _bss_end
|
||||
00000050 g .text 00000000 Reset_Handler
|
||||
00000bdc g F .text 00000040 UartInit
|
||||
00000db8 g F .text 0000001c NvmErase
|
||||
0000049c g F .text 0000052c XcpPacketReceived
|
||||
00001494 g F .text 0000005c FlashDone
|
||||
00000a24 g F .text 00000040 UartInit
|
||||
00000bb8 g F .text 00000010 NvmErase
|
||||
000003b4 g F .text 000004d4 XcpPacketReceived
|
||||
00001208 g F .text 0000005c FlashDone
|
||||
00000040 g .text 00000000 EntryFromProg
|
||||
000003e8 g F .text 00000010 ComIsConnectEntryState
|
||||
00000448 g F .text 00000028 XcpInit
|
||||
000012a0 g F .text 00000134 FlashErase
|
||||
00000148 g F .text 00000130 main
|
||||
00000df0 g F .text 00000034 NvmDone
|
||||
00000c1c g F .text 000000a8 UartTransmitPacket
|
||||
00000dd4 g F .text 0000001c NvmVerifyChecksum
|
||||
00000aa4 g F .text 00000044 CpuMemCopy
|
||||
0000030c g F .text 00000010 ComIsConnectEntryState
|
||||
00000360 g F .text 00000028 XcpInit
|
||||
00001030 g F .text 00000118 FlashErase
|
||||
00000148 g F .text 000000fc main
|
||||
00000bd8 g F .text 0000001c NvmDone
|
||||
00000a64 g F .text 00000084 UartTransmitPacket
|
||||
00000bc8 g F .text 00000010 NvmVerifyChecksum
|
||||
0000091c g F .text 00000038 CpuMemCopy
|
||||
40001edc g *ABS* 00000000 _stack_end
|
||||
00000e70 g F .text 00000010 TimerSet
|
||||
000014f0 g F .text 00000028 FIQ_ISR
|
||||
00000cc4 g F .text 000000bc UartReceivePacket
|
||||
00000c40 g F .text 00000010 TimerSet
|
||||
00001264 g F .text 0000001c FIQ_ISR
|
||||
00000ae8 g F .text 000000b0 UartReceivePacket
|
||||
40000200 g .text 00000000 _data
|
||||
00000a74 g F .text 00000004 CopInit
|
||||
00000b38 g F .text 0000001c CpuReset
|
||||
000008f8 g F .text 00000004 CopInit
|
||||
00000998 g F .text 00000010 CpuReset
|
||||
000000f4 g .text 00000000 SetupRAM
|
||||
00000d9c g F .text 0000001c NvmWrite
|
||||
00000ae8 g F .text 00000050 CpuStartUserProgram
|
||||
000013d4 g F .text 00000048 FlashVerifyChecksum
|
||||
00000ba8 g F .text 00000010 NvmWrite
|
||||
00000954 g F .text 00000044 CpuStartUserProgram
|
||||
00001148 g F .text 00000048 FlashVerifyChecksum
|
||||
40000200 g .text 00000000 _edata
|
||||
400006f4 g *ABS* 00000000 _end
|
||||
00001540 g F .text 00000024 UNDEF_ISR
|
||||
000003f8 g F .text 0000001c ComIsConnected
|
||||
000009c8 g F .text 0000007c BackDoorCheck
|
||||
00000ec8 g F .text 0000001c TimerGet
|
||||
00000e80 g F .text 00000048 TimerInit
|
||||
0000129c g F .text 00000018 UNDEF_ISR
|
||||
0000031c g F .text 00000010 ComIsConnected
|
||||
00000888 g F .text 0000004c BackDoorCheck
|
||||
00000c98 g F .text 0000001c TimerGet
|
||||
00000c50 g F .text 00000048 TimerInit
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,643 @@
|
|||
/****************************************************************************************
|
||||
| Description: bootloader external flash driver source file
|
||||
| File Name: extflash.c
|
||||
|
|
||||
|----------------------------------------------------------------------------------------
|
||||
| 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 should have received a copy of the GNU General Public License along with OpenBLT.
|
||||
| If not, see <http://www.gnu.org/licenses/>.
|
||||
|
|
||||
| A special exception to the GPL is included to allow you to distribute a combined work
|
||||
| that includes OpenBLT without being obliged to provide the source code for any
|
||||
| proprietary components. The exception text is included at the bottom of the license
|
||||
| file <license.html>.
|
||||
|
|
||||
****************************************************************************************/
|
||||
|
||||
/****************************************************************************************
|
||||
* Include files
|
||||
****************************************************************************************/
|
||||
#include "boot.h" /* bootloader generic header */
|
||||
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
#define FLASH_INVALID_SECTOR (0xff)
|
||||
#define FLASH_INVALID_ADDRESS (0xffffffff)
|
||||
#define FLASH_WRITE_BLOCK_SIZE (512)
|
||||
#define FLASH_TOTAL_SECTORS (sizeof(flashLayout)/sizeof(flashLayout[0]))
|
||||
/* C3 Intel flash commands */
|
||||
#define FLASH_CMD_READ_ARRAY_MODE (0xFF)
|
||||
#define FLASH_CMD_READ_ID_MODE (0x90)
|
||||
#define FLASH_CMD_ERASE_MODE (0x20)
|
||||
#define FLASH_CMD_READ_STATUS_MODE (0x70)
|
||||
#define FLASH_CMD_CHANGE_LOCK_MODE (0x60)
|
||||
#define FLASH_CMD_UNLOCK_SECTOR (0xD0)
|
||||
#define FLASH_CMD_LOCK_SECTOR (0x01)
|
||||
#define FLASH_CMD_PROGRAM_MODE (0x40)
|
||||
#define FLASH_CMD_ERASE_CONFIRM (0xD0)
|
||||
#define FLASH_CMD_CLEAR_STATUS (0x50)
|
||||
/* C3 Intel flash info bits */
|
||||
#define FLASH_LOCK_BIT (0x01)
|
||||
#define FLASH_STATUS_READY_BIT (0x80)
|
||||
/* C3 Intel flash error codes */
|
||||
#define FLASH_ERR_LOCKED (0x02)
|
||||
#define FLASH_ERR_VPP_RANGE (0x08)
|
||||
#define FLASH_ERR_PROGRAM (0x10)
|
||||
#define FLASH_ERR_CMD_SEQ (0x10)
|
||||
#define FLASH_ERR_ERASE (0x20)
|
||||
/* flash operation timeout values */
|
||||
#define FLASH_ERASE_TIMEOUT ((blt_int32u)5000000)
|
||||
#define FLASH_PROGRAM_TIMEOUT ((blt_int32u)1000000)
|
||||
/* supported Intel C3 flash device */
|
||||
#define FLASH_DEV_MAN_ID ((blt_int16u)0x0089)
|
||||
#define FLASH_DEV_ID ((blt_int16u)0x88c3)
|
||||
/* address offsets for reading device information */
|
||||
#define FLASH_DEVINFO_MAN_ID ((blt_int16u)0x0000)
|
||||
#define FLASH_DEVINFO_DEV_ID ((blt_int16u)0x0001)
|
||||
#define FLASH_DEVINFO_LOCK_STATUS ((blt_int16u)0x0002)
|
||||
/* functions implemented in a macro for run-time and codesize optimization */
|
||||
#define ExtFlashGetManID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
|
||||
FLASH_DEVINFO_MAN_ID))
|
||||
#define ExtFlashGetDevID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
|
||||
FLASH_DEVINFO_DEV_ID))
|
||||
#define ExtFlashGetLockStatus(base) (ExtFlashGetDeviceInfo(base, \
|
||||
FLASH_DEVINFO_LOCK_STATUS))
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/* flash sector descriptor type */
|
||||
typedef struct
|
||||
{
|
||||
blt_addr sector_start; /* sector start address */
|
||||
blt_int32u sector_size; /* sector size in bytes */
|
||||
blt_int8u sector_num; /* sector number */
|
||||
} tFlashSector; /* flash sector description */
|
||||
|
||||
/* programming is done per block of max FLASH_WRITE_BLOCK_SIZE. for this a flash block
|
||||
* manager is implemented in this driver. this flash block manager depends on this
|
||||
* flash block info structure. It holds the base address of the flash block and the
|
||||
* data that should be programmed into the flash block.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
blt_addr base_addr;
|
||||
blt_int8u data[FLASH_WRITE_BLOCK_SIZE];
|
||||
} tFlashBlockInfo;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Function prototypes
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address);
|
||||
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr);
|
||||
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
|
||||
blt_int8u *data, blt_int16u len);
|
||||
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block);
|
||||
static blt_bool ExtFlashEraseSector(blt_addr sector_base);
|
||||
static blt_int16u ExtFlashGetDeviceInfo(blt_addr block_base, blt_int16u info);
|
||||
static void ExtFlashLockSector(blt_addr sector_base);
|
||||
static void ExtFlashUnlockSector(blt_addr sector_base);
|
||||
static blt_int8u ExtFlashGetSector(blt_addr address);
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local constant declarations
|
||||
****************************************************************************************/
|
||||
/* The current layout supports the 2MB external C3 Intel flash:
|
||||
* - manufacturer id = 0x0089
|
||||
* - device id = 0x88c3 (16 Mbit bottom boot device)
|
||||
* Note that what Intel calls a block in the user manual, is called a sector in this
|
||||
* driver.
|
||||
*/
|
||||
static const tFlashSector flashLayout[] =
|
||||
{
|
||||
{ 0x80000000, 0x02000, 0}, /* flash sector 0 - 8 kbyte */
|
||||
{ 0x80002000, 0x02000, 1}, /* flash sector 1 - 8 kbyte */
|
||||
{ 0x80004000, 0x02000, 2}, /* flash sector 2 - 8 kbyte */
|
||||
{ 0x80006000, 0x02000, 3}, /* flash sector 3 - 8 kbyte */
|
||||
{ 0x80008000, 0x02000, 4}, /* flash sector 4 - 8 kbyte */
|
||||
{ 0x8000A000, 0x02000, 5}, /* flash sector 5 - 8 kbyte */
|
||||
{ 0x8000C000, 0x02000, 6}, /* flash sector 6 - 8 kbyte */
|
||||
{ 0x8000E000, 0x02000, 7}, /* flash sector 7 - 8 kbyte */
|
||||
{ 0x80010000, 0x10000, 8}, /* flash sector 8 - 64 kbyte */
|
||||
{ 0x80020000, 0x10000, 9}, /* flash sector 9 - 64 kbyte */
|
||||
{ 0x80030000, 0x10000, 10}, /* flash sector 10 - 64 kbyte */
|
||||
{ 0x80040000, 0x10000, 11}, /* flash sector 11 - 64 kbyte */
|
||||
{ 0x80050000, 0x10000, 12}, /* flash sector 12 - 64 kbyte */
|
||||
{ 0x80060000, 0x10000, 13}, /* flash sector 13 - 64 kbyte */
|
||||
{ 0x80070000, 0x10000, 14}, /* flash sector 14 - 64 kbyte */
|
||||
{ 0x80080000, 0x10000, 15}, /* flash sector 15 - 64 kbyte */
|
||||
{ 0x80090000, 0x10000, 16}, /* flash sector 16 - 64 kbyte */
|
||||
{ 0x800A0000, 0x10000, 17}, /* flash sector 17 - 64 kbyte */
|
||||
{ 0x800B0000, 0x10000, 18}, /* flash sector 18 - 64 kbyte */
|
||||
{ 0x800C0000, 0x10000, 19}, /* flash sector 19 - 64 kbyte */
|
||||
{ 0x800D0000, 0x10000, 20}, /* flash sector 20 - 64 kbyte */
|
||||
{ 0x800E0000, 0x10000, 21}, /* flash sector 21 - 64 kbyte */
|
||||
{ 0x800F0000, 0x10000, 22}, /* flash sector 22 - 64 kbyte */
|
||||
{ 0x80100000, 0x10000, 23}, /* flash sector 23 - 64 kbyte */
|
||||
{ 0x80110000, 0x10000, 24}, /* flash sector 24 - 64 kbyte */
|
||||
{ 0x80120000, 0x10000, 25}, /* flash sector 25 - 64 kbyte */
|
||||
{ 0x80130000, 0x10000, 26}, /* flash sector 26 - 64 kbyte */
|
||||
{ 0x80140000, 0x10000, 27}, /* flash sector 27 - 64 kbyte */
|
||||
{ 0x80150000, 0x10000, 28}, /* flash sector 28 - 64 kbyte */
|
||||
{ 0x80160000, 0x10000, 29}, /* flash sector 29 - 64 kbyte */
|
||||
{ 0x80170000, 0x10000, 30}, /* flash sector 30 - 64 kbyte */
|
||||
{ 0x80180000, 0x10000, 31}, /* flash sector 31 - 64 kbyte */
|
||||
{ 0x80190000, 0x10000, 32}, /* flash sector 32 - 64 kbyte */
|
||||
{ 0x801A0000, 0x10000, 33}, /* flash sector 33 - 64 kbyte */
|
||||
{ 0x801B0000, 0x10000, 34}, /* flash sector 34 - 64 kbyte */
|
||||
{ 0x801C0000, 0x10000, 35}, /* flash sector 35 - 64 kbyte */
|
||||
{ 0x801D0000, 0x10000, 36}, /* flash sector 36 - 64 kbyte */
|
||||
{ 0x801E0000, 0x10000, 37}, /* flash sector 37 - 64 kbyte */
|
||||
{ 0x801F0000, 0x10000, 38} /* flash sector 38 - 64 kbyte */
|
||||
};
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local data declarations
|
||||
****************************************************************************************/
|
||||
/* The smallest amount of flash that can be programmed is FLASH_WRITE_BLOCK_SIZE. A flash
|
||||
* block manager is implemented in this driver and stores info in this variable. Whenever
|
||||
* new data should be flashed, it is first added to a RAM buffer, which is part of this
|
||||
* variable. Whenever the RAM buffer, which has the size of a flash block, is full or
|
||||
* data needs to be written to a different block, the contents of the RAM buffer are
|
||||
* programmed to flash. The flash block manager requires some software overhead, yet
|
||||
* results is faster flash programming because data is first harvested, ideally until
|
||||
* there is enough to program an entire flash block, before the flash device is actually
|
||||
* operated on.
|
||||
*/
|
||||
static tFlashBlockInfo blockInfo;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashInit
|
||||
** PARAMETER: none
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Initializes the flash driver.
|
||||
**
|
||||
****************************************************************************************/
|
||||
void ExtFlashInit(void)
|
||||
{
|
||||
/* init the flash block info struct by setting the address to an invalid address */
|
||||
blockInfo.base_addr = FLASH_INVALID_ADDRESS;
|
||||
/* check the flash device identification */
|
||||
if ((ExtFlashGetManID() != FLASH_DEV_MAN_ID) || (ExtFlashGetDevID() != FLASH_DEV_ID))
|
||||
{
|
||||
ASSERT_RT(BLT_FALSE);
|
||||
}
|
||||
} /*** end of ExtFlashInit ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashWrite
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Writes the data to flash.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
/* make sure the addresses are within the flash device */
|
||||
if ( (ExtFlashGetSector(addr) == FLASH_INVALID_SECTOR) || \
|
||||
(ExtFlashGetSector(addr+len-1) == FLASH_INVALID_SECTOR) )
|
||||
{
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
}
|
||||
|
||||
/* let the block manager handle it */
|
||||
if (ExtFlashAddToBlock(&blockInfo, addr, data, len) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NVM_ERROR;
|
||||
}
|
||||
return BLT_NVM_OKAY;
|
||||
} /*** end of FlashWrite ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashErase
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Erases the flash memory. Note that this function also checks that no
|
||||
** data is erased outside the flash memory region.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
blt_int8u first_sector;
|
||||
blt_int8u last_sector;
|
||||
blt_int8u sectorIdx;
|
||||
|
||||
/* obtain the first and last sector number */
|
||||
first_sector = ExtFlashGetSector(addr);
|
||||
last_sector = ExtFlashGetSector(addr+len-1);
|
||||
/* check them */
|
||||
if ( (first_sector == FLASH_INVALID_SECTOR) || (last_sector == FLASH_INVALID_SECTOR) )
|
||||
{
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
}
|
||||
/* erase the sectors one-by-one */
|
||||
for (sectorIdx = first_sector; sectorIdx <= last_sector; sectorIdx++)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* erase the sector */
|
||||
if (ExtFlashEraseSector(flashLayout[sectorIdx].sector_start) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NVM_ERROR;
|
||||
}
|
||||
}
|
||||
/* done so return the result of the operation */
|
||||
return BLT_NVM_OKAY;
|
||||
} /*** end of ExtFlashErase ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashDone
|
||||
** PARAMETER: none
|
||||
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Finilizes the flash driver operations.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool ExtFlashDone(void)
|
||||
{
|
||||
/* check if there is still data waiting to be programmed */
|
||||
if (blockInfo.base_addr != FLASH_INVALID_ADDRESS)
|
||||
{
|
||||
if (ExtFlashWriteBlock(&blockInfo) == BLT_FALSE)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* still here so all is okay */
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashDone ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashInitBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** address base address of the block data.
|
||||
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Copies data currently in flash to the block->data and sets the
|
||||
** base address.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
|
||||
{
|
||||
/* check address alignment */
|
||||
if ((address % FLASH_WRITE_BLOCK_SIZE) != 0)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
/* make sure that we are initializing a new block and not the same one */
|
||||
if (block->base_addr == address)
|
||||
{
|
||||
/* block already initialized, so nothing to do */
|
||||
return BLT_TRUE;
|
||||
}
|
||||
/* set the base address and copies the current data from flash */
|
||||
block->base_addr = address;
|
||||
CpuMemCopy((blt_addr)block->data, address, FLASH_WRITE_BLOCK_SIZE);
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashInitBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashSwitchBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** base_addr base address for the next block
|
||||
** RETURN VALUE: the pointer of the block info struct that is no being used, or a NULL
|
||||
** pointer in case of error.
|
||||
** DESCRIPTION: Switches blocks by programming the current one and initializing the
|
||||
** next.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
if (ExtFlashWriteBlock(block) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NULL;
|
||||
}
|
||||
/* initialize the new block when necessary */
|
||||
if (ExtFlashInitBlock(block, base_addr) == BLT_FALSE)
|
||||
{
|
||||
return BLT_NULL;
|
||||
}
|
||||
/* still here to all is okay */
|
||||
return block;
|
||||
} /*** end of ExtFlashSwitchBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashAddToBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** address flash destination address
|
||||
** data pointer to the byte array with data
|
||||
** len number of bytes to add to the block
|
||||
** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Programming is done per block. This function adds data to the block
|
||||
** that is currently collecting data to be written to flash. If the
|
||||
** address is outside of the current block, the current block is written
|
||||
** to flash an a new block is initialized.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
|
||||
blt_int8u *data, blt_int16u len)
|
||||
{
|
||||
blt_addr current_base_addr;
|
||||
blt_int8u *dst;
|
||||
blt_int8u *src;
|
||||
|
||||
/* determine the current base address */
|
||||
current_base_addr = (address/FLASH_WRITE_BLOCK_SIZE)*FLASH_WRITE_BLOCK_SIZE;
|
||||
|
||||
/* make sure the blockInfo is not uninitialized */
|
||||
if (block->base_addr == FLASH_INVALID_ADDRESS)
|
||||
{
|
||||
/* initialize the blockInfo struct for the current block */
|
||||
if (ExtFlashInitBlock(block, current_base_addr) == BLT_FALSE)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* check if the new data fits in the current block */
|
||||
if (block->base_addr != current_base_addr)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
block = ExtFlashSwitchBlock(block, current_base_addr);
|
||||
if (block == BLT_NULL)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
}
|
||||
/* add the data to the current block, but check for block overflow */
|
||||
dst = &(block->data[address - block->base_addr]);
|
||||
src = data;
|
||||
do
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* buffer overflow? */
|
||||
if ((blt_addr)(dst-&(block->data[0])) >= FLASH_WRITE_BLOCK_SIZE)
|
||||
{
|
||||
/* need to switch to a new block, so program the current one and init the next */
|
||||
block = ExtFlashSwitchBlock(block, current_base_addr+FLASH_WRITE_BLOCK_SIZE);
|
||||
if (block == BLT_NULL)
|
||||
{
|
||||
return BLT_FALSE;
|
||||
}
|
||||
/* reset destination pointer */
|
||||
dst = &(block->data[0]);
|
||||
}
|
||||
/* write the data to the buffer */
|
||||
*dst = *src;
|
||||
/* update pointers */
|
||||
dst++;
|
||||
src++;
|
||||
/* decrement byte counter */
|
||||
len--;
|
||||
}
|
||||
while (len > 0);
|
||||
/* still here so all is good */
|
||||
return BLT_TRUE;
|
||||
} /*** end of ExtFlashAddToBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashWriteBlock
|
||||
** PARAMETER: block pointer to flash block info structure to operate on.
|
||||
** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Programs FLASH_WRITE_BLOCK_SIZE bytes to flash from the block->data
|
||||
** array.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
volatile blt_int16u *pData;
|
||||
blt_bool result = BLT_TRUE;
|
||||
volatile blt_int32u timeout = 0;
|
||||
|
||||
/* unlock the sector */
|
||||
ExtFlashUnlockSector(block->base_addr);
|
||||
/* init pointer to valid address in the flash block */
|
||||
pAddr = (blt_int16u *)block->base_addr;
|
||||
/* init pointer to start of block data */
|
||||
pData = (blt_int16u *)block->data;
|
||||
/* program all block data 16-bits at a time */
|
||||
while ((blt_addr)pAddr < (block->base_addr+FLASH_WRITE_BLOCK_SIZE))
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* issue program setup command */
|
||||
*pAddr = FLASH_CMD_PROGRAM_MODE;
|
||||
/* write 16-bit data that is to be programmed to start programming operation */
|
||||
*pAddr = *pData;
|
||||
/* check status register for completion */
|
||||
*pAddr = FLASH_CMD_READ_STATUS_MODE;
|
||||
/* wait for completion or timeout */
|
||||
while( ((*pAddr & FLASH_STATUS_READY_BIT) == 0) && (timeout < FLASH_PROGRAM_TIMEOUT) )
|
||||
{
|
||||
timeout++;
|
||||
}
|
||||
/* check for possible errors */
|
||||
if ( (timeout >= FLASH_ERASE_TIMEOUT) || \
|
||||
((*pAddr & (FLASH_ERR_LOCKED | FLASH_ERR_VPP_RANGE | FLASH_ERR_PROGRAM))!= 0) )
|
||||
{
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
/* clear the status register */
|
||||
*pAddr = FLASH_CMD_CLEAR_STATUS;
|
||||
/* increment address and data pointers */
|
||||
pAddr++;
|
||||
pData++;
|
||||
}
|
||||
/* lock the sector. this also switches back to read array mode */
|
||||
ExtFlashLockSector(block->base_addr);
|
||||
/* inform the caller about the result */
|
||||
return result;
|
||||
} /*** end of ExtFlashWriteBlock ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashEraseSector
|
||||
** PARAMETER: sector_base base address of the sector to erase.
|
||||
** RETURN VALUE: BLT_TRUE is erasure was successful, BLT_FALSE otherwise.
|
||||
** DESCRIPTION: Erases the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool ExtFlashEraseSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
blt_bool result = BLT_TRUE;
|
||||
volatile blt_int32u timeout = 0;
|
||||
|
||||
/* unlock the sector */
|
||||
ExtFlashUnlockSector(sector_base);
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* issue erase setup command */
|
||||
*pAddr = FLASH_CMD_ERASE_MODE;
|
||||
/* issue erase confirm command */
|
||||
*pAddr = FLASH_CMD_ERASE_CONFIRM;
|
||||
/* check status register for completion */
|
||||
*pAddr = FLASH_CMD_READ_STATUS_MODE;
|
||||
/* wait for completion or timeout */
|
||||
while( ((*pAddr & FLASH_STATUS_READY_BIT) == 0) && (timeout < FLASH_ERASE_TIMEOUT) )
|
||||
{
|
||||
timeout++;
|
||||
}
|
||||
/* check for possible errors */
|
||||
if ( (timeout >= FLASH_ERASE_TIMEOUT) || \
|
||||
((*pAddr & (FLASH_ERR_LOCKED | FLASH_ERR_VPP_RANGE | FLASH_ERR_ERASE))!= 0) )
|
||||
{
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
/* clear the status register */
|
||||
*pAddr = FLASH_CMD_CLEAR_STATUS;
|
||||
/* lock the sector. this also switches back to read array mode */
|
||||
ExtFlashLockSector(sector_base);
|
||||
/* inform the caller about the result */
|
||||
return result;
|
||||
} /*** end of ExtFlashEraseSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashLockSector
|
||||
** PARAMETER: sector_base base address of the sector to lock.
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Locks the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void ExtFlashLockSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
|
||||
/* no need to lock a sector that is already locked */
|
||||
if ((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* switch to change lock mode */
|
||||
*pAddr = FLASH_CMD_CHANGE_LOCK_MODE;
|
||||
/* unlock the sector */
|
||||
*pAddr = FLASH_CMD_LOCK_SECTOR;
|
||||
/* check that the sector is now actually locked */
|
||||
ASSERT_RT((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) != 0);
|
||||
} /*** end of ExtFlashLockSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashUnlockSector
|
||||
** PARAMETER: sector_base base address of the sector to unlock.
|
||||
** RETURN VALUE: none
|
||||
** DESCRIPTION: Unlocks the flash sector.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void ExtFlashUnlockSector(blt_addr sector_base)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
|
||||
/* no need to unlock a sector that is already unlocked */
|
||||
if ((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/* init pointer to valid address in the flash sector */
|
||||
pAddr = (blt_int16u *)sector_base;
|
||||
/* switch to change lock mode */
|
||||
*pAddr = FLASH_CMD_CHANGE_LOCK_MODE;
|
||||
/* unlock the sector */
|
||||
*pAddr = FLASH_CMD_UNLOCK_SECTOR;
|
||||
/* check that the sector is now actually unlocked */
|
||||
ASSERT_RT((ExtFlashGetLockStatus(sector_base) & FLASH_LOCK_BIT) == 0);
|
||||
} /*** end of ExtFlashUnlockSector ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashGetDeviceInfo
|
||||
** PARAMETER: sector_base base address of the sector to get the info from.
|
||||
** info identifier to the type of info to obtain.
|
||||
** RETURN VALUE: device info.
|
||||
** DESCRIPTION: Obtains device information from the flash device.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
|
||||
{
|
||||
volatile blt_int16u *pAddr;
|
||||
blt_int16u readData;
|
||||
|
||||
/* init pointer to any valid address in the flash device */
|
||||
pAddr = (blt_int16u *)sector_base + info;
|
||||
/* switch to read identifier mode */
|
||||
*pAddr = FLASH_CMD_READ_ID_MODE;
|
||||
/* read the info */
|
||||
readData = *pAddr;
|
||||
/* switch back to reading mode */
|
||||
*pAddr = FLASH_CMD_READ_ARRAY_MODE;
|
||||
/* return the result */
|
||||
return readData;
|
||||
} /*** end of ExtFlashGetDeviceInfo ***/
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
** NAME: ExtFlashGetSector
|
||||
** PARAMETER: address address in the flash sector
|
||||
** RETURN VALUE: flash sector number or FLASH_INVALID_SECTOR
|
||||
** DESCRIPTION: Determines the flash sector the address is in.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_int8u ExtFlashGetSector(blt_addr address)
|
||||
{
|
||||
blt_int8u sectorIdx;
|
||||
|
||||
/* search through the sectors to find the right one */
|
||||
for (sectorIdx = 0; sectorIdx < FLASH_TOTAL_SECTORS; sectorIdx++)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* is the address in this sector? */
|
||||
if ( (address >= flashLayout[sectorIdx].sector_start) && \
|
||||
(address < (flashLayout[sectorIdx].sector_start + \
|
||||
flashLayout[sectorIdx].sector_size)) )
|
||||
{
|
||||
/* return the sector number */
|
||||
return flashLayout[sectorIdx].sector_num;
|
||||
}
|
||||
}
|
||||
/* still here so no valid sector found */
|
||||
return FLASH_INVALID_SECTOR;
|
||||
} /*** end of ExtFlashGetSector ***/
|
||||
#endif
|
||||
|
||||
/*********************************** end of extflash.c *********************************/
|
|
@ -0,0 +1,45 @@
|
|||
/****************************************************************************************
|
||||
| Description: bootloader external flash driver header file
|
||||
| File Name: extflash.h
|
||||
|
|
||||
|----------------------------------------------------------------------------------------
|
||||
| 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 should have received a copy of the GNU General Public License along with OpenBLT.
|
||||
| If not, see <http://www.gnu.org/licenses/>.
|
||||
|
|
||||
| A special exception to the GPL is included to allow you to distribute a combined work
|
||||
| that includes OpenBLT without being obliged to provide the source code for any
|
||||
| proprietary components. The exception text is included at the bottom of the license
|
||||
| file <license.html>.
|
||||
|
|
||||
****************************************************************************************/
|
||||
#ifndef EXTFLASH_H
|
||||
#define EXTFLASH_H
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Function prototypes
|
||||
****************************************************************************************/
|
||||
void ExtFlashInit(void);
|
||||
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data);
|
||||
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len);
|
||||
blt_bool ExtFlashDone(void);
|
||||
#endif
|
||||
|
||||
#endif /* EXTFLASH_H */
|
||||
/*********************************** end of extflash.h *********************************/
|
|
@ -80,6 +80,7 @@ blt_bool BackDoorEntryHook(void)
|
|||
****************************************************************************************/
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
#include "extflash.h"
|
||||
/****************************************************************************************
|
||||
** NAME: NvmInitHook
|
||||
** PARAMETER: none
|
||||
|
@ -90,6 +91,8 @@ blt_bool BackDoorEntryHook(void)
|
|||
****************************************************************************************/
|
||||
void NvmInitHook(void)
|
||||
{
|
||||
/* init the external flash driver */
|
||||
ExtFlashInit();
|
||||
} /*** end of NvmInitHook ***/
|
||||
|
||||
|
||||
|
@ -98,20 +101,21 @@ void NvmInitHook(void)
|
|||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the write
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver write
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** been written yet.
|
||||
**
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
/* attempt to write with the external flash driver */
|
||||
return ExtFlashWrite(addr, len, data);
|
||||
} /*** end of NvmWriteHook ***/
|
||||
|
||||
|
||||
|
@ -119,19 +123,20 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
** NAME: NvmEraseHook
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the erase
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver erase
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** hasn't been erased yet.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
/* attempt to erase with the external flash driver */
|
||||
return ExtFlashErase(addr, len);
|
||||
} /*** end of NvmEraseHook ***/
|
||||
|
||||
|
||||
|
@ -144,7 +149,8 @@ blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
|||
****************************************************************************************/
|
||||
blt_bool NvmDoneHook(void)
|
||||
{
|
||||
return BLT_TRUE;
|
||||
/* finish up the operations of the external flash driver */
|
||||
return ExtFlashDone();
|
||||
} /*** end of NvmDoneHook ***/
|
||||
#endif /* BOOT_NVM_HOOKS_ENABLE > 0 */
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@
|
|||
<File Name="../hooks.c"/>
|
||||
<File Name="../main.c"/>
|
||||
<File Name="../lpc2294.h"/>
|
||||
<File Name="../extflash.c"/>
|
||||
<File Name="../extflash.h"/>
|
||||
</VirtualDirectory>
|
||||
</VirtualDirectory>
|
||||
</VirtualDirectory>
|
||||
|
|
|
@ -80,7 +80,7 @@ int main(void)
|
|||
static void Init(void)
|
||||
{
|
||||
blt_int8u m_sel; /* pll multiplier register value */
|
||||
blt_int8u pll_dividers[] = { 1, 2, 4, 8 }; /* possible pll dividers */
|
||||
static blt_int8u pll_dividers[] = { 1, 2, 4, 8 }; /* possible pll dividers */
|
||||
blt_int8u p_sel_cnt; /* loop counter to find p_sel */
|
||||
blt_int32u f_cco; /* current controller oscillator */
|
||||
|
||||
|
@ -144,6 +144,29 @@ static void Init(void)
|
|||
MAMCR = 0x2;
|
||||
/* setting peripheral Clock (pclk) to System Clock (cclk) */
|
||||
VPBDIV = 0x1;
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
/* in this the external memory on the Olimex LPC-L2294 board is used so configure
|
||||
* the memory banks for the external flash EEPROM and RAM
|
||||
*/
|
||||
/* external flash EEPROM:
|
||||
* IDCY=3 (idle timing)
|
||||
* WST1=4 (read timing)
|
||||
* RBLE=1
|
||||
* WST2=6 (write timing)
|
||||
* MW=1 (16-bit data bus)
|
||||
*/
|
||||
BCFG0 = (0x3 << 0) | (0x4 << 5) | (0x1 << 10) | (0x6 << 11) | (0x1 << 28);
|
||||
/* external RAM:
|
||||
* IDCY=0 (idle timing)
|
||||
* WST1=0 (read timing)
|
||||
* RBLE=1
|
||||
* WST2=0 (write timing)
|
||||
* MW=2 (32-bit data bus)
|
||||
*/
|
||||
BCFG1 = (0x0 << 0) | (0x0 << 5) | (0x1 << 10) | (0x0 << 11) | (0x2 << 28);
|
||||
/* configure use of data bus and strobe pins for the external memory */
|
||||
PINSEL2 = 0x0F000924;
|
||||
#endif
|
||||
#if (BOOT_COM_UART_ENABLE > 0)
|
||||
/* configure P0.0 for UART0 Tx and P0.1 for UART0 Rx functionality */
|
||||
PINSEL0 |= 0x05;
|
||||
|
|
|
@ -38,6 +38,8 @@ PROJ_FILES= \
|
|||
config.h \
|
||||
hooks.c \
|
||||
main.c \
|
||||
extflash.c \
|
||||
extflash.h \
|
||||
lpc2294.h \
|
||||
../../../Source/boot.c \
|
||||
../../../Source/boot.h \
|
||||
|
@ -105,7 +107,7 @@ LIB_PATH = -L../../../Source/ARM7_LPC2000/GCC/
|
|||
#| Options for compiler binaries |
|
||||
#|---------------------------------------------------------------------------------------|
|
||||
AFLAGS = -ahls -mapcs-32 -mcpu=arm7tdmi-s -mfpu=softfpa
|
||||
CFLAGS = $(INC_PATH) -O1 -Wall -fmessage-length=0 -mcpu=arm7tdmi-s -g -mlong-calls
|
||||
CFLAGS = $(INC_PATH) -O1 -Wall -fmessage-length=0 -mcpu=arm7tdmi-s -g
|
||||
CFLAGS += -Wa,-adhlns="$(OBJ_PATH)/$(subst .o,.lst,$@)"
|
||||
LFLAGS = $(LIB_PATH) -T"memory.x" -g -mcpu=arm7tdmi-s -nostartfiles
|
||||
OCFLAGS = -O ihex
|
||||
|
|
Binary file not shown.
|
@ -19,50 +19,50 @@ Discarded input sections
|
|||
.text.__get_PSP
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_PSP
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__get_MSP
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_MSP
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__get_BASEPRI
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_BASEPRI
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__get_PRIMASK
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_PRIMASK
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__get_FAULTMASK
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_FAULTMASK
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__get_CONTROL
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__set_CONTROL
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__REV 0x00000000 0x4 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__REV16 0x00000000 0x4 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__REVSH 0x00000000 0x4 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__RBIT 0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__RBIT 0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__LDREXB
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__LDREXH
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__LDREXW
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__STREXB
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__STREXH
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text.__STREXW
|
||||
0x00000000 0x6 THUMB Debug/../../obj/core_cm3.o
|
||||
0x00000000 0x8 THUMB Debug/../../obj/core_cm3.o
|
||||
.text 0x00000000 0x0 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.data 0x00000000 0x0 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.bss 0x00000000 0x0 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.text.SystemInit
|
||||
0x00000000 0xf8 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
0x00000000 0x130 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.text.SystemCoreClockUpdate
|
||||
0x00000000 0x64 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
0x00000000 0xe0 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.data.AHBPrescTable
|
||||
0x00000000 0x10 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.data.SystemCoreClock
|
||||
|
@ -89,8 +89,6 @@ Discarded input sections
|
|||
.text 0x00000000 0x0 THUMB Debug/../../obj/timer.o
|
||||
.data 0x00000000 0x0 THUMB Debug/../../obj/timer.o
|
||||
.bss 0x00000000 0x0 THUMB Debug/../../obj/timer.o
|
||||
.text.TimerSet
|
||||
0x00000000 0xc THUMB Debug/../../obj/timer.o
|
||||
.text 0x00000000 0x0 THUMB Debug/../../obj/uart.o
|
||||
.data 0x00000000 0x0 THUMB Debug/../../obj/uart.o
|
||||
.bss 0x00000000 0x0 THUMB Debug/../../obj/uart.o
|
||||
|
@ -164,7 +162,7 @@ CM3_System_Control_Space 0xe000e000 0x00001000 xw
|
|||
|
||||
Linker script and memory map
|
||||
|
||||
0x08000d70 __do_debug_operation = __do_debug_operation_bkpt
|
||||
0x0800122c __do_debug_operation = __do_debug_operation_bkpt
|
||||
0x08000000 __FLASH_segment_start__ = 0x8000000
|
||||
0x08004000 __FLASH_segment_end__ = 0x8004000
|
||||
0x20000000 __RAM_segment_start__ = 0x20000000
|
||||
|
@ -213,146 +211,159 @@ Linker script and memory map
|
|||
0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .init is too large to fit in FLASH memory segment)
|
||||
0x080002e8 __text_load_start__ = ALIGN (__init_end__, 0x4)
|
||||
|
||||
.text 0x080002e8 0xaa8
|
||||
.text 0x080002e8 0xf64
|
||||
0x080002e8 __text_start__ = .
|
||||
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
|
||||
.glue_7 0x00000000 0x0 linker stubs
|
||||
.glue_7t 0x00000000 0x0 linker stubs
|
||||
.text.startup.main
|
||||
0x080002e8 0x12c THUMB Debug/../../obj/main.o
|
||||
.text.main 0x080002e8 0x170 THUMB Debug/../../obj/main.o
|
||||
0x080002e8 main
|
||||
.text.UnusedISR
|
||||
0x08000414 0xc THUMB Debug/../../obj/vectors.o
|
||||
0x08000414 UnusedISR
|
||||
0x08000458 0x18 THUMB Debug/../../obj/vectors.o
|
||||
0x08000458 UnusedISR
|
||||
.text.CpuStartUserProgram
|
||||
0x08000420 0x24 THUMB Debug/../../obj/cpu.o
|
||||
0x08000420 CpuStartUserProgram
|
||||
0x08000470 0x28 THUMB Debug/../../obj/cpu.o
|
||||
0x08000470 CpuStartUserProgram
|
||||
.text.CpuMemCopy
|
||||
0x08000444 0x20 THUMB Debug/../../obj/cpu.o
|
||||
0x08000444 CpuMemCopy
|
||||
0x08000498 0x28 THUMB Debug/../../obj/cpu.o
|
||||
0x08000498 CpuMemCopy
|
||||
.text.CpuReset
|
||||
0x08000464 0x4 THUMB Debug/../../obj/cpu.o
|
||||
0x08000464 CpuReset
|
||||
.text.NvmInit 0x08000468 0x4 THUMB Debug/../../obj/nvm.o
|
||||
0x08000468 NvmInit
|
||||
0x080004c0 0xc THUMB Debug/../../obj/cpu.o
|
||||
0x080004c0 CpuReset
|
||||
.text.NvmInit 0x080004cc 0xc THUMB Debug/../../obj/nvm.o
|
||||
0x080004cc NvmInit
|
||||
.text.NvmWrite
|
||||
0x0800046c 0x4 THUMB Debug/../../obj/nvm.o
|
||||
0x0800046c NvmWrite
|
||||
0x080004d8 0xc THUMB Debug/../../obj/nvm.o
|
||||
0x080004d8 NvmWrite
|
||||
.text.NvmErase
|
||||
0x08000470 0x4 THUMB Debug/../../obj/nvm.o
|
||||
0x08000470 NvmErase
|
||||
0x080004e4 0xc THUMB Debug/../../obj/nvm.o
|
||||
0x080004e4 NvmErase
|
||||
.text.NvmVerifyChecksum
|
||||
0x08000474 0x4 THUMB Debug/../../obj/nvm.o
|
||||
0x08000474 NvmVerifyChecksum
|
||||
.text.NvmDone 0x08000478 0x14 THUMB Debug/../../obj/nvm.o
|
||||
0x08000478 NvmDone
|
||||
.text.TimerInit
|
||||
0x0800048c 0x24 THUMB Debug/../../obj/timer.o
|
||||
0x0800048c TimerInit
|
||||
0x080004f0 0xc THUMB Debug/../../obj/nvm.o
|
||||
0x080004f0 NvmVerifyChecksum
|
||||
.text.NvmDone 0x080004fc 0x18 THUMB Debug/../../obj/nvm.o
|
||||
0x080004fc NvmDone
|
||||
.text.TimerReset
|
||||
0x080004b0 0xc THUMB Debug/../../obj/timer.o
|
||||
0x080004b0 TimerReset
|
||||
0x08000514 0x10 THUMB Debug/../../obj/timer.o
|
||||
0x08000514 TimerReset
|
||||
.text.TimerUpdate
|
||||
0x080004bc 0x1c THUMB Debug/../../obj/timer.o
|
||||
0x080004bc TimerUpdate
|
||||
0x08000524 0x24 THUMB Debug/../../obj/timer.o
|
||||
0x08000524 TimerUpdate
|
||||
.text.TimerSet
|
||||
0x08000548 0xc THUMB Debug/../../obj/timer.o
|
||||
0x08000548 TimerSet
|
||||
.text.TimerInit
|
||||
0x08000554 0x2c THUMB Debug/../../obj/timer.o
|
||||
0x08000554 TimerInit
|
||||
.text.TimerGet
|
||||
0x080004d8 0x14 THUMB Debug/../../obj/timer.o
|
||||
0x080004d8 TimerGet
|
||||
0x08000580 0x14 THUMB Debug/../../obj/timer.o
|
||||
0x08000580 TimerGet
|
||||
.text.UartReceiveByte
|
||||
0x08000594 0x24 THUMB Debug/../../obj/uart.o
|
||||
.text.UartTransmitByte
|
||||
0x080005b8 0x4c THUMB Debug/../../obj/uart.o
|
||||
.text.UartInit
|
||||
0x080004ec 0x28 THUMB Debug/../../obj/uart.o
|
||||
0x080004ec UartInit
|
||||
0x08000604 0x2c THUMB Debug/../../obj/uart.o
|
||||
0x08000604 UartInit
|
||||
.text.UartTransmitPacket
|
||||
0x08000514 0x7c THUMB Debug/../../obj/uart.o
|
||||
0x08000514 UartTransmitPacket
|
||||
0x08000630 0x70 THUMB Debug/../../obj/uart.o
|
||||
0x08000630 UartTransmitPacket
|
||||
.text.UartReceivePacket
|
||||
0x08000590 0x6c THUMB Debug/../../obj/uart.o
|
||||
0x08000590 UartReceivePacket
|
||||
0x080006a0 0xb0 THUMB Debug/../../obj/uart.o
|
||||
0x080006a0 UartReceivePacket
|
||||
.text.FlashUnlock
|
||||
0x08000750 0x24 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashLock
|
||||
0x080005fc 0x10 THUMB Debug/../../obj/flash.o
|
||||
0x08000774 0x14 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashGetSector
|
||||
0x0800060c 0x38 THUMB Debug/../../obj/flash.o
|
||||
0x08000788 0x48 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashWriteBlock
|
||||
0x08000644 0xa0 THUMB Debug/../../obj/flash.o
|
||||
0x080007d0 0xc4 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashGetSectorBaseAddr
|
||||
0x08000894 0x40 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashInitBlock
|
||||
0x080008d4 0x38 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashSwitchBlock
|
||||
0x080006e4 0x54 THUMB Debug/../../obj/flash.o
|
||||
0x0800090c 0x50 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashAddToBlock
|
||||
0x08000738 0x8a THUMB Debug/../../obj/flash.o
|
||||
*fill* 0x080007c2 0x2 00
|
||||
0x0800095c 0xa0 THUMB Debug/../../obj/flash.o
|
||||
.text.FlashInit
|
||||
0x080007c4 0x18 THUMB Debug/../../obj/flash.o
|
||||
0x080007c4 FlashInit
|
||||
0x080009fc 0x1c THUMB Debug/../../obj/flash.o
|
||||
0x080009fc FlashInit
|
||||
.text.FlashWrite
|
||||
0x080007dc 0x4c THUMB Debug/../../obj/flash.o
|
||||
0x080007dc FlashWrite
|
||||
0x08000a18 0x58 THUMB Debug/../../obj/flash.o
|
||||
0x08000a18 FlashWrite
|
||||
.text.FlashErase
|
||||
0x08000828 0x13c THUMB Debug/../../obj/flash.o
|
||||
0x08000828 FlashErase
|
||||
0x08000a70 0x144 THUMB Debug/../../obj/flash.o
|
||||
0x08000a70 FlashErase
|
||||
.text.FlashVerifyChecksum
|
||||
0x08000964 0x54 THUMB Debug/../../obj/flash.o
|
||||
0x08000964 FlashVerifyChecksum
|
||||
0x08000bb4 0x68 THUMB Debug/../../obj/flash.o
|
||||
0x08000bb4 FlashVerifyChecksum
|
||||
.text.FlashWriteChecksum
|
||||
0x080009b8 0x44 THUMB Debug/../../obj/flash.o
|
||||
0x080009b8 FlashWriteChecksum
|
||||
0x08000c1c 0x50 THUMB Debug/../../obj/flash.o
|
||||
0x08000c1c FlashWriteChecksum
|
||||
.text.FlashDone
|
||||
0x080009fc 0x34 THUMB Debug/../../obj/flash.o
|
||||
0x080009fc FlashDone
|
||||
0x08000c6c 0x58 THUMB Debug/../../obj/flash.o
|
||||
0x08000c6c FlashDone
|
||||
.text.AssertFailure
|
||||
0x08000a30 0x18 THUMB Debug/../../obj/assert.o
|
||||
0x08000a30 AssertFailure
|
||||
0x08000cc4 0x1c THUMB Debug/../../obj/assert.o
|
||||
0x08000cc4 AssertFailure
|
||||
.text.BackDoorCheck
|
||||
0x08000a48 0x30 THUMB Debug/../../obj/backdoor.o
|
||||
0x08000a48 BackDoorCheck
|
||||
0x08000ce0 0x3c THUMB Debug/../../obj/backdoor.o
|
||||
0x08000ce0 BackDoorCheck
|
||||
.text.BackDoorInit
|
||||
0x08000a78 0x18 THUMB Debug/../../obj/backdoor.o
|
||||
0x08000a78 BackDoorInit
|
||||
0x08000d1c 0x1c THUMB Debug/../../obj/backdoor.o
|
||||
0x08000d1c BackDoorInit
|
||||
.text.BootInit
|
||||
0x08000a90 0x16 THUMB Debug/../../obj/boot.o
|
||||
0x08000a90 BootInit
|
||||
0x08000d38 0x18 THUMB Debug/../../obj/boot.o
|
||||
0x08000d38 BootInit
|
||||
.text.BootTask
|
||||
0x08000aa6 0x12 THUMB Debug/../../obj/boot.o
|
||||
0x08000aa6 BootTask
|
||||
.text.ComInit 0x08000ab8 0x2c THUMB Debug/../../obj/com.o
|
||||
0x08000ab8 ComInit
|
||||
.text.ComTask 0x08000ae4 0x20 THUMB Debug/../../obj/com.o
|
||||
0x08000ae4 ComTask
|
||||
0x08000d50 0x14 THUMB Debug/../../obj/boot.o
|
||||
0x08000d50 BootTask
|
||||
.text.ComInit 0x08000d64 0x34 THUMB Debug/../../obj/com.o
|
||||
0x08000d64 ComInit
|
||||
.text.ComTask 0x08000d98 0x24 THUMB Debug/../../obj/com.o
|
||||
0x08000d98 ComTask
|
||||
.text.ComTransmitPacket
|
||||
0x08000b04 0x10 THUMB Debug/../../obj/com.o
|
||||
0x08000b04 ComTransmitPacket
|
||||
0x08000dbc 0x10 THUMB Debug/../../obj/com.o
|
||||
0x08000dbc ComTransmitPacket
|
||||
.text.ComSetConnectEntryState
|
||||
0x08000b14 0xc THUMB Debug/../../obj/com.o
|
||||
0x08000b14 ComSetConnectEntryState
|
||||
0x08000dcc 0x10 THUMB Debug/../../obj/com.o
|
||||
0x08000dcc ComSetConnectEntryState
|
||||
.text.ComIsConnected
|
||||
0x08000b20 0x4 THUMB Debug/../../obj/com.o
|
||||
0x08000b20 ComIsConnected
|
||||
.text.CopInit 0x08000b24 0x2 THUMB Debug/../../obj/cop.o
|
||||
0x08000b24 CopInit
|
||||
0x08000ddc 0xc THUMB Debug/../../obj/com.o
|
||||
0x08000ddc ComIsConnected
|
||||
.text.CopInit 0x08000de8 0x4 THUMB Debug/../../obj/cop.o
|
||||
0x08000de8 CopInit
|
||||
.text.CopService
|
||||
0x08000b26 0x2 THUMB Debug/../../obj/cop.o
|
||||
0x08000b26 CopService
|
||||
0x08000dec 0x4 THUMB Debug/../../obj/cop.o
|
||||
0x08000dec CopService
|
||||
.text.XcpProtectResources
|
||||
0x08000df0 0x10 THUMB Debug/../../obj/xcp.o
|
||||
.text.XcpSetCtoError
|
||||
0x08000b28 0x14 THUMB Debug/../../obj/xcp.o
|
||||
.text.XcpInit 0x08000b3c 0x1c THUMB Debug/../../obj/xcp.o
|
||||
0x08000b3c XcpInit
|
||||
0x08000e00 0x1c THUMB Debug/../../obj/xcp.o
|
||||
.text.XcpInit 0x08000e1c 0x20 THUMB Debug/../../obj/xcp.o
|
||||
0x08000e1c XcpInit
|
||||
.text.XcpIsConnected
|
||||
0x08000b58 0x10 THUMB Debug/../../obj/xcp.o
|
||||
0x08000b58 XcpIsConnected
|
||||
0x08000e3c 0x14 THUMB Debug/../../obj/xcp.o
|
||||
0x08000e3c XcpIsConnected
|
||||
.text.XcpPacketTransmitted
|
||||
0x08000b68 0x10 THUMB Debug/../../obj/xcp.o
|
||||
0x08000b68 XcpPacketTransmitted
|
||||
0x08000e50 0x14 THUMB Debug/../../obj/xcp.o
|
||||
0x08000e50 XcpPacketTransmitted
|
||||
.text.XcpPacketReceived
|
||||
0x08000b78 0x1f8 THUMB Debug/../../obj/xcp.o
|
||||
0x08000b78 XcpPacketReceived
|
||||
0x08000e64 0x3c8 THUMB Debug/../../obj/xcp.o
|
||||
0x08000e64 XcpPacketReceived
|
||||
.text.libdebugio_bkpt.__do_debug_operation_bkpt
|
||||
0x08000d70 0x18 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v7m_t_le.a(libdebugio_asm.o)
|
||||
0x08000d70 __do_debug_operation_bkpt
|
||||
0x0800122c 0x18 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v7m_t_le.a(libdebugio_asm.o)
|
||||
0x0800122c __do_debug_operation_bkpt
|
||||
.text.libc.__debug_io_lock
|
||||
0x08000d88 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
0x08000d88 __debug_io_lock
|
||||
0x08001244 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
0x08001244 __debug_io_lock
|
||||
.text.libc.__debug_io_unlock
|
||||
0x08000d8c 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
0x08000d8c __debug_io_unlock
|
||||
0x08000d90 __text_end__ = (__text_start__ + SIZEOF (.text))
|
||||
0x08000d90 __text_load_end__ = __text_end__
|
||||
0x08001248 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
0x08001248 __debug_io_unlock
|
||||
0x0800124c __text_end__ = (__text_start__ + SIZEOF (.text))
|
||||
0x0800124c __text_load_end__ = __text_end__
|
||||
|
||||
.vfp11_veneer 0x00000000 0x0
|
||||
.vfp11_veneer 0x00000000 0x0 linker stubs
|
||||
|
@ -360,62 +371,65 @@ Linker script and memory map
|
|||
.v4_bx 0x00000000 0x0
|
||||
.v4_bx 0x00000000 0x0 linker stubs
|
||||
0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= (__FLASH_segment_start__ + 0x20000))), error: .text is too large to fit in FLASH memory segment)
|
||||
0x08000d90 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
|
||||
0x0800124c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
|
||||
|
||||
.dtors 0x08000d90 0x0
|
||||
0x08000d90 __dtors_start__ = .
|
||||
.dtors 0x0800124c 0x0
|
||||
0x0800124c __dtors_start__ = .
|
||||
*(SORT(.dtors.*))
|
||||
*(.dtors)
|
||||
*(.fini_array .fini_array.*)
|
||||
0x08000d90 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
|
||||
0x08000d90 __dtors_load_end__ = __dtors_end__
|
||||
0x0800124c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
|
||||
0x0800124c __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)
|
||||
0x08000d90 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
|
||||
0x0800124c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
|
||||
|
||||
.ctors 0x08000d90 0x0
|
||||
0x08000d90 __ctors_start__ = .
|
||||
.ctors 0x0800124c 0x0
|
||||
0x0800124c __ctors_start__ = .
|
||||
*(SORT(.ctors.*))
|
||||
*(.ctors)
|
||||
*(.init_array .init_array.*)
|
||||
0x08000d90 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
|
||||
0x08000d90 __ctors_load_end__ = __ctors_end__
|
||||
0x0800124c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
|
||||
0x0800124c __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)
|
||||
0x08000d90 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
|
||||
0x0800124c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
|
||||
|
||||
.rodata 0x08000d90 0x23c
|
||||
0x08000d90 __rodata_start__ = .
|
||||
.rodata 0x0800124c 0x23c
|
||||
0x0800124c __rodata_start__ = .
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
.rodata.str1.1
|
||||
0x08000d90 0x67 THUMB Debug/../../obj/main.o
|
||||
.rodata.str1.1
|
||||
0x08000df7 0x92 THUMB Debug/../../obj/vectors.o
|
||||
.rodata.str1.1
|
||||
0x08000e89 0x84 THUMB Debug/../../obj/uart.o
|
||||
*fill* 0x08000f0d 0x3 00
|
||||
.rodata.str1.4
|
||||
0x0800124c 0x67 THUMB Debug/../../obj/main.o
|
||||
0x68 (size before relaxing)
|
||||
*fill* 0x080012b3 0x1 00
|
||||
.rodata.str1.4
|
||||
0x080012b4 0x92 THUMB Debug/../../obj/vectors.o
|
||||
0x94 (size before relaxing)
|
||||
*fill* 0x08001346 0x2 00
|
||||
.rodata.str1.4
|
||||
0x08001348 0x84 THUMB Debug/../../obj/uart.o
|
||||
.rodata.flashLayout
|
||||
0x08000f10 0xb4 THUMB Debug/../../obj/flash.o
|
||||
0x080013cc 0xb4 THUMB Debug/../../obj/flash.o
|
||||
.rodata.xcpStationId
|
||||
0x08000fc4 0x8 THUMB Debug/../../obj/xcp.o
|
||||
0x08000fcc __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
|
||||
0x08000fcc __rodata_load_end__ = __rodata_end__
|
||||
0x08001480 0x8 THUMB Debug/../../obj/xcp.o
|
||||
0x08001488 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
|
||||
0x08001488 __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)
|
||||
0x08000fcc __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
|
||||
0x08001488 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
|
||||
|
||||
.ARM.exidx 0x08000fcc 0x0
|
||||
0x08000fcc __ARM.exidx_start__ = .
|
||||
0x08000fcc __exidx_start = __ARM.exidx_start__
|
||||
.ARM.exidx 0x08001488 0x0
|
||||
0x08001488 __ARM.exidx_start__ = .
|
||||
0x08001488 __exidx_start = __ARM.exidx_start__
|
||||
*(.ARM.exidx .ARM.exidx.*)
|
||||
0x08000fcc __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
|
||||
0x08000fcc __exidx_end = __ARM.exidx_end__
|
||||
0x08000fcc __ARM.exidx_load_end__ = __ARM.exidx_end__
|
||||
0x08001488 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
|
||||
0x08001488 __exidx_end = __ARM.exidx_end__
|
||||
0x08001488 __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)
|
||||
0x08000fcc __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
|
||||
0x08001488 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
|
||||
|
||||
.fast 0x20000000 0x0 load address 0x08000fcc
|
||||
.fast 0x20000000 0x0 load address 0x08001488
|
||||
0x20000000 __fast_start__ = .
|
||||
*(.fast .fast.*)
|
||||
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
|
||||
0x08000fcc __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
|
||||
0x08001488 __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
|
||||
|
@ -424,13 +438,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)
|
||||
0x08000fcc __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
|
||||
0x08001488 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
|
||||
|
||||
.data 0x20000000 0x0 load address 0x08000fcc
|
||||
.data 0x20000000 0x0 load address 0x08001488
|
||||
0x20000000 __data_start__ = .
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
0x20000000 __data_end__ = (__data_start__ + SIZEOF (.data))
|
||||
0x08000fcc __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
|
||||
0x08001488 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
|
||||
0x00000001 . = ASSERT ((((__data_load_start__ + SIZEOF (.data)) >= __FLASH_segment_start__) && ((__data_load_start__ + SIZEOF (.data)) <= (__FLASH_segment_start__ + 0x20000))), error: .data is too large to fit in FLASH memory segment)
|
||||
|
||||
.data_run 0x20000000 0x0
|
||||
|
@ -441,99 +455,100 @@ Linker script and memory map
|
|||
0x00000001 . = ASSERT (((__data_run_end__ >= __RAM_segment_start__) && (__data_run_end__ <= (__RAM_segment_start__ + 0x5000))), error: .data_run is too large to fit in RAM memory segment)
|
||||
0x20000000 __bss_load_start__ = ALIGN (__data_run_end__, 0x4)
|
||||
|
||||
.bss 0x20000000 0x4e8
|
||||
.bss 0x20000000 0x4ec
|
||||
0x20000000 __bss_start__ = .
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
.bss.millisecond_counter
|
||||
0x20000000 0x2 THUMB Debug/../../obj/timer.o
|
||||
*fill* 0x20000002 0x2 00
|
||||
.bss.xcpCtoReqPacket.876
|
||||
0x20000002 0x41 THUMB Debug/../../obj/uart.o
|
||||
0x20000004 0x44 THUMB Debug/../../obj/uart.o
|
||||
.bss.xcpCtoRxInProgress.878
|
||||
0x20000043 0x1 THUMB Debug/../../obj/uart.o
|
||||
0x20000048 0x1 THUMB Debug/../../obj/uart.o
|
||||
.bss.xcpCtoRxLength.877
|
||||
0x20000044 0x1 THUMB Debug/../../obj/uart.o
|
||||
*fill* 0x20000045 0x3 00
|
||||
0x20000049 0x1 THUMB Debug/../../obj/uart.o
|
||||
*fill* 0x2000004a 0x2 00
|
||||
.bss.bootBlockInfo
|
||||
0x20000048 0x204 THUMB Debug/../../obj/flash.o
|
||||
0x2000004c 0x204 THUMB Debug/../../obj/flash.o
|
||||
.bss.blockInfo
|
||||
0x2000024c 0x204 THUMB Debug/../../obj/flash.o
|
||||
0x20000250 0x204 THUMB Debug/../../obj/flash.o
|
||||
.bss.assert_failure_file
|
||||
0x20000450 0x4 THUMB Debug/../../obj/assert.o
|
||||
.bss.assert_failure_line
|
||||
0x20000454 0x4 THUMB Debug/../../obj/assert.o
|
||||
.bss.assert_failure_line
|
||||
0x20000458 0x4 THUMB Debug/../../obj/assert.o
|
||||
.bss.backdoorOpen
|
||||
0x20000458 0x1 THUMB Debug/../../obj/backdoor.o
|
||||
0x2000045c 0x1 THUMB Debug/../../obj/backdoor.o
|
||||
.bss.comEntryStateConnect
|
||||
0x20000459 0x1 THUMB Debug/../../obj/com.o
|
||||
0x2000045d 0x1 THUMB Debug/../../obj/com.o
|
||||
*fill* 0x2000045e 0x2 00
|
||||
.bss.xcpCtoReqPacket.855
|
||||
0x2000045a 0x40 THUMB Debug/../../obj/com.o
|
||||
*fill* 0x2000049a 0x2 00
|
||||
.bss.xcpInfo 0x2000049c 0x4c THUMB Debug/../../obj/xcp.o
|
||||
0x20000460 0x40 THUMB Debug/../../obj/com.o
|
||||
.bss.xcpInfo 0x200004a0 0x4c THUMB Debug/../../obj/xcp.o
|
||||
*(COMMON)
|
||||
0x200004e8 __bss_end__ = (__bss_start__ + SIZEOF (.bss))
|
||||
0x200004e8 __bss_load_end__ = __bss_end__
|
||||
0x200004ec __bss_end__ = (__bss_start__ + SIZEOF (.bss))
|
||||
0x200004ec __bss_load_end__ = __bss_end__
|
||||
0x00000001 . = ASSERT (((__bss_end__ >= __RAM_segment_start__) && (__bss_end__ <= (__RAM_segment_start__ + 0x5000))), error: .bss is too large to fit in RAM memory segment)
|
||||
0x200004e8 __non_init_load_start__ = ALIGN (__bss_end__, 0x4)
|
||||
0x200004ec __non_init_load_start__ = ALIGN (__bss_end__, 0x4)
|
||||
|
||||
.non_init 0x200004e8 0x0
|
||||
0x200004e8 __non_init_start__ = .
|
||||
.non_init 0x200004ec 0x0
|
||||
0x200004ec __non_init_start__ = .
|
||||
*(.non_init .non_init.*)
|
||||
0x200004e8 __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init))
|
||||
0x200004e8 __non_init_load_end__ = __non_init_end__
|
||||
0x200004ec __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init))
|
||||
0x200004ec __non_init_load_end__ = __non_init_end__
|
||||
0x00000001 . = ASSERT (((__non_init_end__ >= __RAM_segment_start__) && (__non_init_end__ <= (__RAM_segment_start__ + 0x5000))), error: .non_init is too large to fit in RAM memory segment)
|
||||
0x200004e8 __heap_load_start__ = ALIGN (__non_init_end__, 0x4)
|
||||
0x200004ec __heap_load_start__ = ALIGN (__non_init_end__, 0x4)
|
||||
|
||||
.heap 0x200004e8 0x80
|
||||
0x200004e8 __heap_start__ = .
|
||||
.heap 0x200004ec 0x80
|
||||
0x200004ec __heap_start__ = .
|
||||
*(.heap .heap.*)
|
||||
0x20000568 . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4)
|
||||
*fill* 0x200004e8 0x80 00
|
||||
0x20000568 __heap_end__ = (__heap_start__ + SIZEOF (.heap))
|
||||
0x20000568 __heap_load_end__ = __heap_end__
|
||||
0x2000056c . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4)
|
||||
*fill* 0x200004ec 0x80 00
|
||||
0x2000056c __heap_end__ = (__heap_start__ + SIZEOF (.heap))
|
||||
0x2000056c __heap_load_end__ = __heap_end__
|
||||
0x00000001 . = ASSERT (((__heap_end__ >= __RAM_segment_start__) && (__heap_end__ <= (__RAM_segment_start__ + 0x5000))), error: .heap is too large to fit in RAM memory segment)
|
||||
0x20000568 __stack_load_start__ = ALIGN (__heap_end__, 0x4)
|
||||
0x2000056c __stack_load_start__ = ALIGN (__heap_end__, 0x4)
|
||||
|
||||
.stack 0x20000568 0x100
|
||||
0x20000568 __stack_start__ = .
|
||||
.stack 0x2000056c 0x100
|
||||
0x2000056c __stack_start__ = .
|
||||
*(.stack .stack.*)
|
||||
0x20000668 . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
|
||||
*fill* 0x20000568 0x100 00
|
||||
0x20000668 __stack_end__ = (__stack_start__ + SIZEOF (.stack))
|
||||
0x20000668 __stack_load_end__ = __stack_end__
|
||||
0x2000066c . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
|
||||
*fill* 0x2000056c 0x100 00
|
||||
0x2000066c __stack_end__ = (__stack_start__ + SIZEOF (.stack))
|
||||
0x2000066c __stack_load_end__ = __stack_end__
|
||||
0x00000001 . = ASSERT (((__stack_end__ >= __RAM_segment_start__) && (__stack_end__ <= (__RAM_segment_start__ + 0x5000))), error: .stack is too large to fit in RAM memory segment)
|
||||
0x20000668 __stack_process_load_start__ = ALIGN (__stack_end__, 0x4)
|
||||
0x2000066c __stack_process_load_start__ = ALIGN (__stack_end__, 0x4)
|
||||
|
||||
.stack_process 0x20000668 0x0
|
||||
0x20000668 __stack_process_start__ = .
|
||||
.stack_process 0x2000066c 0x0
|
||||
0x2000066c __stack_process_start__ = .
|
||||
*(.stack_process .stack_process.*)
|
||||
0x20000668 . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4)
|
||||
0x20000668 __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process))
|
||||
0x20000668 __stack_process_load_end__ = __stack_process_end__
|
||||
0x2000066c . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4)
|
||||
0x2000066c __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process))
|
||||
0x2000066c __stack_process_load_end__ = __stack_process_end__
|
||||
0x00000001 . = ASSERT (((__stack_process_end__ >= __RAM_segment_start__) && (__stack_process_end__ <= (__RAM_segment_start__ + 0x5000))), error: .stack_process is too large to fit in RAM memory segment)
|
||||
0x20000668 __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4)
|
||||
0x2000066c __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4)
|
||||
|
||||
.tbss 0x20000668 0x0
|
||||
0x20000668 __tbss_start__ = .
|
||||
.tbss 0x2000066c 0x0
|
||||
0x2000066c __tbss_start__ = .
|
||||
*(.tbss .tbss.*)
|
||||
0x20000668 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
|
||||
0x20000668 __tbss_load_end__ = __tbss_end__
|
||||
0x2000066c __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
|
||||
0x2000066c __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)
|
||||
0x08000fcc __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
|
||||
0x08001488 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
|
||||
|
||||
.tdata 0x20000668 0x0 load address 0x08000fcc
|
||||
0x20000668 __tdata_start__ = .
|
||||
.tdata 0x2000066c 0x0 load address 0x08001488
|
||||
0x2000066c __tdata_start__ = .
|
||||
*(.tdata .tdata.*)
|
||||
0x20000668 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
|
||||
0x08000fcc __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
|
||||
0x08000fcc __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
|
||||
0x2000066c __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
|
||||
0x08001488 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
|
||||
0x08001488 __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 0x20000668 0x0
|
||||
0x20000668 __tdata_run_start__ = .
|
||||
0x20000668 . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .)
|
||||
0x20000668 __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run))
|
||||
0x20000668 __tdata_run_load_end__ = __tdata_run_end__
|
||||
0x20000668 __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run))
|
||||
.tdata_run 0x2000066c 0x0
|
||||
0x2000066c __tdata_run_start__ = .
|
||||
0x2000066c . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .)
|
||||
0x2000066c __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run))
|
||||
0x2000066c __tdata_run_load_end__ = __tdata_run_end__
|
||||
0x2000066c __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run))
|
||||
0x00000001 . = ASSERT (((__tdata_run_end__ >= __RAM_segment_start__) && (__tdata_run_end__ <= (__RAM_segment_start__ + 0x5000))), error: .tdata_run is too large to fit in RAM memory segment)
|
||||
START GROUP
|
||||
LOAD THUMB Debug/../../obj/hooks.o
|
||||
|
@ -563,28 +578,28 @@ LOAD C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib
|
|||
END GROUP
|
||||
OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/../bin/openbtl_olimex_stm32p103.elf elf32-littlearm)
|
||||
|
||||
.debug_info 0x00000000 0x29b6
|
||||
.debug_info 0x00000000 0x27fc
|
||||
.debug_info 0x00000000 0x5e THUMB Debug/../../obj/hooks.o
|
||||
.debug_info 0x0000005e 0x32a THUMB Debug/../../obj/main.o
|
||||
.debug_info 0x00000388 0x53d THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_info 0x000008c5 0x4d9 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_info 0x00000d9e 0x114 THUMB Debug/../../obj/cstart.o
|
||||
.debug_info 0x00000eb2 0xf4 THUMB Debug/../../obj/vectors.o
|
||||
.debug_info 0x00000fa6 0x5e THUMB Debug/../../obj/can.o
|
||||
.debug_info 0x00001004 0x13d THUMB Debug/../../obj/cpu.o
|
||||
.debug_info 0x00001141 0x15e THUMB Debug/../../obj/nvm.o
|
||||
.debug_info 0x0000129f 0x187 THUMB Debug/../../obj/timer.o
|
||||
.debug_info 0x00001426 0x300 THUMB Debug/../../obj/uart.o
|
||||
.debug_info 0x00001726 0x7b4 THUMB Debug/../../obj/flash.o
|
||||
.debug_info 0x00001eda 0xe8 THUMB Debug/../../obj/assert.o
|
||||
.debug_info 0x00001fc2 0xa8 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_info 0x0000206a 0x8c THUMB Debug/../../obj/boot.o
|
||||
.debug_info 0x000020f6 0x18e THUMB Debug/../../obj/com.o
|
||||
.debug_info 0x00002284 0x8a THUMB Debug/../../obj/cop.o
|
||||
.debug_info 0x0000230e 0x5db THUMB Debug/../../obj/xcp.o
|
||||
.debug_info 0x000028e9 0xcd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
.debug_info 0x00000eb2 0xf5 THUMB Debug/../../obj/vectors.o
|
||||
.debug_info 0x00000fa7 0x5e THUMB Debug/../../obj/can.o
|
||||
.debug_info 0x00001005 0x13e THUMB Debug/../../obj/cpu.o
|
||||
.debug_info 0x00001143 0x162 THUMB Debug/../../obj/nvm.o
|
||||
.debug_info 0x000012a5 0x148 THUMB Debug/../../obj/timer.o
|
||||
.debug_info 0x000013ed 0x28d THUMB Debug/../../obj/uart.o
|
||||
.debug_info 0x0000167a 0x671 THUMB Debug/../../obj/flash.o
|
||||
.debug_info 0x00001ceb 0xe8 THUMB Debug/../../obj/assert.o
|
||||
.debug_info 0x00001dd3 0xa8 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_info 0x00001e7b 0x8c THUMB Debug/../../obj/boot.o
|
||||
.debug_info 0x00001f07 0x18f THUMB Debug/../../obj/com.o
|
||||
.debug_info 0x00002096 0x8a THUMB Debug/../../obj/cop.o
|
||||
.debug_info 0x00002120 0x60f THUMB Debug/../../obj/xcp.o
|
||||
.debug_info 0x0000272f 0xcd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_abbrev 0x00000000 0xf0d
|
||||
.debug_abbrev 0x00000000 0xe19
|
||||
.debug_abbrev 0x00000000 0x2a THUMB Debug/../../obj/hooks.o
|
||||
.debug_abbrev 0x0000002a 0x109 THUMB Debug/../../obj/main.o
|
||||
.debug_abbrev 0x00000133 0xa9 THUMB Debug/../../obj/core_cm3.o
|
||||
|
@ -593,38 +608,38 @@ OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_
|
|||
.debug_abbrev 0x0000037c 0xc0 THUMB Debug/../../obj/vectors.o
|
||||
.debug_abbrev 0x0000043c 0x2a THUMB Debug/../../obj/can.o
|
||||
.debug_abbrev 0x00000466 0xb1 THUMB Debug/../../obj/cpu.o
|
||||
.debug_abbrev 0x00000517 0xbc THUMB Debug/../../obj/nvm.o
|
||||
.debug_abbrev 0x000005d3 0x13a THUMB Debug/../../obj/timer.o
|
||||
.debug_abbrev 0x0000070d 0x16d THUMB Debug/../../obj/uart.o
|
||||
.debug_abbrev 0x0000087a 0x279 THUMB Debug/../../obj/flash.o
|
||||
.debug_abbrev 0x00000af3 0x7e THUMB Debug/../../obj/assert.o
|
||||
.debug_abbrev 0x00000b71 0x5d THUMB Debug/../../obj/backdoor.o
|
||||
.debug_abbrev 0x00000bce 0x41 THUMB Debug/../../obj/boot.o
|
||||
.debug_abbrev 0x00000c0f 0xcb THUMB Debug/../../obj/com.o
|
||||
.debug_abbrev 0x00000cda 0x41 THUMB Debug/../../obj/cop.o
|
||||
.debug_abbrev 0x00000d1b 0x1cd THUMB Debug/../../obj/xcp.o
|
||||
.debug_abbrev 0x00000ee8 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
.debug_abbrev 0x00000517 0xa5 THUMB Debug/../../obj/nvm.o
|
||||
.debug_abbrev 0x000005bc 0xe1 THUMB Debug/../../obj/timer.o
|
||||
.debug_abbrev 0x0000069d 0x133 THUMB Debug/../../obj/uart.o
|
||||
.debug_abbrev 0x000007d0 0x229 THUMB Debug/../../obj/flash.o
|
||||
.debug_abbrev 0x000009f9 0x7e THUMB Debug/../../obj/assert.o
|
||||
.debug_abbrev 0x00000a77 0x5d THUMB Debug/../../obj/backdoor.o
|
||||
.debug_abbrev 0x00000ad4 0x41 THUMB Debug/../../obj/boot.o
|
||||
.debug_abbrev 0x00000b15 0xe2 THUMB Debug/../../obj/com.o
|
||||
.debug_abbrev 0x00000bf7 0x41 THUMB Debug/../../obj/cop.o
|
||||
.debug_abbrev 0x00000c38 0x1bc THUMB Debug/../../obj/xcp.o
|
||||
.debug_abbrev 0x00000df4 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_line 0x00000000 0x179e
|
||||
.debug_line 0x00000000 0x177d
|
||||
.debug_line 0x00000000 0x1d THUMB Debug/../../obj/hooks.o
|
||||
.debug_line 0x0000001d 0x1d6 THUMB Debug/../../obj/main.o
|
||||
.debug_line 0x000001f3 0x295 THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_line 0x00000488 0x219 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_line 0x000006a1 0x15c THUMB Debug/../../obj/cstart.o
|
||||
.debug_line 0x000007fd 0xf1 THUMB Debug/../../obj/vectors.o
|
||||
.debug_line 0x000008ee 0x1d THUMB Debug/../../obj/can.o
|
||||
.debug_line 0x0000090b 0x113 THUMB Debug/../../obj/cpu.o
|
||||
.debug_line 0x00000a1e 0x133 THUMB Debug/../../obj/nvm.o
|
||||
.debug_line 0x00000b51 0x140 THUMB Debug/../../obj/timer.o
|
||||
.debug_line 0x00000c91 0x17d THUMB Debug/../../obj/uart.o
|
||||
.debug_line 0x00000e0e 0x2aa THUMB Debug/../../obj/flash.o
|
||||
.debug_line 0x000010b8 0xde THUMB Debug/../../obj/assert.o
|
||||
.debug_line 0x00001196 0xfb THUMB Debug/../../obj/backdoor.o
|
||||
.debug_line 0x00001291 0xbf THUMB Debug/../../obj/boot.o
|
||||
.debug_line 0x00001350 0x138 THUMB Debug/../../obj/com.o
|
||||
.debug_line 0x00001488 0xb7 THUMB Debug/../../obj/cop.o
|
||||
.debug_line 0x0000153f 0x1eb THUMB Debug/../../obj/xcp.o
|
||||
.debug_line 0x0000172a 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
.debug_line 0x0000001d 0x1d7 THUMB Debug/../../obj/main.o
|
||||
.debug_line 0x000001f4 0x295 THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_line 0x00000489 0x217 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_line 0x000006a0 0x15c THUMB Debug/../../obj/cstart.o
|
||||
.debug_line 0x000007fc 0xf0 THUMB Debug/../../obj/vectors.o
|
||||
.debug_line 0x000008ec 0x1d THUMB Debug/../../obj/can.o
|
||||
.debug_line 0x00000909 0x116 THUMB Debug/../../obj/cpu.o
|
||||
.debug_line 0x00000a1f 0x133 THUMB Debug/../../obj/nvm.o
|
||||
.debug_line 0x00000b52 0x131 THUMB Debug/../../obj/timer.o
|
||||
.debug_line 0x00000c83 0x16b THUMB Debug/../../obj/uart.o
|
||||
.debug_line 0x00000dee 0x2c8 THUMB Debug/../../obj/flash.o
|
||||
.debug_line 0x000010b6 0xdc THUMB Debug/../../obj/assert.o
|
||||
.debug_line 0x00001192 0xf4 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_line 0x00001286 0xbf THUMB Debug/../../obj/boot.o
|
||||
.debug_line 0x00001345 0x136 THUMB Debug/../../obj/com.o
|
||||
.debug_line 0x0000147b 0xb7 THUMB Debug/../../obj/cop.o
|
||||
.debug_line 0x00001532 0x1d7 THUMB Debug/../../obj/xcp.o
|
||||
.debug_line 0x00001709 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_str 0x00000000 0x13e2
|
||||
.debug_str 0x00000000 0xfc THUMB Debug/../../obj/hooks.o
|
||||
|
@ -728,41 +743,42 @@ OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_
|
|||
.ARM.attributes
|
||||
0x00000130 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_frame 0x00000000 0x810
|
||||
.debug_frame 0x00000000 0x8fc
|
||||
.debug_frame 0x00000000 0x30 THUMB Debug/../../obj/main.o
|
||||
.debug_frame 0x00000030 0x170 THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_frame 0x000001a0 0x38 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_frame 0x000001d8 0x20 THUMB Debug/../../obj/vectors.o
|
||||
.debug_frame 0x000001f8 0x5c THUMB Debug/../../obj/cpu.o
|
||||
.debug_frame 0x00000254 0x6c THUMB Debug/../../obj/nvm.o
|
||||
.debug_frame 0x000002c0 0x6c THUMB Debug/../../obj/timer.o
|
||||
.debug_frame 0x0000032c 0x64 THUMB Debug/../../obj/uart.o
|
||||
.debug_frame 0x00000390 0x150 THUMB Debug/../../obj/flash.o
|
||||
.debug_frame 0x000004e0 0x2c THUMB Debug/../../obj/assert.o
|
||||
.debug_frame 0x0000050c 0x48 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_frame 0x00000554 0x48 THUMB Debug/../../obj/boot.o
|
||||
.debug_frame 0x0000059c 0x94 THUMB Debug/../../obj/com.o
|
||||
.debug_frame 0x00000630 0x30 THUMB Debug/../../obj/cop.o
|
||||
.debug_frame 0x00000660 0x70 THUMB Debug/../../obj/xcp.o
|
||||
.debug_frame 0x000006d0 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v7m_t_le.a(libdebugio_asm.o)
|
||||
.debug_frame 0x00000770 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
.debug_frame 0x000001d8 0x2c THUMB Debug/../../obj/vectors.o
|
||||
.debug_frame 0x00000204 0x68 THUMB Debug/../../obj/cpu.o
|
||||
.debug_frame 0x0000026c 0x9c THUMB Debug/../../obj/nvm.o
|
||||
.debug_frame 0x00000308 0x78 THUMB Debug/../../obj/timer.o
|
||||
.debug_frame 0x00000380 0x90 THUMB Debug/../../obj/uart.o
|
||||
.debug_frame 0x00000410 0x19c THUMB Debug/../../obj/flash.o
|
||||
.debug_frame 0x000005ac 0x2c THUMB Debug/../../obj/assert.o
|
||||
.debug_frame 0x000005d8 0x48 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_frame 0x00000620 0x48 THUMB Debug/../../obj/boot.o
|
||||
.debug_frame 0x00000668 0xa4 THUMB Debug/../../obj/com.o
|
||||
.debug_frame 0x0000070c 0x30 THUMB Debug/../../obj/cop.o
|
||||
.debug_frame 0x0000073c 0x80 THUMB Debug/../../obj/xcp.o
|
||||
.debug_frame 0x000007bc 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libdebugio_v7m_t_le.a(libdebugio_asm.o)
|
||||
.debug_frame 0x0000085c 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_loc 0x00000000 0x100c
|
||||
.debug_loc 0x00000000 0x76 THUMB Debug/../../obj/main.o
|
||||
.debug_loc 0x00000076 0x2ae THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_loc 0x00000324 0x10e THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_loc 0x00000432 0xc1 THUMB Debug/../../obj/cpu.o
|
||||
.debug_loc 0x000004f3 0x7f THUMB Debug/../../obj/nvm.o
|
||||
.debug_loc 0x00000572 0x20 THUMB Debug/../../obj/timer.o
|
||||
.debug_loc 0x00000592 0x105 THUMB Debug/../../obj/uart.o
|
||||
.debug_loc 0x00000697 0x6b4 THUMB Debug/../../obj/flash.o
|
||||
.debug_loc 0x00000d4b 0x46 THUMB Debug/../../obj/assert.o
|
||||
.debug_loc 0x00000d91 0x40 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_loc 0x00000dd1 0x40 THUMB Debug/../../obj/boot.o
|
||||
.debug_loc 0x00000e11 0x86 THUMB Debug/../../obj/com.o
|
||||
.debug_loc 0x00000e97 0x175 THUMB Debug/../../obj/xcp.o
|
||||
.debug_loc 0x00000000 0x11fe
|
||||
.debug_loc 0x00000000 0x82 THUMB Debug/../../obj/main.o
|
||||
.debug_loc 0x00000082 0x2ae THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_loc 0x00000330 0x165 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_loc 0x00000495 0x20 THUMB Debug/../../obj/vectors.o
|
||||
.debug_loc 0x000004b5 0x111 THUMB Debug/../../obj/cpu.o
|
||||
.debug_loc 0x000005c6 0xff THUMB Debug/../../obj/nvm.o
|
||||
.debug_loc 0x000006c5 0x40 THUMB Debug/../../obj/timer.o
|
||||
.debug_loc 0x00000705 0x115 THUMB Debug/../../obj/uart.o
|
||||
.debug_loc 0x0000081a 0x6c5 THUMB Debug/../../obj/flash.o
|
||||
.debug_loc 0x00000edf 0x46 THUMB Debug/../../obj/assert.o
|
||||
.debug_loc 0x00000f25 0x40 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_loc 0x00000f65 0x40 THUMB Debug/../../obj/boot.o
|
||||
.debug_loc 0x00000fa5 0xb2 THUMB Debug/../../obj/com.o
|
||||
.debug_loc 0x00001057 0x1a7 THUMB Debug/../../obj/xcp.o
|
||||
|
||||
.debug_aranges 0x00000000 0x420
|
||||
.debug_aranges 0x00000000 0x450
|
||||
.debug_aranges
|
||||
0x00000000 0x20 THUMB Debug/../../obj/main.o
|
||||
.debug_aranges
|
||||
|
@ -780,38 +796,38 @@ OUTPUT(D:/usr/feaser/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_
|
|||
.debug_aranges
|
||||
0x000001c0 0x40 THUMB Debug/../../obj/timer.o
|
||||
.debug_aranges
|
||||
0x00000200 0x30 THUMB Debug/../../obj/uart.o
|
||||
0x00000200 0x40 THUMB Debug/../../obj/uart.o
|
||||
.debug_aranges
|
||||
0x00000230 0x70 THUMB Debug/../../obj/flash.o
|
||||
0x00000240 0x88 THUMB Debug/../../obj/flash.o
|
||||
.debug_aranges
|
||||
0x000002a0 0x20 THUMB Debug/../../obj/assert.o
|
||||
0x000002c8 0x20 THUMB Debug/../../obj/assert.o
|
||||
.debug_aranges
|
||||
0x000002c0 0x28 THUMB Debug/../../obj/backdoor.o
|
||||
0x000002e8 0x28 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_aranges
|
||||
0x000002e8 0x28 THUMB Debug/../../obj/boot.o
|
||||
0x00000310 0x28 THUMB Debug/../../obj/boot.o
|
||||
.debug_aranges
|
||||
0x00000310 0x48 THUMB Debug/../../obj/com.o
|
||||
0x00000338 0x48 THUMB Debug/../../obj/com.o
|
||||
.debug_aranges
|
||||
0x00000358 0x28 THUMB Debug/../../obj/cop.o
|
||||
0x00000380 0x28 THUMB Debug/../../obj/cop.o
|
||||
.debug_aranges
|
||||
0x00000380 0x40 THUMB Debug/../../obj/xcp.o
|
||||
0x000003a8 0x48 THUMB Debug/../../obj/xcp.o
|
||||
.debug_aranges
|
||||
0x000003c0 0x60 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
0x000003f0 0x60 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
||||
.debug_ranges 0x00000000 0x420
|
||||
.debug_ranges 0x00000000 0x360
|
||||
.debug_ranges 0x00000000 0x10 THUMB Debug/../../obj/main.o
|
||||
.debug_ranges 0x00000010 0xb8 THUMB Debug/../../obj/core_cm3.o
|
||||
.debug_ranges 0x000000c8 0x18 THUMB Debug/../../obj/system_stm32f10x.o
|
||||
.debug_ranges 0x000000e0 0x10 THUMB Debug/../../obj/vectors.o
|
||||
.debug_ranges 0x000000f0 0x20 THUMB Debug/../../obj/cpu.o
|
||||
.debug_ranges 0x00000110 0x30 THUMB Debug/../../obj/nvm.o
|
||||
.debug_ranges 0x00000140 0x48 THUMB Debug/../../obj/timer.o
|
||||
.debug_ranges 0x00000188 0xb0 THUMB Debug/../../obj/uart.o
|
||||
.debug_ranges 0x00000238 0x78 THUMB Debug/../../obj/flash.o
|
||||
.debug_ranges 0x000002b0 0x10 THUMB Debug/../../obj/assert.o
|
||||
.debug_ranges 0x000002c0 0x18 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_ranges 0x000002d8 0x18 THUMB Debug/../../obj/boot.o
|
||||
.debug_ranges 0x000002f0 0x38 THUMB Debug/../../obj/com.o
|
||||
.debug_ranges 0x00000328 0x18 THUMB Debug/../../obj/cop.o
|
||||
.debug_ranges 0x00000340 0x90 THUMB Debug/../../obj/xcp.o
|
||||
.debug_ranges 0x000003d0 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
.debug_ranges 0x00000140 0x30 THUMB Debug/../../obj/timer.o
|
||||
.debug_ranges 0x00000170 0x30 THUMB Debug/../../obj/uart.o
|
||||
.debug_ranges 0x000001a0 0xa8 THUMB Debug/../../obj/flash.o
|
||||
.debug_ranges 0x00000248 0x10 THUMB Debug/../../obj/assert.o
|
||||
.debug_ranges 0x00000258 0x18 THUMB Debug/../../obj/backdoor.o
|
||||
.debug_ranges 0x00000270 0x18 THUMB Debug/../../obj/boot.o
|
||||
.debug_ranges 0x00000288 0x38 THUMB Debug/../../obj/com.o
|
||||
.debug_ranges 0x000002c0 0x18 THUMB Debug/../../obj/cop.o
|
||||
.debug_ranges 0x000002d8 0x38 THUMB Debug/../../obj/xcp.o
|
||||
.debug_ranges 0x00000310 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.1/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
|
||||
|
|
|
@ -1,25 +1,25 @@
|
|||
S02B0000443A2F7573722F6665617365722F736F6674776172652F4F70656E424C542F5461726765742F44657D
|
||||
S3150800000068060020DB01000815040008150400082E
|
||||
S31508000010150400081504000815040008150400084E
|
||||
S31508000020150400081504000815040008150400083E
|
||||
S31508000030150400081504000815040008150400082E
|
||||
S31508000040150400081504000815040008150400081E
|
||||
S31508000050150400081504000815040008150400080E
|
||||
S3150800006015040008150400081504000815040008FE
|
||||
S3150800007015040008150400081504000815040008EE
|
||||
S3150800008015040008150400081504000815040008DE
|
||||
S3150800009015040008150400081504000815040008CE
|
||||
S315080000A015040008150400081504000815040008BE
|
||||
S315080000B015040008150400081504000815040008AE
|
||||
S315080000C0150400081504000815040008150400089E
|
||||
S315080000D0150400081504000815040008150400088E
|
||||
S315080000E0150400081504000815040008150400087E
|
||||
S315080000F0150400081504000815040008150400086E
|
||||
S31508000100150400081504000815040008150400085D
|
||||
S31508000110150400081504000815040008150400084D
|
||||
S31508000120150400081504000815040008150400083D
|
||||
S31508000130150400081504000815040008150400082D
|
||||
S31508000140150400081504000815040008150400081D
|
||||
S315080000006C060020DB0100085904000859040008A2
|
||||
S31508000010590400085904000859040008590400083E
|
||||
S31508000020590400085904000859040008590400082E
|
||||
S31508000030590400085904000859040008590400081E
|
||||
S31508000040590400085904000859040008590400080E
|
||||
S3150800005059040008590400085904000859040008FE
|
||||
S3150800006059040008590400085904000859040008EE
|
||||
S3150800007059040008590400085904000859040008DE
|
||||
S3150800008059040008590400085904000859040008CE
|
||||
S3150800009059040008590400085904000859040008BE
|
||||
S315080000A059040008590400085904000859040008AE
|
||||
S315080000B0590400085904000859040008590400089E
|
||||
S315080000C0590400085904000859040008590400088E
|
||||
S315080000D0590400085904000859040008590400087E
|
||||
S315080000E0590400085904000859040008590400086E
|
||||
S315080000F0590400085904000859040008590400085E
|
||||
S31508000100590400085904000859040008590400084D
|
||||
S31508000110590400085904000859040008590400083D
|
||||
S31508000120590400085904000859040008590400082D
|
||||
S31508000130590400085904000859040008590400081D
|
||||
S31508000140590400085904000859040008590400080D
|
||||
S3150800015072B64B484B4901604B498D464B484C4952
|
||||
S315080001604C4A00F07BF84C484C494D4A00F076F86A
|
||||
S315080001704C484D494D4A00F071F84D484D494E4A94
|
||||
|
@ -28,7 +28,7 @@ S315080001904E494F4A00F062F84E484F49002200F097
|
|||
S315080001A068F84E484E49091A082903DB00220260FE
|
||||
S315080001B0043001603F484049884205D0026804304F
|
||||
S315080001C003B4904703BCF7E700208646EC4600F0E8
|
||||
S315080001D0A1FC00200021434A904772B62A498D4661
|
||||
S315080001D0FDFD00200021434A904772B62A498D4604
|
||||
S315080001E02A482B492B4A00F039F82B482B492C4A28
|
||||
S315080001F000F034F82B482C492C4A00F02FF82C48EC
|
||||
S315080002002C492D4A00F02AF82C482D492D4A00F091
|
||||
|
@ -39,218 +39,294 @@ S315080002400268043003B4904703BCF7E700208646EB
|
|||
S31508000250EC4600200021234A9047FEE7884207D053
|
||||
S31508000260521A05D0037801300B700131013AF9D1E1
|
||||
S315080002707047884202D002700130FAE770470000E2
|
||||
S3150800028008ED00E00000000868060020CC0F000812
|
||||
S3150800028008ED00E0000000086C060020881400084D
|
||||
S315080002900000002000000020E8020008E80200082C
|
||||
S315080002A0900D0008CC0F0008000000200000002078
|
||||
S315080002B0900D0008900D0008900D0008900D00089C
|
||||
S315080002C0900D0008900D0008900D0008900D00088C
|
||||
S315080002D0CC0F000800000020E8040020E8040020F5
|
||||
S30D080002E068050020E902000888
|
||||
S315080002E803B5002300930193444B1A6842F00102B0
|
||||
S315080002F81A605968424A0A405A601A6822F0847293
|
||||
S3150800030822F480321A601A6822F480221A605A681F
|
||||
S3150800031822F4FE025A604FF41F029A601A6842F4E1
|
||||
S3150800032880321A6040F2DC52196801F400310191F2
|
||||
S31508000338009901310091019911B900999142F3D1B7
|
||||
S315080003482E4B1B68980303D42E486F2100F06CFBCC
|
||||
S315080003582D4B1A6842F010021A601A6822F0030236
|
||||
S315080003681A601A6842F002021A60A3F580535A689E
|
||||
S315080003785A605A6842F400525A605A6842F48062CF
|
||||
S315080003885A605A6822F47C125A605A6842F4E8128B
|
||||
S315080003985A601A6842F080721A601968174A890101
|
||||
S315080003A8FBD5536823F003035360536843F00203ED
|
||||
S315080003B853605168114B01F00C010829F9D1DA6923
|
||||
S315080003C842F40032DA619A6942F005029A61A3F5A5
|
||||
S315080003D884331A6822F470621A601A6842F4306222
|
||||
S315080003E81A601A6822F470421A601A6842F480423F
|
||||
S315080003F81A6000F049FB00F052FBFCE700100240C7
|
||||
S315080004080000FFF8900D00080020024001483C2132
|
||||
S3150800041800F00ABBF70D000800B500F027F830B160
|
||||
S31508000428044B4FF400521A60034B1B6898475DF853
|
||||
S3150800043804FB00BF08ED00E00420000870B50C4670
|
||||
S3150800044895B2064607E014F8013B013D06F8013B5C
|
||||
S3150800045800F065FBADB2002DF5D170BDFFF7B9BE4A
|
||||
S3150800046800F0ACB900F0B6B900F0DAB900F076BA1F
|
||||
S3150800047800B500F09DFA18B15DF804EB00F0BABAB9
|
||||
S315080004885DF804FB054B064900221A6059600521E8
|
||||
S315080004989A601960034B1A80704700BF10E000E0A5
|
||||
S315080004A83F19010000000020014B00221A6070471E
|
||||
S315080004B810E000E0044B1B68DB0303D5034B1A88DE
|
||||
S315080004C801321A80704700BF10E000E000000020E3
|
||||
S315080004D800B5FFF7EFFF024B18885DF804FB00BF6D
|
||||
S315080004E800000020084B00221A819A811A829A82F3
|
||||
S315080004F81A8340F271221A819A8992B242F40052FA
|
||||
S3150800050842F00C029A817047004400402DE9F041F8
|
||||
S31508000518CEB2402E804603D91948882100F084FABD
|
||||
S31508000528184C2388180648BFA68002D405E000F0B0
|
||||
S31508000538F6FA23881906FAD503E011488B2100F044
|
||||
S3150800054873FA104D00242F4614E000F0E8FA2A88BA
|
||||
S3150800055818F80430120648BFAB8002D405E000F04C
|
||||
S31508000568DEFA3B881B06FAD503E00548932100F016
|
||||
S315080005785BFA0134A3B2B342E7D3BDE8F08100BF02
|
||||
S31508000588890E00080044004070B5164C164B2278B0
|
||||
S3150800059862B9188810F0200022D09988134B1046A3
|
||||
S315080005A8197001232370124B1A7070BD1988104AE6
|
||||
S315080005B811F02001157810D00C499E884B195E70E9
|
||||
S315080005C86B1CDBB213700A789A4208D10131FFF71F
|
||||
S315080005D835FF00232370012070BD084670BD002032
|
||||
S315080005E870BD00BF43000020004400400200002000
|
||||
S315080005F844000020024B1A6942F080021A617047CB
|
||||
S315080006080020024070B50C4D0646002400F087FA13
|
||||
S315080006182B689E4209D36A689B189E4205D2064BE8
|
||||
S315080006280C2202FB0434207A70BD01340C350F2CD9
|
||||
S31508000638ECD1FF2070BD00BF100F00082DE9F0436C
|
||||
S3150800064804460068FFF7DEFFFF283ED0214F224BFD
|
||||
S315080006587B6003F188337B603423FB60FD6815F003
|
||||
S31508000668010502D0FFF7C6FF2FE03B69B94643F0FC
|
||||
S3150800067801033B612A1DA6582368B2B205EB030895
|
||||
S31508000688EA5201E000F04BFAFB68DB07FAD4330CB0
|
||||
S31508000698A8F8023001E000F042FAD9F80C3013F055
|
||||
S315080006A80103F8D1D8F80020B24205D10435B5F5CA
|
||||
S315080006B8007FDFD1012400E01C46064B1A6922F0A8
|
||||
S315080006C801021A61FFF796FF00E000242046BDE8FC
|
||||
S315080006D8F08300BF0020024023016745114B30B55F
|
||||
S315080006E8984204460D4606D00F4A914205D0FFF7B0
|
||||
S315080006F8A5FF18B910E00D4C00E01C46EB050DD116
|
||||
S315080007082368AB420BD0204640F8045B29464FF4D1
|
||||
S315080007180072FFF793FE02E0044600E00024204634
|
||||
S3150800072830BD00BF48000020002000084C02002009
|
||||
S315080007382DE9F0431FFA83F8036821F4FE7701339D
|
||||
S3150800074804460D46164627F0030706D140F8047BEB
|
||||
S3150800075839464FF40072FFF771FE2368BB4205D08D
|
||||
S3150800076820463946FFF7BAFF044610B3236840F215
|
||||
S31508000778FF19ED1A0435651907F5007700F0CFF962
|
||||
S31508000788231DEB1A4B4506D920463946FFF7A6FF1F
|
||||
S31508000798044680B1051D16F8013B08F1FF381FFA13
|
||||
S315080007A888F805F8013BB8F1000FE7D10120BDE844
|
||||
S315080007B8F083BDE8F083BDE8F0830000034A4FF0F4
|
||||
S315080007C8FF331360024A1360704700BF4C020020CB
|
||||
S315080007D84800002070B504460E461546FFF712FF76
|
||||
S315080007E8FF2815D0601E8019FFF70CFFFF280FD0C9
|
||||
S315080007F824F4FE73074A23F0030393420CBF064802
|
||||
S315080008080648B3B221462A46BDE87040FFF790BFAE
|
||||
S31508000818002070BD00200008480000204C02002077
|
||||
S315080008282DE9F0410E460446FFF7ECFE013C054665
|
||||
S31508000838A019FFF7E7FEA5F1FF014C4244EB0104B6
|
||||
S31508000848FF2808BF44F001040646002C7DD18542DE
|
||||
S3150800085878D8002D73D00F2874D83D4B3D4A5A6076
|
||||
S3150800086802F188325A603422DA60DA6812F0010234
|
||||
S3150800087802D0FFF7BFFE65E01969374F41F002015C
|
||||
S315080008881961B846144600F04AF998F80830AB4298
|
||||
S3150800089804D10C235C43304B1C5906E001340F2C59
|
||||
S315080008A808F10C08EFD14FF0FF34DFF8AC800025CB
|
||||
S315080008B800F035F998F80830B34205D10C235D43A2
|
||||
S315080008C8254B53F8058006E001350F2D08F10C086D
|
||||
S315080008D8EED14FF0FF38002500F021F93B7AB342F4
|
||||
S315080008E805D11D4B0C2202FB05356B6804E0013562
|
||||
S315080008F80C370F2DF0D10023C4EB08089844C8F329
|
||||
S315080009088F280026124D0EE06C612B6943F04003D0
|
||||
S315080009182B6101E000F003F9EB68DA07FAD401362F
|
||||
S31508000928B6B204F580644645094BEDD31A6922F038
|
||||
S3150800093802021A61FFF75EFE0120BDE8F08128462B
|
||||
S31508000948BDE8F0812046BDE8F0810020BDE8F081C9
|
||||
S315080009580020024023016745100F00080D4B186850
|
||||
S31508000968043B1B68C0180C4B1B68C0180B4B1B684C
|
||||
S31508000978C0180B4B1B68C0180A4B1B68C0180A4BD3
|
||||
S315080009881B68C018094B1B68C018D0F1010038BF8E
|
||||
S315080009980020704704200008082000080C200008DA
|
||||
S315080009A81020000814200008182000085021000804
|
||||
S315080009B80E4B11B55A689C68A418DA68A4181A69FF
|
||||
S315080009C8A4185A69A4189A69DB69A418E418644231
|
||||
S315080009D80094FFF7C3FF844205D004216A460448F9
|
||||
S315080009E8FFF7F8FE00E0012018BD00BF4800002008
|
||||
S315080009F8502100080A4800B50368013302D0FFF7FA
|
||||
S31508000A081DFE58B107480368013306D0FFF716FEDE
|
||||
S31508000A18003018BF01205DF804FB01205DF804FBCF
|
||||
S31508000A28480000204C020020034B00B51860034B11
|
||||
S31508000A38196000F074F8FCE75004002054040020FC
|
||||
S31508000A4810B500F069F801280FD0084C2378012B57
|
||||
S31508000A580BD1FFF73DFD312807D900232370FFF78F
|
||||
S31508000A6823FDBDE81040FFF7D7BC10BD5804002089
|
||||
S31508000A78044B012200B51A70FFF704FD5DF804EB74
|
||||
S31508000A88FFF7DEBF5804002000B500F047F8FFF767
|
||||
S31508000A98EFFFFFF7E5FC5DF804EB00F009B800B5D1
|
||||
S31508000AA800F03DF800F01AF85DF804EBFFF7C8BF48
|
||||
S31508000AB801B5FF238DF8003000238DF8013000F0CA
|
||||
S31508000AC839F8FFF70FFD044B1B78012B02D168464E
|
||||
S31508000AD800F04EF808BD00BF5904002000B50648C6
|
||||
S31508000AE8FFF752FD012804D103485DF804EB00F02E
|
||||
S31508000AF83FB85DF804FB00BF5A04002000B5C9B228
|
||||
S31508000B08FFF704FD5DF804EB00F02AB8014B012253
|
||||
S31508000B181A7070475904002000F01AB870477047D1
|
||||
S31508000B28034BFE22DA7002221871A3F84420704794
|
||||
S31508000B389C040020054B00221A709A6483F8432007
|
||||
S31508000B48A3F844209A705A70704700BF9C04002086
|
||||
S31508000B58024B1878003018BF012070479C04002003
|
||||
S31508000B68024B002283F84320704700BF9C040020EC
|
||||
S31508000B7870B503780546FF2B784C0FD1E370102320
|
||||
S31508000B88012200212371402322706272A2726170C9
|
||||
S31508000B986171A371E371217208227DE02678012E1E
|
||||
S31508000BA840F0DB80F32B40D011D8CF2B00F0B7806C
|
||||
S31508000BB805D8C92B77D0CC2B40F0BA80B6E0D12B14
|
||||
S31508000BC800F0A7807CD3D22B40F0B28093E0FA2BB2
|
||||
S31508000BD847D006D8F52B0CD011D3F62B40F0A880B1
|
||||
S31508000BE81FE0FD2B4ED0FE2B59D0FC2B40F0A080E1
|
||||
S31508000BF846E042783F2A66D8201DA16C06E043786D
|
||||
S31508000C083F2B60D84168A1644278201DFFF716FC7F
|
||||
S31508000C18FF23E3706A78A36CD318A3646B7801334F
|
||||
S31508000C2874E0FF23E370436848E0FF23E37000237A
|
||||
S31508000C38A06C69681A4603E01C5C01331219D2B223
|
||||
S31508000C488B42F9D1454B0021DA71120E9A720122AC
|
||||
S31508000C581A7108221972597259719971A3F84420A0
|
||||
S31508000C6869E0FF23E3703E4B0722A3640023237140
|
||||
S31508000C786371A37123726372A372E271082345E054
|
||||
S31508000C88002056E0FF236278E3700023627123711F
|
||||
S31508000C98A371E37123720622A4F844204BE00023CB
|
||||
S31508000CA8237063703DE0421C3F21A06CFFF7DAFB16
|
||||
S31508000CB800283BD0FF23E370A36C3F33A36432E0DC
|
||||
S31508000CC843783E2B01D9222033E0FF23E370A4F8AA
|
||||
S31508000CD84460417821B9FFF7CBFB00282BD125E0E2
|
||||
S31508000CE81E4C821CA06CFFF7BDFBF8B16A78A36C92
|
||||
S31508000CF8D318A3641FE0FF23E3704022002323715F
|
||||
S31508000D086371E37123726372A2710723A4F84430EE
|
||||
S31508000D1811E0A06C6968FFF7A7FB10B906E0FFF7B2
|
||||
S31508000D289DFBFF23E370A4F8446004E0312000E04B
|
||||
S31508000D382020FFF7F5FE094C94F84330012B02D121
|
||||
S31508000D481020FFF7EDFEB4F844100648012384F88E
|
||||
S31508000D584330BDE87040FFF7D1BE70BD9C04002043
|
||||
S31508000D68C40F00089F04002000B503B400F008F873
|
||||
S31508000D7803BC02B4694609BE00F004F801BC00BD0C
|
||||
S30D08000D88704700BF704700BF69
|
||||
S31508000D90443A2F7573722F6665617365722F736F88
|
||||
S31508000DA06674776172652F4F70656E424C542F5486
|
||||
S31508000DB061726765742F44656D6F2F41524D434DBF
|
||||
S31508000DC0335F53544D33325F4F6C696D65785F53AB
|
||||
S31508000DD0544D3332503130335F43726F7373776FCC
|
||||
S31508000DE0726B732F426F6F742F6964652F2E2E2FC7
|
||||
S31508000DF06D61696E2E6300443A2F7573722F6665AE
|
||||
S31508000E00617365722F736F6674776172652F4F70A1
|
||||
S31508000E10656E424C542F5461726765742F44656D34
|
||||
S31508000E206F2F41524D434D335F53544D33325F4F0D
|
||||
S31508000E306C696D65785F53544D3332503130335F8A
|
||||
S31508000E4043726F7373776F726B732F426F6F742F62
|
||||
S31508000E506964652F2E2E2F2E2E2F2E2E2F2E2E2FF7
|
||||
S31508000E60536F757263652F41524D434D335F53542B
|
||||
S31508000E704D33322F43726F7373776F726B732F769E
|
||||
S31508000E806563746F72732E6300443A2F7573722FFD
|
||||
S31508000E906665617365722F736F6674776172652F05
|
||||
S31508000EA04F70656E424C542F5461726765742F44B7
|
||||
S31508000EB0656D6F2F41524D434D335F53544D333259
|
||||
S31508000EC05F4F6C696D65785F53544D3332503130DE
|
||||
S31508000ED0335F43726F7373776F726B732F426F6FE3
|
||||
S31508000EE0742F6964652F2E2E2F2E2E2F2E2E2F2E21
|
||||
S31508000EF02E2F536F757263652F41524D434D335FE5
|
||||
S31508000F0053544D33322F756172742E6300000000FE
|
||||
S31508000F100020000800200000010000000040000832
|
||||
S31508000F200020000002000000006000080020000009
|
||||
S31508000F3003000000008000080020000004000000F4
|
||||
S31508000F4000A00008002000000500000000C00008FE
|
||||
S31508000F50002000000600000000E000080020000055
|
||||
S31508000F60070000000000010800200000080000003B
|
||||
S31508000F7000200108002000000900000000400108C8
|
||||
S31508000F80002000000A0000000060010800200000A0
|
||||
S31508000F900B00000000800108002000000C00000083
|
||||
S31508000FA000A00108002000000D00000000C0010894
|
||||
S31508000FB0002000000E00000000E0010800200000EC
|
||||
S31108000FC00F0000004F70656E424C540094
|
||||
S315080002A04C120008881400080000002000000020F6
|
||||
S315080002B04C1200084C1200084C1200084C12000898
|
||||
S315080002C04C1200084C1200084C1200084C12000888
|
||||
S315080002D08814000800000020EC040020EC0400202C
|
||||
S30D080002E06C050020E902000884
|
||||
S315080002E800B582B04FF00003009301934FF4805392
|
||||
S315080002F8C4F202031A6842F001021A6059684FF0FC
|
||||
S315080003080002CFF6FF020A405A601A6822F0847281
|
||||
S3150800031822F480321A601A6822F480221A605A680F
|
||||
S3150800032822F4FE025A604FF41F029A601A6842F4D1
|
||||
S3150800033880321A604FF48053C4F2020340F2DC524A
|
||||
S31508000348196801F400310191009901F10101009140
|
||||
S31508000358019911B900999142F2D14FF48053C4F228
|
||||
S3150800036802031B6813F4003F04D138484FF06F01A5
|
||||
S3150800037800F0A4FC4FF40053C4F202031A6842F0D2
|
||||
S3150800038810021A601A6822F003021A601A6842F004
|
||||
S3150800039802021A604FF48053C4F202035A685A607C
|
||||
S315080003A85A6842F400525A605A6842F480625A609F
|
||||
S315080003B85A6822F47C125A605A6842F4E8125A605B
|
||||
S315080003C81A6842F080721A604FF48053C4F2020326
|
||||
S315080003D81A6812F0007FFBD04FF48053C4F2020368
|
||||
S315080003E85A6822F003025A605A6842F002025A60B2
|
||||
S315080003F84FF48053C4F202035A6802F00C02082A22
|
||||
S31508000408FAD14FF48053C4F20203DA6942F400328F
|
||||
S31508000418DA619A6942F005029A614FF40063C4F2F8
|
||||
S3150800042801031A6822F470621A601A6842F4306284
|
||||
S315080004381A601A6822F470421A601A6842F48042EE
|
||||
S315080004481A6000F075FC00F07FFCFCE74C12000807
|
||||
S3150800045800B541F2B420C0F600004FF03C0100F0A8
|
||||
S315080004682DFC5DF804FB00BF00B500F03DF860B14F
|
||||
S315080004784EF60853CEF200034FF400521A6042F2C1
|
||||
S315080004880403C0F600031B6898475DF804FB00BF21
|
||||
S3150800049870B50E4692B272B1044600F1010002F137
|
||||
S315080004A8FF3292B2851816F8013B04F8013B00F0B2
|
||||
S315080004B899FCAC42F7D170BD00B5FFF78AFE5DF826
|
||||
S315080004C804FB00BF00B500F095FA5DF804FB00BF11
|
||||
S315080004D800B500F09DFA5DF804FB00BF00B500F012
|
||||
S315080004E8C3FA5DF804FB00BF00B500F05FFB5DF8D2
|
||||
S315080004F804FB00BF00B500F08DFB18B100F0B2FB95
|
||||
S315080005085DF804FB4FF000005DF804FB4EF210039B
|
||||
S31508000518CEF200034FF000021A6070474EF210033D
|
||||
S31508000528CEF200031B6813F4803F1FBF40F2000396
|
||||
S31508000538C2F200031A88013218BF1A80704700BF32
|
||||
S3150800054840F20003C2F200031880704700B5FFF7AF
|
||||
S31508000558DDFF4EF21003CEF2000341F63F12C0F259
|
||||
S3150800056801025A604FF0000098604FF005021A60C1
|
||||
S31508000578FFF7E6FF5DF804FB00B5FFF7CFFF40F28B
|
||||
S315080005880003C2F2000318885DF804FB4FF4884399
|
||||
S31508000598C4F200031B8813F0200F1FBF4FF48843CB
|
||||
S315080005A8C4F200039B88037014BF0120002070471B
|
||||
S315080005B810B5C0B24FF48843C4F200031B8813F081
|
||||
S315080005C8800F15D04FF48843C4F2000398801B881F
|
||||
S315080005D813F0800F0FD14FF48844C4F2000400F0DA
|
||||
S315080005E801FC238813F0800FF9D04FF0010010BDE5
|
||||
S315080005F84FF0000010BD4FF0010010BD4FF48843BE
|
||||
S31508000608C4F200034FF000021A819A811A829A826C
|
||||
S315080006181A8340F271221A819A8992B242F40052D8
|
||||
S3150800062842F00C029A8170472DE9F0410546CCB292
|
||||
S31508000638402C07D941F24830C0F600004FF088012F
|
||||
S3150800064800F03CFB2046FFF7B3FF012807D041F22C
|
||||
S315080006584830C0F600004FF08B0100F02FFB264605
|
||||
S31508000668BCB14FF0000441F24837C0F600074FF016
|
||||
S31508000678930800F0B7FB285DFFF79AFF012803D017
|
||||
S315080006883846414600F01AFB04F10104A3B2B34206
|
||||
S31508000698EFD3BDE8F08100BF30B5054640F2480300
|
||||
S315080006A8C2F200031B78B3B940F20400C2F2000094
|
||||
S315080006B8FFF76CFF01283BD140F24803C2F200035A
|
||||
S315080006C84FF001021A7040F24903C2F200034FF0D4
|
||||
S315080006D80000187030BD40F24903C2F200031C78C6
|
||||
S315080006E840F20403C2F2000304F101001818FFF7E8
|
||||
S315080006F84DFF01281FD104F10104E2B240F2490373
|
||||
S31508000708C2F200031A7040F20403C2F200031B780F
|
||||
S31508000718934213D128460B49FFF7BAFE40F248031D
|
||||
S31508000728C2F200034FF000021A704FF0010030BD04
|
||||
S315080007384FF0000030BD4FF0000030BD4FF000000C
|
||||
S3150800074830BD00BF050000204FF40053C4F2020371
|
||||
S3150800075840F22312C4F267525A6048F6AB12CCF636
|
||||
S31508000768EF525A604FF03402DA6070474FF400537C
|
||||
S31508000778C4F202031A6942F080021A61704700BF80
|
||||
S3150800078870B5064641F2CC35C0F600054FF00004B0
|
||||
S3150800079800F028FB2B68B3420DD869685B189E429F
|
||||
S315080007A809D241F2CC33C0F6000304EB440203EB4A
|
||||
S315080007B88203187A70BD04F1010405F10C050F2CA3
|
||||
S315080007C8E6D14FF0FF0070BD2DE9F04107460068F5
|
||||
S315080007D8FFF7D6FFFF2808BF002454D0FFF7B4FF59
|
||||
S315080007E84FF40053C4F20203DB6813F0010F04D078
|
||||
S315080007F8FFF7BCFF4FF0000445E04FF40053C4F27E
|
||||
S3150800080802031A6942F001021A614FF000054FF413
|
||||
S315080008180054C4F202043B6805EB030805F1040218
|
||||
S31508000828BE58B2B2EA52E36813F0010F05D000F0D9
|
||||
S31508000838D9FAE36813F0010FF9D14FEA1643A8F875
|
||||
S315080008480230E36813F0010F05D000F0CBFAE3682D
|
||||
S3150800085813F0010FF9D1D8F80030B34207D105F1E2
|
||||
S315080008680405B5F5007FD6D14FF0010401E04FF035
|
||||
S3150800087800044FF40053C4F202031A6922F0010275
|
||||
S315080008881A61FFF773FF2046BDE8F08170B5C6B256
|
||||
S3150800089841F2CC35C0F600054FF0000400F0A2FA84
|
||||
S315080008A82B7AB34208D141F2CC33C0F6000304EBE5
|
||||
S315080008B8440253F8220070BD04F1010405F10C0541
|
||||
S315080008C80F2CEBD14FF0FF3070BD00BF00B54FEAD3
|
||||
S315080008D8C1534FEAD35363B903688B420DD040F826
|
||||
S315080008E8041B4FF40072FFF7D3FD4FF001005DF8C3
|
||||
S315080008F804FB4FF000005DF804FB4FF001005DF8BB
|
||||
S3150800090804FB00BF30B504460D4640F24C03C2F25C
|
||||
S315080009180003984209D04FF40053C0F600039942E1
|
||||
S3150800092808D0FFF751FF48B910E040F25024C2F248
|
||||
S31508000938000403E040F24C04C2F2000420462946AB
|
||||
S31508000948FFF7C4FF002808BF002401E04FF00004A1
|
||||
S31508000958204630BD2DE9F04305460C4616469FB29B
|
||||
S315080009684FEA51294FEA49290368B3F1FF3F04D1F1
|
||||
S315080009784946FFF7ABFF002830D02B684B4505D012
|
||||
S3150800098828464946FFF7BEFF054658B32B68E41ABA
|
||||
S3150800099804F104042C1906F1010807F1FF37BFB260
|
||||
S315080009A8B84440F2FF1709F5007900F01BFA05F17B
|
||||
S315080009B80403E31ABB4207D928464946FFF7A2FFAC
|
||||
S315080009C8054698B100F1040416F8013B04F8013B02
|
||||
S315080009D84645EAD14FF00100BDE8F0834FF0000024
|
||||
S315080009E8BDE8F0834FF00000BDE8F0834FF0000043
|
||||
S315080009F8BDE8F08340F25023C2F200034FF0FF32FD
|
||||
S31508000A081A6040F24C03C2F200031A60704700BF2E
|
||||
S31508000A1870B504460D461646FFF7B2FEFF281DD0E8
|
||||
S31508000A2804F1FF304019FFF7ABFEFF2819D04FEA4B
|
||||
S31508000A3854224FF40053C0F60003B3EB422F07BF06
|
||||
S31508000A4840F24C00C2F2000040F25020C2F2000008
|
||||
S31508000A58ABB221463246FFF77DFF70BD4FF0000066
|
||||
S31508000A6870BD4FF0000070BD2DE9F04104460E46F2
|
||||
S31508000A78FFF786FE054604F1FF34A019FFF780FE46
|
||||
S31508000A8804460646FF2814BF00230123FF2D08BF86
|
||||
S31508000A9843F00103002B40F08480854275D8002D69
|
||||
S31508000AA877D00F2879D8FFF74FFE4FF40053C4F2D2
|
||||
S31508000AB80203DB6813F0010F05D0FFF757FE4FF066
|
||||
S31508000AC80000BDE8F0814FF40053C4F202031A6926
|
||||
S31508000AD842F002021A612846FFF7D8FE0746204662
|
||||
S31508000AE8FFF7D4FE804641F2CC35C0F600054FF034
|
||||
S31508000AF8000400F077F92B7AB34209D141F2CC33D6
|
||||
S31508000B08C0F6000304EB440203EB82035B6807E0C4
|
||||
S31508000B1804F1010405F10C050F2CEAD14FF0000386
|
||||
S31508000B28C7EB08084344C3F38F2303B303F1FF3322
|
||||
S31508000B389EB206F101064FEA86264FF000054FF4E5
|
||||
S31508000B480054C4F20204EB196361236943F04003B5
|
||||
S31508000B582361E36813F0010F05D000F043F9E36851
|
||||
S31508000B6813F0010FF9D105F58065B542EBD14FF4BD
|
||||
S31508000B780053C4F202031A6922F002021A61FFF747
|
||||
S31508000B88F5FD4FF00100BDE8F0814FF00000BDE823
|
||||
S31508000B98F0814FF00000BDE8F0814FF00000BDE895
|
||||
S31508000BA8F0814FF00000BDE8F08100BF42F2040270
|
||||
S31508000BB8C0F600024FF40053C0F6000310681B681D
|
||||
S31508000BC8C01842F20803C0F600031B68C01842F2B0
|
||||
S31508000BD80C03C0F600031B68C01842F21003C0F6DF
|
||||
S31508000BE800031B68C01842F21403C0F600031B680A
|
||||
S31508000BF8C01842F21803C0F600031B68C01842F270
|
||||
S31508000C085013C0F600031B68C018D0F1010038BF9E
|
||||
S31508000C180020704710B581B040F24C03C2F20003B9
|
||||
S31508000C289C685A68A418DA68A4181A69A4185A692C
|
||||
S31508000C38A4189A69A418DB69E418C4F10004009496
|
||||
S31508000C48FFF7B4FF844208BF012008D042F25010CB
|
||||
S31508000C58C0F600004FF004016A46FFF7D9FE01B056
|
||||
S31508000C6810BD00BF00B540F24C03C2F200031B6872
|
||||
S31508000C78B3F1FF3F06D040F24C00C2F20000FFF77E
|
||||
S31508000C88A3FD90B140F25023C2F200031B68B3F1EA
|
||||
S31508000C98FF3F0ED040F25020C2F20000FFF794FD45
|
||||
S31508000CA8003018BF01205DF804FB4FF000005DF81E
|
||||
S31508000CB804FB4FF001005DF804FB00BF00B540F2E5
|
||||
S31508000CC85443C2F20003186040F25843C2F20003C4
|
||||
S31508000CD8196000F087F8FCE700B500F07BF80128F2
|
||||
S31508000CE815D040F25C43C2F200031B78012B0ED1E3
|
||||
S31508000CF8FFF742FC31280AD940F25C43C2F20003E6
|
||||
S31508000D084FF000021A70FFF701FCFFF7ADFB5DF81C
|
||||
S31508000D1804FB00BF00B540F25C43C2F200034FF083
|
||||
S31508000D2801021A70FFF712FCFFF7D6FF5DF804FBFD
|
||||
S31508000D3800B500F055F8FFF7EDFFFFF7C3FB00F025
|
||||
S31508000D480DF85DF804FB00BF00B500F04BF800F09D
|
||||
S31508000D581FF8FFF7C1FF5DF804FB00BF00B581B0B7
|
||||
S31508000D684FF0FF038DF800304FF000038DF801307F
|
||||
S31508000D7800F050F8FFF742FC40F25D43C2F2000368
|
||||
S31508000D881B78012B02D1684600F068F801B000BD4F
|
||||
S31508000D9800B540F26040C2F20000FFF77DFC01286A
|
||||
S31508000DA805D140F26040C2F2000000F057F85DF83D
|
||||
S31508000DB804FB00BF00B5C9B2FFF736FC00F044F8DB
|
||||
S31508000DC85DF804FB40F25D43C2F200034FF00102EE
|
||||
S31508000DD81A70704700B500F02DF85DF804FB00BFDF
|
||||
S31508000DE8704700BF704700BF40F2A043C2F2000335
|
||||
S31508000DF84FF000025A70704740F2A043C2F200034F
|
||||
S31508000E084FF0FE02DA7018714FF00202A3F8442078
|
||||
S31508000E18704700BF40F2A043C2F200034FF0000239
|
||||
S31508000E281A709A6483F84320A3F844209A705A7073
|
||||
S31508000E38704700BF40F2A043C2F20003187800309A
|
||||
S31508000E4818BF0120704700BF40F2A043C2F2000352
|
||||
S31508000E584FF0000283F84320704700BF30B50446B8
|
||||
S31508000E680278FF2A1DD1FFF7BFFF40F2A043C2F25E
|
||||
S31508000E7800034FF001021A704FF0FF01D9704FF0C6
|
||||
S31508000E88100119714FF0000159714FF0400098711F
|
||||
S31508000E98D87119725A729A724FF00802A3F8442048
|
||||
S31508000EA8A4E140F2A043C2F200031B78012B40F0EC
|
||||
S31508000EB8B781A2F1C902352A00F29481DFE812F057
|
||||
S31508000EC8F800920192018D01920192017F011901A0
|
||||
S31508000ED865014F01920192019201920192019201D4
|
||||
S31508000EE89201920192019201920192019201920154
|
||||
S31508000EF89201920192019201920192019201920144
|
||||
S31508000F089201920192019201920192019201920133
|
||||
S31508000F1892019201820054003600740092019201EF
|
||||
S31508000F289201B2009201CE00D300E70042783F2A28
|
||||
S31508000F3804D94FF02200FFF75FFF57E140F2A045BA
|
||||
S31508000F48C2F2000505F10400A96CFFF7A1FA4FF0F3
|
||||
S31508000F58FF03EB706278AB6CD318AB64637803F164
|
||||
S31508000F680103A5F8443041E143783F2B04D94FF0F3
|
||||
S31508000F782200FFF741FF39E1416840F2A045C2F275
|
||||
S31508000F880005A96405F104006278FFF781FA4FF0B5
|
||||
S31508000F98FF03EB706278AB6CD318AB64637803F124
|
||||
S31508000FA80103A5F8443021E140F2A043C2F2000348
|
||||
S31508000FB84FF0FF02DA7042689A644FF00102A3F80C
|
||||
S31508000FC8442013E140F2A043C2F200034FF0FF02A7
|
||||
S31508000FD8DA70996C43684FF000023BB14FF0000293
|
||||
S31508000FE811F8010B1218D2B2013BF9D140F2A0430D
|
||||
S31508000FF8C2F200034FF00001DA714FEA1220C0B2BC
|
||||
S3150800100818724FEA1240C0B258724FEA12629A72C0
|
||||
S315080010184FF001021A71597199714FF00802A3F835
|
||||
S315080010284420E3E040F2A043C2F200034FF0FF0277
|
||||
S31508001038DA7041F28042C0F600029A644FF0000264
|
||||
S315080010481A715A719A714FF00701D9711A725A7240
|
||||
S315080010589A724FF00802A3F84420C7E04FF0000040
|
||||
S31508001068FFF7CAFEC2E040F2A043C2F200034FF0FF
|
||||
S31508001078FF02DA704FF000021A71597859719A719D
|
||||
S31508001088DA711A724FF00602A3F84420AEE040F26D
|
||||
S31508001098A044C2F200044FF000032370FFF7A4FE31
|
||||
S315080010A84FF0FF03E3704FF00103A4F844309DE0C6
|
||||
S315080010B840F2A043C2F20003986C04F101024FF013
|
||||
S315080010C83F01FFF705FA20B94FF03100FFF794FE04
|
||||
S315080010D88CE040F2A043C2F200034FF0FF02DA7038
|
||||
S315080010E89A6C02F13F029A644FF00102A3F8442071
|
||||
S315080010F87CE043783E2B04D94FF02200FFF77CFEAC
|
||||
S3150800110874E040F2A043C2F200034FF0FF02DA701F
|
||||
S315080011184FF00102A3F84420417841B9FFF7EAF9EC
|
||||
S31508001128002863D14FF03100FFF766FE5EE040F213
|
||||
S31508001138A043C2F20003986C04F10202FFF7C8F94B
|
||||
S3150800114820B94FF03100FFF757FE4FE040F2A043B1
|
||||
S31508001158C2F2000361789A6C8A189A6446E040F2EB
|
||||
S31508001168A043C2F200034FF0FF02DA704FF0000204
|
||||
S315080011781A715A714FF040019971DA711A725A72D6
|
||||
S315080011884FF00702A3F8442030E040F2A043C2F229
|
||||
S315080011980003986C6168FFF7A1F920B94FF0310090
|
||||
S315080011A8FFF72AFE22E040F2A043C2F200034FF0FE
|
||||
S315080011B8FF02DA704FF00102A3F8442016E0FFF7A1
|
||||
S315080011C87BF940F2A043C2F200034FF0FF02DA703F
|
||||
S315080011D84FF00102A3F8442008E04FF03100FFF76A
|
||||
S315080011E80BFE03E04FF02000FFF706FE40F2A0438F
|
||||
S315080011F8C2F2000393F84330012B03D14FF01000D5
|
||||
S31508001208FFF7FAFD40F2A043C2F200034FF00102CD
|
||||
S3150800121883F8432003F10300B3F84410FFF7CAFD27
|
||||
S3150800122830BD00BF00B503B400F008F803BC02B42B
|
||||
S31508001238694609BE00F004F801BC00BD704700BF46
|
||||
S30908001248704700BF1E
|
||||
S3150800124C443A2F7573722F6665617365722F736FC7
|
||||
S3150800125C6674776172652F4F70656E424C542F54C5
|
||||
S3150800126C61726765742F44656D6F2F41524D434DFE
|
||||
S3150800127C335F53544D33325F4F6C696D65785F53EA
|
||||
S3150800128C544D3332503130335F43726F7373776F0B
|
||||
S3150800129C726B732F426F6F742F6964652F2E2E2F06
|
||||
S315080012AC6D61696E2E630000443A2F7573722F6652
|
||||
S315080012BC65617365722F736F6674776172652F4FEC
|
||||
S315080012CC70656E424C542F5461726765742F446571
|
||||
S315080012DC6D6F2F41524D434D335F53544D33325F2F
|
||||
S315080012EC4F6C696D65785F53544D333250313033DA
|
||||
S315080012FC5F43726F7373776F726B732F426F6F7472
|
||||
S3150800130C2F6964652F2E2E2F2E2E2F2E2E2F2E2E36
|
||||
S3150800131C2F536F757263652F41524D434D335F538F
|
||||
S3150800132C544D33322F43726F7373776F726B732FFF
|
||||
S3150800133C766563746F72732E63000000443A2F75DA
|
||||
S3150800134C73722F6665617365722F736F6674776136
|
||||
S3150800135C72652F4F70656E424C542F5461726765D7
|
||||
S3150800136C742F44656D6F2F41524D434D335F535463
|
||||
S3150800137C4D33325F4F6C696D65785F53544D33321C
|
||||
S3150800138C503130335F43726F7373776F726B732F91
|
||||
S3150800139C426F6F742F6964652F2E2E2F2E2E2F2ECB
|
||||
S315080013AC2E2F2E2E2F536F757263652F41524D4378
|
||||
S315080013BC4D335F53544D33322F756172742E63005F
|
||||
S315080013CC0020000800200000010000000040000872
|
||||
S315080013DC0020000002000000006000080020000049
|
||||
S315080013EC0300000000800008002000000400000034
|
||||
S315080013FC00A00008002000000500000000C000083E
|
||||
S3150800140C002000000600000000E000080020000094
|
||||
S3150800141C070000000000010800200000080000007A
|
||||
S3150800142C0020010800200000090000000040010807
|
||||
S3150800143C002000000A0000000060010800200000DF
|
||||
S3150800144C0B00000000800108002000000C000000C2
|
||||
S3150800145C00A00108002000000D00000000C00108D3
|
||||
S3150800146C002000000E00000000E00108002000002B
|
||||
S3110800147C0F0000004F70656E424C5400D3
|
||||
S705080001DB16
|
||||
|
|
|
@ -97,20 +97,20 @@ void NvmInitHook(void)
|
|||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the write
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver write
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** been written yet.
|
||||
**
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
} /*** end of NvmWriteHook ***/
|
||||
|
||||
|
||||
|
@ -118,19 +118,19 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
** NAME: NvmEraseHook
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the erase
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver erase
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** hasn't been erased yet.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
} /*** end of NvmEraseHook ***/
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE CrossStudio_Project_File>
|
||||
<solution Name="stm32f103_crossworks" target="8" version="2">
|
||||
<project Name="openbtl_olimex_stm32p103">
|
||||
<configuration Name="Common" Placement="Flash" Target="STM32F103RB" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F103RB;0x20000;0x5000" arm_target_debug_interface_type="ADIv5" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/CMSIS/CM3/CoreSupport;-I./../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x;-I./../../../../Source;-I./../../../../Source/ARMCM3_STM32;-I./../../../../Source/ARMCM3_STM32/Crossworks" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Optimize For Size" link_include_standard_libraries="Yes" linker_memory_map_file="$(TargetsDir)/STM32/STM32F103RB_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName("$(Target)")" target_reset_script="Reset()"/>
|
||||
<configuration Name="Common" Placement="Flash" Target="STM32F103RB" arm_architecture="v7M" arm_core_type="Cortex-M3" arm_linker_heap_size="128" arm_linker_jtag_pad_pre_dr="1" arm_linker_jtag_pad_pre_ir="5" arm_linker_process_stack_size="0" arm_linker_stack_size="128" arm_simulator_memory_simulation_filename="$(TargetsDir)/STM32/STM32SimulatorMemory.dll" arm_simulator_memory_simulation_parameter="STM32F103RB;0x20000;0x5000" arm_target_debug_interface_type="ADIv5" arm_target_loader_applicable_loaders="Flash" arm_target_loader_default_loader="Flash" arm_target_loader_parameter="8000000" arm_use_gcc_libraries="Yes" build_intermediate_directory="$(Configuration)/../../obj" build_output_directory="$(ProjectDir)/../bin" c_only_additional_options="-I./..;-I./../lib/CMSIS/CM3/CoreSupport;-I./../lib/CMSIS/CM3/DeviceSupport/ST/STM32F10x;-I./../../../../Source;-I./../../../../Source/ARMCM3_STM32;-I./../../../../Source/ARMCM3_STM32/Crossworks" c_user_include_directories="$(TargetsDir)/STM32/include" gcc_optimization_level="Level 1" link_include_standard_libraries="Yes" linker_memory_map_file="$(TargetsDir)/STM32/STM32F103RB_MemoryMap.xml" linker_output_format="srec" linker_printf_enabled="No" linker_printf_width_precision_supported="No" linker_scanf_enabled="No" linker_section_placement_file="$(StudioDir)/targets/Cortex_M/flash_placement.xml" oscillator_frequency="8MHz" project_directory="" project_type="Executable" property_groups_file_path="$(TargetsDir)/STM32/propertyGroups.xml" target_get_partname_script="GetPartName()" target_match_partname_script="MatchPartName("$(Target)")" target_reset_script="Reset()"/>
|
||||
<configuration Name="Flash" arm_target_flash_loader_file_path="$(TargetsDir)/STM32/Release/Loader_rpc.elf" arm_target_flash_loader_type="LIBMEM RPC Loader" arm_target_loader_can_lock_all="No" arm_target_loader_can_lock_range="No" arm_target_loader_can_unlock_all="No" arm_target_loader_can_unlock_range="No" target_reset_script="FLASHReset()"/>
|
||||
<folder Name="Source Files">
|
||||
<configuration Name="Common" filter="c;cpp;cxx;cc;h;s;asm;inc"/>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<Watches active="0" update="Never" />
|
||||
</Watch4>
|
||||
<Files>
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="23" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\main.c" y="72" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="57" />
|
||||
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="17" debugPath="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\main.c" y="79" path="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="72" />
|
||||
</Files>
|
||||
<ARMCrossStudioWindow activeProject="openbtl_olimex_stm32p103" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" fileDialogDefaultFilter="" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" />
|
||||
<ARMCrossStudioWindow activeProject="openbtl_olimex_stm32p103" autoConnectTarget="Olimex ARM-USB-TINY" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Demo\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Boot\lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x" fileDialogDefaultFilter="*.c" autoConnectCapabilities="266111" debugSearchPath="" buildConfiguration="THUMB Debug" />
|
||||
</session>
|
||||
|
|
Binary file not shown.
|
@ -7,42 +7,42 @@ start address 0x08000000
|
|||
|
||||
Program Header:
|
||||
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
|
||||
filesz 0x00000f87 memsz 0x00000f87 flags r-x
|
||||
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08000f87 align 2**15
|
||||
filesz 0x000014c8 memsz 0x000014c8 flags r-x
|
||||
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x080014c8 align 2**15
|
||||
filesz 0x00000014 memsz 0x00000600 flags rw-
|
||||
private flags = 5000002: [Version5 EABI] [has entry point]
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn
|
||||
0 .text 00000f87 08000000 08000000 00008000 2**2
|
||||
0 .text 000014c8 08000000 08000000 00008000 2**2
|
||||
CONTENTS, ALLOC, LOAD, READONLY, CODE
|
||||
1 .data 00000014 20000000 08000f87 00010000 2**2
|
||||
1 .data 00000014 20000000 080014c8 00010000 2**2
|
||||
CONTENTS, ALLOC, LOAD, DATA
|
||||
2 .bss 000005ec 20000014 08000f9b 00010014 2**2
|
||||
2 .bss 000005ec 20000014 080014dc 00010014 2**2
|
||||
ALLOC
|
||||
3 .debug_abbrev 00000ed3 00000000 00000000 00010014 2**0
|
||||
3 .debug_abbrev 00000e79 00000000 00000000 00010014 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
4 .debug_info 000026dd 00000000 00000000 00010ee7 2**0
|
||||
4 .debug_info 0000273b 00000000 00000000 00010e8d 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
5 .debug_line 00001045 00000000 00000000 000135c4 2**0
|
||||
5 .debug_line 00001000 00000000 00000000 000135c8 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
6 .debug_pubtypes 00000471 00000000 00000000 00014609 2**0
|
||||
6 .debug_pubtypes 00000471 00000000 00000000 000145c8 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
7 .debug_str 00000cfa 00000000 00000000 00014a7a 2**0
|
||||
7 .debug_str 00000cfa 00000000 00000000 00014a39 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
8 .comment 0000002a 00000000 00000000 00015774 2**0
|
||||
8 .comment 0000002a 00000000 00000000 00015733 2**0
|
||||
CONTENTS, READONLY
|
||||
9 .ARM.attributes 00000031 00000000 00000000 0001579e 2**0
|
||||
9 .ARM.attributes 00000031 00000000 00000000 0001575d 2**0
|
||||
CONTENTS, READONLY
|
||||
10 .debug_loc 00000f72 00000000 00000000 000157cf 2**0
|
||||
10 .debug_loc 00001163 00000000 00000000 0001578e 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
11 .debug_pubnames 00000593 00000000 00000000 00016741 2**0
|
||||
11 .debug_pubnames 00000593 00000000 00000000 000168f1 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
12 .debug_aranges 000003f8 00000000 00000000 00016cd4 2**0
|
||||
12 .debug_aranges 000003f8 00000000 00000000 00016e84 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
13 .debug_ranges 00000328 00000000 00000000 000170cc 2**0
|
||||
13 .debug_ranges 000002f8 00000000 00000000 0001727c 2**0
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
14 .debug_frame 000007c0 00000000 00000000 000173f4 2**2
|
||||
14 .debug_frame 0000080c 00000000 00000000 00017574 2**2
|
||||
CONTENTS, READONLY, DEBUGGING
|
||||
SYMBOL TABLE:
|
||||
08000000 l d .text 00000000 .text
|
||||
|
@ -62,8 +62,8 @@ SYMBOL TABLE:
|
|||
00000000 l d .debug_frame 00000000 .debug_frame
|
||||
00000000 l df *ABS* 00000000 vectors.c
|
||||
00000000 l df *ABS* 00000000 cstart.c
|
||||
0800017a l F .text 00000000 zero_loop2
|
||||
08000e52 l F .text 00000000 zero_loop
|
||||
0800019e l F .text 00000000 zero_loop2
|
||||
0800139c l F .text 00000000 zero_loop
|
||||
00000000 l df *ABS* 00000000 hooks.c
|
||||
00000000 l df *ABS* 00000000 main.c
|
||||
00000000 l df *ABS* 00000000 core_cm3.c
|
||||
|
@ -71,11 +71,11 @@ SYMBOL TABLE:
|
|||
00000000 l df *ABS* 00000000 boot.c
|
||||
00000000 l df *ABS* 00000000 com.c
|
||||
20000014 l O .bss 00000001 comEntryStateConnect
|
||||
20000015 l O .bss 00000040 xcpCtoReqPacket.1371
|
||||
20000018 l O .bss 00000040 xcpCtoReqPacket.1371
|
||||
00000000 l df *ABS* 00000000 xcp.c
|
||||
0800056c l F .text 0000000c XcpProtectResources
|
||||
08000578 l F .text 00000014 XcpSetCtoError
|
||||
08000e7b l O .text 00000008 xcpStationId
|
||||
0800069c l F .text 00000010 XcpProtectResources
|
||||
080006ac l F .text 0000001a XcpSetCtoError
|
||||
080013bc l O .text 00000008 xcpStationId
|
||||
20000058 l O .bss 0000004c xcpInfo
|
||||
00000000 l df *ABS* 00000000 backdoor.c
|
||||
200000a4 l O .bss 00000001 backdoorOpen
|
||||
|
@ -86,103 +86,103 @@ SYMBOL TABLE:
|
|||
00000000 l df *ABS* 00000000 cpu.c
|
||||
00000000 l df *ABS* 00000000 can.c
|
||||
00000000 l df *ABS* 00000000 uart.c
|
||||
08000858 l F .text 0000001c UartReceiveByte
|
||||
08000874 l F .text 0000002c UartTransmitByte
|
||||
08000b88 l F .text 00000024 UartReceiveByte
|
||||
08000bac l F .text 0000004a UartTransmitByte
|
||||
200000b0 l O .bss 00000041 xcpCtoReqPacket.1392
|
||||
200000f1 l O .bss 00000001 xcpCtoRxLength.1393
|
||||
200000f2 l O .bss 00000001 xcpCtoRxInProgress.1394
|
||||
200000f4 l O .bss 00000001 xcpCtoRxLength.1393
|
||||
200000f5 l O .bss 00000001 xcpCtoRxInProgress.1394
|
||||
00000000 l df *ABS* 00000000 nvm.c
|
||||
00000000 l df *ABS* 00000000 timer.c
|
||||
200000f4 l O .bss 00000002 millisecond_counter
|
||||
200000f6 l O .bss 00000002 millisecond_counter
|
||||
00000000 l df *ABS* 00000000 flash.c
|
||||
08000a0c l F .text 0000001c FlashUnlock
|
||||
08000a28 l F .text 00000010 FlashLock
|
||||
08000a38 l F .text 00000038 FlashGetSector
|
||||
08000a70 l F .text 0000008c FlashWriteBlock
|
||||
08000afc l F .text 00000030 FlashGetSectorBaseAddr
|
||||
08000b2c l F .text 00000026 FlashInitBlock
|
||||
08000b54 l F .text 00000044 FlashSwitchBlock
|
||||
08000b98 l F .text 00000080 FlashAddToBlock
|
||||
08000ea8 l O .text 000000b4 flashLayout
|
||||
08000dec l F .text 00000024 FlashUnlock
|
||||
08000e10 l F .text 00000012 FlashLock
|
||||
08000e24 l F .text 0000004c FlashGetSector
|
||||
08000e70 l F .text 000000c2 FlashWriteBlock
|
||||
08000f34 l F .text 0000003e FlashGetSectorBaseAddr
|
||||
08000f74 l F .text 00000030 FlashInitBlock
|
||||
08000fa4 l F .text 00000050 FlashSwitchBlock
|
||||
08000ff4 l F .text 0000009a FlashAddToBlock
|
||||
080013e8 l O .text 000000b4 flashLayout
|
||||
200000f8 l O .bss 00000204 bootBlockInfo
|
||||
200002fc l O .bss 00000204 blockInfo
|
||||
080004f8 g F .text 0000002c ComInit
|
||||
08000c30 g F .text 0000004c FlashWrite
|
||||
08000312 g F .text 00000006 __set_PRIMASK
|
||||
080007fc g F .text 00000018 AssertFailure
|
||||
08000e34 g F .text 00000038 reset_handler
|
||||
080009b0 g F .text 0000001c TimerUpdate
|
||||
080005b8 g F .text 00000010 XcpPacketTransmitted
|
||||
08000524 g F .text 0000001c ComTask
|
||||
08000550 g F .text 0000000c ComSetConnectEntryState
|
||||
08000318 g F .text 00000006 __get_FAULTMASK
|
||||
08000330 g F .text 00000004 __REV
|
||||
080004d0 g F .text 00000016 BootInit
|
||||
080007e0 g F .text 00000018 BackDoorInit
|
||||
08000364 g F .text 00000006 __STREXW
|
||||
08000352 g F .text 00000006 __LDREXW
|
||||
080007fa g F .text 00000002 CopService
|
||||
08000f87 g .text 00000000 _etext
|
||||
080009a4 g F .text 0000000c TimerReset
|
||||
08000614 g F .text 00000034 ComInit
|
||||
080010ac g F .text 00000058 FlashWrite
|
||||
08000374 g F .text 00000006 __set_PRIMASK
|
||||
08000b1c g F .text 0000001c AssertFailure
|
||||
08001358 g F .text 00000054 reset_handler
|
||||
08000d7c g F .text 00000022 TimerUpdate
|
||||
080006fc g F .text 00000012 XcpPacketTransmitted
|
||||
08000648 g F .text 00000020 ComTask
|
||||
08000678 g F .text 00000010 ComSetConnectEntryState
|
||||
0800037c g F .text 00000006 __get_FAULTMASK
|
||||
0800039c g F .text 00000004 __REV
|
||||
080005f0 g F .text 00000014 BootInit
|
||||
08000af8 g F .text 0000001a BackDoorInit
|
||||
080003d8 g F .text 00000006 __STREXW
|
||||
080003c0 g F .text 00000006 __LDREXW
|
||||
08000b18 g F .text 00000002 CopService
|
||||
080014c8 g .text 00000000 _etext
|
||||
08000d6c g F .text 00000010 TimerReset
|
||||
20000010 g O .data 00000004 SystemCoreClock
|
||||
0800033c g F .text 00000006 __RBIT
|
||||
080004e6 g F .text 00000012 BootTask
|
||||
08000dac g F .text 00000048 FlashWriteChecksum
|
||||
0800031e g F .text 00000006 __set_FAULTMASK
|
||||
08000540 g F .text 00000010 ComTransmitPacket
|
||||
08000324 g F .text 00000006 __get_CONTROL
|
||||
080005a8 g F .text 00000010 XcpIsConnected
|
||||
08000980 g F .text 00000004 NvmInit
|
||||
08000c18 g F .text 00000018 FlashInit
|
||||
080002e4 g F .text 00000008 __get_PSP
|
||||
080003a8 g F .text 00000006 __RBIT
|
||||
08000604 g F .text 00000010 BootTask
|
||||
080012a0 g F .text 00000054 FlashWriteChecksum
|
||||
08000384 g F .text 00000006 __set_FAULTMASK
|
||||
08000668 g F .text 0000000e ComTransmitPacket
|
||||
0800038c g F .text 00000006 __get_CONTROL
|
||||
080006e8 g F .text 00000012 XcpIsConnected
|
||||
08000d38 g F .text 00000008 NvmInit
|
||||
08001090 g F .text 0000001a FlashInit
|
||||
0800033c g F .text 00000008 __get_PSP
|
||||
20000500 g .bss 00000000 _ebss
|
||||
080002ec g F .text 00000006 __set_PSP
|
||||
08000344 g F .text 00000006 __set_PSP
|
||||
00000100 g *ABS* 00000000 __STACKSIZE__
|
||||
08000e28 g F .text 0000000c UnusedISR
|
||||
08000342 g F .text 00000008 __LDREXB
|
||||
080008a0 g F .text 00000028 UartInit
|
||||
08000988 g F .text 00000004 NvmErase
|
||||
08001344 g F .text 00000014 UnusedISR
|
||||
080003b0 g F .text 00000008 __LDREXB
|
||||
08000bf8 g F .text 0000002c UartInit
|
||||
08000d48 g F .text 00000008 NvmErase
|
||||
20000014 g .bss 00000000 _bss
|
||||
0800030c g F .text 00000006 __get_PRIMASK
|
||||
080005c8 g F .text 000001e8 XcpPacketReceived
|
||||
0800036c g F .text 00000006 __get_PRIMASK
|
||||
08000710 g F .text 000003ae XcpPacketReceived
|
||||
20000000 g O .data 00000010 AHBPrescTable
|
||||
08000df4 g F .text 00000034 FlashDone
|
||||
08000338 g F .text 00000004 __REVSH
|
||||
08000150 g F .text 0000004c EntryFromProg
|
||||
0800055c g F .text 0000000c ComIsConnectEntryState
|
||||
0800058c g F .text 0000001c XcpInit
|
||||
08000c7c g F .text 000000dc FlashErase
|
||||
080001b0 g F .text 00000134 main
|
||||
0800032a g F .text 00000006 __set_CONTROL
|
||||
08000990 g F .text 00000012 NvmDone
|
||||
080008c8 g F .text 00000050 UartTransmitPacket
|
||||
0800098c g F .text 00000004 NvmVerifyChecksum
|
||||
08000834 g F .text 00000020 CpuMemCopy
|
||||
080009cc g F .text 0000000c TimerSet
|
||||
080002f2 g F .text 00000008 __get_MSP
|
||||
0800036c g F .text 000000fc SystemInit
|
||||
08000918 g F .text 00000068 UartReceivePacket
|
||||
08000334 g F .text 00000004 __REV16
|
||||
080012f4 g F .text 00000050 FlashDone
|
||||
080003a4 g F .text 00000004 __REVSH
|
||||
08000150 g F .text 00000062 EntryFromProg
|
||||
08000688 g F .text 0000000c ComIsConnectEntryState
|
||||
080006c8 g F .text 0000001e XcpInit
|
||||
08001104 g F .text 00000134 FlashErase
|
||||
080001c8 g F .text 00000174 main
|
||||
08000394 g F .text 00000006 __set_CONTROL
|
||||
08000d58 g F .text 00000014 NvmDone
|
||||
08000c24 g F .text 0000006e UartTransmitPacket
|
||||
08000d50 g F .text 00000008 NvmVerifyChecksum
|
||||
08000b5c g F .text 00000022 CpuMemCopy
|
||||
08000da0 g F .text 0000000c TimerSet
|
||||
0800034c g F .text 00000008 __get_MSP
|
||||
080003e0 g F .text 00000130 SystemInit
|
||||
08000c94 g F .text 000000a4 UartReceivePacket
|
||||
080003a0 g F .text 00000004 __REV16
|
||||
20000000 g .data 00000000 _data
|
||||
080002fa g F .text 00000006 __set_MSP
|
||||
080007f8 g F .text 00000002 CopInit
|
||||
08000854 g F .text 00000004 CpuReset
|
||||
08000984 g F .text 00000004 NvmWrite
|
||||
08000814 g F .text 00000020 CpuStartUserProgram
|
||||
08000354 g F .text 00000006 __set_MSP
|
||||
08000b14 g F .text 00000002 CopInit
|
||||
08000b80 g F .text 00000008 CpuReset
|
||||
08000d40 g F .text 00000008 NvmWrite
|
||||
08000b38 g F .text 00000024 CpuStartUserProgram
|
||||
20000600 g .bss 00000000 _estack
|
||||
08000d58 g F .text 00000054 FlashVerifyChecksum
|
||||
08000306 g F .text 00000006 __set_BASEPRI
|
||||
08001238 g F .text 00000068 FlashVerifyChecksum
|
||||
08000364 g F .text 00000006 __set_BASEPRI
|
||||
20000014 g .data 00000000 _edata
|
||||
08000000 g O .text 00000150 _vectab
|
||||
0800035e g F .text 00000006 __STREXH
|
||||
08000468 g F .text 00000068 SystemCoreClockUpdate
|
||||
0800034a g F .text 00000008 __LDREXH
|
||||
08000568 g F .text 00000004 ComIsConnected
|
||||
08000300 g F .text 00000006 __get_BASEPRI
|
||||
080007b0 g F .text 00000030 BackDoorCheck
|
||||
080003d0 g F .text 00000006 __STREXH
|
||||
08000510 g F .text 000000e0 SystemCoreClockUpdate
|
||||
080003b8 g F .text 00000008 __LDREXH
|
||||
08000694 g F .text 00000008 ComIsConnected
|
||||
0800035c g F .text 00000006 __get_BASEPRI
|
||||
08000ac0 g F .text 00000038 BackDoorCheck
|
||||
20000500 g .bss 00000000 _stack
|
||||
080009fc g F .text 00000010 TimerGet
|
||||
08000358 g F .text 00000006 __STREXB
|
||||
080009d8 g F .text 00000024 TimerInit
|
||||
08000dd8 g F .text 00000012 TimerGet
|
||||
080003c8 g F .text 00000006 __STREXB
|
||||
08000dac g F .text 0000002a TimerInit
|
||||
|
||||
|
||||
|
|
|
@ -1,253 +1,337 @@
|
|||
S024000062696E2F6F70656E62746C5F6F6C696D65785F73746D3332703130332E737265639B
|
||||
S3150800000000060020350E0008290E0008290E0008F3
|
||||
S31508000010290E0008290E0008290E0008290E0008D6
|
||||
S31508000020290E0008290E0008290E0008290E0008C6
|
||||
S31508000030290E0008290E0008290E0008290E0008B6
|
||||
S31508000040290E0008290E0008290E0008290E0008A6
|
||||
S31508000050290E0008290E0008290E0008290E000896
|
||||
S31508000060290E0008290E0008290E0008290E000886
|
||||
S31508000070290E0008290E0008290E0008290E000876
|
||||
S31508000080290E0008290E0008290E0008290E000866
|
||||
S31508000090290E0008290E0008290E0008290E000856
|
||||
S315080000A0290E0008290E0008290E0008290E000846
|
||||
S315080000B0290E0008290E0008290E0008290E000836
|
||||
S315080000C0290E0008290E0008290E0008290E000826
|
||||
S315080000D0290E0008290E0008290E0008290E000816
|
||||
S315080000E0290E0008290E0008290E0008290E000806
|
||||
S315080000F0290E0008290E0008290E0008290E0008F6
|
||||
S31508000100290E0008290E0008290E0008290E0008E5
|
||||
S31508000110290E0008290E0008290E0008290E0008D5
|
||||
S31508000120290E0008290E0008290E0008290E0008C5
|
||||
S31508000130290E0008290E0008290E0008290E0008B5
|
||||
S31508000140290E0008290E0008290E0008290E0008A5
|
||||
S3150800015010B572B611481249016012498D460C4A0B
|
||||
S315080001600C4B03E052F8041B43F8041B0A498B4264
|
||||
S31508000170F8D30D480D494FF000028842B8BF40F841
|
||||
S31508000180042BFADB00F0E4F9BDE8104000F010B8E3
|
||||
S31508000190870F0008000000201400002008ED00E08A
|
||||
S315080001A000000008000600201400002000050020BA
|
||||
S315080001B007B5002301930093454B1A6842F00102E4
|
||||
S315080001C01A605968434A01EA02025A601A6822F01C
|
||||
S315080001D0847222F480321A601A6822F480221A6025
|
||||
S315080001E05A6822F4FE025A604FF41F029A601A688F
|
||||
S315080001F042F480321A60364B1B6803F400330093CE
|
||||
S31508000200019B01330193009B23B9019A40F2DC5309
|
||||
S315080002109A42F0D12E4B1B6813F4003F03D12E48A7
|
||||
S315080002206F2100F0EBFA2D4B1A6842F010021A60A3
|
||||
S315080002301A6822F003021A601A6842F002021A606B
|
||||
S31508000240234B5A685A605A6842F400525A605A68F0
|
||||
S3150800025042F480625A605A6822F47C125A605A68DC
|
||||
S3150800026042F4E8125A601A6842F080721A60184B13
|
||||
S315080002701A6812F0007FFAD05A6822F003025A6010
|
||||
S315080002805A6842F002025A60114B5A6802F00C0290
|
||||
S31508000290082AF9D1DA6942F40032DA619A6942F039
|
||||
S315080002A005029A610E4B1A6822F470621A601A687F
|
||||
S315080002B042F430621A601A6822F470421A601A68A8
|
||||
S315080002C042F480421A6000F003F900F00CF9FCE7EA
|
||||
S315080002D0001002400000FFF8740E000800200240DB
|
||||
S315080002E000080140EFF309800046704780F309884B
|
||||
S315080002F07047EFF308800046704780F30888704718
|
||||
S31508000300EFF31280704780F311887047EFF310807F
|
||||
S31508000310704780F310887047EFF31380704780F3B7
|
||||
S3150800032013887047EFF31480704780F3148870477A
|
||||
S3150800033000BA704740BA7047C0BA704790FAA0F042
|
||||
S315080003407047D0E84F0FC0B27047D0E85F0F80B251
|
||||
S31508000350704750E8000F7047C1E8400F7047C1E882
|
||||
S31508000360500F704741E80000704700003A4B82B0D2
|
||||
S315080003701A6842F001021A605968384A01EA02020C
|
||||
S315080003805A601A6822F0847222F480321A601A6857
|
||||
S3150800039022F480221A605A6822F4FE025A604FF448
|
||||
S315080003A01F029A600022019200921A6842F4803273
|
||||
S315080003B01A60294B1A6802F400320092019A013237
|
||||
S315080003C00192009A1AB9019AB2F5A06FF1D11B6889
|
||||
S315080003D013F4003318BF01230093009B012B34D17B
|
||||
S315080003E01F4B1A6842F010021A601A6822F00302BC
|
||||
S315080003F01A601A6842F002021A60174B5A685A6065
|
||||
S315080004005A685A605A6842F480625A605A6822F4F6
|
||||
S315080004107C125A605A6842F4E8125A601A6842F026
|
||||
S3150800042080721A600C4B1A6812F0007FFAD05A686C
|
||||
S3150800043022F003025A605A6842F002025A60064BDA
|
||||
S315080004405B6803F00C03082BF9D1064B4FF00062EA
|
||||
S315080004509A6002B0704700BF001002400000FFF823
|
||||
S315080004600020024000ED00E0144A154B516801F0E7
|
||||
S315080004700C01042901D0082902D0124A1A6011E099
|
||||
S315080004805168506801F47011890C023110F4803FEC
|
||||
S3150800049003D0526812F4003F01D00B4A00E0094A23
|
||||
S315080004A051431960054A0949526802F0F0021209D7
|
||||
S315080004B08A5C196831FA02F21A6070470010024025
|
||||
S315080004C01000002000127A0000093D0000000020FC
|
||||
S315080004D010B500F091F900F083F900F051FABDE883
|
||||
S315080004E0104000F009B810B500F087F900F01AF8C6
|
||||
S315080004F0BDE8104000F05CB907B5FF238DF804305D
|
||||
S31508000500FF3B8DF8053000F041F800F0C9F9044BBF
|
||||
S315080005101B78012B02D101A800F056F80EBD00BFCA
|
||||
S315080005201400002010B5054800F0F6F9012804D19A
|
||||
S315080005300248BDE8104000F047B810BD150000207D
|
||||
S3150800054010B5C9B200F0C0F9BDE8104000F034B8E3
|
||||
S31508000550014B01221A70704714000020014B1878CD
|
||||
S31508000560704700BF1400002000F01EB8014B00229F
|
||||
S315080005705A70704758000020034BFE22DA70022298
|
||||
S315080005801871A3F84420704758000020054B002234
|
||||
S315080005901A709A6483F84320A3F844209A705A7014
|
||||
S315080005A0704700BF58000020024B1878003818BF63
|
||||
S315080005B00120704758000020024B002283F8432090
|
||||
S315080005C0704700BF580000202DE9F041077805461E
|
||||
S315080005D0FF2F744C0FD1FFF7C9FF102201234021CA
|
||||
S315080005E02271103A2370E7706271A171E17122726B
|
||||
S315080005F06372A3725AE026782046012E40F0D08016
|
||||
S31508000600F32F40D011D8CF2F00F0AD8005D8C92FD1
|
||||
S315080006106CD0CC2F40F0B080ACE0D12F00F09C809D
|
||||
S3150800062071D3D22F40F0A88088E0FA2F40D006D8A0
|
||||
S31508000630F52F0CD011D3F62F40F09E801FE0FD2F2A
|
||||
S3150800064044D0FE2F4DD0FC2F40F096803CE06A78CF
|
||||
S315080006503F2A5BD8201DA16C06E06B783F2B55D846
|
||||
S315080006606968201DA1646A7800F0E4F8FF23E37046
|
||||
S315080006706A78A36CD318A3646B78013369E0FF2307
|
||||
S31508000680E3706B683DE0FF23E370A16C6B680022A2
|
||||
S3150800069004E011F8015B013B5219D2B2002BF8D1E4
|
||||
S315080006A0C0F80720012222716371A371082350E064
|
||||
S315080006B0FF23E3703C4BA364002323716371A3718A
|
||||
S315080006C00733C4F80730F1E7002056E0FF236278C5
|
||||
S315080006D0E370FF3B2371A371E371237262710623F2
|
||||
S315080006E037E000232370FFF741FF3EE0A06C3F216F
|
||||
S315080006F06A1C00F047F9002833D0FF23E370A36C87
|
||||
S315080007003F33A36433E06B783E2B01D9222034E0D3
|
||||
S31508000710FF23E370A4F84460697821B900F038F93A
|
||||
S3150800072000282CD11DE0A06CAA1C1E4E00F02AF948
|
||||
S31508000730B8B16A78B36CD318B36420E0FF23E370CA
|
||||
S315080007404022FF3B23716371E37123726372A271C6
|
||||
S315080007500723A4F8443012E0A06C696800F014F985
|
||||
S3150800076018B9313009E000F075F8FF23E370A4F8F2
|
||||
S31508000770446004E0312000E02020FFF7FDFE94F8F5
|
||||
S315080007804330012B02D11020FFF7F6FE0748B4F8D4
|
||||
S315080007904410012384F84330BDE8F041FFF7D0BE8A
|
||||
S315080007A0BDE8F081580000207B0E00085B000020A1
|
||||
S315080007B010B5FFF7D9FE01280FD0084C2378012B76
|
||||
S315080007C00BD100F01BF9312807D90023237000F05C
|
||||
S315080007D0E9F8BDE8104000F01DB810BDA4000020DF
|
||||
S315080007E0044B012210B51A7000F0F6F8BDE8104067
|
||||
S315080007F0FFF7DEBFA40000207047704708B5034B1B
|
||||
S315080008001860034B1960FFF7F8FFFCE7A800002003
|
||||
S31508000810AC00002008B500F0B9F830B1034B4FF42E
|
||||
S3150800082000521A60024B1B68984708BD08ED00E0A5
|
||||
S315080008300420000870B50C461546064607E014F86D
|
||||
S31508000840013B013D06F8013BFFF7D7FFADB2002D8E
|
||||
S31508000850F5D170BD00F0EEBA054B1A8812F02002E9
|
||||
S3150800086003D09B880370012070471046704700BF6D
|
||||
S315080008700044004008B5094B1A8812F080020AD0D5
|
||||
S31508000880988001E0FFF7B9FF044B1B8813F0800F2F
|
||||
S31508000890F8D0012008BD104608BD00BF004400403E
|
||||
S315080008A0084B00221A819A811A829A821A8340F288
|
||||
S315080008B071221A819A8992B242F4005242F00C02CD
|
||||
S315080008C09A81704700440040402970B506460D4697
|
||||
S315080008D003D910488821FFF791FF2846FFF7CAFF7A
|
||||
S315080008E0012803D00B488B21FFF788FF00240DE071
|
||||
S315080008F0FFF783FF16F8010BFFF7BCFF012803D0AB
|
||||
S3150800090004489321FFF77AFF0134A4B2AC42EFD32F
|
||||
S3150800091070BD00BF830E00082DE9F843154C8146CB
|
||||
S31508000920257845B91448FFF797FF01281FD1134BBF
|
||||
S3150800093020701D701BE0114F0F4E97F8008008F1CC
|
||||
S31508000940010806EB0800FFF787FF012805460DD1C9
|
||||
S3150800095032785FFA88F8424587F8008006D148461B
|
||||
S31508000960711CFFF767FF0023237000E00025284667
|
||||
S31508000970BDE8F883F2000020B0000020F100002056
|
||||
S3150800098000F04AB900F054B900F078B900F0E4B9BB
|
||||
S3150800099010B500F00BFA18B1BDE8104000F02ABAFD
|
||||
S315080009A010BD0000014B00221A60704710E000E0FD
|
||||
S315080009B0044B1B6813F4803F03D0034B1A8801329B
|
||||
S315080009C01A80704710E000E0F4000020014B188000
|
||||
S315080009D0704700BFF400002010B5FFF7E3FF054B92
|
||||
S315080009E0054A00205A60052298601A60BDE8104042
|
||||
S315080009F0FFF7ECBF10E000E03F19010008B5FFF76C
|
||||
S31508000A00D7FF014B188808BDF4000020034B044AA1
|
||||
S31508000A105A60044A5A603422DA607047002002405D
|
||||
S31508000A2023016745AB89EFCD024B1A6942F0800274
|
||||
S31508000A301A6170470020024070B500240646254614
|
||||
S31508000A40FFF7DBFE094B1A59964209D3191949686B
|
||||
S31508000A505218964204D20C2202FB0533187A70BD4E
|
||||
S31508000A600C340135B42CEBD1FF2070BDA80E00085C
|
||||
S31508000A70F8B504460068FFF7DFFFFF2838D0FFF710
|
||||
S31508000A80C5FF1D4BDD6815F0010502D0FFF7CCFF49
|
||||
S31508000A902EE01A6942F001021A61234653F8042B24
|
||||
S31508000AA05E59AF18B3B2AB5201E0FFF7A6FE124B80
|
||||
S31508000AB0DB6813F0010FF8D1330C7B8001E0FFF7F8
|
||||
S31508000AC09CFE0D4BDB6813F00103F8D13A68B2427D
|
||||
S31508000AD005D10435B5F5007FDFD1012400E01C46B9
|
||||
S31508000AE0054B1A6922F001021A61FFF79DFF00E023
|
||||
S31508000AF000242046F8BD00BF00200240F8B50A4D84
|
||||
S31508000B00074600242E46FFF778FE2B7ABB4203D110
|
||||
S31508000B100C235C433059F8BD01340C350F2CF2D147
|
||||
S31508000B204FF0FF30F8BD00BFA80E0008CA05D20D69
|
||||
S31508000B3008B552B902688A4209D040F8041B4FF436
|
||||
S31508000B400072FFF777FE012008BD002008BD0120CE
|
||||
S31508000B5008BD000038B50D4B044698420D4606D030
|
||||
S31508000B600B4A914205D0FFF783FF58B102E0094CC2
|
||||
S31508000B7000E01C4620462946FFF7D8FF002808BF94
|
||||
S31508000B80002400E00446204638BD00BFF8000020D7
|
||||
S31508000B9000200008FC0200202DE9F0419846036871
|
||||
S31508000BA021F4FE77B3F1FF3F04460D46164627F0BB
|
||||
S31508000BB0030703D13946FFF7B9FF58B32368BB4289
|
||||
S31508000BC005D020463946FFF7C5FF0446F0B123682D
|
||||
S31508000BD0ED1A65190435FFF710FE231DEB1AB3F558
|
||||
S31508000BE0007F07D3204607F50071FFF7B3FF0446D9
|
||||
S31508000BF060B1051D16F8013B08F1FF381FFA88F8A1
|
||||
S31508000C002B70B8F1000F04D00135E4E72046BDE8A3
|
||||
S31508000C10F0810120BDE8F081034A4FF0FF331360ED
|
||||
S31508000C20024A1360704700BFFC020020F80000204B
|
||||
S31508000C3070B504460E461546FFF7FEFEFF2815D08A
|
||||
S31508000C40601E8019FFF7F8FEFF280FD024F4FE7304
|
||||
S31508000C50074A23F0030393420CBF06480648B3B27B
|
||||
S31508000C6021462A46BDE87040FFF796BF002070BDB2
|
||||
S31508000C7000200008F8000020FC0200202DE9F843B7
|
||||
S31508000C8004460E46FFF7D8FE0546601E8019FFF794
|
||||
S31508000C90D3FEFF2D044655D0FF2856D0854251D89D
|
||||
S31508000CA0002D4CD00F284DD8FFF7B0FE284BDE6834
|
||||
S31508000CB016F0010602D0FFF7B7FE43E01A69284688
|
||||
S31508000CC042F002021A61FFF719FF05462046FFF7B0
|
||||
S31508000CD015FF204F8046B946FFF78FFD3B7AA342A2
|
||||
S31508000CE004D10C2303FB0696736804E001360C371F
|
||||
S31508000CF00F2EF1D10023C5EB0806F618B60AB6B2D0
|
||||
S31508000D00002410E05D611A6942F040021A6101E0B0
|
||||
S31508000D10FFF773FD0E4BDB6813F0010FF8D10134B2
|
||||
S31508000D20A4B205F58065B442094BEBD31A6922F0E3
|
||||
S31508000D3002021A61FFF778FE0120BDE8F88328460B
|
||||
S31508000D40BDE8F8830020BDE8F8830020BDE8F883F5
|
||||
S31508000D5000200240A80E00080D4B1868043B1B68CB
|
||||
S31508000D60C0180C4B1B68C0180B4B1B68C0180B4BE4
|
||||
S31508000D701B68C0180A4B1B68C0180A4B1B68C018AA
|
||||
S31508000D80094B1B68C018D0F1010038BF0020704716
|
||||
S31508000D9004200008082000080C200008102000087D
|
||||
S31508000DA01420000818200008502100080F4A13B51F
|
||||
S31508000DB0D1689468131D52686418A418DA68A418D0
|
||||
S31508000DC01A69A4185A699B69A418E418644201941C
|
||||
S31508000DD0FFF7C2FF844206D004210DEB0102044846
|
||||
S31508000DE0FFF726FF00E001201CBD00BFF800002029
|
||||
S31508000DF0502100080A4808B50368B3F1FF3F02D03E
|
||||
S31508000E00FFF736FE58B107480368B3F1FF3F05D030
|
||||
S31508000E10FFF72EFE003818BF012008BD012008BDC7
|
||||
S31508000E20F8000020FC02002001483621FFF7E6BC46
|
||||
S31508000E305C0F000872B60A4A0A4B03E052F8041B14
|
||||
S31508000E4043F8041B08498B42F8D3084808494FF071
|
||||
S31508000E5000028842B8BF40F8042BFADBFFF7A8B9AE
|
||||
S31508000E60870F00080000002014000020140000204E
|
||||
S31508000E70000500206D61696E2E63004F70656E4235
|
||||
S31508000E804C54002E2E2F2E2E2F2E2E2F536F75726A
|
||||
S31508000E9063652F41524D434D335F53544D33322FC3
|
||||
S31508000EA0756172742E63000000200008002000009F
|
||||
S31508000EB001000000004000080020000002000000B9
|
||||
S31508000EC00060000800200000030000000080000801
|
||||
S31508000ED0002000000400000000A000080020000018
|
||||
S31508000EE00500000000C00008002000000600000001
|
||||
S31508000EF000E00008002000000700000000000108CC
|
||||
S31508000F000020000008000000002001080020000062
|
||||
S31508000F100900000000400108002000000A00000047
|
||||
S31508000F2000600108002000000B0000000080010896
|
||||
S31508000F30002000000C00000000A0010800200000AE
|
||||
S31508000F400D00000000C00108002000000E0000008F
|
||||
S31508000F5000E00108002000000F0000002E2E2F2EB2
|
||||
S31508000F602E2F2E2E2F536F757263652F41524D43C8
|
||||
S31508000F704D335F53544D33322F4743432F766563C2
|
||||
S30C08000F80746F72732E630003
|
||||
S31508000F870000000000000000010203040607080924
|
||||
S30908000F9700A24A0458
|
||||
S315080000000006002059130008451300084513000888
|
||||
S315080000104513000845130008451300084513000852
|
||||
S315080000204513000845130008451300084513000842
|
||||
S315080000304513000845130008451300084513000832
|
||||
S315080000404513000845130008451300084513000822
|
||||
S315080000504513000845130008451300084513000812
|
||||
S315080000604513000845130008451300084513000802
|
||||
S3150800007045130008451300084513000845130008F2
|
||||
S3150800008045130008451300084513000845130008E2
|
||||
S3150800009045130008451300084513000845130008D2
|
||||
S315080000A045130008451300084513000845130008C2
|
||||
S315080000B045130008451300084513000845130008B2
|
||||
S315080000C045130008451300084513000845130008A2
|
||||
S315080000D04513000845130008451300084513000892
|
||||
S315080000E04513000845130008451300084513000882
|
||||
S315080000F04513000845130008451300084513000872
|
||||
S315080001004513000845130008451300084513000861
|
||||
S315080001104513000845130008451300084513000851
|
||||
S315080001204513000845130008451300084513000841
|
||||
S315080001304513000845130008451300084513000831
|
||||
S315080001404513000845130008451300084513000821
|
||||
S3150800015008B572B617481849016018498D4640F225
|
||||
S315080001600002C2F2000240F21403C2F200039A42ED
|
||||
S3150800017011D241F2C842C0F6000240F20003C2F2B0
|
||||
S31508000180000340F21400C2F2000052F8041B43F8C0
|
||||
S31508000190041B8342F9D30A480A494FF000028842F1
|
||||
S315080001A0B8BF40F8042BFADB00F066FA00F00CF84A
|
||||
S315080001B008BD000008ED00E0000000080006002069
|
||||
S315080001C0140000200005002000B583B04FF000039E
|
||||
S315080001D0019300934FF48053C4F202031A6842F065
|
||||
S315080001E001021A6059684FF00002CFF6FF0201EAD1
|
||||
S315080001F002025A601A6822F0847222F480321A6067
|
||||
S315080002001A6822F480221A605A6822F4FE025A609A
|
||||
S315080002104FF41F029A601A6842F480321A604FF44B
|
||||
S315080002208053C4F2020340F2DC52196801F400312B
|
||||
S315080002300091019901F101010191009911B9019902
|
||||
S315080002409142F2D14FF48053C4F202031B6813F4AF
|
||||
S31508000250003F07D141F2B430C0F600004FF06F01FD
|
||||
S3150800026000F05CFC4FF40053C4F202031A6842F033
|
||||
S3150800027010021A601A6822F003021A601A6842F01D
|
||||
S3150800028002021A604FF48053C4F202035A685A6095
|
||||
S315080002905A6842F400525A605A6842F480625A60B8
|
||||
S315080002A05A6822F47C125A605A6842F4E8125A6074
|
||||
S315080002B01A6842F080721A604FF48053C4F202033F
|
||||
S315080002C01A6812F0007FFBD04FF48053C4F2020381
|
||||
S315080002D05A6822F003025A605A6842F002025A60CB
|
||||
S315080002E04FF48053C4F202035A6802F00C02082A3B
|
||||
S315080002F0FAD14FF48053C4F20203DA6942F40032A9
|
||||
S31508000300DA619A6942F005029A614FF40063C4F211
|
||||
S3150800031001031A6822F470621A601A6842F430629D
|
||||
S315080003201A601A6822F470421A601A6842F4804207
|
||||
S315080003301A6000F05DF900F065F9FCE7EFF3098053
|
||||
S315080003400046704780F30988704700BFEFF30880BE
|
||||
S315080003500046704780F30888704700BFEFF31280A5
|
||||
S31508000360704700BF80F31188704700BFEFF3108015
|
||||
S31508000370704700BF80F31088704700BFEFF3138003
|
||||
S31508000380704700BF80F31388704700BFEFF31480EF
|
||||
S31508000390704700BF80F31488704700BF00BA7047E3
|
||||
S315080003A040BA7047C0BA704790FAA0F0704700BFCD
|
||||
S315080003B0D0E84F0FC0B27047D0E85F0F80B27047E1
|
||||
S315080003C050E8000F704700BFC1E8400F704700BFF4
|
||||
S315080003D0C1E8500F704700BF41E80000704700BFF2
|
||||
S315080003E082B04FF48053C4F202031A6842F0010245
|
||||
S315080003F01A6059684FF00002CFF6FF0201EA0202BE
|
||||
S315080004005A601A6822F0847222F480321A601A68D6
|
||||
S3150800041022F480221A605A6822F4FE025A604FF4C7
|
||||
S315080004201F029A604FF00002019200921A6842F485
|
||||
S3150800043080321A604FF48052C4F20202136803F441
|
||||
S3150800044000330093019B03F101030193009B1BB941
|
||||
S31508000450019BB3F5A06FF1D14FF48053C4F20203A8
|
||||
S315080004601B6813F4003F14BF012300230093009B6D
|
||||
S31508000470012B44D14FF40053C4F202031A6842F028
|
||||
S3150800048010021A601A6822F003021A601A6842F00B
|
||||
S3150800049002021A604FF48053C4F202035A685A6083
|
||||
S315080004A05A685A605A6842F480625A605A6822F456
|
||||
S315080004B07C125A605A6842F4E8125A601A6842F086
|
||||
S315080004C080721A604FF48052C4F20202136813F065
|
||||
S315080004D0007FFBD04FF48053C4F202035A6822F01F
|
||||
S315080004E003025A605A6842F002025A604FF4805278
|
||||
S315080004F0C4F20202536803F00C03082BFAD14FF436
|
||||
S315080005006D43CEF200034FF000629A6002B0704766
|
||||
S315080005104FF48053C4F202035B6803F00C03042B08
|
||||
S315080005200DD0082B15D0002B44D140F21003C2F28F
|
||||
S3150800053000034FF49052C0F27A021A6043E040F288
|
||||
S315080005401003C2F200034FF49052C0F27A021A6006
|
||||
S3150800055039E04FF48053C4F202035A685B68C2F369
|
||||
S31508000560834202F1020213F4803F0BD140F21003DA
|
||||
S31508000570C2F200034FF41061C0F23D0101FB02F222
|
||||
S315080005801A6020E04FF48053C4F202035B6813F448
|
||||
S31508000590003F40F21003C2F2000319BF4FF4106186
|
||||
S315080005A0C0F23D014FF49051C0F27A0101FB02F20C
|
||||
S315080005B01A6008E040F21003C2F200034FF49052AA
|
||||
S315080005C0C0F27A021A604FF48053C4F202035A68E2
|
||||
S315080005D0C2F3031240F20003C2F200039A5C40F22F
|
||||
S315080005E01003C2F20003196821FA02F21A60704772
|
||||
S315080005F008B500F08FFA00F07FFA00F09DFB00F0D6
|
||||
S3150800060009F808BD08B500F087FA00F01DF800F0F3
|
||||
S3150800061057FA08BD00B583B04FF0FF038DF80430D4
|
||||
S315080006204FF000038DF8053000F04EF800F0E4FABC
|
||||
S3150800063040F21403C2F200031B78012B02D101A871
|
||||
S3150800064000F066F803B000BD08B540F21800C2F223
|
||||
S31508000650000000F01FFB012805D140F21800C2F285
|
||||
S31508000660000000F055F808BD08B5C9B200F0DAFA7E
|
||||
S3150800067000F044F808BD00BF40F21403C2F20003BC
|
||||
S315080006804FF001021A70704740F21403C2F20003D9
|
||||
S315080006901878704708B500F027F808BD40F25803E7
|
||||
S315080006A0C2F200034FF000025A70704740F2580336
|
||||
S315080006B0C2F200034FF0FE02DA7018714FF0020220
|
||||
S315080006C0A3F84420704700BF40F25803C2F2000363
|
||||
S315080006D04FF000021A709A6483F84320A3F8442066
|
||||
S315080006E09A705A70704700BF40F25803C2F200036E
|
||||
S315080006F01878003818BF0120704700BF40F2580329
|
||||
S31508000700C2F200034FF0000283F84320704700BF8F
|
||||
S3150800071038B504460278FF2A1DD1FFF7BFFF40F21D
|
||||
S315080007205803C2F200034FF001021A704FF0FF019E
|
||||
S31508000730D9704FF0100119714FF0000159714FF03F
|
||||
S3150800074040009871D87119725A729A724FF008025D
|
||||
S31508000750A3F8442098E140F25803C2F200031B783C
|
||||
S31508000760012B40F0AB81A2F1C902352A00F288813B
|
||||
S31508000770DFE812F0EC008601860181018601860118
|
||||
S3150800078073010D015901430186018601860186011F
|
||||
S315080007908601860186018601860186018601860113
|
||||
S315080007A08601860186018601860186018601860103
|
||||
S315080007B086018601860186018601860186018601F3
|
||||
S315080007C0860186018601860182005400360074007F
|
||||
S315080007D0860186018601A8008601C200C700DB00E3
|
||||
S315080007E042783F2A04D94FF02200FFF75FFF4BE11A
|
||||
S315080007F040F25805C2F2000505F10400A96C00F0A4
|
||||
S31508000800ADF94FF0FF03EB706278AB6CD318AB64AD
|
||||
S31508000810637803F10103A5F8443035E143783F2BAB
|
||||
S3150800082004D94FF02200FFF741FF2DE1416840F25D
|
||||
S315080008305805C2F20005A96405F10400627800F0C3
|
||||
S315080008408DF94FF0FF03EB706278AB6CD318AB648D
|
||||
S31508000850637803F10103A5F8443015E140F2580323
|
||||
S31508000860C2F200034FF0FF02DA7042689A644FF052
|
||||
S315080008700102A3F8442007E140F25805C2F2000538
|
||||
S315080008804FF0FF03EB70A96C43684FF000023BB1D1
|
||||
S315080008904FF0000211F8010B1218D2B2013BF9D140
|
||||
S315080008A0C5F8072040F25803C2F200034FF00102D0
|
||||
S315080008B01A714FF000025A719A714FF00802A3F8A4
|
||||
S315080008C04420E1E040F25803C2F200034FF0FF0271
|
||||
S315080008D0DA7041F2BC32C0F600029A644FF00002A8
|
||||
S315080008E01A715A719A714FF00702C3F807204FF030
|
||||
S315080008F00802A3F84420C7E04FF00000FFF7D6FE31
|
||||
S31508000900C2E040F25803C2F200034FF0FF02DA7069
|
||||
S315080009104FF000021A71597859719A71DA711A7280
|
||||
S315080009204FF00602A3F84420AEE040F25804C2F2A3
|
||||
S3150800093000044FF000032370FFF7B0FE4FF0FF03EB
|
||||
S31508000940E3704FF00103A4F844309DE040F25803E9
|
||||
S31508000950C2F20003986C4FF03F0104F1010200F067
|
||||
S31508000960EFF920B94FF03100FFF7A0FE8CE040F216
|
||||
S315080009705803C2F200034FF0FF02DA709A6C02F1D4
|
||||
S315080009803F029A644FF00102A3F844207CE04378C2
|
||||
S315080009903E2B04D94FF02200FFF788FE74E040F2A0
|
||||
S315080009A05803C2F200034FF0FF02DA704FF001025B
|
||||
S315080009B0A3F84420417841B900F0CEF9002863D164
|
||||
S315080009C04FF03100FFF772FE5EE040F25803C2F2C4
|
||||
S315080009D00003986C04F1020200F0B2F920B94FF056
|
||||
S315080009E03100FFF763FE4FE040F25803C2F20003FE
|
||||
S315080009F061789A6C8A189A6446E040F25803C2F203
|
||||
S31508000A0000034FF0FF02DA704FF000021A715A71B4
|
||||
S31508000A104FF040019971DA711A725A724FF0070253
|
||||
S31508000A20A3F8442030E040F25803C2F20003986C61
|
||||
S31508000A30616800F089F920B94FF03100FFF736FEFA
|
||||
S31508000A4022E040F25803C2F200034FF0FF02DA70C8
|
||||
S31508000A504FF00102A3F8442016E000F091F840F2A6
|
||||
S31508000A605803C2F200034FF0FF02DA704FF001029A
|
||||
S31508000A70A3F8442008E04FF03100FFF717FE03E023
|
||||
S31508000A804FF02000FFF712FE40F25803C2F20003AF
|
||||
S31508000A9093F84330012B03D14FF01000FFF706FE01
|
||||
S31508000AA040F25803C2F200034FF0010283F84320D4
|
||||
S31508000AB003F10300B3F84410FFF7D6FD38BD00BFB5
|
||||
S31508000AC008B5FFF7E7FD012815D040F2A403C2F2E6
|
||||
S31508000AD000031B78012B0ED100F07EF931280AD9C4
|
||||
S31508000AE040F2A403C2F200034FF000021A7000F0AD
|
||||
S31508000AF03DF900F021F808BD08B540F2A403C2F29A
|
||||
S31508000B0000034FF001021A7000F050F9FFF7D8FF02
|
||||
S31508000B1008BD00BF704700BF704700BF08B540F268
|
||||
S31508000B20A803C2F20003186040F2AC03C2F2000345
|
||||
S31508000B301960FFF7F1FFFCE708B500F009F960B1A5
|
||||
S31508000B404EF60853CEF200034FF400521A6042F2F2
|
||||
S31508000B500403C0F600031B68984708BD70B50D4628
|
||||
S31508000B6014465AB1064615F8013B06F8013BFFF74D
|
||||
S31508000B70D3FF04F1FF34A4B2002CF4D170BD00BF3A
|
||||
S31508000B8008B500F0E9FB08BD4FF48843C4F200033A
|
||||
S31508000B901B8813F0200F1FBF4FF48843C4F20003CD
|
||||
S31508000BA09B88037014BF01200020704710B54FF4CE
|
||||
S31508000BB08843C4F200031B8813F0800F15D04FF446
|
||||
S31508000BC08843C4F2000398801B8813F0800F0FD166
|
||||
S31508000BD04FF48844C4F20004FFF79EFF238813F0FD
|
||||
S31508000BE0800FF9D04FF0010010BD4FF0000010BD86
|
||||
S31508000BF04FF0010010BD00BF4FF48843C4F2000354
|
||||
S31508000C004FF000021A819A811A829A821A8340F258
|
||||
S31508000C1071221A819A8992B242F4005242F00C0269
|
||||
S31508000C209A8170472DE9F04105460C46402907D9B7
|
||||
S31508000C3041F2C430C0F600004FF08801FFF76EFF9E
|
||||
S31508000C402046FFF7B3FF012807D041F2C430C0F6AB
|
||||
S31508000C5000004FF08B01FFF761FF2646BCB14FF04D
|
||||
S31508000C60000441F2C437C0F600074FF09308FFF7B7
|
||||
S31508000C7053FF285DFFF79AFF012803D038464146FF
|
||||
S31508000C80FFF74CFF04F10104A3B2B342EFD3BDE86A
|
||||
S31508000C90F08100BF38B5054640F2F503C2F20003FD
|
||||
S31508000CA01B78B3B940F2B000C2F20000FFF76CFF40
|
||||
S31508000CB0012836D140F2F503C2F200034FF00102D3
|
||||
S31508000CC01A7040F2F403C2F200034FF000001870E5
|
||||
S31508000CD038BD40F2F403C2F200031C781548201808
|
||||
S31508000CE0FFF752FF01281FD104F10104E2B240F2D6
|
||||
S31508000CF0F403C2F200031A7040F2B003C2F2000312
|
||||
S31508000D001B78934213D128460A49FFF727FF40F27A
|
||||
S31508000D10F503C2F200034FF000021A704FF001000B
|
||||
S31508000D2038BD4FF0000038BD4FF0000038BD4FF019
|
||||
S31508000D30000038BDB100002008B500F0A9F908BDCB
|
||||
S31508000D4008B500F0B3F908BD08B500F0DBF908BD31
|
||||
S31508000D5008B500F071FA08BD08B500F0A1FA10B19F
|
||||
S31508000D6000F0C8FA08BD4FF0000008BD4EF21003A7
|
||||
S31508000D70CEF200034FF000021A6070474EF21003DD
|
||||
S31508000D80CEF200031B6813F4803F1FBF40F2F60340
|
||||
S31508000D90C2F200031A88013218BF1A80704700BFD2
|
||||
S31508000DA040F2F603C2F200031880704708B5FFF751
|
||||
S31508000DB0DDFF4EF21003CEF2000341F63F12C0F2F9
|
||||
S31508000DC001025A604FF0000098604FF005021A6061
|
||||
S31508000DD0FFF7E6FF08BD00BF08B5FFF7CFFF40F2F3
|
||||
S31508000DE0F603C2F20003188808BD00BF4FF400538B
|
||||
S31508000DF0C4F2020340F22312C4F267525A6048F65C
|
||||
S31508000E00AB12CCF6EF525A604FF03402DA607047F4
|
||||
S31508000E104FF40053C4F202031A6942F080021A61C1
|
||||
S31508000E20704700BFF8B507464FF00004254641F263
|
||||
S31508000E30E836C0F60006FFF76FFE3359BB420ED8F8
|
||||
S31508000E40311949685B189F4209D241F2E833C0F666
|
||||
S31508000E50000305EB450203EB8203187AF8BD05F19A
|
||||
S31508000E60010504F10C04B42CE5D14FF0FF00F8BDE0
|
||||
S31508000E702DE9F84380460068FFF7D4FFFF2808BF2E
|
||||
S31508000E80002453D0FFF7B2FF4FF40053C4F2020315
|
||||
S31508000E90DB6813F0010F04D0FFF7BAFF4FF0000428
|
||||
S31508000EA044E04FF40053C4F202031A6942F0010207
|
||||
S31508000EB01A614FF0000508F104094FF40054C4F212
|
||||
S31508000EC00204D8F80030EF1859F80560B2B2EA52B1
|
||||
S31508000ED0E36813F0010F05D0FFF71EFEE36813F071
|
||||
S31508000EE0010FF9D14FEA16437B80E36813F0010F2F
|
||||
S31508000EF005D0FFF711FEE36813F0010FF9D13B683F
|
||||
S31508000F00B34207D105F10405B5F5007FD9D14FF0F5
|
||||
S31508000F10010401E04FF000044FF40053C4F2020349
|
||||
S31508000F201A6922F001021A61FFF772FF2046BDE82E
|
||||
S31508000F30F88300BF70B5064641F2E835C0F60005ED
|
||||
S31508000F404FF00004FFF7E8FD2B7AB34208D141F2CF
|
||||
S31508000F50E833C0F6000304EB440253F8220070BDE0
|
||||
S31508000F6004F1010405F10C050F2CEBD14FF0FF300D
|
||||
S31508000F7070BD00BF08B54FEAC1534FEAD3535BB9FA
|
||||
S31508000F8003688B420BD040F8041B4FF40072FFF73E
|
||||
S31508000F90E5FD4FF0010008BD4FF0000008BD4FF019
|
||||
S31508000FA0010008BD38B504460D4640F2F803C2F202
|
||||
S31508000FB00003984209D04FF40053C0F60003994243
|
||||
S31508000FC008D0FFF755FF88B108E040F2FC24C2F2CA
|
||||
S31508000FD0000403E040F2F804C2F200042046294661
|
||||
S31508000FE0FFF7C8FF002808BF002401E04FF00004FF
|
||||
S31508000FF0204638BD2DE9F84305460C4617461E46D9
|
||||
S315080010004FEA51294FEA49290368B3F1FF3F03D153
|
||||
S315080010104946FFF7AFFF50B32B684B4505D0284626
|
||||
S315080010204946FFF7BFFF054628B32B68E41A2C1973
|
||||
S3150800103004F1040440F2FF1809F50079FFF76CFD86
|
||||
S3150800104005F10403E31A434507D928464946FFF73D
|
||||
S31508001050A9FF054698B100F1040417F8013B23706F
|
||||
S3150800106006F1FF36B6B276B104F10104E6E74FF0B1
|
||||
S315080010700000BDE8F8834FF00000BDE8F8834FF0A4
|
||||
S315080010800000BDE8F8834FF00100BDE8F88300BF13
|
||||
S3150800109040F2FC23C2F200034FF0FF321A6040F21E
|
||||
S315080010A0F803C2F200031A60704700BF70B5044621
|
||||
S315080010B00D461646FFF7B6FEFF281DD004F1FF3091
|
||||
S315080010C04019FFF7AFFEFF2819D04FEA54224FF414
|
||||
S315080010D00053C0F60003B3EB422F07BF40F2F800F7
|
||||
S315080010E0C2F2000040F2FC20C2F20000214632465D
|
||||
S315080010F0ABB2FFF77FFF70BD4FF0000070BD4FF039
|
||||
S31508001100000070BD2DE9F04105460E46FFF78AFE40
|
||||
S31508001110044605F1FF308019FFF784FE0546FF28CF
|
||||
S3150800112014BF00230123FF2C08BF43F00103002B43
|
||||
S315080011307ED1844270D8002C72D00F2874D8FFF75D
|
||||
S3150800114055FE4FF40053C4F20203DB6813F0010F97
|
||||
S3150800115005D0FFF75DFE4FF00000BDE8F0814FF4C3
|
||||
S315080011600053C4F202031A6942F002021A612046C9
|
||||
S31508001170FFF7E0FE07462846FFF7DCFE804641F209
|
||||
S31508001180E836C0F600064FF00004FFF7C5FC337AD0
|
||||
S31508001190AB4209D141F2E833C0F6000304EB44023E
|
||||
S315080011A003EB82035E6807E004F1010406F10C060E
|
||||
S315080011B00F2CEAD14FF00006C7EB08084644C6F3E1
|
||||
S315080011C08F26DEB14FF000054FF40054C4F2020436
|
||||
S315080011D06761236943F040032361E36813F0010F55
|
||||
S315080011E005D0FFF799FCE36813F0010FF9D105F173
|
||||
S315080011F00105ADB207F58067AE42E9D84FF4005352
|
||||
S31508001200C4F202031A6922F002021A61FFF700FE0D
|
||||
S315080012104FF00100BDE8F0814FF00000BDE8F08115
|
||||
S315080012204FF00000BDE8F0814FF00000BDE8F08106
|
||||
S315080012304FF00000BDE8F08142F20402C0F6000259
|
||||
S315080012404FF40053C0F6000310681B68C01842F23A
|
||||
S315080012500803C0F600031B68C01842F20C03C0F668
|
||||
S3150800126000031B68C01842F21003C0F600031B688F
|
||||
S31508001270C01842F21403C0F600031B68C01842F2F5
|
||||
S315080012801803C0F600031B68C01842F25013C0F6D4
|
||||
S3150800129000031B68C018D0F1010038BF0020704752
|
||||
S315080012A010B582B040F2F802C2F2000202F104035D
|
||||
S315080012B09468D16864185268A418DA68A4181A6978
|
||||
S315080012C0A4185A69A4189B69E418C4F10004019487
|
||||
S315080012D0FFF7B2FF844208BF012009D042F250103E
|
||||
S315080012E0C0F600004FF004010DEB0102FFF7DEFE29
|
||||
S315080012F002B010BD08B540F2F803C2F200031B683D
|
||||
S31508001300B3F1FF3F06D040F2F800C2F20000FFF743
|
||||
S31508001310AFFD88B140F2FC23C2F200031B68B3F1AB
|
||||
S31508001320FF3F0CD040F2FC20C2F20000FFF7A0FD00
|
||||
S31508001330003818BF012008BD4FF0000008BD4FF067
|
||||
S31508001340010008BD08B541F29C40C0F600004FF008
|
||||
S315080013503601FFF7E3FB08BD08B572B640F2000296
|
||||
S31508001360C2F2000240F21403C2F200039A4211D2FA
|
||||
S3150800137041F2C842C0F6000240F20003C2F200037E
|
||||
S3150800138040F21400C2F2000052F8041B43F8041B92
|
||||
S315080013908342F9D3054806494FF000028842B8BF90
|
||||
S315080013A040F8042BFADBFEF70FFF08BD14000020F7
|
||||
S315080013B0000500206D61696E2E6300004F70656E32
|
||||
S315080013C0424C54002E2E2F2E2E2F2E2E2F536F7555
|
||||
S315080013D07263652F41524D434D335F53544D33323B
|
||||
S315080013E02F756172742E630000200008002000002B
|
||||
S315080013F00100000000400008002000000200000074
|
||||
S3150800140000600008002000000300000000800008BB
|
||||
S31508001410002000000400000000A0000800200000D2
|
||||
S315080014200500000000C000080020000006000000BB
|
||||
S3150800143000E0000800200000070000000000010886
|
||||
S31508001440002000000800000000200108002000001D
|
||||
S315080014500900000000400108002000000A00000002
|
||||
S3150800146000600108002000000B0000000080010851
|
||||
S31508001470002000000C00000000A001080020000069
|
||||
S315080014800D00000000C00108002000000E0000004A
|
||||
S3150800149000E00108002000000F0000002E2E2F2E6D
|
||||
S315080014A02E2F2E2E2F536F757263652F41524D4383
|
||||
S315080014B04D335F53544D33322F4743432F7665637D
|
||||
S30D080014C0746F72732E630000BD
|
||||
S315080014C800000000000000000102030406070809DE
|
||||
S309080014D800A24A0412
|
||||
S70508000000F2
|
||||
|
|
|
@ -97,20 +97,20 @@ void NvmInitHook(void)
|
|||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** data pointer to the data buffer.
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the write
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the write
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver write
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
|
||||
** been written yet.
|
||||
**
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
} /*** end of NvmWriteHook ***/
|
||||
|
||||
|
||||
|
@ -118,19 +118,19 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
** NAME: NvmEraseHook
|
||||
** PARAMETER: addr start address
|
||||
** len length in bytes
|
||||
** RETURN VALUE: BTL_NVM_OKAY if successful, BTL_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BTL_NVM_ERROR is the erase
|
||||
** RETURN VALUE: BLT_NVM_OKAY if successful, BLT_NVM_NOT_IN_RANGE if the address is
|
||||
** not within the supported memory range, or BLT_NVM_ERROR is the erase
|
||||
** operation failed.
|
||||
** DESCRIPTION: Callback that gets called at the start of the NVM driver erase
|
||||
** routine. It allows additional memory to be operated on. If the address
|
||||
** is not within the range of the additional memory, then
|
||||
** BTL_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
|
||||
** hasn't been erased yet.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
return BTL_NVM_NOT_IN_RANGE;
|
||||
return BLT_NVM_NOT_IN_RANGE;
|
||||
} /*** end of NvmEraseHook ***/
|
||||
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ LIB_PATH = -L../../../Source/ARMCM3_STM32/GCC/
|
|||
#|---------------------------------------------------------------------------------------|
|
||||
#| Options for compiler binaries |
|
||||
#|---------------------------------------------------------------------------------------|
|
||||
CFLAGS = -g -D inline= -mthumb -mcpu=cortex-m3 -Os -T memory.x
|
||||
CFLAGS = -g -D inline= -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
|
||||
|
|
|
@ -79,7 +79,7 @@ void NvmInit(void)
|
|||
blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
blt_int8u result = BTL_NVM_NOT_IN_RANGE;
|
||||
blt_int8u result = BLT_NVM_NOT_IN_RANGE;
|
||||
#endif
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
|
@ -89,14 +89,14 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
result = NvmWriteHook(addr, len, data);
|
||||
|
||||
/* process the return code */
|
||||
if (result == BTL_NVM_OKAY)
|
||||
if (result == BLT_NVM_OKAY)
|
||||
{
|
||||
/* data was within range of the additionally supported memory and succesfully
|
||||
* programmed, so we are all done.
|
||||
*/
|
||||
return BLT_TRUE;
|
||||
}
|
||||
else if (result == BTL_NVM_ERROR)
|
||||
else if (result == BLT_NVM_ERROR)
|
||||
{
|
||||
/* data was within range of the additionally supported memory and attempted to be
|
||||
* programmed, but an error occurred, so we can't continue.
|
||||
|
@ -105,7 +105,7 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* still here to the internal driver should try and perform the program operation */
|
||||
/* still here so the internal driver should try and perform the program operation */
|
||||
return FlashWrite(addr, len, data);
|
||||
} /*** end of NvmWrite ***/
|
||||
|
||||
|
@ -121,7 +121,7 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
blt_int8u result = BTL_NVM_NOT_IN_RANGE;
|
||||
blt_int8u result = BLT_NVM_NOT_IN_RANGE;
|
||||
#endif
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
|
@ -131,14 +131,14 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
|||
result = NvmEraseHook(addr, len);
|
||||
|
||||
/* process the return code */
|
||||
if (result == BTL_NVM_OKAY)
|
||||
if (result == BLT_NVM_OKAY)
|
||||
{
|
||||
/* address was within range of the additionally supported memory and succesfully
|
||||
* erased, so we are all done.
|
||||
*/
|
||||
return BLT_TRUE;
|
||||
}
|
||||
else if (result == BTL_NVM_ERROR)
|
||||
else if (result == BLT_NVM_ERROR)
|
||||
{
|
||||
/* address was within range of the additionally supported memory and attempted to be
|
||||
* erased, but an error occurred, so we can't continue.
|
||||
|
@ -147,7 +147,7 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* still here to the internal driver should try and perform the erase operation */
|
||||
/* still here so the internal driver should try and perform the erase operation */
|
||||
return FlashErase(addr, len);
|
||||
} /*** end of NvmErase ***/
|
||||
|
||||
|
|
|
@ -51,9 +51,9 @@ blt_bool NvmDone(void);
|
|||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
/* return codes for hook function NvmWrite/Erase */
|
||||
#define BTL_NVM_ERROR (0x00) /* return code for success */
|
||||
#define BTL_NVM_OKAY (0x01) /* return code for error */
|
||||
#define BTL_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */
|
||||
#define BLT_NVM_ERROR (0x00) /* return code for success */
|
||||
#define BLT_NVM_OKAY (0x01) /* return code for error */
|
||||
#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */
|
||||
|
||||
|
||||
#endif /* NVM_H */
|
||||
|
|
|
@ -79,7 +79,7 @@ void NvmInit(void)
|
|||
blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
||||
{
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
blt_int8u result = BTL_NVM_NOT_IN_RANGE;
|
||||
blt_int8u result = BLT_NVM_NOT_IN_RANGE;
|
||||
#endif
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
|
@ -89,14 +89,14 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
result = NvmWriteHook(addr, len, data);
|
||||
|
||||
/* process the return code */
|
||||
if (result == BTL_NVM_OKAY)
|
||||
if (result == BLT_NVM_OKAY)
|
||||
{
|
||||
/* data was within range of the additionally supported memory and succesfully
|
||||
* programmed, so we are all done.
|
||||
*/
|
||||
return BLT_TRUE;
|
||||
}
|
||||
else if (result == BTL_NVM_ERROR)
|
||||
else if (result == BLT_NVM_ERROR)
|
||||
{
|
||||
/* data was within range of the additionally supported memory and attempted to be
|
||||
* programmed, but an error occurred, so we can't continue.
|
||||
|
@ -105,7 +105,7 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* still here to the internal driver should try and perform the program operation */
|
||||
/* still here so the internal driver should try and perform the program operation */
|
||||
return FlashWrite(addr, len, data);
|
||||
} /*** end of NvmWrite ***/
|
||||
|
||||
|
@ -121,7 +121,7 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
|
|||
blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
||||
{
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
blt_int8u result = BTL_NVM_NOT_IN_RANGE;
|
||||
blt_int8u result = BLT_NVM_NOT_IN_RANGE;
|
||||
#endif
|
||||
|
||||
#if (BOOT_NVM_HOOKS_ENABLE > 0)
|
||||
|
@ -131,14 +131,14 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
|||
result = NvmEraseHook(addr, len);
|
||||
|
||||
/* process the return code */
|
||||
if (result == BTL_NVM_OKAY)
|
||||
if (result == BLT_NVM_OKAY)
|
||||
{
|
||||
/* address was within range of the additionally supported memory and succesfully
|
||||
* erased, so we are all done.
|
||||
*/
|
||||
return BLT_TRUE;
|
||||
}
|
||||
else if (result == BTL_NVM_ERROR)
|
||||
else if (result == BLT_NVM_ERROR)
|
||||
{
|
||||
/* address was within range of the additionally supported memory and attempted to be
|
||||
* erased, but an error occurred, so we can't continue.
|
||||
|
@ -147,7 +147,7 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* still here to the internal driver should try and perform the erase operation */
|
||||
/* still here so the internal driver should try and perform the erase operation */
|
||||
return FlashErase(addr, len);
|
||||
} /*** end of NvmErase ***/
|
||||
|
||||
|
|
|
@ -51,9 +51,9 @@ blt_bool NvmDone(void);
|
|||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
/* return codes for hook function NvmWrite/Erase */
|
||||
#define BTL_NVM_ERROR (0x00) /* return code for success */
|
||||
#define BTL_NVM_OKAY (0x01) /* return code for error */
|
||||
#define BTL_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */
|
||||
#define BLT_NVM_ERROR (0x00) /* return code for success */
|
||||
#define BLT_NVM_OKAY (0x01) /* return code for error */
|
||||
#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */
|
||||
|
||||
|
||||
#endif /* NVM_H */
|
||||
|
|
Loading…
Reference in New Issue