- Added support for automatically generating the source code documentation with Doxygen.

- Converted all comments to the Doxygen format.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@53 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2013-07-31 15:48:23 +00:00
parent af1bce6b34
commit 284cfcae80
598 changed files with 33451 additions and 32551 deletions

304
Doc/doxygen/Doxyfile Normal file
View File

@ -0,0 +1,304 @@
# Doxyfile 1.5.5
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME =
PROJECT_NUMBER =
OUTPUT_DIRECTORY = ./output/
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH = C:/Windows/system32/
STRIP_FROM_INC_PATH =
SHORT_NAMES = YES
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./../../Target
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.d \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.py \
*.f90 \
*.f \
*.txt \
*.vhd \
*.vhdl
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */lib/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = ./
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
GENERATE_HTMLHELP = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = "BOOT_CPU_XTAL_SPEED_KHZ=12000" \
"BOOT_CPU_SYSTEM_SPEED_KHZ=168000" \
"BOOT_CPU_BYTE_ORDER_MOTOROLA=0" \
"BOOT_CPU_USER_PROGRAM_START_HOOK=1" \
"BOOT_COM_ENABLE=1" \
"BOOT_COM_UART_ENABLE=1" \
"BOOT_COM_UART_BAUDRATE=57600" \
"BOOT_COM_UART_TX_MAX_DATA=64" \
"BOOT_COM_UART_RX_MAX_DATA=64" \
"BOOT_COM_UART_CHANNEL_INDEX=0" \
"BOOT_COM_CAN_ENABLE=1" \
"BOOT_COM_CAN_BAUDRATE=500000" \
"BOOT_COM_CAN_TX_MSG_ID=0x7E1" \
"BOOT_COM_CAN_TX_MAX_DATA=8" \
"BOOT_COM_CAN_RX_MSG_ID=0x667" \
"BOOT_COM_CAN_RX_MAX_DATA=8" \
"BOOT_COM_USB_ENABLE=1" \
"BOOT_COM_USB_TX_MAX_DATA=63" \
"BOOT_COM_USB_TX_MAX_DATA=63" \
"BOOT_FILE_SYS_ENABLE=1" \
"BOOT_FILE_LOGGING_ENABLE=1" \
"BOOT_FILE_ERROR_HOOK_ENABLE=1" \
"BOOT_FILE_STARTED_HOOK_ENABLE=1" \
"BOOT_FILE_COMPLETED_HOOK_ENABLE=1" \
"BOOT_BACKDOOR_HOOKS_ENABLE=1" \
"BOOT_NVM_HOOKS_ENABLE=1" \
"BOOT_NVM_SIZE_KB=1024" \
"BOOT_COP_HOOKS_ENABLE=1"
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH = "C:/Program Files (x86)/Graphviz2.30/bin"
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 500
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View File

@ -0,0 +1,4 @@
"C:\Program Files\doxygen\bin\doxygen.exe" Doxyfile
start .\output\index.html

View File

@ -1,5 +1,5 @@
[sci]
port=3
port=7
baudrate=8
[xcp]
seedkey=

View File

@ -182,7 +182,7 @@ 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 0x1130
.text 0x00000370 0x111c
0x00000370 __text_start__ = .
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table)
.glue_7 0x00000000 0x0 linker stubs
@ -198,124 +198,124 @@ Linker script and memory map
.text.FlashSwitchBlock
0x000005b4 0x6c ARM Flash Debug/../../obj/flash.o
.text.FlashAddToBlock
0x00000620 0xdc ARM Flash Debug/../../obj/flash.o
0x00000620 0xcc ARM Flash Debug/../../obj/flash.o
.text.FlashInit
0x000006fc 0x20 ARM Flash Debug/../../obj/flash.o
0x000006fc FlashInit
0x000006ec 0x20 ARM Flash Debug/../../obj/flash.o
0x000006ec FlashInit
.text.FlashWrite
0x0000071c 0x6c ARM Flash Debug/../../obj/flash.o
0x0000071c FlashWrite
0x0000070c 0x68 ARM Flash Debug/../../obj/flash.o
0x0000070c FlashWrite
.text.FlashErase
0x00000788 0x130 ARM Flash Debug/../../obj/flash.o
0x00000788 FlashErase
0x00000774 0x130 ARM Flash Debug/../../obj/flash.o
0x00000774 FlashErase
.text.FlashWriteChecksum
0x000008b8 0x80 ARM Flash Debug/../../obj/flash.o
0x000008b8 FlashWriteChecksum
0x000008a4 0x80 ARM Flash Debug/../../obj/flash.o
0x000008a4 FlashWriteChecksum
.text.FlashVerifyChecksum
0x00000938 0x48 ARM Flash Debug/../../obj/flash.o
0x00000938 FlashVerifyChecksum
0x00000924 0x48 ARM Flash Debug/../../obj/flash.o
0x00000924 FlashVerifyChecksum
.text.FlashDone
0x00000980 0x5c ARM Flash Debug/../../obj/flash.o
0x00000980 FlashDone
0x0000096c 0x5c ARM Flash Debug/../../obj/flash.o
0x0000096c FlashDone
.text.CpuMemCopy
0x000009dc 0x44 ARM Flash Debug/../../obj/cpu.o
0x000009dc CpuMemCopy
0x000009c8 0x44 ARM Flash Debug/../../obj/cpu.o
0x000009c8 CpuMemCopy
.text.CpuStartUserProgram
0x00000a20 0x4c ARM Flash Debug/../../obj/cpu.o
0x00000a20 CpuStartUserProgram
0x00000a0c 0x4c ARM Flash Debug/../../obj/cpu.o
0x00000a0c CpuStartUserProgram
.text.CpuReset
0x00000a6c 0x10 ARM Flash Debug/../../obj/cpu.o
0x00000a6c CpuReset
.text.NvmInit 0x00000a7c 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a7c 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
0x00000a8c 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a8c NvmWrite
0x00000a78 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a78 NvmWrite
.text.NvmErase
0x00000a9c 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a9c NvmErase
0x00000a88 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a88 NvmErase
.text.NvmVerifyChecksum
0x00000aac 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000aac NvmVerifyChecksum
.text.NvmDone 0x00000abc 0x1c ARM Flash Debug/../../obj/nvm.o
0x00000abc NvmDone
0x00000a98 0x10 ARM Flash Debug/../../obj/nvm.o
0x00000a98 NvmVerifyChecksum
.text.NvmDone 0x00000aa8 0x1c ARM Flash Debug/../../obj/nvm.o
0x00000aa8 NvmDone
.text.TimerInit
0x00000ad8 0x48 ARM Flash Debug/../../obj/timer.o
0x00000ad8 TimerInit
0x00000ac4 0x48 ARM Flash Debug/../../obj/timer.o
0x00000ac4 TimerInit
.text.TimerReset
0x00000b20 0x20 ARM Flash Debug/../../obj/timer.o
0x00000b20 TimerReset
0x00000b0c 0x20 ARM Flash Debug/../../obj/timer.o
0x00000b0c TimerReset
.text.TimerUpdate
0x00000b40 0x38 ARM Flash Debug/../../obj/timer.o
0x00000b40 TimerUpdate
0x00000b2c 0x38 ARM Flash Debug/../../obj/timer.o
0x00000b2c TimerUpdate
.text.TimerGet
0x00000b78 0x1c ARM Flash Debug/../../obj/timer.o
0x00000b78 TimerGet
0x00000b64 0x1c ARM Flash Debug/../../obj/timer.o
0x00000b64 TimerGet
.text.UartReceiveByte
0x00000b94 0x28 ARM Flash Debug/../../obj/uart.o
0x00000b80 0x28 ARM Flash Debug/../../obj/uart.o
.text.UartTransmitByte
0x00000bbc 0x54 ARM Flash Debug/../../obj/uart.o
0x00000ba8 0x54 ARM Flash Debug/../../obj/uart.o
.text.UartInit
0x00000c10 0x40 ARM Flash Debug/../../obj/uart.o
0x00000c10 UartInit
0x00000bfc 0x40 ARM Flash Debug/../../obj/uart.o
0x00000bfc UartInit
.text.UartTransmitPacket
0x00000c50 0x84 ARM Flash Debug/../../obj/uart.o
0x00000c50 UartTransmitPacket
0x00000c3c 0x84 ARM Flash Debug/../../obj/uart.o
0x00000c3c UartTransmitPacket
.text.UartReceivePacket
0x00000cd4 0xc0 ARM Flash Debug/../../obj/uart.o
0x00000cd4 UartReceivePacket
0x00000cc0 0xc0 ARM Flash Debug/../../obj/uart.o
0x00000cc0 UartReceivePacket
.text.AssertFailure
0x00000d94 0x24 ARM Flash Debug/../../obj/assert.o
0x00000d94 AssertFailure
0x00000d80 0x24 ARM Flash Debug/../../obj/assert.o
0x00000d80 AssertFailure
.text.BackDoorCheck
0x00000db8 0x54 ARM Flash Debug/../../obj/backdoor.o
0x00000db8 BackDoorCheck
0x00000da4 0x54 ARM Flash Debug/../../obj/backdoor.o
0x00000da4 BackDoorCheck
.text.BackDoorInit
0x00000e0c 0x30 ARM Flash Debug/../../obj/backdoor.o
0x00000e0c BackDoorInit
0x00000df8 0x30 ARM Flash Debug/../../obj/backdoor.o
0x00000df8 BackDoorInit
.text.BootInit
0x00000e3c 0x20 ARM Flash Debug/../../obj/boot.o
0x00000e3c BootInit
0x00000e28 0x20 ARM Flash Debug/../../obj/boot.o
0x00000e28 BootInit
.text.BootTask
0x00000e5c 0x1c ARM Flash Debug/../../obj/boot.o
0x00000e5c BootTask
.text.ComInit 0x00000e78 0x44 ARM Flash Debug/../../obj/com.o
0x00000e78 ComInit
.text.ComTask 0x00000ebc 0x24 ARM Flash Debug/../../obj/com.o
0x00000ebc ComTask
.text.ComFree 0x00000ee0 0x4 ARM Flash Debug/../../obj/com.o
0x00000ee0 ComFree
0x00000e48 0x1c ARM Flash Debug/../../obj/boot.o
0x00000e48 BootTask
.text.ComInit 0x00000e64 0x44 ARM Flash Debug/../../obj/com.o
0x00000e64 ComInit
.text.ComTask 0x00000ea8 0x24 ARM Flash Debug/../../obj/com.o
0x00000ea8 ComTask
.text.ComFree 0x00000ecc 0x4 ARM Flash Debug/../../obj/com.o
0x00000ecc ComFree
.text.ComTransmitPacket
0x00000ee4 0x18 ARM Flash Debug/../../obj/com.o
0x00000ee4 ComTransmitPacket
0x00000ed0 0x18 ARM Flash Debug/../../obj/com.o
0x00000ed0 ComTransmitPacket
.text.ComSetConnectEntryState
0x00000efc 0x14 ARM Flash Debug/../../obj/com.o
0x00000efc ComSetConnectEntryState
0x00000ee8 0x14 ARM Flash Debug/../../obj/com.o
0x00000ee8 ComSetConnectEntryState
.text.ComIsConnected
0x00000f10 0x10 ARM Flash Debug/../../obj/com.o
0x00000f10 ComIsConnected
.text.CopInit 0x00000f20 0x4 ARM Flash Debug/../../obj/cop.o
0x00000f20 CopInit
0x00000efc 0x10 ARM Flash Debug/../../obj/com.o
0x00000efc ComIsConnected
.text.CopInit 0x00000f0c 0x4 ARM Flash Debug/../../obj/cop.o
0x00000f0c CopInit
.text.CopService
0x00000f24 0x4 ARM Flash Debug/../../obj/cop.o
0x00000f24 CopService
0x00000f10 0x4 ARM Flash Debug/../../obj/cop.o
0x00000f10 CopService
.text.XcpProtectResources
0x00000f28 0x14 ARM Flash Debug/../../obj/xcp.o
0x00000f14 0x14 ARM Flash Debug/../../obj/xcp.o
.text.XcpSetCtoError
0x00000f3c 0x20 ARM Flash Debug/../../obj/xcp.o
.text.XcpInit 0x00000f5c 0x28 ARM Flash Debug/../../obj/xcp.o
0x00000f5c XcpInit
0x00000f28 0x20 ARM Flash Debug/../../obj/xcp.o
.text.XcpInit 0x00000f48 0x28 ARM Flash Debug/../../obj/xcp.o
0x00000f48 XcpInit
.text.XcpIsConnected
0x00000f84 0x18 ARM Flash Debug/../../obj/xcp.o
0x00000f84 XcpIsConnected
0x00000f70 0x18 ARM Flash Debug/../../obj/xcp.o
0x00000f70 XcpIsConnected
.text.XcpPacketTransmitted
0x00000f9c 0x14 ARM Flash Debug/../../obj/xcp.o
0x00000f9c XcpPacketTransmitted
0x00000f88 0x14 ARM Flash Debug/../../obj/xcp.o
0x00000f88 XcpPacketTransmitted
.text.XcpPacketReceived
0x00000fb0 0x4f0 ARM Flash Debug/../../obj/xcp.o
0x00000fb0 XcpPacketReceived
0x000014a0 __text_end__ = (__text_start__ + SIZEOF (.text))
0x000014a0 __text_load_end__ = __text_end__
0x00000f9c 0x4f0 ARM Flash Debug/../../obj/xcp.o
0x00000f9c XcpPacketReceived
0x0000148c __text_end__ = (__text_start__ + SIZEOF (.text))
0x0000148c __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@ -323,45 +323,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)
0x000014a0 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
0x0000148c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
.dtors 0x000014a0 0x0
0x000014a0 __dtors_start__ = .
.dtors 0x0000148c 0x0
0x0000148c __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
0x000014a0 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x000014a0 __dtors_load_end__ = __dtors_end__
0x0000148c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x0000148c __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)
0x000014a0 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
0x0000148c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
.ctors 0x000014a0 0x0
0x000014a0 __ctors_start__ = .
.ctors 0x0000148c 0x0
0x0000148c __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
0x000014a0 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x000014a0 __ctors_load_end__ = __ctors_end__
0x0000148c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x0000148c __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)
0x000014a0 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
0x0000148c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
.rodata 0x000014a0 0x148
0x000014a0 __rodata_start__ = .
.rodata 0x0000148c 0x148
0x0000148c __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.flashLayout
0x000014a0 0xc0 ARM Flash Debug/../../obj/flash.o
0x0000148c 0xc0 ARM Flash Debug/../../obj/flash.o
.rodata.str1.4
0x00001560 0x80 ARM Flash Debug/../../obj/uart.o
0x0000154c 0x80 ARM Flash Debug/../../obj/uart.o
.rodata.xcpStationId
0x000015e0 0x8 ARM Flash Debug/../../obj/xcp.o
0x000015e8 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x000015e8 __rodata_load_end__ = __rodata_end__
0x000015cc 0x8 ARM Flash Debug/../../obj/xcp.o
0x000015d4 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x000015d4 __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)
0x000015e8 __data_load_start__ = ALIGN (__rodata_end__, 0x4)
0x000015d4 __data_load_start__ = ALIGN (__rodata_end__, 0x4)
.data 0x4000023c 0x0 load address 0x000015e8
.data 0x4000023c 0x0 load address 0x000015d4
0x4000023c __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
0x4000023c __data_end__ = (__data_start__ + SIZEOF (.data))
0x000015e8 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x000015d4 __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
@ -485,14 +485,14 @@ Linker script and memory map
0x40001138 __stack_und_end__ = (__stack_und_start__ + SIZEOF (.stack_und))
0x40001138 __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)
0x000015e8 __fast_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
0x000015d4 __fast_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
.fast 0x40001138 0x0 load address 0x000015e8
.fast 0x40001138 0x0 load address 0x000015d4
0x40001138 __fast_start__ = .
*(.fast .fast.*)
0x40001138 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
0x000015e8 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x000015e8 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.fast))
0x000015d4 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x000015d4 __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 0x40001138 0x0
@ -535,20 +535,20 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossw
.debug_info 0x0000005a 0x116 ARM Flash Debug/../../obj/main.o
.debug_info 0x00000170 0x5a ARM Flash Debug/../../obj/extflash.o
.debug_info 0x000001ca 0x106 ARM Flash Debug/../../obj/cstart.o
.debug_info 0x000002d0 0x538 ARM Flash Debug/../../obj/flash.o
.debug_info 0x00000808 0x5a ARM Flash Debug/../../obj/can.o
.debug_info 0x00000862 0x13a ARM Flash Debug/../../obj/cpu.o
.debug_info 0x0000099c 0x15e ARM Flash Debug/../../obj/nvm.o
.debug_info 0x00000afa 0xf2 ARM Flash Debug/../../obj/timer.o
.debug_info 0x00000bec 0x1bf ARM Flash Debug/../../obj/uart.o
.debug_info 0x00000dab 0xe4 ARM Flash Debug/../../obj/assert.o
.debug_info 0x00000e8f 0xc0 ARM Flash Debug/../../obj/backdoor.o
.debug_info 0x00000f4f 0x88 ARM Flash Debug/../../obj/boot.o
.debug_info 0x00000fd7 0x1b4 ARM Flash Debug/../../obj/com.o
.debug_info 0x0000118b 0x86 ARM Flash Debug/../../obj/cop.o
.debug_info 0x00001211 0x60b ARM Flash Debug/../../obj/xcp.o
.debug_info 0x000002d0 0x532 ARM Flash Debug/../../obj/flash.o
.debug_info 0x00000802 0x5a ARM Flash Debug/../../obj/can.o
.debug_info 0x0000085c 0x13a ARM Flash Debug/../../obj/cpu.o
.debug_info 0x00000996 0x15e ARM Flash Debug/../../obj/nvm.o
.debug_info 0x00000af4 0xf2 ARM Flash Debug/../../obj/timer.o
.debug_info 0x00000be6 0x1bf ARM Flash Debug/../../obj/uart.o
.debug_info 0x00000da5 0xe4 ARM Flash Debug/../../obj/assert.o
.debug_info 0x00000e89 0xc0 ARM Flash Debug/../../obj/backdoor.o
.debug_info 0x00000f49 0x88 ARM Flash Debug/../../obj/boot.o
.debug_info 0x00000fd1 0x1b4 ARM Flash Debug/../../obj/com.o
.debug_info 0x00001185 0x86 ARM Flash Debug/../../obj/cop.o
.debug_info 0x0000120b 0x611 ARM Flash Debug/../../obj/xcp.o
.debug_abbrev 0x00000000 0xa48
.debug_abbrev 0x00000000 0xa37
.debug_abbrev 0x00000000 0x28 ARM Flash Debug/../../obj/hooks.o
.debug_abbrev 0x00000028 0xc5 ARM Flash Debug/../../obj/main.o
.debug_abbrev 0x000000ed 0x28 ARM Flash Debug/../../obj/extflash.o
@ -564,23 +564,23 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossw
.debug_abbrev 0x00000730 0x3f ARM Flash Debug/../../obj/boot.o
.debug_abbrev 0x0000076f 0xe0 ARM Flash Debug/../../obj/com.o
.debug_abbrev 0x0000084f 0x3f ARM Flash Debug/../../obj/cop.o
.debug_abbrev 0x0000088e 0x1ba ARM Flash Debug/../../obj/xcp.o
.debug_abbrev 0x0000088e 0x1a9 ARM Flash Debug/../../obj/xcp.o
.debug_line 0x00000000 0x11ef
.debug_line 0x00000000 0x1d ARM Flash Debug/../../obj/hooks.o
.debug_line 0x0000001d 0x12e ARM Flash Debug/../../obj/main.o
.debug_line 0x0000014b 0x1d ARM Flash Debug/../../obj/extflash.o
.debug_line 0x00000168 0x198 ARM Flash Debug/../../obj/cstart.o
.debug_line 0x00000300 0x2d1 ARM Flash Debug/../../obj/flash.o
.debug_line 0x000005d1 0x1d ARM Flash Debug/../../obj/can.o
.debug_line 0x000005ee 0xf4 ARM Flash Debug/../../obj/cpu.o
.debug_line 0x000006e2 0x10c ARM Flash Debug/../../obj/nvm.o
.debug_line 0x000007ee 0xfb ARM Flash Debug/../../obj/timer.o
.debug_line 0x000008e9 0x158 ARM Flash Debug/../../obj/uart.o
.debug_line 0x00000a41 0x12b ARM Flash Debug/../../obj/assert.o
.debug_line 0x00000b6c 0x145 ARM Flash Debug/../../obj/backdoor.o
.debug_line 0x00000cb1 0xbb ARM Flash Debug/../../obj/boot.o
.debug_line 0x00000d6c 0x1ab ARM Flash Debug/../../obj/com.o
.debug_line 0x00000300 0x2cc ARM Flash Debug/../../obj/flash.o
.debug_line 0x000005cc 0x1d ARM Flash Debug/../../obj/can.o
.debug_line 0x000005e9 0xf4 ARM Flash Debug/../../obj/cpu.o
.debug_line 0x000006dd 0x10c ARM Flash Debug/../../obj/nvm.o
.debug_line 0x000007e9 0xfc ARM Flash Debug/../../obj/timer.o
.debug_line 0x000008e5 0x158 ARM Flash Debug/../../obj/uart.o
.debug_line 0x00000a3d 0x12b ARM Flash Debug/../../obj/assert.o
.debug_line 0x00000b68 0x147 ARM Flash Debug/../../obj/backdoor.o
.debug_line 0x00000caf 0xbb ARM Flash Debug/../../obj/boot.o
.debug_line 0x00000d6a 0x1ad ARM Flash Debug/../../obj/com.o
.debug_line 0x00000f17 0xb1 ARM Flash Debug/../../obj/cop.o
.debug_line 0x00000fc8 0x227 ARM Flash Debug/../../obj/xcp.o
@ -591,11 +591,11 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossw
0x147 (size before relaxing)
.debug_str 0x00000186 0x65 ARM Flash Debug/../../obj/extflash.o
0x109 (size before relaxing)
.debug_str 0x000001eb 0x247 ARM Flash Debug/../../obj/flash.o
0x30f (size before relaxing)
.debug_str 0x00000432 0x7d ARM Flash Debug/../../obj/can.o
.debug_str 0x000001eb 0x23c ARM Flash Debug/../../obj/flash.o
0x304 (size before relaxing)
.debug_str 0x00000427 0x7d ARM Flash Debug/../../obj/can.o
0x121 (size before relaxing)
.debug_str 0x000004af 0xc1 ARM Flash Debug/../../obj/cpu.o
.debug_str 0x000004a4 0xcc ARM Flash Debug/../../obj/cpu.o
0x18e (size before relaxing)
.debug_str 0x00000570 0xb1 ARM Flash Debug/../../obj/nvm.o
0x186 (size before relaxing)
@ -683,18 +683,18 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossw
.debug_frame 0x000004f8 0x30 ARM Flash Debug/../../obj/cop.o
.debug_frame 0x00000528 0x80 ARM Flash Debug/../../obj/xcp.o
.debug_loc 0x00000000 0xae3
.debug_loc 0x00000000 0xb06
.debug_loc 0x00000000 0x20 ARM Flash Debug/../../obj/main.o
.debug_loc 0x00000020 0x493 ARM Flash Debug/../../obj/flash.o
.debug_loc 0x000004b3 0x109 ARM Flash Debug/../../obj/cpu.o
.debug_loc 0x000005bc 0xff ARM Flash Debug/../../obj/nvm.o
.debug_loc 0x000006bb 0x20 ARM Flash Debug/../../obj/timer.o
.debug_loc 0x000006db 0xe9 ARM Flash Debug/../../obj/uart.o
.debug_loc 0x000007c4 0x46 ARM Flash Debug/../../obj/assert.o
.debug_loc 0x0000080a 0x40 ARM Flash Debug/../../obj/backdoor.o
.debug_loc 0x0000084a 0x40 ARM Flash Debug/../../obj/boot.o
.debug_loc 0x0000088a 0xb2 ARM Flash Debug/../../obj/com.o
.debug_loc 0x0000093c 0x1a7 ARM Flash Debug/../../obj/xcp.o
.debug_loc 0x00000020 0x4b6 ARM Flash Debug/../../obj/flash.o
.debug_loc 0x000004d6 0x109 ARM Flash Debug/../../obj/cpu.o
.debug_loc 0x000005df 0xff ARM Flash Debug/../../obj/nvm.o
.debug_loc 0x000006de 0x20 ARM Flash Debug/../../obj/timer.o
.debug_loc 0x000006fe 0xe9 ARM Flash Debug/../../obj/uart.o
.debug_loc 0x000007e7 0x46 ARM Flash Debug/../../obj/assert.o
.debug_loc 0x0000082d 0x40 ARM Flash Debug/../../obj/backdoor.o
.debug_loc 0x0000086d 0x40 ARM Flash Debug/../../obj/boot.o
.debug_loc 0x000008ad 0xb2 ARM Flash Debug/../../obj/com.o
.debug_loc 0x0000095f 0x1a7 ARM Flash Debug/../../obj/xcp.o
.debug_aranges 0x00000000 0x2d8
.debug_aranges

View File

@ -38,7 +38,7 @@ S1130228280000EB2C019FE52C119FE5001041E00C
S1130238080051E30020A0A3042080A4001080A596
S1130248E8009FE5E8109FE5010050E1BEFFFF0AC2
S1130258042090E403002DE90FE0A0E112FF2FE150
S11302680300BDE8B0FFFFEA210300EB0000A0E3B0
S11302680300BDE8B0FFFFEA1C0300EB0000A0E3B5
S11302780010A0E3E4209FE50FE0A0E112FF2FE1C6
S1130288010050E10EF0A001012052E00EF0A0019F
S1130298013080E1023083E1030013E30400001A13
@ -48,11 +48,11 @@ S11302C8FBFFFF1A0EF0A0E1010050E10EF0A001BF
S11302D80120C0E4FBFFFFEAFEFFFFEAFEFFFFEA9E
S11302E8FEFFFFEAFEFFFFEAFEFFFFEA40C01FE051
S11302F838110040381100403810004038110040CF
S113030838110040380F0040E81500003C02004056
S11303183C0200407003000070030000A0140000B9
S1130328E81500003811004038110040A0140000FE
S1130338A0140000A0140000A0140000A0140000E1
S1130348A0140000A0140000A0140000E815000088
S113030838110040380F0040D41500003C0200406A
S11303183C02004070030000700300008C140000CD
S1130328D415000038110040381100408C14000026
S11303388C1400008C1400008C1400008C14000031
S11303488C1400008C1400008C140000D4150000D8
S11303583C0200403807004038070040380B004092
S10B0368700300000000A0E195
S113037004E02DE588309FE52220A0E38420C3E536
@ -63,34 +63,34 @@ S11303B00320A0E38020C3E55520E0E38C20C3E5BF
S11303C05520A0E38C20C3E50020A0E30020C3E572
S11303D00420A0E30420C3E50220A0E30020C3E539
S11303E00120A0E30021C3E51D3843E2002093E58A
S11303F0052082E3002083E58F0200EB960200EBE8
S11303F0052082E3002083E58A0200EB910200EBF2
S1130400FDFFFFEA00C01FE070402DE90060A0E19D
S113041050509FE50040A0E3C10200EB003095E599
S113041050509FE50040A0E3BC0200EB003095E59E
S1130420060053E10800008A041095E5013083E0DA
S1130430030056E10400002A842084E024309FE570
S1130440022183E00800D2E5040000EA014084E2CE
S11304500C5085E2100054E3EEFFFF1AFF00A0E306
S11304607040BDE81EFF2FE1A014000030402DE9CC
S11304607040BDE81EFF2FE18C14000030402DE9E0
S113047020D04DE20040A0E1000090E5E1FFFFEB59
S1130480FF0050E30000A0033700000A3230A0E36D
S11304900C308DE510008DE514008DE50130A0E3EE
S11304A000308DE59E0200EB0C008DE20D10A0E102
S11304A000308DE5990200EB0C008DE20D10A0E107
S11304B03A31E0E30FE0A0E113FF2FE100309DE5C6
S11304C0000053E30000A0132700001A3330A0E318
S11304D00C308DE50450A0E1043095E410308DE536
S11304E014508DE5023CA0E318308DE584309FE57F
S11304F01C308DE50130A0E300308DE5880200EB6F
S11304F01C308DE50130A0E300308DE5830200EB74
S11305000C008DE20D10A0E13A31E0E30FE0A0E130
S113051013FF2FE100309DE5000053E30000A0131A
S11305201100001A3830A0E30C308DE5003094E55A
S113053010308DE514508DE5023CA0E318308DE5B4
S11305400130A0E300308DE5750200EB0C008DE274
S11305400130A0E300308DE5700200EB0C008DE279
S11305500D10A0E13A31E0E30FE0A0E113FF2FE139
S113056000009DE5010070E20000A03320D08DE280
S11305703040BDE81EFF2FE160EA000004E02DE5F5
S1130580813BB0E10000A0130700001A003090E5A1
S1130590010053E10100A0030300000A041080E4F9
S11305A0022CA0E30C0100EB0100A0E304E09DE4B5
S11305A0022CA0E3070100EB0100A0E304E09DE4BA
S11305B01EFF2FE130402DE90040A0E10150A0E1F1
S11305C050309FE5030050E10500000A020A51E3A0
S11305D00500000AA4FFFFEB000050E30300001A2B
@ -98,257 +98,256 @@ S11305E0080000EA30409FE5000000EA24409FE54F
S11305F00400A0E10510A0E1DFFFFFEB000050E3E1
S11306000040A003000000EA0040A0E30400A0E1D1
S11306103040BDE81EFF2FE13C0200404004004092
S1130620F0452DE90050A0E10140A0E10260A0E105
S11306300370A0E1A1A4A0E18AA4A0E1003090E5A8
S1130620F0452DE90050A0E10140A0E10270A0E1F5
S11306300360A0E1A1A4A0E18AA4A0E1003090E5B8
S1130640010073E30400001A0A10A0E1CAFFFFEBE3
S1130650000050E30000A0032400000A003095E5E8
S1130650000050E30000A0032000000A003095E5EC
S11306600A0053E10500000A0500A0E10A10A0E118
S1130670CFFFFFEB005050E20000A0031B00000A74
S1130670CFFFFFEB005050E20000A0031700000A78
S1130680003095E5044063E0044084E2044085E0E2
S1130690013086E2018047E20888A0E1288883E0EF
S11306A050709FE502AC8AE21D0200EB043085E243
S11306B0043063E0070053E10500009A0500A0E15F
S11306C00A10A0E1BAFFFFEB005050E20600000A56
S11306D0044085E20130D6E40130C4E4080056E168
S11306E0F0FFFF1A0100A0E3000000EA0000A0E30D
S11306F0F045BDE81EFF2FE1FF0100000030E0E3FC
S11307000C209FE5003082E508209FE5003082E55B
S11307101EFF2FE1400400403C02004070402DE9E0
S11307200040A0E10150A0E10260A0E135FFFFEB31
S1130730FF0050E30000A0030E00000A010044E2A1
S1130740050080E02FFFFFEBFF0050E30000A00353
S11307500800000AA434A0E1100053E30538A0E126
S113076018009F0518009F150410A0E10620A0E1C1
S11307702338A0E1A9FFFFEB7040BDE81EFF2FE185
S11307803C0200404004004070402DE920D04DE27E
S11307900050A0E10160A0E11AFFFFEB0040A0E1DE
S11307A0010045E2060080E016FFFFEB0050A0E1E7
S11307B0FF0050E3FF0054130000A0033900000AB7
S11307C0050054E10000A0833600008A000054E3D1
S11307D00000A0033300000A100055E30000A083CA
S11307E03000008A3230A0E300308DE504408DE50E
S11307F008508DE50130A0E314308DE5C80100EB0D
S11308000D00A0E114108DE23A31E0E30FE0A0E125
S113081013FF2FE114309DE5000053E30000A01303
S11308202000001A3430A0E300308DE504408DE54B
S113083008508DE578309FE50C308DE50130A0E35C
S113084014308DE5B60100EB0D00A0E114108DE22B
S11308503A31E0E30FE0A0E113FF2FE114309DE50E
S1130860000053E30000A0130E00001A3530A0E38B
S113087000308DE504408DE508508DE50130A0E39E
S113088014308DE5A60100EB0D00A0E114108DE2FB
S11308903A31E0E30FE0A0E113FF2FE114009DE5FE
S11308A0010070E20000A03320D08DE27040BDE86A
S11308B01EFF2FE160EA000004E02DE504D04DE2C4
S11308C068309FE5003093E5010073E30100A00365
S11308D01300000A54309FE5060093E9011082E0FA
S11308E00C2093E5021081E0102093E5021081E0D2
S11308F0142093E5021081E01C2093E5021081E0AE
S1130900202093E5023081E0003063E204208DE290
S1130910043022E518009FE50410A0E30D20A0E1B7
S11309207DFFFFEB04D08DE204E09DE41EFF2FE188
S11309303C02004014200000023AA0E3050093E8C2
S1130940000082E0082093E5020080E00C2093E59B
S1130950020080E0102093E5020080E0142093E57B
S1130960020080E0182093E5020080E01C3093E54B
S1130970030080E0010070E20000A0331EFF2FE1BD
S113098004E02DE548309FE5003093E5010073E372
S11309900400000A38009FE5B3FEFFEB000050E3BB
S11309A00000A0030800000A28309FE5003093E50A
S11309B0010073E30100A0030300000A14009FE593
S11309C0A9FEFFEB000090E20100A01304E09DE407
S11309D01EFF2FE13C0200404004004070402DE91E
S11309E00160A0E10228A0E12228B0E10900000A88
S11309F00040A0E1010080E2012042E20258A0E1AF
S1130A00255880E00130D6E40130C4E4440100EB11
S1130A10050054E1FAFFFF1A7040BDE81EFF2FE104
S1130A2004E02DE5200000EB000050E30B00000A79
S1130A302A0100EB390000EB0101A0E3021AA0E354
S1130A404020A0E3E4FFFFEB0220A0E314309FE585
S1130A50402083E50131A0E30FE0A0E113FF2FE183
S1130A6004E09DE41EFF2FE100C01FE004E02DE53B
S1130A7076FDFFEB04E09DE41EFF2FE104E02DE58D
S1130A801DFFFFEB04E09DE41EFF2FE104E02DE5D4
S1130A9021FFFFEB04E09DE41EFF2FE104E02DE5C0
S1130AA038FFFFEB04E09DE41EFF2FE104E02DE599
S1130AB0A0FFFFEB04E09DE41EFF2FE104E02DE521
S1130AC07CFFFFEB000050E30000A003ABFFFF1B23
S1130AD004E09DE41EFF2FE130309FE50020A0E3F9
S1130AE0142083E5282083E524109FE50C1083E57A
S1130AF00110A0E3041083E5081093E514309FE58A
S1130B00001083E510309FE5002083E51EFF2FE1F0
S1130B10004000E05FEA0000480600404406004050
S1130B2014309FE50020A0E3042083E50C2083E536
S1130B30082083E5102083E51EFF2FE1004000E03C
S1130B4024309FE5082093E520109FE5000091E5FF
S1130B50000082E018309FE500C093E500006CE0DF
S1130B60000081E5002083E51EFF2FE1004000E046
S1130B70440600404806004004E02DE5EFFFFFEB8B
S1130B8008309FE5000093E504E09DE41EFF2FE19B
S1130B90440600401C309FE51430D3E5010013E304
S1130BA010309F150030D3150030C0150100A0137C
S1130BB00000A0031EFF2FE100C000E010402DE95B
S1130BC044309FE51430D3E5200013E30000A00374
S1130BD00B00000A30309FE50000C3E51430D3E574
S1130BE0200013E30100A0130500001A18409FE53C
S1130BF0CB0000EB1430D4E5200013E3FBFFFF0A25
S1130C000100A0E31040BDE81EFF2FE100C000E09A
S1130C1034309FE50020A0E30420C3E50820C3E5A9
S1130C201420C3E57F10E0E30C10C3E54110A0E3FA
S1130C300010C3E50420C3E50320A0E30C20C3E5B2
S1130C400720A0E30820C3E51EFF2FE100C000E059
S1130C50F0412DE90050A0E1FF4001E2400054E3DF
S1130C6068009F858310A0834900008B0400A0E1E5
S1130C70D1FFFFEB010050E350009F158610A01335
S1130C804300001B0460A0E1000054E30D00000ACF
S1130C900040A0E334709FE58E80A0E3A00000EB49
S1130CA00400D5E7C4FFFFEB010050E30700A011E7
S1130CB00810A0113600001B014084E20438A0E1B2
S1130CC0230856E1F4FFFF8AF041BDE81EFF2FE13F
S1130CD06015000030402DE90050A0E1A0309FE5F0
S1130CE00030D3E5000053E30B00001A94009FE5A5
S1130CF0A7FFFFEB010050E30000A0131E00001A41
S1130D000120A0E378309FE50020C3E50000A0E3C4
S1130D1074309FE50000C3E5170000EA68309FE5E2
S1130D200040D3E564009FE5000084E098FFFFEBFA
S1130D30010050E30000A0130F00001A014084E2F8
S1130D40FF2004E240309FE50020C3E534309FE5F6
S1130D500030D3E5020053E10000A0130600001A9E
S1130D600500A0E124109FE51BFFFFEB0020A0E39A
S1130D700C309FE50020C3E50100A0E33040BDE84E
S1130D801EFF2FE194060040500600404C06004030
S1130D905106004004E02DE510309FE5000083E596
S1130DA00C309FE5001083E55D0000EBFDFFFFEADA
S1130DB0980600409C06004004E02DE5530000EB3B
S1130DC0010050E30C00000A34309FE50030D3E505
S1130DD0010053E30800001A66FFFFEB24309FE58F
S1130DE0003093E5323083E2030050E10020A02379
S1130DF00C309F250020C32508FFFF2B04E09DE451
S1130E001EFF2FE1A0060040A406004004E02DE5EB
S1130E100120A0E318309FE50020C3E555FFFFEB58
S1130E2010309FE5000083E5E2FFFFEB04E09DE462
S1130E301EFF2FE1A0060040A406004004E02DE5BB
S1130E40360000EB23FFFFEB0BFFFFEB090000EB89
S1130E50EDFFFFEB04E09DE41EFF2FE104E02DE530
S1130E602F0000EB35FFFFEB130000EBD1FFFFEB8E
S1130E7004E09DE41EFF2FE104E02DE504D04DE2E3
S1130E800030E0E30030CDE50030A0E30130CDE5F3
S1130E90310000EB5DFFFFEB18309FE50030D3E538
S1130EA0010053E30D00A0014000000B04D08DE2CB
S1130EB004E09DE41EFF2FE1A806004004E02DE5B8
S1130EC014009FE582FFFFEB010050E308009F053B
S1130ED03600000B04E09DE41EFF2FE1AC06004049
S1130EE01EFF2FE104E02DE5FF1001E257FFFFEBA9
S1130EF0290000EB04E09DE41EFF2FE10120A0E3A4
S1130F0004309FE50020C3E51EFF2FE1A806004042
S1130F1004E02DE51A0000EB04E09DE41EFF2FE140
S1130F201EFF2FE11EFF2FE10020A0E304309FE508
S1130F300120C3E51EFF2FE1EC06004014309FE5BD
S1130F400120E0E30320C3E50400C3E50220A0E39D
S1130F50B424C3E11EFF2FE1EC0600401C309FE5E2
S1130F600020A0E30020C3E5482083E54320C3E537
S1130F70B424C3E10220C3E50120C3E51EFF2FE131
S1130F80EC0600400C309FE50000D3E5000090E241
S1130F900100A0131EFF2FE1EC0600400020A0E397
S1130FA004309FE54320C3E51EFF2FE1EC0600401B
S1130FB030402DE90040A0E10030D0E5FF0053E3CC
S1130FC01200001AD7FFFFEBC8349FE50120A0E30D
S1130FD00020C3E50010E0E30310C3E51010A0E314
S1130FE00410C3E50010A0E30510C3E54000A0E32E
S1130FF00600C3E50700C3E50810C3E50920C3E5FF
S11310000A20C3E50820A0E3B424C3E1140100EAE4
S113101080249FE50020D2E5010052E31B01001A61
S1131020C93043E2350053E303F19F970A0100EA14
S1131030E81200005C1400005C140000501400006E
S11310405C1400005C14000034140000341300002D
S1131050F8130000C01300005C1400005C140000CE
S11310605C1400005C1400005C1400005C140000BC
S11310705C1400005C1400005C1400005C140000AC
S11310805C1400005C1400005C1400005C1400009C
S11310905C1400005C1400005C1400005C1400008C
S11310A05C1400005C1400005C1400005C1400007C
S11310B05C1400005C1400005C1400005C1400006C
S11310C05C1400005C1400005C1400005C1400005C
S11310D05C1400005C140000D011000058110000E2
S11310E008110000B01100005C1400005C14000042
S11310F05C140000401200005C1400008412000024
S113110090120000C41200000120D0E53F0052E319
S11311100200009A2200A0E387FFFFEBD00000EA60
S113112070539FE5040085E2481095E52AFEFFEB25
S11311300030E0E30330C5E50120D4E5483095E50F
S1131140033082E0483085E50130D4E5013083E2A4
S1131150B434C5E1C20000EA0130D0E53F0053E3F6
S11311600200009A2200A0E373FFFFEBBC0000EA38
S1131170041090E51C539FE5481085E5040085E2C2
S11311800120D4E514FEFFEB0030E0E30330C5E5B5
S11311900120D4E5483095E5033082E0483085E508
S11311A00130D4E5013083E2B434C5E1AC0000EA97
S11311B0E0329FE50020E0E30320C3E5042090E54E
S11311C0482083E50120A0E3B424C3E1A40000EA9D
S11311D0C0329FE50020E0E30320C3E5481093E517
S11311E0043090E5000053E30020A0030500000A4A
S11311F00020A0E30100D1E4002082E0FF2002E20D
S1131200013053E2FAFFFF1A88329FE50010A0E391
S11312100720C3E50810C3E50910C3E5222CA0E1AB
S11312200A20C3E50120A0E30420C3E50510C3E5BB
S11312300610C3E50820A0E3B424C3E1880000EA53
S113124050329FE50020E0E30320C3E548229FE5F8
S1131250482083E50020A0E30420C3E50520C3E57E
S11312600620C3E50710A0E30710C3E50820C3E583
S11312700920C3E50A20C3E50820A0E3B424C3E1A0
S1131280770000EA0000A0E32BFFFFEB740000EA04
S113129000329FE50020E0E30320C3E50020A0E343
S11312A00420C3E50110D3E50510C3E50620C3E51A
S11312B00720C3E50820C3E50620A0E3B424C3E166
S11312C0670000EACC419FE50030A0E30030C4E5AC
S11312D014FFFFEB0030E0E30330C4E50130A0E38A
S11312E0B434C4E15E0000EAA8319FE5480093E508
S11312F03F10A0E3012084E2E3FDFFEB000050E394
S11313000200001A3100A0E30BFFFFEB540000EAD7
S113131080319FE50020E0E30320C3E5482093E506
S11313203F2082E2482083E50120A0E3B424C3E106
S11313304B0000EA0130D0E53E0053E30200009A7E
S11313402200A0E3FCFEFFEB450000EA44319FE5E8
S11313500020E0E30320C3E50120A0E3B424C3E1BB
S11313600110D0E5000051E30500001AD2FDFFEBA7
S1131370000050E33A00001A3100A0E3EEFEFFEB58
S1131380370000EA0C319FE5480093E5022084E22F
S1131390BDFDFFEB000050E30200001A3100A0E3A2
S11313A0E5FEFFEB2E0000EAE8309FE50110D4E5EE
S11313B0482093E5022081E0482083E5280000EAE4
S11313C0D0309FE50020E0E30320C3E50020A0E344
S11313D00420C3E50520C3E54010A0E30610C3E5DF
S11313E00720C3E50820C3E50920C3E50720A0E3DF
S11313F0B424C3E11A0000EA98309FE5480093E55D
S1131400041094E5A4FDFFEB000050E30200001A71
S11314103100A0E3C8FEFFEB110000EA74309FE541
S11314200020E0E30320C3E50120A0E3B424C3E1EA
S11314300B0000EA8CFDFFEB58309FE50020E0E351
S11314400320C3E50120A0E3B424C3E1040000EABF
S11314503100A0E3B8FEFFEB010000EA2000A0E3A6
S1131460B5FEFFEB2C309FE54330D3E5010053E399
S11314701000A003B0FEFF0B18309FE50120A0E38D
S11314804320C3E5030083E2B414D3E194FEFFEBED
S11314903040BDE81EFF2FE1EC060040E0150000DF
S11314A000200000002000000100000000400000B7
S11314B00020000002000000006000000020000086
S11314C00300000000800000002000000400000071
S11314D000A00000002000000500000000C0000083
S11314E0002000000600000000E0000000200000D2
S11314F007000000000001000000010008000000D7
S113150000000200000001000900000000000300C8
S1131510002000000A00000000200300002000005A
S11315200B00000000400300002000000C0000003D
S113153000600300002000000D0000000080030094
S1131540002000000E00000000A0030000200000A6
S11315500F00000000C00300002000001000000085
S1131560433A2F576F726B2F736F6674776172658E
S11315702F4F70656E424C542F5461726765742FFF
S113158044656D6F2F41524D375F4C5043323030BC
S1131590305F4F6C696D65785F4C50435F4C3232FD
S11315A039345F43726F7373776F726B732F426F4B
S11315B06F742F6964652F2E2E2F2E2E2F2E2E2F13
S11315C02E2E2F536F757263652F41524D375F4C2A
S11315D05043323030302F756172742E6300000036
S10B15E04F70656E424C54008B
S113069050809FE502AC8AE21C0200EB043085E244
S11306A0043063E0080053E10500009A0500A0E16E
S11306B00A10A0E1BEFFFFEB005050E20600000A62
S11306C0044085E20130D7E40130C4E4016056E21D
S11306D0F0FFFF1A0100A0E3000000EA0000A0E31D
S11306E0F045BDE81EFF2FE1FF0100000030E0E30C
S11306F00C209FE5003082E508209FE5003082E56C
S11307001EFF2FE1400400403C02004070402DE9F0
S11307100040A0E10150A0E10260A0E139FFFFEB3D
S1130720FF0050E30000A0030D00000A010044E2B2
S1130730050080E033FFFFEBFF0050E30000A0035F
S11307400700000AA434A0E1100053E318009F0539
S113075018009F150410A0E10620A0E10530A0E1D7
S1130760AEFFFFEB7040BDE81EFF2FE13C020040EE
S11307704004004070402DE920D04DE20050A0E13B
S11307800160A0E11FFFFFEB0040A0E1010045E292
S1130790060080E01BFFFFEB0050A0E1FF0050E3E8
S11307A0FF0054130000A0033900000A050054E1BF
S11307B00000A0833600008A000054E30000A00378
S11307C03300000A100055E30000A0833000008AC3
S11307D03230A0E300308DE504408DE508508DE50E
S11307E00130A0E314308DE5C80100EB0D00A0E159
S11307F014108DE23A31E0E30FE0A0E113FF2FE1A2
S113080014309DE5000053E30000A0132000001AFB
S11308103430A0E300308DE504408DE508508DE5CB
S113082078309FE50C308DE50130A0E314308DE580
S1130830B60100EB0D00A0E114108DE23A31E0E3C3
S11308400FE0A0E113FF2FE114309DE5000053E316
S11308500000A0130E00001A3530A0E300308DE52F
S113086004408DE508508DE50130A0E314308DE59A
S1130870A60100EB0D00A0E114108DE23A31E0E393
S11308800FE0A0E113FF2FE114009DE5010070E2E9
S11308900000A03320D08DE27040BDE81EFF2FE1A0
S11308A060EA000004E02DE504D04DE268309FE5E5
S11308B0003093E5010073E30100A0031300000A74
S11308C054309FE5060093E9011082E00C2093E583
S11308D0021081E0102093E5021081E0142093E5DA
S11308E0021081E01C2093E5021081E0202093E5B2
S11308F0023081E0003063E204208DE2043022E51E
S113090018009FE50410A0E30D20A0E17EFFFFEB9B
S113091004D08DE204E09DE41EFF2FE13C02004080
S113092014200000023AA0E3050093E8000082E0EE
S1130930082093E5020080E00C2093E5020080E0AB
S1130940102093E5020080E0142093E5020080E08B
S1130950182093E5020080E01C3093E5030080E05A
S1130960010070E20000A0331EFF2FE104E02DE53A
S113097048309FE5003093E5010073E30400000A6A
S113098038009FE5B8FEFFEB000050E30000A00331
S11309900800000A28309FE5003093E5010073E366
S11309A00100A0030300000A14009FE5AEFEFFEB64
S11309B0000090E20100A01304E09DE41EFF2FE17B
S11309C03C0200404004004070402DE90160A0E179
S11309D00228A0E12228B0E10900000A0040A0E1B9
S11309E0010080E2012042E20258A0E1255880E0A3
S11309F00130D6E40130C4E4440100EB050054E1C5
S1130A00FAFFFF1A7040BDE81EFF2FE104E02DE558
S1130A10200000EB000050E30B00000A2A0100EB69
S1130A20390000EB0101A0E3021AA0E34020A0E397
S1130A30E4FFFFEB0220A0E314309FE5402083E5B0
S1130A400131A0E30FE0A0E113FF2FE104E09DE4F6
S1130A501EFF2FE100C01FE004E02DE57BFDFFEB4E
S1130A6004E09DE41EFF2FE104E02DE51EFFFFEBF3
S1130A7004E09DE41EFF2FE104E02DE522FFFFEBDF
S1130A8004E09DE41EFF2FE104E02DE538FFFFEBB9
S1130A9004E09DE41EFF2FE104E02DE5A0FFFFEB41
S1130AA004E09DE41EFF2FE104E02DE57CFFFFEB55
S1130AB0000050E30000A003ABFFFF1B04E09DE433
S1130AC01EFF2FE130309FE50020A0E3142083E5D2
S1130AD0282083E524109FE50C1083E50110A0E392
S1130AE0041083E5081093E514309FE5001083E5B6
S1130AF010309FE5002083E51EFF2FE1004000E059
S1130B005FEA0000480600404406004014309FE5B8
S1130B100020A0E3042083E50C2083E5082083E57E
S1130B20102083E51EFF2FE1004000E024309FE504
S1130B30082093E520109FE5000091E5000082E085
S1130B4018309FE500C093E500006CE0000081E5EB
S1130B50002083E51EFF2FE1004000E04406004032
S1130B604806004004E02DE5EFFFFFEB08309FE569
S1130B70000093E504E09DE41EFF2FE144060040DD
S1130B801C309FE51430D3E5010013E310309F15AA
S1130B900030D3150030C0150100A0130000A003DD
S1130BA01EFF2FE100C000E010402DE944309FE516
S1130BB01430D3E5200013E30000A0030B00000A67
S1130BC030309FE50000C3E51430D3E5200013E383
S1130BD00100A0130500001A18409FE5CB0000EBAC
S1130BE01430D4E5200013E3FBFFFF0A0100A0E367
S1130BF01040BDE81EFF2FE100C000E034309FE547
S1130C000020A0E30420C3E50820C3E51420C3E5C5
S1130C107F10E0E30C10C3E54110A0E30010C3E52E
S1130C200420C3E50320A0E30C20C3E50720A0E3D0
S1130C300820C3E51EFF2FE100C000E0F0412DE9CC
S1130C400050A0E1FF4001E2400054E368009F85AA
S1130C509110A0834900008B0400A0E1D1FFFFEBB9
S1130C60010050E350009F159410A0134300001B93
S1130C700460A0E1000054E30D00000A0040A0E37A
S1130C8034709FE59C80A0E3A00000EB0400D5E74E
S1130C90C4FFFFEB010050E30700A0110810A011EE
S1130CA03600001B014084E20438A0E1230856E129
S1130CB0F4FFFF8AF041BDE81EFF2FE14C15000050
S1130CC030402DE90050A0E1A0309FE50030D3E58D
S1130CD0000053E30B00001A94009FE5A7FFFFEB0D
S1130CE0010050E30000A0131E00001A0120A0E33D
S1130CF078309FE50020C3E50000A0E374309FE551
S1130D000000C3E5170000EA68309FE50040D3E522
S1130D1064009FE5000084E098FFFFEB010050E3CE
S1130D200000A0130F00001A014084E2FF2004E237
S1130D3040309FE50020C3E534309FE50030D3E523
S1130D40020053E10000A0130600001A0500A0E110
S1130D5024109FE51BFFFFEB0020A0E30C309FE570
S1130D600020C3E50100A0E33040BDE81EFF2FE1F1
S1130D7094060040500600404C06004051060040D6
S1130D8004E02DE510309FE5000083E50C309FE57D
S1130D90001083E55D0000EBFDFFFFEA98060040CC
S1130DA09C06004004E02DE5530000EB010050E3F5
S1130DB00C00000A34309FE50030D3E5010053E312
S1130DC00800001A66FFFFEB24309FE5003093E52E
S1130DD0323083E2030050E10020A0230C309F2531
S1130DE00020C32508FFFF2B04E09DE41EFF2FE134
S1130DF0A0060040A406004004E02DE50120A0E385
S1130E0018309FE50020C3E555FFFFEB10309FE548
S1130E10000083E5E2FFFFEB04E09DE41EFF2FE109
S1130E20A0060040A406004004E02DE5360000EBD7
S1130E3023FFFFEB0BFFFFEB090000EBEDFFFFEBE4
S1130E4004E09DE41EFF2FE104E02DE52F0000EBFC
S1130E5035FFFFEB130000EBD1FFFFEB04E09DE453
S1130E601EFF2FE104E02DE504D04DE20030E0E365
S1130E700030CDE50030A0E30130CDE5310000EBDA
S1130E805DFFFFEB18309FE50030D3E5010053E32D
S1130E900D00A0014000000B04D08DE204E09DE4AD
S1130EA01EFF2FE1A806004004E02DE514009FE595
S1130EB082FFFFEB010050E308009F053600000BA2
S1130EC004E09DE41EFF2FE1AC0600401EFF2FE16D
S1130ED004E02DE5FF1001E257FFFFEB290000EBD2
S1130EE004E09DE41EFF2FE10120A0E304309FE510
S1130EF00020C3E51EFF2FE1A806004004E02DE515
S1130F001A0000EB04E09DE41EFF2FE11EFF2FE119
S1130F101EFF2FE10020A0E304309FE50120C3E57C
S1130F201EFF2FE1EC06004014309FE50120E0E3B2
S1130F300320C3E50400C3E50220A0E3B424C3E115
S1130F401EFF2FE1EC0600401C309FE50020A0E3CB
S1130F500020C3E5482083E54320C3E5B424C3E16E
S1130F600220C3E50120C3E51EFF2FE1EC0600408B
S1130F700C309FE50000D3E5000090E20100A013CF
S1130F801EFF2FE1EC0600400020A0E304309FE5A3
S1130F904320C3E51EFF2FE1EC06004030402DE95D
S1130FA00040A0E10030D0E5FF0053E31200001A36
S1130FB0D7FFFFEBC8349FE50120A0E30020C3E581
S1130FC00010E0E30310C3E51010A0E30410C3E530
S1130FD00010A0E30510C3E54000A0E30600C3E54C
S1130FE00700C3E50810C3E50920C3E50A20C3E5EB
S1130FF00820A0E3B424C3E1140100EA80249FE59F
S11310000020D2E5010052E31B01001AC93043E27B
S1131010350053E303F19F970A0100EAD41200005C
S113102048140000481400003C1400004814000058
S1131030481400002014000020130000E4130000F2
S1131040AC130000481400004814000048140000C9
S1131050481400004814000048140000481400001C
S1131060481400004814000048140000481400000C
S113107048140000481400004814000048140000FC
S113108048140000481400004814000048140000EC
S113109048140000481400004814000048140000DC
S11310A048140000481400004814000048140000CC
S11310B048140000481400004814000048140000BC
S11310C048140000BC11000044110000F41000009A
S11310D09C1100004814000048140000481400004B
S11310E02C12000048140000701200007C12000052
S11310F0B01200000120D0E53F0052E30200009A44
S11311002200A0E387FFFFEBD00000EA70539FE5C5
S1131110040085E2481095E52AFEFFEB0030E0E389
S11311200330C5E50120D4E5483095E5033082E07D
S1131130483085E50130D4E5013083E2B434C5E1BB
S1131140C20000EA0130D0E53F0053E30200009AF8
S11311502200A0E373FFFFEBBC0000EA041090E55B
S11311601C539FE5481085E5040085E20120D4E581
S113117014FEFFEB0030E0E30330C5E50120D4E5C5
S1131180483095E5033082E0483085E50130D4E508
S1131190013083E2B434C5E1AC0000EAE0329FE5FB
S11311A00020E0E30320C3E5042090E5482083E524
S11311B00120A0E3B424C3E1A40000EAC0329FE507
S11311C00020E0E30320C3E5481093E5043090E5F4
S11311D0000053E30020A0030500000A0020A0E360
S11311E00100D1E4002082E0FF2002E2013053E25A
S11311F0FAFFFF1A88329FE50010A0E30720C3E539
S11312000810C3E50910C3E5222CA0E10A20C3E5B8
S11312100120A0E30420C3E50510C3E50610C3E5DF
S11312200820A0E3B424C3E1880000EA50329FE51B
S11312300020E0E30320C3E548229FE5482083E53E
S11312400020A0E30420C3E50520C3E50620C3E590
S11312500710A0E30710C3E50820C3E50920C3E590
S11312600A20C3E50820A0E3B424C3E1770000EA20
S11312700000A0E32BFFFFEB740000EA00329FE5BF
S11312800020E0E30320C3E50020A0E30420C3E53D
S11312900110D3E50510C3E50620C3E50720C3E527
S11312A00820C3E50620A0E3B424C3E1670000EAF4
S11312B0CC419FE50030A0E30030C4E514FFFFEB10
S11312C00030E0E30330C4E50130A0E3B434C4E10A
S11312D05E0000EAA8319FE5480093E53F10A0E3D3
S11312E0012084E2E3FDFFEB000050E30200001A5A
S11312F03100A0E30BFFFFEB540000EA80319FE5CF
S11313000020E0E30320C3E5482093E53F2082E288
S1131310482083E50120A0E3B424C3E14B0000EAA4
S11313200130D0E53E0053E30200009A2200A0E31E
S1131330FCFEFFEB450000EA44319FE50020E0E3BA
S11313400320C3E50120A0E3B424C3E10110D0E5E8
S1131350000051E30500001AD2FDFFEB000050E34A
S11313603A00001A3100A0E3EEFEFFEB370000EA7A
S11313700C319FE5480093E5022084E2BDFDFFEBBC
S1131380000050E30200001A3100A0E3E5FEFFEB89
S11313902E0000EAE8309FE50110D4E5482093E5EB
S11313A0022081E0482083E5280000EAD0309FE550
S11313B00020E0E30320C3E50020A0E30420C3E50C
S11313C00520C3E54010A0E30610C3E50720C3E5EC
S11313D00820C3E50920C3E50720A0E3B424C3E142
S11313E01A0000EA98309FE5480093E5041094E55C
S11313F0A4FDFFEB000050E30200001A3100A0E35B
S1131400C8FEFFEB110000EA74309FE50020E0E322
S11314100320C3E50120A0E3B424C3E10B0000EAE8
S11314208CFDFFEB58309FE50020E0E30320C3E58B
S11314300120A0E3B424C3E1040000EA3100A0E3E6
S1131440B8FEFFEB010000EA2000A0E3B5FEFFEBCD
S11314502C309FE54330D3E5010053E31000A00393
S1131460B0FEFF0B18309FE50120A0E34320C3E545
S1131470030083E2B414D3E194FEFFEB3040BDE8F3
S10F14801EFF2FE1EC060040CC1500001C
S113148C00200000002000000100000000400000CB
S113149C002000000200000000600000002000009A
S11314AC0300000000800000002000000400000085
S11314BC00A00000002000000500000000C0000097
S11314CC002000000600000000E0000000200000E6
S11314DC07000000000001000000010008000000EB
S11314EC00000200000001000900000000000300DD
S11314FC002000000A00000000200300002000006F
S113150C0B00000000400300002000000C00000051
S113151C00600300002000000D00000000800300A8
S113152C002000000E00000000A0030000200000BA
S113153C0F00000000C00300002000001000000099
S113154C433A2F576F726B2F736F667477617265A2
S113155C2F4F70656E424C542F5461726765742F13
S113156C44656D6F2F41524D375F4C5043323030D0
S113157C305F4F6C696D65785F4C50435F4C323211
S113158C39345F43726F7373776F726B732F426F5F
S113159C6F742F6964652F2E2E2F2E2E2F2E2E2F27
S11315AC2E2E2F536F757263652F41524D375F4C3E
S11315BC5043323030302F756172742E630000004A
S10B15CC4F70656E424C54009F
S9030050AC

View File

@ -0,0 +1,7 @@
/**
\defgroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks Bootloader
\brief Bootloader.
\ingroup ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader configuration header file
| File Name: config.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\config.h
* \brief Bootloader configuration header file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@ -46,9 +48,13 @@
* called the moment the user program is about to be started. This could be used to
* de-initialize application specific parts, for example to stop blinking an LED, etc.
*/
/** \brief Frequency of the external crystal oscillator. */
#define BOOT_CPU_XTAL_SPEED_KHZ (20000)
/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (60000)
/** \brief Motorola or Intel style byte ordering. */
#define BOOT_CPU_BYTE_ORDER_MOTOROLA (0)
/** \brief Enable/disable hook function call right before user program start. */
#define BOOT_CPU_USER_PROGRAM_START_HOOK (0)
@ -67,12 +73,19 @@
* CAN controller channel.
*
*/
/** \brief Enable/disable CAN transport layer. */
#define BOOT_COM_CAN_ENABLE (0)
/** \brief Configure the desired CAN baudrate. */
#define BOOT_COM_CAN_BAUDRATE (500000)
/** \brief Configure CAN message ID target->host. */
#define BOOT_COM_CAN_TX_MSG_ID (0x7E1)
/** \brief Configure number of bytes in the target->host CAN message. */
#define BOOT_COM_CAN_TX_MAX_DATA (8)
/** \brief Configure CAN message ID host->target. */
#define BOOT_COM_CAN_RX_MSG_ID (0x667)
/** \brief Configure number of bytes in the host->target CAN message. */
#define BOOT_COM_CAN_RX_MAX_DATA (8)
/** \brief Select the desired CAN peripheral as a zero based index. */
#define BOOT_COM_CAN_CHANNEL_INDEX (0)
/* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE
@ -83,10 +96,15 @@
* on board. The zero-based BOOT_COM_UART_CHANNEL_INDEX selects the UART interface.
*
*/
/** \brief Enable/disable UART transport layer. */
#define BOOT_COM_UART_ENABLE (1)
/** \brief Configure the desired communication speed. */
#define BOOT_COM_UART_BAUDRATE (57600)
/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_UART_TX_MAX_DATA (64)
/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_UART_RX_MAX_DATA (64)
/** \brief Select the desired UART peripheral as a zero based index. */
#define BOOT_COM_UART_CHANNEL_INDEX (0)
@ -101,6 +119,7 @@
* into the bootloader. When desired for security purposes, these hook functions can
* also be implemented in a way that disables the backdoor entry altogether.
*/
/** \brief Enable/disable the backdoor override hook functions. */
#define BOOT_BACKDOOR_HOOKS_ENABLE (0)
@ -113,7 +132,9 @@
* eeproms. The size of the internal memory in kilobytes is specified with configurable
* BOOT_NVM_SIZE_KB.
*/
/** \brief Enable/disable the NVM hook function for supporting additional memory devices. */
#define BOOT_NVM_HOOKS_ENABLE (0)
/** \brief Configure the size of the default memory device (typically flash EEPROM). */
#define BOOT_NVM_SIZE_KB (256)
@ -126,6 +147,7 @@
* set BOOT_COP_HOOKS_ENABLE to be able to initialize and service the watchdog through
* hook functions.
*/
/** \brief Enable/disable the hook functions for controlling the watchdog. */
#define BOOT_COP_HOOKS_ENABLE (0)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| 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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\extflash.c
* \brief Bootloader external flash driver source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -39,45 +41,69 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
/** \brief Value for an invalid flash sector. */
#define FLASH_INVALID_SECTOR (0xff)
/** \brief Value for an invalid flash address. */
#define FLASH_INVALID_ADDRESS (0xffffffff)
/** \brief Standard size of a flash block for writing. */
#define FLASH_WRITE_BLOCK_SIZE (512)
/** \brief Total numbers of sectors in array flashLayout[]. */
#define FLASH_TOTAL_SECTORS (sizeof(flashLayout)/sizeof(flashLayout[0]))
/* C3 Intel flash commands */
/** \brief C3 Intel flash read array command. */
#define FLASH_CMD_READ_ARRAY_MODE (0xFF)
/** \brief C3 Intel flash read id command. */
#define FLASH_CMD_READ_ID_MODE (0x90)
/** \brief C3 Intel flash erase command. */
#define FLASH_CMD_ERASE_MODE (0x20)
/** \brief C3 Intel flash read status command. */
#define FLASH_CMD_READ_STATUS_MODE (0x70)
/** \brief C3 Intel flash change lock command. */
#define FLASH_CMD_CHANGE_LOCK_MODE (0x60)
/** \brief C3 Intel flash unlock sector command. */
#define FLASH_CMD_UNLOCK_SECTOR (0xD0)
/** \brief C3 Intel flash lock sector command. */
#define FLASH_CMD_LOCK_SECTOR (0x01)
/** \brief C3 Intel flash program command. */
#define FLASH_CMD_PROGRAM_MODE (0x40)
/** \brief C3 Intel flash erase confirm command. */
#define FLASH_CMD_ERASE_CONFIRM (0xD0)
/** \brief C3 Intel flash clear status command. */
#define FLASH_CMD_CLEAR_STATUS (0x50)
/* C3 Intel flash info bits */
/** \brief C3 Intel flash lock bit. */
#define FLASH_LOCK_BIT (0x01)
/** \brief C3 Intel flash status ready bit. */
#define FLASH_STATUS_READY_BIT (0x80)
/* C3 Intel flash error codes */
/** \brief C3 Intel flash locked error code. */
#define FLASH_ERR_LOCKED (0x02)
/** \brief C3 Intel flash Vpp range error code. */
#define FLASH_ERR_VPP_RANGE (0x08)
/** \brief C3 Intel flash program error code. */
#define FLASH_ERR_PROGRAM (0x10)
/** \brief C3 Intel flash command sequence error code. */
#define FLASH_ERR_CMD_SEQ (0x10)
/** \brief C3 Intel flash erase error code. */
#define FLASH_ERR_ERASE (0x20)
/* flash operation timeout values */
/** \brief Flash erase timeout value. */
#define FLASH_ERASE_TIMEOUT ((blt_int32u)5000000)
/** \brief Flash program timeout value. */
#define FLASH_PROGRAM_TIMEOUT ((blt_int32u)1000000)
/* supported Intel C3 flash device */
/** \brief Supported Intel C3 flash manufacturer ID. */
#define FLASH_DEV_MAN_ID ((blt_int16u)0x0089)
/** \brief Supported Intel C3 flash device ID. */
#define FLASH_DEV_ID ((blt_int16u)0x88c3)
/* address offsets for reading device information */
/** \brief Offset for reading manufacturer ID. */
#define FLASH_DEVINFO_MAN_ID ((blt_int16u)0x0000)
/** \brief Offset for reading device ID. */
#define FLASH_DEVINFO_DEV_ID ((blt_int16u)0x0001)
/** \brief Offset for reading lock status. */
#define FLASH_DEVINFO_LOCK_STATUS ((blt_int16u)0x0002)
/* functions implemented in a macro for run-time and codesize optimization */
/** \brief Runtime efficient macro for obtaining the manufacturer ID. */
#define ExtFlashGetManID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
FLASH_DEVINFO_MAN_ID))
/** \brief Runtime efficient macro for obtaining the device ID. */
#define ExtFlashGetDevID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
FLASH_DEVINFO_DEV_ID))
/** \brief Runtime efficient macro for obtaining the lock status. */
#define ExtFlashGetLockStatus(base) (ExtFlashGetDeviceInfo(base, \
FLASH_DEVINFO_LOCK_STATUS))
@ -85,23 +111,25 @@
/****************************************************************************************
* Type definitions
****************************************************************************************/
/* flash sector descriptor type */
/** \brief 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 */
blt_addr sector_start; /**< sector start address */
blt_int32u sector_size; /**< sector size in bytes */
blt_int8u sector_num; /**< sector number */
} tFlashSector;
/* 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.
/** \brief Structure type for grouping flash block information.
* \details 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];
blt_addr base_addr; /**< Base address for the flash operation.*/
blt_int8u data[FLASH_WRITE_BLOCK_SIZE]; /**< Data array. */
} tFlashBlockInfo;
@ -111,7 +139,7 @@ typedef struct
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);
blt_int8u *data, blt_int32u 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);
@ -123,11 +151,12 @@ 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.
/** \brief Array wit the layout of the flash memory.
* \details 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[] =
{
@ -176,24 +205,25 @@ static const tFlashSector flashLayout[] =
/****************************************************************************************
* 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.
/** \brief Local variable with information about the flash block that is currently
* being operated on.
* \details 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.
/************************************************************************************//**
** \brief Initializes the flash driver.
** \return none.
**
****************************************************************************************/
void ExtFlashInit(void)
@ -208,15 +238,14 @@ void ExtFlashInit(void)
} /*** 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.
/************************************************************************************//**
** \brief Writes the data to flash.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -237,15 +266,14 @@ blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** 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.
/************************************************************************************//**
** \brief Erases the flash memory. Note that this function also checks that no
** data is erased outside the flash memory region.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
@ -278,11 +306,9 @@ blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
} /*** end of ExtFlashErase ***/
/****************************************************************************************
** NAME: ExtFlashDone
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
** DESCRIPTION: Finilizes the flash driver operations.
/************************************************************************************//**
** \brief Finalizes the flash driver operations.
** \return BLT_TRUE is succesful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool ExtFlashDone(void)
@ -300,13 +326,12 @@ blt_bool ExtFlashDone(void)
} /*** 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.
/************************************************************************************//**
** \brief Copies data currently in flash to the block->data and sets the
** base address.
** \param block Pointer to flash block info structure to operate on.
** \param address Base address of the block data.
** \return BLT_TRUE is succesful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
@ -329,14 +354,12 @@ static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
} /*** 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.
/************************************************************************************//**
** \brief Switches blocks by programming the current one and initializing the next.
** \param block Pointer to flash block info structure to operate on.
** \param base_addr Base address for the next block.
** \return The pointer of the block info struct that is no being used, or a NULL
** pointer in case of error.
**
****************************************************************************************/
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr)
@ -356,21 +379,20 @@ static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr bas
} /*** 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.
/************************************************************************************//**
** \brief 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.
** \param block Pointer to flash block info structure to operate on.
** \param address Flash destination address.
** \param data Pointer to the byte array with data.
** \param len Number of bytes to add to the block.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
blt_int8u *data, blt_int16u len)
blt_int8u *data, blt_int32u len)
{
blt_addr current_base_addr;
blt_int8u *dst;
@ -431,12 +453,10 @@ static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
} /*** 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.
/************************************************************************************//**
** \brief Programs FLASH_WRITE_BLOCK_SIZE bytes to flash from the block->data array.
** \param block Pointer to flash block info structure to operate on.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
@ -487,11 +507,10 @@ static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
} /*** 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.
/************************************************************************************//**
** \brief Erases the flash sector.
** \param sector_base Base address of the sector to erase.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashEraseSector(blt_addr sector_base)
@ -530,11 +549,10 @@ static blt_bool ExtFlashEraseSector(blt_addr sector_base)
} /*** end of ExtFlashEraseSector ***/
/****************************************************************************************
** NAME: ExtFlashLockSector
** PARAMETER: sector_base base address of the sector to lock.
** RETURN VALUE: none
** DESCRIPTION: Locks the flash sector.
/************************************************************************************//**
** \brief Locks the flash sector.
** \param sector_base Base address of the sector to lock.
** \return none.
**
****************************************************************************************/
static void ExtFlashLockSector(blt_addr sector_base)
@ -557,11 +575,10 @@ static void ExtFlashLockSector(blt_addr sector_base)
} /*** end of ExtFlashLockSector ***/
/****************************************************************************************
** NAME: ExtFlashUnlockSector
** PARAMETER: sector_base base address of the sector to unlock.
** RETURN VALUE: none
** DESCRIPTION: Unlocks the flash sector.
/************************************************************************************//**
** \brief Unlocks the flash sector.
** \param sector_base Base address of the sector to unlock.
** \return none.
**
****************************************************************************************/
static void ExtFlashUnlockSector(blt_addr sector_base)
@ -584,12 +601,11 @@ static void ExtFlashUnlockSector(blt_addr sector_base)
} /*** 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.
/************************************************************************************//**
** \brief Obtains device information from the flash device.
** \param sector_base Base address of the sector to get the info from.
** \param info Identifier to the type of info to obtain.
** \return Device info.
**
****************************************************************************************/
static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
@ -610,11 +626,10 @@ static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
} /*** 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.
/************************************************************************************//**
** \brief Determines the flash sector the address is in.
** \param address Address in the flash sector.
** \return Flash sector number or FLASH_INVALID_SECTOR
**
****************************************************************************************/
static blt_int8u ExtFlashGetSector(blt_addr address)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| 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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\extflash.h
* \brief Bootloader external flash driver header file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef EXTFLASH_H
#define EXTFLASH_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader callback source file
| File Name: hooks.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\hooks.c
* \brief Bootloader callback source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,11 +43,9 @@
****************************************************************************************/
#if (BOOT_BACKDOOR_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: BackDoorInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the backdoor entry option.
/************************************************************************************//**
** \brief Initializes the backdoor entry option.
** \return none.
**
****************************************************************************************/
void BackDoorInitHook(void)
@ -55,11 +55,9 @@ void BackDoorInitHook(void)
} /*** end of BackDoorInitHook ***/
/****************************************************************************************
** NAME: BackDoorEntryHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
** DESCRIPTION: Checks if a backdoor entry is requested.
/************************************************************************************//**
** \brief Checks if a backdoor entry is requested.
** \return BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool BackDoorEntryHook(void)
@ -80,15 +78,13 @@ blt_bool BackDoorEntryHook(void)
****************************************************************************************/
#if (BOOT_CPU_USER_PROGRAM_START_HOOK > 0)
/****************************************************************************************
** NAME: CpuUserProgramStartHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
** DESCRIPTION: Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
/************************************************************************************//**
** \brief Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
** \return BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
**
****************************************************************************************/
blt_bool CpuUserProgramStartHook(void)
@ -105,12 +101,10 @@ blt_bool CpuUserProgramStartHook(void)
#if (BOOT_NVM_HOOKS_ENABLE > 0)
#include "extflash.h"
/****************************************************************************************
** NAME: NvmInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the start of the internal NVM driver
** initialization routine.
/************************************************************************************//**
** \brief Callback that gets called at the start of the internal NVM driver
** initialization routine.
** \return none.
**
****************************************************************************************/
void NvmInitHook(void)
@ -120,20 +114,18 @@ void NvmInitHook(void)
} /*** end of NvmInitHook ***/
/****************************************************************************************
** NAME: NvmWriteHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
**
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -143,18 +135,17 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** end of NvmWriteHook ***/
/****************************************************************************************
** NAME: NvmEraseHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
@ -164,11 +155,9 @@ blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
} /*** end of NvmEraseHook ***/
/****************************************************************************************
** NAME: NvmDoneHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise.
** DESCRIPTION: Callback that gets called at the end of the NVM programming session.
/************************************************************************************//**
** \brief Callback that gets called at the end of the NVM programming session.
** \return BLT_TRUE is successful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool NvmDoneHook(void)
@ -184,13 +173,11 @@ blt_bool NvmDoneHook(void)
****************************************************************************************/
#if (BOOT_COP_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: CopInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
** \return none.
**
****************************************************************************************/
void CopInitHook(void)
@ -198,14 +185,12 @@ void CopInitHook(void)
} /*** end of CopInitHook ***/
/****************************************************************************************
** NAME: CopServiceHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
** \return none.
**
****************************************************************************************/
void CopServiceHook(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader application source file
| File Name: main.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Boot\main.c
* \brief Bootloader application source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -42,12 +44,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -68,13 +68,11 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
/************************************************************************************//**
** \brief Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface source file
| File Name: boot.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\boot.c
* \brief Demo program bootloader interface source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -35,11 +37,9 @@
#include "header.h" /* generic header */
/****************************************************************************************
** NAME: BootActivate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Bootloader activation function.
/************************************************************************************//**
** \brief Bootloader activation function.
** \return none.
**
****************************************************************************************/
static void BootActivate(void)
@ -61,10 +61,14 @@ static void BootActivate(void)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define UART_DLAB (0x80) /* divisor latch access bit */
#define UART_MODE_8N1 (0x03) /* 8 data and 1 stop bit, no parity */
#define UART_FIFO_RX1 (0x07) /* FIFO reset and RX FIFO 1 deep */
#define UART_RDR (0x01) /* receiver data ready */
/** \brief Divisor latch access bit. */
#define UART_DLAB (0x80)
/** \brief 8 data and 1 stop bit, no parity. */
#define UART_MODE_8N1 (0x03)
/** \brief FIFO reset and RX FIFO 1 deep. */
#define UART_FIFO_RX1 (0x07)
/** \brief Receiver data ready. */
#define UART_RDR (0x01)
/****************************************************************************************
@ -73,11 +77,9 @@ static void BootActivate(void)
static unsigned char UartReceiveByte(unsigned char *data);
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the UART communication interface
/************************************************************************************//**
** \brief Initializes the UART communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -111,12 +113,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)
@ -164,11 +164,10 @@ void BootComCheckActivationRequest(void)
} /*** end of BootComCheckActivationRequest ***/
/****************************************************************************************
** NAME: UartReceiveByte
** PARAMETER: data pointer to byte where the data is to be stored.
** RETURN VALUE: 1 if a byte was received, 0 otherwise.
** DESCRIPTION: Receives a communication interface byte if one is present.
/************************************************************************************//**
** \brief Receives a communication interface byte if one is present.
** \param data Pointer to byte where the data is to be stored.
** \return 1 if a byte was received, 0 otherwise.
**
****************************************************************************************/
static unsigned char UartReceiveByte(unsigned char *data)
@ -195,31 +194,40 @@ static unsigned char UartReceiveByte(unsigned char *data)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define CAN_TBS1 (0x00000004) /* transmit buffer 1 idle */
#define CAN_TCS1 (0x00000008) /* transmit buffer 1 complete */
#define CAN_RRB (0x04) /* receive buffer release */
#define CAN_RBS (0x01) /* receive buffer status */
#define CAN_TR (0x01) /* transmission request */
#define CAN_STB1 (0x20) /* select tx buffer 1 for transmit */
/** \brief Transmit buffer 1 idle. */
#define CAN_TBS1 (0x00000004)
/** \brief Transmit buffer 1 complete. */
#define CAN_TCS1 (0x00000008)
/** \brief Receive buffer release. */
#define CAN_RRB (0x04)
/** \brief Receive buffer status. */
#define CAN_RBS (0x01)
/** \brief Transmission request. */
#define CAN_TR (0x01)
/** \brief Select tx buffer 1 for transmit. */
#define CAN_STB1 (0x20)
/****************************************************************************************
* Type definitions
****************************************************************************************/
/** \brief Structure type for grouping CAN bus timing related information. */
typedef struct t_can_bus_timing
{
unsigned char tseg1; /* CAN time segment 1 */
unsigned char tseg2; /* CAN time segment 2 */
} tCanBusTiming; /* bus timing structure type */
unsigned char tseg1; /**< CAN time segment 1 */
unsigned char tseg2; /**< CAN time segment 2 */
} tCanBusTiming;
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta
* (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1.
* The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains
* possible and valid time quanta configurations with a sample point between 68..78%.
/** \brief CAN bittiming table for dynamically calculating the bittiming settings.
* \details According to the CAN protocol 1 bit-time can be made up of between 8..25
* time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC
* always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) *
* 100%. This array contains possible and valid time quanta configurations with
* a sample point between 68..78%.
*/
static const tCanBusTiming canTiming[] =
{ /* TQ | TSEG1 | TSEG2 | SP */
@ -245,13 +253,12 @@ static const tCanBusTiming canTiming[] =
};
/****************************************************************************************
** NAME: CanGetSpeedConfig
** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000.
** btr Pointer to where the value for register CANxBTR will be stored.
** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise.
** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus
** timing configuration.
/************************************************************************************//**
** \brief Search algorithm to match the desired baudrate to a possible bus
** timing configuration.
** \param baud The desired baudrate in kbps. Valid values are 10..1000.
** \param btr Pointer to where the value for register CANxBTR will be stored.
** \return 1 if the CAN bustiming register values were found, 0 otherwise.
**
****************************************************************************************/
static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned long *btr)
@ -283,11 +290,9 @@ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned long *btr)
} /*** end of CanGetSpeedConfig ***/
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the CAN communication interface
/************************************************************************************//**
** \brief Initializes the CAN communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -313,12 +318,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface header file
| File Name: boot.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\boot.h
* \brief Demo program bootloader interface header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: generic header file
| File Name: header.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\header.h
* \brief Generic header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H

View File

@ -51,7 +51,7 @@
<Watches active="0" update="Never" />
</Watch4>
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" y="36" path="C:\Work\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" left="0" selected="1" name="unnamed" top="18" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" y="36" path="C:\Work\software\OpenBLT\Target\Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c" left="18" selected="1" name="unnamed" top="18" />
</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>

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver source file
| File Name: irq.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\irq.c
* \brief IRQ driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,17 +40,17 @@
/****************************************************************************************
* Local data definitions
****************************************************************************************/
static unsigned long oldInterruptStatus; /* used for global interrupt en/disable */
static unsigned char interruptNesting = 0; /* used for global interrupt en/disable */
/** \brief Interrupt status before disabling. Used for global interrupt en/disable. */
static unsigned long oldInterruptStatus;
/** \brief Interrupt nesting counter. Used for global interrupt en/disable. */
static unsigned char interruptNesting = 0;
/****************************************************************************************
** NAME: IrqGetCPSR
** PARAMETER: none
** RETURN VALUE: CPSR value
** DESCRIPTION: Obtains current value of CPSR CPU register.
** NOTE: Derived from a sample by R O Software that is Copyright 2004,
** R O SoftWare, and can be used for hobby or commercial purposes.
/************************************************************************************//**
** \brief Obtains current value of CPSR CPU register. Derived from a sample by R O
** Software that is Copyright 2004, R O SoftWare, and can be used for hobby
** or commercial purposes.
** \return CPSR value.
**
****************************************************************************************/
static unsigned long IrqGetCPSR(void)
@ -59,13 +61,12 @@ static unsigned long IrqGetCPSR(void)
} /*** end of IrqGetCPSR ***/
/****************************************************************************************
** NAME: IrqSetCPSR
** PARAMETER: CPSR value
** RETURN VALUE: none
** DESCRIPTION: Update value of CPSR CPU register.
** NOTE: Derived from a sample by R O Software that is Copyright 2004,
** R O SoftWare, and can be used for hobby or commercial purposes.
/************************************************************************************//**
** \brief Update value of CPSR CPU register. Derived from a sample by R O
** Software that is Copyright 2004, R O SoftWare, and can be used for hobby
** or commercial purposes.
** \param val CPSR value.
** \return none.
**
****************************************************************************************/
static void IrqSetCPSR(unsigned long val)
@ -74,12 +75,10 @@ static void IrqSetCPSR(unsigned long val)
} /*** end of IrqSetCPSR ***/
/****************************************************************************************
** NAME: IrqInterruptEnable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
/************************************************************************************//**
** \brief Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
** \return none.
**
****************************************************************************************/
void IrqInterruptEnable(void)
@ -91,14 +90,12 @@ void IrqInterruptEnable(void)
} /*** end of IrqInterruptEnable ***/
/****************************************************************************************
** NAME: HwInterruptDisable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
/************************************************************************************//**
** \brief Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptDisable(void)
@ -115,13 +112,11 @@ void IrqInterruptDisable(void)
} /*** end of IrqInterruptDisable ***/
/****************************************************************************************
** NAME: IrqInterruptRestore
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
/************************************************************************************//**
** \brief Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptRestore(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver header file
| File Name: irq.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\irq.h
* \brief IRQ driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver source file
| File Name: led.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\led.c
* \brief LED driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,14 +40,13 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define LED_TOGGLE_MS (500) /* toggle interval time in millisecodns */
/** \brief Toggle interval time in milliseconds. */
#define LED_TOGGLE_MS (500)
/****************************************************************************************
** NAME: LedInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the LED.
/************************************************************************************//**
** \brief Initializes the LED.
** \return none.
**
****************************************************************************************/
void LedInit(void)
@ -57,11 +58,9 @@ void LedInit(void)
} /*** end of LedInit ***/
/****************************************************************************************
** NAME: LedToggle
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Toggles the LED at a fixed time interval.
/************************************************************************************//**
** \brief Toggles the LED at a fixed time interval.
** \return none.
**
****************************************************************************************/
void LedToggle(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver header file
| File Name: led.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\led.h
* \brief LED driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program application source file
| File Name: main.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\main.c
* \brief Demo program application source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -45,10 +47,11 @@ 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
/** \brief Array with test data to program in the external flash.
* \details 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[] =
{
@ -60,12 +63,10 @@ __attribute__((section (".rodata2"))) const unsigned long ExtFlashTestData[] =
#endif
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -91,13 +92,11 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
/************************************************************************************//**
** \brief Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -0,0 +1,7 @@
/**
\defgroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks User Program
\brief User Program.
\ingroup ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver source file
| File Name: timer.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\timer.c
* \brief Timer driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,6 +40,9 @@
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Local variable for storing the number of milliseconds that have elapsed since
* startup.
*/
static unsigned long millisecond_counter;
@ -47,11 +52,9 @@ static unsigned long millisecond_counter;
extern void TIMER0_ISR(void);
/****************************************************************************************
** NAME: TimerInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the timer.
/************************************************************************************//**
** \brief Initializes the timer.
** \return none.
**
****************************************************************************************/
void TimerInit(void)
@ -73,12 +76,10 @@ void TimerInit(void)
} /*** end of TimerInit ***/
/****************************************************************************************
** NAME: TimerUpdate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Updates the millisecond timer. Should be called every millisecond by
** the timer interrupt service routine.
/************************************************************************************//**
** \brief Updates the millisecond timer. Should be called every millisecond by
** the timer interrupt service routine.
** \return none.
**
****************************************************************************************/
void TimerUpdate(void)
@ -88,11 +89,10 @@ void TimerUpdate(void)
} /*** end of TimerUpdate ***/
/****************************************************************************************
** NAME: TimerSet
** PARAMETER: timer_value initialize value of the millisecond timer.
** RETURN VALUE: none
** DESCRIPTION: Sets the initial counter value of the millisecond timer.
/************************************************************************************//**
** \brief Sets the initial counter value of the millisecond timer.
** \param timer_value initialize value of the millisecond timer.
** \return none.
**
****************************************************************************************/
void TimerSet(unsigned long timer_value)
@ -102,11 +102,9 @@ void TimerSet(unsigned long timer_value)
} /*** end of TimerSet ***/
/****************************************************************************************
** NAME: TimerGet
** PARAMETER: none
** RETURN VALUE: current value of the millisecond timer
** DESCRIPTION: Obtains the counter value of the millisecond timer.
/************************************************************************************//**
** \brief Obtains the counter value of the millisecond timer.
** \return Current value of the millisecond timer.
**
****************************************************************************************/
unsigned long TimerGet(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver header file
| File Name: timer.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\timer.h
* \brief Timer driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program interrupt vectors source file
| File Name: vectors.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_Crossworks\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,11 +43,9 @@
void __attribute__ ((interrupt("IRQ"))) TIMER0_ISR(void);
/****************************************************************************************
** NAME: TIMER0_ISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Timer0 exception routine.
/************************************************************************************//**
** \brief Timer0 exception routine.
** \return none.
**
****************************************************************************************/
void TIMER0_ISR(void)

View File

@ -0,0 +1,8 @@
/**
\defgroup ARM7_LPC2000_Olimex_LPC_L2294_Crossworks Demo for Olimex LPC-L2294/Crossworks
\brief Preconfigured programs for the Olimex LPC-L2294 and the Crossworks IDE.
\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
for detailed getting started instructions.
*/

View File

@ -1,7 +1,7 @@
:1000000018F09FE518F09FE518F09FE518F09FE5C0
:1000100018F09FE50000A0E118F09FE510F09FE5C3
:1000200050000000B8120000A0000000B81200004C
:10003000B8120000801200009C12000000000000B6
:1000200050000000A4120000A0000000A412000074
:10003000A41200006C1200008812000000000000F2
:10004000E4009FE50110A0E3001080E5000000EF50
:10005000D8009FE5DBF021E300D0A0E1040040E2FE
:10006000D7F021E300D0A0E1040040E2D1F021E389
@ -17,7 +17,7 @@
:10010000030052E10400913404008234FBFFFF3A03
:100110000000A0E324109FE524209FE5020051E1A8
:1001200004008134FCFFFF3A1EFF2FE140C01FE0B6
:10013000DC1E0040E8130000000200400002004006
:10013000DC1E0040D413000000020040000200401A
:1001400000020040F806004008402DE988309FE595
:100150002220A0E38420C3E55510E0E38C10C3E522
:100160005520A0E38C20C3E50100A0E38000C3E597
@ -130,7 +130,7 @@
:100810002C309FE54330D3E5010053E31000A003E3
:10082000B5FEFF0B18309FE50120A0E34320C3E590
:10083000030083E2B414D3E192FEFFEB3840BDE83D
:100840001EFF2FE144020040D012000008402DE9B5
:100840001EFF2FE144020040BC12000008402DE9C9
:10085000A0FEFFEB010050E30C00000A34309FE5DE
:100860000030D3E5010053E30800001A000100EB5B
:1008700020309FE5043093E5323083E2030050E1FD
@ -163,14 +163,14 @@
:100A20000C10C3E54110A0E30010C3E50420C3E5AA
:100A30000320A0E30C20C3E50720A0E30820C3E5C2
:100A40001EFF2FE100C000E0F0412DE90060A0E1B1
:100A50000140A0E1400051E368009F858310A0831E
:100A50000140A0E1400051E368009F859110A08310
:100A600099FFFF8B0400A0E1D0FFFFEB010050E3F2
:100A700050009F158610A01393FFFF1B0450A0E1A8
:100A700050009F159410A01393FFFF1B0450A0E19A
:100A8000000054E30D00000A0040A0E334809FE51D
:100A90008E70A0E38BFFFFEB0400D6E7C3FFFFEBF4
:100A90009C70A0E38BFFFFEB0400D6E7C3FFFFEBE6
:100AA000010050E30800A0110710A01186FFFF1BF2
:100AB000014084E20438A0E1230855E1F4FFFF8AF5
:100AC000F041BDE81EFF2FE19813000038402DE9EA
:100AC000F041BDE81EFF2FE18413000038402DE9FE
:100AD0000050A0E19C309FE50030D3E5000053E3D7
:100AE0000A00001A90009FE5A6FFFFEB010050E30B
:100AF0000000A0131D00001A78309FE50120A0E33C
@ -182,12 +182,12 @@
:100B500020409FE50500A0E1051084E261FFFFEB66
:100B60000030A0E30030C4E50100A0E3FFFFFFEA8E
:100B70003840BDE81EFF2FE1A0020040A402004063
:100B800008402DE9030100EB0840BDE81EFF2FE1FE
:100B900008402DE9050100EB0840BDE81EFF2FE1EC
:100BA00008402DE91D0100EB0840BDE81EFF2FE1C4
:100BB00008402DE9870100EB0840BDE81EFF2FE14A
:100BC00008402DE9620100EB000050E30000A003A3
:100BD0000100000A910100EBFFFFFFEA0840BDE8B9
:100B800008402DE9FF0000EB0840BDE81EFF2FE103
:100B900008402DE9010100EB0840BDE81EFF2FE1F0
:100BA00008402DE9180100EB0840BDE81EFF2FE1C9
:100BB00008402DE9820100EB0840BDE81EFF2FE14F
:100BC00008402DE95D0100EB000050E30000A003A8
:100BD0000100000A8C0100EBFFFFFFEA0840BDE8BE
:100BE0001EFF2FE12C309FE50020A0E3142083E5B9
:100BF000282083E520109FE50C1083E50110A0E379
:100C0000041083E5081093E510309FE5001083E59C
@ -205,7 +205,7 @@
:100CC000030057E10400002A852085E024309FE5D9
:100CD000022183E00800D2E5040000EA015085E229
:100CE0000C4084E2C00054E3EDFFFF1AFF00A0E3D4
:100CF000F840BDE81EFF2FE1D812000030402DE97A
:100CF000F840BDE81EFF2FE1C412000030402DE98E
:100D000024D04DE20040A0E1000090E5DFFFFFEBC2
:100D1000FF0050E30000A0033800000A3220A0E3E7
:100D20000C208DE510008DE514008DE50130A0E369
@ -234,87 +234,86 @@
:100E9000DEFFFFEB000050E30040A003000000EA8B
:100EA0000040A0E30400A0E13840BDE81EFF2FE1B0
:100EB000F4040040F0020040F8452DE90060A0E194
:100EC0000140A0E10250A0E10370A0E1A1A4A0E1D3
:100ED0008AA4A0E1002090E5010072E30400001A5A
:100EC0000140A0E10270A0E10350A0E1A1A4A0E1D3
:100ED0008AA4A0E1003090E5010073E30400001A49
:100EE0000A10A0E1C9FFFFEB000050E30000A003DF
:100EF0002500000A003096E50A0053E10400000ACC
:100EF0002100000A003096E50A0053E10400000AD0
:100F00000600A0E10A10A0E1CFFFFFEB006050E275
:100F10001A00000A003096E5044063E0044086E0D1
:100F2000044084E2018047E20888A0E1288885E047
:100F3000018088E258709FE502AC8AE261FEFFEB17
:100F4000043086E2043063E0070053E10500009AB4
:100F50000600A0E10A10A0E1BBFFFFEB006050E239
:100F60000800000A044086E20130D5E40130C4E400
:100F7000080055E1F0FFFF1A0100A0E3020000EABB
:100F80000000A0E3000000EA0000A0E3F845BDE88F
:100F90001EFF2FE1FF0100000C309FE50020E0E381
:100FA000002083E5042283E51EFF2FE1F0020040CC
:100FB00070402DE90040A0E10150A0E10260A0E1F5
:100FC00032FFFFEBFF0050E30000A0030F00000A18
:100FD000010044E2050080E02CFFFFEBFF0050E33E
:100FE0000000A0030900000AA434A0E1100053E3AC
:100FF0000538A0E11C009F051C009F150410A0E10E
:101000000620A0E12338A0E1AAFFFFEBFFFFFFEAE3
:101010007040BDE81EFF2FE1F4040040F0020040E4
:1010200070402DE920D04DE20060A0E10150A0E128
:1010300016FFFFEB0040A0E1010046E2050080E062
:1010400012FFFFEB0050A0E1FF0054E3FF0050133C
:101050000000A0033A00000A050054E10000A0834C
:101060003700008A000054E30000A0033400000AA7
:10107000100055E30000A0833100008A3230A0E365
:101080000C308DE510408DE514508DE50130A0E366
:1010900000308DE50BFEFFEB0C008DE20D10A0E1A2
:1010A0003A31E0E30FE0A0E113FF2FE100309DE5CE
:1010B000000053E30000A0132100001A3430A0E325
:1010C0000C308DE510408DE514508DE57C309FE5AA
:1010D00018308DE50130A0E300308DE5F9FDFFEB20
:1010E0000C008DE20D10A0E13A31E0E30FE0A0E149
:1010F00013FF2FE100309DE5000053E30000A01333
:101100000F00001A3530A0E30C308DE510408DE55E
:1011100014508DE50130A0E300308DE5E9FDFFEBD3
:101120000C008DE20D10A0E13A31E0E30FE0A0E108
:1011300013FF2FE100009DE5010070E20000A033E5
:10114000FFFFFFEA20D08DE27040BDE81EFF2FE1D7
:1011500060EA000004E02DE50CD04DE26C309FE524
:10116000043293E5010073E30100A0031400000AB8
:1011700058309FE5832F83E2060012E8011082E0D9
:10118000102293E5021081E0142293E5021081E021
:10119000182293E5021081E0202293E5021081E0FD
:1011A000242293E5023081E0003063E208208DE2E2
:1011B000043022E518009FE50410A0E37BFFFFEB5D
:1011C000FFFFFFEA0CD08DE204E09DE41EFF2FE15B
:1011D000F002004014200000023AA0E3050093E86A
:1011E000000082E0082093E5020080E00C2093E5F7
:1011F000020080E0102093E5020080E0142093E5D7
:10120000020080E0182093E5020080E01C3093E5A6
:10121000030080E0010070E20000A0331EFF2FE118
:1012200008402DE94C309FE5043293E5010073E35B
:101230000400000A40009FE5AFFEFFEB000050E312
:101240000000A0030900000A28309FE5003093E564
:10125000010073E30100A0030400000A14009FE5ED
:10126000A5FEFFEB000090E20100A013FFFFFFEAE4
:101270000840BDE81EFF2FE1F0020040F4040040EA
:1012800004E04EE21F402DE908009FE53810A0E37E
:101290008DFDFFEB1F80FDE8BC13000004E04EE273
:1012A0000F502DE908009FE54610A0E386FDFFEBF7
:1012B0000F90FDE8BC1300000F502DE908009FE5DA
:1012C0005410A0E380FDFFEB0F90FDE8BC1300007D
:1012D0004F70656E424C540000200000002000005A
:1012E000010000000040000000200000020000009B
:1012F00000600000002000000300000000800000EB
:10130000002000000400000000A0000000200000F9
:101310000500000000C000000020000006000000E2
:1013200000E00000002000000700000000000100B5
:1013300000000100080000000000020000000100A1
:101340000900000000000300002000000A00000067
:1013500000200300002000000B00000000400300FC
:10136000002000000C0000000060030000200000CE
:101370000D00000000800300002000000E000000AF
:1013800000A00300002000000F00000000C00300C8
:1013900000200000100000002E2E2F2E2E2F2E2EAB
:1013A0002F536F757263652F41524D375F4C504319
:1013B000323030302F756172742E63002E2E2F2E36
:1013C0002E2F2E2E2F536F757263652F41524D377E
:1013D0005F4C5043323030302F4743432F766563A4
:0813E000746F72732E630000AC
:100F10001600000A003096E5044063E0044086E0D5
:100F2000044084E258809FE502AC8AE265FEFFEB54
:100F3000043086E2043063E0080053E10500009AC3
:100F40000600A0E10A10A0E1BFFFFFEB006050E245
:100F50000800000A044086E20130D7E40130C4E40E
:100F6000015055E2F0FFFF1A0100A0E3020000EA81
:100F70000000A0E3000000EA0000A0E3F845BDE89F
:100F80001EFF2FE1FF0100000C309FE50020E0E391
:100F9000002083E5042283E51EFF2FE1F0020040DC
:100FA00070402DE90040A0E10150A0E10260A0E105
:100FB00036FFFFEBFF0050E30000A0030E00000A25
:100FC000010044E2050080E030FFFFEBFF0050E34A
:100FD0000000A0030800000AA434A0E1100053E3BD
:100FE0001C009F051C009F150410A0E10620A0E135
:100FF0000530A0E1AFFFFFEBFFFFFFEA7040BDE867
:101000001EFF2FE1F4040040F002004070402DE983
:1010100020D04DE20060A0E10150A0E11BFFFFEBFA
:101020000040A0E1010046E2050080E017FFFFEB71
:101030000050A0E1FF0054E3FF0050130000A003A4
:101040003A00000A050054E10000A0833700008A3E
:10105000000054E30000A0033400000A100055E330
:101060000000A0833100008A3230A0E30C308DE50F
:1010700010408DE514508DE50130A0E300308DE582
:1010800010FEFFEB0C008DE20D10A0E13A31E0E321
:101090000FE0A0E113FF2FE100309DE5000053E3D6
:1010A0000000A0132100001A3430A0E30C308DE5BD
:1010B00010408DE514508DE57C309FE518308DE5AE
:1010C0000130A0E300308DE5FEFDFFEB0C008DE26A
:1010D0000D10A0E13A31E0E30FE0A0E113FF2FE1B2
:1010E00000309DE5000053E30000A0130F00001A3C
:1010F0003530A0E30C308DE510408DE514508DE5C2
:101100000130A0E300308DE5EEFDFFEB0C008DE239
:101110000D10A0E13A31E0E30FE0A0E113FF2FE171
:1011200000009DE5010070E20000A033FFFFFFEA30
:1011300020D08DE27040BDE81EFF2FE160EA000084
:1011400004E02DE50CD04DE26C309FE5043293E5D0
:10115000010073E30100A0031400000A58309FE56A
:10116000832F83E2060012E8011082E0102293E54B
:10117000021081E0142293E5021081E0182293E529
:10118000021081E0202293E5021081E0242293E501
:10119000023081E0003063E208208DE2043022E575
:1011A00018009FE50410A0E37CFFFFEBFFFFFFEAC0
:1011B0000CD08DE204E09DE41EFF2FE1F002004020
:1011C00014200000023AA0E3050093E8000082E04A
:1011D000082093E5020080E00C2093E5020080E007
:1011E000102093E5020080E0142093E5020080E0E7
:1011F000182093E5020080E01C3093E5030080E0B6
:10120000010070E20000A0331EFF2FE108402DE92D
:101210004C309FE5043293E5010073E30400000ABB
:1012200040009FE5B4FEFFEB000050E30000A00388
:101230000900000A28309FE5003093E5010073E3C0
:101240000100A0030400000A14009FE5AAFEFFEBC2
:10125000000090E20100A013FFFFFFEA0840BDE894
:101260001EFF2FE1F0020040F404004004E04EE2D3
:101270001F402DE908009FE53910A0E392FDFFEB28
:101280001F80FDE8A813000004E04EE20F502DE996
:1012900008009FE54510A0E38BFDFFEB0F90FDE8F4
:1012A000A81300000F502DE908009FE55110A0E39E
:1012B00085FDFFEB0F90FDE8A81300004F70656EF1
:1012C000424C5400002000000020000001000000FB
:1012D000004000000020000002000000006000004C
:1012E000002000000300000000800000002000003B
:1012F0000400000000A00000002000000500000025
:1013000000C00000002000000600000000E0000017
:1013100000200000070000000000010000000100A4
:1013200008000000000002000000010009000000A9
:1013300000000300002000000A000000002003005D
:10134000002000000B00000000400300002000000F
:101350000C00000000600300002000000D000000F1
:1013600000800300002000000E00000000A0030029
:10137000002000000F00000000C00300002000005B
:10138000100000002E2E2F2E2E2F2E2E2F536F7575
:101390007263652F41524D375F4C504332303030CD
:1013A0002F756172742E63002E2E2F2E2E2F2E2E4F
:1013B0002F536F757263652F41524D375F4C504309
:1013C000323030302F4743432F766563746F72732A
:0413D0002E63000088
:00000001FF

View File

@ -7,36 +7,36 @@ start address 0x00000000
Program Header:
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15
filesz 0x000013e8 memsz 0x000013e8 flags r-x
LOAD off 0x00010200 vaddr 0x40000200 paddr 0x000013e8 align 2**15
filesz 0x000013d4 memsz 0x000013d4 flags r-x
LOAD off 0x00010200 vaddr 0x40000200 paddr 0x000013d4 align 2**15
filesz 0x00000000 memsz 0x000004f8 flags rw-
private flags = 5000000: [Version5 EABI]
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000013e8 00000000 00000000 00008000 2**2
0 .text 000013d4 00000000 00000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 000004f8 40000200 000013e8 00010200 2**2
1 .bss 000004f8 40000200 000013d4 00010200 2**2
ALLOC
2 .ARM.attributes 0000002e 00000000 00000000 000093e8 2**0
2 .ARM.attributes 0000002e 00000000 00000000 000093d4 2**0
CONTENTS, READONLY
3 .comment 00000030 00000000 00000000 00009416 2**0
3 .comment 00000030 00000000 00000000 00009402 2**0
CONTENTS, READONLY
4 .debug_info 000021c1 00000000 00000000 00009446 2**0
4 .debug_info 000021c8 00000000 00000000 00009432 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 00000e22 00000000 00000000 0000b607 2**0
5 .debug_abbrev 00000e11 00000000 00000000 0000b5fa 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000001e8 00000000 00000000 0000c429 2**0
6 .debug_aranges 000001e8 00000000 00000000 0000c40b 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000a21 00000000 00000000 0000c611 2**0
7 .debug_line 00000a21 00000000 00000000 0000c5f3 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00000935 00000000 00000000 0000d032 2**0
8 .debug_str 00000935 00000000 00000000 0000d014 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_loc 00000f2d 00000000 00000000 0000d967 2**0
9 .debug_loc 00000f34 00000000 00000000 0000d949 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_frame 00000630 00000000 00000000 0000e894 2**2
10 .debug_frame 00000630 00000000 00000000 0000e880 2**2
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000048 00000000 00000000 0000eec4 2**0
11 .debug_ranges 00000048 00000000 00000000 0000eeb0 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .text 00000000 .text
@ -86,7 +86,7 @@ e01fc040 l *ABS* 00000000 MEMMAP
00000000 l df *ABS* 00000000 xcp.c
000002e8 l F .text 00000014 XcpProtectResources
000002fc l F .text 00000020 XcpSetCtoError
000012d0 l O .text 00000008 xcpStationId
000012bc l O .text 00000008 xcpStationId
40000244 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
40000290 l O .bss 00000001 backdoorOpen
@ -112,16 +112,16 @@ e01fc040 l *ABS* 00000000 MEMMAP
00000cfc l F .text 00000114 FlashWriteBlock
00000e10 l F .text 0000003c FlashInitBlock
00000e4c l F .text 0000006c FlashSwitchBlock
00000eb8 l F .text 000000e0 FlashAddToBlock
000012d8 l O .text 000000c0 flashLayout
00000eb8 l F .text 000000d0 FlashAddToBlock
000012c4 l O .text 000000c0 flashLayout
400002f0 l O .bss 00000204 blockInfo
400004f4 l O .bss 00000204 bootBlockInfo
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000
0000021c g F .text 00000044 ComInit
00000fb0 g F .text 00000070 FlashWrite
00000fa0 g F .text 0000006c FlashWrite
000008cc g F .text 0000001c AssertFailure
0000129c g F .text 0000001c IRQ_ISR
00001288 g F .text 0000001c IRQ_ISR
00000c44 g F .text 00000030 TimerUpdate
0000035c g F .text 00000014 XcpPacketTransmitted
00000260 g F .text 00000024 ComTask
@ -129,35 +129,35 @@ e01fc040 l *ABS* 00000000 MEMMAP
000001e0 g F .text 00000020 BootInit
0000089c g F .text 00000028 BackDoorInit
000008c8 g F .text 00000004 CopService
000013e8 g .text 00000000 _etext
000013d4 g .text 00000000 _etext
00000c24 g F .text 00000020 TimerReset
00000200 g F .text 0000001c BootTask
00001154 g F .text 00000084 FlashWriteChecksum
00001140 g F .text 00000084 FlashWriteChecksum
40000200 g .bss 00000000 _bss_start
00000288 g F .text 00000018 ComTransmitPacket
00000000 g .text 00000000 _startup
00000344 g F .text 00000018 XcpIsConnected
00000b80 g F .text 00000010 NvmInit
00000f98 g F .text 00000018 FlashInit
00000f88 g F .text 00000018 FlashInit
400006f8 g .bss 00000000 _bss_end
00000050 g .text 00000000 Reset_Handler
00000284 g F .text 00000004 ComFree
00000a08 g F .text 00000040 UartInit
00000ba0 g F .text 00000010 NvmErase
00000370 g F .text 000004dc XcpPacketReceived
00001220 g F .text 00000060 FlashDone
0000120c g F .text 00000060 FlashDone
000002b4 g F .text 00000014 ComSetDisconnectEntryState
00000040 g .text 00000000 EntryFromProg
000002c8 g F .text 00000010 ComIsConnectEntryState
0000031c g F .text 00000028 XcpInit
00001020 g F .text 00000134 FlashErase
0000100c g F .text 00000134 FlashErase
00000148 g F .text 00000098 main
00000bc0 g F .text 00000024 NvmDone
00000a48 g F .text 00000084 UartTransmitPacket
00000bb0 g F .text 00000010 NvmVerifyChecksum
000008e8 g F .text 00000044 CpuMemCopy
40001edc g *ABS* 00000000 _stack_end
00001280 g F .text 0000001c FIQ_ISR
0000126c g F .text 0000001c FIQ_ISR
00000acc g F .text 000000b4 UartReceivePacket
40000200 g .text 00000000 _data
000008c4 g F .text 00000004 CopInit
@ -165,10 +165,10 @@ e01fc040 l *ABS* 00000000 MEMMAP
000000f4 g .text 00000000 SetupRAM
00000b90 g F .text 00000010 NvmWrite
0000092c g F .text 0000004c CpuStartUserProgram
000011d8 g F .text 00000048 FlashVerifyChecksum
000011c4 g F .text 00000048 FlashVerifyChecksum
40000200 g .text 00000000 _edata
400006f8 g .bss 00000000 _end
000012b8 g F .text 00000018 UNDEF_ISR
000012a4 g F .text 00000018 UNDEF_ISR
000002d8 g F .text 00000010 ComIsConnected
0000084c g F .text 00000050 BackDoorCheck
00000c74 g F .text 0000001c TimerGet

View File

@ -0,0 +1,7 @@
/**
\defgroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC Bootloader
\brief Bootloader.
\ingroup ARM7_LPC2000_Olimex_LPC_L2294_GCC
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader configuration header file
| File Name: config.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Boot\config.h
* \brief Bootloader configuration header file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@ -46,9 +48,13 @@
* called the moment the user program is about to be started. This could be used to
* de-initialize application specific parts, for example to stop blinking an LED, etc.
*/
/** \brief Frequency of the external crystal oscillator. */
#define BOOT_CPU_XTAL_SPEED_KHZ (20000)
/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (60000)
/** \brief Motorola or Intel style byte ordering. */
#define BOOT_CPU_BYTE_ORDER_MOTOROLA (0)
/** \brief Enable/disable hook function call right before user program start. */
#define BOOT_CPU_USER_PROGRAM_START_HOOK (0)
@ -67,12 +73,19 @@
* CAN controller channel.
*
*/
/** \brief Enable/disable CAN transport layer. */
#define BOOT_COM_CAN_ENABLE (0)
/** \brief Configure the desired CAN baudrate. */
#define BOOT_COM_CAN_BAUDRATE (500000)
/** \brief Configure CAN message ID target->host. */
#define BOOT_COM_CAN_TX_MSG_ID (0x7E1)
/** \brief Configure number of bytes in the target->host CAN message. */
#define BOOT_COM_CAN_TX_MAX_DATA (8)
/** \brief Configure CAN message ID host->target. */
#define BOOT_COM_CAN_RX_MSG_ID (0x667)
/** \brief Configure number of bytes in the host->target CAN message. */
#define BOOT_COM_CAN_RX_MAX_DATA (8)
/** \brief Select the desired CAN peripheral as a zero based index. */
#define BOOT_COM_CAN_CHANNEL_INDEX (0)
/* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE
@ -83,10 +96,15 @@
* on board. The zero-based BOOT_COM_UART_CHANNEL_INDEX selects the UART interface.
*
*/
/** \brief Enable/disable UART transport layer. */
#define BOOT_COM_UART_ENABLE (1)
/** \brief Configure the desired communication speed. */
#define BOOT_COM_UART_BAUDRATE (57600)
/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_UART_TX_MAX_DATA (64)
/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_UART_RX_MAX_DATA (64)
/** \brief Select the desired UART peripheral as a zero based index. */
#define BOOT_COM_UART_CHANNEL_INDEX (0)
@ -101,6 +119,7 @@
* into the bootloader. When desired for security purposes, these hook functions can
* also be implemented in a way that disables the backdoor entry altogether.
*/
/** \brief Enable/disable the backdoor override hook functions. */
#define BOOT_BACKDOOR_HOOKS_ENABLE (0)
@ -113,7 +132,9 @@
* eeproms. The size of the internal memory in kilobytes is specified with configurable
* BOOT_NVM_SIZE_KB.
*/
/** \brief Enable/disable the NVM hook function for supporting additional memory devices. */
#define BOOT_NVM_HOOKS_ENABLE (0)
/** \brief Configure the size of the default memory device (typically flash EEPROM). */
#define BOOT_NVM_SIZE_KB (256)
@ -126,6 +147,7 @@
* set BOOT_COP_HOOKS_ENABLE to be able to initialize and service the watchdog through
* hook functions.
*/
/** \brief Enable/disable the hook functions for controlling the watchdog. */
#define BOOT_COP_HOOKS_ENABLE (0)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| 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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Boot\extflash.c
* \brief Bootloader external flash driver source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -39,45 +41,69 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
/** \brief Value for an invalid flash sector. */
#define FLASH_INVALID_SECTOR (0xff)
/** \brief Value for an invalid flash address. */
#define FLASH_INVALID_ADDRESS (0xffffffff)
/** \brief Standard size of a flash block for writing. */
#define FLASH_WRITE_BLOCK_SIZE (512)
/** \brief Total numbers of sectors in array flashLayout[]. */
#define FLASH_TOTAL_SECTORS (sizeof(flashLayout)/sizeof(flashLayout[0]))
/* C3 Intel flash commands */
/** \brief C3 Intel flash read array command. */
#define FLASH_CMD_READ_ARRAY_MODE (0xFF)
/** \brief C3 Intel flash read id command. */
#define FLASH_CMD_READ_ID_MODE (0x90)
/** \brief C3 Intel flash erase command. */
#define FLASH_CMD_ERASE_MODE (0x20)
/** \brief C3 Intel flash read status command. */
#define FLASH_CMD_READ_STATUS_MODE (0x70)
/** \brief C3 Intel flash change lock command. */
#define FLASH_CMD_CHANGE_LOCK_MODE (0x60)
/** \brief C3 Intel flash unlock sector command. */
#define FLASH_CMD_UNLOCK_SECTOR (0xD0)
/** \brief C3 Intel flash lock sector command. */
#define FLASH_CMD_LOCK_SECTOR (0x01)
/** \brief C3 Intel flash program command. */
#define FLASH_CMD_PROGRAM_MODE (0x40)
/** \brief C3 Intel flash erase confirm command. */
#define FLASH_CMD_ERASE_CONFIRM (0xD0)
/** \brief C3 Intel flash clear status command. */
#define FLASH_CMD_CLEAR_STATUS (0x50)
/* C3 Intel flash info bits */
/** \brief C3 Intel flash lock bit. */
#define FLASH_LOCK_BIT (0x01)
/** \brief C3 Intel flash status ready bit. */
#define FLASH_STATUS_READY_BIT (0x80)
/* C3 Intel flash error codes */
/** \brief C3 Intel flash locked error code. */
#define FLASH_ERR_LOCKED (0x02)
/** \brief C3 Intel flash Vpp range error code. */
#define FLASH_ERR_VPP_RANGE (0x08)
/** \brief C3 Intel flash program error code. */
#define FLASH_ERR_PROGRAM (0x10)
/** \brief C3 Intel flash command sequence error code. */
#define FLASH_ERR_CMD_SEQ (0x10)
/** \brief C3 Intel flash erase error code. */
#define FLASH_ERR_ERASE (0x20)
/* flash operation timeout values */
/** \brief Flash erase timeout value. */
#define FLASH_ERASE_TIMEOUT ((blt_int32u)5000000)
/** \brief Flash program timeout value. */
#define FLASH_PROGRAM_TIMEOUT ((blt_int32u)1000000)
/* supported Intel C3 flash device */
/** \brief Supported Intel C3 flash manufacturer ID. */
#define FLASH_DEV_MAN_ID ((blt_int16u)0x0089)
/** \brief Supported Intel C3 flash device ID. */
#define FLASH_DEV_ID ((blt_int16u)0x88c3)
/* address offsets for reading device information */
/** \brief Offset for reading manufacturer ID. */
#define FLASH_DEVINFO_MAN_ID ((blt_int16u)0x0000)
/** \brief Offset for reading device ID. */
#define FLASH_DEVINFO_DEV_ID ((blt_int16u)0x0001)
/** \brief Offset for reading lock status. */
#define FLASH_DEVINFO_LOCK_STATUS ((blt_int16u)0x0002)
/* functions implemented in a macro for run-time and codesize optimization */
/** \brief Runtime efficient macro for obtaining the manufacturer ID. */
#define ExtFlashGetManID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
FLASH_DEVINFO_MAN_ID))
/** \brief Runtime efficient macro for obtaining the device ID. */
#define ExtFlashGetDevID() (ExtFlashGetDeviceInfo(flashLayout[0].sector_start, \
FLASH_DEVINFO_DEV_ID))
/** \brief Runtime efficient macro for obtaining the lock status. */
#define ExtFlashGetLockStatus(base) (ExtFlashGetDeviceInfo(base, \
FLASH_DEVINFO_LOCK_STATUS))
@ -85,23 +111,25 @@
/****************************************************************************************
* Type definitions
****************************************************************************************/
/* flash sector descriptor type */
/** \brief 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 */
blt_addr sector_start; /**< sector start address */
blt_int32u sector_size; /**< sector size in bytes */
blt_int8u sector_num; /**< sector number */
} tFlashSector;
/* 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.
/** \brief Structure type for grouping flash block information.
* \details 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];
blt_addr base_addr; /**< Base address for the flash operation.*/
blt_int8u data[FLASH_WRITE_BLOCK_SIZE]; /**< Data array. */
} tFlashBlockInfo;
@ -111,7 +139,7 @@ typedef struct
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);
blt_int8u *data, blt_int32u 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);
@ -123,11 +151,12 @@ 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.
/** \brief Array wit the layout of the flash memory.
* \details 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[] =
{
@ -176,24 +205,25 @@ static const tFlashSector flashLayout[] =
/****************************************************************************************
* 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.
/** \brief Local variable with information about the flash block that is currently
* being operated on.
* \details 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.
/************************************************************************************//**
** \brief Initializes the flash driver.
** \return none.
**
****************************************************************************************/
void ExtFlashInit(void)
@ -208,15 +238,14 @@ void ExtFlashInit(void)
} /*** 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.
/************************************************************************************//**
** \brief Writes the data to flash.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -237,15 +266,14 @@ blt_int8u ExtFlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** 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.
/************************************************************************************//**
** \brief Erases the flash memory. Note that this function also checks that no
** data is erased outside the flash memory region.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
@ -278,11 +306,9 @@ blt_int8u ExtFlashErase(blt_addr addr, blt_int32u len)
} /*** end of ExtFlashErase ***/
/****************************************************************************************
** NAME: ExtFlashDone
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise.
** DESCRIPTION: Finilizes the flash driver operations.
/************************************************************************************//**
** \brief Finalizes the flash driver operations.
** \return BLT_TRUE is succesful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool ExtFlashDone(void)
@ -300,13 +326,12 @@ blt_bool ExtFlashDone(void)
} /*** 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.
/************************************************************************************//**
** \brief Copies data currently in flash to the block->data and sets the
** base address.
** \param block Pointer to flash block info structure to operate on.
** \param address Base address of the block data.
** \return BLT_TRUE is succesful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
@ -329,14 +354,12 @@ static blt_bool ExtFlashInitBlock(tFlashBlockInfo *block, blt_addr address)
} /*** 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.
/************************************************************************************//**
** \brief Switches blocks by programming the current one and initializing the next.
** \param block Pointer to flash block info structure to operate on.
** \param base_addr Base address for the next block.
** \return The pointer of the block info struct that is no being used, or a NULL
** pointer in case of error.
**
****************************************************************************************/
static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr)
@ -356,21 +379,20 @@ static tFlashBlockInfo *ExtFlashSwitchBlock(tFlashBlockInfo *block, blt_addr bas
} /*** 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.
/************************************************************************************//**
** \brief 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.
** \param block Pointer to flash block info structure to operate on.
** \param address Flash destination address.
** \param data Pointer to the byte array with data.
** \param len Number of bytes to add to the block.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
blt_int8u *data, blt_int16u len)
blt_int8u *data, blt_int32u len)
{
blt_addr current_base_addr;
blt_int8u *dst;
@ -431,12 +453,10 @@ static blt_bool ExtFlashAddToBlock(tFlashBlockInfo *block, blt_addr address,
} /*** 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.
/************************************************************************************//**
** \brief Programs FLASH_WRITE_BLOCK_SIZE bytes to flash from the block->data array.
** \param block Pointer to flash block info structure to operate on.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
@ -487,11 +507,10 @@ static blt_bool ExtFlashWriteBlock(tFlashBlockInfo *block)
} /*** 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.
/************************************************************************************//**
** \brief Erases the flash sector.
** \param sector_base Base address of the sector to erase.
** \return BLT_TRUE if successful, BLT_FALSE otherwise.
**
****************************************************************************************/
static blt_bool ExtFlashEraseSector(blt_addr sector_base)
@ -530,11 +549,10 @@ static blt_bool ExtFlashEraseSector(blt_addr sector_base)
} /*** end of ExtFlashEraseSector ***/
/****************************************************************************************
** NAME: ExtFlashLockSector
** PARAMETER: sector_base base address of the sector to lock.
** RETURN VALUE: none
** DESCRIPTION: Locks the flash sector.
/************************************************************************************//**
** \brief Locks the flash sector.
** \param sector_base Base address of the sector to lock.
** \return none.
**
****************************************************************************************/
static void ExtFlashLockSector(blt_addr sector_base)
@ -557,11 +575,10 @@ static void ExtFlashLockSector(blt_addr sector_base)
} /*** end of ExtFlashLockSector ***/
/****************************************************************************************
** NAME: ExtFlashUnlockSector
** PARAMETER: sector_base base address of the sector to unlock.
** RETURN VALUE: none
** DESCRIPTION: Unlocks the flash sector.
/************************************************************************************//**
** \brief Unlocks the flash sector.
** \param sector_base Base address of the sector to unlock.
** \return none.
**
****************************************************************************************/
static void ExtFlashUnlockSector(blt_addr sector_base)
@ -584,12 +601,11 @@ static void ExtFlashUnlockSector(blt_addr sector_base)
} /*** 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.
/************************************************************************************//**
** \brief Obtains device information from the flash device.
** \param sector_base Base address of the sector to get the info from.
** \param info Identifier to the type of info to obtain.
** \return Device info.
**
****************************************************************************************/
static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
@ -610,11 +626,10 @@ static blt_int16u ExtFlashGetDeviceInfo(blt_addr sector_base, blt_int16u info)
} /*** 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.
/************************************************************************************//**
** \brief Determines the flash sector the address is in.
** \param address Address in the flash sector.
** \return Flash sector number or FLASH_INVALID_SECTOR
**
****************************************************************************************/
static blt_int8u ExtFlashGetSector(blt_addr address)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| 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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Boot\extflash.h
* \brief Bootloader external flash driver header file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef EXTFLASH_H
#define EXTFLASH_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader callback source file
| File Name: hooks.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Boot\hooks.c
* \brief Bootloader callback source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,11 +43,9 @@
****************************************************************************************/
#if (BOOT_BACKDOOR_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: BackDoorInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the backdoor entry option.
/************************************************************************************//**
** \brief Initializes the backdoor entry option.
** \return none.
**
****************************************************************************************/
void BackDoorInitHook(void)
@ -55,11 +55,9 @@ void BackDoorInitHook(void)
} /*** end of BackDoorInitHook ***/
/****************************************************************************************
** NAME: BackDoorEntryHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
** DESCRIPTION: Checks if a backdoor entry is requested.
/************************************************************************************//**
** \brief Checks if a backdoor entry is requested.
** \return BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool BackDoorEntryHook(void)
@ -80,15 +78,13 @@ blt_bool BackDoorEntryHook(void)
****************************************************************************************/
#if (BOOT_CPU_USER_PROGRAM_START_HOOK > 0)
/****************************************************************************************
** NAME: CpuUserProgramStartHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
** DESCRIPTION: Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
/************************************************************************************//**
** \brief Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
** \return BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
**
****************************************************************************************/
blt_bool CpuUserProgramStartHook(void)
@ -105,12 +101,10 @@ blt_bool CpuUserProgramStartHook(void)
#if (BOOT_NVM_HOOKS_ENABLE > 0)
#include "extflash.h"
/****************************************************************************************
** NAME: NvmInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the start of the internal NVM driver
** initialization routine.
/************************************************************************************//**
** \brief Callback that gets called at the start of the internal NVM driver
** initialization routine.
** \return none.
**
****************************************************************************************/
void NvmInitHook(void)
@ -120,20 +114,18 @@ void NvmInitHook(void)
} /*** end of NvmInitHook ***/
/****************************************************************************************
** NAME: NvmWriteHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
**
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -143,18 +135,17 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** end of NvmWriteHook ***/
/****************************************************************************************
** NAME: NvmEraseHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
@ -164,11 +155,9 @@ blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
} /*** end of NvmEraseHook ***/
/****************************************************************************************
** NAME: NvmDoneHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise.
** DESCRIPTION: Callback that gets called at the end of the NVM programming session.
/************************************************************************************//**
** \brief Callback that gets called at the end of the NVM programming session.
** \return BLT_TRUE is successful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool NvmDoneHook(void)
@ -184,13 +173,11 @@ blt_bool NvmDoneHook(void)
****************************************************************************************/
#if (BOOT_COP_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: CopInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
** \return none.
**
****************************************************************************************/
void CopInitHook(void)
@ -198,14 +185,12 @@ void CopInitHook(void)
} /*** end of CopInitHook ***/
/****************************************************************************************
** NAME: CopServiceHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
** \return none.
**
****************************************************************************************/
void CopServiceHook(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader application source file
| File Name: main.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Boot\main.c
* \brief Bootloader application source file.
* \ingroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -42,12 +44,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -68,13 +68,11 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
/************************************************************************************//**
** \brief Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface source file
| File Name: boot.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\boot.c
* \brief Demo program bootloader interface source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -35,11 +37,9 @@
#include "header.h" /* generic header */
/****************************************************************************************
** NAME: BootActivate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Bootloader activation function.
/************************************************************************************//**
** \brief Bootloader activation function.
** \return none.
**
****************************************************************************************/
static void BootActivate(void)
@ -61,10 +61,14 @@ static void BootActivate(void)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define UART_DLAB (0x80) /* divisor latch access bit */
#define UART_MODE_8N1 (0x03) /* 8 data and 1 stop bit, no parity */
#define UART_FIFO_RX1 (0x07) /* FIFO reset and RX FIFO 1 deep */
#define UART_RDR (0x01) /* receiver data ready */
/** \brief Divisor latch access bit. */
#define UART_DLAB (0x80)
/** \brief 8 data and 1 stop bit, no parity. */
#define UART_MODE_8N1 (0x03)
/** \brief FIFO reset and RX FIFO 1 deep. */
#define UART_FIFO_RX1 (0x07)
/** \brief Receiver data ready. */
#define UART_RDR (0x01)
/****************************************************************************************
@ -73,11 +77,9 @@ static void BootActivate(void)
static unsigned char UartReceiveByte(unsigned char *data);
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the UART communication interface
/************************************************************************************//**
** \brief Initializes the UART communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -111,12 +113,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)
@ -164,11 +164,10 @@ void BootComCheckActivationRequest(void)
} /*** end of BootComCheckActivationRequest ***/
/****************************************************************************************
** NAME: UartReceiveByte
** PARAMETER: data pointer to byte where the data is to be stored.
** RETURN VALUE: 1 if a byte was received, 0 otherwise.
** DESCRIPTION: Receives a communication interface byte if one is present.
/************************************************************************************//**
** \brief Receives a communication interface byte if one is present.
** \param data Pointer to byte where the data is to be stored.
** \return 1 if a byte was received, 0 otherwise.
**
****************************************************************************************/
static unsigned char UartReceiveByte(unsigned char *data)
@ -195,31 +194,40 @@ static unsigned char UartReceiveByte(unsigned char *data)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define CAN_TBS1 (0x00000004) /* transmit buffer 1 idle */
#define CAN_TCS1 (0x00000008) /* transmit buffer 1 complete */
#define CAN_RRB (0x04) /* receive buffer release */
#define CAN_RBS (0x01) /* receive buffer status */
#define CAN_TR (0x01) /* transmission request */
#define CAN_STB1 (0x20) /* select tx buffer 1 for transmit */
/** \brief Transmit buffer 1 idle. */
#define CAN_TBS1 (0x00000004)
/** \brief Transmit buffer 1 complete. */
#define CAN_TCS1 (0x00000008)
/** \brief Receive buffer release. */
#define CAN_RRB (0x04)
/** \brief Receive buffer status. */
#define CAN_RBS (0x01)
/** \brief Transmission request. */
#define CAN_TR (0x01)
/** \brief Select tx buffer 1 for transmit. */
#define CAN_STB1 (0x20)
/****************************************************************************************
* Type definitions
****************************************************************************************/
/** \brief Structure type for grouping CAN bus timing related information. */
typedef struct t_can_bus_timing
{
unsigned char tseg1; /* CAN time segment 1 */
unsigned char tseg2; /* CAN time segment 2 */
} tCanBusTiming; /* bus timing structure type */
unsigned char tseg1; /**< CAN time segment 1 */
unsigned char tseg2; /**< CAN time segment 2 */
} tCanBusTiming;
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
/* According to the CAN protocol 1 bit-time can be made up of between 8..25 time quanta
* (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC always being 1.
* The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) * 100%. This array contains
* possible and valid time quanta configurations with a sample point between 68..78%.
/** \brief CAN bittiming table for dynamically calculating the bittiming settings.
* \details According to the CAN protocol 1 bit-time can be made up of between 8..25
* time quanta (TQ). The total TQ in a bit is SYNC + TSEG1 + TSEG2 with SYNC
* always being 1. The sample point is (SYNC + TSEG1) / (SYNC + TSEG1 + SEG2) *
* 100%. This array contains possible and valid time quanta configurations with
* a sample point between 68..78%.
*/
static const tCanBusTiming canTiming[] =
{ /* TQ | TSEG1 | TSEG2 | SP */
@ -245,13 +253,12 @@ static const tCanBusTiming canTiming[] =
};
/****************************************************************************************
** NAME: CanGetSpeedConfig
** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000.
** btr Pointer to where the value for register CANxBTR will be stored.
** RETURN VALUE: 1 if the CAN bustiming register values were found, 0 otherwise.
** DESCRIPTION: Search algorithm to match the desired baudrate to a possible bus
** timing configuration.
/************************************************************************************//**
** \brief Search algorithm to match the desired baudrate to a possible bus
** timing configuration.
** \param baud The desired baudrate in kbps. Valid values are 10..1000.
** \param btr Pointer to where the value for register CANxBTR will be stored.
** \return 1 if the CAN bustiming register values were found, 0 otherwise.
**
****************************************************************************************/
static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned long *btr)
@ -283,11 +290,9 @@ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned long *btr)
} /*** end of CanGetSpeedConfig ***/
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the CAN communication interface
/************************************************************************************//**
** \brief Initializes the CAN communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -313,12 +318,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface header file
| File Name: boot.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\boot.h
* \brief Demo program bootloader interface header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: generic header file
| File Name: header.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\header.h
* \brief Generic header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver source file
| File Name: irq.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\irq.c
* \brief IRQ driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,17 +40,17 @@
/****************************************************************************************
* Local data definitions
****************************************************************************************/
static unsigned long oldInterruptStatus; /* used for global interrupt en/disable */
static unsigned char interruptNesting = 0; /* used for global interrupt en/disable */
/** \brief Interrupt status before disabling. Used for global interrupt en/disable. */
static unsigned long oldInterruptStatus;
/** \brief Interrupt nesting counter. Used for global interrupt en/disable. */
static unsigned char interruptNesting = 0;
/****************************************************************************************
** NAME: IrqGetCPSR
** PARAMETER: none
** RETURN VALUE: CPSR value
** DESCRIPTION: Obtains current value of CPSR CPU register.
** NOTE: Derived from a sample by R O Software that is Copyright 2004,
** R O SoftWare, and can be used for hobby or commercial purposes.
/************************************************************************************//**
** \brief Obtains current value of CPSR CPU register. Derived from a sample by R O
** Software that is Copyright 2004, R O SoftWare, and can be used for hobby
** or commercial purposes.
** \return CPSR value.
**
****************************************************************************************/
static unsigned long IrqGetCPSR(void)
@ -59,13 +61,12 @@ static unsigned long IrqGetCPSR(void)
} /*** end of IrqGetCPSR ***/
/****************************************************************************************
** NAME: IrqSetCPSR
** PARAMETER: CPSR value
** RETURN VALUE: none
** DESCRIPTION: Update value of CPSR CPU register.
** NOTE: Derived from a sample by R O Software that is Copyright 2004,
** R O SoftWare, and can be used for hobby or commercial purposes.
/************************************************************************************//**
** \brief Update value of CPSR CPU register. Derived from a sample by R O
** Software that is Copyright 2004, R O SoftWare, and can be used for hobby
** or commercial purposes.
** \param val CPSR value.
** \return none.
**
****************************************************************************************/
static void IrqSetCPSR(unsigned long val)
@ -74,12 +75,10 @@ static void IrqSetCPSR(unsigned long val)
} /*** end of IrqSetCPSR ***/
/****************************************************************************************
** NAME: IrqInterruptEnable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
/************************************************************************************//**
** \brief Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
** \return none.
**
****************************************************************************************/
void IrqInterruptEnable(void)
@ -91,14 +90,12 @@ void IrqInterruptEnable(void)
} /*** end of IrqInterruptEnable ***/
/****************************************************************************************
** NAME: HwInterruptDisable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
/************************************************************************************//**
** \brief Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptDisable(void)
@ -115,13 +112,11 @@ void IrqInterruptDisable(void)
} /*** end of IrqInterruptDisable ***/
/****************************************************************************************
** NAME: IrqInterruptRestore
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
/************************************************************************************//**
** \brief Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptRestore(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver header file
| File Name: irq.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\irq.h
* \brief IRQ driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver source file
| File Name: led.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\led.c
* \brief LED driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,14 +40,13 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define LED_TOGGLE_MS (500) /* toggle interval time in millisecodns */
/** \brief Toggle interval time in milliseconds. */
#define LED_TOGGLE_MS (500)
/****************************************************************************************
** NAME: LedInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the LED.
/************************************************************************************//**
** \brief Initializes the LED.
** \return none.
**
****************************************************************************************/
void LedInit(void)
@ -57,11 +58,9 @@ void LedInit(void)
} /*** end of LedInit ***/
/****************************************************************************************
** NAME: LedToggle
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Toggles the LED at a fixed time interval.
/************************************************************************************//**
** \brief Toggles the LED at a fixed time interval.
** \return none.
**
****************************************************************************************/
void LedToggle(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver header file
| File Name: led.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\led.h
* \brief LED driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program application source file
| File Name: main.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\main.c
* \brief Demo program application source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,12 +43,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -72,13 +72,11 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
/************************************************************************************//**
** \brief Initializes the microcontroller. The Fpll is set to 60MHz and Fvpb is
** configured equal to Fpll. The GPIO pin of the status LED is configured
** as digital output.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -0,0 +1,7 @@
/**
\defgroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC User Program
\brief User Program.
\ingroup ARM7_LPC2000_Olimex_LPC_L2294_GCC
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver source file
| File Name: timer.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\timer.c
* \brief Timer driver source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,6 +40,9 @@
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Local variable for storing the number of milliseconds that have elapsed since
* startup.
*/
static unsigned long millisecond_counter;
@ -47,11 +52,9 @@ static unsigned long millisecond_counter;
extern void TIMER0_ISR(void);
/****************************************************************************************
** NAME: TimerInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the timer.
/************************************************************************************//**
** \brief Initializes the timer.
** \return none.
**
****************************************************************************************/
void TimerInit(void)
@ -73,12 +76,10 @@ void TimerInit(void)
} /*** end of TimerInit ***/
/****************************************************************************************
** NAME: TimerUpdate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Updates the millisecond timer. Should be called every millisecond by
** the timer interrupt service routine.
/************************************************************************************//**
** \brief Updates the millisecond timer. Should be called every millisecond by
** the timer interrupt service routine.
** \return none.
**
****************************************************************************************/
void TimerUpdate(void)
@ -88,11 +89,10 @@ void TimerUpdate(void)
} /*** end of TimerUpdate ***/
/****************************************************************************************
** NAME: TimerSet
** PARAMETER: timer_value initialize value of the millisecond timer.
** RETURN VALUE: none
** DESCRIPTION: Sets the initial counter value of the millisecond timer.
/************************************************************************************//**
** \brief Sets the initial counter value of the millisecond timer.
** \param timer_value initialize value of the millisecond timer.
** \return none.
**
****************************************************************************************/
void TimerSet(unsigned long timer_value)
@ -102,11 +102,9 @@ void TimerSet(unsigned long timer_value)
} /*** end of TimerSet ***/
/****************************************************************************************
** NAME: TimerGet
** PARAMETER: none
** RETURN VALUE: current value of the millisecond timer
** DESCRIPTION: Obtains the counter value of the millisecond timer.
/************************************************************************************//**
** \brief Obtains the counter value of the millisecond timer.
** \return Current value of the millisecond timer.
**
****************************************************************************************/
unsigned long TimerGet(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver header file
| File Name: timer.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\timer.h
* \brief Timer driver header file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program interrupt vectors source file
| File Name: vectors.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>.
|
/************************************************************************************//**
* \file Demo\ARM7_LPC2000_Olimex_LPC_L2294_GCC\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -44,11 +46,9 @@ void __attribute__ ((interrupt("FIQ"))) FIQ_ISR(void);
void __attribute__ ((interrupt("UNDEF"))) UNDEF_ISR(void);
/****************************************************************************************
** NAME: TIMER0_ISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Timer0 exception routine.
/************************************************************************************//**
** \brief Timer0 exception routine.
** \return none.
**
****************************************************************************************/
void TIMER0_ISR(void)
@ -62,11 +62,9 @@ void TIMER0_ISR(void)
} /*** end of TIMER0_ISR ***/
/****************************************************************************************
** NAME: SWI_ISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: SWI exception routine.
/************************************************************************************//**
** \brief SWI exception routine.
** \return none.
**
****************************************************************************************/
void SWI_ISR(void)
@ -76,11 +74,9 @@ void SWI_ISR(void)
} /*** end of SWI_ISR ***/
/****************************************************************************************
** NAME: FIQ_ISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: FIQ exception routine.
/************************************************************************************//**
** \brief FIQ exception routine.
** \return none.
**
****************************************************************************************/
void FIQ_ISR(void)
@ -90,11 +86,9 @@ void FIQ_ISR(void)
} /*** end of FIQ_ISR ***/
/****************************************************************************************
** NAME: UNDEF_ISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: UNDEF exception routine.
/************************************************************************************//**
** \brief UNDEF exception routine.
** \return none.
**
****************************************************************************************/
void UNDEF_ISR(void)

View File

@ -0,0 +1,8 @@
/**
\defgroup ARM7_LPC2000_Olimex_LPC_L2294_GCC Demo for Olimex LPC-L2294/GCC
\brief Preconfigured programs for the Olimex LPC-L2294 and the GCC compiler.
\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
for detailed getting started instructions.
*/

View File

@ -562,7 +562,7 @@ Linker script and memory map
0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= __FLASH_segment_end__)), error: .init is too large to fit in FLASH memory segment)
0x0000027c __text_load_start__ = ALIGN (__init_end__, 0x4)
.text 0x0000027c 0x14b0
.text 0x0000027c 0x14a0
0x0000027c __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
@ -586,193 +586,193 @@ Linker script and memory map
.text.FlashSwitchBlock
0x00000390 0x58 THUMB Flash Debug/../../obj/flash.o
.text.FlashAddToBlock
0x000003e8 0xa0 THUMB Flash Debug/../../obj/flash.o
0x000003e8 0x94 THUMB Flash Debug/../../obj/flash.o
.text.FlashInit
0x00000488 0x24 THUMB Flash Debug/../../obj/flash.o
0x00000488 FlashInit
0x0000047c 0x24 THUMB Flash Debug/../../obj/flash.o
0x0000047c FlashInit
.text.FlashWrite
0x000004ac 0x54 THUMB Flash Debug/../../obj/flash.o
0x000004ac FlashWrite
0x000004a0 0x50 THUMB Flash Debug/../../obj/flash.o
0x000004a0 FlashWrite
.text.FlashErase
0x00000500 0x124 THUMB Flash Debug/../../obj/flash.o
0x00000500 FlashErase
0x000004f0 0x124 THUMB Flash Debug/../../obj/flash.o
0x000004f0 FlashErase
.text.FlashWriteChecksum
0x00000624 0x48 THUMB Flash Debug/../../obj/flash.o
0x00000624 FlashWriteChecksum
0x00000614 0x48 THUMB Flash Debug/../../obj/flash.o
0x00000614 FlashWriteChecksum
.text.FlashVerifyChecksum
0x0000066c 0x48 THUMB Flash Debug/../../obj/flash.o
0x0000066c FlashVerifyChecksum
0x0000065c 0x48 THUMB Flash Debug/../../obj/flash.o
0x0000065c FlashVerifyChecksum
.text.FlashDone
0x000006b4 0x38 THUMB Flash Debug/../../obj/flash.o
0x000006b4 FlashDone
.text.NvmInit 0x000006ec 0x10 THUMB Flash Debug/../../obj/nvm.o
0x000006ec NvmInit
0x000006a4 0x38 THUMB Flash Debug/../../obj/flash.o
0x000006a4 FlashDone
.text.NvmInit 0x000006dc 0x10 THUMB Flash Debug/../../obj/nvm.o
0x000006dc NvmInit
.text.NvmWrite
0x000006fc 0x10 THUMB Flash Debug/../../obj/nvm.o
0x000006fc NvmWrite
0x000006ec 0x10 THUMB Flash Debug/../../obj/nvm.o
0x000006ec NvmWrite
.text.NvmErase
0x0000070c 0x10 THUMB Flash Debug/../../obj/nvm.o
0x0000070c NvmErase
0x000006fc 0x10 THUMB Flash Debug/../../obj/nvm.o
0x000006fc NvmErase
.text.NvmVerifyChecksum
0x0000071c 0x10 THUMB Flash Debug/../../obj/nvm.o
0x0000071c NvmVerifyChecksum
.text.NvmDone 0x0000072c 0x18 THUMB Flash Debug/../../obj/nvm.o
0x0000072c NvmDone
0x0000070c 0x10 THUMB Flash Debug/../../obj/nvm.o
0x0000070c NvmVerifyChecksum
.text.NvmDone 0x0000071c 0x18 THUMB Flash Debug/../../obj/nvm.o
0x0000071c NvmDone
.text.TimerInit
0x00000744 0x20 THUMB Flash Debug/../../obj/timer.o
0x00000744 TimerInit
0x00000734 0x20 THUMB Flash Debug/../../obj/timer.o
0x00000734 TimerInit
.text.TimerReset
0x00000764 0xc THUMB Flash Debug/../../obj/timer.o
0x00000764 TimerReset
0x00000754 0xc THUMB Flash Debug/../../obj/timer.o
0x00000754 TimerReset
.text.TimerUpdate
0x00000770 0x1c THUMB Flash Debug/../../obj/timer.o
0x00000770 TimerUpdate
0x00000760 0x1c THUMB Flash Debug/../../obj/timer.o
0x00000760 TimerUpdate
.text.TimerGet
0x0000078c 0x18 THUMB Flash Debug/../../obj/timer.o
0x0000078c TimerGet
0x0000077c 0x18 THUMB Flash Debug/../../obj/timer.o
0x0000077c TimerGet
.text.UartInit
0x000007a4 0xb8 THUMB Flash Debug/../../obj/uart.o
0x000007a4 UartInit
0x00000794 0xb8 THUMB Flash Debug/../../obj/uart.o
0x00000794 UartInit
.text.UartTransmitPacket
0x0000085c 0x8c THUMB Flash Debug/../../obj/uart.o
0x0000085c UartTransmitPacket
0x0000084c 0x8c THUMB Flash Debug/../../obj/uart.o
0x0000084c UartTransmitPacket
.text.UartReceivePacket
0x000008e8 0x7c THUMB Flash Debug/../../obj/uart.o
0x000008e8 UartReceivePacket
0x000008d8 0x7c THUMB Flash Debug/../../obj/uart.o
0x000008d8 UartReceivePacket
.text.AssertFailure
0x00000964 0x1c THUMB Flash Debug/../../obj/assert.o
0x00000964 AssertFailure
0x00000954 0x1c THUMB Flash Debug/../../obj/assert.o
0x00000954 AssertFailure
.text.BackDoorCheck
0x00000980 0x40 THUMB Flash Debug/../../obj/backdoor.o
0x00000980 BackDoorCheck
0x00000970 0x40 THUMB Flash Debug/../../obj/backdoor.o
0x00000970 BackDoorCheck
.text.BackDoorInit
0x000009c0 0x28 THUMB Flash Debug/../../obj/backdoor.o
0x000009c0 BackDoorInit
0x000009b0 0x28 THUMB Flash Debug/../../obj/backdoor.o
0x000009b0 BackDoorInit
.text.BootInit
0x000009e8 0x30 THUMB Flash Debug/../../obj/boot.o
0x000009e8 BootInit
0x000009d8 0x30 THUMB Flash Debug/../../obj/boot.o
0x000009d8 BootInit
.text.BootTask
0x00000a18 0x28 THUMB Flash Debug/../../obj/boot.o
0x00000a18 BootTask
.text.ComInit 0x00000a40 0x38 THUMB Flash Debug/../../obj/com.o
0x00000a40 ComInit
.text.ComTask 0x00000a78 0x24 THUMB Flash Debug/../../obj/com.o
0x00000a78 ComTask
.text.ComFree 0x00000a9c 0x2 THUMB Flash Debug/../../obj/com.o
0x00000a9c ComFree
*fill* 0x00000a9e 0x2 00
0x00000a08 0x28 THUMB Flash Debug/../../obj/boot.o
0x00000a08 BootTask
.text.ComInit 0x00000a30 0x38 THUMB Flash Debug/../../obj/com.o
0x00000a30 ComInit
.text.ComTask 0x00000a68 0x24 THUMB Flash Debug/../../obj/com.o
0x00000a68 ComTask
.text.ComFree 0x00000a8c 0x2 THUMB Flash Debug/../../obj/com.o
0x00000a8c ComFree
*fill* 0x00000a8e 0x2 00
.text.ComTransmitPacket
0x00000aa0 0x18 THUMB Flash Debug/../../obj/com.o
0x00000aa0 ComTransmitPacket
0x00000a90 0x18 THUMB Flash Debug/../../obj/com.o
0x00000a90 ComTransmitPacket
.text.ComSetConnectEntryState
0x00000ab8 0xc THUMB Flash Debug/../../obj/com.o
0x00000ab8 ComSetConnectEntryState
0x00000aa8 0xc THUMB Flash Debug/../../obj/com.o
0x00000aa8 ComSetConnectEntryState
.text.ComIsConnected
0x00000ac4 0x10 THUMB Flash Debug/../../obj/com.o
0x00000ac4 ComIsConnected
.text.CopInit 0x00000ad4 0x2 THUMB Flash Debug/../../obj/cop.o
0x00000ad4 CopInit
0x00000ab4 0x10 THUMB Flash Debug/../../obj/com.o
0x00000ab4 ComIsConnected
.text.CopInit 0x00000ac4 0x2 THUMB Flash Debug/../../obj/cop.o
0x00000ac4 CopInit
.text.CopService
0x00000ad6 0x2 THUMB Flash Debug/../../obj/cop.o
0x00000ad6 CopService
0x00000ac6 0x2 THUMB Flash Debug/../../obj/cop.o
0x00000ac6 CopService
.text.XcpSetCtoError
0x00000ad8 0x14 THUMB Flash Debug/../../obj/xcp.o
.text.XcpInit 0x00000aec 0x1c THUMB Flash Debug/../../obj/xcp.o
0x00000aec XcpInit
0x00000ac8 0x14 THUMB Flash Debug/../../obj/xcp.o
.text.XcpInit 0x00000adc 0x1c THUMB Flash Debug/../../obj/xcp.o
0x00000adc XcpInit
.text.XcpIsConnected
0x00000b08 0x10 THUMB Flash Debug/../../obj/xcp.o
0x00000b08 XcpIsConnected
0x00000af8 0x10 THUMB Flash Debug/../../obj/xcp.o
0x00000af8 XcpIsConnected
.text.XcpPacketTransmitted
0x00000b18 0x10 THUMB Flash Debug/../../obj/xcp.o
0x00000b18 XcpPacketTransmitted
0x00000b08 0x10 THUMB Flash Debug/../../obj/xcp.o
0x00000b08 XcpPacketTransmitted
.text.XcpPacketReceived
0x00000b28 0x204 THUMB Flash Debug/../../obj/xcp.o
0x00000b28 XcpPacketReceived
0x00000b18 0x204 THUMB Flash Debug/../../obj/xcp.o
0x00000b18 XcpPacketReceived
.text.SystemHFClockGet
0x00000d2c 0x98 THUMB Flash Debug/../../obj/system_efm32.o
0x00000d2c SystemHFClockGet
0x00000d1c 0x98 THUMB Flash Debug/../../obj/system_efm32.o
0x00000d1c SystemHFClockGet
.text.SystemCoreClockGet
0x00000dc4 0x28 THUMB Flash Debug/../../obj/system_efm32.o
0x00000dc4 SystemCoreClockGet
0x00000db4 0x28 THUMB Flash Debug/../../obj/system_efm32.o
0x00000db4 SystemCoreClockGet
.text.SystemInit
0x00000dec 0x2 THUMB Flash Debug/../../obj/system_efm32.o
0x00000dec SystemInit
0x00000ddc 0x2 THUMB Flash Debug/../../obj/system_efm32.o
0x00000ddc SystemInit
.text.SystemLFRCOClockGet
0x00000dee 0x6 THUMB Flash Debug/../../obj/system_efm32.o
0x00000dee SystemLFRCOClockGet
0x00000dde 0x6 THUMB Flash Debug/../../obj/system_efm32.o
0x00000dde SystemLFRCOClockGet
.text.SystemLFXOClockGet
0x00000df4 0xc THUMB Flash Debug/../../obj/system_efm32.o
0x00000df4 SystemLFXOClockGet
0x00000de4 0xc THUMB Flash Debug/../../obj/system_efm32.o
0x00000de4 SystemLFXOClockGet
.text.CMU_FlashWaitStateMax
0x00000e00 0x30 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000df0 0x30 THUMB Flash Debug/../../obj/efm32_cmu.o
.text.CMU_FlashWaitStateControl
0x00000e30 0x54 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000e20 0x54 THUMB Flash Debug/../../obj/efm32_cmu.o
.text.CMU_Sync
0x00000e84 0x14 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000e74 0x14 THUMB Flash Debug/../../obj/efm32_cmu.o
.text.CMU_LFClkGet
0x00000e98 0x48 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000e88 0x48 THUMB Flash Debug/../../obj/efm32_cmu.o
.text.CMU_ClockDivSet
0x00000ee0 0x12c THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000ee0 CMU_ClockDivSet
0x00000ed0 0x12c THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000ed0 CMU_ClockDivSet
.text.CMU_ClockEnable
0x0000100c 0x70 THUMB Flash Debug/../../obj/efm32_cmu.o
0x0000100c CMU_ClockEnable
0x00000ffc 0x70 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00000ffc CMU_ClockEnable
.text.CMU_ClockSelectGet
0x0000107c 0x6c THUMB Flash Debug/../../obj/efm32_cmu.o
0x0000107c CMU_ClockSelectGet
0x0000106c 0x6c THUMB Flash Debug/../../obj/efm32_cmu.o
0x0000106c CMU_ClockSelectGet
.text.CMU_ClockFreqGet
0x000010e8 0x13c THUMB Flash Debug/../../obj/efm32_cmu.o
0x000010e8 CMU_ClockFreqGet
0x000010d8 0x13c THUMB Flash Debug/../../obj/efm32_cmu.o
0x000010d8 CMU_ClockFreqGet
.text.CMU_OscillatorEnable
0x00001224 0x54 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00001224 CMU_OscillatorEnable
0x00001214 0x54 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00001214 CMU_OscillatorEnable
.text.CMU_ClockSelectSet
0x00001278 0xc8 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00001278 CMU_ClockSelectSet
0x00001268 0xc8 THUMB Flash Debug/../../obj/efm32_cmu.o
0x00001268 CMU_ClockSelectSet
.text.EMU_UpdateOscConfig
0x00001340 0x14 THUMB Flash Debug/../../obj/efm32_emu.o
0x00001340 EMU_UpdateOscConfig
0x00001330 0x14 THUMB Flash Debug/../../obj/efm32_emu.o
0x00001330 EMU_UpdateOscConfig
.text.GPIO_DriveModeSet
0x00001354 0x18 THUMB Flash Debug/../../obj/efm32_gpio.o
0x00001354 GPIO_DriveModeSet
0x00001344 0x18 THUMB Flash Debug/../../obj/efm32_gpio.o
0x00001344 GPIO_DriveModeSet
.text.GPIO_PinModeSet
0x0000136c 0x80 THUMB Flash Debug/../../obj/efm32_gpio.o
0x0000136c GPIO_PinModeSet
0x0000135c 0x80 THUMB Flash Debug/../../obj/efm32_gpio.o
0x0000135c GPIO_PinModeSet
.text.LEUART_Sync
0x000013ec 0xe THUMB Flash Debug/../../obj/efm32_leuart.o
*fill* 0x000013fa 0x2 00
0x000013dc 0xe THUMB Flash Debug/../../obj/efm32_leuart.o
*fill* 0x000013ea 0x2 00
.text.LEUART_BaudrateSet
0x000013fc 0x4c THUMB Flash Debug/../../obj/efm32_leuart.o
0x000013fc LEUART_BaudrateSet
0x000013ec 0x4c THUMB Flash Debug/../../obj/efm32_leuart.o
0x000013ec LEUART_BaudrateSet
.text.LEUART_Enable
0x00001448 0x1c THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001448 LEUART_Enable
0x00001438 0x1c THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001438 LEUART_Enable
.text.LEUART_FreezeEnable
0x00001464 0x14 THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001464 LEUART_FreezeEnable
0x00001454 0x14 THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001454 LEUART_FreezeEnable
.text.LEUART_Init
0x00001478 0x50 THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001478 LEUART_Init
0x00001468 0x50 THUMB Flash Debug/../../obj/efm32_leuart.o
0x00001468 LEUART_Init
.text.LEUART_Rx
0x000014c8 0xc THUMB Flash Debug/../../obj/efm32_leuart.o
0x000014c8 LEUART_Rx
0x000014b8 0xc THUMB Flash Debug/../../obj/efm32_leuart.o
0x000014b8 LEUART_Rx
.text.LEUART_Tx
0x000014d4 0x1c THUMB Flash Debug/../../obj/efm32_leuart.o
0x000014d4 LEUART_Tx
0x000014c4 0x1c THUMB Flash Debug/../../obj/efm32_leuart.o
0x000014c4 LEUART_Tx
.text.MSC_Init
0x000014f0 0x20 THUMB Flash Debug/../../obj/efm32_msc.o
0x000014f0 MSC_Init
0x000014e0 0x20 THUMB Flash Debug/../../obj/efm32_msc.o
0x000014e0 MSC_Init
.text.MSC_Deinit
0x00001510 0x1c THUMB Flash Debug/../../obj/efm32_msc.o
0x00001510 MSC_Deinit
0x00001500 0x1c THUMB Flash Debug/../../obj/efm32_msc.o
0x00001500 MSC_Deinit
.text.SYSTEM_ChipRevisionGet
0x0000152c 0x20 THUMB Flash Debug/../../obj/efm32_system.o
0x0000152c SYSTEM_ChipRevisionGet
0x0000151c 0x20 THUMB Flash Debug/../../obj/efm32_system.o
0x0000151c SYSTEM_ChipRevisionGet
.text.startup.main
0x0000154c 0x1e0 THUMB Flash Debug/../../obj/main.o
0x0000154c main
0x0000172c __text_end__ = (__text_start__ + SIZEOF (.text))
0x0000172c __text_load_end__ = __text_end__
0x0000153c 0x1e0 THUMB Flash Debug/../../obj/main.o
0x0000153c main
0x0000171c __text_end__ = (__text_start__ + SIZEOF (.text))
0x0000171c __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@ -780,78 +780,78 @@ 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_end__)), error: .text is too large to fit in FLASH memory segment)
0x0000172c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
0x0000171c __dtors_load_start__ = ALIGN (__text_end__, 0x4)
.dtors 0x0000172c 0x0
0x0000172c __dtors_start__ = .
.dtors 0x0000171c 0x0
0x0000171c __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
0x0000172c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x0000172c __dtors_load_end__ = __dtors_end__
0x0000171c __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
0x0000171c __dtors_load_end__ = __dtors_end__
0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= __FLASH_segment_end__)), error: .dtors is too large to fit in FLASH memory segment)
0x0000172c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
0x0000171c __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
.ctors 0x0000172c 0x0
0x0000172c __ctors_start__ = .
.ctors 0x0000171c 0x0
0x0000171c __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
0x0000172c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x0000172c __ctors_load_end__ = __ctors_end__
0x0000171c __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
0x0000171c __ctors_load_end__ = __ctors_end__
0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= __FLASH_segment_end__)), error: .ctors is too large to fit in FLASH memory segment)
0x0000172c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
0x0000171c __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
.rodata 0x0000172c 0x1ef
0x0000172c __rodata_start__ = .
.rodata 0x0000171c 0x1ef
0x0000171c __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.str1.1
0x0000172c 0x92 THUMB Flash Debug/../../obj/vectors.o
*fill* 0x000017be 0x2 00
0x0000171c 0x92 THUMB Flash Debug/../../obj/vectors.o
*fill* 0x000017ae 0x2 00
.rodata.flashLayout
0x000017c0 0xb4 THUMB Flash Debug/../../obj/flash.o
.rodata 0x00001874 0x18 THUMB Flash Debug/../../obj/uart.o
0x000017b0 0xb4 THUMB Flash Debug/../../obj/flash.o
.rodata 0x00001864 0x18 THUMB Flash Debug/../../obj/uart.o
.rodata.str1.1
0x0000188c 0x84 THUMB Flash Debug/../../obj/uart.o
0x0000187c 0x84 THUMB Flash Debug/../../obj/uart.o
.rodata.xcpStationId
0x00001910 0x8 THUMB Flash Debug/../../obj/xcp.o
0x00001900 0x8 THUMB Flash Debug/../../obj/xcp.o
.rodata.CSWTCH.5
0x00001918 0x3 THUMB Flash Debug/../../obj/efm32_cmu.o
0x0000191b __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x0000191b __rodata_load_end__ = __rodata_end__
0x00001908 0x3 THUMB Flash Debug/../../obj/efm32_cmu.o
0x0000190b __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
0x0000190b __rodata_load_end__ = __rodata_end__
0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment)
0x0000191c __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
0x0000190c __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
.ARM.exidx 0x0000191c 0x0
0x0000191c __ARM.exidx_start__ = .
0x0000191c __exidx_start = __ARM.exidx_start__
.ARM.exidx 0x0000190c 0x0
0x0000190c __ARM.exidx_start__ = .
0x0000190c __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
0x0000191c __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x0000191c __exidx_end = __ARM.exidx_end__
0x0000191c __ARM.exidx_load_end__ = __ARM.exidx_end__
0x0000190c __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
0x0000190c __exidx_end = __ARM.exidx_end__
0x0000190c __ARM.exidx_load_end__ = __ARM.exidx_end__
0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= __FLASH_segment_end__)), error: .ARM.exidx is too large to fit in FLASH memory segment)
0x0000191c __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
0x0000190c __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
.fast 0x20000000 0x138 load address 0x0000191c
.fast 0x20000000 0x138 load address 0x0000190c
0x20000000 __fast_start__ = .
*(.fast .fast.*)
.fast 0x20000000 0x138 THUMB Flash Debug/../../obj/efm32_msc.o
0x20000000 MSC_ErasePage
0x20000078 MSC_WriteWord
0x20000138 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
0x00001a54 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00001a44 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x138 load address 0x0000191c
.fast_run 0x20000000 0x138 load address 0x0000190c
0x20000000 __fast_run_start__ = .
0x20000138 . = MAX ((__fast_run_start__ + SIZEOF (.fast)), .)
*fill* 0x20000000 0x138 00
0x20000138 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000138 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
0x00001a54 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
0x00001a44 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
.data 0x20000138 0x8 load address 0x00001a54
.data 0x20000138 0x8 load address 0x00001a44
0x20000138 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
.data.SystemLFXOClock
@ -859,10 +859,10 @@ Linker script and memory map
.data.SystemHFXOClock
0x2000013c 0x4 THUMB Flash Debug/../../obj/system_efm32.o
0x20000140 __data_end__ = (__data_start__ + SIZEOF (.data))
0x00001a5c __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x00001a4c __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment)
.data_run 0x20000138 0x8 load address 0x00001a54
.data_run 0x20000138 0x8 load address 0x00001a44
0x20000138 __data_run_start__ = .
0x20000140 . = MAX ((__data_run_start__ + SIZEOF (.data)), .)
*fill* 0x20000138 0x8 00
@ -879,14 +879,14 @@ Linker script and memory map
.bss.blockInfo
0x20000344 0x204 THUMB Flash Debug/../../obj/flash.o
.bss.millisecond_counter
0x20000548 0x2 THUMB Flash Debug/../../obj/timer.o
0x20000548 0x4 THUMB Flash Debug/../../obj/timer.o
.bss.xcpCtoReqPacket.2187
0x2000054a 0x41 THUMB Flash Debug/../../obj/uart.o
0x2000054c 0x41 THUMB Flash Debug/../../obj/uart.o
.bss.xcpCtoRxLength.2188
0x2000058b 0x1 THUMB Flash Debug/../../obj/uart.o
0x2000058d 0x1 THUMB Flash Debug/../../obj/uart.o
.bss.xcpCtoRxInProgress.2189
0x2000058c 0x1 THUMB Flash Debug/../../obj/uart.o
*fill* 0x2000058d 0x3 00
0x2000058e 0x1 THUMB Flash Debug/../../obj/uart.o
*fill* 0x2000058f 0x1 00
.bss.assert_failure_file
0x20000590 0x4 THUMB Flash Debug/../../obj/assert.o
.bss.assert_failure_line
@ -956,14 +956,14 @@ Linker script and memory map
0x200007b8 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x200007b8 __tbss_load_end__ = __tbss_end__
0x00000001 . = ASSERT (((__tbss_end__ >= __SRAM_segment_start__) && (__tbss_end__ <= __SRAM_segment_end__)), error: .tbss is too large to fit in SRAM memory segment)
0x00001a5c __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
0x00001a4c __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
.tdata 0x200007b8 0x0 load address 0x00001a5c
.tdata 0x200007b8 0x0 load address 0x00001a4c
0x200007b8 __tdata_start__ = .
*(.tdata .tdata.*)
0x200007b8 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
0x00001a5c __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x00001a5c __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x00001a4c __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
0x00001a4c __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
0x00000001 . = ASSERT (((__tdata_load_end__ >= __FLASH_segment_start__) && (__tdata_load_end__ <= __FLASH_segment_end__)), error: .tdata is too large to fit in FLASH memory segment)
.tdata_run 0x200007b8 0x0
@ -1166,148 +1166,148 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.comment 0x00000000 0x4f THUMB Flash Debug/../../obj/hooks.o
.comment 0x00000000 0x4f THUMB Flash Debug/../../obj/main.o
.debug_line 0x00000000 0x868f
.debug_line 0x00000000 0x8695
.debug_line 0x00000000 0x16a THUMB Flash Debug/../../obj/cstart.o
.debug_line 0x0000016a 0x14b THUMB Flash Debug/../../obj/vectors.o
.debug_line 0x000002b5 0xf6 THUMB Flash Debug/../../obj/cpu.o
.debug_line 0x000003ab 0x3ff THUMB Flash Debug/../../obj/flash.o
.debug_line 0x000007aa 0x110 THUMB Flash Debug/../../obj/nvm.o
.debug_line 0x000008ba 0x108 THUMB Flash Debug/../../obj/timer.o
.debug_line 0x000009c2 0x3a2 THUMB Flash Debug/../../obj/uart.o
.debug_line 0x00000d64 0x13b THUMB Flash Debug/../../obj/assert.o
.debug_line 0x00000e9f 0x156 THUMB Flash Debug/../../obj/backdoor.o
.debug_line 0x00000ff5 0xc1 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x000010b6 0x1b4 THUMB Flash Debug/../../obj/com.o
.debug_line 0x0000126a 0xb7 THUMB Flash Debug/../../obj/cop.o
.debug_line 0x00001321 0x233 THUMB Flash Debug/../../obj/xcp.o
.debug_line 0x00001554 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_line 0x00001571 0x287 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x000017f8 0x3a7 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_line 0x00001b9f 0x3ce THUMB Flash Debug/../../obj/efm32_adc.o
.debug_line 0x00001f6d 0xd02 THUMB Flash Debug/../../obj/efm32_aes.o
.debug_line 0x00002c6f 0x0 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_line 0x00002c6f 0x6e9 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x00003358 0x372 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_line 0x000036ca 0x2f0 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_line 0x000039ba 0x50c THUMB Flash Debug/../../obj/efm32_dma.o
.debug_line 0x00003ec6 0x3e2 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_line 0x000042a8 0x3c5 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x0000466d 0x3ff THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x00004a6c 0x485 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_line 0x00004ef1 0x201 THUMB Flash Debug/../../obj/efm32_int.o
.debug_line 0x000050f2 0x440 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_line 0x00005532 0x101 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_line 0x00005633 0x3c5 THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_line 0x000059f8 0x3ff THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x00005df7 0x223 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_line 0x0000601a 0x364 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x0000637e 0x101 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_line 0x0000647f 0x424 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_line 0x000068a3 0x2b8 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_line 0x00006b5b 0x321 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_line 0x00006e7c 0x37e THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_line 0x000071fa 0x2e4 THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x000074de 0x36d THUMB Flash Debug/../../obj/efm32_timer.o
.debug_line 0x0000784b 0x49d THUMB Flash Debug/../../obj/efm32_usart.o
.debug_line 0x00007ce8 0x31f THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_line 0x00008007 0x340 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_line 0x00008347 0x1d THUMB Flash Debug/../../obj/hooks.o
.debug_line 0x00008364 0x32b THUMB Flash Debug/../../obj/main.o
.debug_line 0x000003ab 0x401 THUMB Flash Debug/../../obj/flash.o
.debug_line 0x000007ac 0x110 THUMB Flash Debug/../../obj/nvm.o
.debug_line 0x000008bc 0x108 THUMB Flash Debug/../../obj/timer.o
.debug_line 0x000009c4 0x3a2 THUMB Flash Debug/../../obj/uart.o
.debug_line 0x00000d66 0x13b THUMB Flash Debug/../../obj/assert.o
.debug_line 0x00000ea1 0x158 THUMB Flash Debug/../../obj/backdoor.o
.debug_line 0x00000ff9 0xc1 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x000010ba 0x1b6 THUMB Flash Debug/../../obj/com.o
.debug_line 0x00001270 0xb7 THUMB Flash Debug/../../obj/cop.o
.debug_line 0x00001327 0x233 THUMB Flash Debug/../../obj/xcp.o
.debug_line 0x0000155a 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_line 0x00001577 0x287 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x000017fe 0x3a7 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_line 0x00001ba5 0x3ce THUMB Flash Debug/../../obj/efm32_adc.o
.debug_line 0x00001f73 0xd02 THUMB Flash Debug/../../obj/efm32_aes.o
.debug_line 0x00002c75 0x0 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_line 0x00002c75 0x6e9 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x0000335e 0x372 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_line 0x000036d0 0x2f0 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_line 0x000039c0 0x50c THUMB Flash Debug/../../obj/efm32_dma.o
.debug_line 0x00003ecc 0x3e2 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_line 0x000042ae 0x3c5 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x00004673 0x3ff THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x00004a72 0x485 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_line 0x00004ef7 0x201 THUMB Flash Debug/../../obj/efm32_int.o
.debug_line 0x000050f8 0x440 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_line 0x00005538 0x101 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_line 0x00005639 0x3c5 THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_line 0x000059fe 0x3ff THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x00005dfd 0x223 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_line 0x00006020 0x364 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x00006384 0x101 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_line 0x00006485 0x424 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_line 0x000068a9 0x2b8 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_line 0x00006b61 0x321 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_line 0x00006e82 0x37e THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_line 0x00007200 0x2e4 THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x000074e4 0x36d THUMB Flash Debug/../../obj/efm32_timer.o
.debug_line 0x00007851 0x49d THUMB Flash Debug/../../obj/efm32_usart.o
.debug_line 0x00007cee 0x31f THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_line 0x0000800d 0x340 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_line 0x0000834d 0x1d THUMB Flash Debug/../../obj/hooks.o
.debug_line 0x0000836a 0x32b THUMB Flash Debug/../../obj/main.o
.debug_info 0x00000000 0xe2c5
.debug_info 0x00000000 0xe2c1
.debug_info 0x00000000 0x116 THUMB Flash Debug/../../obj/cstart.o
.debug_info 0x00000116 0xf1 THUMB Flash Debug/../../obj/vectors.o
.debug_info 0x00000207 0x13a THUMB Flash Debug/../../obj/cpu.o
.debug_info 0x00000341 0x72a THUMB Flash Debug/../../obj/flash.o
.debug_info 0x00000a6b 0x15e THUMB Flash Debug/../../obj/nvm.o
.debug_info 0x00000bc9 0x137 THUMB Flash Debug/../../obj/timer.o
.debug_info 0x00000d00 0x7a6 THUMB Flash Debug/../../obj/uart.o
.debug_info 0x000014a6 0xe4 THUMB Flash Debug/../../obj/assert.o
.debug_info 0x0000158a 0xc0 THUMB Flash Debug/../../obj/backdoor.o
.debug_info 0x0000164a 0x88 THUMB Flash Debug/../../obj/boot.o
.debug_info 0x000016d2 0x1b4 THUMB Flash Debug/../../obj/com.o
.debug_info 0x00001886 0x86 THUMB Flash Debug/../../obj/cop.o
.debug_info 0x0000190c 0x5db THUMB Flash Debug/../../obj/xcp.o
.debug_info 0x00001ee7 0x5a THUMB Flash Debug/../../obj/core_cm3.o
.debug_info 0x00001f41 0x429 THUMB Flash Debug/../../obj/system_efm32.o
.debug_info 0x0000236a 0x5f6 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_info 0x00002960 0xa59 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_info 0x000033b9 0x152c THUMB Flash Debug/../../obj/efm32_aes.o
.debug_info 0x000048e5 0x11a2 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_info 0x00005a87 0x809 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_info 0x00006290 0x410 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_info 0x000066a0 0x10ad THUMB Flash Debug/../../obj/efm32_dma.o
.debug_info 0x0000774d 0x590 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_info 0x00007cdd 0x681 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_info 0x0000835e 0x7cc THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_info 0x00008b2a 0x82a THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_info 0x00009354 0xb0 THUMB Flash Debug/../../obj/efm32_int.o
.debug_info 0x00009404 0xab1 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_info 0x00009eb5 0x86 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_info 0x00009f3b 0x59e THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_info 0x0000a4d9 0x78c THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_info 0x0000ac65 0x33f THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_info 0x0000afa4 0x2b6 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_info 0x0000b25a 0x86 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_info 0x0000b2e0 0x68b THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_info 0x0000b96b 0x1bf THUMB Flash Debug/../../obj/efm32_prs.o
.debug_info 0x0000bb2a 0x2ea THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_info 0x0000be14 0x3a8 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_info 0x0000c1bc 0x241 THUMB Flash Debug/../../obj/efm32_system.o
.debug_info 0x0000c3fd 0x703 THUMB Flash Debug/../../obj/efm32_timer.o
.debug_info 0x0000cb00 0xafd THUMB Flash Debug/../../obj/efm32_usart.o
.debug_info 0x0000d5fd 0x2fc THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_info 0x0000d8f9 0x39a THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_info 0x0000dc93 0x5a THUMB Flash Debug/../../obj/hooks.o
.debug_info 0x0000dced 0x5d8 THUMB Flash Debug/../../obj/main.o
.debug_info 0x00000341 0x72b THUMB Flash Debug/../../obj/flash.o
.debug_info 0x00000a6c 0x15e THUMB Flash Debug/../../obj/nvm.o
.debug_info 0x00000bca 0x12c THUMB Flash Debug/../../obj/timer.o
.debug_info 0x00000cf6 0x7a6 THUMB Flash Debug/../../obj/uart.o
.debug_info 0x0000149c 0xe4 THUMB Flash Debug/../../obj/assert.o
.debug_info 0x00001580 0xc0 THUMB Flash Debug/../../obj/backdoor.o
.debug_info 0x00001640 0x88 THUMB Flash Debug/../../obj/boot.o
.debug_info 0x000016c8 0x1b4 THUMB Flash Debug/../../obj/com.o
.debug_info 0x0000187c 0x86 THUMB Flash Debug/../../obj/cop.o
.debug_info 0x00001902 0x5e1 THUMB Flash Debug/../../obj/xcp.o
.debug_info 0x00001ee3 0x5a THUMB Flash Debug/../../obj/core_cm3.o
.debug_info 0x00001f3d 0x429 THUMB Flash Debug/../../obj/system_efm32.o
.debug_info 0x00002366 0x5f6 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_info 0x0000295c 0xa59 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_info 0x000033b5 0x152c THUMB Flash Debug/../../obj/efm32_aes.o
.debug_info 0x000048e1 0x11a2 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_info 0x00005a83 0x809 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_info 0x0000628c 0x410 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_info 0x0000669c 0x10ad THUMB Flash Debug/../../obj/efm32_dma.o
.debug_info 0x00007749 0x590 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_info 0x00007cd9 0x681 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_info 0x0000835a 0x7cc THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_info 0x00008b26 0x82a THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_info 0x00009350 0xb0 THUMB Flash Debug/../../obj/efm32_int.o
.debug_info 0x00009400 0xab1 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_info 0x00009eb1 0x86 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_info 0x00009f37 0x59e THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_info 0x0000a4d5 0x78c THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_info 0x0000ac61 0x33f THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_info 0x0000afa0 0x2b6 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_info 0x0000b256 0x86 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_info 0x0000b2dc 0x68b THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_info 0x0000b967 0x1bf THUMB Flash Debug/../../obj/efm32_prs.o
.debug_info 0x0000bb26 0x2ea THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_info 0x0000be10 0x3a8 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_info 0x0000c1b8 0x241 THUMB Flash Debug/../../obj/efm32_system.o
.debug_info 0x0000c3f9 0x703 THUMB Flash Debug/../../obj/efm32_timer.o
.debug_info 0x0000cafc 0xafd THUMB Flash Debug/../../obj/efm32_usart.o
.debug_info 0x0000d5f9 0x2fc THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_info 0x0000d8f5 0x39a THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_info 0x0000dc8f 0x5a THUMB Flash Debug/../../obj/hooks.o
.debug_info 0x0000dce9 0x5d8 THUMB Flash Debug/../../obj/main.o
.debug_abbrev 0x00000000 0x40ea
.debug_abbrev 0x00000000 0x40ca
.debug_abbrev 0x00000000 0x14 THUMB Flash Debug/../../obj/cstart.o
.debug_abbrev 0x00000014 0xbe THUMB Flash Debug/../../obj/vectors.o
.debug_abbrev 0x000000d2 0xaf THUMB Flash Debug/../../obj/cpu.o
.debug_abbrev 0x00000181 0x273 THUMB Flash Debug/../../obj/flash.o
.debug_abbrev 0x000003f4 0xa3 THUMB Flash Debug/../../obj/nvm.o
.debug_abbrev 0x00000497 0xe8 THUMB Flash Debug/../../obj/timer.o
.debug_abbrev 0x0000057f 0x1ef THUMB Flash Debug/../../obj/uart.o
.debug_abbrev 0x0000076e 0x7c THUMB Flash Debug/../../obj/assert.o
.debug_abbrev 0x000007ea 0x5b THUMB Flash Debug/../../obj/backdoor.o
.debug_abbrev 0x00000845 0x3f THUMB Flash Debug/../../obj/boot.o
.debug_abbrev 0x00000884 0xe0 THUMB Flash Debug/../../obj/com.o
.debug_abbrev 0x00000964 0x3f THUMB Flash Debug/../../obj/cop.o
.debug_abbrev 0x000009a3 0x1cd THUMB Flash Debug/../../obj/xcp.o
.debug_abbrev 0x00000b70 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_abbrev 0x00000b8d 0x1a5 THUMB Flash Debug/../../obj/system_efm32.o
.debug_abbrev 0x00000d32 0x1c2 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_abbrev 0x00000ef4 0x1fb THUMB Flash Debug/../../obj/efm32_adc.o
.debug_abbrev 0x000010ef 0x29e THUMB Flash Debug/../../obj/efm32_aes.o
.debug_abbrev 0x0000138d 0x1 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_abbrev 0x0000138e 0x38a THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_abbrev 0x00001718 0x21c THUMB Flash Debug/../../obj/efm32_dac.o
.debug_abbrev 0x00001934 0x17f THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_abbrev 0x00001ab3 0x314 THUMB Flash Debug/../../obj/efm32_dma.o
.debug_abbrev 0x00001dc7 0x204 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_abbrev 0x00001fcb 0x1d0 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_abbrev 0x0000219b 0x235 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_abbrev 0x000023d0 0x2a8 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_abbrev 0x00002678 0x64 THUMB Flash Debug/../../obj/efm32_int.o
.debug_abbrev 0x000026dc 0x28f THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_abbrev 0x0000296b 0x42 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_abbrev 0x000029ad 0x223 THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_abbrev 0x00002bd0 0x21c THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_abbrev 0x00002dec 0xf3 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_abbrev 0x00002edf 0x112 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_abbrev 0x00002ff1 0x42 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_abbrev 0x00003033 0x304 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_abbrev 0x00003337 0xe8 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_abbrev 0x0000341f 0x1ab THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_abbrev 0x000035ca 0x214 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_abbrev 0x000037de 0x110 THUMB Flash Debug/../../obj/efm32_system.o
.debug_abbrev 0x000038ee 0x16b THUMB Flash Debug/../../obj/efm32_timer.o
.debug_abbrev 0x00003a59 0x1d1 THUMB Flash Debug/../../obj/efm32_usart.o
.debug_abbrev 0x00003c2a 0x16b THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_abbrev 0x00003d95 0x1b4 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_abbrev 0x00003f49 0x28 THUMB Flash Debug/../../obj/hooks.o
.debug_abbrev 0x00003f71 0x179 THUMB Flash Debug/../../obj/main.o
.debug_abbrev 0x00000181 0x264 THUMB Flash Debug/../../obj/flash.o
.debug_abbrev 0x000003e5 0xa3 THUMB Flash Debug/../../obj/nvm.o
.debug_abbrev 0x00000488 0xe8 THUMB Flash Debug/../../obj/timer.o
.debug_abbrev 0x00000570 0x1ef THUMB Flash Debug/../../obj/uart.o
.debug_abbrev 0x0000075f 0x7c THUMB Flash Debug/../../obj/assert.o
.debug_abbrev 0x000007db 0x5b THUMB Flash Debug/../../obj/backdoor.o
.debug_abbrev 0x00000836 0x3f THUMB Flash Debug/../../obj/boot.o
.debug_abbrev 0x00000875 0xe0 THUMB Flash Debug/../../obj/com.o
.debug_abbrev 0x00000955 0x3f THUMB Flash Debug/../../obj/cop.o
.debug_abbrev 0x00000994 0x1bc THUMB Flash Debug/../../obj/xcp.o
.debug_abbrev 0x00000b50 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_abbrev 0x00000b6d 0x1a5 THUMB Flash Debug/../../obj/system_efm32.o
.debug_abbrev 0x00000d12 0x1c2 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_abbrev 0x00000ed4 0x1fb THUMB Flash Debug/../../obj/efm32_adc.o
.debug_abbrev 0x000010cf 0x29e THUMB Flash Debug/../../obj/efm32_aes.o
.debug_abbrev 0x0000136d 0x1 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_abbrev 0x0000136e 0x38a THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_abbrev 0x000016f8 0x21c THUMB Flash Debug/../../obj/efm32_dac.o
.debug_abbrev 0x00001914 0x17f THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_abbrev 0x00001a93 0x314 THUMB Flash Debug/../../obj/efm32_dma.o
.debug_abbrev 0x00001da7 0x204 THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_abbrev 0x00001fab 0x1d0 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_abbrev 0x0000217b 0x235 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_abbrev 0x000023b0 0x2a8 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_abbrev 0x00002658 0x64 THUMB Flash Debug/../../obj/efm32_int.o
.debug_abbrev 0x000026bc 0x28f THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_abbrev 0x0000294b 0x42 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_abbrev 0x0000298d 0x223 THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_abbrev 0x00002bb0 0x21c THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_abbrev 0x00002dcc 0xf3 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_abbrev 0x00002ebf 0x112 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_abbrev 0x00002fd1 0x42 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_abbrev 0x00003013 0x304 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_abbrev 0x00003317 0xe8 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_abbrev 0x000033ff 0x1ab THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_abbrev 0x000035aa 0x214 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_abbrev 0x000037be 0x110 THUMB Flash Debug/../../obj/efm32_system.o
.debug_abbrev 0x000038ce 0x16b THUMB Flash Debug/../../obj/efm32_timer.o
.debug_abbrev 0x00003a39 0x1d1 THUMB Flash Debug/../../obj/efm32_usart.o
.debug_abbrev 0x00003c0a 0x16b THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_abbrev 0x00003d75 0x1b4 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_abbrev 0x00003f29 0x28 THUMB Flash Debug/../../obj/hooks.o
.debug_abbrev 0x00003f51 0x179 THUMB Flash Debug/../../obj/main.o
.debug_aranges 0x00000000 0xbb0
.debug_aranges
@ -1432,44 +1432,44 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_frame 0x000019e4 0x5c THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_frame 0x00001a40 0x2c THUMB Flash Debug/../../obj/main.o
.debug_loc 0x00000000 0x647f
.debug_loc 0x00000000 0x6481
.debug_loc 0x00000000 0x20 THUMB Flash Debug/../../obj/vectors.o
.debug_loc 0x00000020 0xdf THUMB Flash Debug/../../obj/cpu.o
.debug_loc 0x000000ff 0x6c1 THUMB Flash Debug/../../obj/flash.o
.debug_loc 0x000007c0 0xff THUMB Flash Debug/../../obj/nvm.o
.debug_loc 0x000008bf 0x20 THUMB Flash Debug/../../obj/timer.o
.debug_loc 0x000008df 0x1f8 THUMB Flash Debug/../../obj/uart.o
.debug_loc 0x00000ad7 0x46 THUMB Flash Debug/../../obj/assert.o
.debug_loc 0x00000b1d 0x40 THUMB Flash Debug/../../obj/backdoor.o
.debug_loc 0x00000b5d 0x40 THUMB Flash Debug/../../obj/boot.o
.debug_loc 0x00000b9d 0xa6 THUMB Flash Debug/../../obj/com.o
.debug_loc 0x00000c43 0x175 THUMB Flash Debug/../../obj/xcp.o
.debug_loc 0x00000db8 0xf1 THUMB Flash Debug/../../obj/system_efm32.o
.debug_loc 0x00000ea9 0x16a THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_loc 0x00001013 0x220 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_loc 0x00001233 0x1479 THUMB Flash Debug/../../obj/efm32_aes.o
.debug_loc 0x000026ac 0xe7d THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_loc 0x00003529 0x1eb THUMB Flash Debug/../../obj/efm32_dac.o
.debug_loc 0x00003714 0x96 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_loc 0x000037aa 0x70d THUMB Flash Debug/../../obj/efm32_dma.o
.debug_loc 0x00003eb7 0x37d THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_loc 0x00004234 0xf7 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_loc 0x0000432b 0x2a6 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_loc 0x000045d1 0x39b THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_loc 0x0000496c 0x5ba THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_loc 0x00004f26 0x34e THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_loc 0x00005274 0x338 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_loc 0x000055ac 0x11f THUMB Flash Debug/../../obj/efm32_msc.o
.debug_loc 0x000056cb 0x386 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_loc 0x00005a51 0x66 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_loc 0x00005ab7 0x40 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_loc 0x00005af7 0x165 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_loc 0x00005c5c 0x7d THUMB Flash Debug/../../obj/efm32_system.o
.debug_loc 0x00005cd9 0xbe THUMB Flash Debug/../../obj/efm32_timer.o
.debug_loc 0x00005d97 0x492 THUMB Flash Debug/../../obj/efm32_usart.o
.debug_loc 0x00006229 0x51 THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_loc 0x0000627a 0xcc THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_loc 0x00006346 0x139 THUMB Flash Debug/../../obj/main.o
.debug_loc 0x000000ff 0x6c3 THUMB Flash Debug/../../obj/flash.o
.debug_loc 0x000007c2 0xff THUMB Flash Debug/../../obj/nvm.o
.debug_loc 0x000008c1 0x20 THUMB Flash Debug/../../obj/timer.o
.debug_loc 0x000008e1 0x1f8 THUMB Flash Debug/../../obj/uart.o
.debug_loc 0x00000ad9 0x46 THUMB Flash Debug/../../obj/assert.o
.debug_loc 0x00000b1f 0x40 THUMB Flash Debug/../../obj/backdoor.o
.debug_loc 0x00000b5f 0x40 THUMB Flash Debug/../../obj/boot.o
.debug_loc 0x00000b9f 0xa6 THUMB Flash Debug/../../obj/com.o
.debug_loc 0x00000c45 0x175 THUMB Flash Debug/../../obj/xcp.o
.debug_loc 0x00000dba 0xf1 THUMB Flash Debug/../../obj/system_efm32.o
.debug_loc 0x00000eab 0x16a THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_loc 0x00001015 0x220 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_loc 0x00001235 0x1479 THUMB Flash Debug/../../obj/efm32_aes.o
.debug_loc 0x000026ae 0xe7d THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_loc 0x0000352b 0x1eb THUMB Flash Debug/../../obj/efm32_dac.o
.debug_loc 0x00003716 0x96 THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_loc 0x000037ac 0x70d THUMB Flash Debug/../../obj/efm32_dma.o
.debug_loc 0x00003eb9 0x37d THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_loc 0x00004236 0xf7 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_loc 0x0000432d 0x2a6 THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_loc 0x000045d3 0x39b THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_loc 0x0000496e 0x5ba THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_loc 0x00004f28 0x34e THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_loc 0x00005276 0x338 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_loc 0x000055ae 0x11f THUMB Flash Debug/../../obj/efm32_msc.o
.debug_loc 0x000056cd 0x386 THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_loc 0x00005a53 0x66 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_loc 0x00005ab9 0x40 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_loc 0x00005af9 0x165 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_loc 0x00005c5e 0x7d THUMB Flash Debug/../../obj/efm32_system.o
.debug_loc 0x00005cdb 0xbe THUMB Flash Debug/../../obj/efm32_timer.o
.debug_loc 0x00005d99 0x492 THUMB Flash Debug/../../obj/efm32_usart.o
.debug_loc 0x0000622b 0x51 THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_loc 0x0000627c 0xcc THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_loc 0x00006348 0x139 THUMB Flash Debug/../../obj/main.o
.debug_ranges 0x00000000 0x1048
.debug_ranges 0x00000000 0x10 THUMB Flash Debug/../../obj/vectors.o
@ -1522,7 +1522,7 @@ OUTPUT(THUMB Flash Debug/../../bin/openbtl_olimex_efm32g880.elf elf32-littlearm)
.debug_str 0x00000553 0xb7 THUMB Flash Debug/../../obj/nvm.o
0x18c (size before relaxing)
.debug_str 0x0000060a 0xd5 THUMB Flash Debug/../../obj/timer.o
0x194 (size before relaxing)
0x189 (size before relaxing)
.debug_str 0x000006df 0x723 THUMB Flash Debug/../../obj/uart.o
0x860 (size before relaxing)
.debug_str 0x00000e02 0xb8 THUMB Flash Debug/../../obj/assert.o

View File

@ -20,7 +20,7 @@ S113010854485549554A00F06BF85548554900225A
S113011800F071F854485549091A082903DB0022EC
S113012802600430016046484649884205D00268A6
S1130138043003B4904703BCF7E700208646EC4636
S113014800F0B6FC00200021494A904772B62F49B6
S113014800F0AEFC00200021494A904772B62F49BE
S11301588D462F492F480A1A04D081F309880222B0
S113016882F314882C482D492D4A00F039F82D487B
S11301782D492E4A00F034F82D482E492E4A00F015
@ -33,394 +33,393 @@ S11301D800208646EC4600200021254A9047FEE789
S11301E8884207D0521A05D0037801300B700131C8
S11301F8013AF9D17047884202D002700130FAE717
S11302087047000008ED00E000000000B807002077
S1130218B8070020B8070020541A0000380100204D
S1130228400100207C0200007C0200002C17000022
S11302381C19000000000020380100202C170000C1
S11302482C1700002C1700002C1700002C17000096
S11302582C1700002C1700002C1700001B19000095
S1130218B8070020B8070020441A0000380100205D
S1130228400100207C0200007C0200001C17000032
S11302380C19000000000020380100201C170000E1
S11302481C1700001C1700001C1700001C170000D6
S11302581C1700001C1700001C1700000B190000D5
S1130268400100203606002038060020B806002089
S10702784D1500001C
S113027C00B503483C21034B98475DF804FB00BFD1
S113028C2C1700006509000000B5084B984758B1BD
S10702783D1500002C
S113027C00B503483D21034B98475DF804FB00BFD0
S113028C1C1700005509000000B5084B984758B1DD
S113029C074B9847074B9847074B4FF400521A608B
S11302AC42F204031B6898475DF804FB1D07000029
S11302BC9D0A00006507000008ED00E0F0B50C464F
S11302AC42F204031B6898475DF804FB0D07000039
S11302BC8D0A00005507000008ED00E0F0B50C466F
S11302CC95B20646054F06E014F8013B013D06F8CD
S11302DC013BB847ADB2002DF6D1F0BDD70A0000F2
S11302DC013BB847ADB2002DF6D1F0BDC70A000002
S11302EC00B5024B98475DF804FB00BF55010000B4
S11302FCF0B50C4D0C4F06460024B8472B689E42B3
S113030C09D36A689B189E4205D2064B0C2202FB49
S113031C0434207AF0BD01340C350F2CEDD1FF20C0
S113032CF0BD00BFC0170000D70A00002DE9F1474B
S113032CF0BD00BFB0170000C70A00002DE9F1476B
S113033C114B054600689847FF281AD0DFF83C900B
S113034CDFF83C8000242F68261DAB5904EB070A08
S113035C0093C847504669460422C04748B9E2593D
S113036C009B9A4206D1B6F5007F3446EBD10120AE
S113037C00E00020BDE8F887FD020000D70A000069
S113037C00E00020BDE8F887FD020000C70A000079
S113038C79000020114B30B5984204460D4606D036
S113039CB1F5005F05D00E4B984718B910E00D4C21
S11303AC00E01C46EB050DD12368AB420BD0204674
S11303BC40F8045B29464FF40072074B984702E05F
S11303CC044600E00024204630BD00BF400100205C
S11303DC3903000044030020C90200002DE9F04F4A
S11303EC1FFA83F8036821F4FE77013304460D46A3
S11303FC164627F0030706D140F8047B39464FF420
S113040C00721B4B98472368BB4205D020463946E3
S113041C184B9847044630B32368DFF85CA0C3EB51
S113042C050B0BF1040B134DA34440F2FF19D047F9
S113043C231DC3EB0B034B4507D9204607F500716D
S113044CA847044688B100F1040B16F8013B08F1E7
S113045CFF381FFA88F80BF8013BB8F1000FE6D10E
S113046C0120BDE8F08FBDE8F08FBDE8F08F00BF30
S113047CC902000091030000D70A0000054B00B527
S113048C9847054A4FF0FF331360044A13605DF834
S113049C04FB00BFF11400004403002040010020C1
S11304ACF0B5104F05460C461646B847FF2814D035
S11304BC681E0019B847FF2811D025F4FE7323F0E9
S11304CC0303B3F5005F08BF0748A3B218BF07487E
S11304DC074C29463246A047F0BD0020F0BD002051
S11304ECF0BD00BFFD0200004001002044030020C9
S11304FCE90300002DE9F047424E0F460446B0478D
S113050C013C0546E019B047FF2D074673D0FF2880
S113051C74D085426FD8002D6AD00F286BD83A4B13
S113052C1E78472E08D0492E06D0482E14BF4FF4FF
S113053C00664FF4805601E04FF40076DFF8CC806F
S113054CDFF8D0A0C1460024D04799F80830AB425C
S113055C04D10C235C432D4B1C5906E001340F2CA5
S113056C09F10C09F0D14FF0FF34DFF8A090DFF85B
S113057CA4A00025D04799F80830BB4205D10C2320
S113058C5D43224B53F8059006E001350F2D09F11C
S113059C0C09EFD14FF0FF39DFF878A00025D047D4
S11305AC98F80830BB4205D1184B0C2202FB0535D8
S11305BC6B6805E001350F2D08F10C08EFD1002311
S11305CCC4EB09099944B9FBF6F91FFA89F900251A
S11305DCDFF840800E4F06E0C0472046B847A41908
S11305EC48B90135ADB24D45F6D30120BDE8F087CD
S11305FC2846BDE8F0870020BDE8F0870020BDE860
S113060CF08700BFFD020000FE81E00FC017000060
S113061C01000020D70A00000F4B01B51A68013203
S113062C17D05A68996842F2B8008918DA688918A0
S113063C1A6989185A6989189A698918DA698B1898
S113064C5B4201AA42F8043D04216A46034B9847D5
S113065C00E0012008BD00BF40010020AD040000F3
S113066C42F2040318684FF400531B68C01842F29A
S113067C08031B68C01842F20C031B68C01842F232
S113068C10031B68C01842F214031B68C01842F212
S113069C18031B68C01842F2B8031B68C018D0F1C9
S11306AC010038BF00207047094800B503680133C6
S11306BC02D0084B984748B107480368013302D06D
S11306CC044B984710B1054B984701205DF804FB87
S11306DC40010020390300004403002011150000E0
S11306EC00B5024B98475DF804FB00BF8904000079
S11306FC00B5024B98475DF804FB00BFAD04000045
S113070C00B5024B98475DF804FB00BF01050000DF
S113071C00B5024B98475DF804FB00BF6D06000062
S113072C00B5034B984708B1024B98475DF804FB9E
S113073C25060000B5060000054B002243F2AF610C
S113074C1A60596005219A601960024B1A8070472F
S113075C10E000E048050020014B00221A607047AD
S113076C10E000E0044B1B68DB0303D5034B1A8831
S113077C01321A80704700BF10E000E048050020E9
S113078C00B5034B9847034B18885DF804FB00BF76
S113079C710700004805002030B5204D86B06C462A
S11307AC0FCD0FC495E8030084E803001C4C012111
S11307BC1C48A0471C4D0220062104220123A847F3
S11307CC0122002302200721A8470121174D1848B4
S11307DCA04702211748184B984728460121174B6C
S11307EC984728460121A047154C002506A941F835
S11307FC185D20466946134B9847204629464FF40A
S113080C1652114B984703236365042363632046F4
S113081C05210E4B984706B030BD00BF741800007C
S113082C0D10000000C202006D13000040151600EC
S113083C002304000300120079120000E10E0000F2
S113084C0044084079140000FD1300004914000012
S113085C2DE9F043CDB2402D814603D91A486821C5
S113086C1A4B98471A4CA368D8060AD52046294631
S113087C184B9847184E00E0B047A368D906FBD52F
S113088C03E011486B21114B9847114E0024124F71
S113089CB04614E0B847B36819F80410DA0609D561
S11308AC0B480C4B984700E0B847D8F80830DB06E7
S11308BCFAD503E004487321044B98470134A3B2DE
S11308CCAB42E7D3BDE8F0838C1800006509000047
S11308DC00440840D5140000D70A0000F0B5184CA9
S11308EC0646257817486DB9C36A13F0040323D060
S11308FC154B9847154B187001232370144B28463D
S113090C1D70F0BDC36A124D13F004032F7813D07D
S113091C0D4B98470D492B78CF19787001330A7811
S113092CDBB29A422B7009D130460A4B01319847FD
S113093C002323700120F0BD1846F0BD0020F0BD4B
S113094C8C05002000440840C91400004A0500200E
S113095C8B050020C9020000034B00B51860034B43
S113096C034C1960A047FDE7900500209405002076
S113097CD70A000010B50A4B984701280ED0094C31
S113098C2378012B0AD1084B9847084B1B68323348
S113099C984203D300232370054B984710BD00BF26
S11309ACC50A0000980500208D0700009C05002056
S11309BC95020000054B012200B51A70044B9847B0
S11309CC044B1860044B98475DF804FB9805002011
S11309DC8D0700009C0500208109000000B5064B22
S11309EC9847064B9847064B9847064B9847064B37
S11309FC98475DF804FB00BFD50A000045070000CA
S1130A0CED060000410A0000C109000000B5054BC9
S1130A1C9847054B9847054B9847054B98475DF805
S1130A2C04FB00BFD70A000071070000790A00001C
S1130A3C8109000001B5FF238DF8003000238DF8E7
S1130A4C0130064B9847064B9847064B1B78012BF5
S1130A5C02D16846044B984708BD00BFED0A00005C
S1130A6CA5070000A0050020290B000000B50548CF
S1130A7C054B9847012802D10248044B98475DF86E
S1130A8C04FB00BFA1050020E9080000290B0000AD
S1130A9C7047000000B5C9B2024B9847024B984707
S1130AAC5DF804FB5D080000190B0000014B0122EA
S1130ABC1A707047A005002000B5024B98475DF8EA
S1130ACC04FB00BF090B000070477047034BFE2268
S1130ADCDA7002221871A3F844207047E405002050
S1130AEC054B00221A709A6483F84320A3F844201F
S1130AFC9A705A70704700BFE4050020024B1878B6
S1130B0C003018BF01207047E4050020024B00227E
S1130B1C83F84320704700BFE405002070B50378C8
S1130B2C0546FF2B744C0ED1E370102300210122D7
S1130B3C23714023617022706171A371E37121727E
S1130B4C6272A2726CE02678012E40F0D480F32BF2
S1130B5C40D011D8CF2B00F0B28005D8C92B72D05D
S1130B6CCC2B40F0B580B1E0D12B00F0A28077D330
S1130B7CD22B40F0AD808EE0FA2B44D006D8F52B66
S1130B8C0CD011D3F62B40F0A3801FE0FD2B4BD0DF
S1130B9CFE2B54D0FC2B40F09B8043E042783F2A40
S1130BAC61D8201DA16C06E043783F2B5BD84168CB
S1130BBCA1644278201D514B9847FF23E3706A7857
S1130BCCA36CD318A3646B7801336FE0FF23E37039
S1130BDC436843E0FF23E3700023A06C69681A4662
S1130BEC03E01C5C01331219D2B28B42F9D1424B93
S1130BFCC3F8072001221A7100225A719A71082233
S1130C0CA3F8442067E0FF23E3703D4B0722A36461
S1130C1C002323716371A371E27123726372A37253
S1130C2C082343E0002054E0FF236278E3700023A0
S1130C3C2371A371E37123726271062336E00023DE
S1130C4C237063703DE0421C3F21A06C2D4B9847F0
S1130C5C00283BD0FF23E370A36C3F33A36432E042
S1130C6C43783E2B01D9222033E0FF23E370A4F810
S1130C7C4460417821B9244B984700282BD125E0B6
S1130C8C1D4C821C1F4BA06C9847F8B16A78A36C5E
S1130C9CD318A3641FE0FF23E370402200232371C5
S1130CAC6371E37123726372A2710723A4F8443055
S1130CBC11E0A06C6968154B984710B906E0144B09
S1130CCC9847FF23E370A4F8446004E0312000E06B
S1130CDC2020104B9847084C94F84330012B02D138
S1130CEC10200C4B9847012384F84330B4F844107B
S1130CFC09480A4B984770BDE4050020C90200005E
S1130D0C10190000FD0600002D0700000D0700005F
S1130D1CED020000D90A0000E7050020A10A00003A
S1130D2C1C4AD36A03F47053B3F5805F2DD0B3F52A
S1130D3C005F03D0B3F5006F05D101E0164B00E062
S1130D4C164B18687047D36803F4E063B3F5007F5F
S1130D5C13D004D8ABB1B3F5807F14D10FE0B3F545
S1130D6C806F15D0B3F5A06F03D0B3F5407F0AD1D3
S1130D7C01E00B4870470B4870470B4870470B4811
S1130D8C70470B487047002070474FF40040704781
S1130D9C0848704700800C40380100203C010020BA
S1130DAC003FAB01809FD500C0D8A700C0CF6A001C
S1130DBC40420F00406F400100B5064B9847064B6C
S1130DCC5B6803F00F0320FA03F0044B18605DF822
S1130DDC04FB00BF2D0D000000800C4030060020E9
S1130DEC70474FF400407047014B1868704700BFC0
S1130DFC380100200A494B6803F00702032A0CD877
S1130E0CDFE802F00202070723F0070343F00103B3
S1130E1C03E023F0070343F003034B60704700BF68
S1130E2C00000C40104A10B5104C11498218A24213
S1130E3C4B680BD803F00702023A012A23F007038C
S1130E4C94BF43F0030343F001030BE0094A9042BF
S1130E5C08D803F00702023A012A23F0070398BFCB
S1130E6C43F002034B6010BDFFDB0BFFFF23F400C8
S1130E7C00000C400024F400034B5A6DD20702D43A
S1130E8C1A6D1042FCD1704700800C400D4B400091
S1130E9C9B6A00B523FA00F000F00300022805D089
S1130EAC032807D001280AD1074B00E0074B9847C9
S1130EBC5DF804FB064B984740085DF804FB0020E2
S1130ECC5DF804FB00800C40EF0D0000F50D0000F4
S1130EDCC50D0000C0F30313013B10B50C46032BE6
S1130EEC7FD8DFE803F0020E2058B1FA81F43D4BB1
S1130EFCE4B29A68C4F11F0422F00F0214439C60FC
S1130F0C10BD394B9847B4FA84F4364BE4B25A68A2
S1130F1CC4F11F0422F00F0214435C60334B984756
S1130F2C334B984710BD334B984215D003F5F63329
S1130F3C984220D0A3F57F33984252D104202E4BF3
S1130F4C9847B4FA84F4274BE4B29A6EC4F11F04A4
S1130F5C22F00F0214431CE00420274B9847B4FAE8
S1130F6C84F4204BE4B29A6EC4F11F0422F0F00214
S1130F7C42EA04140DE004201F4B9847B4FA84F49D
S1130F8C184BE4B29A6EC4F10F0422F4407242EA94
S1130F9C04249C6610BD194B984204D003F5043309
S1130FAC98421ED10EE04020134B9847B4FA84F4B7
S1130FBC0C4BE4B21A6FC4F11F0422F00302144365
S1130FCC1C6710BD40200C4B9847B4FA84F4054BB5
S1130FDCE4B21A6FC4F11F0422F0300242EA041482
S1130FEC1C6710BD00800C40010E0000C50D0000F4
S1130FFC310E000030140A00850E00004005140068
S113100CC0F30322013A70B50346CDB2052A20D8A9
S113101CDFE802F0031206090C0F00200D4C0DE062
S113102C00200D4C0AE001200C4C07E010200C4C65
S113103C04E000200B4C01E00B4C0020C3F30436FD
S113104C08B10A4B984704F1047406EBC406B600C5
S113105C356070BD08800C4040800C4058800C40BA
S113106C60800C4078800C4044800C40850E00005D
S113107C00F00F000138032827D8DFE800F004182B
S113108C220207207047134BD86A00F47050B0F555
S113109C805F0AD0B0F5005F05D0B0F5006F0CBFCF
S11310AC0420052070470220704703207047094B29
S11310BC9B6A03F00303013B022B08D8064AD05C5D
S11310CC7047044B01209B6A704700207047012035
S11310DC704700BF00800C401819000000F4781011
S11310ECB0F5402F00B542D013D8B0F5802F2AD0DC
S11310FC05D8002877D0B0F5003F78D11EE0B0F5C4
S113110C002F24D0B0F5202F29D0B0F5C02F6ED1EC
S113111C1BE0B0F5A01F48D006D8B0F5602F2ED038
S113112CB0F5901F63D13BE0B0F5C01F50D0B0F5C3
S113113CD01F55D0B0F5B01F59D13EE02F4B984776
S113114C2F4B9B6808E02F4B4EE0002029E02E4BE0
S113115C002098472A4B9B6E03F00F0334E02A4B74
S113116C00209847264B9B6EC3F303132CE0264BAD
S113117C00209847224B9B6EC3F3012324E0224B9F
S113118C002098471E4B9A6EDB6FC2F3012220FAA3
S113119C02F003F007030133B0FBF3F05DF804FB3A
S11311AC0120194B98475DF804FB174B0120984715
S11311BC134B1B6F03F0030306E0134B01209847FA
S11311CC0F4B1B6FC3F3011320FA03F05DF804FB00
S11311DC0E480F4B9847072802D008280AD102E082
S11311EC0C485DF804FB054B98475DF804FB0020A4
S11311FC5DF804FB00205DF804FB00BF2D0D00001E
S113120C00800C40C50D0000990E0000040018006D
S113121C7D100000809FD50010B5C9B2D2B204284D
S113122C1FD8DFE800F00C0911030600012002238B
S113123C0CE01020202309E04020802306E04FF42A
S113124C80704FF4007301E004200823054C29B18D
S113125C206222B1E26A1342FCD000E02362024B0A
S113126C984710BD00800C404113000010B500F0ED
S113127C0F04012C03D04ED3032C4CD820E002399C
S113128C032948D8DFE801F0020B050800200424E8
S113129C07E00220044604E00320012401E00120BD
S11312AC032401210A461C4B98471C4B98471C4BA2
S11312BC5C621C4B98471C4B98471C4B984710BDC1
S11312CC0139022C14BF02240024052923D8DFE899
S11312DC01F016030A22221101210F4B00200A46A9
S11312EC984702230CE001200B4B01460246984719
S11312FC012305E00E4B01221A60032300E00023B6
S113130C032003FA04F300FA04F4054A916A21EA6F
S113131C04042343936210BD25120000010E000047
S113132C00800C4041130000C50D0000310E00007C
S113133C08089043024BDA6A024B1A80704700BFCC
S113134C00800C403406002024225043034B1A58CE
S113135C22F0030211431950704700BF0060004093
S113136CF0B562B124244443012504F1804405FA08
S113137C01F504F5C0440BB1256100E065614FF043
S113138C240404FB00F4072904F1804404F5C0444C
S113139C0BD88D000F2606FA05F602FA05F56768D8
S11313AC27EA0606354365600BE08D00203D0F26C9
S11313BC06FA05F602FA05F5A76827EA0606354388
S11313CCA56062B924225043012400F1804004FA40
S11313DC01F100F5C0400BB10161F0BD4161F0BDFC
S11313EC036CDB0702D4436C1942FCD17047000038
S11313FC30B50446154661B90B4B984205D003F53C
S113140C806398420FD1094800E00948094B98477A
S113141C01464901B1FBF5F5203DED0020460421C0
S113142C054B9847E56030BD004008404015160058
S113143C40051400E9100000ED13000030B5CD4355
S113144C05F00505044641EA4505024B022198477F
S113145C656030BDED130000C9B229B1436C002B9B
S113146CFCD10123036470470164704770B5104BC1
S113147C0D460221044698470A2363602046012145
S113148C0C4EB0472969EB6822680B43696922F05A
S113149C1C020B431343236020466968AA68064B5D
S11314AC98472B68204663600021B04770BD00BF8D
S11314BCED13000065140000FD13000083689A0608
S11314CCFCD5C069C0B2704730B50446CDB2A36830
S11314DCD806FCD520464021014B9847A56230BD67
S11314ECED130000064B9A6842F001029A6041F633
S11314FC7132DA639A6822F001029A60704700BF75
S113150C00000C40054B9A6842F001029A600022DC
S113151CDA639A6822F001029A60704700000C406A
S113152C064B1A6902F03F0202709A69DB6902F0F9
S113153CF002C3F30313134343707047D0FF0FE05F
S113154C554B01B59847554B1B681B0E0ED1544B8C
S113155C1A6822F070021A60524B1A6822F0604228
S113156C1A601A6862F060621A6001E0032B0BD8EF
S113157C4C4B1A6822F4FC521A604B4A0023136039
S113158C5360936113629363484B684698479DF884
S113159C0030012B10D19DF8013023B9424B1A684D
S11315AC42F002021A609DF80130012B04D8404B22
S11315BC1A6842F001021A603E4B1A683E4B9A427A
S11315CC20D83B4B1A6842F490421A603B4A10688C
S11315DC11681568146805F4FE4204F07F04224374
S11315EC01F07F0142EA0141C0F30620344A41EA8A
S11315FC00611160334A1168334A11601A6822F48D
S113160C90421A60012100200A46304B9847304B17
S113161C304C1A6C002142F00F021A645A6C2E489A
S113162C6FEA12426FEA02425A64A04700212B4827
S113163CA04700212A48A04700212A48A04700219E
S113164C2948A04700212948A04700212848A04741
S113165C00212848A04700212748A04700212748FB
S113166CA04700212648A04700212648A047002176
S113167C2548A04700212548A047012009210346FD
S113168C0522234CA04701200221224B9847224BD0
S113169C9847224CA047FDE7ED0D0000FC81E00FBC
S11316AC0CA00C4020600C4040800C402D15000018
S11316BC44800C40F081E00FFFB98A4CB481E00FF8
S11316CC34200040C881E00F2C400040251200005B
S11316DC00800C400D1000000003040000130400F3
S11316EC0033040000A202000002020000120200F7
S11316FC002202000032020000720200008202008A
S113170C00B2020000E2020000F2020000D2020069
S113171C6D13000055130000E9090000190A0000BC
S113172C433A2F576F726B2F736F667477617265C0
S113173C2F4F70656E424C542F5461726765742F31
S113174C44656D6F2F41524D434D335F45464D33C8
S113175C325F4F6C696D65785F454D33324738386D
S113176C304631323853544B5F43726F7373776F17
S113177C726B732F426F6F742F6964652F2E2E2F2B
S113178C2E2E2F2E2E2F2E2E2F536F757263652F08
S113179C41524D434D335F45464D33322F43726FA7
S11317AC7373776F726B732F766563746F72732EAA
S11317BC6300000000200000002000000100000075
S11317CC0040000000200000020000000060000047
S11317DC0020000003000000008000000020000036
S11317EC0400000000A00000002000000500000020
S11317FC00C00000002000000600000000E0000013
S113180C0020000007000000000001000020000080
S113181C0800000000200100002000000900000066
S113182C00400100002000000A00000000600100DC
S113183C002000000B0000000080010000200000CC
S113184C0C00000000A00100002000000D000000AE
S113185C00C00100002000000E00000000E00100A8
S113186C002000000F000000050000000000000034
S113187C80250000000000000000000000000000B3
S113188C433A2F576F726B2F736F6674776172655F
S113189C2F4F70656E424C542F5461726765742FD0
S11318AC44656D6F2F41524D434D335F45464D3367
S11318BC325F4F6C696D65785F454D33324738380C
S11318CC304631323853544B5F43726F7373776FB6
S11318DC726B732F426F6F742F6964652F2E2E2FCA
S11318EC2E2E2F2E2E2F2E2E2F536F757263652FA7
S11318FC41524D434D335F45464D33322F75617222
S112190C742E63004F70656E424C540003020644
S113191C1B4B10B59A6842F001029A6001221861BF
S113192CDA60DA69510706D59A684FF0FF3022F075
S113193C01029A6010BDDA69920706D59A686FF0B5
S113194C010022F001029A6010BD0222DA600D4AF5
S113195C00E0013AD8690A4910F001000C4602D0A3
S113196C002AF6D100E032B9A3686FF0020023F02C
S113197C0103A36010BD8B6823F001038B6010BDC1
S113198C00000C40809698002D4B2DE9F0419C688A
S113199C921044F001049C6000254FF001081F468E
S11319AC4FF0080C41E01861C3F80C80DE6916F0A6
S11319BC040F07D0A3684FF0FF3023F00103A3609A
S11319CCBDE8F081DE6916F0020F09D0A3686FF050
S11319DC010023F00103A360BDE8F081013C00E0A9
S11319EC184CDE6916F0080F154E02D1002CF5D1F7
S11319FC12E08CB151F8044BBC61C7F80CC0114C0B
S1131A0C00E0013CDE6916F0010F0D4E02D0002CF3
S1131A1CF7D101E004303CB9B3686FF0020023F055
S1131A2C0103B360BDE8F08101359542044CBADB87
S1131A3CA368002023F00103A360BDE8F08100BF7C
S10B1A4C00000C408096980094
S10B1A54008000000048E801D5
S11303EC9846036821F4FE77013304460D461646FD
S11303FC27F0030706D140F8047B39464FF400720A
S113040C184B98472368BB4205D020463946164BF7
S113041C9847044610B32368DFF850A0C3EB050BD0
S113042C0BF1040B104DA34440F2FF19D047231DCC
S113043CC3EB0B034B4507D9204607F50071A847BE
S113044C044668B100F1040B16F8013BB8F101083D
S113045C0BF8013BEAD10120BDE8F08FBDE8F08F29
S113046CBDE8F08FC902000091030000C70A000028
S113047C054B00B59847054A4FF0FF331360044A07
S113048C13605DF804FB00BFE1140000440300207A
S113049C40010020F0B50F4C05460E461746A04708
S11304ACFF2813D0681E8019A047FF2810D025F40C
S11304BCFE7323F00303B3F5005F074C0CBF07482E
S11304CC074829463A463346A047F0BD0020F0BD04
S11304DC0020F0BDFD020000E903000040010020F3
S11304EC440300202DE9F047424E0F460446B04722
S11304FC013C0546E019B047FF2D074673D0FF2891
S113050C74D085426FD8002D6AD00F286BD83A4B23
S113051C1E78472E08D0492E06D0482E14BF4FF40F
S113052C00664FF4805601E04FF40076DFF8CC807F
S113053CDFF8D0A0C1460024D04799F80830AB426C
S113054C04D10C235C432D4B1C5906E001340F2CB5
S113055C09F10C09F0D14FF0FF34DFF8A090DFF86B
S113056CA4A00025D04799F80830BB4205D10C2330
S113057C5D43224B53F8059006E001350F2D09F12C
S113058C0C09EFD14FF0FF39DFF878A00025D047E4
S113059C98F80830BB4205D1184B0C2202FB0535E8
S11305AC6B6805E001350F2D08F10C08EFD1002321
S11305BCC4EB09099944B9FBF6F91FFA89F900252A
S11305CCDFF840800E4F06E0C0472046B847A41918
S11305DC48B90135ADB24D45F6D30120BDE8F087DD
S11305EC2846BDE8F0870020BDE8F0870020BDE870
S11305FCF08700BFFD020000FE81E00FB017000081
S113060C01000020C70A00000F4B01B51A68013223
S113061C17D05A68996842F2B8008918DA688918B0
S113062C1A6989185A6989189A698918DA698B18A8
S113063C5B4201AA42F8043D04216A46034B9847E5
S113064C00E0012008BD00BF40010020A10400000F
S113065C42F2040318684FF400531B68C01842F2AA
S113066C08031B68C01842F20C031B68C01842F242
S113067C10031B68C01842F214031B68C01842F222
S113068C18031B68C01842F2B8031B68C018D0F1D9
S113069C010038BF00207047094800B503680133D6
S11306AC02D0084B984748B107480368013302D07D
S11306BC044B984710B1054B984701205DF804FB97
S11306CC4001002039030000440300200115000000
S11306DC00B5024B98475DF804FB00BF7D04000095
S11306EC00B5024B98475DF804FB00BFA104000061
S11306FC00B5024B98475DF804FB00BFF104000001
S113070C00B5024B98475DF804FB00BF5D06000082
S113071C00B5034B984708B1024B98475DF804FBAE
S113072C15060000A5060000054B002243F2AF613C
S113073C1A60596005219A601960024B1A6070475F
S113074C10E000E048050020014B00221A607047BD
S113075C10E000E0044B1B68DB0303D5034B1A6861
S113076C01321A60704700BF10E000E04805002019
S113077C00B5034B9847034B18685DF804FB00BFA6
S113078C610700004805002030B5204D86B06C464A
S113079C0FCD0FC495E8030084E803001C4C012121
S11307AC1C48A0471C4D0220062104220123A84703
S11307BC0122002302200721A8470121174D1848C4
S11307CCA04702211748184B984728460121174B7C
S11307DC984728460121A047154C002506A941F845
S11307EC185D20466946134B9847204629464FF41A
S11307FC1652114B98470323636504236363204605
S113080C05210E4B984706B030BD00BF641800009C
S113081CFD0F000000C202005D130000401516001D
S113082C002304000300120069120000D10E000022
S113083C0044084069140000ED1300003914000052
S113084C2DE9F043CDB2402D814603D91A486721D6
S113085C1A4B98471A4CA368D8060AD52046294641
S113086C184B9847184E00E0B047A368D906FBD53F
S113087C03E011486A21114B9847114E0024124F82
S113088CB04614E0B847B36819F80410DA0609D571
S113089C0B480C4B984700E0B847D8F80830DB06F7
S11308ACFAD503E004487221044B98470134A3B2EF
S11308BCAB42E7D3BDE8F0837C1800005509000077
S11308CC00440840C5140000C70A0000F0B5184CD9
S11308DC0646257817486DB9C36A13F0040323D070
S11308EC154B9847154B187001232370144B28464D
S11308FC1D70F0BDC36A124D13F004032F7813D08E
S113090C0D4B98470D492B78CF19787001330A7821
S113091CDBB29A422B7009D130460A4B013198470D
S113092C002323700120F0BD1846F0BD0020F0BD5B
S113093C8E05002000440840B91400004C0500202A
S113094C8D050020C9020000034B00B51860034B51
S113095C034C1960A047FDE7900500209405002086
S113096CC70A000010B50A4B984701280ED0094C51
S113097C2378012B0AD1084B9847084B1B68323358
S113098C984203D300232370054B984710BD00BF36
S113099CB50A0000980500207D0700009C05002086
S11309AC95020000054B012200B51A70044B9847C0
S11309BC044B1860044B98475DF804FB9805002021
S11309CC7D0700009C0500207109000000B5064B52
S11309DC9847064B9847064B9847064B9847064B47
S11309EC98475DF804FB00BFC50A000035070000FA
S11309FCDD060000310A0000B109000000B5054B0A
S1130A0C9847054B9847054B9847054B98475DF815
S1130A1C04FB00BFC70A000061070000690A00005C
S1130A2C7109000001B5FF238DF8003000238DF807
S1130A3C0130064B9847064B9847064B1B78012B05
S1130A4C02D16846044B984708BD00BFDD0A00007C
S1130A5C95070000A0050020190B000000B50548FF
S1130A6C054B9847012802D10248044B98475DF87E
S1130A7C04FB00BFA1050020D9080000190B0000DD
S1130A8C7047000000B5C9B2024B9847024B984717
S1130A9C5DF804FB4D080000090B0000014B01221A
S1130AAC1A707047A005002000B5024B98475DF8FA
S1130ABC04FB00BFF90A000070477047034BFE2289
S1130ACCDA7002221871A3F844207047E405002060
S1130ADC054B00221A709A6483F84320A3F844202F
S1130AEC9A705A70704700BFE4050020024B1878C6
S1130AFC003018BF01207047E4050020024B00228F
S1130B0C83F84320704700BFE405002070B50378D8
S1130B1C0546FF2B744C0ED1E370102300210122E7
S1130B2C23714023617022706171A371E37121728E
S1130B3C6272A2726CE02678012E40F0D480F32B02
S1130B4C40D011D8CF2B00F0B28005D8C92B72D06D
S1130B5CCC2B40F0B580B1E0D12B00F0A28077D340
S1130B6CD22B40F0AD808EE0FA2B44D006D8F52B76
S1130B7C0CD011D3F62B40F0A3801FE0FD2B4BD0EF
S1130B8CFE2B54D0FC2B40F09B8043E042783F2A50
S1130B9C61D8201DA16C06E043783F2B5BD84168DB
S1130BACA1644278201D514B9847FF23E3706A7867
S1130BBCA36CD318A3646B7801336FE0FF23E37049
S1130BCC436843E0FF23E3700023A06C69681A4672
S1130BDC03E01C5C01331219D2B28B42F9D1424BA3
S1130BECC3F8072001221A7100225A719A71082243
S1130BFCA3F8442067E0FF23E3703D4B0722A36472
S1130C0C002323716371A371E27123726372A37263
S1130C1C082343E0002054E0FF236278E3700023B0
S1130C2C2371A371E37123726271062336E00023EE
S1130C3C237063703DE0421C3F21A06C2D4B984700
S1130C4C00283BD0FF23E370A36C3F33A36432E052
S1130C5C43783E2B01D9222033E0FF23E370A4F820
S1130C6C4460417821B9244B984700282BD125E0C6
S1130C7C1D4C821C1F4BA06C9847F8B16A78A36C6E
S1130C8CD318A3641FE0FF23E370402200232371D5
S1130C9C6371E37123726372A2710723A4F8443065
S1130CAC11E0A06C6968154B984710B906E0144B19
S1130CBC9847FF23E370A4F8446004E0312000E07B
S1130CCC2020104B9847084C94F84330012B02D148
S1130CDC10200C4B9847012384F84330B4F844108B
S1130CEC09480A4B984770BDE4050020C90200006E
S1130CFC00190000ED0600001D070000FD060000B1
S1130D0CED020000C90A0000E7050020910A00006A
S1130D1C1C4AD36A03F47053B3F5805F2DD0B3F53A
S1130D2C005F03D0B3F5006F05D101E0164B00E072
S1130D3C164B18687047D36803F4E063B3F5007F6F
S1130D4C13D004D8ABB1B3F5807F14D10FE0B3F555
S1130D5C806F15D0B3F5A06F03D0B3F5407F0AD1E3
S1130D6C01E00B4870470B4870470B4870470B4821
S1130D7C70470B487047002070474FF40040704791
S1130D8C0848704700800C40380100203C010020CA
S1130D9C003FAB01809FD500C0D8A700C0CF6A002C
S1130DAC40420F00406F400100B5064B9847064B7C
S1130DBC5B6803F00F0320FA03F0044B18605DF832
S1130DCC04FB00BF1D0D000000800C403006002009
S1130DDC70474FF400407047014B1868704700BFD0
S1130DEC380100200A494B6803F00702032A0CD887
S1130DFCDFE802F00202070723F0070343F00103C4
S1130E0C03E023F0070343F003034B60704700BF78
S1130E1C00000C40104A10B5104C11498218A24223
S1130E2C4B680BD803F00702023A012A23F007039C
S1130E3C94BF43F0030343F001030BE0094A9042CF
S1130E4C08D803F00702023A012A23F0070398BFDB
S1130E5C43F002034B6010BDFFDB0BFFFF23F400D8
S1130E6C00000C400024F400034B5A6DD20702D44A
S1130E7C1A6D1042FCD1704700800C400D4B4000A1
S1130E8C9B6A00B523FA00F000F00300022805D099
S1130E9C032807D001280AD1074B00E0074B9847D9
S1130EAC5DF804FB064B984740085DF804FB0020F2
S1130EBC5DF804FB00800C40DF0D0000E50D000024
S1130ECCB50D0000C0F30313013B10B50C46032B06
S1130EDC7FD8DFE803F0020E2058B1FA81F43D4BC1
S1130EECE4B29A68C4F11F0422F00F0214439C600C
S1130EFC10BD394B9847B4FA84F4364BE4B25A68B3
S1130F0CC4F11F0422F00F0214435C60334B984766
S1130F1C334B984710BD334B984215D003F5F63339
S1130F2C984220D0A3F57F33984252D104202E4B03
S1130F3C9847B4FA84F4274BE4B29A6EC4F11F04B4
S1130F4C22F00F0214431CE00420274B9847B4FAF8
S1130F5C84F4204BE4B29A6EC4F11F0422F0F00224
S1130F6C42EA04140DE004201F4B9847B4FA84F4AD
S1130F7C184BE4B29A6EC4F10F0422F4407242EAA4
S1130F8C04249C6610BD194B984204D003F5043319
S1130F9C98421ED10EE04020134B9847B4FA84F4C7
S1130FAC0C4BE4B21A6FC4F11F0422F00302144375
S1130FBC1C6710BD40200C4B9847B4FA84F4054BC5
S1130FCCE4B21A6FC4F11F0422F0300242EA041492
S1130FDC1C6710BD00800C40F10D0000B50D000025
S1130FEC210E000030140A00750E00004005140098
S1130FFCC0F30322013A70B50346CDB2052A20D8BA
S113100CDFE802F0031206090C0F00200D4C0DE072
S113101C00200D4C0AE001200C4C07E010200C4C75
S113102C04E000200B4C01E00B4C0020C3F304360D
S113103C08B10A4B984704F1047406EBC406B600D5
S113104C356070BD08800C4040800C4058800C40CA
S113105C60800C4078800C4044800C40750E00007D
S113106C00F00F000138032827D8DFE800F004183B
S113107C220207207047134BD86A00F47050B0F565
S113108C805F0AD0B0F5005F05D0B0F5006F0CBFDF
S113109C0420052070470220704703207047094B39
S11310AC9B6A03F00303013B022B08D8064AD05C6D
S11310BC7047044B01209B6A704700207047012045
S11310CC704700BF00800C400819000000F4781031
S11310DCB0F5402F00B542D013D8B0F5802F2AD0EC
S11310EC05D8002877D0B0F5003F78D11EE0B0F5D4
S11310FC002F24D0B0F5202F29D0B0F5C02F6ED1FD
S113110C1BE0B0F5A01F48D006D8B0F5602F2ED048
S113111CB0F5901F63D13BE0B0F5C01F50D0B0F5D3
S113112CD01F55D0B0F5B01F59D13EE02F4B984786
S113113C2F4B9B6808E02F4B4EE0002029E02E4BF0
S113114C002098472A4B9B6E03F00F0334E02A4B84
S113115C00209847264B9B6EC3F303132CE0264BBD
S113116C00209847224B9B6EC3F3012324E0224BAF
S113117C002098471E4B9A6EDB6FC2F3012220FAB3
S113118C02F003F007030133B0FBF3F05DF804FB4A
S113119C0120194B98475DF804FB174B0120984725
S11311AC134B1B6F03F0030306E0134B012098470A
S11311BC0F4B1B6FC3F3011320FA03F05DF804FB10
S11311CC0E480F4B9847072802D008280AD102E092
S11311DC0C485DF804FB054B98475DF804FB0020B4
S11311EC5DF804FB00205DF804FB00BF1D0D00003E
S11311FC00800C40B50D0000890E0000040018009E
S113120C6D100000809FD50010B5C9B2D2B204286D
S113121C1FD8DFE800F00C0911030600012002239B
S113122C0CE01020202309E04020802306E04FF43A
S113123C80704FF4007301E004200823054C29B19D
S113124C206222B1E26A1342FCD000E02362024B1A
S113125C984710BD00800C403113000010B500F00D
S113126C0F04012C03D04ED3032C4CD820E00239AC
S113127C032948D8DFE801F0020B050800200424F8
S113128C07E00220044604E00320012401E00120CD
S113129C032401210A461C4B98471C4B98471C4BB2
S11312AC5C621C4B98471C4B98471C4B984710BDD1
S11312BC0139022C14BF02240024052923D8DFE8A9
S11312CC01F016030A22221101210F4B00200A46B9
S11312DC984702230CE001200B4B01460246984729
S11312EC012305E00E4B01221A60032300E00023C6
S11312FC032003FA04F300FA04F4054A916A21EA80
S113130C04042343936210BD15120000F10D000078
S113131C00800C4031130000B50D0000210E0000BC
S113132C08089043024BDA6A024B1A80704700BFDC
S113133C00800C403406002024225043034B1A58DE
S113134C22F0030211431950704700BF00600040A3
S113135CF0B562B124244443012504F1804405FA18
S113136C01F504F5C0440BB1256100E065614FF053
S113137C240404FB00F4072904F1804404F5C0445C
S113138C0BD88D000F2606FA05F602FA05F56768E8
S113139C27EA0606354365600BE08D00203D0F26D9
S11313AC06FA05F602FA05F5A76827EA0606354398
S11313BCA56062B924225043012400F1804004FA50
S11313CC01F100F5C0400BB10161F0BD4161F0BD0C
S11313DC036CDB0702D4436C1942FCD17047000048
S11313EC30B50446154661B90B4B984205D003F54C
S11313FC806398420FD1094800E00948094B98478B
S113140C01464901B1FBF5F5203DED0020460421D0
S113141C054B9847E56030BD004008404015160068
S113142C40051400D9100000DD13000030B5CD4385
S113143C05F00505044641EA4505024B022198478F
S113144C656030BDDD130000C9B229B1436C002BBB
S113145CFCD10123036470470164704770B5104BD1
S113146C0D460221044698470A2363602046012155
S113147C0C4EB0472969EB6822680B43696922F06A
S113148C1C020B431343236020466968AA68064B6D
S113149C98472B68204663600021B04770BD00BF9D
S11314ACDD13000055140000ED13000083689A0648
S11314BCFCD5C069C0B2704730B50446CDB2A36840
S11314CCD806FCD520464021014B9847A56230BD77
S11314DCDD130000064B9A6842F001029A6041F653
S11314EC7132DA639A6822F001029A60704700BF85
S11314FC00000C40054B9A6842F001029A600022ED
S113150CDA639A6822F001029A60704700000C407A
S113151C064B1A6902F03F0202709A69DB6902F009
S113152CF002C3F30313134343707047D0FF0FE06F
S113153C554B01B59847554B1B681B0E0ED1544B9C
S113154C1A6822F070021A60524B1A6822F0604238
S113155C1A601A6862F060621A6001E0032B0BD8FF
S113156C4C4B1A6822F4FC521A604B4A0023136049
S113157C5360936113629363484B684698479DF894
S113158C0030012B10D19DF8013023B9424B1A685D
S113159C42F002021A609DF80130012B04D8404B32
S11315AC1A6842F001021A603E4B1A683E4B9A428A
S11315BC20D83B4B1A6842F490421A603B4A10689C
S11315CC11681568146805F4FE4204F07F04224384
S11315DC01F07F0142EA0141C0F30620344A41EA9A
S11315EC00611160334A1168334A11601A6822F49D
S11315FC90421A60012100200A46304B9847304B28
S113160C304C1A6C002142F00F021A645A6C2E48AA
S113161C6FEA12426FEA02425A64A04700212B4837
S113162CA04700212A48A04700212A48A0470021AE
S113163C2948A04700212948A04700212848A04751
S113164C00212848A04700212748A047002127480B
S113165CA04700212648A04700212648A047002186
S113166C2548A04700212548A0470120092103460D
S113167C0522234CA04701200221224B9847224BE0
S113168C9847224CA047FDE7DD0D0000FC81E00FDC
S113169C0CA00C4020600C4040800C401D15000038
S11316AC44800C40F081E00FFFB98A4CB481E00F08
S11316BC34200040C881E00F2C400040151200007B
S11316CC00800C40FD0F0000000304000013040014
S11316DC0033040000A20200000202000012020007
S11316EC002202000032020000720200008202009A
S11316FC00B2020000E2020000F2020000D202007A
S113170C5D13000045130000D9090000090A00000C
S113171C433A2F576F726B2F736F667477617265D0
S113172C2F4F70656E424C542F5461726765742F41
S113173C44656D6F2F41524D434D335F45464D33D8
S113174C325F4F6C696D65785F454D33324738387D
S113175C304631323853544B5F43726F7373776F27
S113176C726B732F426F6F742F6964652F2E2E2F3B
S113177C2E2E2F2E2E2F2E2E2F536F757263652F18
S113178C41524D434D335F45464D33322F43726FB7
S113179C7373776F726B732F766563746F72732EBA
S11317AC6300000000200000002000000100000085
S11317BC0040000000200000020000000060000057
S11317CC0020000003000000008000000020000046
S11317DC0400000000A00000002000000500000030
S11317EC00C00000002000000600000000E0000023
S11317FC0020000007000000000001000020000091
S113180C0800000000200100002000000900000076
S113181C00400100002000000A00000000600100EC
S113182C002000000B0000000080010000200000DC
S113183C0C00000000A00100002000000D000000BE
S113184C00C00100002000000E00000000E00100B8
S113185C002000000F000000050000000000000044
S113186C80250000000000000000000000000000C3
S113187C433A2F576F726B2F736F6674776172656F
S113188C2F4F70656E424C542F5461726765742FE0
S113189C44656D6F2F41524D434D335F45464D3377
S11318AC325F4F6C696D65785F454D33324738381C
S11318BC304631323853544B5F43726F7373776FC6
S11318CC726B732F426F6F742F6964652F2E2E2FDA
S11318DC2E2E2F2E2E2F2E2E2F536F757263652FB7
S11318EC41524D434D335F45464D33322F75617232
S11218FC742E63004F70656E424C540003020655
S113190C1B4B10B59A6842F001029A6001221861CF
S113191CDA60DA69510706D59A684FF0FF3022F085
S113192C01029A6010BDDA69920706D59A686FF0C5
S113193C010022F001029A6010BD0222DA600D4A05
S113194C00E0013AD8690A4910F001000C4602D0B3
S113195C002AF6D100E032B9A3686FF0020023F03C
S113196C0103A36010BD8B6823F001038B6010BDD1
S113197C00000C40809698002D4B2DE9F0419C689A
S113198C921044F001049C6000254FF001081F469E
S113199C4FF0080C41E01861C3F80C80DE6916F0B6
S11319AC040F07D0A3684FF0FF3023F00103A360AA
S11319BCBDE8F081DE6916F0020F09D0A3686FF060
S11319CC010023F00103A360BDE8F081013C00E0B9
S11319DC184CDE6916F0080F154E02D1002CF5D107
S11319EC12E08CB151F8044BBC61C7F80CC0114C1B
S11319FC00E0013CDE6916F0010F0D4E02D0002C04
S1131A0CF7D101E004303CB9B3686FF0020023F065
S1131A1C0103B360BDE8F08101359542044CBADB97
S1131A2CA368002023F00103A360BDE8F08100BF8C
S10B1A3C00000C4080969800A4
S10B1A44008000000048E801E5
S9030155A6

View File

@ -0,0 +1,7 @@
/**
\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks Bootloader
\brief Bootloader.
\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader configuration header file
| File Name: config.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\config.h
* \brief Bootloader configuration header file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@ -46,9 +48,13 @@
* called the moment the user program is about to be started. This could be used to
* de-initialize application specific parts, for example to stop blinking an LED, etc.
*/
/** \brief Frequency of the external crystal oscillator. */
#define BOOT_CPU_XTAL_SPEED_KHZ (32000)
/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (14000)
/** \brief Motorola or Intel style byte ordering. */
#define BOOT_CPU_BYTE_ORDER_MOTOROLA (0)
/** \brief Enable/disable hook function call right before user program start. */
#define BOOT_CPU_USER_PROGRAM_START_HOOK (0)
@ -63,10 +69,15 @@
* on board. The zero-based BOOT_COM_UART_CHANNEL_INDEX selects the UART interface.
*
*/
/** \brief Enable/disable UART transport layer. */
#define BOOT_COM_UART_ENABLE (1)
/** \brief Configure the desired communication speed. */
#define BOOT_COM_UART_BAUDRATE (9600)
/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_UART_TX_MAX_DATA (64)
/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_UART_RX_MAX_DATA (64)
/** \brief Select the desired UART peripheral as a zero based index. */
#define BOOT_COM_UART_CHANNEL_INDEX (1)
@ -81,6 +92,7 @@
* into the bootloader. When desired for security purposes, these hook functions can
* also be implemented in a way that disables the backdoor entry altogether.
*/
/** \brief Enable/disable the backdoor override hook functions. */
#define BOOT_BACKDOOR_HOOKS_ENABLE (0)
@ -93,7 +105,9 @@
* eeproms. The size of the internal memory in kilobytes is specified with configurable
* BOOT_NVM_SIZE_KB.
*/
/** \brief Enable/disable the NVM hook function for supporting additional memory devices. */
#define BOOT_NVM_HOOKS_ENABLE (0)
/** \brief Configure the size of the default memory device (typically flash EEPROM). */
#define BOOT_NVM_SIZE_KB (128)
@ -106,6 +120,7 @@
* set BOOT_COP_HOOKS_ENABLE to be able to initialize and service the watchdog through
* hook functions.
*/
/** \brief Enable/disable the hook functions for controlling the watchdog. */
#define BOOT_COP_HOOKS_ENABLE (0)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader callback source file
| File Name: hooks.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\hooks.c
* \brief Bootloader callback source file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -40,11 +42,9 @@
****************************************************************************************/
#if (BOOT_BACKDOOR_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: BackDoorInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the backdoor entry option.
/************************************************************************************//**
** \brief Initializes the backdoor entry option.
** \return none.
**
****************************************************************************************/
void BackDoorInitHook(void)
@ -52,11 +52,9 @@ void BackDoorInitHook(void)
} /*** end of BackDoorInitHook ***/
/****************************************************************************************
** NAME: BackDoorEntryHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
** DESCRIPTION: Checks if a backdoor entry is requested.
/************************************************************************************//**
** \brief Checks if a backdoor entry is requested.
** \return BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool BackDoorEntryHook(void)
@ -72,15 +70,13 @@ blt_bool BackDoorEntryHook(void)
****************************************************************************************/
#if (BOOT_CPU_USER_PROGRAM_START_HOOK > 0)
/****************************************************************************************
** NAME: CpuUserProgramStartHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
** DESCRIPTION: Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
/************************************************************************************//**
** \brief Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
** \return BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
**
****************************************************************************************/
blt_bool CpuUserProgramStartHook(void)
@ -96,12 +92,10 @@ blt_bool CpuUserProgramStartHook(void)
****************************************************************************************/
#if (BOOT_NVM_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: NvmInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the start of the internal NVM driver
** initialization routine.
/************************************************************************************//**
** \brief Callback that gets called at the start of the internal NVM driver
** initialization routine.
** \return none.
**
****************************************************************************************/
void NvmInitHook(void)
@ -109,20 +103,18 @@ void NvmInitHook(void)
} /*** end of NvmInitHook ***/
/****************************************************************************************
** NAME: NvmWriteHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
**
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -131,18 +123,17 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** end of NvmWriteHook ***/
/****************************************************************************************
** NAME: NvmEraseHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
@ -151,11 +142,9 @@ blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
} /*** end of NvmEraseHook ***/
/****************************************************************************************
** NAME: NvmDoneHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise.
** DESCRIPTION: Callback that gets called at the end of the NVM programming session.
/************************************************************************************//**
** \brief Callback that gets called at the end of the NVM programming session.
** \return BLT_TRUE is successful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool NvmDoneHook(void)
@ -170,13 +159,11 @@ blt_bool NvmDoneHook(void)
****************************************************************************************/
#if (BOOT_COP_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: CopInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
** \return none.
**
****************************************************************************************/
void CopInitHook(void)
@ -184,14 +171,12 @@ void CopInitHook(void)
} /*** end of CopInitHook ***/
/****************************************************************************************
** NAME: CopServiceHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
** \return none.
**
****************************************************************************************/
void CopServiceHook(void)

View File

@ -51,7 +51,7 @@
<Watches active="0" update="Never" />
</Watch4>
<Files>
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" y="85" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" left="18" selected="1" name="unnamed" top="63" />
<SessionOpenFile useTextEdit="1" useBinaryEdit="0" codecName="Latin1" x="0" debugPath="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" y="85" path="C:\Work\software\OpenBLT\Target\Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c" left="0" selected="1" name="unnamed" top="63" />
</Files>
<ARMCrossStudioWindow activeProject="openbtl_olimex_efm32g880" autoConnectTarget="SEGGER J-Link" debugSearchFileMap="" fileDialogInitialDirectory="D:\usr\feaser\software\OpenBLT\Target\Source\ARMCM3_EFM32\Crossworks" fileDialogDefaultFilter="*.c" autoConnectCapabilities="388991" debugSearchPath="" buildConfiguration="THUMB Flash Debug" />
</session>

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader application source file
| File Name: main.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Boot\main.c
* \brief Bootloader application source file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -45,12 +47,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -72,12 +72,9 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The interrupts are disabled, the
** clocks are configured and the flash wait states are configured.
/************************************************************************************//**
** \brief Initializes the microcontroller.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -2013,51 +2013,51 @@ OUTPUT(THUMB Flash Debug/../../bin/demoprog_olimex_efm32g880.elf elf32-littlearm
.debug_ranges 0x00000dd8 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
.debug_ranges 0x00000fe0 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
.debug_line 0x00000000 0x8af3
.debug_line 0x00000000 0x310 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x00000310 0xf8 THUMB Flash Debug/../../obj/cstart.o
.debug_line 0x00000408 0x1cc THUMB Flash Debug/../../obj/irq.o
.debug_line 0x000005d4 0x2af THUMB Flash Debug/../../obj/led.o
.debug_line 0x00000883 0x31f THUMB Flash Debug/../../obj/main.o
.debug_line 0x00000ba2 0x2fb THUMB Flash Debug/../../obj/timer.o
.debug_line 0x00000e9d 0x17d THUMB Flash Debug/../../obj/vectors.o
.debug_line 0x0000101a 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_line 0x00001037 0x283 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x000012ba 0x390 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_line 0x0000164a 0x3b2 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_line 0x000019fc 0xb3c THUMB Flash Debug/../../obj/efm32_aes.o
.debug_line 0x00002538 0x0 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_line 0x00002538 0x671 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x00002ba9 0x370 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_line 0x00002f19 0x2ef THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_line 0x00003208 0x497 THUMB Flash Debug/../../obj/efm32_dma.o
.debug_line 0x0000369f 0x3fa THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_line 0x00003a99 0x3a6 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x00003e3f 0x3fa THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x00004239 0x460 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_line 0x00004699 0x201 THUMB Flash Debug/../../obj/efm32_int.o
.debug_line 0x0000489a 0x418 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_line 0x00004cb2 0x101 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_line 0x00004db3 0x3bf THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_line 0x00005172 0x3f4 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x00005566 0x228 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_line 0x0000578e 0x355 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x00005ae3 0x101 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_line 0x00005be4 0x42f THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_line 0x00006013 0x2b7 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_line 0x000062ca 0x319 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_line 0x000065e3 0x374 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_line 0x00006957 0x2ee THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x00006c45 0x356 THUMB Flash Debug/../../obj/efm32_timer.o
.debug_line 0x00006f9b 0x47e THUMB Flash Debug/../../obj/efm32_usart.o
.debug_line 0x00007419 0x317 THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_line 0x00007730 0x337 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_line 0x00007a67 0x42c THUMB Flash Debug/../../obj/lcdcontroller.o
.debug_line 0x00007e93 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o)
.debug_line 0x00008446 0x75 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(__vfprintf_int.o)
.debug_line 0x000084bb 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(__vfscanf_int.o)
.debug_line 0x0000852f 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
.debug_line 0x00008a7f 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
.debug_line 0x00000000 0x8af4
.debug_line 0x00000000 0x311 THUMB Flash Debug/../../obj/boot.o
.debug_line 0x00000311 0xf8 THUMB Flash Debug/../../obj/cstart.o
.debug_line 0x00000409 0x1cc THUMB Flash Debug/../../obj/irq.o
.debug_line 0x000005d5 0x2af THUMB Flash Debug/../../obj/led.o
.debug_line 0x00000884 0x31f THUMB Flash Debug/../../obj/main.o
.debug_line 0x00000ba3 0x2fb THUMB Flash Debug/../../obj/timer.o
.debug_line 0x00000e9e 0x17d THUMB Flash Debug/../../obj/vectors.o
.debug_line 0x0000101b 0x1d THUMB Flash Debug/../../obj/core_cm3.o
.debug_line 0x00001038 0x283 THUMB Flash Debug/../../obj/system_efm32.o
.debug_line 0x000012bb 0x390 THUMB Flash Debug/../../obj/efm32_acmp.o
.debug_line 0x0000164b 0x3b2 THUMB Flash Debug/../../obj/efm32_adc.o
.debug_line 0x000019fd 0xb3c THUMB Flash Debug/../../obj/efm32_aes.o
.debug_line 0x00002539 0x0 THUMB Flash Debug/../../obj/efm32_assert.o
.debug_line 0x00002539 0x671 THUMB Flash Debug/../../obj/efm32_cmu.o
.debug_line 0x00002baa 0x370 THUMB Flash Debug/../../obj/efm32_dac.o
.debug_line 0x00002f1a 0x2ef THUMB Flash Debug/../../obj/efm32_dbg.o
.debug_line 0x00003209 0x497 THUMB Flash Debug/../../obj/efm32_dma.o
.debug_line 0x000036a0 0x3fa THUMB Flash Debug/../../obj/efm32_ebi.o
.debug_line 0x00003a9a 0x3a6 THUMB Flash Debug/../../obj/efm32_emu.o
.debug_line 0x00003e40 0x3fa THUMB Flash Debug/../../obj/efm32_gpio.o
.debug_line 0x0000423a 0x460 THUMB Flash Debug/../../obj/efm32_i2c.o
.debug_line 0x0000469a 0x201 THUMB Flash Debug/../../obj/efm32_int.o
.debug_line 0x0000489b 0x418 THUMB Flash Debug/../../obj/efm32_lcd.o
.debug_line 0x00004cb3 0x101 THUMB Flash Debug/../../obj/efm32_lesense.o
.debug_line 0x00004db4 0x3bf THUMB Flash Debug/../../obj/efm32_letimer.o
.debug_line 0x00005173 0x3f4 THUMB Flash Debug/../../obj/efm32_leuart.o
.debug_line 0x00005567 0x228 THUMB Flash Debug/../../obj/efm32_mpu.o
.debug_line 0x0000578f 0x355 THUMB Flash Debug/../../obj/efm32_msc.o
.debug_line 0x00005ae4 0x101 THUMB Flash Debug/../../obj/efm32_opamp.o
.debug_line 0x00005be5 0x42f THUMB Flash Debug/../../obj/efm32_pcnt.o
.debug_line 0x00006014 0x2b7 THUMB Flash Debug/../../obj/efm32_prs.o
.debug_line 0x000062cb 0x319 THUMB Flash Debug/../../obj/efm32_rmu.o
.debug_line 0x000065e4 0x374 THUMB Flash Debug/../../obj/efm32_rtc.o
.debug_line 0x00006958 0x2ee THUMB Flash Debug/../../obj/efm32_system.o
.debug_line 0x00006c46 0x356 THUMB Flash Debug/../../obj/efm32_timer.o
.debug_line 0x00006f9c 0x47e THUMB Flash Debug/../../obj/efm32_usart.o
.debug_line 0x0000741a 0x317 THUMB Flash Debug/../../obj/efm32_vcmp.o
.debug_line 0x00007731 0x337 THUMB Flash Debug/../../obj/efm32_wdog.o
.debug_line 0x00007a68 0x42c THUMB Flash Debug/../../obj/lcdcontroller.o
.debug_line 0x00007e94 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o)
.debug_line 0x00008447 0x75 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(__vfprintf_int.o)
.debug_line 0x000084bc 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(__vfscanf_int.o)
.debug_line 0x00008530 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
.debug_line 0x00008a80 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
.debug_str 0x00000000 0x6a19
.debug_str 0x00000000 0x7b9 THUMB Flash Debug/../../obj/boot.o

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface source file
| File Name: boot.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\boot.c
* \brief Demo program bootloader interface source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -35,11 +37,9 @@
#include "header.h" /* generic header */
/****************************************************************************************
** NAME: BootActivate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Bootloader activation function.
/************************************************************************************//**
** \brief Bootloader activation function.
** \return none.
**
****************************************************************************************/
static void BootActivate(void)
@ -68,11 +68,9 @@ static void BootActivate(void)
static unsigned char UartReceiveByte(unsigned char *data);
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the UART communication interface
/************************************************************************************//**
** \brief Initializes the UART communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -105,12 +103,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)
@ -158,11 +154,10 @@ void BootComCheckActivationRequest(void)
} /*** end of BootComCheckActivationRequest ***/
/****************************************************************************************
** NAME: UartReceiveByte
** PARAMETER: data pointer to byte where the data is to be stored.
** RETURN VALUE: 1 if a byte was received, 0 otherwise.
** DESCRIPTION: Receives a communication interface byte if one is present.
/************************************************************************************//**
** \brief Receives a communication interface byte if one is present.
** \param data Pointer to byte where the data is to be stored.
** \return 1 if a byte was received, 0 otherwise.
**
****************************************************************************************/
static unsigned char UartReceiveByte(unsigned char *data)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface header file
| File Name: boot.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\boot.h
* \brief Demo program bootloader interface header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: generic header file
| File Name: header.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\header.h
* \brief Generic header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H

View File

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

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver source file
| File Name: irq.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\irq.c
* \brief IRQ driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,15 +40,14 @@
/****************************************************************************************
* Local data definitions
****************************************************************************************/
static unsigned char interruptNesting = 0; /* used for global interrupt en/disable */
/** \brief Interrupt nesting counter. Used for global interrupt en/disable. */
static unsigned char interruptNesting = 0;
/****************************************************************************************
** NAME: IrqInterruptEnable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
/************************************************************************************//**
** \brief Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
** \return none.
**
****************************************************************************************/
void IrqInterruptEnable(void)
@ -55,14 +56,12 @@ void IrqInterruptEnable(void)
} /*** end of IrqInterruptEnable ***/
/****************************************************************************************
** NAME: HwInterruptDisable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
/************************************************************************************//**
** \brief Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptDisable(void)
@ -75,13 +74,11 @@ void IrqInterruptDisable(void)
} /*** end of IrqInterruptDisable ***/
/****************************************************************************************
** NAME: IrqInterruptRestore
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
/************************************************************************************//**
** \brief Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptRestore(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver header file
| File Name: irq.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\irq.h
* \brief IRQ driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver source file
| File Name: led.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\led.c
* \brief LED driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,15 +40,14 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define LED_TOGGLE_MS (500) /* toggle interval time in millisecodns */
/** \brief Toggle interval time in milliseconds. */
#define LED_TOGGLE_MS (500)
/****************************************************************************************
** NAME: LedInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the LED. The board doesn't have a dedicted LED so an
** inidicator on the LCD is used instead.
/************************************************************************************//**
** \brief Initializes the LED. The board doesn't have a dedicted LED so an
** indicator on the LCD is used instead.
** \return none.
**
****************************************************************************************/
void LedInit(void)
@ -56,11 +57,9 @@ void LedInit(void)
} /*** end of LedInit ***/
/****************************************************************************************
** NAME: LedToggle
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Toggles the LED at a fixed time interval.
/************************************************************************************//**
** \brief Toggles the LED at a fixed time interval.
** \return none.
**
****************************************************************************************/
void LedToggle(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver header file
| File Name: led.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\led.h
* \brief LED driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program application source file
| File Name: main.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\main.c
* \brief Demo program application source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,12 +43,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -70,11 +70,9 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller.
/************************************************************************************//**
** \brief Initializes the microcontroller.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -0,0 +1,7 @@
/**
\defgroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks User Program
\brief User Program.
\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver source file
| File Name: timer.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\timer.c
* \brief Timer driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,14 +40,15 @@
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Local variable for storing the number of milliseconds that have elapsed since
* startup.
*/
static unsigned long millisecond_counter;
/****************************************************************************************
** NAME: TimerInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the timer.
/************************************************************************************//**
** \brief Initializes the timer.
** \return none.
**
****************************************************************************************/
void TimerInit(void)
@ -57,11 +60,9 @@ void TimerInit(void)
} /*** end of TimerInit ***/
/****************************************************************************************
** NAME: TimerDeinit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Stops the timer.
/************************************************************************************//**
** \brief Stops and disables the timer.
** \return none.
**
****************************************************************************************/
void TimerDeinit(void)
@ -70,11 +71,10 @@ void TimerDeinit(void)
} /*** end of TimerDeinit ***/
/****************************************************************************************
** NAME: TimerSet
** PARAMETER: timer_value initialize value of the millisecond timer.
** RETURN VALUE: none
** DESCRIPTION: Sets the initial counter value of the millisecond timer.
/************************************************************************************//**
** \brief Sets the initial counter value of the millisecond timer.
** \param timer_value initialize value of the millisecond timer.
** \return none.
**
****************************************************************************************/
void TimerSet(unsigned long timer_value)
@ -84,11 +84,9 @@ void TimerSet(unsigned long timer_value)
} /*** end of TimerSet ***/
/****************************************************************************************
** NAME: TimerGet
** PARAMETER: none
** RETURN VALUE: current value of the millisecond timer
** DESCRIPTION: Obtains the counter value of the millisecond timer.
/************************************************************************************//**
** \brief Obtains the counter value of the millisecond timer.
** \return Current value of the millisecond timer.
**
****************************************************************************************/
unsigned long TimerGet(void)
@ -98,11 +96,9 @@ unsigned long TimerGet(void)
} /*** end of TimerGet ***/
/****************************************************************************************
** NAME: TimerISRHandler
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Interrupt service routine of the timer.
/************************************************************************************//**
** \brief Interrupt service routine of the timer.
** \return none.
**
****************************************************************************************/
void TimerISRHandler(void)

View File

@ -1,32 +1,33 @@
/****************************************************************************************
| Description: Timer driver header file
| File Name: timer.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\timer.h
* \brief Timer driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks * \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader interrupt vector table source file
| File Name: vectors.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -44,14 +46,13 @@ extern void reset_handler(void); /* implemented in cstart.s
/****************************************************************************************
* External data declarations
****************************************************************************************/
extern unsigned long __stack_end__; /* stack end address (memory.x) */
/** \brief Stack end address (memory.x) */
extern unsigned long __stack_end__;
/****************************************************************************************
** NAME: UnusedISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Catch-all for unused interrrupt service routines.
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
@ -64,12 +65,14 @@ void UnusedISR(void)
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /* for ISR function pointers */
unsigned long ptr; /* for stack pointer entry */
}tIsrFunc; /* type for vector table entries */
void (*func)(void); /**< for ISR function pointers */
unsigned long ptr; /**< for stack pointer entry */
}tIsrFunc;
/** \brief Interrupt vector table. */
__attribute__ ((section(".vectors")))
const tIsrFunc _vectors[] =
{
@ -123,6 +126,6 @@ const tIsrFunc _vectors[] =
};
/************************************ end of hw.c **************************************/
/************************************ end of vectors.c *********************************/

View File

@ -0,0 +1,8 @@
/**
\defgroup ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks Demo for Olimex EM-32G880F128-STK/Crossworks
\brief Preconfigured programs for the Olimex EM-32G880F128-STK and the Crossworks IDE.
\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
for detailed getting started instructions.
*/

View File

@ -22,25 +22,25 @@ Idx Name Size VMA LMA File off Algn
CONTENTS, ALLOC, LOAD, CODE
2 .bss 000005f8 20000150 00001680 00010150 2**2
ALLOC
3 .debug_info 000068b0 00000000 00000000 00010150 2**0
3 .debug_info 0000687b 00000000 00000000 00010150 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 000021f7 00000000 00000000 00016a00 2**0
4 .debug_abbrev 000021c6 00000000 00000000 000169cb 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_loc 000030be 00000000 00000000 00018bf7 2**0
5 .debug_loc 000030f6 00000000 00000000 00018b91 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_aranges 000005b8 00000000 00000000 0001bcb5 2**0
6 .debug_aranges 000005b8 00000000 00000000 0001bc87 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 00000980 00000000 00000000 0001c26d 2**0
7 .debug_ranges 00000980 00000000 00000000 0001c23f 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 000023f2 00000000 00000000 0001cbed 2**0
8 .debug_line 000023fa 00000000 00000000 0001cbbf 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001c9b 00000000 00000000 0001efdf 2**0
9 .debug_str 00001c9b 00000000 00000000 0001efb9 2**0
CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 00020c7a 2**0
10 .comment 00000030 00000000 00000000 00020c54 2**0
CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 00020caa 2**0
11 .ARM.attributes 00000033 00000000 00000000 00020c84 2**0
CONTENTS, READONLY
12 .debug_frame 00000bdc 00000000 00000000 00020ce0 2**2
12 .debug_frame 00000bdc 00000000 00000000 00020cb8 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .text 00000000 .text
@ -59,7 +59,7 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 cstart.c
000000e4 l F .text 00000000 zero_loop2
000013c6 l F .text 00000000 zero_loop
000013c2 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 system_efm32.c
20000000 l O .data 00000004 SystemLFXOClock
@ -99,12 +99,12 @@ SYMBOL TABLE:
20000232 l O .bss 00000001 xcpCtoRxInProgress.5471
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
20000234 l O .bss 00000002 millisecond_counter
20000234 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
00001024 l F .text 0000003c FlashGetSector
00001060 l F .text 00000044 FlashWriteBlock
000010a4 l F .text 0000004c FlashSwitchBlock
000010f0 l F .text 00000084 FlashAddToBlock
000010f0 l F .text 00000080 FlashAddToBlock
00001450 l O .text 000000b4 flashLayout
20000238 l O .bss 00000204 bootBlockInfo
2000043c l O .bss 00000204 blockInfo
@ -113,11 +113,11 @@ SYMBOL TABLE:
000013f0 l F .text 00000010 __MSC_ErasePage_veneer
00001400 l F .text 00000010 __MSC_WriteWord_veneer
00000ac4 g F .text 0000002c ComInit
00001190 g F .text 00000048 FlashWrite
0000118c g F .text 00000048 FlashWrite
000008c0 g F .text 00000018 GPIO_DriveModeSet
00000dc4 g F .text 00000018 AssertFailure
000008ac g F .text 00000014 EMU_UpdateOscConfig
000013a4 g F .text 00000044 reset_handler
000013a0 g F .text 00000044 reset_handler
00000684 g F .text 00000120 CMU_ClockFreqGet
00000ff8 g F .text 0000001c TimerUpdate
00000b70 g F .text 00000010 XcpPacketTransmitted
@ -133,16 +133,16 @@ SYMBOL TABLE:
00000fec g F .text 0000000c TimerReset
20000640 g O .bss 00000004 SystemCoreClock
00000aae g F .text 00000016 BootTask
000012d4 g F .text 00000040 FlashWriteChecksum
000012d0 g F .text 00000040 FlashWriteChecksum
00000b0e g F .text 00000010 ComTransmitPacket
000003b4 g F .text 0000000c SystemLFXOClockGet
000005b0 g F .text 0000006c CMU_ClockEnable
00000a14 g F .text 0000000c LEUART_Rx
00000b60 g F .text 00000010 XcpIsConnected
00000fa8 g F .text 00000004 NvmInit
00001174 g F .text 0000001c FlashInit
00001170 g F .text 0000001c FlashInit
20000648 g .bss 00000000 _ebss
00001398 g F .text 0000000c UnusedISR
00001394 g F .text 0000000c UnusedISR
00000b0c g F .text 00000002 ComFree
000009d4 g F .text 00000040 LEUART_Init
2000007c g F .data 000000d0 MSC_WriteWord
@ -154,10 +154,10 @@ SYMBOL TABLE:
000002f4 g F .text 00000098 SystemHFClockGet
00000b80 g F .text 000001e8 XcpPacketReceived
20000008 g F .data 00000074 MSC_ErasePage
0000135c g F .text 0000003c FlashDone
00001358 g F .text 0000003c FlashDone
000000b8 g F .text 00000050 EntryFromProg
00000b44 g F .text 0000001c XcpInit
000011d8 g F .text 000000fc FlashErase
000011d4 g F .text 000000fc FlashErase
0000011c g F .text 000001d8 main
00000fb8 g F .text 00000012 NvmDone
00000ebc g F .text 00000080 UartTransmitPacket
@ -178,7 +178,7 @@ SYMBOL TABLE:
00000fac g F .text 00000004 NvmWrite
00000ddc g F .text 00000028 CpuStartUserProgram
20000748 g .bss 00000000 _estack
00001314 g F .text 00000048 FlashVerifyChecksum
00001310 g F .text 00000048 FlashVerifyChecksum
20000150 g .data 00000000 _edata
00000000 g O .text 000000b8 _vectab
00000b2c g F .text 00000004 ComIsConnected

View File

@ -0,0 +1,7 @@
/**
\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC Bootloader
\brief Bootloader.
\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader configuration header file
| File Name: config.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Boot\config.h
* \brief Bootloader configuration header file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@ -46,9 +48,13 @@
* called the moment the user program is about to be started. This could be used to
* de-initialize application specific parts, for example to stop blinking an LED, etc.
*/
/** \brief Frequency of the external crystal oscillator. */
#define BOOT_CPU_XTAL_SPEED_KHZ (32000)
/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (14000)
/** \brief Motorola or Intel style byte ordering. */
#define BOOT_CPU_BYTE_ORDER_MOTOROLA (0)
/** \brief Enable/disable hook function call right before user program start. */
#define BOOT_CPU_USER_PROGRAM_START_HOOK (0)
@ -63,10 +69,15 @@
* on board. The zero-based BOOT_COM_UART_CHANNEL_INDEX selects the UART interface.
*
*/
/** \brief Enable/disable UART transport layer. */
#define BOOT_COM_UART_ENABLE (1)
/** \brief Configure the desired communication speed. */
#define BOOT_COM_UART_BAUDRATE (9600)
/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_UART_TX_MAX_DATA (64)
/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_UART_RX_MAX_DATA (64)
/** \brief Select the desired UART peripheral as a zero based index. */
#define BOOT_COM_UART_CHANNEL_INDEX (1)
@ -81,6 +92,7 @@
* into the bootloader. When desired for security purposes, these hook functions can
* also be implemented in a way that disables the backdoor entry altogether.
*/
/** \brief Enable/disable the backdoor override hook functions. */
#define BOOT_BACKDOOR_HOOKS_ENABLE (0)
@ -93,7 +105,9 @@
* eeproms. The size of the internal memory in kilobytes is specified with configurable
* BOOT_NVM_SIZE_KB.
*/
/** \brief Enable/disable the NVM hook function for supporting additional memory devices. */
#define BOOT_NVM_HOOKS_ENABLE (0)
/** \brief Configure the size of the default memory device (typically flash EEPROM). */
#define BOOT_NVM_SIZE_KB (128)
@ -106,6 +120,7 @@
* set BOOT_COP_HOOKS_ENABLE to be able to initialize and service the watchdog through
* hook functions.
*/
/** \brief Enable/disable the hook functions for controlling the watchdog. */
#define BOOT_COP_HOOKS_ENABLE (0)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader callback source file
| File Name: hooks.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Boot\hooks.c
* \brief Bootloader callback source file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -40,11 +42,9 @@
****************************************************************************************/
#if (BOOT_BACKDOOR_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: BackDoorInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the backdoor entry option.
/************************************************************************************//**
** \brief Initializes the backdoor entry option.
** \return none.
**
****************************************************************************************/
void BackDoorInitHook(void)
@ -52,11 +52,9 @@ void BackDoorInitHook(void)
} /*** end of BackDoorInitHook ***/
/****************************************************************************************
** NAME: BackDoorEntryHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
** DESCRIPTION: Checks if a backdoor entry is requested.
/************************************************************************************//**
** \brief Checks if a backdoor entry is requested.
** \return BLT_TRUE if the backdoor entry is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool BackDoorEntryHook(void)
@ -72,15 +70,13 @@ blt_bool BackDoorEntryHook(void)
****************************************************************************************/
#if (BOOT_CPU_USER_PROGRAM_START_HOOK > 0)
/****************************************************************************************
** NAME: CpuUserProgramStartHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
** DESCRIPTION: Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
/************************************************************************************//**
** \brief Callback that gets called when the bootloader is about to exit and
** hand over control to the user program. This is the last moment that
** some final checking can be performed and if necessary prevent the
** bootloader from activiting the user program.
** \return BLT_TRUE if it is okay to start the user program, BLT_FALSE to keep
** keep the bootloader active.
**
****************************************************************************************/
blt_bool CpuUserProgramStartHook(void)
@ -96,12 +92,10 @@ blt_bool CpuUserProgramStartHook(void)
****************************************************************************************/
#if (BOOT_NVM_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: NvmInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the start of the internal NVM driver
** initialization routine.
/************************************************************************************//**
** \brief Callback that gets called at the start of the internal NVM driver
** initialization routine.
** \return none.
**
****************************************************************************************/
void NvmInitHook(void)
@ -109,20 +103,18 @@ void NvmInitHook(void)
} /*** end of NvmInitHook ***/
/****************************************************************************************
** NAME: NvmWriteHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
**
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the data hasn't
** been written yet.
** \param addr Start address.
** \param len Length in bytes.
** \param data Pointer to the data buffer.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
@ -131,18 +123,17 @@ blt_int8u NvmWriteHook(blt_addr addr, blt_int32u len, blt_int8u *data)
} /*** end of NvmWriteHook ***/
/****************************************************************************************
** NAME: NvmEraseHook
** 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: 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
/************************************************************************************//**
** \brief 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
** BLT_NVM_NOT_IN_RANGE must be returned to indicate that the memory
** hasn't been erased yet.
** \param addr Start address.
** \param len Length in bytes.
** \return 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.
**
****************************************************************************************/
blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
@ -151,11 +142,9 @@ blt_int8u NvmEraseHook(blt_addr addr, blt_int32u len)
} /*** end of NvmEraseHook ***/
/****************************************************************************************
** NAME: NvmDoneHook
** PARAMETER: none
** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise.
** DESCRIPTION: Callback that gets called at the end of the NVM programming session.
/************************************************************************************//**
** \brief Callback that gets called at the end of the NVM programming session.
** \return BLT_TRUE is successful, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool NvmDoneHook(void)
@ -170,13 +159,11 @@ blt_bool NvmDoneHook(void)
****************************************************************************************/
#if (BOOT_COP_HOOKS_ENABLE > 0)
/****************************************************************************************
** NAME: CopInitHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** initialization routine. It can be used to configure and enable the
** watchdog.
** \return none.
**
****************************************************************************************/
void CopInitHook(void)
@ -184,14 +171,12 @@ void CopInitHook(void)
} /*** end of CopInitHook ***/
/****************************************************************************************
** NAME: CopServiceHook
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
/************************************************************************************//**
** \brief Callback that gets called at the end of the internal COP driver
** service routine. This gets called upon initialization and during
** potential long lasting loops and routine. It can be used to service
** the watchdog to prevent a watchdog reset.
** \return none.
**
****************************************************************************************/
void CopServiceHook(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader application source file
| File Name: main.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Boot\main.c
* \brief Bootloader application source file.
* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -45,12 +47,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -72,12 +72,9 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller. The interrupts are disabled, the
** clocks are configured and the flash wait states are configured.
/************************************************************************************//**
** \brief Initializes the microcontroller.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -30,15 +30,15 @@ Idx Name Size VMA LMA File off Algn
CONTENTS, READONLY, DEBUGGING
7 .debug_ranges 000003a8 00000000 00000000 00012298 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00001e4a 00000000 00000000 00012640 2**0
8 .debug_line 00001e4b 00000000 00000000 00012640 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00001a6b 00000000 00000000 0001448a 2**0
9 .debug_str 00001a6b 00000000 00000000 0001448b 2**0
CONTENTS, READONLY, DEBUGGING
10 .comment 00000030 00000000 00000000 00015ef5 2**0
10 .comment 00000030 00000000 00000000 00015ef6 2**0
CONTENTS, READONLY
11 .ARM.attributes 00000033 00000000 00000000 00015f25 2**0
11 .ARM.attributes 00000033 00000000 00000000 00015f26 2**0
CONTENTS, READONLY
12 .debug_frame 00000904 00000000 00000000 00015f58 2**2
12 .debug_frame 00000904 00000000 00000000 00015f5c 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00002000 l d .text 00000000 .text

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface source file
| File Name: boot.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\boot.c
* \brief Demo program bootloader interface source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -35,11 +37,9 @@
#include "header.h" /* generic header */
/****************************************************************************************
** NAME: BootActivate
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Bootloader activation function.
/************************************************************************************//**
** \brief Bootloader activation function.
** \return none.
**
****************************************************************************************/
static void BootActivate(void)
@ -68,11 +68,9 @@ static void BootActivate(void)
static unsigned char UartReceiveByte(unsigned char *data);
/****************************************************************************************
** NAME: BootComInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the UART communication interface
/************************************************************************************//**
** \brief Initializes the UART communication interface.
** \return none.
**
****************************************************************************************/
void BootComInit(void)
@ -105,12 +103,10 @@ void BootComInit(void)
} /*** end of BootComInit ***/
/****************************************************************************************
** NAME: BootComCheckActivationRequest
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
void BootComCheckActivationRequest(void)
@ -158,11 +154,10 @@ void BootComCheckActivationRequest(void)
} /*** end of BootComCheckActivationRequest ***/
/****************************************************************************************
** NAME: UartReceiveByte
** PARAMETER: data pointer to byte where the data is to be stored.
** RETURN VALUE: 1 if a byte was received, 0 otherwise.
** DESCRIPTION: Receives a communication interface byte if one is present.
/************************************************************************************//**
** \brief Receives a communication interface byte if one is present.
** \param data Pointer to byte where the data is to be stored.
** \return 1 if a byte was received, 0 otherwise.
**
****************************************************************************************/
static unsigned char UartReceiveByte(unsigned char *data)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program bootloader interface header file
| File Name: boot.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\boot.h
* \brief Demo program bootloader interface header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Demo program C startup source file
| File Name: cstart.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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\cstart.c
* \brief Demo program C startup source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -53,12 +55,10 @@ extern unsigned long _ebss;
extern unsigned long _estack;
/****************************************************************************************
** NAME: reset_handler
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Reset interrupt service routine. Configures the stack, initializes
** RAM and jumps to function main.
/************************************************************************************//**
** \brief Reset interrupt service routine. Configures the stack, initializes
** RAM and jumps to function main.
** \return none.
**
****************************************************************************************/
void reset_handler(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: generic header file
| File Name: header.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\header.h
* \brief Generic header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver source file
| File Name: irq.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\irq.c
* \brief IRQ driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,15 +40,14 @@
/****************************************************************************************
* Local data definitions
****************************************************************************************/
static unsigned char interruptNesting = 0; /* used for global interrupt en/disable */
/** \brief Interrupt nesting counter. Used for global interrupt en/disable. */
static unsigned char interruptNesting = 0;
/****************************************************************************************
** NAME: IrqInterruptEnable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
/************************************************************************************//**
** \brief Enables the generation IRQ interrupts. Typically called once during
** software startup after completion of the initialization.
** \return none.
**
****************************************************************************************/
void IrqInterruptEnable(void)
@ -55,14 +56,12 @@ void IrqInterruptEnable(void)
} /*** end of IrqInterruptEnable ***/
/****************************************************************************************
** NAME: HwInterruptDisable
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
/************************************************************************************//**
** \brief Disables the generation IRQ interrupts and stores information on
** whether or not the interrupts were already disabled before explicitly
** disabling them with this function. Normally used as a pair together
** with IrqInterruptRestore during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptDisable(void)
@ -75,13 +74,11 @@ void IrqInterruptDisable(void)
} /*** end of IrqInterruptDisable ***/
/****************************************************************************************
** NAME: IrqInterruptRestore
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
/************************************************************************************//**
** \brief Restore the generation IRQ interrupts to the setting it had prior to
** calling IrqInterruptDisable. Normally used as a pair together with
** IrqInterruptDisable during a critical section.
** \return none.
**
****************************************************************************************/
void IrqInterruptRestore(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: IRQ driver header file
| File Name: irq.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\irq.h
* \brief IRQ driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver source file
| File Name: led.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\led.c
* \brief LED driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,15 +40,14 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
#define LED_TOGGLE_MS (500) /* toggle interval time in millisecodns */
/** \brief Toggle interval time in milliseconds. */
#define LED_TOGGLE_MS (500)
/****************************************************************************************
** NAME: LedInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the LED. The board doesn't have a dedicted LED so an
** inidicator on the LCD is used instead.
/************************************************************************************//**
** \brief Initializes the LED. The board doesn't have a dedicted LED so an
** indicator on the LCD is used instead.
** \return none.
**
****************************************************************************************/
void LedInit(void)
@ -56,11 +57,9 @@ void LedInit(void)
} /*** end of LedInit ***/
/****************************************************************************************
** NAME: LedToggle
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Toggles the LED at a fixed time interval.
/************************************************************************************//**
** \brief Toggles the LED at a fixed time interval.
** \return none.
**
****************************************************************************************/
void LedToggle(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: LED driver header file
| File Name: led.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\led.h
* \brief LED driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: demo program application source file
| File Name: main.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\main.c
* \brief Demo program application source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -41,12 +43,10 @@
static void Init(void);
/****************************************************************************************
** NAME: main
** PARAMETER: none
** RETURN VALUE: program return code
** DESCRIPTION: This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
/************************************************************************************//**
** \brief This is the entry point for the bootloader application and is called
** by the reset interrupt vector after the C-startup routines executed.
** \return Program return code.
**
****************************************************************************************/
int main(void)
@ -70,11 +70,9 @@ int main(void)
} /*** end of main ***/
/****************************************************************************************
** NAME: Init
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the microcontroller.
/************************************************************************************//**
** \brief Initializes the microcontroller.
** \return none.
**
****************************************************************************************/
static void Init(void)

View File

@ -0,0 +1,7 @@
/**
\defgroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC User Program
\brief User Program.
\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
*/

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver source file
| File Name: timer.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\timer.c
* \brief Timer driver source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -38,14 +40,15 @@
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Local variable for storing the number of milliseconds that have elapsed since
* startup.
*/
static unsigned long millisecond_counter;
/****************************************************************************************
** NAME: TimerInit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Initializes the timer.
/************************************************************************************//**
** \brief Initializes the timer.
** \return none.
**
****************************************************************************************/
void TimerInit(void)
@ -57,11 +60,9 @@ void TimerInit(void)
} /*** end of TimerInit ***/
/****************************************************************************************
** NAME: TimerDeinit
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Stops the timer.
/************************************************************************************//**
** \brief Stops and disables the timer.
** \return none.
**
****************************************************************************************/
void TimerDeinit(void)
@ -70,11 +71,10 @@ void TimerDeinit(void)
} /*** end of TimerDeinit ***/
/****************************************************************************************
** NAME: TimerSet
** PARAMETER: timer_value initialize value of the millisecond timer.
** RETURN VALUE: none
** DESCRIPTION: Sets the initial counter value of the millisecond timer.
/************************************************************************************//**
** \brief Sets the initial counter value of the millisecond timer.
** \param timer_value initialize value of the millisecond timer.
** \return none.
**
****************************************************************************************/
void TimerSet(unsigned long timer_value)
@ -84,11 +84,9 @@ void TimerSet(unsigned long timer_value)
} /*** end of TimerSet ***/
/****************************************************************************************
** NAME: TimerGet
** PARAMETER: none
** RETURN VALUE: current value of the millisecond timer
** DESCRIPTION: Obtains the counter value of the millisecond timer.
/************************************************************************************//**
** \brief Obtains the counter value of the millisecond timer.
** \return Current value of the millisecond timer.
**
****************************************************************************************/
unsigned long TimerGet(void)
@ -98,11 +96,9 @@ unsigned long TimerGet(void)
} /*** end of TimerGet ***/
/****************************************************************************************
** NAME: TimerISRHandler
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Interrupt service routine of the timer.
/************************************************************************************//**
** \brief Interrupt service routine of the timer.
** \return none.
**
****************************************************************************************/
void TimerISRHandler(void)

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: Timer driver header file
| File Name: timer.h
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\timer.h
* \brief Timer driver header file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H

View File

@ -1,32 +1,34 @@
/****************************************************************************************
| Description: bootloader interrupt vector table source file
| File Name: vectors.c
|
|----------------------------------------------------------------------------------------
| C O P Y R I G H T
|----------------------------------------------------------------------------------------
| Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
|
|----------------------------------------------------------------------------------------
| L I C E N S E
|----------------------------------------------------------------------------------------
| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
| modify it under the terms of the GNU General Public License as published by the Free
| Software Foundation, either version 3 of the License, or (at your option) any later
| version.
|
| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
| PURPOSE. See the GNU General Public License for more details.
|
| You 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>.
|
/************************************************************************************//**
* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC\Prog\vectors.c
* \brief Demo program interrupt vectors source file.
* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You 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>.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
@ -44,14 +46,13 @@ extern void reset_handler(void); /* implemented in cstart.s
/****************************************************************************************
* External data declarations
****************************************************************************************/
extern unsigned long _estack; /* stack end address (memory.x) */
/** \brief Stack end address (memory.x) */
extern unsigned long _estack;
/****************************************************************************************
** NAME: UnusedISR
** PARAMETER: none
** RETURN VALUE: none
** DESCRIPTION: Catch-all for unused interrrupt service routines.
/************************************************************************************//**
** \brief Catch-all for unused interrrupt service routines.
** \return none.
**
****************************************************************************************/
void UnusedISR(void)
@ -64,12 +65,14 @@ void UnusedISR(void)
/****************************************************************************************
* I N T E R R U P T V E C T O R T A B L E
****************************************************************************************/
/** \brief Structure type for vector table entries. */
typedef union
{
void (*func)(void); /* for ISR function pointers */
unsigned long ptr; /* for stack pointer entry */
}tIsrFunc; /* type for vector table entries */
void (*func)(void); /**< for ISR function pointers */
unsigned long ptr; /**< for stack pointer entry */
}tIsrFunc;
/** \brief Interrupt vector table. */
__attribute__ ((section(".isr_vector")))
const tIsrFunc _vectab[] =
{
@ -123,6 +126,6 @@ const tIsrFunc _vectab[] =
};
/************************************ end of hw.c **************************************/
/************************************ end of vectors.c *********************************/

View File

@ -0,0 +1,8 @@
/**
\defgroup ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC Demo for Olimex EM-32G880F128-STK/GCC
\brief Preconfigured programs for the Olimex EM-32G880F128-STK and the GCC compiler.
\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
for detailed getting started instructions.
*/

View File

@ -1,18 +1,18 @@
S02000006F70656E62746C5F6F6C696D65785F65666D3332673838302E7372656320
S113000068070020110E0000411B0000411B000086
S1130010411B0000411B0000411B0000411B00006C
S1130020411B0000411B0000411B0000411B00005C
S1130030411B0000411B0000411B0000411B00004C
S1130040411B0000411B0000411B0000411B00003C
S1130050411B0000411B0000411B0000411B00002C
S1130060411B0000411B0000411B0000411B00001C
S1130070411B0000411B0000411B0000411B00000C
S1130080411B0000411B0000411B0000411B0000FC
S1130090411B0000411B0000411B0000411B0000EC
S11300A0411B0000411B0000411B0000411B0000DC
S10B00B0411B0000411B00008C
S11300B8044B9D46C046C046C046C04600F063FE99
S11300C801F0C2F968070020890011EB401010F113
S1130000700700200D0E00003D1B00003D1B00008A
S11300103D1B00003D1B00003D1B00003D1B00007C
S11300203D1B00003D1B00003D1B00003D1B00006C
S11300303D1B00003D1B00003D1B00003D1B00005C
S11300403D1B00003D1B00003D1B00003D1B00004C
S11300503D1B00003D1B00003D1B00003D1B00003C
S11300603D1B00003D1B00003D1B00003D1B00002C
S11300703D1B00003D1B00003D1B00003D1B00001C
S11300803D1B00003D1B00003D1B00003D1B00000C
S11300903D1B00003D1B00003D1B00003D1B0000FC
S11300A03D1B00003D1B00003D1B00003D1B0000EC
S10B00B03D1B00003D1B000094
S11300B8044B9D46C046C046C046C04600F061FE9B
S11300C801F0C0F970070020890011EB401010F10D
S11300D8844002607047DFF88405006810F0070167
S11300E80029012903D9891E012904D906E001211F
S11300F861F3020002E0032161F30200DFF85C15FA
@ -121,344 +121,344 @@ S113075800407047044800687047000004800C405B
S1130768580600202C800C40700100206C010020E9
S11307780C800C40003FAB01406F4001809FD500C6
S1130788C0D8A700C0CF6A0040420F0002480349FE
S113079809680180704700005C0600202C800C402A
S11307980968018070470000600600202C800C4026
S11307A8DFF800F089000020DFF800F001000020E5
S11307B880B500F043FADFF874045FF0FF3101609C
S11307C8DFF86C045FF0FF31016001BD70B504000F
S11307D80D001600200000F0C6F9FF2805D02819DE
S11307E8401E00F0C0F9FF2801D1002019E0600A7A
S11307F84FF400714843DFF83C140968884208D173
S11308082B009BB232002100DFF8240400F0E8F842
S113081807E02B009BB232002100DFF8100400F03F
S1130828DFF870BD70B504000D00200000F09BF9DE
S113083806002819401E00F096F9F6B2FF2E02D0E1
S1130848C0B2FF2801D1002005E00100C9B2300080
S1130858C0B200F047F970BD80B500200090DFF801
S1130868D003006810F1010F01D1012037E000988E
S1130878DFF8BC134968081800900098DFF8B01333
S11308888968081800900098DFF8A413C968081844
S113089800900098DFF898130969081800900098E8
S11308A8DFF88C134969081800900098DFF8801362
S11308B88969081800900098DFF87413C969081842
S11308C800900098C04300900098401C009000AA33
S11308D80421DFF860030068B830FFF777FF02BD32
S11308E80020DFF85013096809680818DFF8441372
S11308F8096849680818DFF83C1309688968081802
S1130908CC490968C9680818CA49096809690818EE
S1130918C849096849690818C649096889690818E5
S1130928C4490968D1F8B8100818002801D1012071
S113093800E00020704780B5BD48006810F1010F41
S113094806D0BB4800F090F8002801D100200EE042
S1130958B648006810F1010F06D0B44800F084F8D6
S1130968002801D1002002E000F079F9012002BD3D
S113097880B54FF40072B1FBF2F303FB1213002BA2
S113098801D000200BE002688A4201D1012006E070
S113099801604FF40072001D00F08AF9012002BDC5
S11309A838B504000D00A248844208D19F4C2900A0
S11309B82000FFF7DDFF002810D100200FE09D483C
S11309C80068854203D19A4C9A480568EFE72000ED
S11309D800F04AF80028EAD1002000E0200032BDE7
S11309E82DE9F04104000F0015001E00780A4FF4A9
S11309F8007101FB00F8206810F1010F07D141468E
S1130A082000FFF7B5FF002801D100202AE0206864
S1130A18404508D041462000FFF7C2FF0400002CDF
S1130A2801D100201EE02068381A0019071D00F0C3
S1130A3855F9201D381AB0F5007F0AD318F500714E
S1130A482000FFF7ADFF0400002C01D1002009E0CD
S1130A58271D287838707F1C6D1C761EB6B2002EB0
S1130A68E5D10120BDE8F081F8B505000124286826
S1130A7800F079F8C0B2FF2801D100201DE000265B
S1130A8800E0761C802E16D2286810EB860715EB3A
S1130A9886004068009000F021F9042200A938007B
S1130AA8FFF77EFE002801D0002404E0386800998E
S1130AB88842E6D000242000C0B2F2BD5E48007827
S1130AC8C0B2472802D0C0B2492802D14FF40070FE
S1130AD807E0C0B2482802D14FF4805001E04FF437
S1130AE800607047F8B506000C00E4B2F6B2B442F0
S1130AF801D2002036E04F48007AF6B2864205D388
S1130B084C4890F8B000E4B2A04201D2002029E099
S1130B18FFF7D4FF05003000C0B200F04EF806001D
S1130B282000C0B200F049F807002000C0B200F06D
S1130B3861F8C019401E801B401CB0FBF5F4002767
S1130B4800E07F1CBFB2A4B2A7420AD200F0C6F8E4
S1130B58BFB205FB0760FFF727FE0028F1D000208D
S1130B6800E00120F2BD38B50400002500E06D1C4A
S1130B78EDB20F2D1FD200F0B1F8EDB20C202D49C3
S1130B8800FB051000688442F1D3EDB20C2029491A
S1130B9800FB05100068EDB20C21264A01FB052173
S1130BA8496808188442E2D2EDB20C20214900FBBE
S1130BB80510007A00E0FF2032BD38B50400002596
S1130BC800E06D1CEDB20F2D11D200F087F8EDB2E4
S1130BD80C20184900FB0510007AE4B2A042F0D1B9
S1130BE8EDB20C20134900FB0510006801E05FF02A
S1130BF8FF3032BD38B50400002500E06D1CEDB2AD
S1130C080F2D11D200F06AF8EDB20C20094900FB4F
S1130C180510007AE4B2A042F0D1EDB20C200549E7
S1130C2800FB0510406800E0002032BD740100207C
S1130C3878030020D8190000FE81E00F10480068EE
S1130C4850F001000E4908600E4841F67131016008
S1130C580B48006840084000094908607047084884
S1130C68006850F001000649086006480021016048
S1130C7803480068400840000149086070470000C4
S1130C8808000C403C000C4080B500F034F8002803
S1130C980BD000F070F800F09AF804484FF40051B3
S1130CA8016042F204000068804701BD08ED00E0DD
S1130CB870B504000D00160005E0287820706D1C3E
S1130CC8641C00F00BF83000461E80B20028F4D1F2
S1130CD870BD80B500F098F801BD7047704780B5C5
S1130CE8FFF766FD01BD80B5FFF770FD02BD80B555
S1130CF8FFF798FD02BD80B5FFF7F2FD02BD80B590
S1130D08FFF7AAFD002801D1002001E0FFF713FE38
S1130D1802BD10B450F8041B81B102681218001DFA
S1130D2850F8043BDC0744BFA9F10104E31852F866
S1130D38044B43F8044B091FF9D1EBE710BC704787
S1130D4880B515480088ADF8000000F069F800F097
S1130D589DFA12480078012802D100A800F08AF808
S1130D6801BD80B50E4800F0FCFA012802D10C48F8
S1130D7800F080F801BD704780B5C9B200F0C7FA29
S1130D8800F072F801BD054801210170704703485D
S1130D9800210170704700006614000064060020FA
S1130DA80C06002080B500F056F802BD80B500F0AE
S1130DB80EF8114843F2AF61016010480021016048
S1130DC80F48052101600F480021018001BD0C482E
S1130DD80021016070470A480068C00304D5094827
S1130DE80088401C07490880704780B5FFF7F3FF67
S1130DF80448008802BD000014E000E018E000E0A8
S1130E0810E000E05E060020044B9D46C046C04644
S1130E18C046C046FFF7BBFF00F016FB680700207A
S1130E28DFF8240400210170DFF81C040021816428
S1130E38DFF81404002180F84310DFF80C040021C3
S1130E48A0F84410DFF8000400218170DFF8F803EB
S1130E58002141707047DFF8F0030078002801D1C1
S1130E68002000E001207047DFF8DC03002180F84F
S1130E784310704780B50178FF2918D100F08BF82A
S1130E88DFF8C40390F84300012802D1102000F0D1
S1130E9878F8DFF8B403012180F84310DFF8A803D9
S1130EA8B0F94410DFF8A40300F053F801BDDFF8EB
S1130EB89813097801294BD10178C92932D0CC2952
S1130EC83FD0CF293AD0D0292FD0D12933D0D22915
S1130ED82ED0F32917D0F4290FD0F5290AD0F629F2
S1130EE80ED0FA2912D0FC2913D0FD2914D0FE29DA
S1130EF815D029E000F0CDF8C2E700F0E9F8BFE723
S1130F0800F0BCF8BCE700F005F9B9E700F09EF87A
S1130F18B6E700F095F8B3E700F07AF8B0E700F028
S1130F2868F8ADE700F027F9AAE700F03EF9A7E76B
S1130F3800F007F9A4E700F066F9A1E700F077F9F3
S1130F489EE700F08BF99BE7202000F01AF897E75A
S1130F58ACE780B589B2FFF70FFF01BD10B40023D9
S1130F6802E00478E318401C0C00611E002CF8D140
S1130F78DBB21360012010BC7047B34800214170F4
S1130F887047B149FE22CA70AF490871AE480221C0
S1130F98A0F84410704710B50400FFF7EEFFAA4804
S1130FA801210170A848FF21C170A74800210171DF
S1130FB8A548007950F01000A3490871A2480021FF
S1130FC84171A148A049497941719F4840218171E3
S1130FD89D484021C1719C48002101729A48012111
S1130FE8417299480121817297480821A0F8441058
S1130FF810BD10B50400944800210170FFF7BDFF2F
S11310089148FF21C17090480121A0F8441010BDF7
S11310188D49FF22CA708C4900220A718A498A4A7A
S113102852784A71884900228A7187490022CA7114
S1131038854900220A7284490622A1F8442070478F
S113104810B504000020FFF79CFF10BD7E49FF2265
S1131058CA707D497E4A8A647B4900220A717A49AA
S113106800224A71784900228A7177490722C1F817
S1131078072075490822A1F8442070477249FF22C5
S1131088CA707149406888646F480121A0F8441007
S1131098704710B504006078402803DB2220FFF76E
S11310A870FF14E0627892B26748816C6948FFF770
S11310B8FFFD6548FF21C1706348806C617808189A
S11310C8614988646078401C5F49A1F8440010BDF8
S11310D810B504006078402803DB2220FFF751FF95
S11310E817E0594861688164627892B25648816C05
S11310F85848FFF7DDFD5448FF21C1705248806C01
S113110861780818504988646078401C4E49A1F8F1
S1131118440010BD80B54C49FF22CA704E4A41684C
S11311284948806CFFF71AFF47490871464800216F
S1131138417145480021817143480821A0F84410B1
S113114801BD4149FF22CA703F4900220A713E4944
S113115800224A713C4940228A713B490022CA71E3
S1131168394900220A72384900224A72364907224C
S1131178A1F84420704780B5421C3F213248806C56
S1131188FFF7B1FD002803D13120FFF7FAFE0BE089
S11311982D48FF21C1702C48806C3F302A4988644F
S11311A829480121A0F8441001BD10B50400607855
S11311B83F2803DB2220FFF7E4FE23E02248FF2137
S11311C8C17021480121A0F844106078002807D193
S11311D8FFF795FD002802D13120FFF7D2FE11E078
S11311E8A21C61781848806CFFF77DFD002803D1A4
S11311F83120FFF7C6FE05E01348806C61780818B3
S11312081149886410BD80B541680F48806CFFF7A8
S11312186EFD002803D13120FFF7B3FE06E00A482B
S1131228FF21C17008480121A0F8441001BD10B580
S11312380400FFF74EFD0448FF21C1700248012154
S1131248A0F8441010BD00007C0500207F05002094
S11312585C1B0000800500208305002080B5312038
S1131268FFF78FFE01BD50F8041B61B150F8042B41
S1131278D30744BFA9F101039A18002342F8043B99
S1131288091FFAD1EFE770474163704700B585B08D
S113129800A85F49102200F0E3F801215D48FFF738
S11312A842F8012304220621022000F016F9002343
S11312B801220721022000F010F901215648FFF706
S11312C832F802215548FFF732F901215448FEF754
S11312D887FF01215248FFF726F800208DF8000007
S11312E800A9504800F0ADF94FF4165200214D48BA
S11312F800F065F94C480321016004214948FFF7CF
S1131308C3FF0521474800F081F905B000BD70B559
S113131804000D00EDB2412D03DB6821434800F0C1
S1131328C7F92800C0B200F05DF8012803D06B218A
S11313383E4800F0BDF900260CE0FFF7CFFCB6B23A
S1131348305D00F04FF8012803D07321374800F0CE
S1131358AFF9761C2800C0B2B6B280B28642ECD38C
S113136870BD10B504003248007800280CD131480B
S113137800F02AF8012805D12D48012101702E48D2
S113138800210170002010BD2B480078294940181D
S1131398401C00F019F80128F4D127480078401CB3
S11313A82549087024480078224909788842E9D1F7
S11313B82148027892B221492000FFF779FC1C48A1
S11313C8002101700120DEE710B5040000201C494B
S11313D80968490704D5134800F056F9207001201C
S11313E8C0B210BD80B517490968C90601D40020E8
S11313F80CE00100C9B20B4800F04CF901E0FFF71A
S11314086DFC10480068C006F9D5012002BD000033
S1131418301B000000C20200002304000300120075
S1131428401516000044084054440840D01A0000EF
S113143862060020C805002061060020C9050020B6
S11314482C4408400844084000F03EF9002801D024
S113145800F03CF9002000F0BCF900F055FAFF0058
S1131468103A07D330B4B1E83810103AA0E838106D
S1131478F9D230BC530724BFB1E80810A0E808101B
S113148844BF51F8043B40F8043BD20724BF31F869
S1131498022B20F8022B44BF0B7803707047083ADC
S11314A807D3B1E80810083A40F8043B40F804CBE5
S11314B8F7D25307E4E70000C0B224223B4B02FBF7
S11314C80032126892089200C9B21143C0B22422B1
S11314D8364B02FB00300160704770B4D2B2002A68
S11314E812D0002B08D0C0B22424304D04FB005481
S11314F801258D40256107E0C0B224242B4D04FB4F
S1131508005401258D406561082919D2C0B22424EC
S1131518264D04FB005464680F250E00F6B2B6008D
S1131528B540AC43D2B20D00EDB2AD0012FA05F5E8
S11315382C43C0B224251D4E05FB00656C601AE0DF
S1131548C0B22424194D04FB0054A4680F250E00CE
S1131558083EF6B2B600B540AC43D2B20D00083D21
S1131568EDB2AD0012FA05F52C43C0B224250F4E96
S113157805FB0065AC60D2B2002A14D1002B09D057
S1131588C0B22422094B02FB0030012212FA01F1F5
S1131598016108E0C0B22422044B02FB003001229E
S11315A812FA01F1416170BC70470000006000400C
S11315B8026CD20702D4426C0A42FCD1704738B597
S11315C804001500002906D10C4884420ED10C48A9
S11315D8FEF7DDFE01004801B0FBF5F5203DED0006
S11315E804212000FFF7E4FFE56031BD054884428B
S11315F801D10548ECE7F8E7000000000040084086
S113160840051400004408404015160038B504008D
S1131618C9B2CD4315F005056D00C9B20D430221C9
S11316282000FFF7C5FF656031BDC9B2002905D0A8
S1131638416C0029FCD10121016401E0002101640D
S1131648704738B504000D0002212000FFF7B0FFF1
S11316580A20606001212000FFF7E7FF206830F0CE
S11316681C00297B0843697B0843A97B0843206045
S1131678AA6869682000FFF7A2FF28786060002143
S11316882000FFF7D2FF31BD81688906FCD5C06907
S1131698C0B2704738B504000D00A068C006FCD578
S11316A840212000FFF784FFEDB2A56231BD0000A0
S11316B880B5034A106003480160FFF70FFBFCE79D
S11316C84C060020500600200120704710B5074939
S11316D879441831064C7C44163404E00A68081D21
S11316E8511888470146A142F8D110BD18040000DA
S11316F83804000080B568480168080E00280DD138
S11317086648026832F07002026065480268D200D6
S1131718D2080260026872F060620260080E04284F
S113172813D25F48016831F4FC5101605D4800211F
S113173801605D48002101605C48002101605C484B
S1131748002101605B480021016000A800F0DEF878
S11317589DF80000012811D19DF80100002804D14A
S11317685048016851F0020101609DF80100022807
S113177804DA4D48016851F0010101604E480168DE
S11317884E48814224D24848016851F4904101608E
S11317984B480068000410F0FE414948006810F006
S11317A87F0051EA00414648006810F4FE400143B6
S11317B84348006810F07F000143424801604248F2
S11317C84249096801603848016831F49041016070
S11317D801BD80B500F005F800F0AEF800F0B8F8E7
S11317E8FCE780B5FEF7B2FFFFF784FF0122012171
S11317F80020FEF700FF2B48006850F00F0029492D
S113180808602948006840F47F4050F0FF002649EA
S1131818086000212E48FEF786FD00212D48FEF7BA
S113182882FD00212C48FEF77EFD00212B48FEF79F
S11318387AFD00212A48FEF776FD00212948FEF7A3
S113184872FD00212848FEF76EFD00212748FEF7A7
S11318586AFD00212648FEF766FD00212548FEF7AB
S113186862FD00212448FEF75EFD00212348FEF7AF
S11318785AFD00212248FEF756FD00212148FEF7B3
S113188852FD0123052209210120FFF726FE02212A
S11318980120FFF711FE01BDFC81E00F0CA00C40F4
S11318A820600C4040800C4044800C4058800C4020
S11318B860800C4078800C40F081E00F00BA8A4CBC
S11318C8B481E00F342000402C400040C881E00F70
S11318D800030400001304000033040000A2020003
S11318E8000202000012020000220200003202007C
S11318F8007202000082020000B2020000E202004C
S113190800F2020000D2020000F02CB8074909686E
S113191811F03F0101700649096811F0F001054A08
S11319281268C2F30312114341707047E0FF0FE0DD
S1131938E8FF0FE0ECFF0FE080B5FFF7CEF9FFF703
S113194835FAFFF7CCF9FFF7FBF900F011F801BD00
S113195880B5FFF7C3F9FFF73EFAFFF702FA00F084
S113196812F801BD0746384600F028F8FBE70000E6
S113197880B5104801210170FFF737FA0E49086055
S113198800F001F801BD80B5FFF70CFA01280FD06B
S11319980848007801280BD1FFF727FA0649096897
S11319A83231884204D3034800210170FFF76CF9EF
S11319B801BD0000600600205406002080B5C04622
S11319C8C046024A11001820ABBEFBE726000200FD
S11319D8002000000020000001000000004000007A
S11319E80020000002000000006000000020000049
S11319F80300000000800000002000000400000034
S1131A0800A00000002000000500000000C0000045
S1131A18002000000600000000E000000020000094
S1131A28070000000000010000200000080000007A
S1131A38002001000020000009000000004001000F
S1131A48002000000A0000000060010000200000DF
S1131A580B00000000800100002000000C000000C2
S1131A6800A00100002000000D00000000C00100DB
S1131A78002000000E00000000E00100002000002B
S1131A880F000000433A5C576F726B5C736F6674A7
S1131A98776172655C4F70656E424C545C54617238
S1131AA86765745C536F757263655C41524D434D51
S1131AB8335F45464D33325C4941525C7665637405
S1131AC86F72732E63000000433A5C576F726B5C4D
S1131AD8736F6674776172655C4F70656E424C54BF
S1131AE85C5461726765745C536F757263655C41BD
S1131AF8524D434D335F45464D33325C75617274C4
S1131B082E63000063F7FFFFF00400007401002057
S1131B1800000000FFF1FFFF740100004000000016
S1131B280000002000000000050000000000000084
S1131B38802500000000000080B540210148FFF71F
S1131B48B7FD01BD8C1A0000C046C046C046C04659
S1131B58FFF77AFC4F70656E424C54005449554A5D
S1131B68126852F00102534B1A60534A10605348EA
S1131B780122026052480068400708D54D480068B1
S1131B88400840004B4908605FF0FF3029E04C48AA
S1131B980068800708D54748006840084000454960
S1131BA808607FF001001CE044480222026000E063
S1131BB8491E43480068C00701D50029F8D1002907
S1131BC808D13C480068400840003A4908607FF062
S1131BD8020006E0374800684008400035490860BC
S1131BE80020704730B4334B1B6853F00103314C69
S1131BF823609310002200E0521C9A424FDA10EB43
S1131C0882042D4D2C602D4C012525602C4C246814
S1131C18640708D52748006840084000254908603B
S1131C285FF0FF3042E0264C2468A40708D5214819
S1131C380068400840001F4908607FF0010035E053
S1131C481B4C00E0641E1E4D2D682D0701D4002C8A
S1131C58F8D1002C08D117480068400840001549FD
S1131C6808607FF0020021E051F82240154D2C60F5
S1131C78124C082525600E4C00E0641E104D2D689A
S1131C88ED0701D5002CF8D1002CB5D1094800681E
S1131C9840084000074908607FF0020006E0054854
S1131CA800684008400003490860002030BC7047C1
S1131CB88096980008000C4010000C400C000C4062
S1131CC81C000C4018000C400048E801008000008B
S9031B5190
S11307B880B500F041FADFF870045FF0FF310160A2
S11307C8DFF868045FF0FF31016001BD70B5040013
S11307D80D001600200000F0C3F9FF2805D02819E1
S11307E8401E00F0BDF9FF2801D1002017E0600A7F
S11307F84FF400714843DFF838140968884207D178
S11308082B0032002100DFF8240400F0E7F806E0AA
S11308182B0032002100DFF8100400F0DFF870BD6F
S113082870B504000D00200000F09AF9060028199C
S1130838401E00F095F9F6B2FF2E02D0C0B2FF2890
S113084801D1002005E00100C9B23000C0B200F0B7
S113085846F970BD80B500200090DFF8D003006829
S113086810F1010F01D1012037E00098DFF8BC1323
S11308784968081800900098DFF8B01389680818C8
S113088800900098DFF8A413C9680818009000982D
S1130898DFF898130969081800900098DFF88C139A
S11308A84969081800900098DFF8801389690818C6
S11308B800900098DFF87413C9690818009000982C
S11308C8C04300900098401C009000AA0421DFF85F
S11308D860030068B830FFF779FF02BD0020DFF835
S11308E85013096809680818DFF844130968496847
S11308F80818DFF83C13096889680818CC4909689E
S1130908C9680818CA49096809690818C8490968F2
S113091849690818C649096889690818C4490968E9
S1130928D1F8B8100818002801D1012000E00020EF
S1130938704780B5BD48006810F1010F06D0BB4868
S113094800F08FF8002801D100200EE0B6480068B6
S113095810F1010F06D0B44800F083F8002801D143
S1130968002002E000F079F9012002BD80B54FF4BF
S11309780072B1FBF2F303FB1213002B01D0002029
S11309880BE002688A4201D1012006E001604FF4BD
S11309980072001D00F08AF9012002BD38B5040078
S11309A80D00A248844208D19F4C29002000FFF77B
S11309B8DDFF002810D100200FE09D480068854223
S11309C803D19A4C9A480568EFE7200000F049F8EB
S11309D80028EAD1002000E0200032BD2DE9F041D2
S11309E804000F0015001E00780A4FF4007101FB83
S11309F800F8206810F1010F07D141462000FFF7E5
S1130A08B5FF002801D1002029E02068404508D01E
S1130A1841462000FFF7C2FF0400002C01D100204A
S1130A281DE02068381A0019071D00F055F9201D2B
S1130A38381AB0F5007F0AD318F500712000FFF7C3
S1130A48ADFF0400002C01D1002008E0271D287800
S1130A5838707F1C6D1C761E002EE6D10120BDE87F
S1130A68F081F8B505000124286800F079F8C0B2CF
S1130A78FF2801D100201DE0002600E0761C802E0E
S1130A8816D2286810EB860715EB8600406800909C
S1130A9800F022F9042200A93800FFF781FE00289B
S1130AA801D0002404E0386800998842E6D0002484
S1130AB82000C0B2F2BD5F480078C0B2472802D017
S1130AC8C0B2492802D14FF4007007E0C0B24828E8
S1130AD802D14FF4805001E04FF400607047F8B53C
S1130AE806000C00E4B2F6B2B44201D2002036E0AB
S1130AF84F48007AF6B2864205D34D4890F8B000C4
S1130B08E4B2A04201D2002029E0FFF7D4FF050097
S1130B183000C0B200F04EF806002000C0B200F069
S1130B2849F807002000C0B200F061F8C019401E5F
S1130B38801B401CB0FBF5F4002700E07F1CBFB20B
S1130B48A4B2A7420AD200F0C7F8BFB205FB0760F7
S1130B58FFF72AFE0028F1D0002000E00120F2BDB2
S1130B6838B50400002500E06D1CEDB20F2D1FD22E
S1130B7800F0B2F8EDB20C202D4900FB0510006816
S1130B888442F1D3EDB20C20294900FB051000681A
S1130B98EDB20C21264A01FB052149680818844254
S1130BA8E2D2EDB20C20224900FB0510007A00E0E5
S1130BB8FF2032BD38B50400002500E06D1CEDB2FD
S1130BC80F2D11D200F088F8EDB20C20184900FB63
S1130BD80510007AE4B2A042F0D1EDB20C20144919
S1130BE800FB0510006801E05FF0FF3032BD38B546
S1130BF80400002500E06D1CEDB20F2D11D200F0A9
S1130C086BF8EDB20C200A4900FB0510007AE4B237
S1130C18A042F0D1EDB20C20054900FB0510406854
S1130C2800E0002032BD0000740100207803002099
S1130C38D4190000FE81E00F1048006850F001004C
S1130C480E4908600E4841F6713101600B4800688E
S1130C58400840000949086070470848006850F097
S1130C68010006490860064800210160034800683D
S1130C7840084000014908607047000008000C4023
S1130C883C000C4080B500F034F800280BD000F08C
S1130C9870F800F09AF804484FF40051016042F2E9
S1130CA804000068804701BD08ED00E070B5040049
S1130CB80D00160005E0287820706D1C641C00F0F7
S1130CC80BF83000461E80B20028F4D170BD80B500
S1130CD800F098F801BD7047704780B5FFF768FDCC
S1130CE801BD80B5FFF772FD02BD80B5FFF798FD21
S1130CF802BD80B5FFF7F2FD02BD80B5FFF7AAFD7E
S1130D08002801D1002001E0FFF713FE02BD10B452
S1130D1850F8041B81B102681218001D50F8043BF6
S1130D28DC0744BFA9F10104E31852F8044B43F863
S1130D38044B091FF9D1EBE710BC704780B515487F
S1130D480088ADF8000000F069F800F09DFA124838
S1130D580078012802D100A800F08AF801BD80B506
S1130D680E4800F0FCFA012802D10C4800F080F883
S1130D7801BD704780B5C9B200F0C7FA00F072F837
S1130D8801BD054801210170704703480021017025
S1130D987047000062140000680600200C0600205A
S1130DA880B500F056F802BD80B500F00EF8114881
S1130DB843F2AF6101601048002101600F4805212A
S1130DC801600F480021016001BD0C480021016049
S1130DD870470A480068C00304D509480068401CE5
S1130DE807490860704780B5FFF7F3FF04480068B7
S1130DF802BD000014E000E018E000E010E000E0AC
S1130E085C060020044B9D46C046C046C046C0460A
S1130E18FFF7BBFF00F016FB70070020DFF824047F
S1130E2800210170DFF81C0400218164DFF8140438
S1130E38002180F84310DFF80C040021A0F84410C6
S1130E48DFF8000400218170DFF8F8030021417005
S1130E587047DFF8F0030078002801D1002000E093
S1130E6801207047DFF8DC03002180F84310704745
S1130E7880B50178FF2918D100F08BF8DFF8C40396
S1130E8890F84300012802D1102000F078F8DFF828
S1130E98B403012180F84310DFF8A803B0F9441023
S1130EA8DFF8A40300F053F801BDDFF898130978BC
S1130EB801294BD10178C92932D0CC293FD0CF2977
S1130EC83AD0D0292FD0D12933D0D2292ED0F32902
S1130ED817D0F4290FD0F5290AD0F6290ED0FA290B
S1130EE812D0FC2913D0FD2914D0FE2915D029E0ED
S1130EF800F0CDF8C2E700F0E9F8BFE700F0BCF86D
S1130F08BCE700F005F9B9E700F09EF8B6E700F091
S1130F1895F8B3E700F07AF8B0E700F068F8ADE7C1
S1130F2800F027F9AAE700F03EF9A7E700F007F96F
S1130F38A4E700F066F9A1E700F077F99EE700F06E
S1130F488BF99BE7202000F01AF897E7ACE780B507
S1130F5889B2FFF70FFF01BD10B4002302E0047843
S1130F68E318401C0C00611E002CF8D1DBB213609E
S1130F78012010BC7047B348002141707047B14943
S1130F88FE22CA70AF490871AE480221A0F8441085
S1130F98704710B50400FFF7EEFFAA48012101705D
S1130FA8A848FF21C170A74800210171A54800790C
S1130FB850F01000A3490871A24800214171A148CA
S1130FC8A049497941719F48402181719D48402138
S1130FD8C1719C48002101729A48012141729948C3
S1130FE80121817297480821A0F8441010BD10B55A
S1130FF80400944800210170FFF7BDFF9148FF21C8
S1131008C17090480121A0F8441010BD8D49FF22F9
S1131018CA708C4900220A718A498A4A52784A71EC
S1131028884900228A7187490022CA7185490022A9
S11310380A7284490622A1F84420704710B50400B6
S11310480020FFF79CFF10BD7E49FF22CA707D492E
S11310587E4A8A647B4900220A717A4900224A71CD
S1131068784900228A7177490722C1F8072075490F
S11310780822A1F8442070477249FF22CA707149B6
S1131088406888646F480121A0F84410704710B57F
S113109804006078402803DB2220FFF770FF14E087
S11310A8627892B26748816C6948FFF7FFFD65482A
S11310B8FF21C1706348806C6178081861498864AD
S11310C86078401C5F49A1F8440010BD10B50400C5
S11310D86078402803DB2220FFF751FF17E05948C6
S11310E861688164627892B25648816C5848FFF707
S11310F8DDFD5448FF21C1705248806C617808189E
S1131108504988646078401C4E49A1F8440010BDD9
S113111880B54C49FF22CA704E4A41684948806CE0
S1131128FFF71AFF474908714648002141714548AD
S11311380021817143480821A0F8441001BD4149A8
S1131148FF22CA703F4900220A713E4900224A71AF
S11311583C4940228A713B490022CA71394900221C
S11311680A72384900224A7236490722A1F84420F3
S1131178704780B5421C3F213248806CFFF7B1FDAF
S1131188002803D13120FFF7FAFE0BE02D48FF2198
S1131198C1702C48806C3F302A4988642948012151
S11311A8A0F8441001BD10B5040060783F2803DBA3
S11311B82220FFF7E4FE23E02248FF21C1702148E2
S11311C80121A0F844106078002807D1FFF795FDA5
S11311D8002802D13120FFF7D2FE11E0A21C617869
S11311E81848806CFFF77DFD002803D13120FFF7F4
S11311F8C6FE05E01348806C6178081811498864B4
S113120810BD80B541680F48806CFFF76EFD00285B
S113121803D13120FFF7B3FE06E00A48FF21C1706D
S113122808480121A0F8441001BD10B50400FFF7D7
S11312384EFD0448FF21C17002480121A0F8441062
S113124810BD00007C0500207F050020581B00000D
S1131258800500208305002080B53120FFF78FFE2C
S113126801BD50F8041B61B150F8042BD30744BFE7
S1131278A9F101039A18002342F8043B091FFAD183
S1131288EFE770474163704700B585B000A85F4930
S1131298102200F0E3F801215D48FFF744F8012328
S11312A804220621022000F016F900230122072156
S11312B8022000F010F901215648FFF734F8022102
S11312C85548FFF734F901215448FEF789FF0121F5
S11312D85248FFF728F800208DF8000000A950486C
S11312E800F0ADF94FF4165200214D4800F065F9AD
S11312F84C480321016004214948FFF7C3FF052135
S1131308474800F081F905B000BD70B504000D0030
S1131318EDB2412D03DB6721434800F0C7F92800EB
S1131328C0B200F05DF8012803D06A213E4800F0FD
S1131338BDF900260CE0FFF7CFFCB6B2305D00F033
S11313484FF8012803D07221374800F0AFF9761C12
S11313582800C0B2B6B280B28642ECD370BD10B5D4
S113136804003248007800280CD1314800F02AF8EB
S1131378012805D12D48012101702E480021017052
S1131388002010BD2B48007829494018401C00F063
S113139819F80128F4D127480078401C2549087019
S11313A824480078224909788842E9D121480278FA
S11313B892B221492000FFF779FC1C4800210170F2
S11313C80120DEE710B5040000201C49096849071C
S11313D804D5134800F056F920700120C0B210BD9E
S11313E880B517490968C90601D400200CE001003A
S11313F8C9B20B4800F04CF901E0FFF76DFC104846
S11314080068C006F9D5012002BD00002C1B0000AD
S113141800C2020000230400030012004015160055
S11314280044084054440840CC1A000064060020D4
S1131438C805002063060020C90500202C44084084
S11314480844084000F03EF9002801D000F03CF9B7
S1131458002000F0BCF900F055FAFF00103A07D359
S113146830B4B1E83810103AA0E83810F9D230BCDA
S1131478530724BFB1E80810A0E8081044BF51F886
S1131488043B40F8043BD20724BF31F8022B20F870
S1131498022B44BF0B7803707047083A07D3B1E8AE
S11314A80810083A40F8043B40F804CBF7D2530735
S11314B8E4E70000C0B224223B4B02FB003212686E
S11314C892089200C9B21143C0B22422364B02FBDF
S11314D800300160704770B4D2B2002A12D0002BD9
S11314E808D0C0B22424304D04FB005401258D409B
S11314F8256107E0C0B224242B4D04FB00540125C8
S11315088D406561082919D2C0B22424264D04FBF4
S1131518005464680F250E00F6B2B600B540AC431B
S1131528D2B20D00EDB2AD0012FA05F52C43C0B2EB
S113153824251D4E05FB00656C601AE0C0B2242406
S1131548194D04FB0054A4680F250E00083EF6B29A
S1131558B600B540AC43D2B20D00083DEDB2AD00C3
S113156812FA05F52C43C0B224250F4E05FB00657D
S1131578AC60D2B2002A14D1002B09D0C0B2242204
S1131588094B02FB0030012212FA01F1016108E063
S1131598C0B22422044B02FB0030012212FA01F1EA
S11315A8416170BC7047000000600040026CD207C3
S11315B802D4426C0A42FCD1704738B504001500C5
S11315C8002906D10C4884420ED10C48FEF7DFFEF0
S11315D801004801B0FBF5F5203DED000421200091
S11315E8FFF7E4FFE56031BD0548844201D10548B1
S11315F8ECE7F8E70000000000400840400514004C
S1131608004408404015160038B50400C9B2CD435B
S113161815F005056D00C9B20D4302212000FFF73E
S1131628C5FF656031BDC9B2002905D0416C0029E8
S1131638FCD10121016401E000210164704738B53F
S113164804000D0002212000FFF7B0FF0A206060AB
S113165801212000FFF7E7FF206830F01C00297BF8
S11316680843697B0843A97B08432060AA68696822
S11316782000FFF7A2FF2878606000212000FFF710
S1131688D2FF31BD81688906FCD5C069C0B27047F4
S113169838B504000D00A068C006FCD54021200020
S11316A8FFF784FFEDB2A56231BD000080B5034A9F
S11316B8106003480160FFF70FFBFCE74C060020AD
S11316C8500600200120704710B5074979441831A5
S11316D8064C7C44163404E00A68081D51188847EF
S11316E80146A142F8D110BD1804000038040000D6
S11316F880B568480168080E00280DD1664802685C
S113170832F07002026065480268D200D2080260B2
S1131718026872F060620260080E042813D25F48FF
S1131728016831F4FC5101605D48002101605D48A5
S1131738002101605C48002101605C4800210160CF
S11317485B480021016000A800F0DEF89DF8000065
S1131758012811D19DF80100002804D150480168DE
S113176851F0020101609DF80100022804DA4D4895
S1131778016851F0010101604E4801684E488142F8
S113178824D24848016851F4904101604B480068EC
S1131798000410F0FE414948006810F07F0051EA47
S11317A800414648006810F4FE400143434800687D
S11317B810F07F00014342480160424842490968E9
S11317C801603848016831F49041016001BD80B579
S11317D800F005F800F0AEF800F0B8F8FCE780B5C2
S11317E8FEF7B4FFFFF784FF012201210020FEF772
S11317F802FF2B48006850F00F0029490860294867
S1131808006840F47F4050F0FF002649086000213A
S11318182E48FEF788FD00212D48FEF784FD00219F
S11318282C48FEF780FD00212B48FEF77CFD0021A3
S11318382A48FEF778FD00212948FEF774FD0021A7
S11318482848FEF770FD00212748FEF76CFD0021AB
S11318582648FEF768FD00212548FEF764FD0021AF
S11318682448FEF760FD00212348FEF75CFD0021B3
S11318782248FEF758FD00212148FEF754FD0123B4
S1131888052209210120FFF726FE02210120FFF786
S113189811FE01BDFC81E00F0CA00C4020600C403F
S11318A840800C4044800C4058800C4060800C40C0
S11318B878800C40F081E00F00BA8A4CB481E00FC4
S11318C8342000402C400040C881E00F000304008D
S11318D8001304000033040000A202000002020006
S11318E8001202000022020000320200007202000C
S11318F80082020000B2020000E2020000F20200CC
S113190800D2020000F02CB80749096811F03F0121
S113191801700649096811F0F001054A1268C2F31A
S11319280312114341707047E0FF0FE0E8FF0FE036
S1131938ECFF0FE080B5FFF7CEF9FFF735FAFFF7B4
S1131948CCF9FFF7FBF900F011F801BD80B5FFF7FA
S1131958C3F9FFF73EFAFFF702FA00F012F801BDE7
S11319680746384600F028F8FBE7000080B5104821
S113197801210170FFF737FA0E49086000F001F8F9
S113198801BD80B5FFF70CFA01280FD0084800788C
S113199801280BD1FFF727FA064909683231884232
S11319A804D3034800210170FFF76CF901BD00005E
S11319B8620600205406002080B5C046C046024A8C
S11319C811001820ABBEFBE726000200002000002F
S11319D8002000000100000000400000002000007A
S11319E80200000000600000002000000300000066
S11319F800800000002000000400000000A0000097
S1131A08002000000500000000C0000000200000C5
S1131A180600000000E000000020000007000000AD
S1131A280000010000200000080000000020010060
S1131A380020000009000000004001000020000010
S1131A480A00000000600100002000000B000000F4
S1131A5800800100002000000C00000000A001002C
S1131A68002000000D00000000C00100002000005C
S1131A780E00000000E00100002000000F0000003C
S1131A88433A5C576F726B5C736F66747761726507
S1131A985C4F70656E424C545C5461726765745C4B
S1131AA8536F757263655C41524D434D335F4546D0
S1131AB84D33325C4941525C766563746F72732EA0
S1131AC863000000433A5C576F726B5C736F667413
S1131AD8776172655C4F70656E424C545C546172F8
S1131AE86765745C536F757263655C41524D434D11
S1131AF8335F45464D33325C756172742E63000062
S1131B0863F7FFFFF40400007401002000000000E4
S1131B18FFF1FFFF740100004000000000000020F6
S1131B2800000000050000000000000080250000FF
S1131B380000000080B541210148FFF7B7FD01BD51
S1131B48881A0000C046C046C046C046FFF77AFC63
S1131B584F70656E424C54005449554A126852F00D
S1131B680102534B1A60534A106053480122026021
S1131B7852480068400708D54D48006840084000AE
S1131B884B4908605FF0FF3029E04C480068800743
S1131B9808D54748006840084000454908607FF078
S1131BA801001CE044480222026000E0491E434848
S1131BB80068C00701D50029F8D1002908D13C489C
S1131BC80068400840003A4908607FF0020006E0D7
S1131BD837480068400840003549086000207047CD
S1131BE830B4334B1B6853F00103314C236093101A
S1131BF8002200E0521C9A424FDA10EB82042D4D69
S1131C082C602D4C012525602C4C2468640708D5CC
S1131C182748006840084000254908605FF0FF3005
S1131C2842E0264C2468A40708D5214800684008E7
S1131C3840001F4908607FF0010035E01B4C00E0BC
S1131C48641E1E4D2D682D0701D4002CF8D1002CDC
S1131C5808D11748006840084000154908607FF01B
S1131C68020021E051F82240154D2C60124C082541
S1131C7825600E4C00E0641E104D2D68ED0701D55B
S1131C88002CF8D1002CB5D1094800684008400060
S1131C98074908607FF0020006E00548006840082C
S1131CA8400003490860002030BC704780969800C3
S1131CB808000C4010000C400C000C401C000C40A8
S10F1CC818000C400048E80100800000F7
S9031B4D94

View File

@ -0,0 +1,7 @@
/**
\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR Bootloader
\brief Bootloader.
\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
*/

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