diff --git a/Doc/doxygen/Doxyfile b/Doc/doxygen/Doxyfile
new file mode 100644
index 00000000..28773bfa
--- /dev/null
+++ b/Doc/doxygen/Doxyfile
@@ -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
diff --git a/Doc/doxygen/create_and_view_docs.bat b/Doc/doxygen/create_and_view_docs.bat
new file mode 100644
index 00000000..4078f10a
--- /dev/null
+++ b/Doc/doxygen/create_and_view_docs.bat
@@ -0,0 +1,4 @@
+"C:\Program Files\doxygen\bin\doxygen.exe" Doxyfile
+start .\output\index.html
+
+
diff --git a/Host/openblt_uart.ini b/Host/openblt_uart.ini
index 56b278d5..302a0bbe 100644
--- a/Host/openblt_uart.ini
+++ b/Host/openblt_uart.ini
@@ -1,5 +1,5 @@
[sci]
-port=3
+port=7
baudrate=8
[xcp]
seedkey=
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf
index 004bed03..5b51df9e 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
index 6111b789..e06335dc 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
@@ -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
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.srec b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.srec
index d1cb4235..6cba2d98 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.srec
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.srec
@@ -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
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/boot.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/boot.dox
new file mode 100644
index 00000000..a7843c0c
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks Bootloader
+\brief Bootloader.
+\ingroup ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/config.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/config.h
index a5d8510d..f0269b6d 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/config.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.c
index beefab0b..895f0b77 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.h
index bc8c4b15..92072e42 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/extflash.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef EXTFLASH_H
#define EXTFLASH_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
index 6a5dc137..02e618c9 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/main.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/main.c
index 9452a520..8ceaec0e 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/main.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf
index 0b651b77..4d689f22 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.c
index b375cc13..873786f8 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.h
index 92789052..fb4128e9 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/header.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/header.h
index 1a21e96e..0a00b94b 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/header.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/ide/lpc2294_crossworks.hzs b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/ide/lpc2294_crossworks.hzs
index ba66e1af..b2ae838b 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/ide/lpc2294_crossworks.hzs
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/ide/lpc2294_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.c
index 650763a1..199c6ea3 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.h
index 9f12faf4..b6e12acf 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.c
index 7e579999..077bc22a 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.h
index f69b6a44..c68407d3 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/main.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/main.c
index a5411907..06de599e 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/main.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/prog.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/prog.dox
new file mode 100644
index 00000000..5da523f9
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_Crossworks User Program
+\brief User Program.
+\ingroup ARM7_LPC2000_Olimex_LPC_L2294_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.c
index 6aa579af..1440e038 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.h
index e1bb1754..24f5e835 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/vectors.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/vectors.c
index 5fe2ae98..7da519ee 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/vectors.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/demo.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/demo.dox
new file mode 100644
index 00000000..d89ec7df
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_Crossworks/demo.dox
@@ -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.
+*/
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf
index 8b558a74..fc0bf962 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.hex b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.hex
index 755173bb..80634b03 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.hex
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.hex
@@ -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
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
index 097c20d1..a32fd91e 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/bin/openbtl_olimex_lpc_l2294_20mhz.map
@@ -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
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/boot.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/boot.dox
new file mode 100644
index 00000000..c3842be1
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARM7_LPC2000_Olimex_LPC_L2294_GCC Bootloader
+\brief Bootloader.
+\ingroup ARM7_LPC2000_Olimex_LPC_L2294_GCC
+*/
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/config.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/config.h
index a5d8510d..c8ec1cff 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/config.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.c
index beefab0b..94d1bba9 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.h
index bc8c4b15..68beb719 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/extflash.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef EXTFLASH_H
#define EXTFLASH_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
index 6a5dc137..70570cfc 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/main.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/main.c
index ad2b0cb7..c9456957 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/main.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf
index c4182459..f7527490 100644
Binary files a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf and b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/bin/demoprog_olimex_lpc_l2294_20mhz.elf differ
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.c
index b375cc13..b9c62f69 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.h
index 92789052..e632f1b6 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/header.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/header.h
index 1a21e96e..dd9bf7a3 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/header.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.c
index ceec7732..904ef4fd 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.h
index 9f12faf4..86fc8c03 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.c
index 7e579999..79c26414 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.h
index f69b6a44..36cfc493 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/main.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/main.c
index 59f19aa4..ceb16168 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/main.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/prog.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/prog.dox
new file mode 100644
index 00000000..5569b5e9
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARM7_LPC2000_Olimex_LPC_L2294_GCC User Program
+\brief User Program.
+\ingroup ARM7_LPC2000_Olimex_LPC_L2294_GCC
+*/
+
+
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.c
index 6aa579af..656ec767 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.h b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.h
index e1bb1754..794c3de4 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.h
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/vectors.c b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/vectors.c
index 7b5682bc..806ace2e 100644
--- a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/vectors.c
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/demo.dox b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/demo.dox
new file mode 100644
index 00000000..ca363ba8
--- /dev/null
+++ b/Target/Demo/ARM7_LPC2000_Olimex_LPC_L2294_GCC/demo.dox
@@ -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.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf
index e13e3046..e5666889 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.map
index 304f88ee..e4722ea2 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.map
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.map
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.srec b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.srec
index d5943ddd..a2de2d49 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.srec
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/bin/openbtl_olimex_efm32g880.srec
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/boot.dox
new file mode 100644
index 00000000..bd89d448
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/config.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/config.h
index 4eab8b3a..4448f5eb 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/config.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
index 4a17b69b..74bbe33c 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
index b51eb0b5..f7180e93 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/ide/EFM32G880_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/main.c
index 06c9d31d..6f9f6d08 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.elf
index 0ef96ebc..eac0a92f 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.map
index 21846df5..214ea142 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.map
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/bin/demoprog_olimex_efm32g880.map
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.c
index 27d37f48..0e540137 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.h
index 6da3f21c..d1c96fb6 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/header.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/header.h
index 5b6d35d0..5b251d0c 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/header.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/ide/EFM32G880_crossworks.hzs b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/ide/EFM32G880_crossworks.hzs
index 0183af8f..ddd0f2ef 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/ide/EFM32G880_crossworks.hzs
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/ide/EFM32G880_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.c
index 949b5a08..f75ed0d9 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.h
index 73e97bc3..abb35f42 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.c
index 377f39c2..4fe956f4 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.h
index ec187e78..8d7455c9 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/main.c
index d217ede9..60f88a28 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/prog.dox
new file mode 100644
index 00000000..0779f68b
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks User Program
+\brief User Program.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.c
index 4db88ff4..b2a9d00f 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.h
index ea2e990d..bbe1d518 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/vectors.c
index 7fdf040e..2d474d52 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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 *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/demo.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/demo.dox
new file mode 100644
index 00000000..55f74bee
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_Crossworks/demo.dox
@@ -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.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.bin b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.bin
index 2fcb3c8c..389aa174 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.bin and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.bin differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf
index 15e4de1c..4086a206 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.map
index 105f6011..53cc23f6 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.map
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/bin/openbtl_olimex_efm32g880.map
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/boot.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/boot.dox
new file mode 100644
index 00000000..6e791be7
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/config.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/config.h
index 4eab8b3a..b90984b4 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/config.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
index 4a17b69b..0eeba354 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/main.c
index 06c9d31d..1413320a 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf
index 1303e4ce..1aa748ae 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.elf differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map
index 49371977..9dd6c156 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/bin/demoprog_olimex_efm32g880.map
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.c
index 27d37f48..49da2d81 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.h
index 6da3f21c..b1a25f7b 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/cstart.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/cstart.c
index 348255d9..5544ef9d 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/cstart.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/cstart.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/header.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/header.h
index 5b6d35d0..14a0a3b8 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/header.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.c
index 949b5a08..edbbf671 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.h
index 73e97bc3..e11dced0 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.c
index 377f39c2..eb712cb2 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.h
index ec187e78..02a6f518 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/main.c
index d217ede9..516cef01 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/prog.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/prog.dox
new file mode 100644
index 00000000..904bf104
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC User Program
+\brief User Program.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.c
index 4db88ff4..e21740e0 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.h
index ea2e990d..c86a962e 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/vectors.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/vectors.c
index 53271e7c..9b6e5bcf 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \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 .
+*
+* 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 .
+*
+* \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 *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/demo.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/demo.dox
new file mode 100644
index 00000000..58421181
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_GCC/demo.dox
@@ -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.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out
index 0ce245fe..30a779d6 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.out differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.srec b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.srec
index 346fa0e8..f2f640ad 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.srec
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/bin/openbtl_olimex_efm32g880.srec
@@ -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
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/boot.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/boot.dox
new file mode 100644
index 00000000..6ccc59f4
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/config.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/config.h
index 17959613..b011fc15 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/config.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@@ -46,10 +48,15 @@
* 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)
+/** \brief Compiler specific variable prefix to prevent its initialization during startup. */
#define BOOT_CPU_CONNECT_STATE_PREFIX __no_init
@@ -64,10 +71,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)
@@ -82,6 +94,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)
@@ -94,7 +107,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)
@@ -107,6 +122,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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
index 4a17b69b..4f39def5 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
index 9596dbac..ada66305 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/efm32G880.dep
@@ -81,7 +81,7 @@
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\cpu.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\cpu.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\flash.c
- $PROJ_DIR$\..\obj\system_efm32.pbi
+ $PROJ_DIR$\..\obj\efm32G880.pbd
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\nvm.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\flash.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_EFM32\nvm.h
@@ -104,14 +104,15 @@
$PROJ_DIR$\..\..\..\..\Source\xcp.c
$PROJ_DIR$\..\..\..\..\Source\xcp.h
$PROJ_DIR$\..\obj\core_cm3.o
+ $PROJ_DIR$\..\obj\system_efm32.pbi
$PROJ_DIR$\..\obj\efm32_assert.lst
- $PROJ_DIR$\..\obj\uart.pbi
- $PROJ_DIR$\..\obj\timer.pbi
- $PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\boot.pbi
- $PROJ_DIR$\..\obj\vectors.pbi
$PROJ_DIR$\..\obj\timer.o
+ $PROJ_DIR$\..\obj\vectors.pbi
+ $PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\main.pbi
+ $PROJ_DIR$\..\obj\timer.pbi
+ $PROJ_DIR$\..\obj\uart.pbi
$PROJ_DIR$\..\obj\cstart.o
$PROJ_DIR$\..\obj\vectors.o
$PROJ_DIR$\..\obj\vectors.lst
@@ -122,7 +123,6 @@
$PROJ_DIR$\..\obj\efm32_usart.pbi
$PROJ_DIR$\..\obj\efm32_vcmp.pbi
$PROJ_DIR$\..\obj\core_cm3.lst
- $PROJ_DIR$\..\obj\efm32G880.pbd
$TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
$PROJ_DIR$\..\obj\efm32_mpu.o
$PROJ_DIR$\..\obj\efm32_msc.o
@@ -273,7 +273,7 @@
ICCARM
- 115 97
+ 116 97
@@ -292,7 +292,7 @@
BICOMP
- 75
+ 98
ICCARM
@@ -346,10 +346,6 @@
-
- BICOMP
- 11 254 0 5 3 124 121 212 235 117 228 215 213 4 180 179 1 7 19 16 15
-
ICCARM
11 254 0 5 3 124 121 212 235 117 228 215 213 4 180 179 1 7 19 16 15
@@ -388,7 +384,7 @@
ICCARM
- 98 210
+ 99 210
@@ -830,7 +826,7 @@
BICOMP
- 109
+ 110
ICCARM
@@ -853,7 +849,7 @@
BICOMP
- 110
+ 111
ICCARM
@@ -876,7 +872,7 @@
BICOMP
- 111
+ 112
ICCARM
@@ -899,7 +895,7 @@
BICOMP
- 112
+ 113
ICCARM
@@ -922,7 +918,7 @@
BICOMP
- 113
+ 114
ICCARM
@@ -945,7 +941,7 @@
BICOMP
- 114
+ 115
ICCARM
@@ -1014,7 +1010,7 @@
BICOMP
- 105
+ 104
ICCARM
@@ -1037,7 +1033,7 @@
AARM
- 106
+ 107
@@ -1046,11 +1042,11 @@
BICOMP
- 103
+ 102
ICCARM
- 108 107
+ 109 108
@@ -1138,11 +1134,11 @@
BICOMP
- 100
+ 105
ICCARM
- 127 104
+ 127 101
@@ -1161,7 +1157,7 @@
BICOMP
- 99
+ 106
ICCARM
@@ -1230,11 +1226,11 @@
BICOMP
- 102
+ 100
ICCARM
- 101 187
+ 103 187
@@ -1332,7 +1328,7 @@
ILINK
- 217 130 193 187 188 192 97 200 106 166 168 167 210 122 226 227 146 147 148 149 172 171 170 169 164 165 118 119 144 145 178 176 177 174 173 175 143 125 201 131 186 199 120 104 202 107 190 185 142 128 141
+ 217 130 193 187 188 192 97 200 107 166 168 167 210 122 226 227 146 147 148 149 172 171 170 169 164 165 118 119 144 145 178 176 177 174 173 175 143 125 201 131 186 199 120 101 202 108 190 185 142 128 141
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
index 2ba8c8d6..3026048b 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/ide/settings/efm32G880.wsdt
@@ -12,7 +12,7 @@
- 351272727
+ 140272727
@@ -29,7 +29,7 @@
-
+
TabID-3636-6432
@@ -41,7 +41,7 @@
- 0
+ 0
TabID-28813-8212
@@ -57,7 +57,7 @@
TabID-20200-19078Debug LogDebug-Log
- 2
+ 0
@@ -70,7 +70,7 @@
- iaridepm.enu1-2-2722442-2-2240243125000241071231250718254-2-22411922-2-219242431002083241071125000241071
+ iaridepm.enu1-2-2393231-2-2126138125000240418231151688153-2-21361010-2-210121381003968240418125000240418
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/main.c
index 8deffbed..eb7600d1 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -45,12 +47,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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.
**
****************************************************************************************/
void main(void)
@@ -69,12 +69,9 @@ void 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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/bin/demoprog_olimex_efm32g880.out b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/bin/demoprog_olimex_efm32g880.out
index af2ba357..b90dda3b 100644
Binary files a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/bin/demoprog_olimex_efm32g880.out and b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/bin/demoprog_olimex_efm32g880.out differ
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.c
index dba823f9..2833337a 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.h
index 6da3f21c..a91a22fd 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/header.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/header.h
index 5b6d35d0..9da251ac 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/header.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/efm32G880.dep b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/efm32G880.dep
index 19621f33..9e193d4d 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/efm32G880.dep
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/efm32G880.dep
@@ -6,10 +6,10 @@
Debug
- $PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.h
$PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\EnergyMicro\EFM32\efm32.h
$PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cmFunc.h
$PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.c
+ $PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cm3.h
$PROJ_DIR$\..\lib\CMSIS\CM3\CoreSupport\core_cmInstr.h
$PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\EnergyMicro\EFM32\efm32g880f128.h
$PROJ_DIR$\..\lib\CMSIS\CM3\DeviceSupport\EnergyMicro\EFM32\system_efm32.c
@@ -91,13 +91,13 @@
$PROJ_DIR$\..\obj\main.o
$TOOLKIT_DIR$\lib\shb_l.a
$PROJ_DIR$\..\obj\boot.o
- $PROJ_DIR$\..\obj\core_cm3.o
- $PROJ_DIR$\..\obj\main.pbi
- $PROJ_DIR$\..\obj\vectors.o
$PROJ_DIR$\..\obj\timer.o
- $PROJ_DIR$\..\obj\boot.pbi
$PROJ_DIR$\..\obj\cstart.o
+ $PROJ_DIR$\..\obj\boot.pbi
+ $PROJ_DIR$\..\obj\vectors.o
$PROJ_DIR$\..\obj\timer.pbi
+ $PROJ_DIR$\..\obj\main.pbi
+ $PROJ_DIR$\..\obj\core_cm3.o
$PROJ_DIR$\..\obj\vectors.pbi
$PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\vectors.lst
@@ -240,7 +240,7 @@
ICCARM
- 178 85
+ 178 91
@@ -269,11 +269,11 @@
BICOMP
- 189 186 196 217 182 210 199 197 1 5 0 4 165 164 2 7
+ 189 186 196 217 182 210 199 197 0 5 3 4 165 164 1 7
ICCARM
- 189 186 196 217 182 210 199 197 1 5 0 4 165 164 2 7
+ 189 186 196 217 182 210 199 197 0 5 3 4 165 164 1 7
@@ -290,13 +290,9 @@
-
- BICOMP
- 149 9 189 186 196 217 182 210 199 197 1 5 0 4 165 164 2 7 16 15
-
ICCARM
- 149 9 189 186 196 217 182 210 199 197 1 5 0 4 165 164 2 7 16 15
+ 149 9 189 186 196 217 182 210 199 197 0 5 3 4 165 164 1 7 16 15
@@ -313,9 +309,13 @@
+
+ BICOMP
+ 11 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
+
ICCARM
- 11 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 11 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -334,11 +334,11 @@
BICOMP
- 13 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15
+ 13 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15
ICCARM
- 13 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15
+ 13 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15
@@ -380,11 +380,11 @@
BICOMP
- 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 149 16 15 29
+ 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 149 16 15 29
ICCARM
- 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 149 16 15 29
+ 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 149 16 15 29
@@ -412,11 +412,11 @@
BICOMP
- 21 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 21 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 21 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 21 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -435,11 +435,11 @@
BICOMP
- 15 23 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 31
+ 15 23 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 31
ICCARM
- 15 23 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 31
+ 15 23 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 31
@@ -458,11 +458,11 @@
BICOMP
- 25 166 186 196 217 210 199 197 168 167 149 1 5 0 189 4 165 164 2 7 19 16 15
+ 25 166 186 196 217 210 199 197 168 167 149 0 5 3 189 4 165 164 1 7 19 16 15
ICCARM
- 25 166 186 196 217 182 210 199 197 168 167 149 1 5 0 189 4 165 164 2 7 19 16 15
+ 25 166 186 196 217 182 210 199 197 168 167 149 0 5 3 189 4 165 164 1 7 19 16 15
@@ -481,11 +481,11 @@
BICOMP
- 27 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 15 149 16 201 168
+ 27 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 15 149 16 201 168
ICCARM
- 27 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15 149 16 201 168
+ 27 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15 149 16 201 168
@@ -504,11 +504,11 @@
BICOMP
- 29 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 16 19 15
+ 29 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 16 19 15
ICCARM
- 29 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 16 19 15
+ 29 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 16 19 15
@@ -527,11 +527,11 @@
BICOMP
- 31 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 16 15
+ 31 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 16 15
ICCARM
- 31 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 16 15
+ 31 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 16 15
@@ -550,11 +550,11 @@
BICOMP
- 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 33 149 19 16 15
+ 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 33 149 19 16 15
ICCARM
- 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 33 149 19 16 15
+ 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 33 149 19 16 15
@@ -573,11 +573,11 @@
BICOMP
- 189 186 196 217 210 199 197 35 1 5 0 4 165 164 2 7
+ 189 186 196 217 210 199 197 35 0 5 3 4 165 164 1 7
ICCARM
- 189 186 196 217 182 210 199 197 35 1 5 0 4 165 164 2 7
+ 189 186 196 217 182 210 199 197 35 0 5 3 4 165 164 1 7
@@ -596,11 +596,11 @@
BICOMP
- 37 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 149 15 16
+ 37 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 149 15 16
ICCARM
- 37 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 149 15 16
+ 37 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 149 15 16
@@ -619,11 +619,11 @@
BICOMP
- 39 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7
+ 39 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7
ICCARM
- 39 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7
+ 39 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7
@@ -642,11 +642,11 @@
BICOMP
- 41 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 41 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 41 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 41 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -665,11 +665,11 @@
BICOMP
- 43 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 43 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 43 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 43 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -688,11 +688,11 @@
BICOMP
- 45 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 15 149
+ 45 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 15 149
ICCARM
- 45 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15 149
+ 45 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15 149
@@ -711,11 +711,11 @@
BICOMP
- 47 189 186 196 217 210 199 197 149 1 5 0 4 165 164 2 7 16 15
+ 47 189 186 196 217 210 199 197 149 0 5 3 4 165 164 1 7 16 15
ICCARM
- 47 189 186 196 217 182 210 199 197 149 1 5 0 4 165 164 2 7 16 15
+ 47 189 186 196 217 182 210 199 197 149 0 5 3 4 165 164 1 7 16 15
@@ -734,11 +734,11 @@
BICOMP
- 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7
+ 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7
ICCARM
- 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7
+ 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7
@@ -757,11 +757,11 @@
BICOMP
- 50 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 50 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 50 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 50 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -780,11 +780,11 @@
BICOMP
- 52 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 15 16
+ 52 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 15 16
ICCARM
- 52 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15 16
+ 52 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15 16
@@ -803,11 +803,11 @@
BICOMP
- 54 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 29 16
+ 54 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 29 16
ICCARM
- 54 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 29 16
+ 54 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 29 16
@@ -826,11 +826,11 @@
BICOMP
- 56 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 15 16
+ 56 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 15 16
ICCARM
- 56 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 15 16
+ 56 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 15 16
@@ -849,11 +849,11 @@
BICOMP
- 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 58 149 15
+ 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 58 149 15
ICCARM
- 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 58 149 15
+ 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 58 149 15
@@ -872,11 +872,11 @@
BICOMP
- 60 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 60 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 60 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 60 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -895,11 +895,11 @@
BICOMP
- 62 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 19 16 15
+ 62 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 19 16 15
ICCARM
- 62 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 19 16 15
+ 62 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 19 16 15
@@ -918,11 +918,11 @@
BICOMP
- 15 64 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 149
+ 15 64 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 149
ICCARM
- 15 64 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 149
+ 15 64 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 149
@@ -941,11 +941,11 @@
BICOMP
- 66 149 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 16
+ 66 149 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 16
ICCARM
- 66 149 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 16
+ 66 149 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 16
@@ -964,11 +964,11 @@
BICOMP
- 166 186 196 217 210 199 197 168 167 157 156 201 1 5 0 189 4 165 164 2 7 68 69
+ 166 186 196 217 210 199 197 168 167 157 156 201 0 5 3 189 4 165 164 1 7 68 69
ICCARM
- 166 186 196 217 182 210 199 197 168 167 157 156 201 1 5 0 189 4 165 164 2 7 68 69
+ 166 186 196 217 182 210 199 197 168 167 157 156 201 0 5 3 189 4 165 164 1 7 68 69
@@ -977,7 +977,7 @@
BICOMP
- 89
+ 87
ICCARM
@@ -987,11 +987,11 @@
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1000,7 +1000,7 @@
AARM
- 90
+ 86
@@ -1019,11 +1019,11 @@
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1042,11 +1042,11 @@
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1055,7 +1055,7 @@
BICOMP
- 86
+ 90
ICCARM
@@ -1065,11 +1065,11 @@
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1078,21 +1078,21 @@
BICOMP
- 91
+ 89
ICCARM
- 96 88
+ 96 85
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1105,17 +1105,17 @@
ICCARM
- 94 87
+ 94 88
BICOMP
- 73 163 1 5 0 189 186 196 217 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
ICCARM
- 73 163 1 5 0 189 186 196 217 182 210 199 197 4 165 164 2 7 17 58 149 19 16 31 15 43 71 75 77 68 80
+ 73 163 0 5 3 189 186 196 217 182 210 199 197 4 165 164 1 7 17 58 149 19 16 31 15 43 71 75 77 68 80
@@ -1134,7 +1134,7 @@
ILINK
- 155 84 85 90 125 127 126 194 187 208 209 105 106 107 108 131 130 129 128 123 124 183 184 102 103 137 135 136 133 132 134 101 104 159 152 160 82 185 88 87 83 100 97 99
+ 155 84 91 86 125 127 126 194 187 208 209 105 106 107 108 131 130 129 128 123 124 183 184 102 103 137 135 136 133 132 134 101 104 159 152 160 82 185 85 88 83 100 97 99
@@ -1143,7 +1143,7 @@
BILINK
- 89 98 109 110 111 112 113 114 115 116 117 118 119 120 121 122 141 142 143 144 145 146 147 169 170 173 174 175 176 177 148 161 150 162 86 180 91 92
+ 87 98 109 110 111 112 113 114 115 116 117 118 119 120 121 122 141 142 143 144 145 146 147 169 170 173 174 175 176 177 148 161 150 162 90 180 89 92
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/settings/efm32G880.wsdt b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/settings/efm32G880.wsdt
index ce6ad182..1608b037 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/settings/efm32G880.wsdt
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/ide/settings/efm32G880.wsdt
@@ -12,7 +12,7 @@
- 362272727
+ 137272727
@@ -24,7 +24,7 @@
-
+
TabID-15953-11523
@@ -36,7 +36,7 @@
- 0
+ 0
TabID-26827-12343
@@ -46,7 +46,7 @@
TabID-26138-18087Find in FilesFind-in-Files
- 0
+ 0
@@ -59,7 +59,7 @@
- iaridepm.enu1-2-2722436-2-2240243125000241071228125718254-2-22411922-2-219242431002083241071125000241071
+ iaridepm.enu1-2-2393228-2-2126138125000240418228175688153-2-21361010-2-210121381003968240418125000240418
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.c
index 949b5a08..690649de 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.h
index 73e97bc3..9e0aa68a 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.c
index f8d1e7a9..a4372026 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.h
index ec187e78..a15cba44 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/main.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/main.c
index 8087370b..857ec043 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/main.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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 none.
**
****************************************************************************************/
void main(void)
@@ -67,11 +67,9 @@ void 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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/prog.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/prog.dox
new file mode 100644
index 00000000..29832a37
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR User Program
+\brief User Program.
+\ingroup ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.c
index 4db88ff4..20c25114 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\timer.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.h b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.h
index ea2e990d..dfec65a7 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.h
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\timer.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/vectors.c b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/vectors.c
index f396352c..a3cb7a42 100644
--- a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -44,18 +46,17 @@ extern void __iar_program_start( void );
/****************************************************************************************
* Type definitions
****************************************************************************************/
+/** \brief Structure type for vector table entries. */
typedef union
{
- void (*func)(void); /* for ISR function pointers */
- void *ptr; /* for stack pointer entry */
-}tIsrFunc; /* type for vector table entries */
+ void (*func)(void); /**< for ISR function pointers */
+ void *ptr; /**< for stack pointer entry */
+}tIsrFunc;
-/****************************************************************************************
-** 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)
@@ -71,6 +72,7 @@ void UnusedISR(void)
#pragma language=extended /* enable IAR extensions */
#pragma segment="CSTACK"
+/** \brief Interrupt vector table. */
__root const tIsrFunc __vector_table[] @ ".intvec" =
{
{ .ptr = __sfe( "CSTACK" ) }, /* the initial stack pointer */
@@ -123,6 +125,6 @@ __root const tIsrFunc __vector_table[] @ ".intvec" =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/demo.dox b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/demo.dox
new file mode 100644
index 00000000..bc8ed14a
--- /dev/null
+++ b/Target/Demo/ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_EFM32_Olimex_EM32G880F128STK_IAR Demo for Olimex EM-32G880F128-STK/IAR
+\brief Preconfigured programs for the Olimex EM-32G880F128-STK and the IAR Embedded Workbench IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf
index 2ba662a7..2c19a739 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map
index 8d7a3ef0..370a950a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map
@@ -1141,7 +1141,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)
0x00000288 __text_load_start__ = ALIGN (__init_end__, 0x4)
-.text 0x00000288 0x3f30
+.text 0x00000288 0x3f24
0x00000288 __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
@@ -1300,222 +1300,221 @@ Linker script and memory map
.text.FlashSwitchBlock
0x000019b0 0x50 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
- 0x00001a00 0x8a THUMB Debug/../../obj/flash.o
- *fill* 0x00001a8a 0x2 00
+ 0x00001a00 0x80 THUMB Debug/../../obj/flash.o
.text.FlashInit
- 0x00001a8c 0x18 THUMB Debug/../../obj/flash.o
- 0x00001a8c FlashInit
+ 0x00001a80 0x18 THUMB Debug/../../obj/flash.o
+ 0x00001a80 FlashInit
.text.FlashWrite
- 0x00001aa4 0x48 THUMB Debug/../../obj/flash.o
- 0x00001aa4 FlashWrite
+ 0x00001a98 0x48 THUMB Debug/../../obj/flash.o
+ 0x00001a98 FlashWrite
.text.FlashErase
- 0x00001aec 0xe0 THUMB Debug/../../obj/flash.o
- 0x00001aec FlashErase
+ 0x00001ae0 0xe0 THUMB Debug/../../obj/flash.o
+ 0x00001ae0 FlashErase
.text.FlashWriteChecksum
- 0x00001bcc 0x44 THUMB Debug/../../obj/flash.o
- 0x00001bcc FlashWriteChecksum
+ 0x00001bc0 0x44 THUMB Debug/../../obj/flash.o
+ 0x00001bc0 FlashWriteChecksum
.text.FlashVerifyChecksum
- 0x00001c10 0x48 THUMB Debug/../../obj/flash.o
- 0x00001c10 FlashVerifyChecksum
+ 0x00001c04 0x48 THUMB Debug/../../obj/flash.o
+ 0x00001c04 FlashVerifyChecksum
.text.FlashDone
- 0x00001c58 0x34 THUMB Debug/../../obj/flash.o
- 0x00001c58 FlashDone
- .text.NvmInit 0x00001c8c 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001c8c NvmInit
+ 0x00001c4c 0x34 THUMB Debug/../../obj/flash.o
+ 0x00001c4c FlashDone
+ .text.NvmInit 0x00001c80 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001c80 NvmInit
.text.NvmWrite
- 0x00001c90 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001c90 NvmWrite
+ 0x00001c84 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001c84 NvmWrite
.text.NvmErase
- 0x00001c94 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001c94 NvmErase
+ 0x00001c88 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001c88 NvmErase
.text.NvmVerifyChecksum
- 0x00001c98 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001c98 NvmVerifyChecksum
- .text.NvmDone 0x00001c9c 0x14 THUMB Debug/../../obj/nvm.o
- 0x00001c9c NvmDone
+ 0x00001c8c 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001c8c NvmVerifyChecksum
+ .text.NvmDone 0x00001c90 0x14 THUMB Debug/../../obj/nvm.o
+ 0x00001c90 NvmDone
.text.TimerInit
- 0x00001cb0 0x20 THUMB Debug/../../obj/timer.o
- 0x00001cb0 TimerInit
+ 0x00001ca4 0x20 THUMB Debug/../../obj/timer.o
+ 0x00001ca4 TimerInit
.text.TimerReset
- 0x00001cd0 0xc THUMB Debug/../../obj/timer.o
- 0x00001cd0 TimerReset
+ 0x00001cc4 0xc THUMB Debug/../../obj/timer.o
+ 0x00001cc4 TimerReset
.text.TimerUpdate
- 0x00001cdc 0x1c THUMB Debug/../../obj/timer.o
- 0x00001cdc TimerUpdate
+ 0x00001cd0 0x1c THUMB Debug/../../obj/timer.o
+ 0x00001cd0 TimerUpdate
.text.TimerGet
- 0x00001cf8 0x14 THUMB Debug/../../obj/timer.o
- 0x00001cf8 TimerGet
+ 0x00001cec 0x14 THUMB Debug/../../obj/timer.o
+ 0x00001cec TimerGet
.text.UartInit
- 0x00001d0c 0x28 THUMB Debug/../../obj/uart.o
- 0x00001d0c UartInit
+ 0x00001d00 0x28 THUMB Debug/../../obj/uart.o
+ 0x00001d00 UartInit
.text.UartTransmitPacket
- 0x00001d34 0x74 THUMB Debug/../../obj/uart.o
- 0x00001d34 UartTransmitPacket
+ 0x00001d28 0x74 THUMB Debug/../../obj/uart.o
+ 0x00001d28 UartTransmitPacket
.text.UartReceivePacket
- 0x00001da8 0x70 THUMB Debug/../../obj/uart.o
- 0x00001da8 UartReceivePacket
+ 0x00001d9c 0x70 THUMB Debug/../../obj/uart.o
+ 0x00001d9c UartReceivePacket
.text.AssertFailure
- 0x00001e18 0x18 THUMB Debug/../../obj/assert.o
- 0x00001e18 AssertFailure
+ 0x00001e0c 0x18 THUMB Debug/../../obj/assert.o
+ 0x00001e0c AssertFailure
.text.BackDoorCheck
- 0x00001e30 0x44 THUMB Debug/../../obj/backdoor.o
- 0x00001e30 BackDoorCheck
+ 0x00001e24 0x44 THUMB Debug/../../obj/backdoor.o
+ 0x00001e24 BackDoorCheck
.text.BackDoorInit
- 0x00001e74 0x20 THUMB Debug/../../obj/backdoor.o
- 0x00001e74 BackDoorInit
+ 0x00001e68 0x20 THUMB Debug/../../obj/backdoor.o
+ 0x00001e68 BackDoorInit
.text.BootInit
- 0x00001e94 0x1e THUMB Debug/../../obj/boot.o
- 0x00001e94 BootInit
+ 0x00001e88 0x1e THUMB Debug/../../obj/boot.o
+ 0x00001e88 BootInit
.text.BootTask
- 0x00001eb2 0x1a THUMB Debug/../../obj/boot.o
- 0x00001eb2 BootTask
- .text.ComInit 0x00001ecc 0x2c THUMB Debug/../../obj/com.o
- 0x00001ecc ComInit
- .text.ComTask 0x00001ef8 0x20 THUMB Debug/../../obj/com.o
- 0x00001ef8 ComTask
- .text.ComFree 0x00001f18 0x2 THUMB Debug/../../obj/com.o
- 0x00001f18 ComFree
+ 0x00001ea6 0x1a THUMB Debug/../../obj/boot.o
+ 0x00001ea6 BootTask
+ .text.ComInit 0x00001ec0 0x2c THUMB Debug/../../obj/com.o
+ 0x00001ec0 ComInit
+ .text.ComTask 0x00001eec 0x20 THUMB Debug/../../obj/com.o
+ 0x00001eec ComTask
+ .text.ComFree 0x00001f0c 0x2 THUMB Debug/../../obj/com.o
+ 0x00001f0c ComFree
.text.ComTransmitPacket
- 0x00001f1a 0x10 THUMB Debug/../../obj/com.o
- 0x00001f1a ComTransmitPacket
- *fill* 0x00001f2a 0x2 00
+ 0x00001f0e 0x10 THUMB Debug/../../obj/com.o
+ 0x00001f0e ComTransmitPacket
+ *fill* 0x00001f1e 0x2 00
.text.ComSetConnectEntryState
- 0x00001f2c 0xc THUMB Debug/../../obj/com.o
- 0x00001f2c ComSetConnectEntryState
+ 0x00001f20 0xc THUMB Debug/../../obj/com.o
+ 0x00001f20 ComSetConnectEntryState
.text.ComIsConnected
- 0x00001f38 0x4 THUMB Debug/../../obj/com.o
- 0x00001f38 ComIsConnected
- .text.CopInit 0x00001f3c 0x2 THUMB Debug/../../obj/cop.o
- 0x00001f3c CopInit
+ 0x00001f2c 0x4 THUMB Debug/../../obj/com.o
+ 0x00001f2c ComIsConnected
+ .text.CopInit 0x00001f30 0x2 THUMB Debug/../../obj/cop.o
+ 0x00001f30 CopInit
.text.CopService
- 0x00001f3e 0x2 THUMB Debug/../../obj/cop.o
- 0x00001f3e CopService
+ 0x00001f32 0x2 THUMB Debug/../../obj/cop.o
+ 0x00001f32 CopService
.text.XcpSetCtoError
- 0x00001f40 0x14 THUMB Debug/../../obj/xcp.o
- .text.XcpInit 0x00001f54 0x1c THUMB Debug/../../obj/xcp.o
- 0x00001f54 XcpInit
+ 0x00001f34 0x14 THUMB Debug/../../obj/xcp.o
+ .text.XcpInit 0x00001f48 0x1c THUMB Debug/../../obj/xcp.o
+ 0x00001f48 XcpInit
.text.XcpIsConnected
- 0x00001f70 0x10 THUMB Debug/../../obj/xcp.o
- 0x00001f70 XcpIsConnected
+ 0x00001f64 0x10 THUMB Debug/../../obj/xcp.o
+ 0x00001f64 XcpIsConnected
.text.XcpPacketTransmitted
- 0x00001f80 0x10 THUMB Debug/../../obj/xcp.o
- 0x00001f80 XcpPacketTransmitted
+ 0x00001f74 0x10 THUMB Debug/../../obj/xcp.o
+ 0x00001f74 XcpPacketTransmitted
.text.XcpPacketReceived
- 0x00001f90 0x1f0 THUMB Debug/../../obj/xcp.o
- 0x00001f90 XcpPacketReceived
- .text.mem_cpy 0x00002180 0x12 THUMB Debug/../../obj/ff.o
+ 0x00001f84 0x1f0 THUMB Debug/../../obj/xcp.o
+ 0x00001f84 XcpPacketReceived
+ .text.mem_cpy 0x00002174 0x12 THUMB Debug/../../obj/ff.o
.text.st_clust
- 0x00002192 0x12 THUMB Debug/../../obj/ff.o
- .text.sum_sfn 0x000021a4 0x1c THUMB Debug/../../obj/ff.o
+ 0x00002186 0x12 THUMB Debug/../../obj/ff.o
+ .text.sum_sfn 0x00002198 0x1c THUMB Debug/../../obj/ff.o
.text.get_fileinfo
- 0x000021c0 0xfa THUMB Debug/../../obj/ff.o
+ 0x000021b4 0xfa THUMB Debug/../../obj/ff.o
.text.ld_clust.isra.0
- 0x000022ba 0x1c THUMB Debug/../../obj/ff.o
+ 0x000022ae 0x1c THUMB Debug/../../obj/ff.o
.text.validate
- 0x000022d6 0x32 THUMB Debug/../../obj/ff.o
+ 0x000022ca 0x32 THUMB Debug/../../obj/ff.o
.text.check_fs
- 0x00002308 0x88 THUMB Debug/../../obj/ff.o
+ 0x000022fc 0x88 THUMB Debug/../../obj/ff.o
.text.chk_mounted
- 0x00002390 0x328 THUMB Debug/../../obj/ff.o
+ 0x00002384 0x328 THUMB Debug/../../obj/ff.o
.text.sync_window
- 0x000026b8 0x4e THUMB Debug/../../obj/ff.o
- .text.sync_fs 0x00002706 0xb2 THUMB Debug/../../obj/ff.o
+ 0x000026ac 0x4e THUMB Debug/../../obj/ff.o
+ .text.sync_fs 0x000026fa 0xb2 THUMB Debug/../../obj/ff.o
.text.move_window
- 0x000027b8 0x32 THUMB Debug/../../obj/ff.o
+ 0x000027ac 0x32 THUMB Debug/../../obj/ff.o
.text.clust2sect
- 0x000027ea 0x18 THUMB Debug/../../obj/ff.o
- 0x000027ea clust2sect
- .text.get_fat 0x00002802 0xca THUMB Debug/../../obj/ff.o
- 0x00002802 get_fat
- .text.dir_sdi 0x000028cc 0x88 THUMB Debug/../../obj/ff.o
- .text.put_fat 0x00002954 0xf6 THUMB Debug/../../obj/ff.o
- 0x00002954 put_fat
+ 0x000027de 0x18 THUMB Debug/../../obj/ff.o
+ 0x000027de clust2sect
+ .text.get_fat 0x000027f6 0xca THUMB Debug/../../obj/ff.o
+ 0x000027f6 get_fat
+ .text.dir_sdi 0x000028c0 0x88 THUMB Debug/../../obj/ff.o
+ .text.put_fat 0x00002948 0xf6 THUMB Debug/../../obj/ff.o
+ 0x00002948 put_fat
.text.create_chain
- 0x00002a4a 0x9a THUMB Debug/../../obj/ff.o
+ 0x00002a3e 0x9a THUMB Debug/../../obj/ff.o
.text.dir_next
- 0x00002ae4 0xfc THUMB Debug/../../obj/ff.o
+ 0x00002ad8 0xfc THUMB Debug/../../obj/ff.o
.text.dir_find.part.7
- 0x00002be0 0x138 THUMB Debug/../../obj/ff.o
+ 0x00002bd4 0x138 THUMB Debug/../../obj/ff.o
.text.follow_path
- 0x00002d18 0x248 THUMB Debug/../../obj/ff.o
+ 0x00002d0c 0x248 THUMB Debug/../../obj/ff.o
.text.dir_remove
- 0x00002f60 0x4e THUMB Debug/../../obj/ff.o
- *fill* 0x00002fae 0x2 00
+ 0x00002f54 0x4e THUMB Debug/../../obj/ff.o
+ *fill* 0x00002fa2 0x2 00
.text.dir_read.constprop.9
- 0x00002fb0 0xfc THUMB Debug/../../obj/ff.o
+ 0x00002fa4 0xfc THUMB Debug/../../obj/ff.o
.text.remove_chain
- 0x000030ac 0x5c THUMB Debug/../../obj/ff.o
+ 0x000030a0 0x5c THUMB Debug/../../obj/ff.o
.text.gen_numname
- 0x00003108 0x76 THUMB Debug/../../obj/ff.o
- 0x00003108 gen_numname
- *fill* 0x0000317e 0x2 00
+ 0x000030fc 0x76 THUMB Debug/../../obj/ff.o
+ 0x000030fc gen_numname
+ *fill* 0x00003172 0x2 00
.text.dir_register
- 0x00003180 0x1c4 THUMB Debug/../../obj/ff.o
- .text.f_mount 0x00003344 0x20 THUMB Debug/../../obj/ff.o
- 0x00003344 f_mount
- .text.f_open 0x00003364 0x148 THUMB Debug/../../obj/ff.o
- 0x00003364 f_open
- .text.f_read 0x000034ac 0x15e THUMB Debug/../../obj/ff.o
- 0x000034ac f_read
- .text.f_write 0x0000360a 0x18c THUMB Debug/../../obj/ff.o
- 0x0000360a f_write
- .text.f_sync 0x00003796 0x9c THUMB Debug/../../obj/ff.o
- 0x00003796 f_sync
- .text.f_close 0x00003832 0xe THUMB Debug/../../obj/ff.o
- 0x00003832 f_close
- .text.f_lseek 0x00003840 0x146 THUMB Debug/../../obj/ff.o
- 0x00003840 f_lseek
- *fill* 0x00003986 0x2 00
- .text.f_stat 0x00003988 0x48 THUMB Debug/../../obj/ff.o
- 0x00003988 f_stat
+ 0x00003174 0x1c4 THUMB Debug/../../obj/ff.o
+ .text.f_mount 0x00003338 0x20 THUMB Debug/../../obj/ff.o
+ 0x00003338 f_mount
+ .text.f_open 0x00003358 0x148 THUMB Debug/../../obj/ff.o
+ 0x00003358 f_open
+ .text.f_read 0x000034a0 0x15e THUMB Debug/../../obj/ff.o
+ 0x000034a0 f_read
+ .text.f_write 0x000035fe 0x18c THUMB Debug/../../obj/ff.o
+ 0x000035fe f_write
+ .text.f_sync 0x0000378a 0x9c THUMB Debug/../../obj/ff.o
+ 0x0000378a f_sync
+ .text.f_close 0x00003826 0xe THUMB Debug/../../obj/ff.o
+ 0x00003826 f_close
+ .text.f_lseek 0x00003834 0x146 THUMB Debug/../../obj/ff.o
+ 0x00003834 f_lseek
+ *fill* 0x0000397a 0x2 00
+ .text.f_stat 0x0000397c 0x48 THUMB Debug/../../obj/ff.o
+ 0x0000397c f_stat
.text.f_unlink
- 0x000039d0 0xbc THUMB Debug/../../obj/ff.o
- 0x000039d0 f_unlink
- .text.f_gets 0x00003a8c 0x4a THUMB Debug/../../obj/ff.o
- 0x00003a8c f_gets
- .text.f_putc 0x00003ad6 0x2e THUMB Debug/../../obj/ff.o
- 0x00003ad6 f_putc
- .text.f_puts 0x00003b04 0x24 THUMB Debug/../../obj/ff.o
- 0x00003b04 f_puts
+ 0x000039c4 0xbc THUMB Debug/../../obj/ff.o
+ 0x000039c4 f_unlink
+ .text.f_gets 0x00003a80 0x4a THUMB Debug/../../obj/ff.o
+ 0x00003a80 f_gets
+ .text.f_putc 0x00003aca 0x2e THUMB Debug/../../obj/ff.o
+ 0x00003aca f_putc
+ .text.f_puts 0x00003af8 0x24 THUMB Debug/../../obj/ff.o
+ 0x00003af8 f_puts
.text.ff_convert
- 0x00003b28 0x3c THUMB Debug/../../obj/unicode.o
- 0x00003b28 ff_convert
+ 0x00003b1c 0x3c THUMB Debug/../../obj/unicode.o
+ 0x00003b1c ff_convert
.text.ff_wtoupper
- 0x00003b64 0x24 THUMB Debug/../../obj/unicode.o
- 0x00003b64 ff_wtoupper
+ 0x00003b58 0x24 THUMB Debug/../../obj/unicode.o
+ 0x00003b58 ff_wtoupper
.text.FileLibHexStringToByte
- 0x00003b88 0x44 THUMB Debug/../../obj/file.o
+ 0x00003b7c 0x44 THUMB Debug/../../obj/file.o
.text.FileLibByteToHexString
- 0x00003bcc 0x3a THUMB Debug/../../obj/file.o
- *fill* 0x00003c06 0x2 00
+ 0x00003bc0 0x3a THUMB Debug/../../obj/file.o
+ *fill* 0x00003bfa 0x2 00
.text.FileLibLongToIntString.constprop.0
- 0x00003c08 0x38 THUMB Debug/../../obj/file.o
+ 0x00003bfc 0x38 THUMB Debug/../../obj/file.o
.text.SrecParseLine.constprop.1
- 0x00003c40 0x1b4 THUMB Debug/../../obj/file.o
+ 0x00003c34 0x1b4 THUMB Debug/../../obj/file.o
.text.FileInit
- 0x00003df4 0x2c THUMB Debug/../../obj/file.o
- 0x00003df4 FileInit
+ 0x00003de8 0x2c THUMB Debug/../../obj/file.o
+ 0x00003de8 FileInit
.text.FileIsIdle
- 0x00003e20 0x14 THUMB Debug/../../obj/file.o
- 0x00003e20 FileIsIdle
+ 0x00003e14 0x14 THUMB Debug/../../obj/file.o
+ 0x00003e14 FileIsIdle
.text.FileHandleFirmwareUpdateRequest
- 0x00003e34 0x28 THUMB Debug/../../obj/file.o
- 0x00003e34 FileHandleFirmwareUpdateRequest
+ 0x00003e28 0x28 THUMB Debug/../../obj/file.o
+ 0x00003e28 FileHandleFirmwareUpdateRequest
.text.FileTask
- 0x00003e5c 0x330 THUMB Debug/../../obj/file.o
- 0x00003e5c FileTask
+ 0x00003e50 0x330 THUMB Debug/../../obj/file.o
+ 0x00003e50 FileTask
.text.libc.isdigit
- 0x0000418c 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
- 0x0000418c isdigit
+ 0x00004180 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ 0x00004180 isdigit
.text.libc.toupper
- 0x00004198 0xe C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
- 0x00004198 toupper
- *fill* 0x000041a6 0x2 00
+ 0x0000418c 0xe C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ 0x0000418c toupper
+ *fill* 0x0000419a 0x2 00
.text.libc.memset
- 0x000041a8 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2_asm.o)
- 0x000041a8 memset
- 0x000041b8 __text_end__ = (__text_start__ + SIZEOF (.text))
- 0x000041b8 __text_load_end__ = __text_end__
+ 0x0000419c 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2_asm.o)
+ 0x0000419c memset
+ 0x000041ac __text_end__ = (__text_start__ + SIZEOF (.text))
+ 0x000041ac __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@@ -1523,92 +1522,92 @@ 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)
- 0x000041b8 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
+ 0x000041ac __dtors_load_start__ = ALIGN (__text_end__, 0x4)
-.dtors 0x000041b8 0x0
- 0x000041b8 __dtors_start__ = .
+.dtors 0x000041ac 0x0
+ 0x000041ac __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
- 0x000041b8 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
- 0x000041b8 __dtors_load_end__ = __dtors_end__
+ 0x000041ac __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
+ 0x000041ac __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)
- 0x000041b8 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
+ 0x000041ac __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
-.ctors 0x000041b8 0x0
- 0x000041b8 __ctors_start__ = .
+.ctors 0x000041ac 0x0
+ 0x000041ac __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
- 0x000041b8 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
- 0x000041b8 __ctors_load_end__ = __ctors_end__
+ 0x000041ac __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
+ 0x000041ac __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)
- 0x000041b8 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
+ 0x000041ac __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
-.rodata 0x000041b8 0xbd3
- 0x000041b8 __rodata_start__ = .
+.rodata 0x000041ac 0xbd3
+ 0x000041ac __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.g_pulXtals
- 0x000041b8 0x6c THUMB Debug/../../obj/sysctl.o
+ 0x000041ac 0x6c THUMB Debug/../../obj/sysctl.o
.rodata.str1.1
- 0x00004224 0x6b THUMB Debug/../../obj/sysctl.o
- *fill* 0x0000428f 0x1 00
+ 0x00004218 0x6b THUMB Debug/../../obj/sysctl.o
+ *fill* 0x00004283 0x1 00
.rodata.g_pulRCGCRegs
- 0x00004290 0xc THUMB Debug/../../obj/sysctl.o
+ 0x00004284 0xc THUMB Debug/../../obj/sysctl.o
.rodata.str1.1
- 0x0000429c 0x69 THUMB Debug/../../obj/gpio.o
+ 0x00004290 0x69 THUMB Debug/../../obj/gpio.o
.rodata.str1.1
- 0x00004305 0x6d THUMB Debug/../../obj/flashlib.o
+ 0x000042f9 0x6d THUMB Debug/../../obj/flashlib.o
.rodata.str1.1
- 0x00004372 0x6c THUMB Debug/../../obj/uartlib.o
+ 0x00004366 0x6c THUMB Debug/../../obj/uartlib.o
.rodata.str1.1
- 0x000043de 0x68 THUMB Debug/../../obj/ssi.o
+ 0x000043d2 0x68 THUMB Debug/../../obj/ssi.o
.rodata.firmwareFilename
- 0x00004446 0x1b THUMB Debug/../../obj/hooks.o
+ 0x0000443a 0x1b THUMB Debug/../../obj/hooks.o
.rodata.str1.1
- 0x00004461 0xd THUMB Debug/../../obj/hooks.o
+ 0x00004455 0xd THUMB Debug/../../obj/hooks.o
.rodata.str1.1
- 0x0000446e 0x85 THUMB Debug/../../obj/vectors.o
- *fill* 0x000044f3 0x1 00
+ 0x00004462 0x85 THUMB Debug/../../obj/vectors.o
+ *fill* 0x000044e7 0x1 00
.rodata.flashLayout
- 0x000044f4 0xcc THUMB Debug/../../obj/flash.o
+ 0x000044e8 0xcc THUMB Debug/../../obj/flash.o
.rodata.str1.1
- 0x000045c0 0x77 THUMB Debug/../../obj/uart.o
+ 0x000045b4 0x77 THUMB Debug/../../obj/uart.o
.rodata.xcpStationId
- 0x00004637 0x8 THUMB Debug/../../obj/xcp.o
+ 0x0000462b 0x8 THUMB Debug/../../obj/xcp.o
.rodata.str1.1
- 0x0000463f 0x10 THUMB Debug/../../obj/ff.o
- .rodata.ExCvt 0x0000464f 0x80 THUMB Debug/../../obj/ff.o
+ 0x00004633 0x10 THUMB Debug/../../obj/ff.o
+ .rodata.ExCvt 0x00004643 0x80 THUMB Debug/../../obj/ff.o
.rodata.LfnOfs
- 0x000046cf 0xd THUMB Debug/../../obj/ff.o
+ 0x000046c3 0xd THUMB Debug/../../obj/ff.o
.rodata.tbl_upper.984
- 0x000046dc 0x1e0 THUMB Debug/../../obj/unicode.o
+ 0x000046d0 0x1e0 THUMB Debug/../../obj/unicode.o
.rodata.tbl_lower.983
- 0x000048bc 0x1e0 THUMB Debug/../../obj/unicode.o
- .rodata.Tbl 0x00004a9c 0x100 THUMB Debug/../../obj/unicode.o
+ 0x000048b0 0x1e0 THUMB Debug/../../obj/unicode.o
+ .rodata.Tbl 0x00004a90 0x100 THUMB Debug/../../obj/unicode.o
.rodata.str1.1
- 0x00004b9c 0x1ef THUMB Debug/../../obj/file.o
+ 0x00004b90 0x1ef THUMB Debug/../../obj/file.o
0x1fb (size before relaxing)
- 0x00004d8b __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
- 0x00004d8b __rodata_load_end__ = __rodata_end__
+ 0x00004d7f __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
+ 0x00004d7f __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)
- 0x00004d8c __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
+ 0x00004d80 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
-.ARM.exidx 0x00004d8c 0x0
- 0x00004d8c __ARM.exidx_start__ = .
- 0x00004d8c __exidx_start = __ARM.exidx_start__
+.ARM.exidx 0x00004d80 0x0
+ 0x00004d80 __ARM.exidx_start__ = .
+ 0x00004d80 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
- 0x00004d8c __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
- 0x00004d8c __exidx_end = __ARM.exidx_end__
- 0x00004d8c __ARM.exidx_load_end__ = __ARM.exidx_end__
+ 0x00004d80 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
+ 0x00004d80 __exidx_end = __ARM.exidx_end__
+ 0x00004d80 __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)
- 0x00004d8c __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
+ 0x00004d80 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
-.fast 0x20000000 0x0 load address 0x00004d8c
+.fast 0x20000000 0x0 load address 0x00004d80
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
- 0x00004d8c __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
+ 0x00004d80 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@@ -1617,17 +1616,17 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
- 0x00004d8c __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
+ 0x00004d80 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
-.data 0x20000000 0x1 load address 0x00004d8c
+.data 0x20000000 0x1 load address 0x00004d80
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
.data.Stat 0x20000000 0x1 THUMB Debug/../../obj/mmc.o
0x20000001 __data_end__ = (__data_start__ + SIZEOF (.data))
- 0x00004d8d __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
+ 0x00004d81 __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 0x20000000 0x1 load address 0x00004d8c
+.data_run 0x20000000 0x1 load address 0x00004d80
0x20000000 __data_run_start__ = .
0x20000001 . = MAX ((__data_run_start__ + SIZEOF (.data)), .)
*fill* 0x20000000 0x1 00
@@ -1646,14 +1645,14 @@ Linker script and memory map
.bss.blockInfo
0x20000434 0x204 THUMB Debug/../../obj/flash.o
.bss.millisecond_counter
- 0x20000638 0x2 THUMB Debug/../../obj/timer.o
+ 0x20000638 0x4 THUMB Debug/../../obj/timer.o
.bss.xcpCtoReqPacket.1319
- 0x2000063a 0x41 THUMB Debug/../../obj/uart.o
+ 0x2000063c 0x41 THUMB Debug/../../obj/uart.o
.bss.xcpCtoRxInProgress.1321
- 0x2000067b 0x1 THUMB Debug/../../obj/uart.o
+ 0x2000067d 0x1 THUMB Debug/../../obj/uart.o
.bss.xcpCtoRxLength.1320
- 0x2000067c 0x1 THUMB Debug/../../obj/uart.o
- *fill* 0x2000067d 0x3 00
+ 0x2000067e 0x1 THUMB Debug/../../obj/uart.o
+ *fill* 0x2000067f 0x1 00
.bss.assert_failure_file
0x20000680 0x4 THUMB Debug/../../obj/assert.o
.bss.assert_failure_line
@@ -1732,14 +1731,14 @@ Linker script and memory map
0x200011d0 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x200011d0 __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)
- 0x00004d90 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
+ 0x00004d84 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
-.tdata 0x200011d0 0x0 load address 0x00004d90
+.tdata 0x200011d0 0x0 load address 0x00004d84
0x200011d0 __tdata_start__ = .
*(.tdata .tdata.*)
0x200011d0 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
- 0x00004d90 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
- 0x00004d90 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
+ 0x00004d84 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
+ 0x00004d84 __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 0x200011d0 0x0
@@ -1818,7 +1817,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_frame 0x000039d0 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
.debug_frame 0x00003a70 0x600 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libm_v7m_t_le_small.a(libm_asm.o)
-.debug_info 0x00000000 0x91b7
+.debug_info 0x00000000 0x91b8
.debug_info 0x00000000 0xa06 THUMB Debug/../../obj/sysctl.o
.debug_info 0x00000a06 0x427 THUMB Debug/../../obj/interrupt.o
.debug_info 0x00000e2d 0x110 THUMB Debug/../../obj/cpulib.o
@@ -1832,23 +1831,23 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_info 0x00003cb2 0xfd THUMB Debug/../../obj/cstart.o
.debug_info 0x00003daf 0xf7 THUMB Debug/../../obj/vectors.o
.debug_info 0x00003ea6 0x140 THUMB Debug/../../obj/cpu.o
- .debug_info 0x00003fe6 0x66d THUMB Debug/../../obj/flash.o
- .debug_info 0x00004653 0x161 THUMB Debug/../../obj/nvm.o
- .debug_info 0x000047b4 0x13e THUMB Debug/../../obj/timer.o
- .debug_info 0x000048f2 0x271 THUMB Debug/../../obj/uart.o
- .debug_info 0x00004b63 0xeb THUMB Debug/../../obj/assert.o
- .debug_info 0x00004c4e 0xc7 THUMB Debug/../../obj/backdoor.o
- .debug_info 0x00004d15 0x8f THUMB Debug/../../obj/boot.o
- .debug_info 0x00004da4 0x1ba THUMB Debug/../../obj/com.o
- .debug_info 0x00004f5e 0x8d THUMB Debug/../../obj/cop.o
- .debug_info 0x00004feb 0x5e2 THUMB Debug/../../obj/xcp.o
- .debug_info 0x000055cd 0x2500 THUMB Debug/../../obj/ff.o
- .debug_info 0x00007acd 0x160 THUMB Debug/../../obj/unicode.o
- .debug_info 0x00007c2d 0x868 THUMB Debug/../../obj/file.o
- .debug_info 0x00008495 0xc55 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
- .debug_info 0x000090ea 0xcd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
+ .debug_info 0x00003fe6 0x673 THUMB Debug/../../obj/flash.o
+ .debug_info 0x00004659 0x161 THUMB Debug/../../obj/nvm.o
+ .debug_info 0x000047ba 0x133 THUMB Debug/../../obj/timer.o
+ .debug_info 0x000048ed 0x271 THUMB Debug/../../obj/uart.o
+ .debug_info 0x00004b5e 0xeb THUMB Debug/../../obj/assert.o
+ .debug_info 0x00004c49 0xc7 THUMB Debug/../../obj/backdoor.o
+ .debug_info 0x00004d10 0x8f THUMB Debug/../../obj/boot.o
+ .debug_info 0x00004d9f 0x1ba THUMB Debug/../../obj/com.o
+ .debug_info 0x00004f59 0x8d THUMB Debug/../../obj/cop.o
+ .debug_info 0x00004fe6 0x5e8 THUMB Debug/../../obj/xcp.o
+ .debug_info 0x000055ce 0x2500 THUMB Debug/../../obj/ff.o
+ .debug_info 0x00007ace 0x160 THUMB Debug/../../obj/unicode.o
+ .debug_info 0x00007c2e 0x868 THUMB Debug/../../obj/file.o
+ .debug_info 0x00008496 0xc55 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ .debug_info 0x000090eb 0xcd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
-.debug_abbrev 0x00000000 0x1eff
+.debug_abbrev 0x00000000 0x1edf
.debug_abbrev 0x00000000 0x1c5 THUMB Debug/../../obj/sysctl.o
.debug_abbrev 0x000001c5 0x13d THUMB Debug/../../obj/interrupt.o
.debug_abbrev 0x00000302 0xa8 THUMB Debug/../../obj/cpulib.o
@@ -1862,23 +1861,23 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_abbrev 0x00000d8d 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00000da1 0xbe THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00000e5f 0xaf THUMB Debug/../../obj/cpu.o
- .debug_abbrev 0x00000f0e 0x23d THUMB Debug/../../obj/flash.o
- .debug_abbrev 0x0000114b 0xba THUMB Debug/../../obj/nvm.o
- .debug_abbrev 0x00001205 0xe8 THUMB Debug/../../obj/timer.o
- .debug_abbrev 0x000012ed 0x161 THUMB Debug/../../obj/uart.o
- .debug_abbrev 0x0000144e 0x7c THUMB Debug/../../obj/assert.o
- .debug_abbrev 0x000014ca 0x5b THUMB Debug/../../obj/backdoor.o
- .debug_abbrev 0x00001525 0x3f THUMB Debug/../../obj/boot.o
- .debug_abbrev 0x00001564 0xe0 THUMB Debug/../../obj/com.o
- .debug_abbrev 0x00001644 0x3f THUMB Debug/../../obj/cop.o
- .debug_abbrev 0x00001683 0x1dc THUMB Debug/../../obj/xcp.o
- .debug_abbrev 0x0000185f 0x315 THUMB Debug/../../obj/ff.o
- .debug_abbrev 0x00001b74 0xa5 THUMB Debug/../../obj/unicode.o
- .debug_abbrev 0x00001c19 0x1f8 THUMB Debug/../../obj/file.o
- .debug_abbrev 0x00001e11 0xc9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
- .debug_abbrev 0x00001eda 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
+ .debug_abbrev 0x00000f0e 0x22e THUMB Debug/../../obj/flash.o
+ .debug_abbrev 0x0000113c 0xba THUMB Debug/../../obj/nvm.o
+ .debug_abbrev 0x000011f6 0xe8 THUMB Debug/../../obj/timer.o
+ .debug_abbrev 0x000012de 0x161 THUMB Debug/../../obj/uart.o
+ .debug_abbrev 0x0000143f 0x7c THUMB Debug/../../obj/assert.o
+ .debug_abbrev 0x000014bb 0x5b THUMB Debug/../../obj/backdoor.o
+ .debug_abbrev 0x00001516 0x3f THUMB Debug/../../obj/boot.o
+ .debug_abbrev 0x00001555 0xe0 THUMB Debug/../../obj/com.o
+ .debug_abbrev 0x00001635 0x3f THUMB Debug/../../obj/cop.o
+ .debug_abbrev 0x00001674 0x1cb THUMB Debug/../../obj/xcp.o
+ .debug_abbrev 0x0000183f 0x315 THUMB Debug/../../obj/ff.o
+ .debug_abbrev 0x00001b54 0xa5 THUMB Debug/../../obj/unicode.o
+ .debug_abbrev 0x00001bf9 0x1f8 THUMB Debug/../../obj/file.o
+ .debug_abbrev 0x00001df1 0xc9 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ .debug_abbrev 0x00001eba 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
-.debug_loc 0x00000000 0xa03c
+.debug_loc 0x00000000 0xa049
.debug_loc 0x00000000 0x9fa THUMB Debug/../../obj/sysctl.o
.debug_loc 0x000009fa 0x43c THUMB Debug/../../obj/interrupt.o
.debug_loc 0x00000e36 0x1240 THUMB Debug/../../obj/gpio.o
@@ -1889,19 +1888,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_loc 0x0000433e 0xb1 THUMB Debug/../../obj/hooks.o
.debug_loc 0x000043ef 0x20 THUMB Debug/../../obj/main.o
.debug_loc 0x0000440f 0xbf THUMB Debug/../../obj/cpu.o
- .debug_loc 0x000044ce 0x631 THUMB Debug/../../obj/flash.o
- .debug_loc 0x00004aff 0x7f THUMB Debug/../../obj/nvm.o
- .debug_loc 0x00004b7e 0x20 THUMB Debug/../../obj/timer.o
- .debug_loc 0x00004b9e 0x190 THUMB Debug/../../obj/uart.o
- .debug_loc 0x00004d2e 0x46 THUMB Debug/../../obj/assert.o
- .debug_loc 0x00004d74 0x40 THUMB Debug/../../obj/backdoor.o
- .debug_loc 0x00004db4 0x40 THUMB Debug/../../obj/boot.o
- .debug_loc 0x00004df4 0x86 THUMB Debug/../../obj/com.o
- .debug_loc 0x00004e7a 0x16a THUMB Debug/../../obj/xcp.o
- .debug_loc 0x00004fe4 0x3a0f THUMB Debug/../../obj/ff.o
- .debug_loc 0x000089f3 0xa2 THUMB Debug/../../obj/unicode.o
- .debug_loc 0x00008a95 0x772 THUMB Debug/../../obj/file.o
- .debug_loc 0x00009207 0xe35 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ .debug_loc 0x000044ce 0x63e THUMB Debug/../../obj/flash.o
+ .debug_loc 0x00004b0c 0x7f THUMB Debug/../../obj/nvm.o
+ .debug_loc 0x00004b8b 0x20 THUMB Debug/../../obj/timer.o
+ .debug_loc 0x00004bab 0x190 THUMB Debug/../../obj/uart.o
+ .debug_loc 0x00004d3b 0x46 THUMB Debug/../../obj/assert.o
+ .debug_loc 0x00004d81 0x40 THUMB Debug/../../obj/backdoor.o
+ .debug_loc 0x00004dc1 0x40 THUMB Debug/../../obj/boot.o
+ .debug_loc 0x00004e01 0x86 THUMB Debug/../../obj/com.o
+ .debug_loc 0x00004e87 0x16a THUMB Debug/../../obj/xcp.o
+ .debug_loc 0x00004ff1 0x3a0f THUMB Debug/../../obj/ff.o
+ .debug_loc 0x00008a00 0xa2 THUMB Debug/../../obj/unicode.o
+ .debug_loc 0x00008aa2 0x772 THUMB Debug/../../obj/file.o
+ .debug_loc 0x00009214 0xe35 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
.debug_aranges 0x00000000 0x11c0
.debug_aranges
@@ -1990,7 +1989,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_ranges 0x00000f50 0x4d8 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
.debug_ranges 0x00001428 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
-.debug_line 0x00000000 0x5399
+.debug_line 0x00000000 0x539c
.debug_line 0x00000000 0x8f1 THUMB Debug/../../obj/sysctl.o
.debug_line 0x000008f1 0x2e2 THUMB Debug/../../obj/interrupt.o
.debug_line 0x00000bd3 0x100 THUMB Debug/../../obj/cpulib.o
@@ -2004,21 +2003,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_line 0x00002a49 0x14f THUMB Debug/../../obj/cstart.o
.debug_line 0x00002b98 0x132 THUMB Debug/../../obj/vectors.o
.debug_line 0x00002cca 0xe8 THUMB Debug/../../obj/cpu.o
- .debug_line 0x00002db2 0x255 THUMB Debug/../../obj/flash.o
- .debug_line 0x00003007 0x104 THUMB Debug/../../obj/nvm.o
- .debug_line 0x0000310b 0xfb THUMB Debug/../../obj/timer.o
- .debug_line 0x00003206 0x136 THUMB Debug/../../obj/uart.o
- .debug_line 0x0000333c 0x120 THUMB Debug/../../obj/assert.o
- .debug_line 0x0000345c 0x142 THUMB Debug/../../obj/backdoor.o
- .debug_line 0x0000359e 0xb7 THUMB Debug/../../obj/boot.o
- .debug_line 0x00003655 0x1a3 THUMB Debug/../../obj/com.o
- .debug_line 0x000037f8 0xab THUMB Debug/../../obj/cop.o
- .debug_line 0x000038a3 0x220 THUMB Debug/../../obj/xcp.o
- .debug_line 0x00003ac3 0xdd7 THUMB Debug/../../obj/ff.o
- .debug_line 0x0000489a 0x16c THUMB Debug/../../obj/unicode.o
- .debug_line 0x00004a06 0x36c THUMB Debug/../../obj/file.o
- .debug_line 0x00004d72 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
- .debug_line 0x00005325 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
+ .debug_line 0x00002db2 0x257 THUMB Debug/../../obj/flash.o
+ .debug_line 0x00003009 0x104 THUMB Debug/../../obj/nvm.o
+ .debug_line 0x0000310d 0xfb THUMB Debug/../../obj/timer.o
+ .debug_line 0x00003208 0x136 THUMB Debug/../../obj/uart.o
+ .debug_line 0x0000333e 0x120 THUMB Debug/../../obj/assert.o
+ .debug_line 0x0000345e 0x142 THUMB Debug/../../obj/backdoor.o
+ .debug_line 0x000035a0 0xb7 THUMB Debug/../../obj/boot.o
+ .debug_line 0x00003657 0x1a5 THUMB Debug/../../obj/com.o
+ .debug_line 0x000037fc 0xab THUMB Debug/../../obj/cop.o
+ .debug_line 0x000038a7 0x220 THUMB Debug/../../obj/xcp.o
+ .debug_line 0x00003ac7 0xdd7 THUMB Debug/../../obj/ff.o
+ .debug_line 0x0000489e 0x16c THUMB Debug/../../obj/unicode.o
+ .debug_line 0x00004a0a 0x36b THUMB Debug/../../obj/file.o
+ .debug_line 0x00004d75 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_small.a(libc2.o)
+ .debug_line 0x00005328 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le_small.a(user_libc.o)
.debug_str 0x00000000 0x3463
.debug_str 0x00000000 0x661 THUMB Debug/../../obj/sysctl.o
@@ -2050,7 +2049,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/B
.debug_str 0x00001ec7 0xaa THUMB Debug/../../obj/nvm.o
0x188 (size before relaxing)
.debug_str 0x00001f71 0xcd THUMB Debug/../../obj/timer.o
- 0x190 (size before relaxing)
+ 0x185 (size before relaxing)
.debug_str 0x0000203e 0x10e THUMB Debug/../../obj/uart.o
0x1f0 (size before relaxing)
.debug_str 0x0000214c 0xa3 THUMB Debug/../../obj/assert.o
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec
index 36015a91..54fbd3e7 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec
@@ -22,7 +22,7 @@ S11301304E494F4A00F062F84E484F49002200F001
S113014068F84E484E49091A082903DB0022026068
S1130150043001603F484049884205D002680430B9
S113016003B4904703BCF7E700208646EC4601F051
-S1130170DDFE00200021434A904772B62A498D468D
+S1130170D7FE00200021434A904772B62A498D4693
S11301802A482B492B4A00F039F82B482B492C4A92
S113019000F034F82B482C492C4A00F02FF82C4856
S11301A02C492D4A00F02AF82C482D492D4A00F0FC
@@ -33,12 +33,12 @@ S11301E00268043003B4904703BCF7E70020864656
S11301F0EC4600200021234A9047FEE7884207D0BE
S1130200521A05D0037801300B700131013AF9D14B
S11302107047884202D002700130FAE7704700004C
-S113022008ED00E000000000D01100208C4D00001B
+S113022008ED00E000000000D0110020804D000027
S11302300000002001000020880200008802000065
-S1130240B84100008C4D0000000000200000002098
-S1130250B8410000B8410000B8410000B8410000B6
-S1130260B8410000B8410000B8410000B8410000A6
-S11302708B4D000004000020500F0020500F002080
+S1130240AC410000804D00000000002000000020B0
+S1130250AC410000AC410000AC410000AC410000E6
+S1130260AC410000AC410000AC410000AC410000D6
+S11302707F4D000004000020500F0020500F00208C
S10B0280D00F0020AD180000AE
S1130288A0F58013013B012B40F20281824B984276
S113029800F0FE8003F58073984200F0F98003F5BE
@@ -81,12 +81,12 @@ S11304D810000030014000F000010010021C00F080
S11304E82000003001001010040400F00100001086
S11304F8031800F00100102000101000005C00F048
S113050810B50446FFF7BCFE20B9144840F29631F2
-S113051801F07EFC04F07043B3F1704F10D1E3B2E4
+S113051801F078FC04F07043B3F1704F10D1E3B2EA
S1130528C4F3072404F57E249B0004F5C06443F057
S1130538844324F4700443EA44140123236010BD63
S1130548220FA1B2C4F3044401FA04F4044B53F88F
-S113055822301A6814431C6010BD00BF24420000F6
-S1130568904200000138FDD1704700004E4B2DE940
+S113055822301A6814431C6010BD00BF1842000002
+S1130568844200000138FDD1704700004E4B2DE94C
S1130578F0411A68044612F0E04F05D01A684B4B54
S11305881340B3F1805F02D1002CC0F28B8048493C
S1130598484A0B68166843F4006323F480050D6029
@@ -133,7 +133,7 @@ S113081811F4804F18BF4008090448BF800842F407
S11308288002510216D5002B0DDA590005D51A0598
S113083803D44000C3F3865301E0C3F3C553013323
S1130848B0FBF3F070BDC2F3C3520132B0FBF2F057
-S113085870BD002070BD00BF60E00F40B8410000CB
+S113085870BD002070BD00BF60E00F40AC410000D7
S113086800E00F400000FF700000011000000310BA
S11308780024F400001BB70000093D00C0C62D0089
S1130888C0E1E4007038390064E00F40B0F1402F53
@@ -151,16 +151,16 @@ S113093803F5805398420AD003F58053984208D0AF
S113094803F58053C31A584240EB03007047012053
S113095870470120704700BF0080054070B5044609
S11309681646CDB2FFF792FF20B911484FF49071A3
-S113097801F04EFA022E04D90D484FF4917101F09A
-S113098847FAD4F8003416F0010F14BF2B43AB43D5
+S113097801F048FA022E04D90D484FF4917101F0A0
+S113098841FAD4F8003416F0010F14BF2B43AB43DB
S113099804F580621360D4F8202416F0020F04F5DD
S11309A8846314BF154322EA05051D6070BD00BFAA
-S11309B89C420000F0B5044615461F46CEB2FFF728
-S11309C865FF20B9404840F2FF1101F021FA6B1E7F
+S11309B890420000F0B5044615461F46CEB2FFF734
+S11309C865FF20B9404840F2FF1101F01BFA6B1E85
S11309D8012B08D9042D06D00C2D04D03A4840F236
-S11309E8032101F015FA082F0BD00A2F09D00C2F78
+S11309E8032101F00FFA082F0BD00A2F09D00C2F7E
S11309F807D0092F05D027B133484FF4027101F00D
-S1130A0807FAD4F8003515F0010F14BF3343B34384
+S1130A0801FAD4F8003515F0010F14BF3343B3438A
S1130A1804F5A0621360D4F8042515F0020F04F558
S1130A28A06314BF3243B24303F104031A60D4F839
S1130A38083515F0040F14BF3343B34304F5A1621A
@@ -172,26 +172,26 @@ S1130A881360D4F8142517F0040F04F5A26314BFF7
S1130A983243B24303F104031A60D4F81C2517F057
S1130AA8080F04F5A26303F10C0314BF3243B243E5
S1130AB81A60D4F8282504F5A5630FB9164301E094
-S1130AC822EA06061E60F0BD9C42000070B504468A
+S1130AC822EA06061E60F0BD9042000070B5044696
S1130AD8CDB2D6B2FFF7DAFE20B9044840F2853128
-S1130AE801F096F944F8256070BD00BF9C420000EF
+S1130AE801F090F944F8256070BD00BF9042000001
S1130AF830B50446CDB2FFF7C9FE20B9084840F224
-S1130B08F14101F085F92046294601220823FFF71F
+S1130B08F14101F07FF92046294601220823FFF725
S1130B1851FF204629460122BDE83040FFF71EBF99
-S1130B289C42000030B50446CDB2FFF7AFFE20B9B1
-S1130B38084840F2966101F06BF9204629460222E2
+S1130B289042000030B50446CDB2FFF7AFFE20B9BD
+S1130B38084840F2966101F065F9204629460222E8
S1130B48FFF70CFF2046294601220823BDE8304060
-S1130B58FFF730BF9C42000030B50446CDB2FFF722
-S1130B6895FE20B9084840F2EA6101F051F920469F
+S1130B58FFF730BF9042000030B50446CDB2FFF72E
+S1130B6895FE20B9084840F2EA6101F04BF92046A5
S1130B7829460222FFF7F2FE2046294601220823CD
-S1130B88BDE83040FFF716BF9C420000830510B54E
-S1130B98044603D00D489C2101F03AF90C4B40F669
+S1130B88BDE83040FFF716BF90420000830510B55A
+S1130B98044603D00D489C2101F034F90C4B40F66F
S1130BA801221A6043F8144C0A4A143B08331A60A9
S1130BB81A689207FCD4084B40F601201B681840B9
-S1130BC8002814BF4FF0FF30002010BD054300007B
+S1130BC8002814BF4FF0FF30002010BDF942000088
S1130BD814D00F40020042A40CD00F402DE9F0417C
S1130BE8054688070C46164603D02A48DF2101F03B
-S1130BF80FF9B10703D02748E02101F009F9264B82
+S1130BF809F9B10703D02748E02101F003F9264B8E
S1130C0842F201621A60254B1B68DA071ED4244B92
S1130C18244F254825491A462EE024F07F03CCF8B2
S1130C28003007E0224B0434434455F8048B043E57
@@ -201,7 +201,7 @@ S1130C5854C0194F15481146002EDED10EE03C60F1
S1130C6855F804CBC0F800C01960D2F800C01CF0D5
S1130C78010FFAD10434043E002EF0D10F4B42F296
S1130C8801601B681840002814BF4FF0FF30002093
-S1130C98BDE8F0810543000014D00F40A0E10F40E7
+S1130C98BDE8F081F942000014D00F40A0E10F40F4
S1130CA808D00F4000D00F4004D00F40010042A4E8
S1130CB800D10F4020D00F4030D00F400CD00F404F
S1130CC8124B98421ED003F5805398421AD003F56C
@@ -210,66 +210,66 @@ S1130CE8805398420ED003F5805398420AD003F5F6
S1130CF88053984208D003F58053C31A584240EBF6
S1130D0803007047012070470120704700C000406D
S1130D1810B50446FFF7D4FF20B908484FF4FB7117
-S1130D2801F076F8E36A43F01003E362236B43F4BB
-S1130D38407343F00103236310BD00BF72430000F6
+S1130D2801F070F8E36A43F01003E362236B43F4C1
+S1130D38407343F00103236310BD00BF6643000002
S1130D4810B50446FFF7BCFF20B9094840F2162144
-S1130D5801F05EF8A3691907FCD4E36A23F01003D1
+S1130D5801F058F8A3691907FCD4E36A23F01003D7
S1130D68E362236B23F4407323F00103236310BD70
-S1130D7872430000F0B504460D4616461F46FFF7B9
-S1130D889FFF20B92C484FF4B07101F041F826B9FF
-S1130D98294840F2611101F03BF8284B1A6812F017
+S1130D7866430000F0B504460D4616461F46FFF7C5
+S1130D889FFF20B92C484FF4B07101F03BF826B905
+S1130D98294840F2611101F035F8284B1A6812F01D
S1130DA8E04F1DD01968264A0A40B2F1805F17D077
S1130DB81968234A0A4023498A4203D11B689BB213
S1130DC8022B0DD01D4A1E4B11680B401E498B4245
S1130DD808D113689BB2002B0CBF1023082302E030
S1130DE8102300E0082373439D4204D212484FF4B1
-S1130DF8B17101F00DF82046FFF7A2FFB5EB061F0D
+S1130DF8B17101F007F82046FFF7A2FFB5EB061F13
S1130E08236B04D243F020032363760802E023F023
S1130E1820032363ED00B5FBF6F60136F30963629C
S1130E28C6F3450600232046A662E762A361BDE82F
-S1130E38F040FFF76DBF00BF7243000000E00F40B1
+S1130E38F040FFF76DBF00BF6643000000E00F40BD
S1130E480000FF70000001100000031010B50446F4
-S1130E58FFF736FF20B9064840F2554100F0D8FFA5
+S1130E58FFF736FF20B9064840F2554100F0D2FFAB
S1130E68A36913F0200F14BF0020012010BD00BF98
-S1130E787243000010B50446FFF722FF20B9064864
-S1130E8840F2764100F0C4FFA369D80654BF206835
-S1130E984FF0FF3010BD00BF7243000030B5044668
+S1130E786643000010B50446FFF722FF20B9064870
+S1130E8840F2764100F0BEFFA369D80654BF20683B
+S1130E984FF0FF3010BD00BF6643000030B5044674
S1130EA8CDB2FFF70DFF20B9064840F2C94100F062
-S1130EB8AFFFA3699A0602D42560012030BD002043
-S1130EC830BD00BF7243000010B50446FFF7F8FEBA
-S1130ED820B9044840F23B5100F09AFFA069C0F3DE
-S1130EE8C00010BD724300000A4B98420ED003F5AF
+S1130EB8A9FFA3699A0602D42560012030BD002049
+S1130EC830BD00BF6643000010B50446FFF7F8FEC6
+S1130ED820B9044840F23B5100F094FFA069C0F3E4
+S1130EE8C00010BD664300000A4B98420ED003F5BB
S1130EF8805398420AD003F58053984208D003F5EA
S1130F088053C31A584240EB0300704701207047CE
S1130F1801207047008000402DE9F043DDF81C8073
S1130F2804460D4616461F46DDF82090FFF7DCFF01
-S1130F3818B92D48CC2100F06BFF6EB1022E0BD0EE
+S1130F3818B92D48CC2100F065FF6EB1022E0BD0F4
S1130F48012E09D0032E07D0102E05D0202E03D051
-S1130F582548D22100F05CFF022F04D92248D5216C
-S1130F6800F056FF04E01FB9B8EB550F05D808E0A8
+S1130F582548D22100F056FF022F04D92248D52172
+S1130F6800F050FF04E01FB9B8EB550F05D808E0AE
S1130F780C23B5FBF3F3984503D91B48D72100F09C
-S1130F8847FFB5FBF8F5B5F57E4F03D91648D821C8
-S1130F9800F03EFFA9F104030C2B03D91248D92110
-S1130FA800F036FF022F02D027B1002700E00827FF
+S1130F8841FFB5FBF8F5B5F57E4F03D91648D821CE
+S1130F9800F038FFA9F104030C2B03D91248D92116
+S1130FA800F030FF022F02D027B1002700E0082705
S1130FB8042300E03B461F43676000230233B5FB6C
S1130FC8F3F2013AFF2AF9D82361B301DBB206F040
S1130FD830061E4309F1FF3946EA090949EA0222A3
-S1130FE82260BDE8F08300BFDE43000010B504466C
-S1130FF8FFF77AFF20B905484FF4857100F008FF20
-S1131008636843F00203636010BD00BFDE43000061
+S1130FE82260BDE8F08300BFD243000010B5044678
+S1130FF8FFF77AFF20B905484FF4857100F002FF26
+S1131008636843F00203636010BD00BFD24300006D
S113101810B50446FFF768FF20B9054840F22311CC
-S113102800F0F6FE636823F00203636010BD00BF9E
-S1131038DE43000030B504460D46FFF755FF20B9DE
-S11310480B4840F2232100F0E3FE23686FF001020D
+S113102800F0F0FE636823F00203636010BD00BFA4
+S1131038D243000030B504460D46FFF755FF20B9EA
+S11310480B4840F2232100F0DDFE23686FF0010213
S113105803F00F0302FA03F32B4204D0044840F2CE
-S1131068252100F0D5FEE3689A07FCD5A56030BDBC
-S1131078DE43000030B504460D46FFF735FF20B9BE
-S1131088054840F27F2100F0C3FEE3685907FCD508
-S1131098A3682B6030BD00BFDE43000011B5064CC9
+S1131068252100F0CFFEE3689A07FCD5A56030BDC2
+S1131078D243000030B504460D46FFF735FF20B9CA
+S1131088054840F27F2100F0BDFEE3685907FCD50E
+S1131098A3682B6030BD00BFD243000011B5064CD5
S11310A8C1B22046FFF7C6FF20466946FFF7E2FFB4
S11310B89DF8000018BD00BF0080004030B500F066
-S11310C817FE00F5FA75FF20FFF7E8FFFF2804462E
-S11310D803D000F00DFEA842F5D3A4F1FF03584253
+S11310C811FE00F5FA75FF20FFF7E8FFFF28044634
+S11310D803D000F007FEA842F5D3A4F1FF03584259
S11310E840EB030030BD0000012100B504480A4666
S11310F8FFF7ECFCFF205DF804EBFFF7CFBF00BF60
S11311080070004010B5012100220848FFF7DEFCFA
@@ -283,8 +283,8 @@ S113117895FFE8B2FFF792FF24B1082C0CBF872033
S1131188012000E09520FFF789FF0C2C02D1FF20F5
S1131198FFF784FF0A24FF20FFF780FF020605D526
S11311A8013CE4B2002CF6D130BDFF2030BD70B54F
-S11311B804460D4600F09CFD00F16406FF20FFF78D
-S11311C86DFFFF2805D100F093FDB042F6D300204F
+S11311B804460D4600F096FD00F16406FF20FFF793
+S11311C86DFFFF2805D100F08DFDB042F6D3002055
S11311D870BDFE2812D1FF20FFF760FF2070FF20AA
S11311E8FFF75CFF60700234023DF4D1FF20FFF783
S11311F855FFFF20FFF752FF012070BD002070BD8E
@@ -307,17 +307,17 @@ S11312F80A46FFF7EBFB0A24FF215A48FFF79AFE38
S1131308584803A9FFF7B6FE013CF5D120214FF058
S11313184020FFF707FC012150482246FFF7D6FB7F
S113132820462146FFF704FF0128064662D100F053
-S1131338DFFC4FF4D57100F57A750820FFF7F8FE45
+S1131338D9FC4FF4D57100F57A750820FFF7F8FE4B
S1131348012835D1FF20FFF7A9FE02ABE054013490
S1131358042CF7D19DF80A30012B4AD19DF80B30A3
-S1131368AA2B46D100F0C4FCA84206D2A9204FF00B
-S11313788041FFF7DDFE0028F4D100F0B9FCA84253
+S1131368AA2B46D100F0BEFCA84206D2A9204FF011
+S11313788041FFF7DDFE0028F4D100F0B3FCA84259
S113138837D23A200021FFF7D3FE002831D1044692
S1131398FF20FFF783FE02ABE0540134042CF7D19D
S11313A89DF8083013F0400F0CBF04240C2421E0EE
S11313B8A9202146FFF7BCFE012802D80224A92649
-S11313C800E0344600F094FCA84205D230460021DF
-S11313D8FFF7AEFE0028F5D100F08AFCA84208D237
+S11313C800E0344600F08EFCA84205D230460021E5
+S11313D8FFF7AEFE0028F5D100F084FCA84208D23D
S11313E810204FF40071FFF7A3FE002818BF002453
S11313F800E000241C4B1C60FFF776FE134B1A78A0
S1131408DCB102F0FE021A701648FFF701FEFFF77E
@@ -379,867 +379,867 @@ S1131778FFF794FC20464021FFF719FDD0F101053D
S113178838BF002502E0042500E00125FFF7ACFC82
S113179802E0042500E00325284604B070BD00BF1C
S11317A80000002004000020004870470000AA42FE
-S11317B8FFB500216846202202F0F2FC0848694679
-S11317C802F0DEF848B9009840B19DF8083013F0EB
+S11317B8FFB500216846202202F0ECFC084869467F
+S11317C802F0D8F848B9009840B19DF8083013F0F1
S11317D8100F14BF0020012000E0002008B000BD55
-S11317E846440000004870474644000010B5074CC2
-S11317F80023204606490A2284F8243201F0AEFD6B
+S11317E83A440000004870473A44000010B5074CDA
+S11317F80023204606490A2284F8243201F0A8FD71
S113180810B9012384F8243210BD00BF0800002059
-S11318186144000000B5084890F82432012B01D136
-S113182802F003F80548FFF74FFB0128FAD00448F3
-S11318385DF804EB02F0C8B80800002000C00040BE
-S113184846440000034890F82432012B01D101F0EA
-S1131858ECBF70470800002030B5104C054694F8DA
-S11318682432012B0AD1214602F048F9002805DA6E
-S1131878002384F82432204601F0D7FF2C4607E0E1
+S11318185544000000B5084890F82432012B01D142
+S113182801F0FDFF0548FFF74FFB0128FAD00448F3
+S11318385DF804EB02F0C2B80800002000C00040C4
+S11318483A440000034890F82432012B01D101F0F6
+S1131858E6BF70470800002030B5104C054694F8E0
+S11318682432012B0AD1214602F042F9002805DA74
+S1131878002384F82432204601F0D1FF2C4607E0E7
S11318880748FFF70BFB0648FFF7E0FA0028FAD0F1
S113189814F8011B0029F3D130BD00BF0800002053
S11318A800C0004000B50848FEF760FE0748FEF790
-S11318B827FE4FF040200321FFF74EF900F0E6FA27
-S11318C800F0F3FAFCE700BF8003C0010100002028
-S11318D801483C2100F09CBA6E44000000B500F0B9
-S11318E8D7F958B100F014FB00F0EEF9044B4FF4AB
+S11318B827FE4FF040200321FFF74EF900F0E0FA2D
+S11318C800F0EDFAFCE700BF8003C001010000202E
+S11318D801483D2100F096BA6244000000B500F0CA
+S11318E8D1F958B100F00EFB00F0E8F9044B4FF4BD
S11318F8C0421A6046F204031B6898475DF804FB6B
S113190808ED00E070B50C4695B2064607E014F8F9
-S1131918013B013D06F8013B00F00DFBADB2002D83
+S1131918013B013D06F8013B00F007FBADB2002D89
S1131928F5D170BDFEF725BC70B50C4D06460024F4
-S113193800F001FB2B689E4209D36A689B189E42FB
+S113193800F0FBFA2B689E4209D36A689B189E4202
S113194805D2064B0C2202FB0434207A70BD013404
-S11319580C35112CECD1FF2070BD00BFF4440000FD
+S11319580C35112CECD1FF2070BD00BFE844000009
S11319682DE9F14105460068FFF7DEFFFF2818D08E
S113197800242F68261DAB5904EB0708009300F0D8
-S1131988DAFA684641460422FFF728F948B9E259C9
+S1131988D4FA684641460422FFF728F948B9E259CF
S1131998009B9A4206D1B6F5007F3446E9D101206E
S11319A800E00020BDE8F881114B30B598420446A8
S11319B80D4606D0B1F5C04F05D0FFF7D1FF18B9D1
S11319C810E00C4C00E01C46EB050DD12368AB423B
S11319D80BD0204640F8045B29464FF40072FFF709
S11319E891FF02E0044600E00024204630BD00BF19
-S11319F830020020340400202DE9F0431FFA83F854
-S1131A08036821F4FE77013304460D46164627F091
-S1131A18030706D140F8047B39464FF40072FFF7F8
-S1131A2871FF2368BB4205D020463946FFF7BCFF47
-S1131A38044610B3236840F2FF19ED1A04356519FA
-S1131A4807F5007700F077FA231DEB1A4B4506D902
-S1131A5820463946FFF7A8FF044680B1051D16F84D
-S1131A68013B08F1FF381FFA88F805F8013BB8F183
-S1131A78000FE7D10120BDE8F083BDE8F083BDE89D
-S1131A88F0830000034A4FF0FF331360024A1360E7
-S1131A98704700BF340400203002002070B50446AB
-S1131AA80E461546FFF740FFFF2815D0601E801923
-S1131AB8FFF73AFFFF280FD024F4FE7323F0030343
-S1131AC8B3F5C04F0CBF05480548B3B221462A46B2
-S1131AD8BDE87040FFF790BF002070BD30020020C1
-S1131AE8340400202DE9F0410E460446FFF71CFF9C
-S1131AF8013C0546A019FFF717FFFF2D074659D0EB
-S1131B08FF285AD0854255D8022D53D9132851D8C5
-S1131B182B4E0024B04600F00EFA98F80830AB4279
-S1131B2804D10C235C43264B1C5906E00134112CC8
-S1131B3808F10C08EFD14FF0FF34DFF8848000255A
-S1131B4800F0F9F998F80830BB4205D10C235D433D
-S1131B581B4B53F8058006E00135112D08F10C08DC
-S1131B68EED14FF0FF38002500F0E5F9337ABB4297
-S1131B7805D1134B0C2202FB05356B6804E00135D3
-S1131B880C36112DF0D10023C4EB0806F618C6F361
-S1131B988F26002509E000F0CEF92046FEF7F6FF6F
-S1131BA804F5806430B90135ADB2B542F3D30120F0
-S1131BB8BDE8F0810020BDE8F0810020BDE8F08197
-S1131BC8F44400000F4B01B51A68013217D05A6863
-S1131BD8996846F2F0008918DA6889181A69891828
-S1131BE85A6989189A698918DA698B185B4201AAB3
-S1131BF842F8043D04216A46FFF750FF00E0012043
-S1131C0808BD00BF3002002046F2040318684FF4F0
-S1131C18C0431B68C01846F208031B68C01846F284
-S1131C280C031B68C01846F210031B68C01846F260
-S1131C3814031B68C01846F218031B68C01846F240
-S1131C48F0031B68C018D0F1010038BF00207047AA
-S1131C580A4800B50368013302D0FFF781FE58B182
-S1131C6807480368013306D0FFF77AFE003018BF2F
-S1131C7801205DF804FB01205DF804FB300200201C
-S1131C8834040020FFF7FEBEFFF708BFFFF72ABFA2
-S1131C98FFF7BABF00B5FFF795FF18B15DF804EB7D
-S1131CA8FFF7D6BF5DF804FB054B00224CF24F3119
-S1131CB81A60596005219A601960024B1A807047AE
-S1131CC810E000E038060020014B00221A6070473B
-S1131CD810E000E0044B1B68DB0303D5034B1A88B0
-S1131CE801321A80704700BF10E000E03806002077
-S1131CF800B5FFF7EFFF024B18885DF804FB00BF3F
-S1131D083806002000B50748FEF7FAFBFEF7DEFCAC
-S1131D18014605484FF4614260235DF804EBFFF780
-S1131D2829B800BF0100001000C0004070B5CDB252
-S1131D38402D064603D91848572100F069F817487A
-S1131D482946FFF7ABF840B101E000F0F4F8134876
-S1131D58FFF77CF80028F8D003E00F485A2100F078
-S1131D6857F8002414E000F0E6F8315D0B48FFF75B
-S1131D7895F840B101E000F0DEF80848FFF766F88E
-S1131D880028F8D003E00448622100F041F8013447
-S1131D98A3B2AB42E7D370BDC045000000C0004009
-S1131DA8F0B5174C064625785DB91648FFF762F872
-S1131DB8421C1FD0144B187001232370134B1D7041
-S1131DC818E0124D0F482F78FFF754F8431C13D02E
-S1131DD80D492B78CF19787001330A78DBB29A420F
-S1131DE82B700BD130460131FFF78CFD0023237093
-S1131DF80120F0BD2846F0BD0020F0BD0020F0BD54
-S1131E087B06002000C000403A0600207C06002023
-S1131E18034B00B51860034B196000F08CF8FCE71D
-S1131E28800600208406002010B500F081F80128FF
-S1131E3816D001F0F1FF98B10A4C2378012B0FD189
-S1131E48FFF756FF084B1B683233984208D3002328
-S1131E58237001F0EBFF18B9BDE81040FFF73EBD51
-S1131E6810BD00BF880600208C060020054B012207
-S1131E7800B51A70FFF73CFF034B18605DF804EBDC
-S1131E88FFF7D2BF880600208C06002000B500F0BA
-S1131E9851F8FFF709FFFFF7F5FE01F0A7FF00F07F
-S1131EA811F85DF804EBFFF7E1BF00B500F043F863
-S1131EB8FFF710FF01F0CEFF00F01AF85DF804EB0D
-S1131EC8FFF7B2BF01B5FF238DF8003000238DF86A
-S1131ED8013000F03BF8FFF715FF044B1B78012B8A
-S1131EE802D1684600F050F808BD00BF90060020F3
-S1131EF800B50648FFF754FF012804D103485DF8EC
-S1131F0804EB00F041B85DF804FB00BF9106002023
-S1131F18704700B5C9B2FFF709FF5DF804EB00F09C
-S1131F282BB80000014B01221A707047900600205C
-S1131F3800F01AB870477047034BFE22DA70022289
-S1131F481871A3F844207047D4060020054B0022DA
-S1131F581A709A6483F84320A3F844209A705A703C
-S1131F68704700BFD4060020024B1878003018BF11
-S1131F7801207047D4060020024B002283F8432036
-S1131F88704700BFD4060020F0B507780546FF2F38
-S1131F98764C11D101F040FF08B91020D1E010218E
-S1131FA8002201232171402162702370E77062715D
-S1131FB8A171E17122726AE02678012E40F0D58081
-S1131FC8F32F40D011D8CF2F00F0B18005D8C92FF6
-S1131FD874D0CC2F40F0B480B0E0D12F00F0A180B1
-S1131FE879D3D22F40F0AC808FE0FA2F44D006D8B2
-S1131FF8F52F0CD011D3F62F40F0A2801FE0FD2F4F
-S11320084BD0FE2F56D0FC2F40F09A8043E0427804
-S11320183F2A63D8201DA16C06E043783F2B5DD886
-S11320284168A1644278201DFFF76CFCFF23E3702C
-S11320386A78A36CD318A3646B78013337E0FF2361
-S1132048E370436845E0FF23E3700023A06C6968EC
-S11320581A4603E01C5C01331219D2B28B42F9D13F
-S1132068424BC3F8072001221A7100225A719A714F
-S11320780822A3F8442066E0FF23E3703C4B0722C0
-S1132088A364002323716371A371E27123726372E1
-S1132098A37208230BE0002053E0FF236278E37067
-S11320A800232371A371E371237262710623A4F8D8
-S11320B8443048E00023237063703AE0421C3F2117
-S11320C8A06CFFF7E1FD002838D0FF23E370A36C70
-S11320D83F33A3642FE043783E2B01D9222030E01C
-S11320E8FF23E370A4F84460417819B9FFF7D2FDDF
-S11320F848BB23E01D4C821CA06CFFF7C5FDE8B16A
-S11321086A78A36CD318A3641DE0FF23E37040220C
-S1132118002323716371E37123726372A27107232D
-S1132128C5E7A06C6968FFF7B1FD10B906E0FFF7D1
-S1132138F9FBFF23E370A4F8446004E0312000E0D5
-S11321482020FFF7F9FE094C94F84330012B02D103
-S11321581020FFF7F1FEB4F844100648012384F870
-S11321684330BDE8F040FFF7D4BEF0BDD4060020EC
-S113217837460000D706002010B5002302E0CC5CE7
-S1132188C45401339342FAD110BDC1F307238176B5
-S1132198090C0175090AC376417570470023024684
-S11321A81846410841EAC010D15C013340180B2B92
-S11321B800F0FF00F5D170470369F0B50D4601F151
-S11321C80901002B4FD043690C461F7B002607F0FA
-S11321D8080C9A5D2146202A12D0052A08BFE52258
-S11321E8BCF1000F06D0A2F14101C9B2192901D8E6
-S11321F82032D2B2013604F8012B082E2146E8D148
-S11322081A7A202A18D022462E2102F8011B082601
-S113221807F010079C5D1146202C0DD037B1A4F1AE
-S11322284101C9B2192901D82034E4B2013602F8AF
-S1132238014B0B2E1146EDD1DA7A2A729A7FDC7F94
-S1132248120442EA04621C7F22435C7F42EA0422AD
-S11322582A605C7E1A7E42EA0422AA80DA7D9B7D8B
-S113226843EA0223EB8000240C70AE6906B3EB69E1
-S1132278F3B10369ABB1028C4FF6FF739A4215D0E0
-S1132288C76909E0002101F04BFC60B1EB69013B2F
-S11322989C420AD23055013437F8020B0028F1D198
-S11322A804E01C4602E0044600E000240023335501
-S11322B8F0BD03468A7EC87E032B42EA002005D17E
-S11322C84A7D0B7D43EA022340EA0340704700B588
-S11322D880B1036873B11A7862B1D988828891424F
-S11322E80BD15878FFF7C4F810F0010018BF032089
-S11322F85DF804FB09205DF804FB09205DF804FB84
-S113230810B504460A46407804F134010123FFF766
-S1132318B9F880BB94F8323294F8332243EA0222A3
-S1132328174B12B29A4228D194F86C2094F86D3065
-S1132338120442EA036294F86A301A4394F86B3040
-S113234842EA03220F4B22F07F429A4216D094F8B5
-S1132358880094F88920000440EA026094F88620F2
-S1132368104394F8872040EA022020F07F40C01AE6
-S113237818BF012010BD032010BD022010BD00BFEE
-S113238855AAFFFF464154002DE9F041D5B2026831
-S11323981378303B092B05D854783A2C02D10232F1
-S11323A8026000E0002300220A60002B40F05D81F7
-S11323B8BA4B1C68002C00F05B810C60237873B165
-S11323C86078FFF755F8C30709D4002D00F053814E
-S11323D810F0040F0CBF00200A20BDE8F081002093
-S11323E820706070FEF738FFC10700F1478115B10E
-S11323F8420700F1468100212046FFF781FF0128AA
-S113240817D194F8F631002B00F0418194F8FC615F
-S113241894F8FD31360446EA036694F8FA31204606
-S11324281E4394F8FB3146EA03263146FFF768FF5A
-S113243800E00026032800F02781002840F02781C7
-S113244894F8402094F83F3043EA0223B3F5007F20
-S113245840F01D8194F84B0094F84A3053EA002068
-S11324680DD194F85A0094F85B30000440EA0360F4
-S113247894F85830184394F8593040EA032094F8F3
-S11324884450E0616B1EDBB2012BE57000F2FF8063
-S113249894F84110A170002900F0F9804B1E0B42FA
-S11324A840F0F58094F8453094F8462043EA022237
-S11324B81307228140F0EB8094F8487094F8473071
-S11324C853EA07230DD194F8563094F857701B0437
-S11324D843EA076394F854703B4394F8557043EA0D
-S11324E8072394F843C094F8427057EA0C2C00F080
-S11324F8CE8005FB00F80CEB12174744BB42C0F032
-S1132508C680DB1BB3FBF1F3002B00F0C08040F660
-S1132518F5718B4206D94FF6F575AB428CBF03258E
-S1132528022500E00125023306EB0C01BF19032D37
-S1132538A36126626162E76213D1002A40F0A78092
-S113254894F8622094F86310120442EA016294F841
-S113255860109B000A4394F8611042EA0122A262C7
-S11325680EE0002A00F093804144022DA16201D1BB
-S11325785B0005E003225A4303F0010303EB520313
-S113258803F5FE730333B0EB532FC0F083804FF091
-S1132598FF3323610023032DE3605AD1637194F858
-S11325A8652094F86430607843EA0222B2186261C4
-S11325B804F134010123FEF765FF002849D194F89A
-S11325C8323294F8332243EA0222354B12B29A4249
-S11325D83FD194F8362094F83730120442EA036263
-S11325E894F834301A4394F8353042EA03222D4BD8
-S11325F89A422ED194F81A2294F81B32120442EA11
-S1132608036294F818321A4394F8193242EA0322FE
-S1132618254B9A421DD194F8223294F823221B04A4
-S113262843EA026394F82022134394F8212243EAEC
-S11326380223E36094F81E3294F81F221B0443EA31
-S1132648026394F81C22134394F81D2243EA0223DC
-S11326582361164A00201388257001339BB2138026
-S1132668E38020632071BDE8F0810B20BDE8F08190
-S11326780C20BDE8F0812846BDE8F0810320BDE8C0
-S1132688F0810A20BDE8F0810120BDE8F0810D2029
-S1132698BDE8F0810D20BDE8F08100BF24090020C9
-S11326A855AAFFFF5252614172724161200900200C
-S11326B8F0B50446007908B3256B04F13407607853
-S11326C839462A460123FEF721FFB0B9636A20710F
-S11326D89D4213D3E2699B189D420FD2E67808E025
-S11326E8E3696078ED1839462A460123FEF70EFFA0
-S11326F8013E012EF4D80020F0BD0120F0BD10B534
-S11327080446FFF7D5FF002851D12378032B46D17F
-S11327186379002B43D0206304F1340103460B543E
-S11327280130B0F5007FFAD1552384F83232AA2358
-S113273884F83332522384F8343084F835306123F2
-S113274884F8363084F81B322369412284F8372010
-S113275884F81A22C3F3072284F81C3284F81D2251
-S11327681A0C1B0E84F81F32E36884F81E22C3F384
-S11327780722722084F8203284F821221A0C1B0EB6
-S113278884F8180284F8190284F8222284F823327F
-S1132798607801236269FEF7B9FE002363710021A2
-S11327A860780A46FEF706FF003018BF012010BD06
-S11327B8036B30B5994204460D460ED0FFF778FFF7
-S11327C868B9607804F134012A460123FEF75AFEF9
-S11327D808B9256330BD012030BD002030BD01207B
-S11327E830BD83690239023B994204D28278C36AB4
-S11327F802FB01307047002070470129F0B50446F8
-S11328080D465BD9836999425AD20378022B28D0A2
-S1132818032B36D0012B4ED101EB5106416A01EB53
-S11328285621FFF7C5FF002845D1616AF305013633
-S113283804EBD35301EB5621204693F83470FFF789
-S1132848B7FF002837D1F60504EBD65494F83400C2
-S1132858EA0747EA002001D50009F0BD0005000D8C
-S1132868F0BD416A01EB1521FFF7A2FF18BB2D0645
-S113287804EBD55494F8350094F8343043EA002036
-S1132888F0BD416A01EBD511FFF792FF98B96D06C7
-S113289804EBD55494F8360094F83730000440EA31
-S11328A8036094F8343094F83570184340EA0720EC
-S11328B820F07040F0BD4FF0FF30F0BD0120F0BDB6
-S11328C80120F0BD70B58DB2816804460129C58028
-S11328D838D003689A69914234D271B91A78032AB4
-S11328E801D1996A49B90022E2601A89AA4229D910
-S11328F89B6A03EB1513236119E09E7836010DE0FA
-S11329082068FFF77AFF0146013019D0012919D947
-S113291823689B69994217D2AD1BADB2B542EFD279
-S1132928E1602068FFF75DFF00EB15102061236864
-S113293805F00F05343303EB45156561002070BDC0
-S1132948012070BD022070BD022070BD0129F0B5C0
-S113295804460D46164670D9836999426FD20378A6
-S1132968022B3AD0032B48D0012B62D101EB51073B
-S1132978416A01EB5721FFF71BFF00285AD1FA05DA
-S1132988D20D15F00105F3B207D0A11891F834104F
-S113299801F00F0141EA0313DBB2A218616A82F85D
-S11329A8343001370123237101EB57212046FFF707
-S11329B8FFFE00283ED1FF05FF0D15B1C6F307162B
-S11329C807E0E31993F83430C6F3032623F00F0322
-S11329D81E43E71987F834602CE0416A01EB15219E
-S11329E8FFF7E6FE30BB2D0604EBD55585F83460B9
-S11329F8C6F3072685F835601CE0416A01EBD5115A
-S1132A08FFF7D6FEB0B96D0604EBD55595F8373007
-S1132A181B0603F070431E43C6F3072385F834608E
-S1132A2885F83530330C360E85F8363085F837603E
-S1132A3800E0022001232371F0BD0220F0BD022032
-S1132A48F0BDF0B504460E4631B9C7686FB1836965
-S1132A589F4228BF012709E0FFF7CFFE012837D995
-S1132A68A369984239D3374600E001273D46A36954
-S1132A7801359D4202D3012F2CD90225204629462F
-S1132A88FFF7BBFE30B1411C27D0012825D0BD4239
-S1132A98EDD11FE0204629466FF07042FFF756FF3C
-S1132AA880B92EB1204631462A46FFF74FFF48B970
-S1132AB82369E5605A1C0FD0013B2361012363712C
-S1132AC82846F0BD012814BF01204FF0FF30F0BDA7
-S1132AD80120F0BD0020F0BD2846F0BD2DE9F041ED
-S1132AE8C68804460136B6B20F46002E65D003697F
-S1132AF8002B62D0320755D1C168013303610068E5
-S1132B0819B90389B34258D94CE08378013B13EAD5
-S1132B18161347D1FFF771FE0128054653D9431C04
-S1132B2854D0206883699D4236D3002F45D0E1688C
-S1132B38FFF787FF0546002842D0012843D001301B
-S1132B4844D02068FFF7B4FD00283FD1226803462B
-S1132B58343213540130B0F5007FFAD1276829467E
-S1132B683846FFF73EFE4FF00108386300270CE0B3
-S1132B7883F804802068FFF79BFD002829D1236887
-S1132B8801371A6BFFB201321A6323689A78BA4282
-S1132B98EED81A6BD71B1F63E56020682946FFF738
-S1132BA820FE20612368E680343306F00F0603EB29
-S1132BB8461666610020BDE8F0810420BDE8F08176
-S1132BC80720BDE8F0810220BDE8F0810120BDE8BE
-S1132BD8F0810120BDE8F0812DE9F34FFF26DFF8ED
-S1132BE82C81054634464FF6FF7728682969FFF794
-S1132BF8DFFD8346002840F08280D5F8149099F8C8
-S1132C0800A0BAF1000F78D0BAF1E50F99F80B30AB
-S1132C1869D003F03F03180702D50F2B63D101E0F5
-S1132C280F2B4BD1EB69002B5ED01AF0400F06D066
-S1132C38EA8899F80D600AF0BF0A2A8401E0A245DF
-S1132C4851D199F80D20B2424DD199F800400D2286
-S1132C5824F04004013C54434FF0010B002212F8C5
-S1132C68081009EB0100407819F8011041EA002026
-S1132C78BBF1000F11D08DE80C0000F06FFFFE2CA3
-S1132C888346019B2FD833F8140000F067FF9DE8B2
-S1132C980C00834527D1013401E0B84223D1013225
-S1132CA80D2ADCD199F8002051062BD5BBF1000F71
-S1132CB828D033F81430002B24D014E024B9484623
-S1132CC8FFF76CFA86421AD0AA692F84D37A13F0D4
-S1132CD8010302D007E00B2B11D019F80300D15CD3
-S1132CE801338842F7D0FF2428460021FFF7F6FE77
-S1132CF8834600283FF479AF01E04FF0040B5846AF
-S1132D08BDE8FC8F0AF1FF34E4B2EDE7CF460000DA
-S1132D182DE9F74F0B7806462F2B0C4601D05C2B78
-S1132D2800D101340025B56023781F2B05D830461F
-S1132D382946FFF7C7FD756106E12378019401343C
-S1132D482F2BFAD05C2BF8D0D6F81C9000254F46D0
-S1132D584C46019A6B1C505D02931F281AD92F28E0
-S1132D681AD05C2818D0B3F5807F00F0EA800121DE
-S1132D7800F0D6FE002800F0E4807F2806D8734BC4
-S1132D8813F8012B12B18242FAD1DAE024F8020BCB
-S1132D98029DDEE7042400E0002409EB450306E075
-S1132DA833F8022D202A01D02E2A03D1013D002D0B
-S1132DB8F6D1C6E00023B06909EB450129F81530BE
-S1132DC82022C25401330B2BFBD14FF0000801E041
-S1132DD808F1010837F8022B202AF9D02E2AF7D057
-S1132DE8B8F1000F01D044F003040B4608E0013D9C
-S1132DF806D14FF0000A4FF0080B5746544B04E035
-S1132E0833F8022D2E2AF2D1F3E739F818000028F6
-S1132E1852D0202808F1010803D02E2804D1A8454F
-S1132E2802D044F00304F0E7DA4501D2A84512D1F0
-S1132E38BBF10B0F02D144F003043DE0A84502D0D6
-S1132E4844F0030438D8BF00FFB2A8464FF00B0B78
-S1132E584FF0080AD9E77F280BD90021009300F026
-S1132E685FFE009B10B1181810F8800C44F002049F
-S1132E7860B1384A12F8011B11B18142FAD105E058
-S1132E88A0F1410292B2192A04D906E044F00304DD
-S1132E985F200BE047F0020708E0A0F1610292B25C
-S1132EA8192A03D8203847F0010780B2B26902F81A
-S1132EB80A000AF1010AA8E7B3691A78E52A01D1D8
-S1132EC805221A70BBF1080F01D1BF00FFB207F049
-S1132ED80C030C2B03D007F00302032A01D144F09E
-S1132EE80204A10709D407F00307012F08BF44F01F
-S1132EF81004042B08BF44F00804B3693046DC729C
-S1132F080021FFF7DFFC10B93046FFF765FEB3690F
-S1132F18DB7A38B1042817D113F0040F14BF042046
-S1132F28052011E05A070FD47169CB7ADB060AD55C
-S1132F38019A029BD41833681878FFF7BAF9B0607D
-S1132F48FBE6062000E00520BDE8FE8F3F460000B2
-S1132F584F46000048460000F0B5018CC5884FF67E
-S1132F68FF73994208BF29460446FFF7ABFC0146A4
-S1132F78B8B9E527012621692068FFF719FC01463D
-S1132F8860B963691F7023681E71E388AB4208D275
-S1132F982046FFF7A3FD01460028ECD0042908BF0A
-S1132FA802210846F0BD00002DE9F047FF2604463B
-S1132FB835464FF00409DFF8E8804FF6FF775EE006
-S1132FC82068FFF7F5FB814600285ED16069037825
-S1132FD8002B62D0E52BC27A4AD02E2B48D002F0BF
-S1132FE83F02082A44D00F2A39D15A0605D5E28867
-S1132FF8467B03F0BF03228401E0AB4238D1427B15
-S1133008B24235D102780D2102F03F02013AD4F8D8
-S11330181CE04A434FF0010C002111F8089000EB22
-S1133028090595F801A010F8095045EA0A25BCF1EC
-S1133038000F06D0FE2A1BD82EF81250AC460132D7
-S113304801E0BD4214D101310D29E6D101784806C9
-S113305820D5FE2A0CD800212EF812101AE01DB92A
-S1133068FFF79CF8864212D04FF6FF7323840EE0D4
-S1133078FF2520460021FFF731FD814628B9216943
-S113308800299DD1B9F1000F01D0002323614846DE
-S1133098BDE8F0875D1EEDB2EBE74FF00409F4E7F5
-S11330A8CF4600000129F0B504460F4624D98369A8
-S11330B8994223D217E020463946FFF79EFB05467E
-S11330C8B8B1012818D0013014D02046394600225E
-S11330D8FFF73CFC98B92369591C02D001332361DA
-S11330E866712F4600E00126A3699F42E3D30020BE
-S11330F8F0BDF0BD0120F0BD0220F0BD0220F0BDFE
-S113310873B59EB215460B220446FFF735F8052E13
-S113311809D9730843EAC6362B88F61835F8023FEE
-S1133128B6B2002BF5D1072306F00F0101F13002E6
-S1133138392A88BF01F137020DF80320013B36090B
-S1133148F2D102A9CA187E2102F8081C00E001364F
-S11331589E4202D0A25D202AF9D1072B05D802A9E4
-S1133168CA1812F8082C013300E02022A2550136AF
-S1133178072EF2D97CBD00002DE9F74F8569C76990
-S11331880C22044629466846FEF7F6FF9DF80B30E4
-S1133198E846DB0723D50023EB720126E361E84602
-S11331A8284669463A463346FFF7AAFF20460021D7
-S11331B8FFF788FB814650B92046FFF70DFD81468D
-S11331C828B90136642EEBD14FF00709A5E0B9F10F
-S11331D8040F40F0A2809DF80B30EB72E7619DF874
-S11331E80B309E0704D401260CE00136B6B200E089
-S11331F8002637F81630002BF7D119360D2396FB25
-S1133208F3F6B6B220460021FFF75CFB814600289E
-S113321840F08380054620682169FFF7C9FA814692
-S113322800287AD163691B78E52B00D01BB90135D6
-S1133238B54201D174E0054620460121FFF74EFC52
-S113324881460028E7D068E0E1882046491B89B216
-S1133258FFF738FB814600285FD1A069FEF79EFF7F
-S11332684FF6FF76DFF8D08082463746206821691A
-S1133278FFF79EFA814600284FD163690F21EAB20D
-S1133288D4F81CE0D97218739876D876511E0D209C
-S1133298414383F80DA04846B14518BF3EF8119044
-S11332A810F808C018BF0131013003F80C904FEA38
-S11332B8192B9C44B9F1000F08BFB1460D288CF8AE
-S11332C801B0E9D1B94502D03EF8111009B942F06C
-S11332D840021A70236801221A7120460021FFF760
-S11332E8FDFB8146C8B9013DADB2002DBED11BE03E
-S11332F861694B464A46CA540133202BFBD10B2241
-S11333086069A169FEF738FFA2696369D27A02F09D
-S113331818021A73236801221A714846BDE8FE8F01
-S1133328013DADB2002D8FD120682169FFF740FA25
-S113333881460028DCD0F0E7CF460000C0B248B987
-S1133348054A136803B1187009B100230B701160A2
-S1133358002070470B207047240900202DE9F04312
-S11333688DB004460091D5B2002800F08D8000236A
-S113337805F01F05036005F0FE02684601A9FFF782
-S113338803F88046002840F081800AAB0793444B39
-S113339801A800990893FFF7BBFC069E18B9002EF4
-S11333A80CBF0620002015F01C0F42D050B1042891
-S11333B802D101A8FFF7E0FE069E002862D145F07D
-S11333C8080505E0F37A13F0110F67D1680761D493
-S11333D8290737D5FEF7E8F9C0F30723F373030C7D
-S11333E80027B0733374000E019B7074F77237773B
-S11333F87777B777F77718783146FEF75AFF394663
-S113340881463046FEF7C1FE019801230371B9F1E4
-S1133418000F17D04946076BFFF744FE002831D147
-S1133428019809F1FF33C3603946FFF7C1F948B180
-S113343828E0002826D1F37ADA062DD4A80701D586
-S1133448D9072BD4019F2A073B6B48BF45F02005B9
-S1133458E3612662A57138783146FEF72AFF2061B8
-S1133468B37FF27F1B0443EA0263327F1343727F04
-S1133478276043EA0223E3600023A360A361FB8877
-S1133488A38003E0804601E04FF0090840460DB0F0
-S1133498BDE8F0830820F5E70420F3E70720F1E707
-S11334A8200700202DE9F34F00931646009A0023C5
-S11334B8136004468946FEF70AFF0546002840F0D3
-S11334C89D80A3791A0600F19680D80740F195806B
-S11334D8A368E268C3EB020804F12403464538BF35
-S11334E8B046019382E0A368DA0567D1206890F8B2
-S11334F802B00BF1FF3B0BEA532B5FFA8BFBBBF1DA
-S1133508000F0AD10BB9206902E06169FFF775F968
-S1133518012809D9411C4AD06061D4F800A0616926
-S11335285046FFF75EF920B9A37963F07F03A371CE
-S113353861E05FEA582700EB0B061FD09AF80230C7
-S113354807EB0B029A4288BFCBEB0307FBB29AF84E
-S1133558010049463246FDF795FFA37940BB5A0658
-S11335680AD5A3699E1BBE4206D209EB46200199DF
-S11335784FF40072FEF700FE7F022DE0A269B2420A
-S11335881BD0A3795B060AD501239AF80100019997
-S1133598FDF7BCFFA37958B923F04003A37123684E
-S11335A80199587832460123FDF76CFF28B1A379B5
-S11335B863F07F03A371012520E0A661A168484652
-S11335C8C905C90DC1F50077B84538BF4746243148
-S11335D861183A46FEF7D0FDA368009ADB19A36088
-S11335E81368B944DB191360C7EB0808B8F1000F76
-S11335F87FF479AF02E0022500E007252846BDE8FC
-S1133608FC8F2DE9F34F00931646009A00231360AC
-S113361804468946FEF75BFE0546002840F0B48060
-S1133628A3791A0648D49B0740F1AD80E368DE42CB
-S113363804F1240328BF0026019397E0A368DA0560
-S113364879D1206890F802A00AF1FF3A0AEA532ACD
-S11336585FFA8AFABAF1000F13D133B9216951B963
-S1133668FFF7EFF90146206103E06169FFF7E9F923
-S1133678014600297DD00129A3791AD0481C53D0CA
-S11336886161A37959060CD5236801995878A26910
-S11336980123FDF73BFFA379002845D123F040031C
-S11336A8A371D4F800B061695846FFF79AF828B9AD
-S11336B8A37963F07F03A371022565E0770A00EB21
-S11336C80A0821D09BF8023007EB0A029A4288BF05
-S11336D8CAEB03079BF80100FBB249464246FDF7D3
-S11336E815FF00BBA369C8EB0308B8450AD209EB68
-S11336F8482101984FF40072FEF73EFDA37923F0A8
-S11337084003A3717F0228E0A369434511D0A2684E
-S1133718E3689A420DD29BF80100019942460123BD
-S1133728FDF7B0FE28B1A37963F07F03A3710125E7
-S11337382AE0C4F81880A0684946C005C00DC0F541
-S11337480077BE4238BF3746243020183A46FEF781
-S113375813FDA37943F04003A371A368009ADB190E
-S1133768A3601368B944DB191360F61B002E7FF4B9
-S113377865AFA368E268934288BFE360A37943F026
-S11337882003A37100E007252846BDE8FC8F70B527
-S11337980446FEF79CFD0646002844D1A379980602
-S11337A841D559060DD5214651F8243BA2695878CC
-S11337B80123FDF7ABFE002834D1A37923F040039D
-S11337C8A3712068E169FEF7F3FF064600282AD1B1
-S11337D8256AEB7A284643F02003EB72E3682B77DB
-S11337E8A3891B0A6B77E389AB77E37BEB772169C2
-S11337F8FEF7CBFCFDF7D8FFC0F30723A875EB75DC
-S1133808030C000E2B766876AE74EE74A37901224D
-S113381823F02003A37123681A712068BDE870405F
-S1133828FEF76DBF0126304670BD10B50446FFF79C
-S1133838AEFF00B9206010BD2DE9F04104460F46E3
-S1133848FEF745FD0546002840F09680A27911064A
-S113385800F19180E3689F4203D912F0020F08BF78
-S11338681F460022A368A260002F52D0206890F857
-S113387802804FEA482873B1013B791EB1FBF8F185
-S1133888B3FBF8F2914206D3C8F100021340A360D7
-S1133898FF1A61690AE0216939B9FFF7D2F80128EA
-S11338A801462ED0421C55D020616161002932D0D6
-S11338B819E0A37920689B0704D5FFF7C2F80146ED
-S11338C818B913E0FEF799FF01464A1C42D00129B2
-S11338D817D923689B69994213D2A3686161434449
-S11338E8A360C8EB07074745E3D800E04746A36849
-S11338F8DB19A360FB05DE0D73B12068FEF771FFC9
-S113390820B9A37963F07F03A37134E000EB572651
-S113391802E03E4600E00E46A368DB0521D0A2691A
-S113392896421ED0A3795B060BD5214651F8243B59
-S113393858780123FDF7EAFDA37960B923F0400321
-S1133948A371214651F8243B324658780123FDF7E8
-S113395899FD28B1A37963F07F03A37101250BE0D6
-S1133968A661A368E268934206D9E360A37943F0A9
-S11339782003A37100E002252846BDE8F081000079
-S113398830B58DB00DAB43F8340D0C46684601A92B
-S11339980022FEF7F9FC054688B90AAB0793094BE0
-S11339A801A800990893FFF7B3F9054638B9069BAF
-S11339B823B101A82146FEF7FFFB00E006252846AF
-S11339C80DB030BD2007002070B596B016AB43F893
-S11339D8580D01A968460122FEF7D6FC05460028C1
-S11339E843D113AB0793264B01A800990893FFF71B
-S11339F88FF90546002838D1069E36B1F37A13F0BC
-S1133A08010F0CBF0025072500E00625019B314660
-S1133A181878FEF74EFC04463DBBF37ADD0627D53D
-S1133A28012813D90AA801A92422FEF7A5FB0AA88C
-S1133A3802210C94FEF746FF0546B0B90AA8FFF721
-S1133A48B3FA054620B1042812D00EE002250CE092
-S1133A5807250AE02CB101982146FFF723FB054608
-S1133A6818B90198FEF74BFE0546284616B070BDF6
-S1133A7801A8FFF771FA05460028EBD0F5E700BF67
-S1133A88200700202DE9F341044617460646002581
-S1133A9801F1FF3811E001226B46384601A9FFF70E
-S1133AA801FD009B012B0AD19DF804300D2B04D095
-S1133AB801350A2B06F8013B01D04545EBDB002311
-S1133AC89D4208BF1C4633702046BDE8FC8133B5CF
-S1133AD8C5B20A2D0C4602D10D20FFF7F8FF02A942
-S1133AE801F8045D204601226B46FFF78AFD009821
-S1133AF801280CBF01204FF0FF303CBD70B50646CD
-S1133B080D46002405E02946FFF7E1FF411C04D0D7
-S1133B180134305D0028F6D100E00446204670BD2B
-S1133B2880B27F2815D931B1FF2811D8094B8038C4
-S1133B3833F810007047084B33F8022F824203D041
-S1133B48013189B28029F7D101F18000C0B27047F0
-S1133B58002070479C4A00009A4A000080B2064A36
-S1133B68002300E0013332F8021F21B18842F9D161
-S1133B78024A32F813007047BA480000DC460000D5
-S1133B8870B5002506462C46705D00F001FBC0B2F6
-S1133B98A0F13003DBB2162B11D8A0F13A02D2B24D
-S1133BA8062A0CD9092B84BFA0F13703DBB20135EF
-S1133BB803EB0414022D04F0FF0401D0E4E700240D
-S1133BC8204670BD30B5C5B2280909280C4601D96C
-S1133BD8373003E0303000F0DBFAC0B205F00F05EF
-S1133BE8092D207001D9373504E005F1300000F0C3
-S1133BF8CFFAC5B200236570A370204630BD00001B
-S1133C0810B502460B490A2400E01946B2FBF4F247
-S1133C184B1C002AF9D14A700A22B0FBF2F102FBCC
-S1133C281100303003F8010D08460029F5D1184673
-S1133C3810BD00BF280900202DE9F043684D064651
-S1133C48287800F0A5FA532840F0AE80687800F090
-S1133C5899FA002800F0AA806B78312B00F0AD8027
-S1133C68322B00F0AC80332B40F09E80A9E028462C
-S1133C78FFF786FF013FBFB207EB09039BB28044FD
-S1133C880235012B5FFA88F8F1D82846FFF778FF48
-S1133C986FEA08085FFA88F8804540F0898099E05F
-S1133CA84F4DA81CFFF76CFF0446281DFFF768FF5B
-S1133CB80702C5F88071A81DFFF762FF033C3F188F
-S1133CC8C5F88071A4B246B974E02846FFF758FFD6
-S1133CD8F05501370235BFB203E0002708350FFA63
-S1133CE884F84745F1DB65E03D4DA81CFFF748FF24
-S1133CF80446281DFFF744FF0704C5F88071A81D72
-S1133D08FFF73EFF07EB0027C5F8807105F10800AF
-S1133D18FFF736FF043C3F18C5F88071A4B246B9D2
-S1133D2848E02846FFF72CFFF05501370235BFB2AB
-S1133D3803E000270A350FFA84F84745F1DB39E038
-S1133D48274DA81CFFF71CFF0446281DFFF718FF82
-S1133D580706C5F88071A81DFFF712FF07EB004797
-S1133D68C5F8807105F10800FFF70AFF07EB002783
-S1133D78C5F8807105F10A00FFF702FF053C3F18FA
-S1133D88C5F88071A4B246B914E02846FFF7F8FED6
-S1133D98F05501370235BFB203E000270C350FFA9E
-S1133DA884F84745F1DB05E0002403E0044601E01C
-S1133DB84FF6FF7420B2BDE8F083002402E001242A
-S1133DC800E002240748FFF7DBFE0027814680460F
-S1133DD8054D4CE7012C87D0022C7FF461AFAFE787
-S1133DE8CC0D0020CE0D0020D00D0020074B002064
-S1133DF800B507491860FFF7A1FA28B105489121D1
-S1133E085DF804EBFEF704B85DF804FB68090020CC
-S1133E18740900209C4B0000034B1868D0F1010082
-S1133E2838BF0020704700BF6809002030B5FEF78E
-S1133E387FF8012808D0064D2C682CB9FDF7B8FC8A
-S1133E48012803D1286030BD002030BD204630BD94
-S1133E5868090020F0B5924E3468002C00F0828185
-S1133E68012C26D1FDF7C2FC8E48FDF7F5FC8E48DF
-S1133E78FDF7F2FCFDF7B6FC224601468B48FFF736
-S1133E886DFA054638B18A48FDF7E6FC2046BDE8D8
-S1133E98F040FDF7D7BC8748FDF7DEFC8648FDF700
-S1133EA8DBFC8648FDF7D8FC854B1D605D6002236A
-S1133EB8B3E0022C40F08B80824F83484FF480712A
-S1133EC807F50D72FFF7DEFD97F93A32002B01DA98
-S1133ED8774898E050B10020FFF7AEFE421C054633
-S1133EE804D17348FDF7B8FC03208FE02CB2002CF2
-S1133EF812DD734B744859681A4621B9D0F88021E9
-S1133F0883E8140008E0D0F8803110682DB28342A9
-S1133F18294438BF136051606A4DD5F83C22D5F85E
-S1133F2840329A4240F01E8105F50D700021FFF7DA
-S1133F3883FC68B15E48FDF78FFC0420FDF782FC22
-S1133F4805F50D70FFF771FC554B00221A60F0BDA2
-S1133F585B4C5848FDF780FC5C48FDF77DFC6068C5
-S1133F68FFF74EFE5A48FDF777FC5A48FDF774FCF4
-S1133F78E0785749FFF726FEA0785749FFF722FE55
-S1133F8860785649FFF71EFE55492078FFF71AFE58
-S1133F984F48FDF761FC5348FDF75EFC94E80300C5
-S1133FA8FDF774FE3E4C064658B94148FDF754FCEB
-S1133FB80520FDF747FC05F50D70FFF736FC266074
-S1133FC8F0BD3C48FDF748FC03232360F0BD032CF7
-S1133FD840F0C8803B4F3C484FF4807107F50D72A0
-S1133FE8FFF750FD97F93A32002B04DA3E48FDF703
-S1133FF833FC02200AE090B13C48FFF71DFE431C45
-S113400805460CD13A48FDF727FC2046FDF71AFC73
-S113401807F50D70FFF709FC00233360F0BD2DB2DE
-S1134028002D6EDD3348FDF717FC2846264CFFF7B4
-S1134038E7FD2748FDF710FC2F48FDF70DFC94F821
-S113404883012349FFF7BEFD94F882012249FFF753
-S1134058B9FD94F881012149FFF7B4FD204994F88A
-S11340688001FFF7AFFD1A48FDF7F6FB1D48FDF781
-S1134078F3FBD4F8800104F580722946FDF704FEA9
-S1134088044600283AD10A48FDF7E6FB0620FDF766
-S1134098D9FB0648FFF7C9FB014B1C60F0BD00BF04
-S11340A868090020074C00002A4C0000A80B0020D7
-S11340B8024D00004F4C0000544C0000784C0000A6
-S11340C86C09002074090020CC0D0020A64C0000C7
-S11340D828090020AF4C00002A0900202C090020E0
-S11340E82E090020A24C0000C84C0000CC0E002071
-S11340F8E94C00000A4D0000174D00001A48FDF76E
-S1134108ABFB1A4CD4F83C22D4F840329A4229D159
-S11341181748FDF7A1FBFDF7BDFD054660B9154835
-S1134128FDF79AFB0720FDF78DFB04F50D70FFF7EB
-S11341387CFB114B1D60F0BD0B48FDF78DFB0F4850
-S1134148FDF78AFB04F50D70FFF76FFB0C48FDF7CC
-S113415883FB094B00221A60FDF75CFBBDE8F040C5
-S1134168FDF7BCBBF0BD00BF4F4C00007409002034
-S11341782E4D0000024D0000680900204A4D000041
-S1134188624D0000303809288CBF00200120704798
-S1134198A0F16103DBB2192B98BF203870470000E7
-S11341A80346002A03D003F8011B013AFBD17047E8
-S11341B840420F0000201C0080841E00008025005F
-S11341C8999E36000040380000093D0000803E00FA
-S11341D800004B00404B4C0000204E00808D5B00DB
-S11341E800C05D000080700000127A0000007D00AD
-S11341F880969800001BB7000080BB00C0E8CE0082
-S1134208647ADA000024F4000000FA0080A812019D
-S1134218002D310100366E0140787D01433A2F5755
-S11342286F726B2F736F6674776172652F4F706549
-S11342386E424C542F5461726765742F44656D6FD8
-S11342482F41524D434D335F4C4D33535F454B5FC4
-S11342584C4D3353363936355F43726F7373776F0A
-S1134268726B732F426F6F742F6964652F2E2E2F14
-S11342786C69622F6472697665726C69622F7379EE
-S11342887363746C2E63000000E10F4004E10F4077
-S113429808E10F40433A2F576F726B2F736F6674A0
-S11342A8776172652F4F70656E424C542F5461725A
-S11342B86765742F44656D6F2F41524D434D335FCD
-S11342C84C4D33535F454B5F4C4D3353363936357C
-S11342D85F43726F7373776F726B732F426F6F7470
-S11342E82F6964652F2E2E2F6C69622F647269768C
-S11342F865726C69622F6770696F2E6300433A2F89
-S1134308576F726B2F736F6674776172652F4F7076
-S1134318656E424C542F5461726765742F44656D01
-S11343286F2F41524D434D335F4C4D33535F454BD3
-S11343385F4C4D3353363936355F43726F73737739
-S11343486F726B732F426F6F742F6964652F2E2EF3
-S11343582F6C69622F6472697665726C69622F6664
-S11343686C6173686C69622E6300433A2F576F72ED
-S11343786B2F736F6674776172652F4F70656E4229
-S11343884C542F5461726765742F44656D6F2F41C7
-S1134398524D434D335F4C4D33535F454B5F4C4D4A
-S11343A83353363936355F43726F7373776F726B75
-S11343B8732F426F6F742F6964652F2E2E2F6C69CB
-S11343C8622F6472697665726C69622F75617274A2
-S11343D86C69622E6300433A2F576F726B2F736FA9
-S11343E86674776172652F4F70656E424C542F5412
-S11343F861726765742F44656D6F2F41524D434D4B
-S1134408335F4C4D33535F454B5F4C4D3353363913
-S113441836355F43726F7373776F726B732F426FA6
-S11344286F742F6964652F2E2E2F6C69622F647246
-S1134438697665726C69622F7373692E63002F64E1
-S1134448656D6F70726F675F656B5F6C6D33733624
-S11344583936352E73726563002F626F6F746C6F13
-S1134468672E74787400433A2F576F726B2F736FEB
-S11344786674776172652F4F70656E424C542F5481
-S113448861726765742F44656D6F2F41524D434DBA
-S1134498335F4C4D33535F454B5F4C4D3353363983
-S11344A836355F43726F7373776F726B732F426F16
-S11344B86F742F6964652F2E2E2F2E2E2F2E2E2FDC
-S11344C82E2E2F536F757263652F41524D434D3312
-S11344D85F4C4D33532F43726F7373776F726B73E3
-S11344E82F766563746F72732E630000006000009A
-S11344F800200000030000000080000000200000ED
-S11345080400000000A000000020000005000000D6
-S113451800C00000002000000600000000E00000C9
-S11345280020000007000000000001000020000037
-S1134538080000000020010000200000090000001D
-S113454800400100002000000A0000000060010093
-S1134558002000000B000000008001000020000083
-S11345680C00000000A00100002000000D00000065
-S113457800C00100002000000E00000000E001005F
-S1134588002000000F00000000000200008000006E
-S113459810000000008002000080000011000000EC
-S11345A800000300008000001200000000800300E7
-S11345B80080000013000000433A2F576F726B2FDE
-S11345C8736F6674776172652F4F70656E424C54D1
-S11345D82F5461726765742F44656D6F2F41524D76
-S11345E8434D335F4C4D33535F454B5F4C4D335311
-S11345F8363936355F43726F7373776F726B732F07
-S1134608426F6F742F6964652F2E2E2F2E2E2F2E36
-S11346182E2F2E2E2F536F757263652F41524D43E3
-S11346284D335F4C4D33532F756172742E63004FB5
-S113463870656E424C5400222A3A3C3E3F7C7F000F
-S11346482B2C3B3D5B5D00809A90418E418F8045C9
-S113465845454949498E8F9092924F994F555559DE
-S1134668999A9B9C9D9E9F41494F55A5A5A6A7A88D
-S1134678A9AAABAC21AEAFB0B1B2B3B4B5B6B7B8B2
-S1134688B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C816
-S1134698C9CACBCCCDCECFD0D1D2D3D4D5D6D7D806
-S11346A8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8F6
-S11346B8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8E6
-S11346C8F9FAFBFCFDFEFF01030507090E1012149D
-S11346D816181C1E410042004300440045004600D1
-S11346E84700480049004A004B004C004D004E006A
-S11346F84F0050005100520053005400550056001A
-S11347085700580059005A002100E0FFE1FFE5FF77
-S1134718E2FFE3FFC000C100C200C300C400C5003B
-S1134728C600C700C800C900CA00CB00CC00CD0031
-S1134738CE00CF00D000D100D200D300D400D500E1
-S1134748D600D800D900DA00DB00DC00DD00DE008A
-S11347587801000102010401060108010A010C01A3
-S11347680E01100112011401160118011A011C018D
-S11347781E01200122012401260128012A012C01FD
-S11347882E01300132013401360139013B013D016A
-S11347983F0141014301450147014A014C014E01D2
-S11347A8500152015401560158015A015C015E013D
-S11347B8600162016401660168016A016C016E01AD
-S11347C8700172017401760179017B017D01910107
-S11347D89103920393039403950396039703980311
-S11347E899039A039B039C039D039E039F03A003C1
-S11347F8A103A303A403A503A603A703A803A9036A
-S1134808AA0310041104120413041404150416044E
-S11348181704180419041A041B041C041D041E0498
-S11348281F04200421042204230424042504260448
-S11348382704280429042A042B042C042D042E04F8
-S11348482F040104020403040404050406040704F1
-S1134858080409040A040B040C040E040F04602160
-S11348686121622163216421652166216721682110
-S113487869216A216B216C216D216E216F2121FF31
-S113488822FF23FF24FF25FF26FF27FF28FF29FFF8
-S11348982AFF2BFF2CFF2DFF2EFF2FFF30FF31FFA8
-S11348A832FF33FF34FF35FF36FF37FF38FF39FF58
-S11348B83AFF00006100620063006400650066005E
-S11348C86700680069006A006B006C006D006E0088
-S11348D86F00700071007200730074007500760038
-S11348E87700780079007A00A100A200A300A5004F
-S11348F8AC00AF00E000E100E200E300E400E50002
-S1134908E600E700E800E900EA00EB00EC00ED004F
-S1134918EE00EF00F000F100F200F300F400F500FF
-S1134928F600F800F900FA00FB00FC00FD00FE00A8
-S1134938FF00010103010501070109010B010D0134
-S11349480F01110113011501170119011B011D01A3
-S11349581F01210123012501270129012B012D0113
-S11349682F0131013301350137013A013C013E0180
-S1134978400142014401460148014B014D014F01E8
-S1134988510153015501570159015B015D015F0153
-S1134998610163016501670169016B016D016F01C3
-S11349A871017301750177017A017C017E0192011D
-S11349B8B103B203B303B403B503B603B703B8032F
-S11349C8B903BA03BB03BC03BD03BE03BF03C003DF
-S11349D8C103C303C403C503C603C703C803C90388
-S11349E8CA0330043104320433043404350436046D
-S11349F83704380439043A043B043C043D043E04B7
-S1134A083F04400441044204430444044504460466
-S1134A184704480449044A044B044C044D044E0416
-S1134A284F045104520453045404550456045704BF
-S1134A38580459045A045B045C045E045F0470213E
-S1134A4871217221732174217521762177217821AE
-S1134A5879217A217B217C217D217E217F2141FFBF
-S1134A6842FF43FF44FF45FF46FF47FF48FF49FF16
-S1134A784AFF4BFF4CFF4DFF4EFF4FFF50FF51FFC6
-S1134A8852FF53FF54FF55FF56FF57FF58FF59FF76
-S1134A985AFF0000C700FC00E900E200E400E0005F
-S1134AA8E500E700EA00EB00E800EF00EE00EC00A8
-S1134AB8C400C500C900E600C600F400F600F20010
-S1134AC8FB00F900FF00D600DC00A200A300A5004B
-S1134AD8A7209201E100ED00F300FA00F100D100F3
-S1134AE8AA00BA00BF001023AC00BD00BC00A1009E
-S1134AF8AB00BB0091259225932502252425612529
-S1134B086225562555256325512557255D255C25A0
-S1134B185B251025142534252C251C2500253C252A
-S1134B285E255F255A255425692566256025502567
-S1134B386C2567256825642565255925582552253A
-S1134B4853256B256A2518250C25882584258C254D
-S1134B5890258025B103DF009303C003A303C30397
-S1134B68B500C403A6039803A903B4031E22C6030D
-S1134B78B50329226122B10065226422202321235E
-S1134B88F7004822B0001922B7001A227F20B20089
-S1134B98A025A000433A2F576F726B2F736F66746A
-S1134BA8776172652F4F70656E424C542F54617251
-S1134BB86765742F44656D6F2F41524D434D335FC4
-S1134BC84C4D33535F454B5F4C4D33533639363573
-S1134BD85F43726F7373776F726B732F426F6F7467
-S1134BE82F6964652F2E2E2F2E2E2F2E2E2F2E2E2C
-S1134BF82F536F757263652F66696C652E63004663
-S1134C0869726D776172652075706461746520726C
-S1134C186571756573742064657465637465640A85
-S1134C280D004F70656E696E67206669726D7761F5
-S1134C3872652066696C6520666F722072656164AE
-S1134C48696E672E2E2E004F4B0A0D005374617245
-S1134C5874696E67207468652070726F6772616D1D
-S1134C686D696E672073657175656E63650A0D00FD
-S1134C7850617273696E67206669726D77617265D7
-S1134C882066696C6520746F206F627461696E2098
-S1134C9865726173652073697A652E2E2E004572DC
-S1134CA86173696E67200020627974657320667287
-S1134CB86F6D206D656D6F72792061742030780096
-S1134CC852656164696E67206C696E652066726FEF
-S1134CD86D2066696C652E2E2E4552524F520A0D70
-S1134CE800496E76616C696420636865636B7375EB
-S1134CF86D20666F756E642E2E2E4552524F520AE1
-S1134D080D0050726F6772616D6D696E67200020C7
-S1134D18627974657320746F206D656D6F72792084
-S1134D2861742030780057726974696E67207072F4
-S1134D386F6772616D20636865636B73756D2E2E82
-S1134D482E00436C6F73696E67206669726D7761B4
-S1134D5872652066696C650A0D004669726D776133
-S1134D687265207570646174652073756363657317
-S1134D787366756C6C7920636F6D706C65746564AB
-S1064D880A0D000D
-S1044D8C0121
+S11319F830020020340400202DE9F043984603689F
+S1131A0821F4FE77013304460D46164627F00307F2
+S1131A1806D140F8047B39464FF40072FFF772FF91
+S1131A282368BB4205D020463946FFF7BDFF04466C
+S1131A38F0B1236840F2FF19ED1A0435651907F56A
+S1131A48007700F072FA231DEB1A4B4506D920469D
+S1131A583946FFF7A9FF044660B1051D16F8013B96
+S1131A68B8F1010805F8013BEBD10120BDE8F0838A
+S1131A78BDE8F083BDE8F083034A4FF0FF331360F9
+S1131A88024A1360704700BF34040020300200206B
+S1131A9870B504460D461646FFF746FFFF2815D0D5
+S1131AA8601E4019FFF740FFFF280FD024F4FE738F
+S1131AB823F00303B3F5C04F0CBF0548054821467E
+S1131AC832462B46BDE87040FFF796BF002070BD34
+S1131AD830020020340400202DE9F0410E4604466B
+S1131AE8FFF722FF013C0546A019FFF71DFFFF2D54
+S1131AF8074659D0FF285AD0854255D8022D53D9C4
+S1131B08132851D82B4E0024B04600F00EFA98F84A
+S1131B180830AB4204D10C235C43264B1C5906E025
+S1131B280134112C08F10C08EFD14FF0FF34DFF821
+S1131B388480002500F0F9F998F80830BB4205D1F3
+S1131B480C235D431B4B53F8058006E00135112D2A
+S1131B5808F10C08EED14FF0FF38002500F0E5F944
+S1131B68337ABB4205D1134B0C2202FB05356B6853
+S1131B7804E001350C36112DF0D10023C4EB08061E
+S1131B88F618C6F38F26002509E000F0CEF92046A2
+S1131B98FEF7FCFF04F5806430B90135ADB2B542F7
+S1131BA8F3D30120BDE8F0810020BDE8F0810020D6
+S1131BB8BDE8F081E84400000F4B01B51A68013212
+S1131BC817D05A68996846F2F0008918DA688918B3
+S1131BD81A6989185A6989189A698918DA698B18E7
+S1131BE85B4201AA42F8043D04216A46FFF750FF0C
+S1131BF800E0012008BD00BF3002002046F20403C3
+S1131C0818684FF4C0431B68C01846F208031B68E1
+S1131C18C01846F20C031B68C01846F210031B6870
+S1131C28C01846F214031B68C01846F218031B6850
+S1131C38C01846F2F0031B68C018D0F1010038BF81
+S1131C48002070470A4800B50368013302D0FFF743
+S1131C5887FE58B107480368013306D0FFF780FEB2
+S1131C68003018BF01205DF804FB01205DF804FB77
+S1131C783002002034040020FFF7FEBEFFF708BF3F
+S1131C88FFF72ABFFFF7BABF00B5FFF795FF18B1F2
+S1131C985DF804EBFFF7D6BF5DF804FB054B0022A3
+S1131CA84CF24F311A60596005219A601960024B51
+S1131CB81A60704710E000E038060020014B00224B
+S1131CC81A60704710E000E0044B1B68DB0303D57F
+S1131CD8034B1A6801321A60704700BF10E000E035
+S1131CE83806002000B5FFF7EFFF024B18685DF8CF
+S1131CF804FB00BF3806002000B50748FEF700FCC7
+S1131D08FEF7E4FC014605484FF4614260235DF8A0
+S1131D1804EBFFF72FB800BF0100001000C000401B
+S1131D2870B5CDB2402D064603D91848562100F0A7
+S1131D3869F817482946FFF7B1F840B101E000F007
+S1131D48F4F81348FFF782F80028F8D003E00F48A6
+S1131D58592100F057F8002414E000F0E6F8315D4A
+S1131D680B48FFF79BF840B101E000F0DEF80848A3
+S1131D78FFF76CF80028F8D003E00448612100F06C
+S1131D8841F80134A3B2AB42E7D370BDB4450000B7
+S1131D9800C00040F0B5174C064625785DB91648D2
+S1131DA8FFF768F8421C1FD0144B187001232370E6
+S1131DB8134B1D7018E0124D0F482F78FFF75AF88F
+S1131DC8431C13D00D492B78CF19787001330A7846
+S1131DD8DBB29A422B700BD130460131FFF792FDEA
+S1131DE8002323700120F0BD2846F0BD0020F0BD7B
+S1131DF80020F0BD7D06002000C000403C06002005
+S1131E087E060020034B00B51860034B196000F0F0
+S1131E188CF8FCE7800600208406002010B500F04A
+S1131E2881F8012816D001F0F1FF98B10A4C237803
+S1131E38012B0FD1FFF756FF084B1B68323398422A
+S1131E4808D30023237001F0EBFF18B9BDE8104054
+S1131E58FFF744BD10BD00BF880600208C06002093
+S1131E68054B012200B51A70FFF73CFF034B1860BD
+S1131E785DF804EBFFF7D2BF880600208C0600202B
+S1131E8800B500F051F8FFF709FFFFF7F5FE01F080
+S1131E98A7FF00F011F85DF804EBFFF7E1BF00B508
+S1131EA800F043F8FFF710FF01F0CEFF00F01AF836
+S1131EB85DF804EBFFF7B2BF01B5FF238DF80030DE
+S1131EC800238DF8013000F03BF8FFF715FF044BB1
+S1131ED81B78012B02D1684600F050F808BD00BFFA
+S1131EE89006002000B50648FFF754FF012804D1E6
+S1131EF803485DF804EB00F041B85DF804FB00BF4B
+S1131F0891060020704700B5C9B2FFF709FF5DF8D4
+S1131F1804EB00F02BB80000014B01221A70704743
+S1131F289006002000F01AB870477047034BFE2251
+S1131F38DA7002221871A3F844207047D4060020EE
+S1131F48054B00221A709A6483F84320A3F84420AE
+S1131F589A705A70704700BFD4060020024B187854
+S1131F68003018BF01207047D4060020024B00221D
+S1131F7883F84320704700BFD4060020F0B50778E3
+S1131F880546FF2F764C11D101F040FF08B9102007
+S1131F98D1E01021002201232171402162702370B5
+S1131FA8E7706271A171E17122726AE02678012EEC
+S1131FB840F0D580F32F40D011D8CF2F00F0B18056
+S1131FC805D8C92F74D0CC2F40F0B480B0E0D12FFD
+S1131FD800F0A18079D3D22F40F0AC808FE0FA2FA3
+S1131FE844D006D8F52F0CD011D3F62F40F0A28098
+S1131FF81FE0FD2F4BD0FE2F56D0FC2F40F09A80C7
+S113200843E042783F2A63D8201DA16C06E0437858
+S11320183F2B5DD84168A1644278201DFFF772FC0C
+S1132028FF23E3706A78A36CD318A3646B78013335
+S113203837E0FF23E370436845E0FF23E3700023A0
+S1132048A06C69681A4603E01C5C01331219D2B209
+S11320588B42F9D1424BC3F8072001221A7100229E
+S11320685A719A710822A3F8442066E0FF23E370AA
+S11320783C4B0722A364002323716371A371E271AB
+S113208823726372A37208230BE0002053E0FF233A
+S11320986278E37000232371A371E3712372627180
+S11320A80623A4F8443048E00023237063703AE020
+S11320B8421C3F21A06CFFF7E1FD002838D0FF2324
+S11320C8E370A36C3F33A3642FE043783E2B01D91C
+S11320D8222030E0FF23E370A4F84460417819B962
+S11320E8FFF7D2FD48BB23E01D4C821CA06CFFF710
+S11320F8C5FDE8B16A78A36CD318A3641DE0FF2377
+S1132108E3704022002323716371E37123726372C5
+S1132118A2710723C5E7A06C6968FFF7B1FD10B980
+S113212806E0FFF7FFFBFF23E370A4F8446004E034
+S1132138312000E02020FFF7F9FE094C94F84330E1
+S1132148012B02D11020FFF7F1FEB4F84410064821
+S1132158012384F84330BDE8F040FFF7D4BEF0BD56
+S1132168D40600202B460000D706002010B5002313
+S113217802E0CC5CC45401339342FAD110BDC1F3DC
+S113218807238176090C0175090AC37641757047DE
+S1132198002302461846410841EAC010D15C0133C5
+S11321A840180B2B00F0FF00F5D170470369F0B518
+S11321B80D4601F10901002B4FD043690C461F7BE2
+S11321C8002607F0080C9A5D2146202A12D0052A19
+S11321D808BFE522BCF1000F06D0A2F14101C9B243
+S11321E8192901D82032D2B2013604F8012B082E5D
+S11321F82146E8D11A7A202A18D022462E2102F83C
+S1132208011B082607F010079C5D1146202C0DD0F1
+S113221837B1A4F14101C9B2192901D82034E4B273
+S1132228013602F8014B0B2E1146EDD1DA7A2A72E7
+S11322389A7FDC7F120442EA04621C7F22435C7F9B
+S113224842EA04222A605C7E1A7E42EA0422AA80B8
+S1132258DA7D9B7D43EA0223EB8000240C70AE698F
+S113226806B3EB69F3B10369ABB1028C4FF6FF73A4
+S11322789A4215D0C76909E0002101F04BFC60B10E
+S1132288EB69013B9C420AD23055013437F8020B02
+S11322980028F1D104E01C4602E0044600E00024D2
+S11322A800233355F0BD03468A7EC87E032B42EAD9
+S11322B8002005D14A7D0B7D43EA022340EA03400E
+S11322C8704700B580B1036873B11A7862B1D988D0
+S11322D8828891420BD15878FFF7CAF810F00100B0
+S11322E818BF03205DF804FB09205DF804FB0920EE
+S11322F85DF804FB10B504460A46407804F134013D
+S11323080123FFF7BFF880BB94F8323294F83322E4
+S113231843EA0222174B12B29A4228D194F86C204D
+S113232894F86D30120442EA036294F86A301A434E
+S113233894F86B3042EA03220F4B22F07F429A4210
+S113234816D094F8880094F88920000440EA0260C2
+S113235894F88620104394F8872040EA022020F05D
+S11323687F40C01A18BF012010BD032010BD0220F1
+S113237810BD00BF55AAFFFF464154002DE9F041A6
+S1132388D5B202681378303B092B05D854783A2C17
+S113239802D10232026000E0002300220A60002B0E
+S11323A840F05D81BA4B1C68002C00F05B810C6026
+S11323B8237873B16078FFF75BF8C30709D4002D5D
+S11323C800F0538110F0040F0CBF00200A20BDE870
+S11323D8F081002020706070FEF73EFFC10700F115
+S11323E8478115B1420700F1468100212046FFF7D5
+S11323F881FF012817D194F8F631002B00F04181B0
+S113240894F8FC6194F8FD31360446EA036694F8BE
+S1132418FA3120461E4394F8FB3146EA0326314636
+S1132428FFF768FF00E00026032800F02781002852
+S113243840F0278194F8402094F83F3043EA02237F
+S1132448B3F5007F40F01D8194F84B0094F84A30AE
+S113245853EA00200DD194F85A0094F85B30000434
+S113246840EA036094F85830184394F8593040EA25
+S1132478032094F84450E0616B1EDBB2012BE57035
+S113248800F2FF8094F84110A170002900F0F9804F
+S11324984B1E0B4240F0F58094F8453094F84620E2
+S11324A843EA02221307228140F0EB8094F8487033
+S11324B894F8473053EA07230DD194F8563094F82A
+S11324C857701B0443EA076394F854703B4394F829
+S11324D8557043EA072394F843C094F8427057EAC6
+S11324E80C2C00F0CE8005FB00F80CEB12174744C7
+S11324F8BB42C0F0C680DB1BB3FBF1F3002B00F03A
+S1132508C08040F6F5718B4206D94FF6F575AB429B
+S11325188CBF0325022500E00125023306EB0C01DC
+S1132528BF19032DA36126626162E76213D1002AF1
+S113253840F0A78094F8622094F86310120442EAE9
+S1132548016294F860109B000A4394F8611042EA0F
+S11325580122A2620EE0002A00F093804144022D79
+S1132568A16201D15B0005E003225A4303F0010391
+S113257803EB520303F5FE730333B0EB532FC0F0A0
+S113258883804FF0FF3323610023032DE3605AD186
+S1132598637194F8652094F86430607843EA022201
+S11325A8B218626104F134010123FEF76BFF0028BD
+S11325B849D194F8323294F8332243EA0222354B53
+S11325C812B29A423FD194F8362094F83730120464
+S11325D842EA036294F834301A4394F8353042EAF4
+S11325E803222D4B9A422ED194F81A2294F81B32C6
+S11325F8120442EA036294F818321A4394F819321E
+S113260842EA0322254B9A421DD194F8223294F8C7
+S113261823221B0443EA026394F82022134394F808
+S1132628212243EA0223E36094F81E3294F81F221D
+S11326381B0443EA026394F81C22134394F81D22F2
+S113264843EA02232361164A0020138825700133C4
+S11326589BB21380E38020632071BDE8F0810B20D6
+S1132668BDE8F0810C20BDE8F0812846BDE8F08182
+S11326780320BDE8F0810A20BDE8F0810120BDE80F
+S1132688F0810D20BDE8F0810D20BDE8F08100BF88
+S11326982409002055AAFFFF525261417272416118
+S11326A820090020F0B50446007908B3256B04F12D
+S11326B83407607839462A460123FEF727FFB0B964
+S11326C8636A20719D4213D3E2699B189D420FD21D
+S11326D8E67808E0E3696078ED1839462A4601236C
+S11326E8FEF714FF013E012EF4D80020F0BD0120AE
+S11326F8F0BD10B50446FFF7D5FF002851D1237863
+S1132708032B46D16379002B43D0206304F13401B1
+S113271803460B540130B0F5007FFAD1552384F8F1
+S11327283232AA2384F83332522384F8343084F8BA
+S11327383530612384F8363084F81B32236941220A
+S113274884F8372084F81A22C3F3072284F81C3249
+S113275884F81D221A0C1B0E84F81F32E36884F8CF
+S11327681E22C3F30722722084F8203284F821221F
+S11327781A0C1B0E84F8180284F8190284F8222211
+S113278884F82332607801236269FEF7BFFE0023D0
+S11327986371002160780A46FEF70CFF003018BF09
+S11327A8012010BD036B30B5994204460D460ED086
+S11327B8FFF778FF68B9607804F134012A460123E9
+S11327C8FEF760FE08B9256330BD012030BD002046
+S11327D830BD012030BD83690239023B994204D2DD
+S11327E88278C36A02FB01307047002070470129D0
+S11327F8F0B504460D465BD9836999425AD20378E9
+S1132808022B28D0032B36D0012B4ED101EB5106D5
+S1132818416A01EB5621FFF7C5FF002845D1616ADB
+S1132828F305013604EBD35301EB5621204693F804
+S11328383470FFF7B7FF002837D1F60504EBD654F8
+S113284894F83400EA0747EA002001D50009F0BDEE
+S11328580005000DF0BD416A01EB1521FFF7A2FF49
+S113286818BB2D0604EBD55494F8350094F834308D
+S113287843EA0020F0BD416A01EBD511FFF792FF4E
+S113288898B96D0604EBD55494F8360094F83730AB
+S1132898000440EA036094F8343094F8357018431F
+S11328A840EA072020F07040F0BD4FF0FF30F0BD43
+S11328B80120F0BD0120F0BD70B58DB281680446D9
+S11328C80129C58038D003689A69914234D271B914
+S11328D81A78032A01D1996A49B90022E2601A894F
+S11328E8AA4229D99B6A03EB1513236119E09E7840
+S11328F836010DE02068FFF77AFF0146013019D050
+S1132908012919D923689B69994217D2AD1BADB225
+S1132918B542EFD2E1602068FFF75DFF00EB1510C8
+S11329282061236805F00F05343303EB4515656111
+S1132938002070BD012070BD022070BD022070BD52
+S11329480129F0B504460D46164670D983699942A3
+S11329586FD20378022B3AD0032B48D0012B62D1D3
+S113296801EB5107416A01EB5721FFF71BFF0028D0
+S11329785AD1FA05D20D15F00105F3B207D0A11802
+S113298891F8341001F00F0141EA0313DBB2A218E5
+S1132998616A82F8343001370123237101EB57212E
+S11329A82046FFF7FFFE00283ED1FF05FF0D15B1B5
+S11329B8C6F3071607E0E31993F83430C6F3032681
+S11329C823F00F031E43E71987F834602CE0416AAB
+S11329D801EB1521FFF7E6FE30BB2D0604EBD555B8
+S11329E885F83460C6F3072685F835601CE0416A2B
+S11329F801EBD511FFF7D6FEB0B96D0604EBD5553A
+S1132A0895F837301B0603F070431E43C6F30723BB
+S1132A1885F8346085F83530330C360E85F8363051
+S1132A2885F8376000E0022001232371F0BD0220FD
+S1132A38F0BD0220F0BDF0B504460E4631B9C768B2
+S1132A486FB183699F4228BF012709E0FFF7CFFED2
+S1132A58012837D9A369984239D3374600E00127BA
+S1132A683D46A36901359D4202D3012F2CD9022585
+S1132A7820462946FFF7BBFE30B1411C27D0012868
+S1132A8825D0BD42EDD11FE0204629466FF07042A3
+S1132A98FFF756FF80B92EB1204631462A46FFF784
+S1132AA84FFF48B92369E5605A1C0FD0013B2361E5
+S1132AB8012363712846F0BD012814BF01204FF09B
+S1132AC8FF30F0BD0120F0BD0020F0BD2846F0BD68
+S1132AD82DE9F041C68804460136B6B20F46002EE9
+S1132AE865D00369002B62D0320755D1C168013320
+S1132AF80361006819B90389B34258D94CE0837853
+S1132B08013B13EA161347D1FFF771FE0128054666
+S1132B1853D9431C54D0206883699D4236D3002F6F
+S1132B2845D0E168FFF787FF0546002842D0012811
+S1132B3843D0013044D02068FFF7B4FD00283FD1CA
+S1132B4822680346343213540130B0F5007FFAD1B9
+S1132B58276829463846FFF73EFE4FF001083863D8
+S1132B6800270CE083F804802068FFF79BFD002809
+S1132B7829D1236801371A6BFFB201321A6323681B
+S1132B889A78BA42EED81A6BD71B1F63E56020689F
+S1132B982946FFF720FE20612368E680343306F0D7
+S1132BA80F0603EB461666610020BDE8F081042099
+S1132BB8BDE8F0810720BDE8F0810220BDE8F0817E
+S1132BC80120BDE8F0810120BDE8F0812DE9F34F33
+S1132BD8FF26DFF82C81054634464FF6FF77286830
+S1132BE82969FFF7DFFD8346002840F08280D5F885
+S1132BF8149099F800A0BAF1000F78D0BAF1E50F53
+S1132C0899F80B3069D003F03F03180702D50F2B4E
+S1132C1863D101E00F2B4BD1EB69002B5ED01AF086
+S1132C28400F06D0EA8899F80D600AF0BF0A2A8492
+S1132C3801E0A24551D199F80D20B2424DD199F83D
+S1132C4800400D2224F04004013C54434FF0010B92
+S1132C58002212F8081009EB0100407819F8011055
+S1132C6841EA0020BBF1000F11D08DE80C0000F000
+S1132C786FFFFE2C8346019B2FD833F8140000F015
+S1132C8867FF9DE80C00834527D1013401E0B84271
+S1132C9823D101320D2ADCD199F8002051062BD515
+S1132CA8BBF1000F28D033F81430002B24D014E0E3
+S1132CB824B94846FFF76CFA86421AD0AA692F84C9
+S1132CC8D37A13F0010302D007E00B2B11D019F8C3
+S1132CD80300D15C01338842F7D0FF242846002141
+S1132CE8FFF7F6FE834600283FF479AF01E04FF082
+S1132CF8040B5846BDE8FC8F0AF1FF34E4B2EDE753
+S1132D08C34600002DE9F74F0B7806462F2B0C46D7
+S1132D1801D05C2B00D101340025B56023781F2B2A
+S1132D2805D830462946FFF7C7FD756106E12378C3
+S1132D38019401342F2BFAD05C2BF8D0D6F81C90D0
+S1132D4800254F464C46019A6B1C505D02931F2880
+S1132D581AD92F281AD05C2818D0B3F5807F00F030
+S1132D68EA80012100F0D6FE002800F0E4807F28E4
+S1132D7806D8734B13F8012B12B18242FAD1DAE068
+S1132D8824F8020B029DDEE7042400E0002409EB8A
+S1132D98450306E033F8022D202A01D02E2A03D158
+S1132DA8013D002DF6D1C6E00023B06909EB4501C9
+S1132DB829F815302022C25401330B2BFBD14FF0D4
+S1132DC8000801E008F1010837F8022B202AF9D09D
+S1132DD82E2AF7D0B8F1000F01D044F003040B46B3
+S1132DE808E0013D06D14FF0000A4FF0080B5746A2
+S1132DF8544B04E033F8022D2E2AF2D1F3E739F8C4
+S1132E081800002852D0202808F1010803D02E28E1
+S1132E1804D1A84502D044F00304F0E7DA4501D20E
+S1132E28A84512D1BBF10B0F02D144F003043DE0D5
+S1132E38A84502D044F0030438D8BF00FFB2A8461E
+S1132E484FF00B0B4FF0080AD9E77F280BD9002164
+S1132E58009300F05FFE009B10B1181810F8800C66
+S1132E6844F0020460B1384A12F8011B11B18142DE
+S1132E78FAD105E0A0F1410292B2192A04D906E078
+S1132E8844F003045F200BE047F0020708E0A0F1D8
+S1132E98610292B2192A03D8203847F0010780B298
+S1132EA8B26902F80A000AF1010AA8E7B3691A78B4
+S1132EB8E52A01D105221A70BBF1080F01D1BF0020
+S1132EC8FFB207F00C030C2B03D007F00302032A0C
+S1132ED801D144F00204A10709D407F00307012F24
+S1132EE808BF44F01004042B08BF44F00804B36975
+S1132EF83046DC720021FFF7DFFC10B93046FFF7DB
+S1132F0865FEB369DB7A38B1042817D113F0040FCE
+S1132F1814BF0420052011E05A070FD47169CB7A35
+S1132F28DB060AD5019A029BD41833681878FFF790
+S1132F38BAF9B060FBE6062000E00520BDE8FE8F84
+S1132F4833460000434600003C460000F0B5018CBF
+S1132F58C5884FF6FF73994208BF29460446FFF710
+S1132F68ABFC0146B8B9E527012621692068FFF7BB
+S1132F7819FC014660B963691F7023681E71E388F0
+S1132F88AB4208D22046FFF7A3FD01460028ECD047
+S1132F98042908BF02210846F0BD00002DE9F047C6
+S1132FA8FF26044635464FF00409DFF8E8804FF65B
+S1132FB8FF775EE02068FFF7F5FB814600285ED1C5
+S1132FC860690378002B62D0E52BC27A4AD02E2B95
+S1132FD848D002F03F02082A44D00F2A39D15A06B1
+S1132FE805D5E288467B03F0BF03228401E0AB42A7
+S1132FF838D1427BB24235D102780D2102F03F022A
+S1133008013AD4F81CE04A434FF0010C002111F8AE
+S1133018089000EB090595F801A010F8095045EA55
+S11330280A25BCF1000F06D0FE2A1BD82EF8125030
+S1133038AC46013201E0BD4214D101310D29E6D17B
+S11330480178480620D5FE2A0CD800212EF8121043
+S11330581AE01DB9FFF79CF8864212D04FF6FF73A9
+S113306823840EE0FF2520460021FFF731FD814629
+S113307828B9216900299DD1B9F1000F01D0002395
+S113308823614846BDE8F0875D1EEDB2EBE74FF0DB
+S11330980409F4E7C34600000129F0B504460F46C5
+S11330A824D98369994223D217E020463946FFF789
+S11330B89EFB0546B8B1012818D0013014D020462B
+S11330C839460022FFF73CFC98B92369591C02D001
+S11330D80133236166712F4600E00126A3699F42EC
+S11330E8E3D30020F0BDF0BD0120F0BD0220F0BD07
+S11330F80220F0BD73B59EB215460B220446FFF7B5
+S113310835F8052E09D9730843EAC6362B88F6180C
+S113311835F8023FB6B2002BF5D1072306F00F01AC
+S113312801F13002392A88BF01F137020DF8032072
+S1133138013B3609F2D102A9CA187E2102F8081CFB
+S113314800E001369E4202D0A25D202AF9D1072B65
+S113315805D802A9CA1812F8082C013300E0202265
+S1133168A2550136072EF2D97CBD00002DE9F74F90
+S11331788569C7690C22044629466846FEF7F6FFA6
+S11331889DF80B30E846DB0723D50023EB720126B4
+S1133198E361E846284669463A463346FFF7AAFFFC
+S11331A820460021FFF788FB814650B92046FFF7E7
+S11331B80DFD814628B90136642EEBD14FF007097D
+S11331C8A5E0B9F1040F40F0A2809DF80B30EB7232
+S11331D8E7619DF80B309E0704D401260CE0013604
+S11331E8B6B200E0002637F81630002BF7D11936AE
+S11331F80D2396FBF3F6B6B220460021FFF75CFBDD
+S11332088146002840F08380054620682169FFF73D
+S1133218C9FA814600287AD163691B78E52B00D066
+S11332281BB90135B54201D174E005462046012198
+S1133238FFF74EFC81460028E7D068E0E188204685
+S1133248491B89B2FFF738FB814600285FD1A06982
+S1133258FEF79EFF4FF6FF76DFF8D08082463746AA
+S113326820682169FFF79EFA814600284FD16369D7
+S11332780F21EAB2D4F81CE0D97218739876D8767C
+S1133288511E0D20414383F80DA04846B14518BF8F
+S11332983EF8119010F808C018BF0131013003F846
+S11332A80C904FEA192B9C44B9F1000F08BFB146A2
+S11332B80D288CF801B0E9D1B94502D03EF81110B7
+S11332C809B942F040021A70236801221A71204693
+S11332D80021FFF7FDFB8146C8B9013DADB2002DC1
+S11332E8BED11BE061694B464A46CA540133202BC0
+S11332F8FBD10B226069A169FEF738FFA2696369F3
+S1133308D27A02F018021A73236801221A71484605
+S1133318BDE8FE8F013DADB2002D8FD12068216933
+S1133328FFF740FA81460028DCD0F0E7C3460000E6
+S1133338C0B248B9054A136803B1187009B100232B
+S11333480B701160002070470B207047240900207F
+S11333582DE9F0438DB004460091D5B2002800F061
+S11333688D80002305F01F05036005F0FE02684602
+S113337801A9FFF703F88046002840F081800AABD2
+S11333880793444B01A800990893FFF7BBFC069EDA
+S113339818B9002E0CBF0620002015F01C0F42D0CF
+S11333A850B1042802D101A8FFF7E0FE069E0028C8
+S11333B862D145F0080505E0F37A13F0110F67D1DF
+S11333C8680761D4290737D5FEF7EEF9C0F3072358
+S11333D8F373030C0027B0733374000E019B7074ED
+S11333E8F77237777777B777F77718783146FEF734
+S11333F85AFF394681463046FEF7C1FE019801233B
+S11334080371B9F1000F17D04946076BFFF744FE63
+S1133418002831D1019809F1FF33C3603946FFF719
+S1133428C1F948B128E0002826D1F37ADA062DD468
+S1133438A80701D5D9072BD4019F2A073B6B48BF9E
+S113344845F02005E3612662A57138783146FEF718
+S11334582AFF2061B37FF27F1B0443EA0263327FB1
+S11334681343727F276043EA0223E3600023A360C7
+S1133478A361FB88A38003E0804601E04FF00908BC
+S113348840460DB0BDE8F0830820F5E70420F3E7D3
+S11334980720F1E7200700202DE9F34F0093164693
+S11334A8009A0023136004468946FEF70AFF05467E
+S11334B8002840F09D80A3791A0600F19680D80769
+S11334C840F19580A368E268C3EB020804F1240381
+S11334D8464538BFB046019382E0A368DA0567D150
+S11334E8206890F802B00BF1FF3B0BEA532B5FFA0C
+S11334F88BFBBBF1000F0AD10BB9206902E06169AB
+S1133508FFF775F9012809D9411C4AD06061D4F83C
+S113351800A061695046FFF75EF920B9A37963F00A
+S11335287F03A37161E05FEA582700EB0B061FD005
+S11335389AF8023007EB0B029A4288BFCBEB0307D9
+S1133548FBB29AF8010049463246FDF79BFFA3797E
+S113355840BB5A060AD5A3699E1BBE4206D209EB94
+S1133568462001994FF40072FEF700FE7F022DE019
+S1133578A269B2421BD0A3795B060AD501239AF843
+S113358801000199FDF7C2FFA37958B923F040035C
+S1133598A37123680199587832460123FDF772FF15
+S11335A828B1A37963F07F03A371012520E0A66104
+S11335B8A1684846C905C90DC1F50077B84538BFA3
+S11335C84746243161183A46FEF7D0FDA368009AAD
+S11335D8DB19A3601368B944DB191360C7EB080847
+S11335E8B8F1000F7FF479AF02E0022500E0072567
+S11335F82846BDE8FC8F2DE9F34F00931646009A40
+S11336080023136004468946FEF75BFE054600283E
+S113361840F0B480A3791A0648D49B0740F1AD80E2
+S1133628E368DE4204F1240328BF0026019397E0EF
+S1133638A368DA0579D1206890F802A00AF1FF3A64
+S11336480AEA532A5FFA8AFABAF1000F13D133B996
+S1133658216951B9FFF7EFF90146206103E0616977
+S1133668FFF7E9F9014600297DD00129A3791AD089
+S1133678481C53D06161A37959060CD52368019974
+S11336885878A2690123FDF741FFA379002845D1A1
+S113369823F04003A371D4F800B061695846FFF7DA
+S11336A89AF828B9A37963F07F03A371022565E02A
+S11336B8770A00EB0A0821D09BF8023007EB0A02CC
+S11336C89A4288BFCAEB03079BF80100FBB249463C
+S11336D84246FDF71BFF00BBA369C8EB0308B845C6
+S11336E80AD209EB482101984FF40072FEF73EFD17
+S11336F8A37923F04003A3717F0228E0A36943451B
+S113370811D0A268E3689A420DD29BF8010001998E
+S113371842460123FDF7B6FE28B1A37963F07F037F
+S1133728A37101252AE0C4F81880A0684946C00599
+S1133738C00DC0F50077BE4238BF37462430201884
+S11337483A46FEF713FDA37943F04003A371A36837
+S1133758009ADB19A3601368B944DB191360F61BDC
+S1133768002E7FF465AFA368E268934288BFE360E4
+S1133778A37943F02003A37100E007252846BDE898
+S1133788FC8F70B50446FEF79CFD0646002844D11C
+S1133798A379980641D559060DD5214651F8243BFD
+S11337A8A26958780123FDF7B1FE002834D1A37922
+S11337B823F04003A3712068E169FEF7F3FF06468E
+S11337C800282AD1256AEB7A284643F02003EB72B5
+S11337D8E3682B77A3891B0A6B77E389AB77E37BD1
+S11337E8EB772169FEF7CBFCFDF7DEFFC0F3072377
+S11337F8A875EB75030C000E2B766876AE74EE7420
+S1133808A379012223F02003A37123681A71206885
+S1133818BDE87040FEF76DBF0126304670BD10B597
+S11338280446FFF7AEFF00B9206010BD2DE9F04152
+S113383804460F46FEF745FD0546002840F09680ED
+S1133848A279110600F19180E3689F4203D912F02E
+S1133858020F08BF1F460022A368A260002F52D09F
+S1133868206890F802804FEA482873B1013B791E1A
+S1133878B1FBF8F1B3FBF8F2914206D3C8F10002A8
+S11338881340A360FF1A61690AE0216939B9FFF797
+S1133898D2F8012801462ED0421C55D0206161611E
+S11338A8002932D019E0A37920689B0704D5FFF7D3
+S11338B8C2F8014618B913E0FEF799FF01464A1CFD
+S11338C842D0012917D923689B69994213D2A36866
+S11338D861614344A360C8EB07074745E3D800E0A8
+S11338E84746A368DB19A360FB05DE0D73B12068A6
+S11338F8FEF771FF20B9A37963F07F03A37134E065
+S113390800EB572602E03E4600E00E46A368DB05BE
+S113391821D0A26996421ED0A3795B060BD5214615
+S113392851F8243B58780123FDF7F0FDA37960B9D9
+S113393823F04003A371214651F8243B32465878BA
+S11339480123FDF79FFD28B1A37963F07F03A371D9
+S113395801250BE0A661A368E268934206D9E360F7
+S1133968A37943F02003A37100E002252846BDE8AB
+S1133978F081000030B58DB00DAB43F8340D0C4622
+S1133988684601A90022FEF7F9FC054688B90AAB86
+S11339980793094B01A800990893FFF7B3F9054663
+S11339A838B9069B23B101A82146FEF7FFFB00E0C6
+S11339B8062528460DB030BD2007002070B596B006
+S11339C816AB43F8580D01A968460122FEF7D6FC48
+S11339D80546002843D113AB0793264B01A8009949
+S11339E80893FFF78FF90546002838D1069E36B1AB
+S11339F8F37A13F0010F0CBF0025072500E0062514
+S1133A08019B31461878FEF74EFC04463DBBF37A19
+S1133A18DD0627D5012813D90AA801A92422FEF70F
+S1133A28A5FB0AA802210C94FEF746FF0546B0B987
+S1133A380AA8FFF7B3FA054620B1042812D00EE00D
+S1133A4802250CE007250AE02CB101982146FFF76E
+S1133A5823FB054618B90198FEF74BFE0546284690
+S1133A6816B070BD01A8FFF771FA05460028EBD01F
+S1133A78F5E700BF200700202DE9F3410446174667
+S1133A880646002501F1FF3811E001226B4638464D
+S1133A9801A9FFF701FD009B012B0AD19DF8043011
+S1133AA80D2B04D001350A2B06F8013B01D04545FE
+S1133AB8EBDB00239D4208BF1C4633702046BDE85B
+S1133AC8FC8133B5C5B20A2D0C4602D10D20FFF78F
+S1133AD8F8FF02A901F8045D204601226B46FFF7AE
+S1133AE88AFD009801280CBF01204FF0FF303CBD2F
+S1133AF870B506460D46002405E02946FFF7E1FFA8
+S1133B08411C04D00134305D0028F6D100E004469D
+S1133B18204670BD80B27F2815D931B1FF2811D84D
+S1133B28094B803833F810007047084B33F8022FDC
+S1133B38824203D0013189B28029F7D101F1800092
+S1133B48C0B2704700207047904A00008E4A0000B7
+S1133B5880B2064A002300E0013332F8021F21B183
+S1133B688842F9D1024A32F813007047AE4800007F
+S1133B78D046000070B5002506462C46705D00F05E
+S1133B8801FBC0B2A0F13003DBB2162B11D8A0F1AF
+S1133B983A02D2B2062A0CD9092B84BFA0F1370302
+S1133BA8DBB2013503EB0414022D04F0FF0401D049
+S1133BB8E4E70024204670BD30B5C5B228090928B9
+S1133BC80C4601D9373003E0303000F0DBFAC0B2DC
+S1133BD805F00F05092D207001D9373504E005F1EA
+S1133BE8300000F0CFFAC5B200236570A3702046F8
+S1133BF830BD000010B502460B490A2400E01946FE
+S1133C08B2FBF4F24B1C002AF9D14A700A22B0FB29
+S1133C18F2F102FB1100303003F8010D08460029C7
+S1133C28F5D1184610BD00BF280900202DE9F0433E
+S1133C38684D0646287800F0A5FA532840F0AE806F
+S1133C48687800F099FA002800F0AA806B78312B84
+S1133C5800F0AD80322B00F0AC80332B40F09E8016
+S1133C68A9E02846FFF786FF013FBFB207EB090327
+S1133C789BB280440235012B5FFA88F8F1D82846B4
+S1133C88FFF778FF6FEA08085FFA88F8804540F084
+S1133C98898099E04F4DA81CFFF76CFF0446281D46
+S1133CA8FFF768FF0702C5F88071A81DFFF762FFD8
+S1133CB8033C3F18C5F88071A4B246B974E028469D
+S1133CC8FFF758FFF05501370235BFB203E000276C
+S1133CD808350FFA84F84745F1DB65E03D4DA81C2B
+S1133CE8FFF748FF0446281DFFF744FF0704C5F8FB
+S1133CF88071A81DFFF73EFF07EB0027C5F8807108
+S1133D0805F10800FFF736FF043C3F18C5F8807139
+S1133D18A4B246B948E02846FFF72CFFF05501370E
+S1133D280235BFB203E000270A350FFA84F8474585
+S1133D38F1DB39E0274DA81CFFF71CFF0446281DBA
+S1133D48FFF718FF0706C5F88071A81DFFF712FFD3
+S1133D5807EB0047C5F8807105F10800FFF70AFF73
+S1133D6807EB0027C5F8807105F10A00FFF702FF89
+S1133D78053C3F18C5F88071A4B246B914E028463A
+S1133D88FFF7F8FEF05501370235BFB203E000270C
+S1133D980C350FFA84F84745F1DB05E0002403E00D
+S1133DA8044601E04FF6FF7420B2BDE8F083002416
+S1133DB802E0012400E002240748FFF7DBFE0027A5
+S1133DC881468046054D4CE7012C87D0022C7FF4B0
+S1133DD861AFAFE7CC0D0020CE0D0020D00D002040
+S1133DE8074B002000B507491860FFF7A1FA28B16E
+S1133DF805489E215DF804EBFEF704B85DF804FB62
+S1133E086809002074090020904B0000034B1868CF
+S1133E18D0F1010038BF0020704700BF68090020B6
+S1133E2830B5FEF77FF8012808D0064D2C682CB968
+S1133E38FDF7BEFC012803D1286030BD002030BD49
+S1133E48204630BD68090020F0B5924E3468002C35
+S1133E5800F08281012C26D1FDF7C8FC8E48FDF7BD
+S1133E68FBFC8E48FDF7F8FCFDF7BCFC2246014636
+S1133E788B48FFF76DFA054638B18A48FDF7ECFC24
+S1133E882046BDE8F040FDF7DDBC8748FDF7E4FCBB
+S1133E988648FDF7E1FC8648FDF7DEFC854B1D608E
+S1133EA85D600223B3E0022C40F08B80824F83488C
+S1133EB84FF4807107F50D72FFF7DEFD97F93A327A
+S1133EC8002B01DA774898E050B10020FFF7AEFEE6
+S1133ED8421C054604D17348FDF7BEFC03208FE05D
+S1133EE82CB2002C12DD734B744859681A4621B958
+S1133EF8D0F8802183E8140008E0D0F880311068F5
+S1133F082DB28342294438BF136051606A4DD5F8F5
+S1133F183C22D5F840329A4240F01E8105F50D70D6
+S1133F280021FFF783FC68B15E48FDF795FC042087
+S1133F38FDF788FC05F50D70FFF771FC554B002261
+S1133F481A60F0BD5B4C5848FDF786FC5C48FDF7E9
+S1133F5883FC6068FFF74EFE5A48FDF77DFC5A481B
+S1133F68FDF77AFCE0785749FFF726FEA078574911
+S1133F78FFF722FE60785649FFF71EFE5549207860
+S1133F88FFF71AFE4F48FDF767FC5348FDF764FC3A
+S1133F9894E80300FDF774FE3E4C064658B94148C0
+S1133FA8FDF75AFC0520FDF74DFC05F50D70FFF7EC
+S1133FB836FC2660F0BD3C48FDF74EFC0323236025
+S1133FC8F0BD032C40F0C8803B4F3C484FF480714F
+S1133FD807F50D72FFF750FD97F93A32002B04DA12
+S1133FE83E48FDF739FC02200AE090B13C48FFF74F
+S1133FF81DFE431C05460CD13A48FDF72DFC20460E
+S1134008FDF720FC07F50D70FFF709FC002333606A
+S1134018F0BD2DB2002D6EDD3348FDF71DFC28469A
+S1134028264CFFF7E7FD2748FDF716FC2F48FDF758
+S113403813FC94F883012349FFF7BEFD94F8820129
+S11340482249FFF7B9FD94F881012149FFF7B4FD2E
+S1134058204994F88001FFF7AFFD1A48FDF7FCFBEF
+S11340681D48FDF7F9FBD4F8800104F58072294650
+S1134078FDF704FE044600283AD10A48FDF7ECFB94
+S11340880620FDF7DFFB0648FFF7C9FB014B1C6060
+S1134098F0BD00BF68090020FB4B00001E4C000067
+S11340A8A80B0020F64C0000434C0000484C0000CC
+S11340B86C4C00006C09002074090020CC0D002011
+S11340C89A4C000028090020A34C00002A0900206B
+S11340D82C0900202E090020964C0000BC4C00003E
+S11340E8CC0E0020DD4C0000FE4C00000B4D0000FF
+S11340F81A48FDF7B1FB1A4CD4F83C22D4F84032E4
+S11341089A4229D11748FDF7A7FBFDF7BDFD0546DF
+S113411860B91548FDF7A0FB0720FDF793FB04F5EC
+S11341280D70FFF77CFB114B1D60F0BD0B48FDF7CC
+S113413893FB0F48FDF790FB04F50D70FFF76FFB39
+S11341480C48FDF789FB094B00221A60FDF762FB56
+S1134158BDE8F040FDF7C2BBF0BD00BF434C000012
+S113416874090020224D0000F64C00006809002064
+S11341783E4D0000564D0000303809288CBF002001
+S113418801207047A0F16103DBB2192B98BF2038D6
+S1134198704700000346002A03D003F8011B013AC4
+S10741A8FBD170478C
+S11341AC40420F0000201C0080841E00008025006B
+S11341BC999E36000040380000093D0000803E0006
+S11341CC00004B00404B4C0000204E00808D5B00E7
+S11341DC00C05D000080700000127A0000007D00B9
+S11341EC80969800001BB7000080BB00C0E8CE008E
+S11341FC647ADA000024F4000000FA0080A81201AA
+S113420C002D310100366E0140787D01433A2F5761
+S113421C6F726B2F736F6674776172652F4F706555
+S113422C6E424C542F5461726765742F44656D6FE4
+S113423C2F41524D434D335F4C4D33535F454B5FD0
+S113424C4C4D3353363936355F43726F7373776F16
+S113425C726B732F426F6F742F6964652F2E2E2F20
+S113426C6C69622F6472697665726C69622F7379FA
+S113427C7363746C2E63000000E10F4004E10F4083
+S113428C08E10F40433A2F576F726B2F736F6674AC
+S113429C776172652F4F70656E424C542F54617266
+S11342AC6765742F44656D6F2F41524D434D335FD9
+S11342BC4C4D33535F454B5F4C4D33533639363588
+S11342CC5F43726F7373776F726B732F426F6F747C
+S11342DC2F6964652F2E2E2F6C69622F6472697698
+S11342EC65726C69622F6770696F2E6300433A2F95
+S11342FC576F726B2F736F6674776172652F4F7083
+S113430C656E424C542F5461726765742F44656D0D
+S113431C6F2F41524D434D335F4C4D33535F454BDF
+S113432C5F4C4D3353363936355F43726F73737745
+S113433C6F726B732F426F6F742F6964652F2E2EFF
+S113434C2F6C69622F6472697665726C69622F6670
+S113435C6C6173686C69622E6300433A2F576F72F9
+S113436C6B2F736F6674776172652F4F70656E4235
+S113437C4C542F5461726765742F44656D6F2F41D3
+S113438C524D434D335F4C4D33535F454B5F4C4D56
+S113439C3353363936355F43726F7373776F726B81
+S11343AC732F426F6F742F6964652F2E2E2F6C69D7
+S11343BC622F6472697665726C69622F75617274AE
+S11343CC6C69622E6300433A2F576F726B2F736FB5
+S11343DC6674776172652F4F70656E424C542F541E
+S11343EC61726765742F44656D6F2F41524D434D57
+S11343FC335F4C4D33535F454B5F4C4D3353363920
+S113440C36355F43726F7373776F726B732F426FB2
+S113441C6F742F6964652F2E2E2F6C69622F647252
+S113442C697665726C69622F7373692E63002F64ED
+S113443C656D6F70726F675F656B5F6C6D33733630
+S113444C3936352E73726563002F626F6F746C6F1F
+S113445C672E74787400433A2F576F726B2F736FF7
+S113446C6674776172652F4F70656E424C542F548D
+S113447C61726765742F44656D6F2F41524D434DC6
+S113448C335F4C4D33535F454B5F4C4D335336398F
+S113449C36355F43726F7373776F726B732F426F22
+S11344AC6F742F6964652F2E2E2F2E2E2F2E2E2FE8
+S11344BC2E2E2F536F757263652F41524D434D331E
+S11344CC5F4C4D33532F43726F7373776F726B73EF
+S11344DC2F766563746F72732E63000000600000A6
+S11344EC00200000030000000080000000200000F9
+S11344FC0400000000A000000020000005000000E3
+S113450C00C00000002000000600000000E00000D5
+S113451C0020000007000000000001000020000043
+S113452C0800000000200100002000000900000029
+S113453C00400100002000000A000000006001009F
+S113454C002000000B00000000800100002000008F
+S113455C0C00000000A00100002000000D00000071
+S113456C00C00100002000000E00000000E001006B
+S113457C002000000F00000000000200008000007A
+S113458C10000000008002000080000011000000F8
+S113459C00000300008000001200000000800300F3
+S11345AC0080000013000000433A2F576F726B2FEA
+S11345BC736F6674776172652F4F70656E424C54DD
+S11345CC2F5461726765742F44656D6F2F41524D82
+S11345DC434D335F4C4D33535F454B5F4C4D33531D
+S11345EC363936355F43726F7373776F726B732F13
+S11345FC426F6F742F6964652F2E2E2F2E2E2F2E43
+S113460C2E2F2E2E2F536F757263652F41524D43EF
+S113461C4D335F4C4D33532F756172742E63004FC1
+S113462C70656E424C5400222A3A3C3E3F7C7F001B
+S113463C2B2C3B3D5B5D00809A90418E418F8045D5
+S113464C45454949498E8F9092924F994F555559EA
+S113465C999A9B9C9D9E9F41494F55A5A5A6A7A899
+S113466CA9AAABAC21AEAFB0B1B2B3B4B5B6B7B8BE
+S113467CB9BABBBCBDBEBFC0C1C2C3C4C5C6C7C822
+S113468CC9CACBCCCDCECFD0D1D2D3D4D5D6D7D812
+S113469CD9DADBDCDDDEDFE0E1E2E3E4E5E6E7E802
+S11346ACE9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F2
+S11346BCF9FAFBFCFDFEFF01030507090E101214A9
+S11346CC16181C1E410042004300440045004600DD
+S11346DC4700480049004A004B004C004D004E0076
+S11346EC4F00500051005200530054005500560026
+S11346FC5700580059005A002100E0FFE1FFE5FF84
+S113470CE2FFE3FFC000C100C200C300C400C50047
+S113471CC600C700C800C900CA00CB00CC00CD003D
+S113472CCE00CF00D000D100D200D300D400D500ED
+S113473CD600D800D900DA00DB00DC00DD00DE0096
+S113474C7801000102010401060108010A010C01AF
+S113475C0E01100112011401160118011A011C0199
+S113476C1E01200122012401260128012A012C0109
+S113477C2E01300132013401360139013B013D0176
+S113478C3F0141014301450147014A014C014E01DE
+S113479C500152015401560158015A015C015E0149
+S11347AC600162016401660168016A016C016E01B9
+S11347BC700172017401760179017B017D01910113
+S11347CC910392039303940395039603970398031D
+S11347DC99039A039B039C039D039E039F03A003CD
+S11347ECA103A303A403A503A603A703A803A90376
+S11347FCAA0310041104120413041404150416045B
+S113480C1704180419041A041B041C041D041E04A4
+S113481C1F04200421042204230424042504260454
+S113482C2704280429042A042B042C042D042E0404
+S113483C2F040104020403040404050406040704FD
+S113484C080409040A040B040C040E040F0460216C
+S113485C612162216321642165216621672168211C
+S113486C69216A216B216C216D216E216F2121FF3D
+S113487C22FF23FF24FF25FF26FF27FF28FF29FF04
+S113488C2AFF2BFF2CFF2DFF2EFF2FFF30FF31FFB4
+S113489C32FF33FF34FF35FF36FF37FF38FF39FF64
+S11348AC3AFF00006100620063006400650066006A
+S11348BC6700680069006A006B006C006D006E0094
+S11348CC6F00700071007200730074007500760044
+S11348DC7700780079007A00A100A200A300A5005B
+S11348ECAC00AF00E000E100E200E300E400E5000E
+S11348FCE600E700E800E900EA00EB00EC00ED005C
+S113490CEE00EF00F000F100F200F300F400F5000B
+S113491CF600F800F900FA00FB00FC00FD00FE00B4
+S113492CFF00010103010501070109010B010D0140
+S113493C0F01110113011501170119011B011D01AF
+S113494C1F01210123012501270129012B012D011F
+S113495C2F0131013301350137013A013C013E018C
+S113496C400142014401460148014B014D014F01F4
+S113497C510153015501570159015B015D015F015F
+S113498C610163016501670169016B016D016F01CF
+S113499C71017301750177017A017C017E01920129
+S11349ACB103B203B303B403B503B603B703B8033B
+S11349BCB903BA03BB03BC03BD03BE03BF03C003EB
+S11349CCC103C303C403C503C603C703C803C90394
+S11349DCCA03300431043204330434043504360479
+S11349EC3704380439043A043B043C043D043E04C3
+S11349FC3F04400441044204430444044504460473
+S1134A0C4704480449044A044B044C044D044E0422
+S1134A1C4F045104520453045404550456045704CB
+S1134A2C580459045A045B045C045E045F0470214A
+S1134A3C71217221732174217521762177217821BA
+S1134A4C79217A217B217C217D217E217F2141FFCB
+S1134A5C42FF43FF44FF45FF46FF47FF48FF49FF22
+S1134A6C4AFF4BFF4CFF4DFF4EFF4FFF50FF51FFD2
+S1134A7C52FF53FF54FF55FF56FF57FF58FF59FF82
+S1134A8C5AFF0000C700FC00E900E200E400E0006B
+S1134A9CE500E700EA00EB00E800EF00EE00EC00B4
+S1134AACC400C500C900E600C600F400F600F2001C
+S1134ABCFB00F900FF00D600DC00A200A300A50057
+S1134ACCA7209201E100ED00F300FA00F100D100FF
+S1134ADCAA00BA00BF001023AC00BD00BC00A100AA
+S1134AECAB00BB0091259225932502252425612535
+S1134AFC6225562555256325512557255D255C25AD
+S1134B0C5B251025142534252C251C2500253C2536
+S1134B1C5E255F255A255425692566256025502573
+S1134B2C6C25672568256425652559255825522546
+S1134B3C53256B256A2518250C25882584258C2559
+S1134B4C90258025B103DF009303C003A303C303A3
+S1134B5CB500C403A6039803A903B4031E22C60319
+S1134B6CB50329226122B10065226422202321236A
+S1134B7CF7004822B0001922B7001A227F20B20095
+S1134B8CA025A000433A2F576F726B2F736F667476
+S1134B9C776172652F4F70656E424C542F5461725D
+S1134BAC6765742F44656D6F2F41524D434D335FD0
+S1134BBC4C4D33535F454B5F4C4D3353363936357F
+S1134BCC5F43726F7373776F726B732F426F6F7473
+S1134BDC2F6964652F2E2E2F2E2E2F2E2E2F2E2E38
+S1134BEC2F536F757263652F66696C652E6300466F
+S1134BFC69726D7761726520757064617465207279
+S1134C0C6571756573742064657465637465640A91
+S1134C1C0D004F70656E696E67206669726D776101
+S1134C2C72652066696C6520666F722072656164BA
+S1134C3C696E672E2E2E004F4B0A0D005374617251
+S1134C4C74696E67207468652070726F6772616D29
+S1134C5C6D696E672073657175656E63650A0D0009
+S1134C6C50617273696E67206669726D77617265E3
+S1134C7C2066696C6520746F206F627461696E20A4
+S1134C8C65726173652073697A652E2E2E004572E8
+S1134C9C6173696E67200020627974657320667293
+S1134CAC6F6D206D656D6F727920617420307800A2
+S1134CBC52656164696E67206C696E652066726FFB
+S1134CCC6D2066696C652E2E2E4552524F520A0D7C
+S1134CDC00496E76616C696420636865636B7375F7
+S1134CEC6D20666F756E642E2E2E4552524F520AED
+S1134CFC0D0050726F6772616D6D696E67200020D4
+S1134D0C627974657320746F206D656D6F72792090
+S1134D1C61742030780057726974696E6720707200
+S1134D2C6F6772616D20636865636B73756D2E2E8E
+S1134D3C2E00436C6F73696E67206669726D7761C0
+S1134D4C72652066696C650A0D004669726D77613F
+S1134D5C7265207570646174652073756363657323
+S1134D6C7366756C6C7920636F6D706C65746564B7
+S1064D7C0A0D0019
+S1044D80012D
S903017B80
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/boot.dox
new file mode 100644
index 00000000..b6f60250
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S6965_Crossworks Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/config.h
index 63d7da34..72ad507e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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 (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)
@@ -94,10 +105,15 @@
* Set BOOT_FILE_COMPLETED_HOOK_ENABLE to 1 if you would like to be informed when a
* firmware update is completed by the bootloader.
*/
+/** \brief Enable/disable support for firmware updates from a locally attached storage.*/
#define BOOT_FILE_SYS_ENABLE (1)
+/** \brief Enable/disable logging messages during firmware updates. */
#define BOOT_FILE_LOGGING_ENABLE (1)
+/** \brief Enable/disable a hook function that is called upon detection of an error. */
#define BOOT_FILE_ERROR_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the start of the update. */
#define BOOT_FILE_STARTED_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the end of the update. */
#define BOOT_FILE_COMPLETED_HOOK_ENABLE (1)
@@ -112,6 +128,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)
@@ -124,7 +141,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)
@@ -137,6 +156,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
index c99676eb..3355fef1 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -45,11 +47,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)
@@ -57,11 +57,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)
@@ -77,15 +75,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)
@@ -101,12 +97,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)
@@ -114,20 +108,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)
@@ -136,18 +128,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)
@@ -156,11 +147,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)
@@ -175,13 +164,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)
@@ -189,14 +176,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)
@@ -214,6 +199,7 @@ void CopServiceHook(void)
/****************************************************************************************
* Constant data declarations
****************************************************************************************/
+/** \brief Firmware filename. */
static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
@@ -221,22 +207,21 @@ static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
* Local data declarations
****************************************************************************************/
#if (BOOT_FILE_LOGGING_ENABLE > 0)
+/** \brief Data structure for grouping log-file related information. */
static struct
{
- FIL handle;
- blt_bool canUse;
+ FIL handle; /**< FatFS handle to the log-file. */
+ blt_bool canUse; /**< Flag to indicate if the log-file can be used. */
} logfile;
#endif
-/****************************************************************************************
-** NAME: FileIsFirmwareUpdateRequestedHook
-** PARAMETER: none
-** RETURN VALUE: BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
-** DESCRIPTION: Callback that gets called to check whether a firmware update from
-** local file storage should be started. This could for example be when
-** a switch is pressed, when a certain file is found on the local file
-** storage, etc.
+/************************************************************************************//**
+** \brief Callback that gets called to check whether a firmware update from
+** local file storage should be started. This could for example be when
+** a switch is pressed, when a certain file is found on the local file
+** storage, etc.
+** \return BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool FileIsFirmwareUpdateRequestedHook(void)
@@ -264,14 +249,12 @@ blt_bool FileIsFirmwareUpdateRequestedHook(void)
} /*** end of FileIsFirmwareUpdateRequestedHook ***/
-/****************************************************************************************
-** NAME: FileGetFirmwareFilenameHook
-** PARAMETER: none
-** RETURN VALUE: valid firmware filename with full path or BLT_NULL.
-** DESCRIPTION: Callback to obtain the filename of the firmware file that should be
-** used during the firmware update from the local file storage. This
-** hook function is called at the beginning of the firmware update from
-** local storage sequence.
+/************************************************************************************//**
+** \brief Callback to obtain the filename of the firmware file that should be
+** used during the firmware update from the local file storage. This
+** hook function is called at the beginning of the firmware update from
+** local storage sequence.
+** \return valid firmware filename with full path or BLT_NULL.
**
****************************************************************************************/
const blt_char *FileGetFirmwareFilenameHook(void)
@@ -281,12 +264,10 @@ const blt_char *FileGetFirmwareFilenameHook(void)
#if (BOOT_FILE_STARTED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateStartedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update from local storage just started.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update from local storage just started.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateStartedHook(void)
@@ -304,12 +285,10 @@ void FileFirmwareUpdateStartedHook(void)
#if (BOOT_FILE_COMPLETED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateCompletedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update was successfully completed.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update was successfully completed.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateCompletedHook(void)
@@ -330,12 +309,10 @@ void FileFirmwareUpdateCompletedHook(void)
#if (BOOT_FILE_ERROR_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateErrorHook
-** PARAMETER: error_code additional information on the error that occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called in case an error occurred during a firmware
-** update. Refer to for a list of available error codes.
+/************************************************************************************//**
+** \brief Callback that gets called in case an error occurred during a firmware
+** update. Refer to for a list of available error codes.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateErrorHook(blt_int8u error_code)
@@ -352,12 +329,11 @@ void FileFirmwareUpdateErrorHook(blt_int8u error_code)
#if (BOOT_FILE_LOGGING_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateLogHook
-** PARAMETER: info_string pointer to a character array with the log entry info.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called each time new log information becomes
-** available during a firmware update.
+/************************************************************************************//**
+** \brief Callback that gets called each time new log information becomes
+** available during a firmware update.
+** \param info_string Pointer to a character array with the log entry info.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateLogHook(blt_char *info_string)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
index 0fdc12b1..c09b455d 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs
@@ -51,8 +51,8 @@
-
-
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/main.c
index d3ed33e3..84137f81 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -50,12 +52,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)
@@ -77,12 +77,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/bin/demoprog_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/bin/demoprog_ek_lm3s6965.elf
index 64eb1b24..ee7c7d59 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/bin/demoprog_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/bin/demoprog_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.c
index 2caf18da..26043486 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.h
index 6da3f21c..144b7afa 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/header.h
index f14127dc..94f67a3c 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs
index 9f61d715..996a8ac0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs
@@ -51,8 +51,8 @@
-
-
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.c
index 0f469a13..49f2eb3b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.h
index 73e97bc3..881c885e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.c
index 9c854f68..5e1e4e83 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.h
index b5126edb..037f8485 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c
index 871181a4..15f09965 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
@@ -90,16 +88,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/prog.dox
new file mode 100644
index 00000000..e82b6e34
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S6965_Crossworks User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.c
index ef3e5bd2..b66e9ab3 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.h
index a01f7e58..0979b249 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/vectors.c
index 494467ab..300b3d16 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_Crossworks\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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[] =
{
@@ -137,6 +140,6 @@ const tIsrFunc _vectors[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/demo.dox
new file mode 100644
index 00000000..21ee5499
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S6965_Crossworks Demo for Texas Instruments EK-LM3S6965/Crossworks
+\brief Preconfigured programs for the Texas Instruments EK-LM3S6965 and the Crossworks IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin
index 80cfe345..64a7a8eb 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf
index a21289aa..86fa4e74 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map
index 3fc99f45..e88027d0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map
@@ -7,38 +7,38 @@ start address 0x00000000
Program Header:
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15
- filesz 0x00004bdc memsz 0x00004bdc flags r-x
- LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00004bdc align 2**15
+ filesz 0x00004bd8 memsz 0x00004bd8 flags r-x
+ LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00004bd8 align 2**15
filesz 0x00000008 memsz 0x00001154 flags rw-
private flags = 5000000: [Version5 EABI]
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .text 00004bdc 00000000 00000000 00008000 2**2
+ 0 .text 00004bd8 00000000 00000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 1 .data 00000008 20000000 00004bdc 00010000 2**2
+ 1 .data 00000008 20000000 00004bd8 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 2 .bss 0000114c 20000008 00004be4 00010008 2**2
+ 2 .bss 0000114c 20000008 00004be0 00010008 2**2
ALLOC
- 3 .debug_info 0000d7db 00000000 00000000 00010008 2**0
+ 3 .debug_info 0000d7ab 00000000 00000000 00010008 2**0
CONTENTS, READONLY, DEBUGGING
- 4 .debug_abbrev 00002672 00000000 00000000 0001d7e3 2**0
+ 4 .debug_abbrev 00002641 00000000 00000000 0001d7b3 2**0
CONTENTS, READONLY, DEBUGGING
- 5 .debug_loc 0000a73b 00000000 00000000 0001fe55 2**0
+ 5 .debug_loc 0000a773 00000000 00000000 0001fdf4 2**0
CONTENTS, READONLY, DEBUGGING
- 6 .debug_aranges 00000ba0 00000000 00000000 0002a590 2**0
+ 6 .debug_aranges 00000ba0 00000000 00000000 0002a567 2**0
CONTENTS, READONLY, DEBUGGING
- 7 .debug_ranges 00001008 00000000 00000000 0002b130 2**0
+ 7 .debug_ranges 00001008 00000000 00000000 0002b107 2**0
CONTENTS, READONLY, DEBUGGING
- 8 .debug_line 00004145 00000000 00000000 0002c138 2**0
+ 8 .debug_line 0000414b 00000000 00000000 0002c10f 2**0
CONTENTS, READONLY, DEBUGGING
- 9 .debug_str 0000249e 00000000 00000000 0003027d 2**0
+ 9 .debug_str 0000249e 00000000 00000000 0003025a 2**0
CONTENTS, READONLY, DEBUGGING
- 10 .comment 00000030 00000000 00000000 0003271b 2**0
+ 10 .comment 00000030 00000000 00000000 000326f8 2**0
CONTENTS, READONLY
- 11 .ARM.attributes 00000033 00000000 00000000 0003274b 2**0
+ 11 .ARM.attributes 00000033 00000000 00000000 00032728 2**0
CONTENTS, READONLY
- 12 .debug_frame 000023a0 00000000 00000000 00032780 2**2
+ 12 .debug_frame 000023a0 00000000 00000000 0003275c 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .text 00000000 .text
@@ -57,16 +57,16 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 cstart.c
0000011c l F .text 00000000 zero_loop2
-000040a6 l F .text 00000000 zero_loop
+000040a2 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 hooks.c
-0000419c l O .text 0000001b firmwareFilename
+00004198 l O .text 0000001b firmwareFilename
20000008 l O .bss 00000228 logfile
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 flashlib.c
00000000 l df *ABS* 00000000 sysctl.c
000003b0 l F .text 0000027c SysCtlPeripheralValid
-000041e0 l O .text 0000006c g_pulXtals
-00004268 l O .text 0000000c g_pulRCGCRegs
+000041dc l O .text 0000006c g_pulXtals
+00004264 l O .text 0000000c g_pulRCGCRegs
00000000 l df *ABS* 00000000 gpio.c
000009b0 l F .text 000000c8 GPIOBaseValid
00000000 l df *ABS* 00000000 uartlib.c
@@ -89,7 +89,7 @@ SYMBOL TABLE:
20000235 l O .bss 00000040 xcpCtoReqPacket.4367
00000000 l df *ABS* 00000000 xcp.c
0000182c l F .text 00000014 XcpSetCtoError
-000042bb l O .text 00000008 xcpStationId
+000042b7 l O .text 00000008 xcpStationId
20000278 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
200002c4 l O .bss 00000001 backdoorOpen
@@ -131,13 +131,13 @@ SYMBOL TABLE:
000030f4 l F .text 000001dc dir_register
200008fc l O .bss 00000200 LfnBuf
20000afc l O .bss 00000002 Fsid
-0000446e l O .text 00000080 ExCvt
-000044ee l O .text 0000000d LfnOfs
+0000446a l O .text 00000080 ExCvt
+000044ea l O .text 0000000d LfnOfs
20000b00 l O .bss 00000004 FatFs
00000000 l df *ABS* 00000000 unicode.c
-000044fc l O .text 000001e0 tbl_lower.4261
-000046dc l O .text 00000100 Tbl
-000047dc l O .text 000001e0 tbl_upper.4262
+000044f8 l O .text 000001e0 tbl_lower.4261
+000046d8 l O .text 00000100 Tbl
+000047d8 l O .text 000001e0 tbl_upper.4262
00000000 l df *ABS* 00000000 cpu.c
00000000 l df *ABS* 00000000 uart.c
20000b04 l O .bss 00000041 xcpCtoReqPacket.4597
@@ -145,13 +145,13 @@ SYMBOL TABLE:
20000b46 l O .bss 00000001 xcpCtoRxInProgress.4599
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
-20000b48 l O .bss 00000002 millisecond_counter
+20000b48 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
00003d3c l F .text 0000003c FlashGetSector
00003d78 l F .text 00000044 FlashWriteBlock
00003dbc l F .text 0000004c FlashSwitchBlock
-00003e08 l F .text 00000084 FlashAddToBlock
-000049e0 l O .text 000000cc flashLayout
+00003e08 l F .text 00000080 FlashAddToBlock
+000049dc l O .text 000000cc flashLayout
20000b4c l O .bss 00000204 bootBlockInfo
20000d50 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 memset.c
@@ -159,12 +159,12 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__
000017c0 g F .text 0000002c ComInit
-00003ea4 g F .text 00000048 FlashWrite
+00003ea0 g F .text 00000048 FlashWrite
00003a74 g F .text 00000048 f_gets
000020f4 g F .text 00000018 AssertFailure
0000275c g F .text 000000ca get_fat
00000c30 g F .text 00000034 GPIOPinTypeSSI
-00004084 g F .text 00000044 reset_handler
+00004080 g F .text 00000044 reset_handler
00001034 g F .text 00000028 SSIDataGet
00003d10 g F .text 0000001c TimerUpdate
0000186c g F .text 00000010 XcpPacketTransmitted
@@ -176,7 +176,7 @@ SYMBOL TABLE:
00001ab0 g F .text 00000020 BackDoorInit
00000edc g F .text 000000d0 SSIConfigSetExpClk
00001ad2 g F .text 00000002 CopService
-00004bdc g .text 00000000 _etext
+00004bd8 g .text 00000000 _etext
00003b4c g F .text 00000024 ff_wtoupper
00000bd8 g F .text 00000024 GPIOPinWrite
00001dc8 g F .text 0000032c FileTask
@@ -185,7 +185,7 @@ SYMBOL TABLE:
00001204 g F .text 00000224 disk_initialize
00000e64 g F .text 0000002c UARTCharPutNonBlocking
000017a6 g F .text 0000001a BootTask
-00003fbc g F .text 00000040 FlashWriteChecksum
+00003fb8 g F .text 00000040 FlashWriteChecksum
0000180a g F .text 00000010 ComTransmitPacket
00001428 g F .text 00000010 disk_status
00001584 g F .text 000001fc disk_ioctl
@@ -196,11 +196,11 @@ SYMBOL TABLE:
0000185c g F .text 00000010 XcpIsConnected
000039b0 g F .text 000000c4 f_unlink
00003cc0 g F .text 00000004 NvmInit
-00003e8c g F .text 00000018 FlashInit
+00003e88 g F .text 00000018 FlashInit
20000f54 g .bss 00000000 _ebss
00003abc g F .text 00000030 f_putc
00003aec g F .text 00000024 f_puts
-00004078 g F .text 0000000c UnusedISR
+00004074 g F .text 0000000c UnusedISR
00001808 g F .text 00000002 ComFree
00003bbc g F .text 00000028 UartInit
00003cc8 g F .text 00000004 NvmErase
@@ -210,14 +210,14 @@ SYMBOL TABLE:
00003810 g F .text 0000000e f_close
0000187c g F .text 000001f0 XcpPacketReceived
00003450 g F .text 00000168 f_read
-00004044 g F .text 00000034 FlashDone
+00004040 g F .text 00000034 FlashDone
000000f0 g F .text 00000050 EntryFromProg
000002c4 g F .text 000000ec FlashProgram
00001780 g F .text 00000008 get_fattime
00001840 g F .text 0000001c XcpInit
00001d60 g F .text 0000002c FileInit
-00003eec g F .text 000000d0 FlashErase
-000040d0 g F .text 000000cc memset
+00003ee8 g F .text 000000d0 FlashErase
+000040cc g F .text 000000cc memset
000001e8 g F .text 00000014 FileFirmwareUpdateErrorHook
00000248 g F .text 0000002c main
00003764 g F .text 000000ac f_sync
@@ -241,7 +241,7 @@ SYMBOL TABLE:
00003b70 g F .text 00000028 CpuStartUserProgram
00002744 g F .text 00000018 clust2sect
20001154 g .bss 00000000 _estack
-00003ffc g F .text 00000048 FlashVerifyChecksum
+00003ff8 g F .text 00000048 FlashVerifyChecksum
20000008 g .data 00000000 _edata
00001d8c g F .text 00000014 FileIsIdle
000035b8 g F .text 000001ac f_write
@@ -253,7 +253,7 @@ SYMBOL TABLE:
000001fc g F .text 0000004c FileFirmwareUpdateLogHook
20000004 g O .data 00000004 __ctype_ptr__
00001828 g F .text 00000004 ComIsConnected
-00004ad8 g O .text 00000101 _ctype_
+00004ad4 g O .text 00000101 _ctype_
00000154 g F .text 00000034 FileIsFirmwareUpdateRequestedHook
00000e90 g F .text 00000020 UARTBusy
00000a78 g F .text 00000058 GPIODirModeSet
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/boot.dox
new file mode 100644
index 00000000..8f7590f8
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S6965_GCC Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/config.h
index 63d7da34..df79d4ff 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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 (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)
@@ -94,10 +105,15 @@
* Set BOOT_FILE_COMPLETED_HOOK_ENABLE to 1 if you would like to be informed when a
* firmware update is completed by the bootloader.
*/
+/** \brief Enable/disable support for firmware updates from a locally attached storage.*/
#define BOOT_FILE_SYS_ENABLE (1)
+/** \brief Enable/disable logging messages during firmware updates. */
#define BOOT_FILE_LOGGING_ENABLE (1)
+/** \brief Enable/disable a hook function that is called upon detection of an error. */
#define BOOT_FILE_ERROR_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the start of the update. */
#define BOOT_FILE_STARTED_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the end of the update. */
#define BOOT_FILE_COMPLETED_HOOK_ENABLE (1)
@@ -112,6 +128,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)
@@ -124,7 +141,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)
@@ -137,6 +156,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
index c99676eb..9c07d156 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -45,11 +47,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)
@@ -57,11 +57,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)
@@ -77,15 +75,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)
@@ -101,12 +97,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)
@@ -114,20 +108,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)
@@ -136,18 +128,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)
@@ -156,11 +147,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)
@@ -175,13 +164,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)
@@ -189,14 +176,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)
@@ -214,6 +199,7 @@ void CopServiceHook(void)
/****************************************************************************************
* Constant data declarations
****************************************************************************************/
+/** \brief Firmware filename. */
static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
@@ -221,22 +207,21 @@ static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
* Local data declarations
****************************************************************************************/
#if (BOOT_FILE_LOGGING_ENABLE > 0)
+/** \brief Data structure for grouping log-file related information. */
static struct
{
- FIL handle;
- blt_bool canUse;
+ FIL handle; /**< FatFS handle to the log-file. */
+ blt_bool canUse; /**< Flag to indicate if the log-file can be used. */
} logfile;
#endif
-/****************************************************************************************
-** NAME: FileIsFirmwareUpdateRequestedHook
-** PARAMETER: none
-** RETURN VALUE: BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
-** DESCRIPTION: Callback that gets called to check whether a firmware update from
-** local file storage should be started. This could for example be when
-** a switch is pressed, when a certain file is found on the local file
-** storage, etc.
+/************************************************************************************//**
+** \brief Callback that gets called to check whether a firmware update from
+** local file storage should be started. This could for example be when
+** a switch is pressed, when a certain file is found on the local file
+** storage, etc.
+** \return BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool FileIsFirmwareUpdateRequestedHook(void)
@@ -264,14 +249,12 @@ blt_bool FileIsFirmwareUpdateRequestedHook(void)
} /*** end of FileIsFirmwareUpdateRequestedHook ***/
-/****************************************************************************************
-** NAME: FileGetFirmwareFilenameHook
-** PARAMETER: none
-** RETURN VALUE: valid firmware filename with full path or BLT_NULL.
-** DESCRIPTION: Callback to obtain the filename of the firmware file that should be
-** used during the firmware update from the local file storage. This
-** hook function is called at the beginning of the firmware update from
-** local storage sequence.
+/************************************************************************************//**
+** \brief Callback to obtain the filename of the firmware file that should be
+** used during the firmware update from the local file storage. This
+** hook function is called at the beginning of the firmware update from
+** local storage sequence.
+** \return valid firmware filename with full path or BLT_NULL.
**
****************************************************************************************/
const blt_char *FileGetFirmwareFilenameHook(void)
@@ -281,12 +264,10 @@ const blt_char *FileGetFirmwareFilenameHook(void)
#if (BOOT_FILE_STARTED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateStartedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update from local storage just started.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update from local storage just started.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateStartedHook(void)
@@ -304,12 +285,10 @@ void FileFirmwareUpdateStartedHook(void)
#if (BOOT_FILE_COMPLETED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateCompletedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update was successfully completed.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update was successfully completed.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateCompletedHook(void)
@@ -330,12 +309,10 @@ void FileFirmwareUpdateCompletedHook(void)
#if (BOOT_FILE_ERROR_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateErrorHook
-** PARAMETER: error_code additional information on the error that occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called in case an error occurred during a firmware
-** update. Refer to for a list of available error codes.
+/************************************************************************************//**
+** \brief Callback that gets called in case an error occurred during a firmware
+** update. Refer to for a list of available error codes.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateErrorHook(blt_int8u error_code)
@@ -352,12 +329,11 @@ void FileFirmwareUpdateErrorHook(blt_int8u error_code)
#if (BOOT_FILE_LOGGING_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateLogHook
-** PARAMETER: info_string pointer to a character array with the log entry info.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called each time new log information becomes
-** available during a firmware update.
+/************************************************************************************//**
+** \brief Callback that gets called each time new log information becomes
+** available during a firmware update.
+** \param info_string Pointer to a character array with the log entry info.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateLogHook(blt_char *info_string)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/main.c
index fdefe03b..d16922d0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -50,12 +52,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)
@@ -77,12 +77,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)
@@ -91,7 +88,7 @@ static void Init(void)
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
#if (BOOT_COM_UART_ENABLE > 0)
#if (BOOT_COM_UART_CHANNEL_INDEX == 0)
- /* enable the and configure UART0 related peripherals and pins */
+ /* enable and configure UART0 related peripherals and pins */
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
#endif
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf
index 59125de6..715a2dbd 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/bin/demoprog_ek_lm3s6965.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c
index 2caf18da..051c9260 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h
index 6da3f21c..7e34db31 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/cstart.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/cstart.c
index 348255d9..9f830f96 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/cstart.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/cstart.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\cstart.c
+* \brief Demo program C startup source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h
index f14127dc..e19b23c8 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.c
index 0f469a13..0ca348e9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.h
index 73e97bc3..f51fa142 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.c
index 9c854f68..260ffb96 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.h
index b5126edb..c5863367 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c
index 871181a4..6ace8570 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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)
@@ -90,16 +88,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/prog.dox
new file mode 100644
index 00000000..354d3302
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S6965_GCC User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.c
index ef3e5bd2..d249343a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.h
index a01f7e58..c908e44b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/vectors.c
index 6462dc81..0faa41c9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_GCC\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_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 .
+*
+* 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 .
+*
+* \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[] =
{
@@ -137,6 +140,6 @@ const tIsrFunc _vectab[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/demo.dox
new file mode 100644
index 00000000..0aa71c11
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S6965_GCC Demo for Texas Instruments EK-LM3S6965/GCC
+\brief Preconfigured programs for the Texas Instruments EK-LM3S6965 and the GCC compiler.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out
index 3cf9a052..1af4cdce 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec
index f00f9ba2..6300bedb 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec
@@ -1,21 +1,21 @@
S01B00006F70656E62746C5F656B5F6C6D3373363936352E737265632E
-S113000048110020394D0000115B0000115B000015
-S1130010115B0000115B0000115B0000115B00002C
-S1130020115B0000115B0000115B0000115B00001C
-S1130030115B0000115B0000115B0000115B00000C
-S1130040115B0000115B0000115B0000115B0000FC
-S1130050115B0000115B0000115B0000115B0000EC
-S1130060115B0000115B0000115B0000115B0000DC
-S1130070115B0000115B0000115B0000115B0000CC
-S1130080115B0000115B0000115B0000115B0000BC
-S1130090115B0000115B0000115B0000115B0000AC
-S11300A0115B0000115B0000115B0000115B00009C
-S11300B0115B0000115B0000115B0000115B00008C
-S11300C0115B0000115B0000115B0000115B00007C
-S11300D0115B0000115B0000115B0000115B00006C
-S11300E0115B0000115B0000115B0000115B00005C
+S113000050110020314D0000095B0000095B000025
+S1130010095B0000095B0000095B0000095B00004C
+S1130020095B0000095B0000095B0000095B00003C
+S1130030095B0000095B0000095B0000095B00002C
+S1130040095B0000095B0000095B0000095B00001C
+S1130050095B0000095B0000095B0000095B00000C
+S1130060095B0000095B0000095B0000095B0000FC
+S1130070095B0000095B0000095B0000095B0000EC
+S1130080095B0000095B0000095B0000095B0000DC
+S1130090095B0000095B0000095B0000095B0000CC
+S11300A0095B0000095B0000095B0000095B0000BC
+S11300B0095B0000095B0000095B0000095B0000AC
+S11300C0095B0000095B0000095B0000095B00009C
+S11300D0095B0000095B0000095B0000095B00008C
+S11300E0095B0000095B0000095B0000095B00007C
S11300F0044B9D46C046C046C046C04603F00DFFB3
-S113010004F0F2FE4811002003E00B780370491C50
+S113010004F0EEFE5011002003E00B780370491C4C
S1130110401C13005A1E002BF7D1704701E00170F8
S1130120401C13005A1E002BF9D1704710B4002351
S11301301400621E002C06D003780C781B1B491C8B
@@ -345,7 +345,7 @@ S113156020120843E06094F81F0294F81E12090444
S113157051EA006094F81D1250EA012094F81C12FC
S1131580084320612670DFF8D8090088401CDFF882
S1131590D0190880E0800020206300202071002002
-S11315A0F2BD0000E05A000080B500280BD00168AD
+S11315A0F2BD0000D85A000080B500280BD00168B5
S11315B0002908D001680978002904D00168C98885
S11315C08288914201D0092008E00068407800F048
S11315D061FFC00701D5032000E0002002BDC0B2B6
@@ -376,7 +376,7 @@ S113175019D1A57139000098FFF76BF82061F87F63
S1131760B97F090451EA0060797F50EA0120397F8A
S11317700843E0600020A0600020A0610098206081
S11317800098C088A0803000C0B20DB0BDE8F083DE
-S1131790205B0000B0550000505B00002DE9F047CD
+S1131790185B0000A8550000485B00002DE9F047E5
S11317A0050016001F000C00002038602800FFF719
S11317B0FBFEC0B2002801D0C0B2E7E0A879000661
S11317C001D50220E2E0A879C00701D40720DDE0BA
@@ -501,7 +501,7 @@ S1131F20E4B2002C14D100A8FEF742FF0400E4B28E
S1131F30002C0DD1002E04D031000098FEF7D5FA04
S1131F400400E4B2002C03D10098FEF74FF904001A
S1131F502000C0B216B070BD52526141727241612C
-S1131F603C0F00208C0A00202DE9FC4104000F00E6
+S1131F60400F00208C0A00202DE9FC4104000F00E2
S1131F70904600252600FFE7781E854213DA00AB61
S1131F80012201A94046FFF709FC009801280AD163
S1131F909DF80400C0B20D28EED03070761C6D1C84
@@ -654,8 +654,8 @@ S11328B032F8112080B29042F4D111F18000C1B2FB
S11328C0080080B27047002100E0491C0B4A32F82E
S11328D01120002A05D0094A32F8112080B2904212
S11328E0F3D1064A32F81120002A03D0044830F804
-S11328F01100FFE780B27047E45300002450000049
-S113290004520000B0F1402F5BD0DFF8001388427E
+S11328F01100FFE780B27047DC5300001C50000059
+S1132900FC510000B0F1402F5BD0DFF80013884287
S113291057D0DFF8FC12884253D0DFF8F81288420F
S11329204FD0DFF8F41288424BD0DFF8F01288421F
S113293047D0DFF8EC12884243D0DFF8E81288422F
@@ -716,7 +716,7 @@ S1132C90002804D140F2EA610F4800F03BFD022213
S1132CA02900C9B22000FFF791FE08230122290060
S1132CB0C9B22000FFF7C6FE31BD00000000064087
S1132CC00010064000200640003006400040064048
-S1132CD00050064000600640BC570000DFF8C011F9
+S1132CD00050064000600640B4570000DFF8C01101
S1132CE088420BD0DFF8BC11884207D0DFF8B81156
S1132CF0884203D0DFF8B411884201D1012000E0FA
S1132D000020C0B270472DE9F84304000F001500FD
@@ -746,7 +746,7 @@ S1132E70E0688007FCD5A56031BD38B504000D00BD
S1132E802000FFF72BFF002804D140F27F210848DF
S1132E9000F040FCE0684007FCD5A068286031BD24
S1132EA0008000400090004000A0004000B00040BE
-S1132EB018580000DFF81413884200F04A81DFF844
+S1132EB010580000DFF81413884200F04A81DFF84C
S1132EC01013884200F04581DFF80813884200F0AF
S1132ED04081DFF80413884200F03B81DFF8FC12E4
S1132EE0884200F03681DFF8F812884200F0318120
@@ -868,22 +868,22 @@ S113361010D5DFF87C30134013F1004F03D0002A9B
S113362008D4090506D44000C2F38651491CB0FBF6
S1133630F1F00AE0C2F3C551491CB0FBF1F004E01B
S1133640C1F3C351491CB0FBF1F030BC704700001A
-S1133650FC560000055C00F000E60F40385B0000FB
+S1133650F4560000055C00F000E60F40305B00000B
S113366060E00F4058E00F4050E00F4000E00F4092
S11336700000FF7070E00F408FFFFF7F300000807C
-S1133680FCFF3FF80300C007000040403056000034
+S1133680FCFF3FF80300C00700004040285600003C
S11336900008008064E00F40C0E1E4000000011075
S11336A000000310001BB7000024F4007038390038
S11336B0C0C62D0000093D0080B500F00EF8114889
S11336C04CF24F3101601048002101600F48052180
-S11336D001600F480021018001BD0C4800210160F8
-S11336E070470A480068C00304D509480088401C94
-S11336F007490880704780B5FFF7F3FF0448008846
+S11336D001600F480021016001BD0C480021016018
+S11336E070470A480068C00304D509480068401CB4
+S11336F007490860704780B5FFF7F3FF0448006886
S113370002BD000014E000E018E000E010E000E07A
-S11337103E0F002080B5034A10600348016000F0AA
+S11337103C0F002080B5034A10600348016000F0AC
S113372006F8FCE7280F00202C0F00207047704794
S113373080B5DFF8780600210170DFF874160020E8
-S1133740FDF74DFFC0B2002804D09121DFF86406D4
+S1133740FDF74DFFC0B2002804D09E21DFF86406C7
S1133750FFF7E0FF01BDDFF854060078002801D12F
S1133760012000E00020704780B500F0E5FB01284F
S113377001D1002011E0DFF834060078002801D0E0
@@ -963,7 +963,7 @@ S1133C00A41C200000F041F986196D1EA41CADB25D
S1133C10022DF6DAF6B2F643200000F036F9F6B2D9
S1133C20864201D0002000E0012070BD2DE9F04162
S1133C3005000E0014005FF00008002E01D0002DD6
-S1133C4004D14FF415715B48FFF764FD2800FFF7BA
+S1133C4004D14FF416715B48FFF764FD2800FFF7B9
S1133C50AFFF0700FFB2032F01D10020A3E028002B
S1133C60FFF7C5FF002802D15FF0FF309BE0FFB2F1
S1133C70002F03D0022F5AD028D392E0AD1C280085
@@ -985,14 +985,14 @@ S1133D6094F818EB00203060AD1CD6F800802800D1
S1133D7000F08BF810EB08003060AD1CB7F10508BB
S1133D80002C0DD0002606E0280000F07EF8B6B224
S1133D903055AD1C761CB6B20FFA88F84645F3DBF5
-S1133DA0FFE7404600B2BDE8F0810000410F00206B
-S1133DB004000020F4580000A859000080590000B5
-S1133DC038020020585B0000605B0000CC59000002
-S1133DD024590000200F00208C0C00200C0E002021
-S1133DE02C5B0000E00E00205C5A0000E20E002074
-S1133DF0E40E0020E60E0020F05900008C0D002097
-S1133E00145A0000F05A0000B05A0000785A00001A
-S1133E10C85A00005459000080B5010011F00F0089
+S1133DA0FFE7404600B2BDE8F0810000430F002069
+S1133DB004000020EC580000A059000078590000CD
+S1133DC038020020505B0000585B0000C45900001A
+S1133DD01C590000200F00208C0C00200C0E002029
+S1133DE0245B0000E00E0020545A0000E20E002084
+S1133DF0E40E0020E60E0020E85900008C0D00209F
+S1133E000C5A0000E85A0000A85A0000705A00003A
+S1133E10C05A00004C59000080B5010011F00F0099
S1133E203030C9B20A2901DBC01D02E0C0B200F083
S1133E303CF9C0B202BD38B504000D00E4B220095B
S1133E40FFF7EAFF287014F00F00FFF7E5FF687032
@@ -1010,7 +1010,7 @@ S1133EF000F022F901BD80B50E4800F057FB0128FF
S1133F0002D10C4800F018F901BD704780B5C9B260
S1133F1000F022FB00F00AF901BD054801210170FF
S1133F207047034800210170704700003A450000C3
-S1133F30440F0020A00E002080B500F0EEF802BD72
+S1133F30480F0020A00E002080B500F0EEF802BD6E
S1133F4000B589B000A8202100F092FB00A93148F7
S1133F50FDF772FF002808D10098002805D09DF8CD
S1133F600800C00601D4012000E0002009B000BD13
@@ -1024,16 +1024,16 @@ S1133FD00400114890F82402012817D10E4920004A
S1133FE0FEF705F8002811D50B48002180F82412AB
S1133FF00948FDF738FE09E02178094800F034FC4F
S1134000074800F006FC0028FAD0641C2078002839
-S1134010F2D110BD945A00005C040020005B000043
+S1134010F2D110BD8C5A00005C040020F85A000054
S113402000C0004080B500F063FC01BD80B500F025
-S11340306AFC02BD80B500F092FC02BD80B500F0C0
-S1134040EBFC02BD80B500F0A4FC002801D10020E7
-S113405001E000F009FD02BD80B5FFF7EFFF002885
+S11340306AFC02BD80B500F090FC02BD80B500F0C2
+S1134040E9FC02BD80B500F0A2FC002801D10020EB
+S113405001E000F007FD02BD80B5FFF7EFFF002887
S11340600BD0FFF752FFFFF738FB04484FF4C04171
S1134070016046F204000068804701BD08ED00E0DD
S113408070B504000D00160005E0287820706D1C42
S1134090641CFFF74CFB3000461E80B20028F4D1AC
-S11340A070BD80B500F048FE01BD80B500F050FE43
+S11340A070BD80B500F044FE01BD80B500F04CFE4B
S11340B002BD30380A2801D2012000E00020C0B23D
S11340C0704750F8041B61B150F8042BD30744BF68
S11340D0A9F101039A18002342F8043B091FFAD1FD
@@ -1105,14 +1105,14 @@ S11344E0806CFFF7A7FD002803D13120FFF7ABFE56
S11344F006E00A48FF21C17008480121A0F84410D1
S113450001BD10B50400FFF7CCFD0448FF21C170C4
S113451002480121A0F8441010BD0000100E002034
-S1134520130E0020685B0000140E0020170E0020FC
+S1134520130E0020605B0000140E0020170E002004
S113453080B53120FFF787FE01BDFF0080B54548F7
S1134540FEF70CFEFEF788FF60234FF46142010082
S1134550414800F0B6F801BD70B504000D00EDB29D
-S1134560412D03DB57213D48FFF7D4F82800C0B2A2
-S113457000F05CF8012803D05A213848FFF7CAF844
+S1134560412D03DB56213D48FFF7D4F82800C0B2A3
+S113457000F05CF8012803D059213848FFF7CAF845
S113458000260CE0FFF7D3F8B6B2305D00F04EF829
-S1134590012803D062213148FFF7BCF8761C2800BB
+S1134590012803D061213148FFF7BCF8761C2800BC
S11345A0C0B2B6B280B28642ECD370BD10B504007E
S11345B02B48007800280CD12A4800F02AF801285A
S11345C005D12748012101702748002101700020EE
@@ -1124,9 +1124,9 @@ S1134610DEE710B50400104800F011F910F1010FA5
S113462002D02070012000E0002010BD80B5010000
S1134630C9B2094800F018F9002803D1002007E0A6
S1134640FFF775F8044800F0E4F80028F8D00120DA
-S113465002BD00000100001000C00040B858000076
-S1134660430F00205C0E0020420F00205D0E00204E
-S1134670002200F079BB0000DFF83C1288421BD016
+S113465002BD00000100001000C00040B05800007E
+S1134660450F00205C0E0020440F00205D0E00204A
+S1134670002200F075BB0000DFF83C1288421BD01A
S1134680DFF83812884217D0DFF83412884213D08A
S1134690DFF8301288420FD0DFF82C1288420BD09A
S11346A0DFF82812884207D0DFF82412884203D0AA
@@ -1164,303 +1164,302 @@ S1134890002032BD10B504002000FFF7EDFE002813
S11348A004D140F23B510C48FEF734FFA069C0F339
S11348B0C00010F0010010BD00C0004000D0004056
S11348C000E0004000F00040000001400010014002
-S11348D000200140003001405C57000000E00F4020
+S11348D000200140003001405457000000E00F4028
S11348E00000FF700000011000000310FEFCFFFF39
-S11348F0DFF838045FF0FF310160DFF834045FF063
+S11348F0DFF830045FF0FF310160DFF82C045FF073
S1134900FF310160704770B504000D0016002000EF
-S113491000F0A8F9FF2805D02819401E00F0A2F9DC
-S1134920FF2801D1002019E0600A4FF400714843C8
-S1134930DFF800140968884208D12B009BB23200CA
-S11349402100DFF8EC0300F0E2F807E02B009BB253
-S113495032002100DFF8D40300F0D9F870BD70B53F
-S113496004000D00200000F07DF906002819401E07
-S113497000F078F9F6B2FF2E02D0C0B2FF2801D1C0
-S1134980002005E00100C9B23000C0B200F02DF9EA
-S113499070BD80B500200090DFF89403006810F12A
-S11349A0010F01D1012036E00098DFF88413496833
-S11349B0081800900098DFF87813896808180090A8
-S11349C00098DFF86C13C968081800900098DFF8A5
-S11349D060130969081800900098DFF854134969B6
-S11349E0081800900098DFF84813896908180090A7
-S11349F00098DFF83C13C969081800900098C04378
-S1134A0000900098401C009000AA0421C948006846
-S1134A10F030FFF778FF02BD0020C6490968096835
-S1134A200818C449096849680818C24909688968A6
-S1134A300818C0490968C9680818BE49096809699D
-S1134A400818BC49096849690818BA490968896994
-S1134A500818B8490968D1F8F0100818002801D1DD
-S1134A60012000E00020704780B5B148006810F1D3
-S1134A70010F06D0AE4800F08EF8002801D10020C6
-S1134A800CE0AA48006810F1010F06D0A74800F016
-S1134A9082F8002801D1002000E0012002BD80B589
-S1134AA04FF40072B1FBF2F303FB1213002B01D09D
-S1134AB000200BE002688A4201D1012006E0016077
-S1134AC04FF40072001DFFF7DBFA012002BD38B578
-S1134AD004000D009648844208D1944C290020001B
-S1134AE0FFF7DDFF002810D100200FE09148006897
-S1134AF0854203D18E4C8F480568EFE7200000F013
-S1134B004AF80028EAD1002000E0200032BD2DE957
-S1134B10F04104000F0015001E00780A4FF40071E4
-S1134B2001FB00F8206810F1010F07D14146200075
-S1134B30FFF7B5FF002801D100202AE02068404596
-S1134B4008D041462000FFF7C2FF0400002C01D129
-S1134B5000201EE02068381A0019071DFEF7E7FD43
-S1134B60201D381AB0F5007F0AD318F50071200013
-S1134B70FFF7ADFF0400002C01D1002009E0271D40
-S1134B80287838707F1C6D1C761EB6B2002EE5D1D5
-S1134B900120BDE8F081F8B505000124286800F083
-S1134BA061F8C0B2FF2801D100201DE0002600E01A
-S1134BB0761C802E16D2286810EB860715EB86002B
-S1134BC040680090FEF7B3FD0422390000A800F00D
-S1134BD00CF9002801D0002404E0386800998842C8
-S1134BE0E6D000242000C0B2F2BD70B50D00EDB2D5
-S1134BF0C0B2854201D2002033E04E49097AC0B2E6
-S1134C00884205D34B4991F8C810EDB2A94201D2AC
-S1134C10002026E0C0B200F04FF804002800C0B223
-S1134C2000F04AF806002800C0B200F062F88019CB
-S1134C30401E001B401C850A002600E0761CB6B20C
-S1134C40ADB2AE420CD2FEF772FDB6B24FF4806044
-S1134C5000FB064000F0A2F80028EFD0002000E09E
-S1134C60012070BD38B50400002500E06D1CEDB2D4
-S1134C70112D1FD2FEF75BFDEDB20C202D4900FB78
-S1134C80051000688442F1D3EDB20C20294900FBE1
-S1134C9005100068EDB20C21264A01FB0521496884
-S1134CA008188442E2D2EDB20C20224900FB051020
-S1134CB0007A00E0FF2032BD38B50400002500E092
-S1134CC06D1CEDB2112D11D2FEF731FDEDB20C20A9
-S1134CD0184900FB0510007AE4B2A042F0D1EDB20D
-S1134CE00C20144900FB0510006801E05FF0FF3060
-S1134CF032BD38B50400002500E06D1CEDB2112D65
-S1134D0011D2FEF714FDEDB20C200A4900FB051088
-S1134D10007AE4B2A042F0D1EDB20C20054900FBC8
-S1134D200510406800E0002032BD00008406002029
-S1134D3088080020E4540000044B9D46C046C04649
-S1134D40C046C046FFF7EDF800F0CEF84811002049
-S1134D5010B50400200000F0D2F8002801D0203C57
-S1134D60FFE7200010BD000000B500BF1300964609
-S1134D709446103928BFA0E80C50FAD85FEA417C69
-S1134D8028BF0CC048BF40F8042BC90728BF20F82F
-S1134D90022B48BF00F8012B00BD000010B5040031
-S1134DA0A00504D09C21DFF81001FEF7B3FCDFF866
-S1134DB00C0140F601210160DFF804010460DFF812
-S1134DC00401DFF804110160DFF8F80000688007CF
-S1134DD0FAD4DFF8F800006840F60121084202D056
-S1134DE05FF0FF3000E0002010BD70B504000D003E
-S1134DF0160015F0030F04D0DF21DFF8BC00FEF726
-S1134E0089FC16F0030F04D0E021DFF8AC00FEF7B4
-S1134E1081FCDFF8A80042F201610160DFF8B00014
-S1134E200068C00739D5002E39D0E809C001DFF881
-S1134E309010086008E015F07C00DFF898102268F4
-S1134E400A50241D2D1D361F15F07C0F04D1DFF8E8
-S1134E5088000068002801D1002EECD1DFF87C0026
-S1134E60DFF87C100160DFF874000068C007FAD432
-S1134E70D9E7DFF84C000560DFF8680021680160BD
-S1134E80DFF84000DFF858100160DFF838000068F0
-S1134E90C007FAD4241D2D1D361F002EE9D1DFF8DA
-S1134EA02C00006842F20161084202D05FF0FF303A
-S1134EB000E0002070BD00009C56000014D00F409C
-S1134EC000D00F4008D00F40020042A40CD00F4085
-S1134ED0A0E10F4000D10F4030D00F4020D00F4050
-S1134EE0010042A404D00F4000F011F8002801D0C2
-S1134EF000F010F8002000F021F800F039F86138D3
-S1134F001A2801D2012000E00020C0B2704701201D
-S1134F107047000010B5074979441831064C7C44A9
-S1134F20163404E00A68081D511888470146A14256
-S1134F30F8D110BD040B0000240B000080B500F074
-S1134F4005F800F017F800F023F8FCE780B50648F0
-S1134F50FEF77EF90548FEF701F903215FF04020D2
-S1134F60FDF790FE01BD00008003C0010100002098
-S1134F7000F01AB880B5FEF7D9FBFEF79DFBFFF7EA
-S1134F8051F8FEF7D5FBFEF7A5FF00F013F801BDBD
-S1134F9080B5FEF7CCFBFEF7A4FBFEF7FFFBFEF7A4
-S1134FA0AAFF00F012F801BD0746384600F030F8B9
-S1134FB0FBE7000080B5144801210170FEF79BFB5C
-S1134FC01249086000F001F801BD80B5FEF7B4FF96
-S1134FD0012817D0FEF7BFFB002813D00A48007839
-S1134FE001280FD1FEF787FB08490968323188424E
-S1134FF008D3054800210170FEF7B6FB002801D153
-S1135000FFF72AF801BD0000400F0020300F0020F8
-S113501080B5C046C046024A11001820ABBEFBE76B
-S113502026000200610062006300640065006600FF
-S11350306700680069006A006B006C006D006E0018
-S11350406F007000710072007300740075007600C8
-S11350507700780079007A00A100A200A300A500DF
-S1135060AC00AF00E000E100E200E300E400E50092
-S1135070E600E700E800E900EA00EB00EC00ED00E0
-S1135080EE00EF00F000F100F200F300F400F50090
-S1135090F600F800F900FA00FB00FC00FD00FE0039
-S11350A0FF00010103010501070109010B010D01C5
-S11350B00F01110113011501170119011B011D0134
-S11350C01F01210123012501270129012B012D01A4
-S11350D02F0131013301350137013A013C013E0111
-S11350E0400142014401460148014B014D014F0179
-S11350F0510153015501570159015B015D015F01E4
-S1135100610163016501670169016B016D016F0153
-S113511071017301750177017A017C017E019201AD
-S1135120B103B203B303B403B503B603B703B803BF
-S1135130B903BA03BB03BC03BD03BE03BF03C0036F
-S1135140C103C303C403C503C603C703C803C90318
-S1135150CA033004310432043304340435043604FD
-S11351603704380439043A043B043C043D043E0447
-S11351703F044004410442044304440445044604F7
-S11351804704480449044A044B044C044D044E04A7
-S11351904F04510452045304540455045604570450
-S11351A0580459045A045B045C045E045F047021CF
-S11351B0712172217321742175217621772178213F
-S11351C079217A217B217C217D217E217F2141FF50
-S11351D042FF43FF44FF45FF46FF47FF48FF49FFA7
-S11351E04AFF4BFF4CFF4DFF4EFF4FFF50FF51FF57
-S11351F052FF53FF54FF55FF56FF57FF58FF59FF07
-S11352005AFF0000410042004300440045004600AC
-S11352104700480049004A004B004C004D004E0036
-S11352204F005000510052005300540055005600E6
-S11352305700580059005A002100E0FFE1FFE5FF44
-S1135240E2FFE3FFC000C100C200C300C400C50008
-S1135250C600C700C800C900CA00CB00CC00CD00FE
-S1135260CE00CF00D000D100D200D300D400D500AE
-S1135270D600D800D900DA00DB00DC00DD00DE0057
-S11352807801000102010401060108010A010C0170
-S11352900E01100112011401160118011A011C015A
-S11352A01E01200122012401260128012A012C01CA
-S11352B02E01300132013401360139013B013D0137
-S11352C03F0141014301450147014A014C014E019F
-S11352D0500152015401560158015A015C015E010A
-S11352E0600162016401660168016A016C016E017A
-S11352F0700172017401760179017B017D019101D4
-S113530091039203930394039503960397039803DD
-S113531099039A039B039C039D039E039F03A0038D
-S1135320A103A303A403A503A603A703A803A90336
-S1135330AA0310041104120413041404150416041B
-S11353401704180419041A041B041C041D041E0465
-S11353501F04200421042204230424042504260415
-S11353602704280429042A042B042C042D042E04C5
-S11353702F040104020403040404050406040704BE
-S1135380080409040A040B040C040E040F0460212D
-S113539061216221632164216521662167216821DD
-S11353A069216A216B216C216D216E216F2121FFFE
-S11353B022FF23FF24FF25FF26FF27FF28FF29FFC5
-S11353C02AFF2BFF2CFF2DFF2EFF2FFF30FF31FF75
-S11353D032FF33FF34FF35FF36FF37FF38FF39FF25
-S11353E03AFF0000C700FC00E900E200E400E0002E
-S11353F0E500E700EA00EB00E800EF00EE00EC0057
-S1135400C400C500C900E600C600F400F600F200BE
-S1135410FB00F900FF00D600DC00A200A300A500F9
-S1135420A7209201E100ED00F300FA00F100D100A1
-S1135430AA00BA00BF001023AC00BD00BC00A1004C
-S1135440AB00BB00912592259325022524256125D7
-S11354506225562555256325512557255D255C254F
-S11354605B251025142534252C251C2500253C25D9
-S11354705E255F255A255425692566256025502516
-S11354806C256725682564256525592558255225E9
-S113549053256B256A2518250C25882584258C25FC
-S11354A090258025B103DF009303C003A303C30346
-S11354B0B500C403A6039803A903B4031E22C603BC
-S11354C0B50329226122B10065226422202321230D
-S11354D0F7004822B0001922B7001A227F20B20038
-S11354E0A025A000006000000020000003000000D0
-S11354F000800000002000000400000000A0000064
-S1135500002000000500000000C000000020000092
-S11355100600000000E0000000200000070000007A
-S1135520000001000020000008000000002001002D
-S113553000200000090000000040010000200000DD
-S11355400A00000000600100002000000B000000C1
-S113555000800100002000000C00000000A00100F9
-S1135560002000000D00000000C001000020000029
-S11355700E00000000E00100002000000F00000009
-S11355800000020000800000100000000080020003
-S113559000800000110000000000030000800000F3
-S11355A012000000008003000080000013000000CF
-S11355B0809A90418E418F804545454949498E8F57
-S11355C09092924F994F555559999A9B9C9D9E9FA5
-S11355D041494F55A5A5A6A7A8A9AAABAC21AEAF32
-S11355E0B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF3F
-S11355F0C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF2F
-S1135600D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF1E
-S1135610E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF0E
-S1135620F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFFFE
-S113563040420F0000201C0080841E0000802500D2
-S1135640999E36000040380000093D0000803E006D
-S113565000004B00404B4C0000204E00808D5B004E
-S113566000C05D000080700000127A0000007D0020
-S113567080969800001BB7000080BB00C0E8CE00F5
-S1135680647ADA000024F4000000FA0080A8120111
-S1135690002D310100366E0140787D01433A5C579C
-S11356A06F726B5C736F6674776172655C4F706563
-S11356B06E424C545C5461726765745C44656D6FF2
-S11356C05C41524D434D335F4C4D33535F454B5F0B
-S11356D04C4D3353363936355F4941525C426F6F16
-S11356E0745C6C69625C6472697665726C69625C34
-S11356F0666C6173686C69622E630000433A5C57A0
-S11357006F726B5C736F6674776172655C4F706502
-S11357106E424C545C5461726765745C44656D6F91
-S11357205C41524D434D335F4C4D33535F454B5FAA
-S11357304C4D3353363936355F4941525C426F6FB5
-S1135740745C6C69625C6472697665726C69625CD3
-S113575073797363746C2E6300000000433A5C57E2
-S11357606F726B5C736F6674776172655C4F7065A2
-S11357706E424C545C5461726765745C44656D6F31
-S11357805C41524D434D335F4C4D33535F454B5F4A
-S11357904C4D3353363936355F4941525C426F6F55
-S11357A0745C6C69625C6472697665726C69625C73
-S11357B0756172746C69622E63000000433A5C5731
-S11357C06F726B5C736F6674776172655C4F706542
-S11357D06E424C545C5461726765745C44656D6FD1
-S11357E05C41524D434D335F4C4D33535F454B5FEA
-S11357F04C4D3353363936355F4941525C426F6FF5
-S1135800745C6C69625C6472697665726C69625C12
-S11358106770696F2E630000433A5C576F726B5C6C
-S1135820736F6674776172655C4F70656E424C5439
-S11358305C5461726765745C44656D6F5C41524D84
-S1135840434D335F4C4D33535F454B5F4C4D3353A6
-S1135850363936355F4941525C426F6F745C6C690E
-S1135860625C6472697665726C69625C7373692EDA
-S113587063000000433A5C576F726B5C736F66742D
-S1135880776172655C4F70656E424C545C54617212
-S11358906765745C536F757263655C41524D434D2B
-S11358A0335F4C4D33535C4941525C766563746F8E
-S11358B072732E6300000000433A5C576F726B5C96
-S11358C0736F6674776172655C4F70656E424C5499
-S11358D05C5461726765745C536F757263655C4197
-S11358E0524D434D335F4C4D33535C756172742E8E
-S11358F063000000433A5C576F726B5C736F6674AD
-S1135900776172655C4F70656E424C545C54617291
-S11359106765745C536F757263655C66696C652E4C
-S11359206300000050617273696E67206669726D6E
-S1135930776172652066696C6520746F206F62748C
-S113594061696E2065726173652073697A652E2EB4
-S11359502E0000004669726D77617265207570646F
-S1135960617465207375636365737366756C6C79B4
-S113597020636F6D706C657465640A0D000000002F
-S11359804F70656E696E67206669726D77617265C6
-S11359902066696C6520666F722072656164696E49
-S11359A0672E2E2E000000004669726D77617265C5
-S11359B020757064617465207265717565737420F7
-S11359C064657465637465640A0D000053746172E0
-S11359D074696E67207468652070726F6772616D98
-S11359E06D696E672073657175656E63650A0D0078
-S11359F052656164696E67206C696E652066726FBA
-S1135A006D2066696C652E2E2E4552524F520A0D3A
-S1135A1000000000496E76616C6964206368656308
-S1135A206B73756D20666F756E642E2E2E45525203
-S1135A304F520A0D000000008BE6FFFF400F0000EC
-S1135A400400002000000000D3C5FFFF0400000094
-S1135A502001000000000020000000002062797492
-S1135A6065732066726F6D206D656D6F727920614C
-S1135A70742030780000000057726974696E6720E2
-S1135A8070726F6772616D20636865636B73756DA7
-S1135A902E2E2E002F64656D6F70726F675F656BBD
-S1135AA05F6C6D3373363936352E7372656300005F
-S1135AB020627974657320746F206D656D6F7279DF
-S1135AC02061742030780000436C6F73696E672026
-S1135AD06669726D776172652066696C650A0D008E
-S1135AE001030507090E10121416181C1E000000ED
-S1135AF050726F6772616D6D696E672000000000FF
-S1135B002F626F6F746C6F672E74787400000000DE
-S1135B1080B540210148FDF7FDFD01BD745800002A
-S1135B20222A3A3C3E3F7C7F0000000045726173AC
-S1135B30696E67200000000000E10F4004E10F409F
-S1135B4008E10F40C046C046C046C046FFF7CCF946
-S1135B502B2C3B3D5B5D00004552524F520A0D0019
-S1135B604F4B0A0D000000004F70656E424C54000C
-S1075B70010000002C
-S9035B455C
+S113491000F0A5F9FF2805D02819401E00F09FF9E2
+S1134920FF2801D1002017E0600A4FF400714843CA
+S1134930DFF8F8130968884207D12B003200210000
+S1134940DFF8E40300F0E1F806E02B003200210078
+S1134950DFF8D00300F0D9F870BD70B504000D0085
+S1134960200000F07CF906002819401E00F077F9B9
+S1134970F6B2FF2E02D0C0B2FF2801D1002005E01C
+S11349800100C9B23000C0B200F02CF970BD80B58E
+S113499000200090DFF89003006810F1010F01D1AE
+S11349A0012036E00098DFF8801349680818009069
+S11349B00098DFF874138968081800900098DFF8ED
+S11349C06813C968081800900098DFF85C13096937
+S11349D0081800900098DFF85013496908180090EF
+S11349E00098DFF844138969081800900098DFF8EC
+S11349F03813C969081800900098C04300900098C3
+S1134A00401C009000AA0421C8480068F030FFF759
+S1134A107AFF02BD0020C549096809680818C3491E
+S1134A20096849680818C149096889680818BF49AC
+S1134A300968C9680818BD49096809690818BB49A3
+S1134A40096849690818B949096889690818B7499A
+S1134A500968D1F8F0100818002801D1012000E0FD
+S1134A600020704780B5B048006810F1010F06D0EF
+S1134A70AD4800F08DF8002801D100200CE0A948D1
+S1134A80006810F1010F06D0A64800F081F8002854
+S1134A9001D1002000E0012002BD80B54FF4007276
+S1134AA0B1FBF2F303FB1213002B01D000200BE047
+S1134AB002688A4201D1012006E001604FF40072CD
+S1134AC0001DFFF7DDFA012002BD38B504000D001A
+S1134AD09548844208D1934C29002000FFF7DDFF5C
+S1134AE0002810D100200FE090480068854203D1CF
+S1134AF08D4C8E480568EFE7200000F049F8002847
+S1134B00EAD1002000E0200032BD2DE9F04104008C
+S1134B100F0015001E00780A4FF4007101FB00F825
+S1134B20206810F1010F07D141462000FFF7B5FFBF
+S1134B30002801D1002029E02068404508D04146E2
+S1134B402000FFF7C2FF0400002C01D100201DE06B
+S1134B502068381A0019071DFEF7E9FD201D381AD0
+S1134B60B0F5007F0AD318F500712000FFF7ADFF00
+S1134B700400002C01D1002008E0271D287838709B
+S1134B807F1C6D1C761E002EE6D10120BDE8F0814D
+S1134B90F8B505000124286800F061F8C0B2FF28C8
+S1134BA001D100201DE0002600E0761C802E16D2E4
+S1134BB0286810EB860715EB860040680090FEF726
+S1134BC0B6FD0422390000A800F00BF9002801D03A
+S1134BD0002404E0386800998842E6D000242000CC
+S1134BE0C0B2F2BD70B50D00EDB2C0B2854201D2C3
+S1134BF0002033E04D49097AC0B2884205D34B49BD
+S1134C0091F8C810EDB2A94201D2002026E0C0B24A
+S1134C1000F04FF804002800C0B200F04AF8060083
+S1134C202800C0B200F062F88019401E001B401C2E
+S1134C30850A002600E0761CB6B2ADB2AE420CD2B4
+S1134C40FEF775FDB6B24FF4806000FB064000F03D
+S1134C50A1F80028EFD0002000E0012070BD38B595
+S1134C600400002500E06D1CEDB2112D1FD2FEF7EB
+S1134C705EFDEDB20C202D4900FB05100068844256
+S1134C80F1D3EDB20C20294900FB05100068EDB208
+S1134C900C21264A01FB0521496808188442E2D206
+S1134CA0EDB20C20214900FB0510007A00E0FF2042
+S1134CB032BD38B50400002500E06D1CEDB2112DA5
+S1134CC011D2FEF734FDEDB20C20184900FB05109B
+S1134CD0007AE4B2A042F0D1EDB20C20134900FBFB
+S1134CE00510006801E05FF0FF3032BD38B5040004
+S1134CF0002500E06D1CEDB2112D11D2FEF717FD59
+S1134D00EDB20C20094900FB0510007AE4B2A04280
+S1134D10F0D1EDB20C20054900FB0510406800E01D
+S1134D20002032BD8406002088080020DC540000E6
+S1134D30044B9D46C046C046C046C046FFF7F1F846
+S1134D4000F0CEF85011002010B50400200000F04F
+S1134D50D2F8002801D0203CFFE7200010BD00005D
+S1134D6000B500BF130096469446103928BFA0E84A
+S1134D700C50FAD85FEA417C28BF0CC048BF40F809
+S1134D80042BC90728BF20F8022B48BF00F8012BC9
+S1134D9000BD000010B50400A00504D09C21DFF87C
+S1134DA01001FEF7B7FCDFF80C0140F601210160A9
+S1134DB0DFF804010460DFF80401DFF80411016086
+S1134DC0DFF8F80000688007FAD4DFF8F80000681C
+S1134DD040F60121084202D05FF0FF3000E00020DD
+S1134DE010BD70B504000D00160015F0030F04D0BB
+S1134DF0DF21DFF8BC00FEF78DFC16F0030F04D0B2
+S1134E00E021DFF8AC00FEF785FCDFF8A80042F2F1
+S1134E1001610160DFF8B0000068C00739D5002ED9
+S1134E2039D0E809C001DFF89010086008E015F0F7
+S1134E307C00DFF8981022680A50241D2D1D361FAF
+S1134E4015F07C0F04D1DFF888000068002801D138
+S1134E50002EECD1DFF87C00DFF87C100160DFF875
+S1134E6074000068C007FAD4D9E7DFF84C00056085
+S1134E70DFF8680021680160DFF84000DFF85810AF
+S1134E800160DFF838000068C007FAD4241D2D1D26
+S1134E90361F002EE9D1DFF82C00006842F20161D0
+S1134EA0084202D05FF0FF3000E0002070BD000037
+S1134EB09456000014D00F4000D00F4008D00F408B
+S1134EC0020042A40CD00F40A0E10F4000D10F40DB
+S1134ED030D00F4020D00F40010042A404D00F4036
+S1134EE000F011F8002801D000F010F8002000F0C4
+S1134EF021F800F039F861381A2801D2012000E0C5
+S1134F000020C0B2704701207047000010B5074967
+S1134F1079441831064C7C44163404E00A68081DB0
+S1134F20511888470146A142F8D110BD040B000076
+S1134F30240B000080B500F005F800F017F800F02D
+S1134F4023F8FCE780B50648FEF782F90548FEF72A
+S1134F5005F903215FF04020FDF794FE01BD000038
+S1134F608003C0010100002000F01AB880B5FEF7EC
+S1134F70DDFBFEF7A1FBFFF755F8FEF7D9FBFEF7C3
+S1134F80A9FF00F013F801BD80B5FEF7D0FBFEF7D2
+S1134F90A8FBFEF703FCFEF7AEFF00F012F801BD1C
+S1134FA00746384600F030F8FBE7000080B51448A7
+S1134FB001210170FEF79FFB1249086000F001F81F
+S1134FC001BD80B5FEF7B8FF012817D0FEF7C3FB7B
+S1134FD0002813D00A48007801280FD1FEF78BFB74
+S1134FE0084909683231884208D305480021017014
+S1134FF0FEF7BAFB002801D1FFF72EF801BD00002F
+S1135000420F0020300F002080B5C046C046024A3F
+S113501011001820ABBEFBE726000200610062000D
+S113502063006400650066006700680069006A0048
+S11350306B006C006D006E006F00700071007200F8
+S113504073007400750076007700780079007A00A8
+S1135050A100A200A300A500AC00AF00E000E100A5
+S1135060E200E300E400E500E600E700E800E90010
+S1135070EA00EB00EC00ED00EE00EF00F000F100C0
+S1135080F200F300F400F500F600F800F900FA006D
+S1135090FB00FC00FD00FE00FF000101030105010F
+S11350A0070109010B010D010F0111011301150184
+S11350B0170119011B011D011F01210123012501F4
+S11350C0270129012B012D012F0131013301350164
+S11350D037013A013C013E014001420144014601CD
+S11350E048014B014D014F01510153015501570135
+S11350F059015B015D015F016101630165016701A4
+S113510069016B016D016F01710173017501770113
+S11351107A017C017E019201B103B203B303B403AB
+S1135120B503B603B703B803B903BA03BB03BC039F
+S1135130BD03BE03BF03C003C103C303C403C5034C
+S1135140C603C703C803C903CA03300431043204C5
+S113515033043404350436043704380439043A0477
+S11351603B043C043D043E043F0440044104420427
+S113517043044404450446044704480449044A04D7
+S11351804B044C044D044E044F0451045204530484
+S11351905404550456045704580459045A045B042F
+S11351A05C045E045F0470217121722173217421F7
+S11351B0752176217721782179217A217B217C211F
+S11351C07D217E217F2141FF42FF43FF44FF45FFB4
+S11351D046FF47FF48FF49FF4AFF4BFF4CFF4DFF87
+S11351E04EFF4FFF50FF51FF52FF53FF54FF55FF37
+S11351F056FF57FF58FF59FF5AFF00004100420075
+S113520043004400450046004700480049004A0066
+S11352104B004C004D004E004F0050005100520016
+S113522053005400550056005700580059005A00C6
+S11352302100E0FFE1FFE5FFE2FFE3FFC000C10062
+S1135240C200C300C400C500C600C700C800C9002E
+S1135250CA00CB00CC00CD00CE00CF00D000D100DE
+S1135260D200D300D400D500D600D800D900DA008B
+S1135270DB00DC00DD00DE00780100010201040136
+S1135280060108010A010C010E01100112011401AA
+S1135290160118011A011C011E012001220124011A
+S11352A0260128012A012C012E013001320134018A
+S11352B0360139013B013D013F01410143014501F3
+S11352C047014A014C014E0150015201540156015B
+S11352D058015A015C015E016001620164016601CA
+S11352E068016A016C016E0170017201740176013A
+S11352F079017B017D01910191039203930394034E
+S1135300950396039703980399039A039B039C03BD
+S11353109D039E039F03A003A103A303A403A5036A
+S1135320A603A703A803A903AA03100411041204E3
+S113533013041404150416041704180419041A0495
+S11353401B041C041D041E041F0420042104220445
+S113535023042404250426042704280429042A04F5
+S11353602B042C042D042E042F0401040204030432
+S11353700404050406040704080409040A040B04CD
+S11353800C040E040F046021612162216321642155
+S1135390652166216721682169216A216B216C21BD
+S11353A06D216E216F2121FF22FF23FF24FF25FFA2
+S11353B026FF27FF28FF29FF2AFF2BFF2CFF2DFFA5
+S11353C02EFF2FFF30FF31FF32FF33FF34FF35FF55
+S11353D036FF37FF38FF39FF3AFF0000C700FC00F3
+S11353E0E900E200E400E000E500E700EA00EB0089
+S11353F0E800EF00EE00EC00C400C500C900E600C0
+S1135400C600F400F600F200FB00F900FF00D6002D
+S1135410DC00A200A300A500A7209201E100ED009A
+S1135420F300FA00F100D100AA00BA00BF00102373
+S1135430AC00BD00BC00A100AB00BB0091259225CF
+S113544093250225242561256225562555256325A6
+S1135450512557255D255C255B251025142534250C
+S11354602C251C2500253C255E255F255A25542521
+S113547069256625602550256C25672568256425E2
+S1135480652559255825522553256B256A25182548
+S11354900C25882584258C2590258025B103DF00E3
+S11354A09303C003A303C303B500C403A603980373
+S11354B0A903B4031E22C603B50329226122B10045
+S11354C06522642220232123F7004822B0001922F8
+S11354D0B7001A227F20B200A025A00000600000BF
+S11354E000200000030000000080000000200000F5
+S11354F00400000000A000000020000005000000DF
+S113550000C00000002000000600000000E00000D1
+S1135510002000000700000000000100002000003F
+S11355200800000000200100002000000900000025
+S113553000400100002000000A000000006001009B
+S1135540002000000B00000000800100002000008B
+S11355500C00000000A00100002000000D0000006D
+S113556000C00100002000000E00000000E0010067
+S1135570002000000F000000000002000080000076
+S113558010000000008002000080000011000000F4
+S113559000000300008000001200000000800300EF
+S11355A00080000013000000809A90418E418F809B
+S11355B04545454949498E8F9092924F994F55558B
+S11355C059999A9B9C9D9E9F41494F55A5A5A6A775
+S11355D0A8A9AAABAC21AEAFB0B1B2B3B4B5B6B75B
+S11355E0B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7BF
+S11355F0C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7AF
+S1135600D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E79E
+S1135610E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F78E
+S1135620F8F9FAFBFCFDFEFF40420F0000201C00CD
+S113563080841E0000802500999E360000403800BA
+S113564000093D0000803E0000004B00404B4C0030
+S113565000204E00808D5B0000C05D000080700063
+S113566000127A0000007D0080969800001BB700AD
+S11356700080BB00C0E8CE00647ADA000024F400A5
+S11356800000FA0080A81201002D310100366E01DD
+S113569040787D01433A5C576F726B5C736F66743C
+S11356A0776172655C4F70656E424C545C546172F4
+S11356B06765745C44656D6F5C41524D434D335F67
+S11356C04C4D33535F454B5F4C4D33533639363570
+S11356D05F4941525C426F6F745C6C69625C6472D6
+S11356E0697665726C69625C666C6173686C696228
+S11356F02E630000433A5C576F726B5C736F667481
+S1135700776172655C4F70656E424C545C54617293
+S11357106765745C44656D6F5C41524D434D335F06
+S11357204C4D33535F454B5F4C4D3353363936350F
+S11357305F4941525C426F6F745C6C69625C647275
+S1135740697665726C69625C73797363746C2E63D9
+S113575000000000433A5C576F726B5C736F6674B1
+S1135760776172655C4F70656E424C545C54617233
+S11357706765745C44656D6F5C41524D434D335FA6
+S11357804C4D33535F454B5F4C4D335336393635AF
+S11357905F4941525C426F6F745C6C69625C647215
+S11357A0697665726C69625C756172746C69622E8B
+S11357B063000000433A5C576F726B5C736F6674EE
+S11357C0776172655C4F70656E424C545C546172D3
+S11357D06765745C44656D6F5C41524D434D335F46
+S11357E04C4D33535F454B5F4C4D3353363936354F
+S11357F05F4941525C426F6F745C6C69625C6472B5
+S1135800697665726C69625C6770696F2E6300000B
+S1135810433A5C576F726B5C736F66747761726541
+S11358205C4F70656E424C545C5461726765745C85
+S113583044656D6F5C41524D434D335F4C4D335362
+S11358405F454B5F4C4D3353363936355F494152D2
+S11358505C426F6F745C6C69625C647269766572D9
+S11358606C69625C7373692E63000000433A5C5791
+S11358706F726B5C736F6674776172655C4F706591
+S11358806E424C545C5461726765745C536F7572FC
+S113589063655C41524D434D335F4C4D33535C491A
+S11358A041525C766563746F72732E63000000006E
+S11358B0433A5C576F726B5C736F667477617265A1
+S11358C05C4F70656E424C545C5461726765745CE5
+S11358D0536F757263655C41524D434D335F4C4D5C
+S11358E033535C756172742E63000000433A5C5755
+S11358F06F726B5C736F6674776172655C4F706511
+S11359006E424C545C5461726765745C536F75727B
+S113591063655C66696C652E630000005061727398
+S1135920696E67206669726D776172652066696C5D
+S11359306520746F206F627461696E206572617393
+S1135940652073697A652E2E2E0000004669726DFB
+S11359507761726520757064617465207375636323
+S113596065737366756C6C7920636F6D706C6574A8
+S113597065640A0D000000004F70656E696E672053
+S11359806669726D776172652066696C6520666F01
+S1135990722072656164696E672E2E2E000000000D
+S11359A04669726D776172652075706461746520F3
+S11359B07265717565737420646574656374656478
+S11359C00A0D00005374617274696E67207468650F
+S11359D02070726F6772616D6D696E672073657197
+S11359E075656E63650A0D0052656164696E6720B2
+S11359F06C696E652066726F6D2066696C652E2E0B
+S1135A002E4552524F520A0D00000000496E766135
+S1135A106C696420636865636B73756D20666F756C
+S1135A206E642E2E2E4552524F520A0D0000000075
+S1135A3093E6FFFF440F0000040000200000000074
+S1135A40DBC5FFFF0400000020010000000000206F
+S1135A50000000002062797465732066726F6D2007
+S1135A606D656D6F727920617420307800000000DC
+S1135A7057726974696E672070726F6772616D2006
+S1135A80636865636B73756D2E2E2E002F64656DD0
+S1135A906F70726F675F656B5F6C6D337336393629
+S1135AA0352E737265630000206279746573207407
+S1135AB06F206D656D6F72792061742030780000FD
+S1135AC0436C6F73696E67206669726D7761726586
+S1135AD02066696C650A0D0001030507090E1012A2
+S1135AE01416181C1E00000050726F6772616D6DF1
+S1135AF0696E6720000000002F626F6F746C6F671F
+S1135B002E7478740000000080B541210148FDF72F
+S1135B1001FE01BD6C580000222A3A3C3E3F7C7FC6
+S1135B200000000045726173696E67200000000088
+S1135B3000E10F4004E10F4008E10F40C046C046B9
+S1135B40C046C046FFF7CCF92B2C3B3D5B5D000003
+S1135B504552524F520A0D004F4B0A0D00000000EF
+S10F5B604F70656E424C540001000000C0
+S9035B3D64
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/boot.dox
new file mode 100644
index 00000000..cf74c307
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S6965_IAR Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/config.h
index 3aeb7e63..6edfd9fe 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@@ -46,10 +48,15 @@
* 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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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)
+/** \brief Compiler specific variable prefix to prevent its initialization during startup. */
#define BOOT_CPU_CONNECT_STATE_PREFIX __no_init
@@ -64,10 +71,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)
@@ -95,10 +107,15 @@
* Set BOOT_FILE_COMPLETED_HOOK_ENABLE to 1 if you would like to be informed when a
* firmware update is completed by the bootloader.
*/
+/** \brief Enable/disable support for firmware updates from a locally attached storage.*/
#define BOOT_FILE_SYS_ENABLE (1)
+/** \brief Enable/disable logging messages during firmware updates. */
#define BOOT_FILE_LOGGING_ENABLE (1)
+/** \brief Enable/disable a hook function that is called upon detection of an error. */
#define BOOT_FILE_ERROR_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the start of the update. */
#define BOOT_FILE_STARTED_HOOK_ENABLE (1)
+/** \brief Enable/disable a hook function that is called at the end of the update. */
#define BOOT_FILE_COMPLETED_HOOK_ENABLE (1)
@@ -113,6 +130,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)
@@ -125,7 +143,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)
@@ -138,6 +158,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
index c99676eb..85f20ad6 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -45,11 +47,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)
@@ -57,11 +57,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)
@@ -77,15 +75,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)
@@ -101,12 +97,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)
@@ -114,20 +108,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)
@@ -136,18 +128,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)
@@ -156,11 +147,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)
@@ -175,13 +164,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)
@@ -189,14 +176,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)
@@ -214,6 +199,7 @@ void CopServiceHook(void)
/****************************************************************************************
* Constant data declarations
****************************************************************************************/
+/** \brief Firmware filename. */
static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
@@ -221,22 +207,21 @@ static const blt_char firmwareFilename[] = "/demoprog_ek_lm3s6965.srec";
* Local data declarations
****************************************************************************************/
#if (BOOT_FILE_LOGGING_ENABLE > 0)
+/** \brief Data structure for grouping log-file related information. */
static struct
{
- FIL handle;
- blt_bool canUse;
+ FIL handle; /**< FatFS handle to the log-file. */
+ blt_bool canUse; /**< Flag to indicate if the log-file can be used. */
} logfile;
#endif
-/****************************************************************************************
-** NAME: FileIsFirmwareUpdateRequestedHook
-** PARAMETER: none
-** RETURN VALUE: BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
-** DESCRIPTION: Callback that gets called to check whether a firmware update from
-** local file storage should be started. This could for example be when
-** a switch is pressed, when a certain file is found on the local file
-** storage, etc.
+/************************************************************************************//**
+** \brief Callback that gets called to check whether a firmware update from
+** local file storage should be started. This could for example be when
+** a switch is pressed, when a certain file is found on the local file
+** storage, etc.
+** \return BLT_TRUE if a firmware update is requested, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool FileIsFirmwareUpdateRequestedHook(void)
@@ -264,14 +249,12 @@ blt_bool FileIsFirmwareUpdateRequestedHook(void)
} /*** end of FileIsFirmwareUpdateRequestedHook ***/
-/****************************************************************************************
-** NAME: FileGetFirmwareFilenameHook
-** PARAMETER: none
-** RETURN VALUE: valid firmware filename with full path or BLT_NULL.
-** DESCRIPTION: Callback to obtain the filename of the firmware file that should be
-** used during the firmware update from the local file storage. This
-** hook function is called at the beginning of the firmware update from
-** local storage sequence.
+/************************************************************************************//**
+** \brief Callback to obtain the filename of the firmware file that should be
+** used during the firmware update from the local file storage. This
+** hook function is called at the beginning of the firmware update from
+** local storage sequence.
+** \return valid firmware filename with full path or BLT_NULL.
**
****************************************************************************************/
const blt_char *FileGetFirmwareFilenameHook(void)
@@ -281,12 +264,10 @@ const blt_char *FileGetFirmwareFilenameHook(void)
#if (BOOT_FILE_STARTED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateStartedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update from local storage just started.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update from local storage just started.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateStartedHook(void)
@@ -304,12 +285,10 @@ void FileFirmwareUpdateStartedHook(void)
#if (BOOT_FILE_COMPLETED_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateCompletedHook
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called to inform the application that a firmware
-** update was successfully completed.
+/************************************************************************************//**
+** \brief Callback that gets called to inform the application that a firmware
+** update was successfully completed.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateCompletedHook(void)
@@ -330,12 +309,10 @@ void FileFirmwareUpdateCompletedHook(void)
#if (BOOT_FILE_ERROR_HOOK_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateErrorHook
-** PARAMETER: error_code additional information on the error that occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called in case an error occurred during a firmware
-** update. Refer to for a list of available error codes.
+/************************************************************************************//**
+** \brief Callback that gets called in case an error occurred during a firmware
+** update. Refer to for a list of available error codes.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateErrorHook(blt_int8u error_code)
@@ -352,12 +329,11 @@ void FileFirmwareUpdateErrorHook(blt_int8u error_code)
#if (BOOT_FILE_LOGGING_ENABLE > 0)
-/****************************************************************************************
-** NAME: FileFirmwareUpdateLogHook
-** PARAMETER: info_string pointer to a character array with the log entry info.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called each time new log information becomes
-** available during a firmware update.
+/************************************************************************************//**
+** \brief Callback that gets called each time new log information becomes
+** available during a firmware update.
+** \param info_string Pointer to a character array with the log entry info.
+** \return none.
**
****************************************************************************************/
void FileFirmwareUpdateLogHook(blt_char *info_string)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
index 21955238..99105fb6 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep
@@ -72,13 +72,13 @@
$PROJ_DIR$\..\obj\file.lst
$PROJ_DIR$\..\obj\ssi.lst
$PROJ_DIR$\..\obj\filesys.o
- $PROJ_DIR$\..\obj\filesys.lst
- $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
- $PROJ_DIR$\..\obj\led.pbi
$PROJ_DIR$\..\obj\unicode.lst
- $PROJ_DIR$\..\obj\led.lst
$PROJ_DIR$\..\..\..\..\Source\filesys.c
+ $PROJ_DIR$\..\obj\led.lst
+ $PROJ_DIR$\..\obj\led.pbi
$PROJ_DIR$\..\..\..\..\Source\filesys.h
+ $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c
+ $PROJ_DIR$\..\obj\filesys.lst
$PROJ_DIR$\..\obj\unicode.pbi
$PROJ_DIR$\..\obj\unicode.o
$TOOLKIT_DIR$\inc\c\ctype.h
@@ -119,8 +119,8 @@
$PROJ_DIR$\..\obj\assert.o
$PROJ_DIR$\..\obj\hooks.o
$PROJ_DIR$\..\obj\com.o
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\flash.lst
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\backdoor.lst
$PROJ_DIR$\..\obj\cpu.lst
$PROJ_DIR$\..\obj\hooks.pbi
@@ -200,6 +200,10 @@
+
+ BICOMP
+ 0
+
ICCARM
0
@@ -334,10 +338,6 @@
-
- BICOMP
- 20 21 24 25 26 3 53 41 49 27 60 34 57 38 36 40 51 59 45 47 16 55 62 8 15 13
-
ICCARM
20 21 24 25 26 3 53 41 49 27 60 34 57 38 36 40 51 59 45 47 16 55 62 8 15 13
@@ -509,7 +509,7 @@
ICCARM
- 114 137
+ 113 137
@@ -601,17 +601,17 @@
ICCARM
- 69 74
+ 66 74
BICOMP
- 45 47 16 67
+ 45 47 16 71
ICCARM
- 45 47 16 67
+ 45 47 16 71
@@ -785,17 +785,17 @@
ICCARM
- 66 65
+ 72 65
BICOMP
- 53 41 49 27 60 34 57 38 36 40 51 72 45 47 132 55 62
+ 53 41 49 27 60 34 57 38 36 40 51 70 45 47 132 55 62
ICCARM
- 53 41 49 27 60 34 57 38 36 40 51 72 45 47 132 55 62
+ 53 41 49 27 60 34 57 38 36 40 51 70 45 47 132 55 62
@@ -804,11 +804,11 @@
BICOMP
- 68
+ 69
ICCARM
- 70 108
+ 68 108
@@ -837,7 +837,7 @@
ILINK
- 113 110 163 160 112 164 94 102 131 151 146 137 171 172 111 173 159 105 93 149 174 136 82 175 74 139 162 158 122 144 121
+ 114 110 163 160 112 164 94 102 131 151 146 137 171 172 111 173 159 105 93 149 174 136 82 175 74 139 162 158 122 144 121
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
index 8e3c7943..3461b879 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt
@@ -12,12 +12,12 @@
- 332272727
+ 121272727
300Find-in-Files2011553087730055278946300- File
- Function
- Line
- 200
- 700
- 100
300BuildFind-in-FilesFind-All-References664941138300BuildFind-in-Files664941138
-
+
TabID-31649-22318
@@ -29,7 +29,7 @@
- 0TabID-25743-19564BuildBuild0
+ 0TabID-25743-19564BuildBuild0
@@ -42,7 +42,7 @@
- iaridepm.enu1-2-2963406-2-2288296150000293651212500957341-2-2963506-2-223092431202604241071264583957341
+ iaridepm.enu1-2-2529212-2-2151169149802294425212302925087-2-2529265-2-212121381202381240418264881925087
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/main.c
index 04fa0010..49717458 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -50,12 +52,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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 none.
**
****************************************************************************************/
void main(void)
@@ -74,12 +74,9 @@ void 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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out
index 71c15f20..22e0cc66 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.c
index e5e5f4ab..3bdb6148 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.h
index 6da3f21c..349ed348 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/header.h
index f14127dc..007f7a45 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep
index 08f929dc..026fb047 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep
@@ -81,20 +81,77 @@
$PROJ_DIR$\..\irq.h
$PROJ_DIR$\..\led.c
$PROJ_DIR$\..\led.h
+ $PROJ_DIR$\..\obj\stm32f10x_gpio.pbi
+ $PROJ_DIR$\..\obj\system_stm32f10x.pbi
+ $PROJ_DIR$\..\obj\adc.lst
+ $PROJ_DIR$\..\obj\epi.lst
+ $PROJ_DIR$\..\obj\gpio.lst
+ $PROJ_DIR$\..\obj\ethernet.lst
+ $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map
+ $TOOLKIT_DIR$\lib\dl7M_tln.a
+ $PROJ_DIR$\..\obj\stm32f10x_crc.o
+ $PROJ_DIR$\..\obj\stm32f10x_fsmc.o
+ $PROJ_DIR$\..\obj\core_cm3.o
+ $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.srec
+ $PROJ_DIR$\..\obj\cstart.o
+ $PROJ_DIR$\..\obj\stm32f10x_crc.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_can.o
+ $PROJ_DIR$\..\obj\stm32f10x_can.pbi
+ $PROJ_DIR$\..\obj\i2c.lst
+ $PROJ_DIR$\..\obj\stm32f10x_bkp.o
+ $PROJ_DIR$\..\obj\stm32f10x_adc.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_dac.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi
+ $PROJ_DIR$\..\obj\misc.o
+ $PROJ_DIR$\..\obj\flash.lst
+ $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_cec.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_cec.o
+ $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $PROJ_DIR$\..\obj\stm32f10x_gpio.o
+ $PROJ_DIR$\..\obj\stm32f10x_i2c.o
+ $PROJ_DIR$\..\obj\stm32f10x_iwdg.o
+ $PROJ_DIR$\..\obj\stm32f10x_pwr.o
+ $PROJ_DIR$\..\obj\stm32f10x_rcc.o
+ $PROJ_DIR$\..\obj\stm32f10x_rtc.o
+ $PROJ_DIR$\..\obj\stm32f10x_sdio.o
+ $PROJ_DIR$\..\obj\stm32f10x_spi.o
+ $PROJ_DIR$\..\obj\stm32f10x_tim.o
+ $PROJ_DIR$\..\obj\stm32f10x_usart.o
+ $PROJ_DIR$\..\obj\stm32f10x_wwdg.o
+ $PROJ_DIR$\..\obj\system_stm32f10x.o
+ $PROJ_DIR$\..\obj\core_cm3.pbi
+ $PROJ_DIR$\..\obj\misc.pbi
+ $PROJ_DIR$\..\obj\stm32f10x_adc.o
+ $TOOLKIT_DIR$\lib\shb_l.a
+ $PROJ_DIR$\..\obj\irq.o
+ $PROJ_DIR$\..\obj\main.o
+ $PROJ_DIR$\..\obj\led.o
+ $PROJ_DIR$\..\obj\boot.o
+ $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
+ $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.srec
+ $PROJ_DIR$\..\obj\lm3s6965.pbd
+ $PROJ_DIR$\..\obj\time.o
+ $PROJ_DIR$\..\obj\time.pbi
+ $PROJ_DIR$\..\obj\interrupt.lst
+ $PROJ_DIR$\..\obj\i2s.lst
+ $PROJ_DIR$\..\obj\cpu.lst
+ $PROJ_DIR$\..\obj\comp.lst
$PROJ_DIR$\..\main.c
$PROJ_DIR$\..\time.c
$PROJ_DIR$\..\time.h
$PROJ_DIR$\..\vectors.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
- $PROJ_DIR$\..\obj\led.pbi
$PROJ_DIR$\..\timer.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
$PROJ_DIR$\..\obj\irq.pbi
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+ $PROJ_DIR$\..\obj\led.pbi
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
$PROJ_DIR$\..\obj\main.pbi
$PROJ_DIR$\..\obj\led.lst
$PROJ_DIR$\..\obj\vectors.lst
@@ -134,9 +191,9 @@
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
$PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
@@ -201,74 +258,17 @@
$PROJ_DIR$\..\obj\boot.pbi
$PROJ_DIR$\..\obj\stm32f10x_pwr.pbi
$PROJ_DIR$\..\obj\stm32f10x_sdio.pbi
- $PROJ_DIR$\..\obj\stm32f10x_gpio.pbi
- $PROJ_DIR$\..\obj\system_stm32f10x.pbi
- $PROJ_DIR$\..\obj\adc.lst
- $PROJ_DIR$\..\obj\epi.lst
- $PROJ_DIR$\..\obj\gpio.lst
- $PROJ_DIR$\..\obj\ethernet.lst
- $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map
- $TOOLKIT_DIR$\lib\dl7M_tln.a
- $PROJ_DIR$\..\obj\stm32f10x_crc.o
- $PROJ_DIR$\..\obj\stm32f10x_fsmc.o
- $PROJ_DIR$\..\obj\core_cm3.o
- $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.srec
- $PROJ_DIR$\..\obj\cstart.o
- $PROJ_DIR$\..\obj\stm32f10x_crc.pbi
- $PROJ_DIR$\..\obj\stm32f10x_can.o
- $PROJ_DIR$\..\obj\stm32f10x_can.pbi
- $PROJ_DIR$\..\obj\i2c.lst
- $PROJ_DIR$\..\obj\stm32f10x_bkp.o
- $PROJ_DIR$\..\obj\stm32f10x_adc.pbi
- $PROJ_DIR$\..\obj\stm32f10x_dac.pbi
- $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi
- $PROJ_DIR$\..\obj\misc.o
- $PROJ_DIR$\..\obj\flash.lst
- $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi
- $PROJ_DIR$\..\obj\stm32f10x_cec.pbi
- $PROJ_DIR$\..\obj\stm32f10x_cec.o
- $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi
- $TOOLKIT_DIR$\lib\rt7M_tl.a
- $PROJ_DIR$\..\obj\stm32f10x_gpio.o
- $PROJ_DIR$\..\obj\stm32f10x_i2c.o
- $PROJ_DIR$\..\obj\stm32f10x_iwdg.o
- $PROJ_DIR$\..\obj\stm32f10x_pwr.o
- $PROJ_DIR$\..\obj\stm32f10x_rcc.o
- $PROJ_DIR$\..\obj\stm32f10x_rtc.o
- $PROJ_DIR$\..\obj\stm32f10x_sdio.o
- $PROJ_DIR$\..\obj\stm32f10x_spi.o
- $PROJ_DIR$\..\obj\stm32f10x_tim.o
- $PROJ_DIR$\..\obj\stm32f10x_usart.o
- $PROJ_DIR$\..\obj\stm32f10x_wwdg.o
- $PROJ_DIR$\..\obj\system_stm32f10x.o
- $PROJ_DIR$\..\obj\core_cm3.pbi
- $PROJ_DIR$\..\obj\misc.pbi
- $PROJ_DIR$\..\obj\stm32f10x_adc.o
- $TOOLKIT_DIR$\lib\shb_l.a
- $PROJ_DIR$\..\obj\irq.o
- $PROJ_DIR$\..\obj\main.o
- $PROJ_DIR$\..\obj\led.o
- $PROJ_DIR$\..\obj\boot.o
- $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out
- $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.srec
- $PROJ_DIR$\..\obj\lm3s6965.pbd
- $PROJ_DIR$\..\obj\time.o
- $PROJ_DIR$\..\obj\time.pbi
- $PROJ_DIR$\..\obj\interrupt.lst
- $PROJ_DIR$\..\obj\i2s.lst
- $PROJ_DIR$\..\obj\cpu.lst
- $PROJ_DIR$\..\obj\comp.lst
$PROJ_DIR$\..\lib\driverlib\cpu.c
BICOMP
- 165
+ 222
ICCARM
- 250 115
+ 130 172
@@ -287,11 +287,11 @@
BICOMP
- 163
+ 220
ICCARM
- 197 143
+ 77 200
@@ -310,11 +310,11 @@
BICOMP
- 164
+ 221
ICCARM
- 251 144
+ 131 201
@@ -333,11 +333,11 @@
BICOMP
- 168
+ 225
ICCARM
- 198 116
+ 78 173
@@ -356,11 +356,11 @@
BICOMP
- 169
+ 226
ICCARM
- 200 140
+ 80 197
@@ -379,11 +379,11 @@
BICOMP
- 170
+ 227
ICCARM
- 217 147
+ 97 204
@@ -402,11 +402,11 @@
BICOMP
- 171
+ 228
ICCARM
- 199 148
+ 79 205
@@ -425,11 +425,11 @@
BICOMP
- 172
+ 229
ICCARM
- 166 149
+ 223 206
@@ -448,11 +448,11 @@
BICOMP
- 173
+ 230
ICCARM
- 211 150
+ 91 207
@@ -471,18 +471,14 @@
BICOMP
- 174
+ 231
ICCARM
- 249 151
+ 129 208
-
- BICOMP
- 53 54 55 62 6 20 22
-
ICCARM
53 54 55 62 6 20 22
@@ -494,7 +490,7 @@
ILINK
- 167 201
+ 224 81
@@ -503,11 +499,11 @@
BICOMP
- 175
+ 232
ICCARM
- 248 152
+ 128 209
@@ -526,11 +522,11 @@
BICOMP
- 176
+ 233
ICCARM
- 142 153
+ 199 210
@@ -549,11 +545,11 @@
BICOMP
- 177
+ 234
ICCARM
- 118 154
+ 175 211
@@ -572,11 +568,11 @@
BICOMP
- 178
+ 235
ICCARM
- 112 155
+ 169 212
@@ -595,11 +591,11 @@
BICOMP
- 179
+ 236
ICCARM
- 117 156
+ 174 213
@@ -618,11 +614,11 @@
BICOMP
- 180
+ 237
ICCARM
- 111 157
+ 168 214
@@ -641,11 +637,11 @@
BICOMP
- 181
+ 238
ICCARM
- 141 158
+ 198 215
@@ -664,11 +660,11 @@
BICOMP
- 96
+ 153
ICCARM
- 97 191
+ 154 248
@@ -687,11 +683,11 @@
BICOMP
- 182
+ 239
ICCARM
- 110 159
+ 167 216
@@ -710,11 +706,11 @@
BICOMP
- 183
+ 240
ICCARM
- 113 160
+ 170 217
@@ -733,11 +729,11 @@
BICOMP
- 184
+ 241
ICCARM
- 114 161
+ 171 218
@@ -756,11 +752,11 @@
BICOMP
- 185
+ 242
ICCARM
- 146 162
+ 203 219
@@ -779,21 +775,21 @@
BICOMP
- 192
+ 249
ICCARM
- 93 242
+ 150 122
BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
@@ -802,7 +798,7 @@
AARM
- 207
+ 87
@@ -811,21 +807,21 @@
BICOMP
- 87
+ 140
ICCARM
- 98 239
+ 155 119
BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
@@ -834,447 +830,21 @@
BICOMP
- 84
+ 142
ICCARM
- 90 241
+ 147 121
BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
-
-
- $PROJ_DIR$\..\main.c
-
-
- BICOMP
- 89
-
-
- ICCARM
- 94 240
-
-
-
-
- BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
- ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
-
-
- $PROJ_DIR$\..\time.c
-
-
- BICOMP
- 247
-
-
- ICCARM
- 145 246
-
-
-
-
- BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
- ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
-
-
- $PROJ_DIR$\..\vectors.c
-
-
- BICOMP
- 95
-
-
- ICCARM
- 91 190
-
-
-
-
- BICOMP
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
- ICCARM
- 70 92 68 72 74 77 54 55 56 60 62 32 14 38 22 34
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
-
-
- BICOMP
- 103
-
-
- ICCARM
- 228
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
-
-
- BICOMP
- 194
-
-
- ICCARM
- 229
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
-
-
- BICOMP
- 138
-
-
- ICCARM
- 230
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
-
-
- BICOMP
- 105
-
-
- ICCARM
- 233
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
-
-
- BICOMP
- 107
-
-
- ICCARM
- 232
-
-
-
-
- $PROJ_DIR$\..\timer.c
-
-
- BICOMP
- 96
-
-
- ICCARM
- 191
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
-
-
- BICOMP
- 137
-
-
- ICCARM
- 231
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
-
-
- BICOMP
- 196
-
-
- ICCARM
- 234
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
-
-
- BICOMP
- 215
-
-
- ICCARM
- 212
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
-
-
- BICOMP
- 213
-
-
- ICCARM
- 237
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
-
-
- BICOMP
- 210
-
-
- ICCARM
- 209
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
-
-
- BICOMP
- 219
-
-
- ICCARM
- 220
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
-
-
- BICOMP
- 208
-
-
- ICCARM
- 203
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
-
-
- BICOMP
- 214
-
-
- ICCARM
- 188
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
-
-
- BICOMP
- 218
-
-
- ICCARM
- 187
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
-
-
- BICOMP
- 108
-
-
- ICCARM
- 189
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
-
-
- BICOMP
- 109
-
-
- ICCARM
- 99
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
-
-
- BICOMP
- 236
-
-
- ICCARM
- 216
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
-
-
- BICOMP
- 235
-
-
- ICCARM
- 205
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
-
-
- BICOMP
- 101
-
-
- ICCARM
- 100
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
-
-
- BICOMP
- 106
-
-
- ICCARM
- 204
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
-
-
- BICOMP
- 195
-
-
- ICCARM
- 223
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
-
-
- BICOMP
- 221
-
-
- ICCARM
- 224
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
-
-
- BICOMP
- 139
-
-
- ICCARM
- 225
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
-
-
- BICOMP
- 193
-
-
- ICCARM
- 226
-
-
-
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
-
-
- BICOMP
- 104
-
-
- ICCARM
- 227
-
-
-
-
- $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out
-
-
- ILINK
- 201
-
-
- OBJCOPY
- 206
-
-
-
-
- ILINK
- 186 143 242 144 115 207 116 140 147 148 149 150 151 152 239 241 240 153 154 155 156 157 158 246 191 159 160 161 190 162 238 222 102 202
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
@@ -1283,10 +853,436 @@
OBJCOPY
+ 124
+
+
+
+
+ $PROJ_DIR$\..\main.c
+
+
+ BICOMP
+ 146
+
+
+ ICCARM
+ 151 120
+
+
+
+
+ BICOMP
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+ ICCARM
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+
+
+ $PROJ_DIR$\..\time.c
+
+
+ BICOMP
+ 127
+
+
+ ICCARM
+ 202 126
+
+
+
+
+ BICOMP
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+ ICCARM
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+
+
+ $PROJ_DIR$\..\vectors.c
+
+
+ BICOMP
+ 152
+
+
+ ICCARM
+ 148 247
+
+
+
+
+ BICOMP
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+ ICCARM
+ 70 149 68 72 74 134 54 55 56 60 62 32 14 38 22 34
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
+
+
+ BICOMP
+ 251
+
+
+ ICCARM
+ 109
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
+
+
+ BICOMP
+ 160
+
+
+ ICCARM
+ 108
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
+
+
+ BICOMP
+ 195
+
+
+ ICCARM
+ 110
+
+
+
+
+ $PROJ_DIR$\..\timer.c
+
+
+ BICOMP
+ 153
+
+
+ ICCARM
+ 248
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
+
+
+ BICOMP
+ 194
+
+
+ ICCARM
+ 111
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+
+
+ BICOMP
+ 76
+
+
+ ICCARM
+ 114
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
+
+
+ BICOMP
+ 164
+
+
+ ICCARM
+ 112
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
+
+
+ BICOMP
+ 162
+
+
+ ICCARM
+ 113
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
+
+
+ BICOMP
+ 95
+
+
+ ICCARM
+ 92
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
+
+
+ BICOMP
+ 93
+
+
+ ICCARM
+ 117
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
+
+
+ BICOMP
+ 90
+
+
+ ICCARM
+ 89
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
+
+
+ BICOMP
+ 99
+
+
+ ICCARM
+ 100
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
+
+
+ BICOMP
+ 88
+
+
+ ICCARM
+ 83
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
+
+
+ BICOMP
+ 94
+
+
+ ICCARM
+ 245
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
+
+
+ BICOMP
+ 98
+
+
+ ICCARM
244
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
+
+
+ BICOMP
+ 165
+
+
+ ICCARM
+ 246
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
+
+
+ BICOMP
+ 166
+
+
+ ICCARM
+ 156
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
+
+
+ BICOMP
+ 158
+
+
+ ICCARM
+ 157
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
+
+
+ BICOMP
+ 116
+
+
+ ICCARM
+ 96
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
+
+
+ BICOMP
+ 115
+
+
+ ICCARM
+ 85
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
+
+
+ BICOMP
+ 163
+
+
+ ICCARM
+ 84
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
+
+
+ BICOMP
+ 75
+
+
+ ICCARM
+ 103
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
+
+
+ BICOMP
+ 101
+
+
+ ICCARM
+ 104
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
+
+
+ BICOMP
+ 196
+
+
+ ICCARM
+ 105
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
+
+
+ BICOMP
+ 250
+
+
+ ICCARM
+ 106
+
+
+
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
+
+
+ BICOMP
+ 161
+
+
+ ICCARM
+ 107
+
+
+
+
+ $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out
+
+
+ ILINK
+ 81
+
+
+ OBJCOPY
+ 86
+
+
+
+
+ ILINK
+ 243 200 122 201 172 87 173 197 204 205 206 207 208 209 119 121 120 210 211 212 213 214 215 126 248 216 217 218 247 219 118 102 159 82
+
+
+
Release
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt
index 4144b646..a3ada924 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt
@@ -12,7 +12,7 @@
- 309272727
+ 150272727
@@ -35,7 +35,7 @@
-
+
TabID-27300-28131
@@ -47,7 +47,7 @@
- 0TabID-14407-15370BuildBuild0
+ 0TabID-14407-15370BuildBuild0
@@ -60,7 +60,7 @@
- iaridepm.enu1-2-2585383-2-2200200125000241546240625708937-2-21981602-2-216042001002500241546125000241546
+ iaridepm.enu1-2-2392241-2-2126139125000242160241071686411-2-21371010-2-210121391003968242160125000242160
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.c
index 0f469a13..6119ae15 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.h
index 73e97bc3..df03075a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.c
index 20b702ce..136cf5de 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +40,14 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
-#define LED_TOGGLE_MS (500) /* toggle interval time in milliseconds */
+/** \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. The board doesn't have a dedicted LED so an
+** indicator on the LCD is used instead.
+** \return none.
**
****************************************************************************************/
void LedInit(void)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.h
index b5126edb..354ab113 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/main.c
index 9a090c26..186e4285 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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 none.
**
****************************************************************************************/
void main(void)
@@ -67,11 +67,9 @@ void 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)
@@ -87,16 +85,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/prog.dox
new file mode 100644
index 00000000..7e90db15
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S6965_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.c
index ef3e5bd2..588c7de4 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.h
index a01f7e58..0804d58a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/vectors.c
index 81677fa9..020f430e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/vectors.c
@@ -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) 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S6965_IAR\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S6965_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -44,18 +46,17 @@ extern void __iar_program_start( void );
/****************************************************************************************
* Type definitions
****************************************************************************************/
+/** \brief Structure type for vector table entries. */
typedef union
{
- void (*func)(void); /* for ISR function pointers */
- void *ptr; /* for stack pointer entry */
-}tIsrFunc; /* type for vector table entries */
+ void (*func)(void); /**< for ISR function pointers */
+ void *ptr; /**< for stack pointer entry */
+}tIsrFunc;
-/****************************************************************************************
-** 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)
@@ -71,6 +72,7 @@ void UnusedISR(void)
#pragma language=extended /* enable IAR extensions */
#pragma segment="CSTACK"
+/** \brief Interrupt vector table. */
__root const tIsrFunc __vector_table[] @ ".intvec" =
{
{ .ptr = __sfe( "CSTACK" ) }, /* the initial stack pointer */
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/demo.dox
new file mode 100644
index 00000000..23dfaedb
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S6965_IAR Demo for Texas Instruments EK-LM3S6965/IAR
+\brief Preconfigured programs for the Texas Instruments EK-LM3S6965 and the IAR Embedded Workbench IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf
index 1f9a022b..d9637853 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.map
index ba84d052..ac0978a0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.map
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.map
@@ -480,7 +480,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)
0x00000288 __text_load_start__ = ALIGN (__init_end__, 0x4)
-.text 0x00000288 0x129c
+.text 0x00000288 0x1290
0x00000288 __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
@@ -559,111 +559,110 @@ Linker script and memory map
.text.FlashSwitchBlock
0x00000d64 0x50 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
- 0x00000db4 0x8a THUMB Debug/../../obj/flash.o
- *fill* 0x00000e3e 0x2 00
+ 0x00000db4 0x80 THUMB Debug/../../obj/flash.o
.text.FlashInit
- 0x00000e40 0x18 THUMB Debug/../../obj/flash.o
- 0x00000e40 FlashInit
+ 0x00000e34 0x18 THUMB Debug/../../obj/flash.o
+ 0x00000e34 FlashInit
.text.FlashWrite
- 0x00000e58 0x48 THUMB Debug/../../obj/flash.o
- 0x00000e58 FlashWrite
+ 0x00000e4c 0x48 THUMB Debug/../../obj/flash.o
+ 0x00000e4c FlashWrite
.text.FlashErase
- 0x00000ea0 0xe8 THUMB Debug/../../obj/flash.o
- 0x00000ea0 FlashErase
+ 0x00000e94 0xe8 THUMB Debug/../../obj/flash.o
+ 0x00000e94 FlashErase
.text.FlashWriteChecksum
- 0x00000f88 0x44 THUMB Debug/../../obj/flash.o
- 0x00000f88 FlashWriteChecksum
+ 0x00000f7c 0x44 THUMB Debug/../../obj/flash.o
+ 0x00000f7c FlashWriteChecksum
.text.FlashVerifyChecksum
- 0x00000fcc 0x48 THUMB Debug/../../obj/flash.o
- 0x00000fcc FlashVerifyChecksum
+ 0x00000fc0 0x48 THUMB Debug/../../obj/flash.o
+ 0x00000fc0 FlashVerifyChecksum
.text.FlashDone
- 0x00001014 0x34 THUMB Debug/../../obj/flash.o
- 0x00001014 FlashDone
- .text.NvmInit 0x00001048 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001048 NvmInit
+ 0x00001008 0x34 THUMB Debug/../../obj/flash.o
+ 0x00001008 FlashDone
+ .text.NvmInit 0x0000103c 0x4 THUMB Debug/../../obj/nvm.o
+ 0x0000103c NvmInit
.text.NvmWrite
- 0x0000104c 0x4 THUMB Debug/../../obj/nvm.o
- 0x0000104c NvmWrite
+ 0x00001040 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001040 NvmWrite
.text.NvmErase
- 0x00001050 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001050 NvmErase
+ 0x00001044 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001044 NvmErase
.text.NvmVerifyChecksum
- 0x00001054 0x4 THUMB Debug/../../obj/nvm.o
- 0x00001054 NvmVerifyChecksum
- .text.NvmDone 0x00001058 0x14 THUMB Debug/../../obj/nvm.o
- 0x00001058 NvmDone
+ 0x00001048 0x4 THUMB Debug/../../obj/nvm.o
+ 0x00001048 NvmVerifyChecksum
+ .text.NvmDone 0x0000104c 0x14 THUMB Debug/../../obj/nvm.o
+ 0x0000104c NvmDone
.text.TimerInit
- 0x0000106c 0x20 THUMB Debug/../../obj/timer.o
- 0x0000106c TimerInit
+ 0x00001060 0x20 THUMB Debug/../../obj/timer.o
+ 0x00001060 TimerInit
.text.TimerReset
- 0x0000108c 0xc THUMB Debug/../../obj/timer.o
- 0x0000108c TimerReset
+ 0x00001080 0xc THUMB Debug/../../obj/timer.o
+ 0x00001080 TimerReset
.text.TimerUpdate
- 0x00001098 0x1c THUMB Debug/../../obj/timer.o
- 0x00001098 TimerUpdate
+ 0x0000108c 0x1c THUMB Debug/../../obj/timer.o
+ 0x0000108c TimerUpdate
.text.TimerGet
- 0x000010b4 0x14 THUMB Debug/../../obj/timer.o
- 0x000010b4 TimerGet
+ 0x000010a8 0x14 THUMB Debug/../../obj/timer.o
+ 0x000010a8 TimerGet
.text.UartInit
- 0x000010c8 0x28 THUMB Debug/../../obj/uart.o
- 0x000010c8 UartInit
+ 0x000010bc 0x28 THUMB Debug/../../obj/uart.o
+ 0x000010bc UartInit
.text.UartTransmitPacket
- 0x000010f0 0x74 THUMB Debug/../../obj/uart.o
- 0x000010f0 UartTransmitPacket
+ 0x000010e4 0x74 THUMB Debug/../../obj/uart.o
+ 0x000010e4 UartTransmitPacket
.text.UartReceivePacket
- 0x00001164 0x70 THUMB Debug/../../obj/uart.o
- 0x00001164 UartReceivePacket
+ 0x00001158 0x70 THUMB Debug/../../obj/uart.o
+ 0x00001158 UartReceivePacket
.text.AssertFailure
- 0x000011d4 0x18 THUMB Debug/../../obj/assert.o
- 0x000011d4 AssertFailure
+ 0x000011c8 0x18 THUMB Debug/../../obj/assert.o
+ 0x000011c8 AssertFailure
.text.BackDoorCheck
- 0x000011ec 0x38 THUMB Debug/../../obj/backdoor.o
- 0x000011ec BackDoorCheck
+ 0x000011e0 0x38 THUMB Debug/../../obj/backdoor.o
+ 0x000011e0 BackDoorCheck
.text.BackDoorInit
- 0x00001224 0x20 THUMB Debug/../../obj/backdoor.o
- 0x00001224 BackDoorInit
+ 0x00001218 0x20 THUMB Debug/../../obj/backdoor.o
+ 0x00001218 BackDoorInit
.text.BootInit
- 0x00001244 0x1a THUMB Debug/../../obj/boot.o
- 0x00001244 BootInit
+ 0x00001238 0x1a THUMB Debug/../../obj/boot.o
+ 0x00001238 BootInit
.text.BootTask
- 0x0000125e 0x16 THUMB Debug/../../obj/boot.o
- 0x0000125e BootTask
- .text.ComInit 0x00001274 0x2c THUMB Debug/../../obj/com.o
- 0x00001274 ComInit
- .text.ComTask 0x000012a0 0x20 THUMB Debug/../../obj/com.o
- 0x000012a0 ComTask
- .text.ComFree 0x000012c0 0x2 THUMB Debug/../../obj/com.o
- 0x000012c0 ComFree
+ 0x00001252 0x16 THUMB Debug/../../obj/boot.o
+ 0x00001252 BootTask
+ .text.ComInit 0x00001268 0x2c THUMB Debug/../../obj/com.o
+ 0x00001268 ComInit
+ .text.ComTask 0x00001294 0x20 THUMB Debug/../../obj/com.o
+ 0x00001294 ComTask
+ .text.ComFree 0x000012b4 0x2 THUMB Debug/../../obj/com.o
+ 0x000012b4 ComFree
.text.ComTransmitPacket
- 0x000012c2 0x10 THUMB Debug/../../obj/com.o
- 0x000012c2 ComTransmitPacket
- *fill* 0x000012d2 0x2 00
+ 0x000012b6 0x10 THUMB Debug/../../obj/com.o
+ 0x000012b6 ComTransmitPacket
+ *fill* 0x000012c6 0x2 00
.text.ComSetConnectEntryState
- 0x000012d4 0xc THUMB Debug/../../obj/com.o
- 0x000012d4 ComSetConnectEntryState
+ 0x000012c8 0xc THUMB Debug/../../obj/com.o
+ 0x000012c8 ComSetConnectEntryState
.text.ComIsConnected
- 0x000012e0 0x4 THUMB Debug/../../obj/com.o
- 0x000012e0 ComIsConnected
- .text.CopInit 0x000012e4 0x2 THUMB Debug/../../obj/cop.o
- 0x000012e4 CopInit
+ 0x000012d4 0x4 THUMB Debug/../../obj/com.o
+ 0x000012d4 ComIsConnected
+ .text.CopInit 0x000012d8 0x2 THUMB Debug/../../obj/cop.o
+ 0x000012d8 CopInit
.text.CopService
- 0x000012e6 0x2 THUMB Debug/../../obj/cop.o
- 0x000012e6 CopService
+ 0x000012da 0x2 THUMB Debug/../../obj/cop.o
+ 0x000012da CopService
.text.XcpSetCtoError
- 0x000012e8 0x14 THUMB Debug/../../obj/xcp.o
- .text.XcpInit 0x000012fc 0x1c THUMB Debug/../../obj/xcp.o
- 0x000012fc XcpInit
+ 0x000012dc 0x14 THUMB Debug/../../obj/xcp.o
+ .text.XcpInit 0x000012f0 0x1c THUMB Debug/../../obj/xcp.o
+ 0x000012f0 XcpInit
.text.XcpIsConnected
- 0x00001318 0x10 THUMB Debug/../../obj/xcp.o
- 0x00001318 XcpIsConnected
+ 0x0000130c 0x10 THUMB Debug/../../obj/xcp.o
+ 0x0000130c XcpIsConnected
.text.XcpPacketTransmitted
- 0x00001328 0x10 THUMB Debug/../../obj/xcp.o
- 0x00001328 XcpPacketTransmitted
+ 0x0000131c 0x10 THUMB Debug/../../obj/xcp.o
+ 0x0000131c XcpPacketTransmitted
.text.XcpPacketReceived
- 0x00001338 0x1ec THUMB Debug/../../obj/xcp.o
- 0x00001338 XcpPacketReceived
- 0x00001524 __text_end__ = (__text_start__ + SIZEOF (.text))
- 0x00001524 __text_load_end__ = __text_end__
+ 0x0000132c 0x1ec THUMB Debug/../../obj/xcp.o
+ 0x0000132c XcpPacketReceived
+ 0x00001518 __text_end__ = (__text_start__ + SIZEOF (.text))
+ 0x00001518 __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@@ -671,73 +670,73 @@ 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)
- 0x00001524 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
+ 0x00001518 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
-.dtors 0x00001524 0x0
- 0x00001524 __dtors_start__ = .
+.dtors 0x00001518 0x0
+ 0x00001518 __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
- 0x00001524 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
- 0x00001524 __dtors_load_end__ = __dtors_end__
+ 0x00001518 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
+ 0x00001518 __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)
- 0x00001524 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
+ 0x00001518 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
-.ctors 0x00001524 0x0
- 0x00001524 __ctors_start__ = .
+.ctors 0x00001518 0x0
+ 0x00001518 __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
- 0x00001524 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
- 0x00001524 __ctors_load_end__ = __ctors_end__
+ 0x00001518 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
+ 0x00001518 __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)
- 0x00001524 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
+ 0x00001518 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
-.rodata 0x00001524 0x3ff
- 0x00001524 __rodata_start__ = .
+.rodata 0x00001518 0x3ff
+ 0x00001518 __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.g_pulXtals
- 0x00001524 0x5c THUMB Debug/../../obj/sysctl.o
+ 0x00001518 0x5c THUMB Debug/../../obj/sysctl.o
.rodata.str1.1
- 0x00001580 0x6b THUMB Debug/../../obj/sysctl.o
- *fill* 0x000015eb 0x1 00
+ 0x00001574 0x6b THUMB Debug/../../obj/sysctl.o
+ *fill* 0x000015df 0x1 00
.rodata.g_pulRCGCRegs
- 0x000015ec 0xc THUMB Debug/../../obj/sysctl.o
+ 0x000015e0 0xc THUMB Debug/../../obj/sysctl.o
.rodata.str1.1
- 0x000015f8 0x69 THUMB Debug/../../obj/gpio.o
+ 0x000015ec 0x69 THUMB Debug/../../obj/gpio.o
.rodata.str1.1
- 0x00001661 0x6d THUMB Debug/../../obj/flashlib.o
+ 0x00001655 0x6d THUMB Debug/../../obj/flashlib.o
.rodata.str1.1
- 0x000016ce 0x6c THUMB Debug/../../obj/uartlib.o
+ 0x000016c2 0x6c THUMB Debug/../../obj/uartlib.o
.rodata.str1.1
- 0x0000173a 0x85 THUMB Debug/../../obj/vectors.o
- *fill* 0x000017bf 0x1 00
+ 0x0000172e 0x85 THUMB Debug/../../obj/vectors.o
+ *fill* 0x000017b3 0x1 00
.rodata.flashLayout
- 0x000017c0 0xe4 THUMB Debug/../../obj/flash.o
+ 0x000017b4 0xe4 THUMB Debug/../../obj/flash.o
.rodata.str1.1
- 0x000018a4 0x77 THUMB Debug/../../obj/uart.o
+ 0x00001898 0x77 THUMB Debug/../../obj/uart.o
.rodata.xcpStationId
- 0x0000191b 0x8 THUMB Debug/../../obj/xcp.o
- 0x00001923 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
- 0x00001923 __rodata_load_end__ = __rodata_end__
+ 0x0000190f 0x8 THUMB Debug/../../obj/xcp.o
+ 0x00001917 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
+ 0x00001917 __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)
- 0x00001924 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
+ 0x00001918 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
-.ARM.exidx 0x00001924 0x0
- 0x00001924 __ARM.exidx_start__ = .
- 0x00001924 __exidx_start = __ARM.exidx_start__
+.ARM.exidx 0x00001918 0x0
+ 0x00001918 __ARM.exidx_start__ = .
+ 0x00001918 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
- 0x00001924 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
- 0x00001924 __exidx_end = __ARM.exidx_end__
- 0x00001924 __ARM.exidx_load_end__ = __ARM.exidx_end__
+ 0x00001918 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
+ 0x00001918 __exidx_end = __ARM.exidx_end__
+ 0x00001918 __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)
- 0x00001924 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
+ 0x00001918 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
-.fast 0x20000000 0x0 load address 0x00001924
+.fast 0x20000000 0x0 load address 0x00001918
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
- 0x00001924 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
+ 0x00001918 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@@ -746,13 +745,13 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
- 0x00001924 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
+ 0x00001918 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
-.data 0x20000000 0x0 load address 0x00001924
+.data 0x20000000 0x0 load address 0x00001918
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
0x20000000 __data_end__ = (__data_start__ + SIZEOF (.data))
- 0x00001924 __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
+ 0x00001918 __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 0x20000000 0x0
@@ -771,14 +770,14 @@ Linker script and memory map
.bss.blockInfo
0x20000204 0x204 THUMB Debug/../../obj/flash.o
.bss.millisecond_counter
- 0x20000408 0x2 THUMB Debug/../../obj/timer.o
+ 0x20000408 0x4 THUMB Debug/../../obj/timer.o
.bss.xcpCtoReqPacket.1091
- 0x2000040a 0x41 THUMB Debug/../../obj/uart.o
+ 0x2000040c 0x41 THUMB Debug/../../obj/uart.o
.bss.xcpCtoRxLength.1092
- 0x2000044b 0x1 THUMB Debug/../../obj/uart.o
+ 0x2000044d 0x1 THUMB Debug/../../obj/uart.o
.bss.xcpCtoRxInProgress.1093
- 0x2000044c 0x1 THUMB Debug/../../obj/uart.o
- *fill* 0x2000044d 0x3 00
+ 0x2000044e 0x1 THUMB Debug/../../obj/uart.o
+ *fill* 0x2000044f 0x1 00
.bss.assert_failure_file
0x20000450 0x4 THUMB Debug/../../obj/assert.o
.bss.assert_failure_line
@@ -843,14 +842,14 @@ Linker script and memory map
0x20000770 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
0x20000770 __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)
- 0x00001924 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
+ 0x00001918 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
-.tdata 0x20000770 0x0 load address 0x00001924
+.tdata 0x20000770 0x0 load address 0x00001918
0x20000770 __tdata_start__ = .
*(.tdata .tdata.*)
0x20000770 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
- 0x00001924 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
- 0x00001924 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
+ 0x00001918 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
+ 0x00001918 __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 0x20000770 0x0
@@ -909,7 +908,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_frame 0x00001810 0x30 THUMB Debug/../../obj/cop.o
.debug_frame 0x00001840 0x70 THUMB Debug/../../obj/xcp.o
-.debug_info 0x00000000 0x487b
+.debug_info 0x00000000 0x487c
.debug_info 0x00000000 0x844 THUMB Debug/../../obj/sysctl.o
.debug_info 0x00000844 0x379 THUMB Debug/../../obj/interrupt.o
.debug_info 0x00000bbd 0x110 THUMB Debug/../../obj/cpulib.o
@@ -922,19 +921,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_info 0x00002f5a 0xfd THUMB Debug/../../obj/cstart.o
.debug_info 0x00003057 0xf0 THUMB Debug/../../obj/vectors.o
.debug_info 0x00003147 0x139 THUMB Debug/../../obj/cpu.o
- .debug_info 0x00003280 0x666 THUMB Debug/../../obj/flash.o
- .debug_info 0x000038e6 0x15a THUMB Debug/../../obj/nvm.o
- .debug_info 0x00003a40 0x137 THUMB Debug/../../obj/timer.o
- .debug_info 0x00003b77 0x26a THUMB Debug/../../obj/uart.o
- .debug_info 0x00003de1 0x5a THUMB Debug/../../obj/can.o
- .debug_info 0x00003e3b 0xe4 THUMB Debug/../../obj/assert.o
- .debug_info 0x00003f1f 0xc0 THUMB Debug/../../obj/backdoor.o
- .debug_info 0x00003fdf 0x88 THUMB Debug/../../obj/boot.o
- .debug_info 0x00004067 0x1b3 THUMB Debug/../../obj/com.o
- .debug_info 0x0000421a 0x86 THUMB Debug/../../obj/cop.o
- .debug_info 0x000042a0 0x5db THUMB Debug/../../obj/xcp.o
+ .debug_info 0x00003280 0x66c THUMB Debug/../../obj/flash.o
+ .debug_info 0x000038ec 0x15a THUMB Debug/../../obj/nvm.o
+ .debug_info 0x00003a46 0x12c THUMB Debug/../../obj/timer.o
+ .debug_info 0x00003b72 0x26a THUMB Debug/../../obj/uart.o
+ .debug_info 0x00003ddc 0x5a THUMB Debug/../../obj/can.o
+ .debug_info 0x00003e36 0xe4 THUMB Debug/../../obj/assert.o
+ .debug_info 0x00003f1a 0xc0 THUMB Debug/../../obj/backdoor.o
+ .debug_info 0x00003fda 0x88 THUMB Debug/../../obj/boot.o
+ .debug_info 0x00004062 0x1b3 THUMB Debug/../../obj/com.o
+ .debug_info 0x00004215 0x86 THUMB Debug/../../obj/cop.o
+ .debug_info 0x0000429b 0x5e1 THUMB Debug/../../obj/xcp.o
-.debug_abbrev 0x00000000 0x1520
+.debug_abbrev 0x00000000 0x1500
.debug_abbrev 0x00000000 0x1a5 THUMB Debug/../../obj/sysctl.o
.debug_abbrev 0x000001a5 0x172 THUMB Debug/../../obj/interrupt.o
.debug_abbrev 0x00000317 0xa8 THUMB Debug/../../obj/cpulib.o
@@ -947,19 +946,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_abbrev 0x00000a26 0x14 THUMB Debug/../../obj/cstart.o
.debug_abbrev 0x00000a3a 0xbe THUMB Debug/../../obj/vectors.o
.debug_abbrev 0x00000af8 0xaf THUMB Debug/../../obj/cpu.o
- .debug_abbrev 0x00000ba7 0x23d THUMB Debug/../../obj/flash.o
- .debug_abbrev 0x00000de4 0xba THUMB Debug/../../obj/nvm.o
- .debug_abbrev 0x00000e9e 0xe8 THUMB Debug/../../obj/timer.o
- .debug_abbrev 0x00000f86 0x161 THUMB Debug/../../obj/uart.o
- .debug_abbrev 0x000010e7 0x28 THUMB Debug/../../obj/can.o
- .debug_abbrev 0x0000110f 0x7c THUMB Debug/../../obj/assert.o
- .debug_abbrev 0x0000118b 0x5b THUMB Debug/../../obj/backdoor.o
- .debug_abbrev 0x000011e6 0x3f THUMB Debug/../../obj/boot.o
- .debug_abbrev 0x00001225 0xe0 THUMB Debug/../../obj/com.o
- .debug_abbrev 0x00001305 0x3f THUMB Debug/../../obj/cop.o
- .debug_abbrev 0x00001344 0x1dc THUMB Debug/../../obj/xcp.o
+ .debug_abbrev 0x00000ba7 0x22e THUMB Debug/../../obj/flash.o
+ .debug_abbrev 0x00000dd5 0xba THUMB Debug/../../obj/nvm.o
+ .debug_abbrev 0x00000e8f 0xe8 THUMB Debug/../../obj/timer.o
+ .debug_abbrev 0x00000f77 0x161 THUMB Debug/../../obj/uart.o
+ .debug_abbrev 0x000010d8 0x28 THUMB Debug/../../obj/can.o
+ .debug_abbrev 0x00001100 0x7c THUMB Debug/../../obj/assert.o
+ .debug_abbrev 0x0000117c 0x5b THUMB Debug/../../obj/backdoor.o
+ .debug_abbrev 0x000011d7 0x3f THUMB Debug/../../obj/boot.o
+ .debug_abbrev 0x00001216 0xe0 THUMB Debug/../../obj/com.o
+ .debug_abbrev 0x000012f6 0x3f THUMB Debug/../../obj/cop.o
+ .debug_abbrev 0x00001335 0x1cb THUMB Debug/../../obj/xcp.o
-.debug_loc 0x00000000 0x475c
+.debug_loc 0x00000000 0x4769
.debug_loc 0x00000000 0x813 THUMB Debug/../../obj/sysctl.o
.debug_loc 0x00000813 0x354 THUMB Debug/../../obj/interrupt.o
.debug_loc 0x00000b67 0xe1c THUMB Debug/../../obj/gpio.o
@@ -968,15 +967,15 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_loc 0x00002b65 0xfc9 THUMB Debug/../../obj/canlib.o
.debug_loc 0x00003b2e 0x20 THUMB Debug/../../obj/main.o
.debug_loc 0x00003b4e 0xbf THUMB Debug/../../obj/cpu.o
- .debug_loc 0x00003c0d 0x65f THUMB Debug/../../obj/flash.o
- .debug_loc 0x0000426c 0x7f THUMB Debug/../../obj/nvm.o
- .debug_loc 0x000042eb 0x20 THUMB Debug/../../obj/timer.o
- .debug_loc 0x0000430b 0x190 THUMB Debug/../../obj/uart.o
- .debug_loc 0x0000449b 0x46 THUMB Debug/../../obj/assert.o
- .debug_loc 0x000044e1 0x40 THUMB Debug/../../obj/backdoor.o
- .debug_loc 0x00004521 0x40 THUMB Debug/../../obj/boot.o
- .debug_loc 0x00004561 0x86 THUMB Debug/../../obj/com.o
- .debug_loc 0x000045e7 0x175 THUMB Debug/../../obj/xcp.o
+ .debug_loc 0x00003c0d 0x66c THUMB Debug/../../obj/flash.o
+ .debug_loc 0x00004279 0x7f THUMB Debug/../../obj/nvm.o
+ .debug_loc 0x000042f8 0x20 THUMB Debug/../../obj/timer.o
+ .debug_loc 0x00004318 0x190 THUMB Debug/../../obj/uart.o
+ .debug_loc 0x000044a8 0x46 THUMB Debug/../../obj/assert.o
+ .debug_loc 0x000044ee 0x40 THUMB Debug/../../obj/backdoor.o
+ .debug_loc 0x0000452e 0x40 THUMB Debug/../../obj/boot.o
+ .debug_loc 0x0000456e 0x86 THUMB Debug/../../obj/com.o
+ .debug_loc 0x000045f4 0x175 THUMB Debug/../../obj/xcp.o
.debug_aranges 0x00000000 0x910
.debug_aranges
@@ -1044,7 +1043,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_ranges 0x00000848 0x18 THUMB Debug/../../obj/cop.o
.debug_ranges 0x00000860 0x60 THUMB Debug/../../obj/xcp.o
-.debug_line 0x00000000 0x3422
+.debug_line 0x00000000 0x3428
.debug_line 0x00000000 0x7f1 THUMB Debug/../../obj/sysctl.o
.debug_line 0x000007f1 0x2b6 THUMB Debug/../../obj/interrupt.o
.debug_line 0x00000aa7 0xff THUMB Debug/../../obj/cpulib.o
@@ -1057,17 +1056,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_line 0x0000238e 0x14f THUMB Debug/../../obj/cstart.o
.debug_line 0x000024dd 0x132 THUMB Debug/../../obj/vectors.o
.debug_line 0x0000260f 0xe8 THUMB Debug/../../obj/cpu.o
- .debug_line 0x000026f7 0x258 THUMB Debug/../../obj/flash.o
- .debug_line 0x0000294f 0x104 THUMB Debug/../../obj/nvm.o
- .debug_line 0x00002a53 0xfb THUMB Debug/../../obj/timer.o
- .debug_line 0x00002b4e 0x136 THUMB Debug/../../obj/uart.o
- .debug_line 0x00002c84 0x1d THUMB Debug/../../obj/can.o
- .debug_line 0x00002ca1 0x120 THUMB Debug/../../obj/assert.o
- .debug_line 0x00002dc1 0x13e THUMB Debug/../../obj/backdoor.o
- .debug_line 0x00002eff 0xb5 THUMB Debug/../../obj/boot.o
- .debug_line 0x00002fb4 0x1a3 THUMB Debug/../../obj/com.o
- .debug_line 0x00003157 0xab THUMB Debug/../../obj/cop.o
- .debug_line 0x00003202 0x220 THUMB Debug/../../obj/xcp.o
+ .debug_line 0x000026f7 0x25a THUMB Debug/../../obj/flash.o
+ .debug_line 0x00002951 0x104 THUMB Debug/../../obj/nvm.o
+ .debug_line 0x00002a55 0xfb THUMB Debug/../../obj/timer.o
+ .debug_line 0x00002b50 0x136 THUMB Debug/../../obj/uart.o
+ .debug_line 0x00002c86 0x1d THUMB Debug/../../obj/can.o
+ .debug_line 0x00002ca3 0x120 THUMB Debug/../../obj/assert.o
+ .debug_line 0x00002dc3 0x140 THUMB Debug/../../obj/backdoor.o
+ .debug_line 0x00002f03 0xb5 THUMB Debug/../../obj/boot.o
+ .debug_line 0x00002fb8 0x1a5 THUMB Debug/../../obj/com.o
+ .debug_line 0x0000315d 0xab THUMB Debug/../../obj/cop.o
+ .debug_line 0x00003208 0x220 THUMB Debug/../../obj/xcp.o
.debug_str 0x00000000 0x2374
.debug_str 0x00000000 0x571 THUMB Debug/../../obj/sysctl.o
@@ -1097,7 +1096,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/B
.debug_str 0x00001ab0 0xaa THUMB Debug/../../obj/nvm.o
0x17f (size before relaxing)
.debug_str 0x00001b5a 0xcd THUMB Debug/../../obj/timer.o
- 0x187 (size before relaxing)
+ 0x17c (size before relaxing)
.debug_str 0x00001c27 0x10e THUMB Debug/../../obj/uart.o
0x1e7 (size before relaxing)
.debug_str 0x00001d35 0x76 THUMB Debug/../../obj/can.o
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.srec
index 1d408dac..e6700596 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.srec
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/bin/openbtl_ek_lm3s8962.srec
@@ -22,7 +22,7 @@ S11301304E494F4A00F062F84E484F49002200F001
S113014068F84E484E49091A082903DB0022026068
S1130150043001603F484049884205D002680430B9
S113016003B4904703BCF7E700208646EC4601F051
-S1130170B1F800200021434A904772B62A498D46BF
+S1130170ABF800200021434A904772B62A498D46C5
S11301802A482B492B4A00F039F82B482B492C4A92
S113019000F034F82B482C492C4A00F02FF82C4856
S11301A02C492D4A00F02AF82C482D492D4A00F0FC
@@ -33,12 +33,12 @@ S11301E00268043003B4904703BCF7E70020864656
S11301F0EC4600200021234A9047FEE7884207D0BE
S1130200521A05D0037801300B700131013AF9D14B
S11302107047884202D002700130FAE7704700004C
-S113022008ED00E000000000700700202419000021
+S113022008ED00E00000000070070020181900002D
S11302300000002000000020880200008802000066
-S113024024150000241900000000002000000020F4
-S113025024150000241500002415000024150000B6
-S113026024150000241500002415000024150000A6
-S11302702319000000000020F0040020F0040020F6
+S1130240181500001819000000000020000000200C
+S113025018150000181500001815000018150000E6
+S113026018150000181500001815000018150000D6
+S11302701719000000000020F0040020F004002002
S10B028070050020610C000070
S1130288A0F58013013B012B40F28780454B98422F
S113029800F0838003F5807398427ED003F50073E1
@@ -62,9 +62,9 @@ S11303A8704700BF00011000000110100100002078
S11303B800400010000110208000003000010010EF
S11303C8010010100100001001001020001010009E
S11303D810B50446FFF754FF20B909484FF4FC71DF
-S11303E800F0F4FE220FA1B2C4F3044401FA04F4A9
+S11303E800F0EEFE220FA1B2C4F3044401FA04F4AF
S11303F8044B53F822301A6814431C6010BD00BF24
-S113040880150000EC1500000138FDD1704700008C
+S113040874150000E01500000138FDD170470000A4
S1130418444B70B51A68044612F0E04F05D01A68C8
S1130428414B1340B3F1805F01D1002C79DB3F4984
S11304383F4A0B68166843F4006323F4800546F4C6
@@ -109,7 +109,7 @@ S113069811F4804F18BF4008090448BF800842F489
S11306A88002510216D5002B0DDA590005D51A051A
S11306B803D44000C3F3865301E0C3F3C5530133A5
S11306C8B0FBF3F070BDC2F3C3520132B0FBF2F0D9
-S11306D870BD002070BD00BF60E00F40241500000D
+S11306D870BD002070BD00BF60E00F401815000019
S11306E800E00F400000FF7000000110000003103C
S11306F80024F400001BB70000093D00C0C62D000B
S1130708C0E1E4007038390064E00F40B0F1402FD4
@@ -124,16 +124,16 @@ S113078803F5603398420AD0A3F50833984208D099
S113079803F50C33C31A584240EB03007047012099
S11307A870470120704700BF0080054070B50446BB
S11307B81646CDB2FFF7AAFF18B91048E42100F095
-S11307C805FD022E03D90D48E62100F0FFFCD4F8FC
+S11307C8FFFC022E03D90D48E62100F0F9FCD4F809
S11307D8003416F0010F14BF2B43AB4304F58062B9
S11307E81360D4F8202416F0020F04F5846314BFB0
-S11307F8154322EA05051D6070BD00BFF815000009
+S11307F8154322EA05051D6070BD00BFEC15000015
S1130808F0B5044615461F46CEB2FFF77FFF20B960
-S113081842484FF4DD7100F0D9FC6B1E012B08D956
+S113081842484FF4DD7100F0D3FC6B1E012B08D95C
S1130828042D06D00C2D04D03C484FF4DF7100F0A1
-S1130838CDFC082F0FD00A2F0DD00C2F0BD0092F69
+S1130838C7FC082F0FD00A2F0DD00C2F0BD0092F6F
S113084809D00B2F07D00D2F05D027B1334840F21C
-S1130858C51100F0BBFCD4F8003515F0010F14BF26
+S1130858C51100F0B5FCD4F8003515F0010F14BF2C
S11308683343B34304F5A0621360D4F8042515F0A8
S1130878020F04F5A06314BF3243B24303F1040327
S11308881A60D4F8083515F0040F14BF3343B34382
@@ -145,17 +145,17 @@ S11308D804F5A2621360D4F8142517F0040F04F584
S11308E8A26314BF3243B24303F104031A60D4F879
S11308F81C2517F0080F04F5A26303F10C0314BFB9
S11309083243B2431A60D4F8282504F5A5630FB915
-S1130918164301E022EA06061E60F0BDF815000041
+S1130918164301E022EA06061E60F0BDEC1500004D
S113092830B50446CDB2FFF7F1FE20B9084840F2CD
-S11309381F5100F04BFC204629460222FFF736FFE0
+S11309381F5100F045FC204629460222FFF736FFE6
S11309482046294601220823BDE83040FFF758BF56
-S1130958F8150000830510B5044603D00B4884211C
-S113096800F034FC0A4B01221A6043F8144C094A7B
+S1130958EC150000830510B5044603D00B48842128
+S113096800F02EFC0A4B01221A6043F8144C094A81
S1130978143B08331A601A689207FCD4064B1868AB
-S113098810F0010018BF4FF0FF3010BD61160000D1
+S113098810F0010018BF4FF0FF3010BD55160000DD
S113099814D00F40020042A40CD00F402DE9F041BE
S11309A8054688070C46164603D02848C82100F097
-S11309B80DFCB10703D02548C92100F007FC244BDE
+S11309B807FCB10703D02548C92100F001FC244BEA
S11309C801221A60234B1B68DA071ED4224B234FDB
S11309D8234824491A462EE024F07F03CCF800303B
S11309E807E0214B0434434455F8048B043EC3F810
@@ -164,54 +164,54 @@ S1130A0810600B68DB07FCD405E0184ADFF84CC01B
S1130A18174F14481146002EDED10EE03C6055F8FD
S1130A2804CBC0F800C01960D2F800C01CF0010F54
S1130A38FAD10434043E002EF0D10E4B186810F09D
-S1130A48010018BF4FF0FF30BDE8F08161160000C7
+S1130A48010018BF4FF0FF30BDE8F08155160000D3
S1130A5814D00F40A0E10F4008D00F4000D00F4041
S1130A6804D00F40010042A400D10F4020D00F4011
S1130A7830D00F400CD00F40084B98420AD003F5F1
S1130A888053984208D003F58053C31A584240EB68
S1130A9803007047012070470120704700C00040E0
S1130AA810B50446FFF7E8FF20B908484FF4CF71A2
-S1130AB800F08CFBE36A43F01003E362236B43F416
-S1130AC8407343F00103236310BD00BFCE1600003A
+S1130AB800F086FBE36A43F01003E362236B43F41C
+S1130AC8407343F00103236310BD00BFC216000046
S1130AD810B50446FFF7D0FF20B909484FF4DF7179
-S1130AE800F074FBA3691907FCD4E36A23F010032C
+S1130AE800F06EFBA3691907FCD4E36A23F0100332
S1130AF8E362236B23F4407323F00103236310BDE3
-S1130B08CE160000F0B504460D4616461F46FFF7FC
-S1130B18B3FF20B92C4840F20D1100F057FB26B959
-S1130B2829484FF4877100F051FB284B1A6812F0DA
+S1130B08C2160000F0B504460D4616461F46FFF708
+S1130B18B3FF20B92C4840F20D1100F051FB26B95F
+S1130B2829484FF4877100F04BFB284B1A6812F0E0
S1130B38E04F1DD01968264A0A40B2F1805F17D0E9
S1130B481968234A0A4023498A4203D11B689BB285
S1130B58022B0DD01D4A1E4B11680B401E498B42B7
S1130B6808D113689BB2002B0CBF1023082302E0A2
S1130B78102300E0082373439D4204D2124840F234
-S1130B880F1100F023FB2046FFF7A2FFB5EB061F69
+S1130B880F1100F01DFB2046FFF7A2FFB5EB061F6F
S1130B98236B04D243F020032363760802E023F096
S1130BA820032363ED00B5FBF6F60136F30963620F
S1130BB8C6F3450600232046A662E762A361BDE8A2
-S1130BC8F040FFF76DBF00BFCE16000000E00F40F5
+S1130BC8F040FFF76DBF00BFC216000000E00F4001
S1130BD80000FF70000001100000031010B5044667
-S1130BE8FFF74AFF20B9064840F2E93100F0EEFA6F
+S1130BE8FFF74AFF20B9064840F2E93100F0E8FA75
S1130BF8A36913F0200F14BF0020012010BD00BF0B
-S1130C08CE16000010B50446FFF736FF20B9064893
-S1130C1840F2094100F0DAFAA369D80654BF206803
-S1130C284FF0FF3010BD00BFCE16000030B50446AB
+S1130C08C216000010B50446FFF736FF20B906489F
+S1130C1840F2094100F0D4FAA369D80654BF206809
+S1130C284FF0FF3010BD00BFC216000030B50446B7
S1130C38CDB2FFF721FF20B9064840F25B4100F02E
-S1130C48C5FAA3699A0602D42560012030BD0020A4
-S1130C5830BD00BFCE16000000B50848FFF7D8FB2A
+S1130C48BFFAA3699A0602D42560012030BD0020AA
+S1130C5830BD00BFC216000000B50848FFF7D8FB36
S1130C680748FFF7B5FB4FF040200321FFF758FE74
-S1130C7800F0E4FA00F0EFFAFCE700BF8003C001DB
-S1130C880100002001483C2100F0A0BA3A170000F6
-S1130C9800B500F0DBF958B100F00EFB00F0F2F9F2
+S1130C7800F0DEFA00F0E9FAFCE700BF8003C001E7
+S1130C880100002001483D2100F09ABA2E17000007
+S1130C9800B500F0D5F958B100F008FB00F0ECF904
S1130CA8044B4FF400521A6042F204031B6898473D
S1130CB85DF804FB08ED00E070B50C4695B20646F5
-S1130CC807E014F8013B013D06F8013B00F007FB7F
+S1130CC807E014F8013B013D06F8013B00F001FB85
S1130CD8ADB2002DF5D170BDFFF74BBA70B50C4D10
-S1130CE80646002400F0FBFA2B689E4209D36A6882
+S1130CE80646002400F0F5FA2B689E4209D36A6888
S1130CF89B189E4205D2064B0C2202FB0434207A30
S1130D0870BD01340C35132CECD1FF2070BD00BF2D
-S1130D18C01700002DE9F14105460068FFF7DEFF22
+S1130D18B41700002DE9F14105460068FFF7DEFF2E
S1130D28FF2818D000242F68261DAB5904EB0708A8
-S1130D38009300F0D4FA684641460422FFF72EFED9
+S1130D38009300F0CEFA684641460422FFF72EFEDF
S1130D4848B9E259009B9A4206D1B6F5007F344669
S1130D58E9D1012000E00020BDE8F881114B30B54D
S1130D68984204460D4606D0B1F5005F05D0FFF75A
@@ -219,187 +219,186 @@ S1130D78D1FF18B910E00C4C00E01C46EB050DD16E
S1130D882368AB420BD0204640F8045B29464FF455
S1130D980072FFF791FF02E0044600E000242046B9
S1130DA830BD00BF00000020040200202DE9F043FC
-S1130DB81FFA83F8036821F4FE77013304460D46CD
-S1130DC8164627F0030706D140F8047B39464FF44A
-S1130DD80072FFF771FF2368BB4205D020463946ED
-S1130DE8FFF7BCFF044610B3236840F2FF19ED1A5D
-S1130DF80435651907F5007700F071FA231DEB1A1D
-S1130E084B4506D920463946FFF7A8FF044680B16A
-S1130E18051D16F8013B08F1FF381FFA88F805F894
-S1130E28013BB8F1000FE7D10120BDE8F083BDE82C
-S1130E38F083BDE8F0830000034A4FF0FF331360EA
-S1130E48024A1360704700BF04020020000000201B
-S1130E5870B504460E461546FFF740FFFF2815D027
-S1130E68601E8019FFF73AFFFF280FD024F4FE73A1
-S1130E7823F00303B3F5005F0CBF05480548B3B27C
-S1130E8821462A46BDE87040FFF790BF002070BD98
-S1130E9800000020040200202DE9F0410E4604461B
-S1130EA8FFF71CFF013C0546A019FFF717FFFF2DAC
-S1130EB807465CD0FF285DD0854258D8002D53D012
-S1130EC8132854D82D4E0024B04600F008FA98F898
-S1130ED80830AB4204D10C235C43284B1C5906E070
-S1130EE80134132C08F10C08EFD14FF0FF34DFF86C
-S1130EF88C80002500F0F3F998F80830BB4205D13E
-S1130F080C235D431D4B53F8058006E00135132D72
-S1130F1808F10C08EED14FF0FF38002500F0DFF996
-S1130F28337ABB4205D1154B0C2202FB05356B689D
-S1130F3804E001350C36132DF0D10023C4EB080668
-S1130F48F618C6F38F26002509E000F0C8F92046F4
-S1130F58FFF700FD04F5806448B90135ADB2B54228
-S1130F68F3D30120BDE8F0812846BDE8F0810020D4
-S1130F78BDE8F0810020BDE8F08100BFC017000083
-S1130F880F4B01B51A68013217D05A68996842F2B2
-S1130F98F0008918DA6889181A6989185A69891849
-S1130FA89A698918DA698B185B4201AA42F8043DE8
-S1130FB804216A46FFF74CFF00E0012008BD00BF8A
-S1130FC80000002042F2040318684FF400531B6821
-S1130FD8C01842F208031B68C01842F20C031B68CD
-S1130FE8C01842F210031B68C01842F214031B68AD
-S1130FF8C01842F218031B68C01842F2F0031B68B9
-S1131008C018D0F1010038BF002070470A4800B565
-S11310180368013302D0FFF77DFE58B1074803681F
-S1131028013306D0FFF776FE003018BF01205DF8C3
-S113103804FB01205DF804FB0000002004020020EA
-S1131048FFF7FABEFFF704BFFFF726BFFFF7BABFE3
-S113105800B5FFF795FF18B15DF804EBFFF7D6BFAD
-S11310685DF804FB054B00224CF24F311A605960BD
-S113107805219A601960024B1A80704710E000E05D
-S113108808040020014B00221A60704710E000E0B9
-S1131098044B1B68DB0303D5034B1A8801321A80FF
-S11310A8704700BF10E000E00804002000B5FFF717
-S11310B8EFFF024B18885DF804FB00BF080400200A
-S11310C800B50748FFF784F9FFF740FA01460548D9
-S11310D84FF4614260235DF804EBFFF713BD00BFD2
-S11310E80100001000C0004070B5CDB2402D064686
-S11310F803D91848572100F069F817482946FFF71B
-S113110895FD40B101E000F0EAF81348FFF766FDE9
-S11311180028F8D003E00F485A2100F057F80024BB
-S113112814E000F0DCF8315D0B48FFF77FFD40B1B7
-S113113801E000F0D4F80848FFF750FD0028F8D083
-S113114803E00448622100F041F80134A3B2AB4241
-S1131158E7D370BDA418000000C00040F0B5174CD8
-S1131168064625785DB91648FFF74CFD421C1FD08A
-S1131178144B187001232370134B1D7018E0124D83
-S11311880F482F78FFF73EFD431C13D00D492B78E9
-S1131198CF19787001330A78DBB29A422B700BD1DD
-S11311A830460131FFF788FD002323700120F0BD8C
-S11311B82846F0BD0020F0BD0020F0BD4C040020FE
-S11311C800C000400A0400204B040020034B00B573
-S11311D81860034B196000F082F8FCE75004002003
-S11311E85404002010B500F077F8012810D0094CF9
-S11311F82378012B0CD1FFF759FF074B1B683233B7
-S1131208984205D300232370BDE81040FFF740BD82
-S113121810BD00BF580400205C040020054B0122C7
-S113122800B51A70FFF742FF034B18605DF804EB32
-S1131238FFF7D8BF580400205C04002000B500F074
-S11312484DF8FFF70FFFFFF7FBFE00F00FF85DF80E
-S113125804EBFFF7E3BF00B500F041F8FFF718FF10
-S113126800F01AF85DF804EBFFF7BCBF01B5FF23E3
-S11312788DF8003000238DF8013000F03BF8FFF7BB
-S11312881FFF044B1B78012B02D1684600F050F86D
-S113129808BD00BF6004002000B50648FFF75EFFE4
-S11312A8012804D103485DF804EB00F041B85DF867
-S11312B804FB00BF61040020704700B5C9B2FFF702
-S11312C813FF5DF804EB00F02BB80000014B01227A
-S11312D81A7070476004002000F01AB8704770470D
-S11312E8034BFE22DA7002221871A3F844207047D7
-S11312F8A4040020054B00221A709A6483F8432042
-S1131308A3F844209A705A70704700BFA4040020C0
-S1131318024B1878003018BF01207047A40400203D
-S1131328024B002283F84320704700BFA404002026
-S113133870B503780546FF2B754C0ED1E370102366
-S11313480021012223714023617022706171A3710D
-S1131358E37121726272A2726CE02678012E40F069
-S1131368D580F32B40D011D8CF2B00F0B18005D80D
-S1131378C92B72D0CC2B40F0B480B0E0D12B00F054
-S1131388A18077D3D22B40F0AC808DE0FA2B44D0E7
-S113139806D8F52B0CD011D3F62B40F0A2801FE011
-S11313A8FD2B4BD0FE2B54D0FC2B40F09A8043E00D
-S11313B842783F2A61D8201DA16C06E043783F2B70
-S11313C85BD84168A1644278201DFFF775FCFF23B0
-S11313D8E3706A78A36CD318A3646B7801336EE066
-S11313E8FF23E370436843E0FF23E3700023A06C0A
-S11313F869681A4603E01C5C01331219D2B28B42A5
-S1131408F9D1434BC3F8072001221A7100225A71FB
-S11314189A710822A3F8442066E0FF23E3703D4B49
-S11314280722A364002323716371A371E2712372F9
-S11314386372A372082342E0002053E0FF2362781A
-S1131448E37000232371A371E3712372627106238D
-S113145835E00023237063703CE0421C3F21A06CFC
-S1131468FFF7F0FD00283AD0FF23E370A36C3F3365
-S1131478A36431E043783E2B01D9222032E0FF23D4
-S1131488E370A4F84460417819B9FFF7E1FD58BB4B
-S113149825E01F4C821CA06CFFF7D4FDF8B16A78D4
-S11314A8A36CD318A3641FE0FF23E3704022002336
-S11314B823716371E37123726372A2710723A4F821
-S11314C8443011E0A06C6968FFF7BEFD10B906E06E
-S11314D8FFF702FCFF23E370A4F8446004E0312022
-S11314E800E02020FFF7FCFE094C94F84330012B60
-S11314F802D11020FFF7F4FEB4F844100648012383
-S113150884F84330BDE87040FFF7D7BE70BD00BF14
-S10F1518A40400201B190000A7040020FC
-S113152440420F0000201C0080841E00008025001F
-S1131534999E36000040380000093D0000803E00BA
-S113154400004B00404B4C0000204E00808D5B009B
-S113155400C05D000080700000127A0000007D006D
-S113156480969800001BB7000080BB00C0E8CE0042
-S1131574647ADA000024F4000000FA00433A2F5796
-S11315846F726B2F736F6674776172652F4F70651A
-S11315946E424C542F5461726765742F44656D6FA9
-S11315A42F41524D434D335F4C4D33535F454B5F95
-S11315B44C4D3353383936325F43726F7373776FDC
-S11315C4726B732F426F6F742F6964652F2E2E2FE5
-S11315D46C69622F6472697665726C69622F7379BF
-S11315E47363746C2E63000000E10F4004E10F4048
-S11315F408E10F40433A2F576F726B2F736F667471
-S1131604776172652F4F70656E424C542F5461722A
-S11316146765742F44656D6F2F41524D434D335F9D
-S11316244C4D33535F454B5F4C4D3353383936324D
-S11316345F43726F7373776F726B732F426F6F7440
-S11316442F6964652F2E2E2F6C69622F647269765C
-S113165465726C69622F6770696F2E6300433A2F59
-S1131664576F726B2F736F6674776172652F4F7047
-S1131674656E424C542F5461726765742F44656DD2
-S11316846F2F41524D434D335F4C4D33535F454BA4
-S11316945F4C4D3353383936325F43726F7373770B
-S11316A46F726B732F426F6F742F6964652F2E2EC4
-S11316B42F6C69622F6472697665726C69622F6635
-S11316C46C6173686C69622E6300433A2F576F72BE
-S11316D46B2F736F6674776172652F4F70656E42FA
-S11316E44C542F5461726765742F44656D6F2F4198
-S11316F4524D434D335F4C4D33535F454B5F4C4D1B
-S11317043353383936325F43726F7373776F726B46
-S1131714732F426F6F742F6964652F2E2E2F6C699B
-S1131724622F6472697665726C69622F7561727472
-S11317346C69622E6300433A2F576F726B2F736F79
-S11317446674776172652F4F70656E424C542F54E2
-S113175461726765742F44656D6F2F41524D434D1B
-S1131764335F4C4D33535F454B5F4C4D33533839E2
-S113177436325F43726F7373776F726B732F426F7A
-S11317846F742F6964652F2E2E2F2E2E2F2E2E2F3D
-S11317942E2E2F536F757263652F41524D434D3373
-S11317A45F4C4D33532F43726F7373776F726B7344
-S11317B42F766563746F72732E630000002000003B
-S11317C40020000001000000004000000020000090
-S11317D4020000000060000000200000030000007C
-S11317E400800000002000000400000000A00000AD
-S11317F4002000000500000000C0000000200000DC
-S11318040600000000E000000020000007000000C3
-S11318140000010000200000080000000020010076
-S11318240020000009000000004001000020000026
-S11318340A00000000600100002000000B0000000A
-S113184400800100002000000C00000000A0010042
-S1131854002000000D00000000C001000020000072
-S11318640E00000000E00100002000000F00000052
-S1131874000002000080000010000000008002004C
-S1131884008000001100000000000300008000003C
-S11318941200000000800300008000001300000018
-S11318A4433A2F576F726B2F736F66747761726547
-S11318B42F4F70656E424C542F5461726765742FB8
-S11318C444656D6F2F41524D434D335F4C4D33533B
-S11318D45F454B5F4C4D3353383936325F43726F37
-S11318E47373776F726B732F426F6F742F696465B0
-S11318F42F2E2E2F2E2E2F2E2E2F2E2E2F536F754E
-S11319047263652F41524D434D335F4C4D33532F16
-S1121914756172742E63004F70656E424C5400FF
+S1130DB89846036821F4FE77013304460D46164627
+S1130DC827F0030706D140F8047B39464FF4007234
+S1130DD8FFF772FF2368BB4205D020463946FFF768
+S1130DE8BDFF0446F0B1236840F2FF19ED1A04353B
+S1130DF8651907F5007700F06CFA231DEB1A4B45CB
+S1130E0806D920463946FFF7A9FF044660B1051DF7
+S1130E1816F8013BB8F1010805F8013BEBD10120B4
+S1130E28BDE8F083BDE8F083BDE8F083034A4FF0E2
+S1130E38FF331360024A1360704700BF04020020A6
+S1130E480000002070B504460D461646FFF746FF1D
+S1130E58FF2815D0601E4019FFF740FFFF280FD068
+S1130E6824F4FE7323F00303B3F5005F0CBF0548B5
+S1130E780548214632462B46BDE87040FFF796BF29
+S1130E88002070BD00000020040200202DE9F0417C
+S1130E980E460446FFF722FF013C0546A019FFF75A
+S1130EA81DFFFF2D07465CD0FF285DD0854258D82A
+S1130EB8002D53D0132854D82D4E0024B04600F0EA
+S1130EC808FA98F80830AB4204D10C235C43284B49
+S1130ED81C5906E00134132C08F10C08EFD14FF02B
+S1130EE8FF34DFF88C80002500F0F3F998F8083017
+S1130EF8BB4205D10C235D431D4B53F8058006E026
+S1130F080135132D08F10C08EED14FF0FF380025F8
+S1130F1800F0DFF9337ABB4205D1154B0C2202FBF2
+S1130F2805356B6804E001350C36132DF0D1002328
+S1130F38C4EB0806F618C6F38F26002509E000F06E
+S1130F48C8F92046FFF706FD04F5806448B9013561
+S1130F58ADB2B542F3D30120BDE8F0812846BDE81F
+S1130F68F0810020BDE8F0810020BDE8F08100BFD9
+S1130F78B41700000F4B01B51A68013217D05A682C
+S1130F88996842F2F0008918DA6889181A69891888
+S1130F985A6989189A698918DA698B185B4201AA0F
+S1130FA842F8043D04216A46FFF74CFF00E00120A3
+S1130FB808BD00BF0000002042F2040318684FF483
+S1130FC800531B68C01842F208031B68C01842F299
+S1130FD80C031B68C01842F210031B68C01842F2C5
+S1130FE814031B68C01842F218031B68C01842F2A5
+S1130FF8F0031B68C018D0F1010038BF0020704707
+S11310080A4800B50368013302D0FFF783FE58B1DC
+S113101807480368013306D0FFF77CFE003018BF89
+S113102801205DF804FB01205DF804FB00000020AA
+S113103804020020FFF7FABEFFF704BFFFF726BF3C
+S1131048FFF7BABF00B5FFF795FF18B15DF804EBD9
+S1131058FFF7D6BF5DF804FB054B00224CF24F3175
+S11310681A60596005219A601960024B1A6070472A
+S113107810E000E008040020014B00221A607047C9
+S113108810E000E0044B1B68DB0303D5034B1A682C
+S113109801321A60704700BF10E000E00804002025
+S11310A800B5FFF7EFFF024B18685DF804FB00BFBB
+S11310B80804002000B50748FFF78AF9FFF746FA45
+S11310C8014605484FF4614260235DF804EBFFF7DD
+S11310D819BD00BF0100001000C0004070B5CDB2BA
+S11310E8402D064603D91848562100F069F81748D8
+S11310F82946FFF79BFD40B101E000F0EAF81348E8
+S1131108FFF76CFD0028F8D003E00F48592100F0E0
+S113111857F8002414E000F0DCF8315D0B48FFF7C1
+S113112885FD40B101E000F0D4F80848FFF756FD0A
+S11311380028F8D003E00448612100F041F80134A4
+S1131148A3B2AB42E7D370BD9818000000C00040BA
+S1131158F0B5174C064625785DB91648FFF752FDD9
+S1131168421C1FD0144B187001232370134B1D709D
+S113117818E0124D0F482F78FFF744FD431C13D095
+S11311880D492B78CF19787001330A78DBB29A426B
+S11311982B700BD130460131FFF78EFD00232370ED
+S11311A80120F0BD2846F0BD0020F0BD0020F0BDB0
+S11311B84E04002000C000400C0400204D04002010
+S11311C8034B00B51860034B196000F082F8FCE784
+S11311D8500400205404002010B500F077F80128CA
+S11311E810D0094C2378012B0CD1FFF759FF074B7A
+S11311F81B683233984205D300232370BDE810409E
+S1131208FFF746BD10BD00BF580400205C04002051
+S1131218054B012200B51A70FFF742FF034B186013
+S11312285DF804EBFFF7D8BF580400205C040020E5
+S113123800B500F04DF8FFF70FFFFFF7FBFE00F0D5
+S11312480FF85DF804EBFFF7E3BF00B500F041F8D1
+S1131258FFF718FF00F01AF85DF804EBFFF7BCBFBE
+S113126801B5FF238DF8003000238DF8013000F01C
+S11312783BF8FFF71FFF044B1B78012B02D168468C
+S113128800F050F808BD00BF6004002000B506480F
+S1131298FFF75EFF012804D103485DF804EB00F072
+S11312A841B85DF804FB00BF61040020704700B535
+S11312B8C9B2FFF713FF5DF804EB00F02BB8000088
+S11312C8014B01221A7070476004002000F01AB81C
+S11312D870477047034BFE22DA7002221871A3F894
+S11312E844207047A4040020054B00221A709A6415
+S11312F883F84320A3F844209A705A70704700BFBB
+S1131308A4040020024B1878003018BF012070474D
+S1131318A4040020024B002283F84320704700BF36
+S1131328A404002070B503780546FF2B754C0ED134
+S1131338E37010230021012223714023617022707D
+S11313486171A371E37121726272A2726CE02678F2
+S1131358012E40F0D580F32B40D011D8CF2B00F0CC
+S1131368B18005D8C92B72D0CC2B40F0B480B0E042
+S1131378D12B00F0A18077D3D22B40F0AC808DE044
+S1131388FA2B44D006D8F52B0CD011D3F62B40F009
+S1131398A2801FE0FD2B4BD0FE2B54D0FC2B40F039
+S11313A89A8043E042783F2A61D8201DA16C06E068
+S11313B843783F2B5BD84168A1644278201DFFF72E
+S11313C87BFCFF23E3706A78A36CD318A3646B785F
+S11313D801336EE0FF23E370436843E0FF23E370C7
+S11313E80023A06C69681A4603E01C5C01331219D7
+S11313F8D2B28B42F9D1434BC3F8072001221A71A8
+S113140800225A719A710822A3F8442066E0FF2347
+S1131418E3703D4B0722A364002323716371A37116
+S1131428E27123726372A372082342E0002053E03E
+S1131438FF236278E37000232371A371E37123729D
+S11314486271062335E00023237063703CE0421C7C
+S11314583F21A06CFFF7F0FD00283AD0FF23E3708A
+S1131468A36C3F33A36431E043783E2B01D9222097
+S113147832E0FF23E370A4F84460417819B9FFF718
+S1131488E1FD58BB25E01F4C821CA06CFFF7D4FD7E
+S1131498F8B16A78A36CD318A3641FE0FF23E37040
+S11314A84022002323716371E37123726372A27172
+S11314B80723A4F8443011E0A06C6968FFF7BEFD67
+S11314C810B906E0FFF708FCFF23E370A4F84460B2
+S11314D804E0312000E02020FFF7FCFE094C94F8DA
+S11314E84330012B02D11020FFF7F4FEB4F8441066
+S11314F80648012384F84330BDE87040FFF7D7BE9F
+S113150870BD00BFA40400200F190000A704002028
+S113151840420F0000201C0080841E00008025002B
+S1131528999E36000040380000093D0000803E00C6
+S113153800004B00404B4C0000204E00808D5B00A7
+S113154800C05D000080700000127A0000007D0079
+S113155880969800001BB7000080BB00C0E8CE004E
+S1131568647ADA000024F4000000FA00433A2F57A2
+S11315786F726B2F736F6674776172652F4F706526
+S11315886E424C542F5461726765742F44656D6FB5
+S11315982F41524D434D335F4C4D33535F454B5FA1
+S11315A84C4D3353383936325F43726F7373776FE8
+S11315B8726B732F426F6F742F6964652F2E2E2FF1
+S11315C86C69622F6472697665726C69622F7379CB
+S11315D87363746C2E63000000E10F4004E10F4054
+S11315E808E10F40433A2F576F726B2F736F66747D
+S11315F8776172652F4F70656E424C542F54617237
+S11316086765742F44656D6F2F41524D434D335FA9
+S11316184C4D33535F454B5F4C4D33533839363259
+S11316285F43726F7373776F726B732F426F6F744C
+S11316382F6964652F2E2E2F6C69622F6472697668
+S113164865726C69622F6770696F2E6300433A2F65
+S1131658576F726B2F736F6674776172652F4F7053
+S1131668656E424C542F5461726765742F44656DDE
+S11316786F2F41524D434D335F4C4D33535F454BB0
+S11316885F4C4D3353383936325F43726F73737717
+S11316986F726B732F426F6F742F6964652F2E2ED0
+S11316A82F6C69622F6472697665726C69622F6641
+S11316B86C6173686C69622E6300433A2F576F72CA
+S11316C86B2F736F6674776172652F4F70656E4206
+S11316D84C542F5461726765742F44656D6F2F41A4
+S11316E8524D434D335F4C4D33535F454B5F4C4D27
+S11316F83353383936325F43726F7373776F726B53
+S1131708732F426F6F742F6964652F2E2E2F6C69A7
+S1131718622F6472697665726C69622F756172747E
+S11317286C69622E6300433A2F576F726B2F736F85
+S11317386674776172652F4F70656E424C542F54EE
+S113174861726765742F44656D6F2F41524D434D27
+S1131758335F4C4D33535F454B5F4C4D33533839EE
+S113176836325F43726F7373776F726B732F426F86
+S11317786F742F6964652F2E2E2F2E2E2F2E2E2F49
+S11317882E2E2F536F757263652F41524D434D337F
+S11317985F4C4D33532F43726F7373776F726B7350
+S11317A82F766563746F72732E6300000020000047
+S11317B8002000000100000000400000002000009C
+S11317C80200000000600000002000000300000088
+S11317D800800000002000000400000000A00000B9
+S11317E8002000000500000000C0000000200000E8
+S11317F80600000000E000000020000007000000D0
+S11318080000010000200000080000000020010082
+S11318180020000009000000004001000020000032
+S11318280A00000000600100002000000B00000016
+S113183800800100002000000C00000000A001004E
+S1131848002000000D00000000C00100002000007E
+S11318580E00000000E00100002000000F0000005E
+S11318680000020000800000100000000080020058
+S11318780080000011000000000003000080000048
+S11318881200000000800300008000001300000024
+S1131898433A2F576F726B2F736F66747761726553
+S11318A82F4F70656E424C542F5461726765742FC4
+S11318B844656D6F2F41524D434D335F4C4D335347
+S11318C85F454B5F4C4D3353383936325F43726F43
+S11318D87373776F726B732F426F6F742F696465BC
+S11318E82F2E2E2F2E2E2F2E2E2F2E2E2F536F755A
+S11318F87263652F41524D434D335F4C4D33532F23
+S1121908756172742E63004F70656E424C54000B
S903017B80
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/boot.dox
new file mode 100644
index 00000000..664b4d30
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S8962_Crossworks Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/config.h
index 8e132b8b..88dbd197 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
index 4a17b69b..1cf07c2f 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
index 4650ea47..509f8d6e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/ide/lm3s8962_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/main.c
index 2f893d66..f22e08ff 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -48,12 +50,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)
@@ -75,12 +75,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/bin/demoprog_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/bin/demoprog_ek_lm3s8962.elf
index bb2e9ef7..f83c214e 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/bin/demoprog_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/bin/demoprog_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.c
index a1498e42..07dba5b5 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
@@ -177,28 +172,26 @@ static unsigned char UartReceiveByte(unsigned char *data)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
-/* index of the used reception message objects */
+/** \brief Index of the used reception message object. */
#define CAN_RX_MSGOBJECT_IDX (0)
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
-/* lookup table to quickly and efficiently convert a bit number to a bit mask */
+/** \brief Lookup table to quickly and efficiently convert a bit number to a bit mask. */
static const unsigned short canBitNum2Mask[] =
{
0x0001, /* bit 0 */
};
-/****************************************************************************************
-** NAME: CanSetBittiming
-** PARAMETER: none
-** RETURN VALUE: 1 if a valid bittiming configuration was found and set. 0 otherwise.
-** DESCRIPTION: Attempts to match the bittiming parameters to the requested baudrate
-** for a sample point between 65 and 75%, through a linear search
-** algorithm. It is based on the equation:
-** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+/************************************************************************************//**
+** \brief Attempts to match the bittiming parameters to the requested baudrate
+** for a sample point between 65 and 75%, through a linear search
+** algorithm. It is based on the equation:
+** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+** \return 1 if a valid bittiming configuration was found and set. 0 otherwise.
**
****************************************************************************************/
static unsigned char CanSetBittiming(void)
@@ -248,11 +241,9 @@ static unsigned char CanSetBittiming(void)
} /*** end of CanSetBittiming ***/
-/****************************************************************************************
-** NAME: BootComInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the CAN communication interface
+/************************************************************************************//**
+** \brief Initializes the CAN communication interface.
+** \return none.
**
****************************************************************************************/
void BootComInit(void)
@@ -279,12 +270,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.h
index 6da3f21c..adeb5f42 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/header.h
index 77ccf204..02698ee1 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/ide/lm3s8962_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/ide/lm3s8962_crossworks.hzs
index fa3ab9f2..5c9ed11b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/ide/lm3s8962_crossworks.hzs
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/ide/lm3s8962_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.c
index 0f469a13..c9959381 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.h
index 73e97bc3..001fa350 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.c
index 9c854f68..7bc3eaf9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.h
index b5126edb..c723d928 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/main.c
index 871181a4..f41a4b94 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
@@ -90,16 +88,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/prog.dox
new file mode 100644
index 00000000..d0ea87b7
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S8962_Crossworks User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.c
index ef3e5bd2..c0e0c79b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.h
index a01f7e58..567a59b6 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/vectors.c
index 494467ab..0ac1b1d4 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_Crossworks\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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[] =
{
@@ -137,6 +140,6 @@ const tIsrFunc _vectors[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/demo.dox
new file mode 100644
index 00000000..d1ac8e6a
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_Crossworks/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S8962_Crossworks Demo for Texas Instruments EK-LM3S8962/Crossworks
+\brief Preconfigured programs for the Texas Instruments EK-LM3S8962 and the Crossworks IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.bin b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.bin
index 94cf0cc1..5c2c6824 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.bin and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.bin differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf
index a58d8815..f42aebf2 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.map
index 8be20b59..4a168f03 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.map
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/bin/openbtl_ek_lm3s8962.map
@@ -7,36 +7,36 @@ start address 0x00000000
Program Header:
LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15
- filesz 0x000015e6 memsz 0x000015e6 flags r-x
+ filesz 0x000015e2 memsz 0x000015e2 flags r-x
LOAD off 0x00010000 vaddr 0x20000000 paddr 0x20000000 align 2**15
filesz 0x00000000 memsz 0x000006f0 flags rw-
private flags = 5000000: [Version5 EABI]
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .text 000015e6 00000000 00000000 00008000 2**2
+ 0 .text 000015e2 00000000 00000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 000006f0 20000000 20000000 00010000 2**2
ALLOC
- 2 .debug_info 000060ca 00000000 00000000 000095e6 2**0
+ 2 .debug_info 0000609a 00000000 00000000 000095e2 2**0
CONTENTS, READONLY, DEBUGGING
- 3 .debug_abbrev 000017a0 00000000 00000000 0000f6b0 2**0
+ 3 .debug_abbrev 0000176f 00000000 00000000 0000f67c 2**0
CONTENTS, READONLY, DEBUGGING
- 4 .debug_loc 00003b4f 00000000 00000000 00010e50 2**0
+ 4 .debug_loc 00003b87 00000000 00000000 00010deb 2**0
CONTENTS, READONLY, DEBUGGING
- 5 .debug_aranges 00000770 00000000 00000000 0001499f 2**0
+ 5 .debug_aranges 00000770 00000000 00000000 00014972 2**0
CONTENTS, READONLY, DEBUGGING
- 6 .debug_ranges 000007e0 00000000 00000000 0001510f 2**0
+ 6 .debug_ranges 000007e0 00000000 00000000 000150e2 2**0
CONTENTS, READONLY, DEBUGGING
- 7 .debug_line 0000241e 00000000 00000000 000158ef 2**0
+ 7 .debug_line 00002426 00000000 00000000 000158c2 2**0
CONTENTS, READONLY, DEBUGGING
- 8 .debug_str 00001642 00000000 00000000 00017d0d 2**0
+ 8 .debug_str 00001642 00000000 00000000 00017ce8 2**0
CONTENTS, READONLY, DEBUGGING
- 9 .comment 00000030 00000000 00000000 0001934f 2**0
+ 9 .comment 00000030 00000000 00000000 0001932a 2**0
CONTENTS, READONLY
- 10 .ARM.attributes 00000033 00000000 00000000 0001937f 2**0
+ 10 .ARM.attributes 00000033 00000000 00000000 0001935a 2**0
CONTENTS, READONLY
- 11 .debug_frame 00001458 00000000 00000000 000193b4 2**2
+ 11 .debug_frame 00001458 00000000 00000000 00019390 2**2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .text 00000000 .text
@@ -54,13 +54,13 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 cstart.c
0000011c l F .text 00000000 zero_loop2
-000013b2 l F .text 00000000 zero_loop
+000013ae l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 main.c
00000000 l df *ABS* 00000000 flashlib.c
00000000 l df *ABS* 00000000 sysctl.c
000002b4 l F .text 00000148 SysCtlPeripheralValid
-000013f8 l O .text 0000005c g_pulXtals
-00001470 l O .text 0000000c g_pulRCGCRegs
+000013f4 l O .text 0000005c g_pulXtals
+0000146c l O .text 0000000c g_pulRCGCRegs
00000000 l df *ABS* 00000000 gpio.c
00000734 l F .text 00000098 GPIOBaseValid
00000000 l df *ABS* 00000000 uartlib.c
@@ -71,7 +71,7 @@ SYMBOL TABLE:
20000001 l O .bss 00000040 xcpCtoReqPacket.4167
00000000 l df *ABS* 00000000 xcp.c
00000bd0 l F .text 00000014 XcpSetCtoError
-000014ad l O .text 00000008 xcpStationId
+000014a9 l O .text 00000008 xcpStationId
20000044 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
20000090 l O .bss 00000001 backdoorOpen
@@ -87,21 +87,21 @@ SYMBOL TABLE:
200000a2 l O .bss 00000041 xcpCtoReqPacket.4369
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
-200000e4 l O .bss 00000002 millisecond_counter
+200000e4 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
00001048 l F .text 0000003c FlashGetSector
00001084 l F .text 00000044 FlashWriteBlock
000010c8 l F .text 0000004c FlashSwitchBlock
-00001114 l F .text 00000084 FlashAddToBlock
-000014d8 l O .text 000000e4 flashLayout
+00001114 l F .text 00000080 FlashAddToBlock
+000014d4 l O .text 000000e4 flashLayout
200000e8 l O .bss 00000204 bootBlockInfo
200002ec l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000
00000200 l *ABS* 00000000 __STACKSIZE__
00000b64 g F .text 0000002c ComInit
-000011b0 g F .text 00000048 FlashWrite
+000011ac g F .text 00000048 FlashWrite
00000e64 g F .text 00000018 AssertFailure
-00001390 g F .text 00000044 reset_handler
+0000138c g F .text 00000044 reset_handler
0000101c g F .text 0000001c TimerUpdate
00000c10 g F .text 00000010 XcpPacketTransmitted
00000b90 g F .text 0000001c ComTask
@@ -110,30 +110,30 @@ SYMBOL TABLE:
00000b34 g F .text 0000001a BootInit
00000e40 g F .text 00000020 BackDoorInit
00000e62 g F .text 00000002 CopService
-000015e6 g .text 00000000 _etext
+000015e2 g .text 00000000 _etext
00000abc g F .text 00000024 UARTSpaceAvail
00001010 g F .text 0000000c TimerReset
00000b08 g F .text 0000002c UARTCharPutNonBlocking
00000b4e g F .text 00000016 BootTask
-000012c8 g F .text 00000040 FlashWriteChecksum
+000012c4 g F .text 00000040 FlashWriteChecksum
00000bae g F .text 00000010 ComTransmitPacket
000003fc g F .text 00000038 SysCtlPeripheralEnable
00000c00 g F .text 00000010 XcpIsConnected
00000fcc g F .text 00000004 NvmInit
-00001198 g F .text 00000018 FlashInit
+00001194 g F .text 00000018 FlashInit
200004f0 g .bss 00000000 _ebss
-00001384 g F .text 0000000c UnusedISR
+00001380 g F .text 0000000c UnusedISR
00000bac g F .text 00000002 ComFree
00000ec8 g F .text 00000028 UartInit
00000fd4 g F .text 00000004 NvmErase
00000ae0 g F .text 00000028 UARTCharGetNonBlocking
20000000 g .bss 00000000 _bss
00000c20 g F .text 000001e8 XcpPacketReceived
-00001350 g F .text 00000034 FlashDone
+0000134c g F .text 00000034 FlashDone
000000f0 g F .text 00000050 EntryFromProg
000001cc g F .text 000000e8 FlashProgram
00000be4 g F .text 0000001c XcpInit
-000011f8 g F .text 000000d0 FlashErase
+000011f4 g F .text 000000d0 FlashErase
00000154 g F .text 0000002c main
00000580 g F .text 000001b4 SysCtlClockGet
000009b8 g F .text 00000034 UARTDisable
@@ -148,7 +148,7 @@ SYMBOL TABLE:
00000fd0 g F .text 00000004 NvmWrite
00000e7c g F .text 00000028 CpuStartUserProgram
200006f0 g .bss 00000000 _estack
-00001308 g F .text 00000048 FlashVerifyChecksum
+00001304 g F .text 00000048 FlashVerifyChecksum
20000000 g .text 00000000 _edata
00000000 g O .text 000000f0 _vectab
00000930 g F .text 00000034 GPIOPinTypeUART
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/boot.dox
new file mode 100644
index 00000000..92987b0b
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S8962_GCC Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/config.h
index 8e132b8b..b3c58376 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
index 4a17b69b..a5d7eea0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/main.c
index 2f893d66..7024e7ca 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -48,12 +50,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)
@@ -75,12 +75,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/bin/demoprog_ek_lm3s8962.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/bin/demoprog_ek_lm3s8962.elf
index e0b0d6e9..a1e79986 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/bin/demoprog_ek_lm3s8962.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/bin/demoprog_ek_lm3s8962.elf differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.c
index a1498e42..170a33b0 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
@@ -177,28 +172,26 @@ static unsigned char UartReceiveByte(unsigned char *data)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
-/* index of the used reception message objects */
+/** \brief Index of the used reception message object. */
#define CAN_RX_MSGOBJECT_IDX (0)
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
-/* lookup table to quickly and efficiently convert a bit number to a bit mask */
+/** \brief Lookup table to quickly and efficiently convert a bit number to a bit mask. */
static const unsigned short canBitNum2Mask[] =
{
0x0001, /* bit 0 */
};
-/****************************************************************************************
-** NAME: CanSetBittiming
-** PARAMETER: none
-** RETURN VALUE: 1 if a valid bittiming configuration was found and set. 0 otherwise.
-** DESCRIPTION: Attempts to match the bittiming parameters to the requested baudrate
-** for a sample point between 65 and 75%, through a linear search
-** algorithm. It is based on the equation:
-** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+/************************************************************************************//**
+** \brief Attempts to match the bittiming parameters to the requested baudrate
+** for a sample point between 65 and 75%, through a linear search
+** algorithm. It is based on the equation:
+** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+** \return 1 if a valid bittiming configuration was found and set. 0 otherwise.
**
****************************************************************************************/
static unsigned char CanSetBittiming(void)
@@ -248,11 +241,9 @@ static unsigned char CanSetBittiming(void)
} /*** end of CanSetBittiming ***/
-/****************************************************************************************
-** NAME: BootComInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the CAN communication interface
+/************************************************************************************//**
+** \brief Initializes the CAN communication interface.
+** \return none.
**
****************************************************************************************/
void BootComInit(void)
@@ -279,12 +270,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.h
index 6da3f21c..ff3f333e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/cstart.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/cstart.c
index 348255d9..9c7b0a66 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/cstart.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/cstart.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\cstart.c
+* \brief Demo program C startup source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/header.h
index 77ccf204..09e6e7d8 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.c
index 0f469a13..c9e0cf9c 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.h
index 73e97bc3..1a7e2063 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.c
index 9c854f68..909a3d89 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.h
index b5126edb..9c0efec1 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/main.c
index 871181a4..526106a6 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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)
@@ -90,16 +88,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/prog.dox
new file mode 100644
index 00000000..7bbf345a
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S8962_GCC User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.c
index ef3e5bd2..4db94771 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.h
index a01f7e58..3cb415db 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/vectors.c
index 6462dc81..bf29a545 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/Prog/vectors.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_GCC\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_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 .
+*
+* 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 .
+*
+* \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[] =
{
@@ -137,6 +140,6 @@ const tIsrFunc _vectab[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/demo.dox
new file mode 100644
index 00000000..7a29a3f4
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_GCC/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S8962_GCC Demo for Texas Instruments EK-LM3S8962/GCC
+\brief Preconfigured programs for the Texas Instruments EK-LM3S8962 and the GCC compiler.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out
index 13ce4883..471caa9f 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.srec
index ece26814..45bda5d9 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.srec
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/bin/openbtl_ek_lm3s8962.srec
@@ -1,21 +1,21 @@
S01B00006F70656E62746C5F656B5F6C6D3373383936322E737265632F
-S1130000F8060020D90D0000C5180000C51800002E
-S1130010C5180000C5180000C5180000C518000068
-S1130020C5180000C5180000C5180000C518000058
-S1130030C5180000C5180000C5180000C518000048
-S1130040C5180000C5180000C5180000C518000038
-S1130050C5180000C5180000C5180000C518000028
-S1130060C5180000C5180000C5180000C518000018
-S1130070C5180000C5180000C5180000C518000008
-S1130080C5180000C5180000C5180000C5180000F8
-S1130090C5180000C5180000C5180000C5180000E8
-S11300A0C5180000C5180000C5180000C5180000D8
-S11300B0C5180000C5180000C5180000C5180000C8
-S11300C0C5180000C5180000C5180000C5180000B8
-S11300D0C5180000C5180000C5180000C5180000A8
-S11300E0C5180000C5180000C5180000C518000098
-S11300F0044B9D46C046C046C046C04600F036FE8E
-S113010001F0CAF8F8060020DFF85814884200F01D
+S1130000F8060020D50D0000C1180000C11800003A
+S1130010C1180000C1180000C1180000C118000078
+S1130020C1180000C1180000C1180000C118000068
+S1130030C1180000C1180000C1180000C118000058
+S1130040C1180000C1180000C1180000C118000048
+S1130050C1180000C1180000C1180000C118000038
+S1130060C1180000C1180000C1180000C118000028
+S1130070C1180000C1180000C1180000C118000018
+S1130080C1180000C1180000C1180000C118000008
+S1130090C1180000C1180000C1180000C1180000F8
+S11300A0C1180000C1180000C1180000C1180000E8
+S11300B0C1180000C1180000C1180000C1180000D8
+S11300C0C1180000C1180000C1180000C1180000C8
+S11300D0C1180000C1180000C1180000C1180000B8
+S11300E0C1180000C1180000C1180000C1180000A8
+S11300F0044B9D46C046C046C046C04600F034FE90
+S113010001F0C8F8F8060020DFF85814884200F01F
S1130110A980DFF85414884200F0A480DFF84C145E
S1130120884200F09F80DFF84814884200F09A80EB
S1130130DFF84014884200F09580DFF83C148842D0
@@ -114,292 +114,292 @@ S11306F0001BB7000080BB00C0E8CE00647ADA00BB
S11307000024F4000000FA0080B5034A1060516030
S113071000F005F8FCE700BFDC04002070477047D8
S11307204FF0FF305B4908605B490860704770B563
-S113073004460D46164600F042F9FF2805D0281954
-S1130740401E00F03CF9FF2801D1002070BD600A72
-S11307504002B0F5005F2B469BB23246214603D1DE
-S11307604D48BDE8704099E04A48BDE8704095E0C6
-S113077070B504460D4600F022F906462819401EBD
-S113078000F01DF9FF2E01D0FF2801D1002070BD1B
-S113079001463046BDE87040E6E080B53E48016859
-S11307A011F1010F01D1012002BD41688268511885
-S11307B0C268511802695118426951188269511866
-S11307C0C0694018C043401C009000AA042142F2B2
-S11307D0F000FFF7ACFF02BD4FF40050016842681F
-S11307E0511882685118C268511802695118426937
-S11307F051188069401842F2F0010968081801D1C3
-S1130800012070470020704780B52348016811F12A
-S1130810010F03D000F082F8002808D01D480168B9
-S113082011F1010F05D000F079F8002801D1002062
-S113083002BD012002BD80B5CA0501D0002002BD61
-S113084002688A4201D1012002BD01604FF40072A6
-S1130850001D00F087F9012002BD38B504460D469D
-S11308600D48844208D10B4C29462046FFF7E3FF8C
-S113087000280DD1002032BDB5F5005F01D104463A
-S1130880F2E7204600F04AF80028EDD1002032BDFE
-S1130890204632BD00000020040200202DE9F04172
+S113073004460D46164600F040F9FF2805D0281956
+S1130740401E00F03AF9FF2801D1002070BD600A74
+S11307504002B0F5005F2B463246214603D14E4895
+S1130760BDE870409AE04B48BDE8704096E070B533
+S113077004460D4600F021F906462819401E00F0F3
+S11307801CF9FF2E01D0FF2801D1002070BD0146C5
+S11307903046BDE87040E5E080B53F48016811F19E
+S11307A0010F01D1012002BD416882685118C2685D
+S11307B05118026951184269511882695118C06967
+S11307C04018C043401C009000AA042142F2F000EB
+S11307D0FFF7ADFF02BD4FF40050016842685118A5
+S11307E082685118C2685118026951184269511837
+S11307F08069401842F2F0010968081801D101200B
+S113080070470020704780B52348016811F1010F3B
+S113081003D000F081F8002808D01E48016811F1C7
+S1130820010F05D000F078F8002801D1002002BDA6
+S1130830012002BD80B5CA0501D0002002BD0268B6
+S11308408A4201D1012002BD01604FF40072001DF3
+S113085000F086F9012002BD38B504460D460E4865
+S1130860844208D10B4C29462046FFF7E3FF0028B9
+S11308700DD1002032BDB5F5005F01D10446F2E789
+S1130880204600F049F80028EDD1002032BD204672
+S113089032BD000000000020040200202DE9F041D8
S11308A00746884614461D464FEA5826760238689D
-S11308B010F1010F05D131463846FFF7BCFF00287F
-S11308C01DD03868B04205D031463846FFF7C5FF21
+S11308B010F1010F05D131463846FFF7BBFF002880
+S11308C01DD03868B04205D031463846FFF7C4FF22
S11308D0070014D03868A8EB0000C01900F1040820
S11308E0FFF71DFF381DA8EB0000B0F5007F0AD309
-S11308F006F500713846FFF7B0FF070001D100206C
-S11309000AE007F1040814F8010B08F8010B6D1E46
-S1130910ADB2002DE4D10120BDE8F081F8B5044664
-S11309200125206800F04BF8FF2801D10020F2BD1A
-S1130930002600E0761C802E14D2216811EB860775
-S113094014EB860040680090FFF7E9FE0422394664
-S113095000A800F047F9002803D1386800998842BC
-S1130960E8D000252846F2BDF8B50D46854222D3CD
-S1130970002820D0142D1ED200F03CF8044628464E
-S113098000F038F80646284600F04CF88019401E5E
-S1130990001B401C850AADB2002600E0761CB6B2EE
-S11309A03746AF4209DAFFF7BAFE04EB872000F0BE
-S11309B0FDF80028F2D00020F2BD0120F2BD38B5C8
-S11309C00446002501E06D1CEDB2132D10D2FFF793
-S11309D0A6FE05EB450080000FF2780142589442D0
-S11309E0F1D34018416889188C42ECD2007A32BDA8
-S11309F0FF2032BD38B50446002500E06D1CEDB281
-S1130A00132D0CD2FFF78BFE05EB450080000FF28F
-S1130A1044014218127AA242F0D1405832BD4FF03C
-S1130A20FF3032BD38B50446002500E06D1CEDB240
-S1130A30132D0CD2FFF773FE05EB45000FF21401E2
-S1130A4001EB8000017AA142F0D1406832BD002060
-S1130A5032BD000000200000002000000100000062
-S1130A6000400000002000000200000000600000C0
-S1130A7000200000030000000080000000200000AF
-S1130A800400000000A00000002000000500000099
-S1130A9000C00000002000000600000000E000008C
-S1130AA000200000070000000000010000200000FA
-S1130AB008000000002001000020000009000000E0
-S1130AC000400100002000000A0000000060010056
-S1130AD0002000000B000000008001000020000046
-S1130AE00C00000000A00100002000000D00000028
-S1130AF000C00100002000000E00000000E0010022
-S1130B00002000000F000000000002000080000030
-S1130B1010000000008002000080000011000000AE
-S1130B2000000300008000001200000000800300A9
-S1130B30008000001300000080B500F0E1F80028F8
-S1130B400DD000F00AF900F030F905484FF40051D7
-S1130B50016042F204000068BDE80240004701BDA4
-S1130B6008ED00E070B504460D46164605E015F89C
-S1130B70010B04F8010BFFF7D2FD3046461E80B28C
-S1130B800028F4D170BD00F027B950F8041B61B1FE
-S1130B9050F8042BD30744BFA9F101039A1800238A
-S1130BA042F8043B091FFAD1EFE7704710B5044639
-S1130BB0A00504D084210FF2DC00FFF7A5FDDFF8C7
-S1130BC0C000012141610460DFF8B81081608168D0
-S1130BD08907FCD4C068C00702D54FF0FF3010BDB0
-S1130BE0002010BD70B504460D46164615F0030FDF
-S1130BF004D0C8210FF29C00FFF786FD16F0030F06
-S1130C0004D0C9210FF28C00FFF77EFDDFF87000DD
-S1130C1001214161DFF870100968C90726D5002E4B
-S1130C2026D0E909C9010160184A06E005F07C01F3
-S1130C3054F8043B53502D1D361F15F07C0F02D180
-S1130C40016B002901D1002EF0D111490162016A22
-S1130C50C907FCD4E3E70560216841600C49816061
-S1130C608168C907FCD4241D2D1D361F002EF2D126
-S1130C70C068C00702D54FF0FF3070BD002070BDC2
-S1130C8000D00F40020042A4A0E10F4000D10F4069
-S1130C90010042A4433A5C576F726B5C736F6674D5
-S1130CA0776172655C4F70656E424C545C5461723E
-S1130CB06765745C44656D6F5C41524D434D335FB1
-S1130CC04C4D33535F454B5F4C4D335338393632BB
-S1130CD05F4941525C426F6F745C6C69625C647220
-S1130CE0697665726C69625C666C6173686C696272
-S1130CF02E630000FFF714BDFFF719BDFFF738BDE1
-S1130D00FFF76ABD80B5FFF748FD002801D1002038
-S1130D1002BDBDE80140FFF777BD000080B50FF2CA
-S1130D2068000088ADF8000000F062F800F010FAE6
-S1130D3012480078012802D100A800F070F801BD23
-S1130D4010B50F4C204600F03AFA012804D1204691
-S1130D50BDE8104000F063B810BD704780B5C9B25B
-S1130D6000F005FABDE8014000F054B80348012141
-S1130D70017070470148002101707047F0040020A1
-S1130D809C04002000F03EB8FF00000080B500F095
-S1130D900CF80F484CF24F3141600021816005216D
-S1130DA001600C480021018001BD09480021016057
-S1130DB0704707480068C00303D506480188491CEA
-S1130DC00180704780B5FFF7F4FF0248008802BD38
-S1130DD010E000E0EC040020044B9D46C046C046F1
-S1130DE0C046C046FFF7C6FF00F056FAF8060020DA
-S1130DF0D34800210180816480F84310A0F8441096
-S1130E0081707047CE480078002801D100207047D7
-S1130E1001207047CA48002180F84310704710B57C
-S1130E200178C74CFF2912D100F07DF894F84300F3
-S1130E30012802D1102000F06EF8012084F843004C
-S1130E40B4F94410E01CBDE810404EE010BD227817
-S1130E50012AFBD1C92932D0CC293FD0CF293AD09D
-S1130E60D0292FD0D12933D0D2292ED0F32917D08D
-S1130E70F4290FD0F5290AD0F6290ED0FA2912D078
-S1130E80FC2913D0FD2914D0FE2915D029E000F047
-S1130E909BF8CBE700F0B3F8C8E700F08CF8C5E79F
-S1130EA000F0CAF8C2E700F074F8BFE700F06FF88A
-S1130EB0BCE700F05CF8B9E700F04DF8B6E700F0E5
-S1130EC0E0F8B3E700F0F5F8B0E700F0C8F8ADE7F4
-S1130ED000F01AF9AAE700F029F9A7E700F032F9BF
-S1130EE0A4E7202000F017F8A0E789B2FFF736BF87
-S1130EF010B4002303E00478E318DBB2401C0C4672
-S1130F00611E002CF7D11360012010BC70478C487F
-S1130F100021417070478A49FE22CA70087102207C
-S1130F20A1F84400704780B5FFF7F1FF8448012120
-S1130F300170FF21C1701021017100214171402114
-S1130F408171C171002101720121417281720821F4
-S1130F50A0F8441001BD10B5794C00202070FFF7B3
-S1130F60D6FFFF20E0700120A4F8440010BD7448AF
-S1130F70411CFF228A700022CA7042780A71002242
-S1130F804A718A71CA710621A0F844107047002082
-S1130F90C1E76B48FF21C1700FF2AC11816400F20C
-S1130FA0030100224A708A70CA7007224A6008212D
-S1130FB0A0F8441070476249FF22CA7040688864F0
-S1130FC00120A1F84400704770B505466A78402AAC
-S1130FD003DB2220BDE870409DE7594C04F1440630
-S1130FE07168201DFFF7BEFDFF20E070706869780E
-S1130FF0081870606878401CA4F8440070BD70B58F
-S113100005466878402803DB2220BDE8704082E76B
-S113101069684B4C04F1440671606A78201DFFF73F
-S1131020A1FDFF20E0707068697808187060687826
-S1131030401CA4F8440070BD38B5414CFF21E17058
-S113104004F20305E21D4168A06CFFF751FF6870CC
-S11310500020A870E8700820A4F8440031BD384886
-S1131060FF21C17000F2030100224A708A704022FD
-S1131070CA7000220A714A718A710721A0F84410CB
-S1131080704738B52E4C04F14405421C3F21686872
-S1131090FFF732FE002803D13120BDE832403AE7A1
-S11310A0FF20E07068683F3068600120A4F84400C5
-S11310B031BD38B5044660783F2803DB2220BDE803
-S11310C0324028E71E48FF21C1700121A0F84410D6
-S11310D06178002907D1FFF715FE002813D13120CC
-S11310E0BDE8324017E700F14405A21C6868FFF729
-S11310F003FE002803D13120BDE832400BE76868C5
-S113110061780818686031BD10B50D4C4168A06C59
-S1131110FFF7F4FD002803D13120BDE81040FAE6C2
-S1131120FF20E0700120A4F8440010BD80B5FFF753
-S11311302AFD0348FF21C1700121A0F8441001BD1C
-S1131140080400203120E6E64F70656E424C5400DE
-S113115080B53F48FFF78AF8FFF734F960234FF46E
-S1131160614201463B48BDE8005000F0B1B870B59B
-S113117004460D46412D04DB57210FF2E000FFF732
-S1131180C3FA284600F050F8012804D05A210FF27F
-S1131190CC00FFF7B9FA00260CE0FFF7C0FA305D87
-S11311A000F042F8012804D062210FF2B000FFF7EA
-S11311B0ABFA761C2846B6B28642EED370BD38B57B
-S11311C00546254C607800280AD1201D00F01FF840
-S11311D0012803D10120607000202070002032BD5E
-S11311E020780019401D00F012F80128F6D120786B
-S11311F0421C22702079D2B28242EFD1201D411CC0
-S11312002846FFF7AFFC00206070012032BD10B506
-S11312100446104800F00BF910F1010F02D02070C1
-S1131220012010BD002010BD10B50A4C0146204617
-S113123000F011F9002803D1002010BDFFF76FFA68
-S1131240204600F0E1F80028F8D0012010BD00008D
-S11312500100001000C0004054040020433A5C57D1
-S11312606F726B5C736F6674776172655C4F7065E7
-S11312706E424C545C5461726765745C536F757252
-S113128063655C41524D434D335F4C4D33535C7544
-S11312906172742E6300000000F032F9002801D05E
-S11312A000F030F9002000F041F900F059F9000095
-S11312B0DFF8CC11884207D0DFF8C811884203D088
-S11312C0DFF8C411884201D1012070470020704723
-S11312D0F8B504460E4617461D46FFF7E9FF0028F9
-S11312E005D140F20D110FF2B810FFF70DFA002FDF
-S11312F005D14FF487710FF2A810FFF705FADFF854
-S11313008C01016811F0E04F19D0DFF884110268F4
-S11313100A40B2F1805F12D002680A40DFF87431EB
-S11313209A4203D1026892B2022A08D0026811409C
-S1131330DFF86421914204D10068000401D1102037
-S113134000E008207843864205D240F20F110FF2E4
-S11313505010FFF7D9F9204600F039F804F13000B5
-S1131360B6EB071F016804D241F0200101607F0839
-S113137002E021F020010160F000B0FBF7F0401C16
-S113138040088109616200F03F00A062E56200202C
-S1131390A0612046BDE8F240FFE710B50446FFF720
-S11313A087FF002805D14FF4CF710FF2F400FFF747
-S11313B0ABF904F12C00016841F01001016004F163
-S11313C03000016840F201321143016010BD10B5D4
-S11313D00446FFF76DFF002805D14FF4DF710FF2CB
-S11313E0C000FFF791F9A0690007FCD404F12C00B8
-S11313F0016821F01001016004F130000168DFF898
-S11314009C201140016010BD10B50446FFF750FF49
-S1131410002805D140F2E9310FF28400FFF774F996
-S1131420A069400900F0010080F0010010BD10B572
-S11314300446FFF73DFF002805D140F209410FF2B1
-S11314406000FFF761F9A069C00601D4206810BDEF
-S11314504FF0FF3010BD38B504460D46FFF728FFA6
-S1131460002805D140F25B410FF23400FFF74CF93C
-S1131470A069800602D42560012032BD002032BD5F
-S113148000C0004000D0004000E0004000E00F40F9
-S11314900000FF700000011000000310FEFCFFFFBD
-S11314A0433A5C576F726B5C736F667477617265F5
-S11314B05C4F70656E424C545C5461726765745C39
-S11314C044656D6F5C41524D434D335F4C4D335316
-S11314D05F454B5F4C4D3353383936325F49415287
-S11314E05C426F6F745C6C69625C6472697665728D
-S11314F06C69625C756172746C69622E63000000D1
-S11315000120704710B5074979441831064C7C44D2
-S1131510163404E00A68081D511888470146A142A0
-S1131520F8D110BDF0030000FC03000080B500F00A
-S113153005F800F017F800F022F8FCE780B506483B
-S1131540FEF7B2FE0548FEF791FE03214FF040205E
-S1131550BDE8044000F019B98003C0010100002077
-S113156000F07EB980B5FFF7D9F8FFF70FFCFFF75D
-S1131570C1FBFFF7D3FBBDE8014000F077B980B5AC
-S1131580FFF7CDF8FFF715FCFFF7DAFBBDE80140E4
-S113159000F075B9B0F1402F43D0DFF8241288422F
-S11315A03FD0DFF8201288423BD0DFF81C1288427B
-S11315B037D0DFF81812884233D0DFF8141288428B
-S11315C02FD0DFF8101288422BD0DFF80C1288429B
-S11315D027D0DFF80812884223D0DFF804128842AB
-S11315E01FD0DFF8001288421BD0DFF8FC118842BC
-S11315F017D0DFF8F811884213D0DFF8F4118842CD
-S11316000FD0DFF8F01188420BD0DFF8EC118842DC
-S113161007D0DFF8E811884203D0DFF8E4118842EC
-S113162001D1012070470020704770B506460C4672
-S11316301546FFF7AFFF002804D1E4210FF2C410D0
-S1131640FFF762F8002D08D0012D06D0022D04D03A
-S1131650E6210FF2B010FFF757F806F58060E907AE
-S1131660016801D5214300E0A143016006F58460CF
-S1131670A907016801D5214300E0A143016070BDC1
-S1131680F8B504460F4615461E46FFF783FF0028AB
-S113169005D14FF4DD710FF26C10FFF735F8012D11
-S11316A00BD0022D09D0042D07D00C2D05D04FF4FA
-S11316B0DF710FF25010FFF727F8082E11D00A2E11
-S11316C00FD00C2E0DD0092E0BD00B2E09D00D2EC1
-S11316D007D0002E05D040F2C5110FF22810FFF7F5
-S11316E013F8F84304F5A061EA070A6801D53A4300
-S11316F000E002400A6004F20451AA070A6801D516
-S11317003A4300E002400A6004F5A1616A070A68EE
-S113171001D53A4300E002400A6004F5A3612A07B8
-S11317200A6801D53A4300E002400A6004F20C5111
-S1131730F2070A6801D53A4300E002400A6004F562
-S1131740A261B2070A6801D53A4300E002400A6088
-S113175004F2145172070A6801D53A4300E00240CA
-S11317600A6004F21C5132070A6801D53A4300E0CA
-S113177002400A6004F5A561002E02D108683843CE
-S113178001E00A6810400860F1BD38B504460D4612
-S1131790FFF700FF002805D140F21F510FF264004B
-S11317A0FEF7B2FF022229462046FFF73EFF082338
-S11317B001222946204601B0BDE8304060E7000020
-S11317C0008005400050004000900540006000404B
-S11317D000A005400070004000B0054000400240F9
-S11317E000C005400050024000D0054000600240A7
-S11317F000E005400070024000F0054000D00340C6
-S113180000000640433A5C576F726B5C736F6674FA
-S1131810776172655C4F70656E424C545C546172C2
-S11318206765745C44656D6F5C41524D434D335F35
-S11318304C4D33535F454B5F4C4D3353383936323F
-S11318405F4941525C426F6F745C6C69625C6472A4
-S1131850697665726C69625C6770696F2E630000FB
-S11318600746384600F024F8FBE7000010B50F4C9B
-S113187001202070FFF7A6FA6060BDE8104010B5A3
-S1131880FFF780FA01280FD0084C207801280BD1EB
-S1131890FFF798FA61683231884205D3002020703E
-S11318A0BDE81040FFF748B910BD0000E404002073
-S11318B080B5C046C046024A11001820ABBEFBE703
-S11318C02600020040210FF20800FEF71DBF0000B1
-S11318D0433A5C576F726B5C736F667477617265C1
-S11318E05C4F70656E424C545C5461726765745C05
-S11318F0536F757263655C41524D434D335F4C4D7C
-S113190033535C4941525C766563746F72732E6322
-S11319100000000077F2FFFFF00400000000002048
-S113192000000000C046C046C046C046FFF7B4FCF5
-S9031925BE
+S11308F006F500713846FFF7AFFF070001D100206D
+S113090008E007F1040814F8010B08F8010B6D1E48
+S1130910E6D10120BDE8F081F8B504460125206840
+S113092000F04BF8FF2801D10020F2BD002600E0C2
+S1130930761C802E14D2216811EB860714EB8600F6
+S113094040680090FFF7EBFE0422394600A800F04F
+S113095047F9002803D1386800998842E8D0002577
+S11309602846F2BDF8B50D46854222D3002820D092
+S1130970142D1ED200F03CF80446284600F038F846
+S11309800646284600F04CF88019401E001B401C07
+S1130990850AADB2002600E0761CB6B23746AF42F7
+S11309A009DAFFF7BCFE04EB872000F0FDF800280D
+S11309B0F2D00020F2BD0120F2BD38B50446002576
+S11309C001E06D1CEDB2132D10D2FFF7A8FE05EB6C
+S11309D0450080000FF2780142589442F1D3401848
+S11309E0416889188C42ECD2007A32BDFF2032BDB6
+S11309F038B50446002500E06D1CEDB2132D0CD271
+S1130A00FFF78DFE05EB450080000FF2440142180C
+S1130A10127AA242F0D1405832BD4FF0FF3032BDBD
+S1130A2038B50446002500E06D1CEDB2132D0CD240
+S1130A30FFF775FE05EB45000FF2140101EB800092
+S1130A40017AA142F0D1406832BD002032BD0000DD
+S1130A500020000000200000010000000040000011
+S1130A6000200000020000000060000000200000E0
+S1130A7003000000008000000020000004000000CB
+S1130A8000A00000002000000500000000C00000DD
+S1130A90002000000600000000E00000002000002C
+S1130AA00700000000000100002000000800000012
+S1130AB000200100002000000900000000400100A7
+S1130AC0002000000A000000006001000020000077
+S1130AD00B00000000800100002000000C0000005A
+S1130AE000A00100002000000D00000000C0010073
+S1130AF0002000000E00000000E0010000200000C3
+S1130B000F00000000000200008000001000000040
+S1130B1000800200008000001100000000000300BB
+S1130B20008000001200000000800300008000002C
+S1130B301300000080B500F0E1F800280DD000F0AB
+S1130B400AF900F030F905484FF40051016042F20F
+S1130B5004000068BDE80240004701BD08ED00E064
+S1130B6070B504460D46164605E015F8010B04F869
+S1130B70010BFFF7D4FD3046461E80B20028F4D1A5
+S1130B8070BD00F027B950F8041B61B150F8042B74
+S1130B90D30744BFA9F101039A18002342F8043B88
+S1130BA0091FFAD1EFE7704710B50446A00504D039
+S1130BB084210FF2DC00FFF7A7FDDFF8C00001215C
+S1130BC041610460DFF8B810816081688907FCD452
+S1130BD0C068C00702D54FF0FF3010BD002010BD23
+S1130BE070B504460D46164615F0030F04D0C8210F
+S1130BF00FF29C00FFF788FD16F0030F04D0C92103
+S1130C000FF28C00FFF780FDDFF8700001214161D5
+S1130C10DFF870100968C90726D5002E26D0E90927
+S1130C20C9010160184A06E005F07C0154F8043B50
+S1130C3053502D1D361F15F07C0F02D1016B002976
+S1130C4001D1002EF0D111490162016AC907FCD417
+S1130C50E3E70560216841600C4981608168C90748
+S1130C60FCD4241D2D1D361F002EF2D1C068C007F0
+S1130C7002D54FF0FF3070BD002070BD00D00F4092
+S1130C80020042A4A0E10F4000D10F40010042A4A1
+S1130C90433A5C576F726B5C736F6674776172650D
+S1130CA05C4F70656E424C545C5461726765745C51
+S1130CB044656D6F5C41524D434D335F4C4D33532E
+S1130CC05F454B5F4C4D3353383936325F4941529F
+S1130CD05C426F6F745C6C69625C647269766572A5
+S1130CE06C69625C666C6173686C69622E63000097
+S1130CF0FFF716BDFFF71BBDFFF739BDFFF76BBD4F
+S1130D0080B5FFF749FD002801D1002002BDBDE8F0
+S1130D100140FFF778BD000080B50FF2680000883D
+S1130D20ADF8000000F062F800F010FA1248007804
+S1130D30012802D100A800F070F801BD10B50F4CD5
+S1130D40204600F03AFA012804D12046BDE81040BC
+S1130D5000F063B810BD704780B5C9B200F005FA61
+S1130D60BDE8014000F054B8034801210170704708
+S1130D700148002101707047F00400209C04002009
+S1130D8000F03EB8FF00000080B500F00CF80F48FA
+S1130D904CF24F31416000218160052101600C4813
+S1130DA00021016001BD0948002101607047074826
+S1130DB00068C00303D506480168491C01607047F8
+S1130DC080B5FFF7F4FF0248006802BD10E000E0C0
+S1130DD0EC040020044B9D46C046C046C046C046B5
+S1130DE0FFF7C6FF00F056FAF8060020D3480021AA
+S1130DF00180816480F84310A0F84410817070472A
+S1130E00CE480078002801D10020704701207047A7
+S1130E10CA48002180F84310704710B50178C74CC8
+S1130E20FF2912D100F07DF894F84300012802D183
+S1130E30102000F06EF8012084F84300B4F9441047
+S1130E40E01CBDE810404EE010BD2278012AFBD121
+S1130E50C92932D0CC293FD0CF293AD0D0292FD09C
+S1130E60D12933D0D2292ED0F32917D0F4290FD089
+S1130E70F5290AD0F6290ED0FA2912D0FC2913D06C
+S1130E80FD2914D0FE2915D029E000F09BF8CBE70A
+S1130E9000F0B3F8C8E700F08CF8C5E700F0CAF832
+S1130EA0C2E700F074F8BFE700F06FF8BCE700F0A9
+S1130EB05CF8B9E700F04DF8B6E700F0E0F8B3E706
+S1130EC000F0F5F8B0E700F0C8F8ADE700F01AF963
+S1130ED0AAE700F029F9A7E700F032F9A4E72020F7
+S1130EE000F017F8A0E789B2FFF736BF10B400236B
+S1130EF003E00478E318DBB2401C0C46611E002CAE
+S1130F00F7D11360012010BC70478C480021417058
+S1130F1070478A49FE22CA7008710220A1F8440071
+S1130F20704780B5FFF7F1FF844801210170FF216C
+S1130F30C170102101710021417140218171C17181
+S1130F40002101720121417281720821A0F844102C
+S1130F5001BD10B5794C00202070FFF7D6FFFF20AB
+S1130F60E0700120A4F8440010BD7448411CFF2225
+S1130F708A700022CA7042780A7100224A718A710A
+S1130F80CA710621A0F8441070470020C1E76B48DD
+S1130F90FF21C1700FF2AC11816400F20301002241
+S1130FA04A708A70CA7007224A600821A0F8441067
+S1130FB070476249FF22CA70406888640120A1F822
+S1130FC04400704770B505466A78402A03DB222046
+S1130FD0BDE870409DE7594C04F144067168201D3A
+S1130FE0FFF7BEFDFF20E070706869780818706034
+S1130FF06878401CA4F8440070BD70B50546687854
+S1131000402803DB2220BDE8704082E769684B4C2E
+S113101004F1440671606A78201DFFF7A1FDFF20EA
+S1131020E07070686978081870606878401CA4F8EB
+S1131030440070BD38B5414CFF21E17004F2030552
+S1131040E21D4168A06CFFF751FF68700020A87092
+S1131050E8700820A4F8440031BD3848FF21C1706D
+S113106000F2030100224A708A704022CA700022F2
+S11310700A714A718A710721A0F84410704738B583
+S11310802E4C04F14405421C3F216868FFF732FEF0
+S1131090002803D13120BDE832403AE7FF20E07058
+S11310A068683F3068600120A4F8440031BD38B559
+S11310B0044660783F2803DB2220BDE8324028E75D
+S11310C01E48FF21C1700121A0F844106178002955
+S11310D007D1FFF715FE002813D13120BDE83240B7
+S11310E017E700F14405A21C6868FFF703FE002817
+S11310F003D13120BDE832400BE7686861780818F5
+S1131100686031BD10B50D4C4168A06CFFF7F4FD6B
+S1131110002803D13120BDE81040FAE6FF20E0703A
+S11311200120A4F8440010BD80B5FFF72AFD034850
+S1131130FF21C1700121A0F8441001BD0804002062
+S11311403120E6E64F70656E424C540080B53F484E
+S1131150FFF78CF8FFF736F960234FF4614201463C
+S11311603B48BDE8005000F0B1B870B504460D46E8
+S1131170412D04DB56210FF2E000FFF7C5FA2846A3
+S113118000F050F8012804D059210FF2CC00FFF7E9
+S1131190BBFA00260CE0FFF7C2FA305D00F042F81B
+S11311A0012804D061210FF2B000FFF7ADFA761CDC
+S11311B02846B6B28642EED370BD38B50546254CF6
+S11311C0607800280AD1201D00F01FF8012803D1FF
+S11311D00120607000202070002032BD20780019AA
+S11311E0401D00F012F80128F6D12078421C22702C
+S11311F02079D2B28242EFD1201D411C2846FFF74C
+S1131200AFFC00206070012032BD10B504461048C8
+S113121000F00BF910F1010F02D02070012010BD75
+S1131220002010BD10B50A4C0146204600F011F90B
+S1131230002803D1002010BDFFF771FA204600F00A
+S1131240E1F80028F8D0012010BD000001000010D2
+S113125000C0004054040020433A5C576F726B5C3A
+S1131260736F6674776172655C4F70656E424C543F
+S11312705C5461726765745C536F757263655C413D
+S1131280524D434D335F4C4D33535C756172742E34
+S11312906300000000F032F9002801D000F030F9BA
+S11312A0002000F041F900F059F90000DFF8CC11FA
+S11312B0884207D0DFF8C811884203D0DFF8C41190
+S11312C0884201D10120704700207047F8B50446D8
+S11312D00E4617461D46FFF7E9FF002805D140F2E8
+S11312E00D110FF2B810FFF70FFA002F05D14FF4CC
+S11312F087710FF2A810FFF707FADFF88C01016875
+S113130011F0E04F19D0DFF8841102680A40B2F1FD
+S1131310805F12D002680A40DFF874319A4203D128
+S1131320026892B2022A08D002681140DFF86421F0
+S1131330914204D10068000401D1102000E008208B
+S11313407843864205D240F20F110FF25010FFF796
+S1131350DBF9204600F039F804F13000B6EB071F42
+S1131360016804D241F0200101607F0802E021F00D
+S113137020010160F000B0FBF7F0401C4008810937
+S1131380616200F03F00A062E5620020A061204697
+S1131390BDE8F240FFE710B50446FFF787FF0028D9
+S11313A005D14FF4CF710FF2F400FFF7ADF904F15A
+S11313B02C00016841F01001016004F13000016863
+S11313C040F201321143016010BD10B50446FFF72D
+S11313D06DFF002805D14FF4DF710FF2C000FFF755
+S11313E093F9A0690007FCD404F12C00016821F0F2
+S11313F01001016004F130000168DFF89C20114005
+S1131400016010BD10B50446FFF750FF002805D158
+S113141040F2E9310FF28400FFF776F9A069400940
+S113142000F0010080F0010010BD10B50446FFF784
+S11314303DFF002805D140F209410FF26000FFF79B
+S113144063F9A069C00601D4206810BD4FF0FF30D5
+S113145010BD38B504460D46FFF728FF002805D116
+S113146040F25B410FF23400FFF74EF9A0698006A9
+S113147002D42560012032BD002032BD00C00040EE
+S113148000D0004000E0004000E00F400000FF708A
+S11314900000011000000310FEFCFFFF433A5C57FC
+S11314A06F726B5C736F6674776172655C4F7065A5
+S11314B06E424C545C5461726765745C44656D6F34
+S11314C05C41524D434D335F4C4D33535F454B5F4D
+S11314D04C4D3353383936325F4941525C426F6F59
+S11314E0745C6C69625C6472697665726C69625C76
+S11314F0756172746C69622E63000000012070478C
+S113150010B5074979441831064C7C44163404E07C
+S11315100A68081D511888470146A142F8D110BD38
+S1131520F0030000FC03000080B500F005F800F0B3
+S113153017F800F022F8FCE780B50648FEF7B4FE81
+S11315400548FEF793FE03214FF04020BDE8044018
+S113155000F019B98003C0010100002000F07EB939
+S113156080B5FFF7DBF8FFF70FFCFFF7C1FBFFF7D0
+S1131570D3FBBDE8014000F077B980B5FFF7CFF8A1
+S1131580FFF715FCFFF7DAFBBDE8014000F075B981
+S1131590B0F1402F43D0DFF8241288423FD0DFF867
+S11315A0201288423BD0DFF81C12884237D0DFF883
+S11315B01812884233D0DFF8141288422FD0DFF893
+S11315C0101288422BD0DFF80C12884227D0DFF8A3
+S11315D00812884223D0DFF8041288421FD0DFF8B3
+S11315E0001288421BD0DFF8FC11884217D0DFF8C4
+S11315F0F811884213D0DFF8F41188420FD0DFF8D5
+S1131600F01188420BD0DFF8EC11884207D0DFF8E4
+S1131610E811884203D0DFF8E411884201D10120A7
+S113162070470020704770B506460C461546FFF714
+S1131630AFFF002804D1E4210FF2C410FFF764F8CF
+S1131640002D08D0012D06D0022D04D0E6210FF282
+S1131650B010FFF759F806F58060E907016801D575
+S1131660214300E0A143016006F58460A9070168F5
+S113167001D5214300E0A143016070BDF8B50446E3
+S11316800F4615461E46FFF783FF002805D14FF489
+S1131690DD710FF26C10FFF737F8012D0BD0022D1E
+S11316A009D0042D07D00C2D05D04FF4DF710FF2B3
+S11316B05010FFF729F8082E11D00A2E0FD00C2E47
+S11316C00DD0092E0BD00B2E09D00D2E07D0002ED5
+S11316D005D040F2C5110FF22810FFF715F8F843B2
+S11316E004F5A061EA070A6801D53A4300E0024024
+S11316F00A6004F20451AA070A6801D53A4300E0DB
+S113170002400A6004F5A1616A070A6801D53A43F8
+S113171000E002400A6004F5A3612A070A6801D5C3
+S11317203A4300E002400A6004F20C51F2070A68EE
+S113173001D53A4300E002400A6004F5A261B20711
+S11317400A6801D53A4300E002400A6004F21451E9
+S113175072070A6801D53A4300E002400A6004F2C5
+S11317601C5132070A6801D53A4300E002400A607E
+S113177004F5A561002E02D10868384301E00A6827
+S113178010400860F1BD38B504460D46FFF700FF70
+S1131790002805D140F21F510FF26400FEF7B4FF98
+S11317A0022229462046FFF73EFF0823012229464C
+S11317B0204601B0BDE8304060E7000000800540ED
+S11317C000500040009005400060004000A005402B
+S11317D00070004000B005400040024000C00540D9
+S11317E00050024000D005400060024000E0054087
+S11317F00070024000F0054000D0034000000640A5
+S1131800433A5C576F726B5C736F66747761726591
+S11318105C4F70656E424C545C5461726765745CD5
+S113182044656D6F5C41524D434D335F4C4D3353B2
+S11318305F454B5F4C4D3353383936325F49415223
+S11318405C426F6F745C6C69625C64726976657229
+S11318506C69625C6770696F2E63000007463846E6
+S113186000F024F8FBE7000010B50F4C01202070B5
+S1131870FFF7A6FA6060BDE8104010B5FFF780FAE4
+S113188001280FD0084C207801280BD1FFF798FAD3
+S113189061683231884205D300202070BDE81040D1
+S11318A0FFF748B910BD0000E404002080B5C0462D
+S11318B0C046024A11001820ABBEFBE72600020016
+S11318C041210FF20800FEF71FBF0000433A5C57A6
+S11318D06F726B5C736F6674776172655C4F706571
+S11318E06E424C545C5461726765745C536F7572DC
+S11318F063655C41524D434D335F4C4D33535C49FA
+S113190041525C766563746F72732E63000000004D
+S113191077F2FFFFF0040000000000200000000048
+S10F1920C046C046C046C046FFF7B4FCF9
+S9031921C2
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/boot.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/boot.dox
new file mode 100644
index 00000000..777b5852
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_LM3S_EK_LM3S8962_IAR Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/config.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/config.h
index b9d4613a..9a3ae3a4 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/config.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@@ -46,10 +48,15 @@
* 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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (50000)
+/** \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)
+/** \brief Compiler specific variable prefix to prevent its initialization during startup. */
#define BOOT_CPU_CONNECT_STATE_PREFIX __no_init
@@ -68,12 +75,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
@@ -84,10 +98,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)
@@ -102,6 +121,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)
@@ -114,7 +134,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)
@@ -127,6 +149,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
index 4a17b69b..dc95fd07 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
index a6e5eb38..825a2c7b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/lm3s8962.dep
@@ -6,9 +6,45 @@
Debug
+ $PROJ_DIR$\..\lib\driverlib\canlib.h
+ $PROJ_DIR$\..\lib\driverlib\debug.h
+ $PROJ_DIR$\..\lib\driverlib\canlib.c
+ $PROJ_DIR$\..\lib\driverlib\cpulib.c
+ $PROJ_DIR$\..\lib\driverlib\cpulib.h
+ $PROJ_DIR$\..\lib\driverlib\flashlib.c
+ $PROJ_DIR$\..\lib\driverlib\flashlib.h
+ $PROJ_DIR$\..\lib\driverlib\gpio.c
+ $PROJ_DIR$\..\lib\driverlib\gpio.h
+ $PROJ_DIR$\..\lib\driverlib\interrupt.c
+ $PROJ_DIR$\..\lib\driverlib\interrupt.h
+ $PROJ_DIR$\..\lib\driverlib\sysctl.c
+ $PROJ_DIR$\..\lib\driverlib\sysctl.h
+ $PROJ_DIR$\..\lib\driverlib\uartlib.c
+ $PROJ_DIR$\..\lib\driverlib\uartlib.h
+ $PROJ_DIR$\..\lib\inc\hw_can.h
+ $PROJ_DIR$\..\lib\inc\hw_flash.h
+ $PROJ_DIR$\..\lib\inc\hw_gpio.h
+ $PROJ_DIR$\..\lib\inc\hw_ints.h
+ $PROJ_DIR$\..\lib\inc\hw_memmap.h
+ $PROJ_DIR$\..\lib\inc\hw_nvic.h
+ $PROJ_DIR$\..\lib\inc\hw_sysctl.h
+ $PROJ_DIR$\..\lib\inc\hw_types.h
+ $PROJ_DIR$\..\lib\inc\hw_uart.h
+ $PROJ_DIR$\..\config.h
+ $PROJ_DIR$\..\hooks.c
+ $PROJ_DIR$\..\main.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
- $PROJ_DIR$\..\..\..\..\Source\assert.c
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\types.h
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
@@ -28,13 +64,13 @@
$TOOLKIT_DIR$\lib\shb_l.a
$PROJ_DIR$\..\obj\main.o
$PROJ_DIR$\..\obj\boot.o
- $PROJ_DIR$\..\obj\com.pbi
- $PROJ_DIR$\..\obj\backdoor.pbi
- $PROJ_DIR$\..\obj\com.o
- $PROJ_DIR$\..\obj\cop.o
$PROJ_DIR$\..\obj\xcp.o
- $PROJ_DIR$\..\obj\assert.pbi
$PROJ_DIR$\..\obj\backdoor.o
+ $PROJ_DIR$\..\obj\assert.pbi
+ $PROJ_DIR$\..\obj\cop.o
+ $PROJ_DIR$\..\obj\com.o
+ $PROJ_DIR$\..\obj\backdoor.pbi
+ $PROJ_DIR$\..\obj\com.pbi
$PROJ_DIR$\..\obj\cop.pbi
$PROJ_DIR$\..\obj\xcp.pbi
$PROJ_DIR$\..\obj\xcp.lst
@@ -54,8 +90,8 @@
$PROJ_DIR$\..\obj\interrupt.o
$PROJ_DIR$\..\obj\sysctl.o
$PROJ_DIR$\..\obj\uartlib.o
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\flashlib.pbi
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x
$PROJ_DIR$\..\obj\cpulib.pbi
$PROJ_DIR$\..\obj\gpio.pbi
$PROJ_DIR$\..\obj\interrupt.pbi
@@ -104,277 +140,28 @@
$PROJ_DIR$\..\obj\openbtl_ek_lm3s8962.map
$PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.srec
$PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
- $PROJ_DIR$\..\lib\driverlib\canlib.h
- $PROJ_DIR$\..\lib\driverlib\debug.h
- $PROJ_DIR$\..\lib\driverlib\cpulib.c
- $PROJ_DIR$\..\lib\driverlib\canlib.c
- $PROJ_DIR$\..\lib\driverlib\cpulib.h
- $PROJ_DIR$\..\lib\driverlib\flashlib.c
- $PROJ_DIR$\..\lib\driverlib\flashlib.h
- $PROJ_DIR$\..\lib\driverlib\gpio.c
- $PROJ_DIR$\..\lib\driverlib\gpio.h
- $PROJ_DIR$\..\lib\driverlib\interrupt.c
- $PROJ_DIR$\..\lib\driverlib\interrupt.h
- $PROJ_DIR$\..\lib\driverlib\sysctl.c
- $PROJ_DIR$\..\lib\driverlib\sysctl.h
- $PROJ_DIR$\..\lib\driverlib\uartlib.c
- $PROJ_DIR$\..\lib\driverlib\uartlib.h
- $PROJ_DIR$\..\lib\inc\hw_can.h
- $PROJ_DIR$\..\lib\inc\hw_flash.h
- $PROJ_DIR$\..\lib\inc\hw_gpio.h
- $PROJ_DIR$\..\lib\inc\hw_ints.h
- $PROJ_DIR$\..\lib\inc\hw_memmap.h
- $PROJ_DIR$\..\lib\inc\hw_nvic.h
- $PROJ_DIR$\..\lib\inc\hw_sysctl.h
- $PROJ_DIR$\..\lib\inc\hw_types.h
- $PROJ_DIR$\..\lib\inc\hw_uart.h
- $PROJ_DIR$\..\config.h
- $PROJ_DIR$\..\hooks.c
- $PROJ_DIR$\..\main.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c
$PROJ_DIR$\..\..\..\..\Source\file.h
- [ROOT_NODE]
-
-
- ILINK
- 97 95
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
+ $PROJ_DIR$\..\lib\driverlib\canlib.c
BICOMP
- 66
+ 124
ICCARM
- 71 63
+ 129 126
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 15 18 20 19 22 0 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\assert.c
-
-
- BICOMP
- 27
-
-
- ICCARM
- 77 76
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
-
-
- BICOMP
- 59
-
-
- ICCARM
- 83 55
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120 110 112
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120 110 112
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\backdoor.c
-
-
- BICOMP
- 23
-
-
- ICCARM
- 79 28
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\boot.c
-
-
- BICOMP
- 64
-
-
- ICCARM
- 68 21
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\com.c
-
-
- BICOMP
- 22
-
-
- ICCARM
- 85 24
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 6
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 6
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\cop.c
-
-
- BICOMP
- 29
-
-
- ICCARM
- 84 25
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\..\..\..\Source\xcp.c
-
-
- BICOMP
- 30
-
-
- ICCARM
- 31 26
-
-
-
-
- BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
- ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
-
-
-
-
- $PROJ_DIR$\..\obj\lm3s6965.pbd
-
-
- BILINK
- 27 23 64 22 29 57 50 56 49 51 80 52 65 58 53 66 59 54 67 30
-
-
-
-
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
-
-
- OBJCOPY
- 73
-
-
-
-
- ILINK
- 48 76 28 21 24 25 34 42 61 35 43 44 81 45 20 33 46 63 55 47 62 26 19 87 72 86
-
-
-
-
- $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
-
-
- ILINK
- 95
-
-
- OBJCOPY
- 96
-
-
-
-
- ILINK
- 48 76 28 21 89 90 24 25 34 42 61 35 43 44 81 45 20 33 46 63 55 47 62 26 19 87 72 86
+ 15 18 20 19 22 0 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10
@@ -383,44 +170,21 @@
BICOMP
- 50
+ 86
ICCARM
- 37 42
+ 73 78
BICOMP
- 102
+ 4
ICCARM
- 102
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\canlib.c
-
-
- BICOMP
- 88
-
-
- ICCARM
- 93 90
-
-
-
-
- BICOMP
- 113 116 118 117 120 98 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108
-
-
- ICCARM
- 113 116 118 117 120 98 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108
+ 4
@@ -429,21 +193,21 @@
BICOMP
- 49
+ 84
ICCARM
- 38 43
+ 74 79
BICOMP
- 114 116 119 120 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 104 108
+ 16 18 21 22 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 6 10
ICCARM
- 114 116 119 120 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 104 108
+ 16 18 21 22 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 6 10
@@ -452,21 +216,21 @@
BICOMP
- 51
+ 87
ICCARM
- 36 44
+ 72 80
BICOMP
- 115 116 117 119 120 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 106 108
+ 17 18 19 21 22 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 8 10
ICCARM
- 115 116 117 119 120 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 106 108
+ 17 18 19 21 22 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 8 10
@@ -475,76 +239,7 @@
BICOMP
- 52
-
-
- ICCARM
- 39 45
-
-
-
-
- BICOMP
- 116 118 120 102 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108
-
-
- ICCARM
- 116 118 120 102 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\sysctl.c
-
-
- BICOMP
- 53
-
-
- ICCARM
- 40 46
-
-
-
-
- BICOMP
- 116 118 119 120 102 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108 110
-
-
- ICCARM
- 116 118 119 120 102 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108 110
-
-
-
-
- $PROJ_DIR$\..\lib\driverlib\uartlib.c
-
-
- BICOMP
- 54
-
-
- ICCARM
- 41 47
-
-
-
-
- BICOMP
- 116 117 119 120 121 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108 112 110
-
-
- ICCARM
- 116 117 119 120 121 99 11 4 7 122 16 130 15 0 132 3 9 134 13 18 108 112 110
-
-
-
-
- $PROJ_DIR$\..\hooks.c
-
-
- BICOMP
- 80
+ 88
ICCARM
@@ -554,11 +249,85 @@
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 18 20 22 4 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 18 20 22 4 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\sysctl.c
+
+
+ BICOMP
+ 89
+
+
+ ICCARM
+ 76 82
+
+
+
+
+ ICCARM
+ 18 20 21 22 4 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10 12
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\uartlib.c
+
+
+ BICOMP
+ 90
+
+
+ ICCARM
+ 77 83
+
+
+
+
+ BICOMP
+ 18 19 21 22 23 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10 14 12
+
+
+ ICCARM
+ 18 19 21 22 23 1 47 40 43 24 52 33 51 37 35 39 45 134 49 54 10 14 12
+
+
+
+
+ [ROOT_NODE]
+
+
+ ILINK
+ 133 131
+
+
+
+
+ $PROJ_DIR$\..\hooks.c
+
+
+ BICOMP
+ 116
+
+
+ ICCARM
+ 111 117
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
@@ -567,21 +336,21 @@
BICOMP
- 65
+ 101
ICCARM
- 70 20
+ 106 56
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 116 117 118 119 120 110 106
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 18 19 20 21 22 12 8
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 116 117 118 119 120 110 106
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 18 19 20 21 22 12 8
@@ -590,21 +359,21 @@
BICOMP
- 67
+ 103
ICCARM
- 69 62
+ 105 98
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
@@ -613,30 +382,53 @@
AARM
- 61
+ 97
+
+ $PROJ_DIR$\..\..\..\..\Source\assert.c
+
+
+ BICOMP
+ 60
+
+
+ ICCARM
+ 113 112
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
$PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\can.c
BICOMP
- 92
+ 128
ICCARM
- 94 89
+ 130 125
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22
@@ -645,21 +437,21 @@
BICOMP
- 57
+ 93
ICCARM
- 82 34
+ 118 70
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
@@ -668,21 +460,21 @@
BICOMP
- 56
+ 92
ICCARM
- 78 35
+ 114 71
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120 104
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22 6
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18 117 120 104
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22 6
@@ -691,21 +483,225 @@
BICOMP
- 58
+ 94
ICCARM
- 32 33
+ 68 69
BICOMP
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
ICCARM
- 11 4 7 122 16 130 15 0 132 3 9 134 13 18
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c
+
+
+ BICOMP
+ 102
+
+
+ ICCARM
+ 107 99
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c
+
+
+ BICOMP
+ 95
+
+
+ ICCARM
+ 119 91
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22 12 14
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 19 22 12 14
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\backdoor.c
+
+
+ BICOMP
+ 63
+
+
+ ICCARM
+ 115 59
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\boot.c
+
+
+ BICOMP
+ 100
+
+
+ ICCARM
+ 104 57
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\com.c
+
+
+ BICOMP
+ 64
+
+
+ ICCARM
+ 121 62
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 42
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54 42
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\cop.c
+
+
+ BICOMP
+ 65
+
+
+ ICCARM
+ 120 61
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\..\..\..\Source\xcp.c
+
+
+ BICOMP
+ 66
+
+
+ ICCARM
+ 67 58
+
+
+
+
+ BICOMP
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+ ICCARM
+ 47 40 43 24 52 33 51 37 35 39 45 134 49 54
+
+
+
+
+ $PROJ_DIR$\..\obj\lm3s6965.pbd
+
+
+ BILINK
+ 60 63 100 64 65 93 86 92 84 87 116 88 101 94 89 102 95 90 103 66
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out
+
+
+ OBJCOPY
+ 109
+
+
+
+
+ ILINK
+ 85 112 59 57 62 61 70 78 97 71 79 80 117 81 56 69 82 99 91 83 98 58 55 123 108 122
+
+
+
+
+ $PROJ_DIR$\..\bin\openbtl_ek_lm3s8962.out
+
+
+ ILINK
+ 131
+
+
+ OBJCOPY
+ 132
+
+
+
+
+ ILINK
+ 85 112 59 57 125 126 62 61 70 78 97 71 79 80 117 81 56 69 82 99 91 83 98 58 55 123 108 122
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
index 0c91b1c8..f078beed 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/ide/settings/lm3s8962.wsdt
@@ -12,7 +12,7 @@
- 339272727
+ 134272727
@@ -25,7 +25,7 @@
-
+
TabID-17931-22022
@@ -37,7 +37,7 @@
- 0
+ 0
TabID-24560-22511
@@ -47,7 +47,7 @@
- 0
+ 0
@@ -60,7 +60,7 @@
- iaridepm.enu1-2-2722430-2-2240243125000241071225000718254-2-22411922-2-219242431002083241071125000241071
+ iaridepm.enu1-2-2393225-2-2126138125000240418225198688153-2-21361010-2-210121381003968240418125000240418
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/main.c
index 0224e2f0..306b50f3 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -48,12 +50,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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 none.
**
****************************************************************************************/
void main(void)
@@ -72,12 +72,9 @@ void 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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/bin/demoprog_ek_lm3s8962.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/bin/demoprog_ek_lm3s8962.out
index c8b8c1eb..bcdd993b 100644
Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/bin/demoprog_ek_lm3s8962.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/bin/demoprog_ek_lm3s8962.out differ
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.c
index 7729898f..1103d22a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\boot.c
+* \brief Demo program bootloader interface source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
@@ -89,12 +87,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)
@@ -142,11 +138,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)
@@ -177,28 +172,26 @@ static unsigned char UartReceiveByte(unsigned char *data)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
-/* index of the used reception message objects */
+/** \brief Index of the used reception message object. */
#define CAN_RX_MSGOBJECT_IDX (0)
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
-/* lookup table to quickly and efficiently convert a bit number to a bit mask */
+/** \brief Lookup table to quickly and efficiently convert a bit number to a bit mask. */
static const unsigned short canBitNum2Mask[] =
{
0x0001, /* bit 0 */
};
-/****************************************************************************************
-** NAME: CanSetBittiming
-** PARAMETER: none
-** RETURN VALUE: 1 if a valid bittiming configuration was found and set. 0 otherwise.
-** DESCRIPTION: Attempts to match the bittiming parameters to the requested baudrate
-** for a sample point between 65 and 75%, through a linear search
-** algorithm. It is based on the equation:
-** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+/************************************************************************************//**
+** \brief Attempts to match the bittiming parameters to the requested baudrate
+** for a sample point between 65 and 75%, through a linear search
+** algorithm. It is based on the equation:
+** baudrate = CAN Clock Freq/((1+PropSeg+Phase1Seg+Phase2Seg)*Prescaler)
+** \return 1 if a valid bittiming configuration was found and set. 0 otherwise.
**
****************************************************************************************/
static unsigned char CanSetBittiming(void)
@@ -248,11 +241,9 @@ static unsigned char CanSetBittiming(void)
} /*** end of CanSetBittiming ***/
-/****************************************************************************************
-** NAME: BootComInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the CAN communication interface
+/************************************************************************************//**
+** \brief Initializes the CAN communication interface.
+** \return none.
**
****************************************************************************************/
void BootComInit(void)
@@ -279,12 +270,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.h
index 6da3f21c..8a900cd2 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/boot.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\boot.h
+* \brief Demo program bootloader interface header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef BOOT_H
#define BOOT_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/header.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/header.h
index 77ccf204..35e7b89a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/header.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/lm3s8962.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/lm3s8962.dep
index 4d83f8cf..cc00a0dc 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/lm3s8962.dep
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/lm3s8962.dep
@@ -6,10 +6,10 @@
Debug
- $PROJ_DIR$\..\lib\driverlib\can.c
+ $PROJ_DIR$\..\lib\driverlib\adc.h
$PROJ_DIR$\..\lib\driverlib\comp.c
$PROJ_DIR$\..\lib\driverlib\adc.c
- $PROJ_DIR$\..\lib\driverlib\adc.h
+ $PROJ_DIR$\..\lib\driverlib\can.c
$PROJ_DIR$\..\lib\driverlib\can.h
$PROJ_DIR$\..\lib\driverlib\comp.h
$PROJ_DIR$\..\lib\driverlib\cpu.c
@@ -88,16 +88,16 @@
$PROJ_DIR$\..\time.c
$PROJ_DIR$\..\time.h
$PROJ_DIR$\..\vectors.c
- $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out
$PROJ_DIR$\..\obj\lm3s8962.pbd
+ $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out
$PROJ_DIR$\..\obj\hibernate.lst
- $PROJ_DIR$\..\obj\boot.lst
- $PROJ_DIR$\..\obj\main.lst
- $PROJ_DIR$\..\obj\main.pbi
$PROJ_DIR$\..\obj\vectors.pbi
- $PROJ_DIR$\..\..\Boot\config.h
$PROJ_DIR$\..\obj\led.lst
+ $PROJ_DIR$\..\..\Boot\config.h
+ $PROJ_DIR$\..\obj\main.pbi
$PROJ_DIR$\..\obj\vectors.lst
+ $PROJ_DIR$\..\obj\main.lst
+ $PROJ_DIR$\..\obj\boot.lst
$PROJ_DIR$\..\obj\timer.pbi
$PROJ_DIR$\..\obj\timer.lst
$PROJ_DIR$\..\obj\irq.lst
@@ -184,12 +184,12 @@
$PROJ_DIR$\..\obj\ssi.lst
$PROJ_DIR$\..\obj\pwm.lst
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
@@ -268,29 +268,6 @@
$PROJ_DIR$\..\obj\can.o
$PROJ_DIR$\..\obj\can.lst
-
- $PROJ_DIR$\..\lib\driverlib\can.c
-
-
- BICOMP
- 258
-
-
- ICCARM
- 260 259
-
-
-
-
- BICOMP
- 48 57 59 58 65 4 8 24
-
-
- ICCARM
- 48 57 59 58 65 4 8 24
-
-
-
$PROJ_DIR$\..\lib\driverlib\comp.c
@@ -329,11 +306,34 @@
BICOMP
- 47 57 58 65 3 8 24
+ 47 57 58 65 0 8 24
ICCARM
- 47 57 58 65 3 8 24
+ 47 57 58 65 0 8 24
+
+
+
+
+ $PROJ_DIR$\..\lib\driverlib\can.c
+
+
+ BICOMP
+ 258
+
+
+ ICCARM
+ 260 259
+
+
+
+
+ BICOMP
+ 48 57 59 58 65 4 8 24
+
+
+ ICCARM
+ 48 57 59 58 65 4 8 24
@@ -442,10 +442,6 @@
-
- BICOMP
- 53 57 58 63 65 8 16 24
-
ICCARM
53 57 58 63 65 8 16 24
@@ -465,6 +461,10 @@
+
+ BICOMP
+ 54 57 63 65 8 18 34 24
+
ICCARM
54 57 63 65 8 18 34 24
@@ -494,6 +494,15 @@
+
+ [ROOT_NODE]
+
+
+ ILINK
+ 205 257
+
+
+
$PROJ_DIR$\..\lib\driverlib\i2s.c
@@ -540,15 +549,6 @@
-
- [ROOT_NODE]
-
-
- ILINK
- 205 257
-
-
-
$PROJ_DIR$\..\lib\driverlib\mpu.c
@@ -807,17 +807,17 @@
ICCARM
- 85 243
+ 91 243
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
@@ -845,11 +845,11 @@
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
@@ -862,17 +862,17 @@
ICCARM
- 90 242
+ 86 242
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
@@ -881,21 +881,21 @@
BICOMP
- 87
+ 88
ICCARM
- 86 241
+ 90 241
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
@@ -914,11 +914,11 @@
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
@@ -927,21 +927,30 @@
BICOMP
- 88
+ 85
ICCARM
- 91 217
+ 89 217
BICOMP
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
ICCARM
- 73 89 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+ 73 87 71 75 77 80 57 58 59 63 65 34 16 40 4 24 36
+
+
+
+
+ $PROJ_DIR$\..\obj\lm3s8962.pbd
+
+
+ BILINK
+ 130 219 258 131 132 133 134 135 136 137 138 139 140 203 204 88 141 142 143 144 207 208 248 92 209 210 211 85 212
@@ -960,15 +969,6 @@
-
- $PROJ_DIR$\..\obj\lm3s8962.pbd
-
-
- BILINK
- 130 219 258 131 132 133 134 135 136 137 138 139 140 203 204 87 141 142 143 144 207 208 248 92 209 210 211 88 212
-
-
-
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
@@ -982,19 +982,6 @@
-
- $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
-
-
- BICOMP
- 237
-
-
- ICCARM
- 152
-
-
-
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
@@ -1008,6 +995,19 @@
+
+ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c
+
+
+ BICOMP
+ 237
+
+
+ ICCARM
+ 152
+
+
+
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
@@ -1034,19 +1034,6 @@
-
- $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
-
-
- BICOMP
- 236
-
-
- ICCARM
- 154
-
-
-
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
@@ -1060,6 +1047,19 @@
+
+ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c
+
+
+ BICOMP
+ 236
+
+
+ ICCARM
+ 154
+
+
+
$PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
@@ -1340,7 +1340,7 @@
BILINK
- 130 219 131 132 133 134 135 136 137 138 139 140 203 204 87 141 142 143 144 207 208 248 92 209 210 211 88 212
+ 130 219 131 132 133 134 135 136 137 138 139 140 203 204 88 141 142 143 144 207 208 248 92 209 210 211 85 212
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/settings/lm3s8962.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/settings/lm3s8962.wsdt
index c06affe0..cdf0b495 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/settings/lm3s8962.wsdt
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/ide/settings/lm3s8962.wsdt
@@ -12,7 +12,7 @@
- 320272727
+ 132272727
@@ -24,7 +24,7 @@
-
+
TabID-30499-23628
@@ -36,7 +36,7 @@
- 0
+ 0
TabID-20859-24014
@@ -46,7 +46,7 @@
- 0
+ 0
@@ -59,7 +59,7 @@
- iaridepm.enu1-2-2722394-2-2240243125000241071206250718254-2-22411922-2-219242431002083241071125000241071
+ iaridepm.enu1-2-2393206-2-2126138125000240418206349688153-2-21361010-2-210121381003968240418125000240418
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.c
index 0f469a13..2a053a4b 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.h
index 73e97bc3..39934e3c 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.c
index 9c854f68..d507728e 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -58,11 +60,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)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.h
index b5126edb..84f893b2 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/main.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/main.c
index 9a090c26..1262b994 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/main.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,10 @@
static void Init(void);
-/****************************************************************************************
-** NAME: main
-** PARAMETER: none
-** RETURN VALUE: none
-** 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 none.
**
****************************************************************************************/
void main(void)
@@ -67,11 +67,9 @@ void 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)
@@ -87,16 +85,15 @@ static void Init(void)
} /*** end of Init ***/
-/****************************************************************************************
-** NAME: __error__
-** PARAMETER: pcFilename name of the source file where the assertion occurred.
-** ulLine linenumber in the source file where the assertion occurred.
-** RETURN VALUE: none
-** DESCRIPTION: Called when a runtime assertion failed. It stores information about
-** where the assertion occurred and halts the software program.
+#ifdef DEBUG
+/************************************************************************************//**
+** \brief Called when a runtime assertion failed. It stores information about
+** where the assertion occurred and halts the software program.
+** \param pcFilename Name of the source file where the assertion occurred.
+** \param ulLine Linenumber in the source file where the assertion occurred.
+** \return none.
**
****************************************************************************************/
-#ifdef DEBUG
void __error__(char *pcFilename, unsigned long ulLine)
{
static volatile char *assert_failure_file;
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/prog.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/prog.dox
new file mode 100644
index 00000000..632280a8
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR User Program
+\brief User Program.
+\ingroup ARMCM3_LM3S_EK_LM3S8962_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.c
index ef3e5bd2..8beecaa8 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.c
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver source file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\time.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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: TimeInit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Initializes the timer.
+/************************************************************************************//**
+** \brief Initializes the timer.
+** \return none.
**
****************************************************************************************/
void TimeInit(void)
@@ -59,11 +62,9 @@ void TimeInit(void)
} /*** end of TimeInit ***/
-/****************************************************************************************
-** NAME: TimeDeinit
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Stops and disables the timer.
+/************************************************************************************//**
+** \brief Stops and disables the timer.
+** \return none.
**
****************************************************************************************/
void TimeDeinit(void)
@@ -73,11 +74,10 @@ void TimeDeinit(void)
} /*** end of TimeDeinit ***/
-/****************************************************************************************
-** NAME: TimeSet
-** 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 TimeSet(unsigned long timer_value)
@@ -87,11 +87,9 @@ void TimeSet(unsigned long timer_value)
} /*** end of TimeSet ***/
-/****************************************************************************************
-** NAME: TimeGet
-** 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 TimeGet(void)
@@ -101,11 +99,9 @@ unsigned long TimeGet(void)
} /*** end of TimeGet ***/
-/****************************************************************************************
-** NAME: TimeISRHandler
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Interrupt service routine of the timer.
+/************************************************************************************//**
+** \brief Interrupt service routine of the timer.
+** \return none.
**
****************************************************************************************/
void TimeISRHandler(void)
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.h
index a01f7e58..f7de92dc 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.h
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/time.h
@@ -1,32 +1,34 @@
-/****************************************************************************************
-| Description: Timer driver header file
-| File Name: time.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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\time.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIME_H
#define TIME_H
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/vectors.c b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/vectors.c
index 81677fa9..1eb4629a 100644
--- a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/Prog/vectors.c
@@ -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) 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_LM3S_EK_LM3S8962_IAR\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_LM3S_EK_LM3S8962_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -44,18 +46,17 @@ extern void __iar_program_start( void );
/****************************************************************************************
* Type definitions
****************************************************************************************/
+/** \brief Structure type for vector table entries. */
typedef union
{
- void (*func)(void); /* for ISR function pointers */
- void *ptr; /* for stack pointer entry */
-}tIsrFunc; /* type for vector table entries */
+ void (*func)(void); /**< for ISR function pointers */
+ void *ptr; /**< for stack pointer entry */
+}tIsrFunc;
-/****************************************************************************************
-** 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)
@@ -71,6 +72,7 @@ void UnusedISR(void)
#pragma language=extended /* enable IAR extensions */
#pragma segment="CSTACK"
+/** \brief Interrupt vector table. */
__root const tIsrFunc __vector_table[] @ ".intvec" =
{
{ .ptr = __sfe( "CSTACK" ) }, /* the initial stack pointer */
diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/demo.dox b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/demo.dox
new file mode 100644
index 00000000..f291203a
--- /dev/null
+++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S8962_IAR/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_LM3S_EK_LM3S8962_IAR Demo for Texas Instruments EK-LM3S8962/IAR
+\brief Preconfigured programs for the Texas Instruments EK-LM3S8962 and the IAR Embedded Workbench IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf
index 68d3945b..77586cd7 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.map
index f571d086..c972974a 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.map
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.map
@@ -419,18 +419,18 @@ Memory Configuration
Name Origin Length Attributes
UNPLACED_SECTIONS 0xffffffff 0x00000000 xw
-SRAM 0x20000000 0x00001800 xw
-FLASH 0x08000000 0x00004000 xr
+SRAM 0x20000000 0x00002000 xw
+FLASH 0x08000000 0x00006000 xr
*default* 0x00000000 0xffffffff
Linker script and memory map
- 0x08002ab8 __do_debug_operation = __do_debug_operation_mempoll
+ 0x08002aac __do_debug_operation = __do_debug_operation_mempoll
0x20000000 __SRAM_segment_start__ = 0x20000000
- 0x20001800 __SRAM_segment_end__ = 0x20001800
+ 0x20002000 __SRAM_segment_end__ = 0x20002000
0x08000000 __FLASH_segment_start__ = 0x8000000
- 0x08004000 __FLASH_segment_end__ = 0x8004000
- 0x00000100 __STACKSIZE__ = 0x100
+ 0x08006000 __FLASH_segment_end__ = 0x8006000
+ 0x00000200 __STACKSIZE__ = 0x200
0x00000000 __STACKSIZE_PROCESS__ = 0x0
0x00000000 __STACKSIZE_IRQ__ = 0x0
0x00000000 __STACKSIZE_FIQ__ = 0x0
@@ -470,7 +470,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)
0x080002e8 __text_load_start__ = ALIGN (__init_end__, 0x4)
-.text 0x080002e8 0x2810
+.text 0x080002e8 0x2804
0x080002e8 __text_start__ = .
*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*)
.glue_7 0x00000000 0x0 linker stubs
@@ -703,114 +703,114 @@ Linker script and memory map
.text.FlashSwitchBlock
0x08001d24 0x50 THUMB Debug/../../obj/flash.o
.text.FlashAddToBlock
- 0x08001d74 0xa0 THUMB Debug/../../obj/flash.o
+ 0x08001d74 0x94 THUMB Debug/../../obj/flash.o
.text.FlashInit
- 0x08001e14 0x1c THUMB Debug/../../obj/flash.o
- 0x08001e14 FlashInit
+ 0x08001e08 0x1c THUMB Debug/../../obj/flash.o
+ 0x08001e08 FlashInit
.text.FlashWrite
- 0x08001e30 0x58 THUMB Debug/../../obj/flash.o
- 0x08001e30 FlashWrite
+ 0x08001e24 0x58 THUMB Debug/../../obj/flash.o
+ 0x08001e24 FlashWrite
.text.FlashErase
- 0x08001e88 0x140 THUMB Debug/../../obj/flash.o
- 0x08001e88 FlashErase
+ 0x08001e7c 0x140 THUMB Debug/../../obj/flash.o
+ 0x08001e7c FlashErase
.text.FlashWriteChecksum
- 0x08001fc8 0x5c THUMB Debug/../../obj/flash.o
- 0x08001fc8 FlashWriteChecksum
+ 0x08001fbc 0x5c THUMB Debug/../../obj/flash.o
+ 0x08001fbc FlashWriteChecksum
.text.FlashVerifyChecksum
- 0x08002024 0x68 THUMB Debug/../../obj/flash.o
- 0x08002024 FlashVerifyChecksum
+ 0x08002018 0x68 THUMB Debug/../../obj/flash.o
+ 0x08002018 FlashVerifyChecksum
.text.FlashDone
- 0x0800208c 0x58 THUMB Debug/../../obj/flash.o
- 0x0800208c FlashDone
+ 0x08002080 0x58 THUMB Debug/../../obj/flash.o
+ 0x08002080 FlashDone
.text.IntToUnicode
- 0x080020e4 0x3c THUMB Debug/../../obj/usb.o
+ 0x080020d8 0x3c THUMB Debug/../../obj/usb.o
.text.UsbFifoMgrCreate
- 0x08002120 0x40 THUMB Debug/../../obj/usb.o
+ 0x08002114 0x40 THUMB Debug/../../obj/usb.o
.text.UsbFifoMgrWrite
- 0x08002160 0x84 THUMB Debug/../../obj/usb.o
+ 0x08002154 0x84 THUMB Debug/../../obj/usb.o
.text.UsbTransmitByte
- 0x080021e4 0x18 THUMB Debug/../../obj/usb.o
+ 0x080021d8 0x18 THUMB Debug/../../obj/usb.o
.text.UsbFifoMgrRead
- 0x080021fc 0x80 THUMB Debug/../../obj/usb.o
+ 0x080021f0 0x80 THUMB Debug/../../obj/usb.o
.text.UsbReceiveByte
- 0x0800227c 0x18 THUMB Debug/../../obj/usb.o
- .text.UsbInit 0x08002294 0x74 THUMB Debug/../../obj/usb.o
- 0x08002294 UsbInit
- .text.UsbFree 0x08002308 0x10 THUMB Debug/../../obj/usb.o
- 0x08002308 UsbFree
+ 0x08002270 0x18 THUMB Debug/../../obj/usb.o
+ .text.UsbInit 0x08002288 0x74 THUMB Debug/../../obj/usb.o
+ 0x08002288 UsbInit
+ .text.UsbFree 0x080022fc 0x10 THUMB Debug/../../obj/usb.o
+ 0x080022fc UsbFree
.text.UsbTransmitPacket
- 0x08002318 0x70 THUMB Debug/../../obj/usb.o
- 0x08002318 UsbTransmitPacket
+ 0x0800230c 0x70 THUMB Debug/../../obj/usb.o
+ 0x0800230c UsbTransmitPacket
.text.UsbReceivePacket
- 0x08002388 0xb4 THUMB Debug/../../obj/usb.o
- 0x08002388 UsbReceivePacket
+ 0x0800237c 0xb4 THUMB Debug/../../obj/usb.o
+ 0x0800237c UsbReceivePacket
.text.UsbTransmitPipeBulkIN
- 0x0800243c 0xbc THUMB Debug/../../obj/usb.o
- 0x0800243c UsbTransmitPipeBulkIN
+ 0x08002430 0xbc THUMB Debug/../../obj/usb.o
+ 0x08002430 UsbTransmitPipeBulkIN
.text.UsbReceivePipeBulkOUT
- 0x080024f8 0x60 THUMB Debug/../../obj/usb.o
- 0x080024f8 UsbReceivePipeBulkOUT
+ 0x080024ec 0x60 THUMB Debug/../../obj/usb.o
+ 0x080024ec UsbReceivePipeBulkOUT
.text.UsbGetSerialNum
- 0x08002558 0x44 THUMB Debug/../../obj/usb.o
- 0x08002558 UsbGetSerialNum
+ 0x0800254c 0x44 THUMB Debug/../../obj/usb.o
+ 0x0800254c UsbGetSerialNum
.text.AssertFailure
- 0x0800259c 0x1c THUMB Debug/../../obj/assert.o
- 0x0800259c AssertFailure
+ 0x08002590 0x1c THUMB Debug/../../obj/assert.o
+ 0x08002590 AssertFailure
.text.BackDoorInit
- 0x080025b8 0x1c THUMB Debug/../../obj/backdoor.o
- 0x080025b8 BackDoorInit
+ 0x080025ac 0x1c THUMB Debug/../../obj/backdoor.o
+ 0x080025ac BackDoorInit
.text.BackDoorCheck
- 0x080025d4 0x4 THUMB Debug/../../obj/backdoor.o
- 0x080025d4 BackDoorCheck
+ 0x080025c8 0x4 THUMB Debug/../../obj/backdoor.o
+ 0x080025c8 BackDoorCheck
.text.BootInit
- 0x080025d8 0x1c THUMB Debug/../../obj/boot.o
- 0x080025d8 BootInit
+ 0x080025cc 0x1c THUMB Debug/../../obj/boot.o
+ 0x080025cc BootInit
.text.BootTask
- 0x080025f4 0x18 THUMB Debug/../../obj/boot.o
- 0x080025f4 BootTask
- .text.ComInit 0x0800260c 0x34 THUMB Debug/../../obj/com.o
- 0x0800260c ComInit
- .text.ComTask 0x08002640 0x24 THUMB Debug/../../obj/com.o
- 0x08002640 ComTask
- .text.ComFree 0x08002664 0xc THUMB Debug/../../obj/com.o
- 0x08002664 ComFree
+ 0x080025e8 0x18 THUMB Debug/../../obj/boot.o
+ 0x080025e8 BootTask
+ .text.ComInit 0x08002600 0x34 THUMB Debug/../../obj/com.o
+ 0x08002600 ComInit
+ .text.ComTask 0x08002634 0x24 THUMB Debug/../../obj/com.o
+ 0x08002634 ComTask
+ .text.ComFree 0x08002658 0xc THUMB Debug/../../obj/com.o
+ 0x08002658 ComFree
.text.ComTransmitPacket
- 0x08002670 0x10 THUMB Debug/../../obj/com.o
- 0x08002670 ComTransmitPacket
+ 0x08002664 0x10 THUMB Debug/../../obj/com.o
+ 0x08002664 ComTransmitPacket
.text.ComSetConnectEntryState
- 0x08002680 0x10 THUMB Debug/../../obj/com.o
- 0x08002680 ComSetConnectEntryState
+ 0x08002674 0x10 THUMB Debug/../../obj/com.o
+ 0x08002674 ComSetConnectEntryState
.text.ComIsConnectEntryState
- 0x08002690 0xc THUMB Debug/../../obj/com.o
- 0x08002690 ComIsConnectEntryState
- .text.CopInit 0x0800269c 0x4 THUMB Debug/../../obj/cop.o
- 0x0800269c CopInit
+ 0x08002684 0xc THUMB Debug/../../obj/com.o
+ 0x08002684 ComIsConnectEntryState
+ .text.CopInit 0x08002690 0x4 THUMB Debug/../../obj/cop.o
+ 0x08002690 CopInit
.text.CopService
- 0x080026a0 0x4 THUMB Debug/../../obj/cop.o
- 0x080026a0 CopService
+ 0x08002694 0x4 THUMB Debug/../../obj/cop.o
+ 0x08002694 CopService
.text.XcpProtectResources
- 0x080026a4 0x10 THUMB Debug/../../obj/xcp.o
+ 0x08002698 0x10 THUMB Debug/../../obj/xcp.o
.text.XcpSetCtoError
- 0x080026b4 0x1c THUMB Debug/../../obj/xcp.o
- .text.XcpInit 0x080026d0 0x20 THUMB Debug/../../obj/xcp.o
- 0x080026d0 XcpInit
+ 0x080026a8 0x1c THUMB Debug/../../obj/xcp.o
+ .text.XcpInit 0x080026c4 0x20 THUMB Debug/../../obj/xcp.o
+ 0x080026c4 XcpInit
.text.XcpPacketTransmitted
- 0x080026f0 0x14 THUMB Debug/../../obj/xcp.o
- 0x080026f0 XcpPacketTransmitted
+ 0x080026e4 0x14 THUMB Debug/../../obj/xcp.o
+ 0x080026e4 XcpPacketTransmitted
.text.XcpPacketReceived
- 0x08002704 0x3b4 THUMB Debug/../../obj/xcp.o
- 0x08002704 XcpPacketReceived
+ 0x080026f8 0x3b4 THUMB Debug/../../obj/xcp.o
+ 0x080026f8 XcpPacketReceived
.text.libdebugio.__do_debug_operation_mempoll
- 0x08002ab8 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
- 0x08002ab8 __do_debug_operation_mempoll
+ 0x08002aac 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
+ 0x08002aac __do_debug_operation_mempoll
.text.libc.__debug_io_lock
- 0x08002af0 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
- 0x08002af0 __debug_io_lock
+ 0x08002ae4 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
+ 0x08002ae4 __debug_io_lock
.text.libc.__debug_io_unlock
- 0x08002af4 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
- 0x08002af4 __debug_io_unlock
- 0x08002af8 __text_end__ = (__text_start__ + SIZEOF (.text))
- 0x08002af8 __text_load_end__ = __text_end__
+ 0x08002ae8 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
+ 0x08002ae8 __debug_io_unlock
+ 0x08002aec __text_end__ = (__text_start__ + SIZEOF (.text))
+ 0x08002aec __text_load_end__ = __text_end__
.vfp11_veneer 0x00000000 0x0
.vfp11_veneer 0x00000000 0x0 linker stubs
@@ -818,81 +818,81 @@ 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)
- 0x08002af8 __dtors_load_start__ = ALIGN (__text_end__, 0x4)
+ 0x08002aec __dtors_load_start__ = ALIGN (__text_end__, 0x4)
-.dtors 0x08002af8 0x0
- 0x08002af8 __dtors_start__ = .
+.dtors 0x08002aec 0x0
+ 0x08002aec __dtors_start__ = .
*(SORT(.dtors.*))
*(.dtors)
*(.fini_array .fini_array.*)
- 0x08002af8 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
- 0x08002af8 __dtors_load_end__ = __dtors_end__
+ 0x08002aec __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors))
+ 0x08002aec __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)
- 0x08002af8 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
+ 0x08002aec __ctors_load_start__ = ALIGN (__dtors_end__, 0x4)
-.ctors 0x08002af8 0x0
- 0x08002af8 __ctors_start__ = .
+.ctors 0x08002aec 0x0
+ 0x08002aec __ctors_start__ = .
*(SORT(.ctors.*))
*(.ctors)
*(.init_array .init_array.*)
- 0x08002af8 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
- 0x08002af8 __ctors_load_end__ = __ctors_end__
+ 0x08002aec __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors))
+ 0x08002aec __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)
- 0x08002af8 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
+ 0x08002aec __rodata_load_start__ = ALIGN (__ctors_end__, 0x4)
-.rodata 0x08002af8 0x2c8
- 0x08002af8 __rodata_start__ = .
+.rodata 0x08002aec 0x2c8
+ 0x08002aec __rodata_start__ = .
*(.rodata .rodata.* .gnu.linkonce.r.*)
.rodata.str1.4
- 0x08002af8 0x61 THUMB Debug/../../obj/main.o
+ 0x08002aec 0x61 THUMB Debug/../../obj/main.o
0x64 (size before relaxing)
- *fill* 0x08002b59 0x3 00
+ *fill* 0x08002b4d 0x3 00
.rodata.Bulk_DeviceDescriptor
- 0x08002b5c 0x14 THUMB Debug/../../obj/usb_desc.o
- 0x08002b5c Bulk_DeviceDescriptor
+ 0x08002b50 0x14 THUMB Debug/../../obj/usb_desc.o
+ 0x08002b50 Bulk_DeviceDescriptor
.rodata.Bulk_StringLangID
- 0x08002b70 0x4 THUMB Debug/../../obj/usb_desc.o
- 0x08002b70 Bulk_StringLangID
+ 0x08002b64 0x4 THUMB Debug/../../obj/usb_desc.o
+ 0x08002b64 Bulk_StringLangID
.rodata.Bulk_StringProduct
- 0x08002b74 0x28 THUMB Debug/../../obj/usb_desc.o
- 0x08002b74 Bulk_StringProduct
+ 0x08002b68 0x28 THUMB Debug/../../obj/usb_desc.o
+ 0x08002b68 Bulk_StringProduct
.rodata.Bulk_ConfigDescriptor
- 0x08002b9c 0x20 THUMB Debug/../../obj/usb_desc.o
- 0x08002b9c Bulk_ConfigDescriptor
+ 0x08002b90 0x20 THUMB Debug/../../obj/usb_desc.o
+ 0x08002b90 Bulk_ConfigDescriptor
.rodata.Bulk_StringVendor
- 0x08002bbc 0x1c THUMB Debug/../../obj/usb_desc.o
- 0x08002bbc Bulk_StringVendor
+ 0x08002bb0 0x1c THUMB Debug/../../obj/usb_desc.o
+ 0x08002bb0 Bulk_StringVendor
.rodata.Bulk_StringInterface
- 0x08002bd8 0x2c THUMB Debug/../../obj/usb_desc.o
- 0x08002bd8 Bulk_StringInterface
+ 0x08002bcc 0x2c THUMB Debug/../../obj/usb_desc.o
+ 0x08002bcc Bulk_StringInterface
.rodata.str1.4
- 0x08002c04 0x8c THUMB Debug/../../obj/vectors.o
+ 0x08002bf8 0x8c THUMB Debug/../../obj/vectors.o
.rodata.flashLayout
- 0x08002c90 0xa8 THUMB Debug/../../obj/flash.o
+ 0x08002c84 0xa8 THUMB Debug/../../obj/flash.o
.rodata.str1.4
- 0x08002d38 0x80 THUMB Debug/../../obj/usb.o
+ 0x08002d2c 0x80 THUMB Debug/../../obj/usb.o
.rodata.xcpStationId
- 0x08002db8 0x8 THUMB Debug/../../obj/xcp.o
- 0x08002dc0 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
- 0x08002dc0 __rodata_load_end__ = __rodata_end__
+ 0x08002dac 0x8 THUMB Debug/../../obj/xcp.o
+ 0x08002db4 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata))
+ 0x08002db4 __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)
- 0x08002dc0 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
+ 0x08002db4 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4)
-.ARM.exidx 0x08002dc0 0x0
- 0x08002dc0 __ARM.exidx_start__ = .
- 0x08002dc0 __exidx_start = __ARM.exidx_start__
+.ARM.exidx 0x08002db4 0x0
+ 0x08002db4 __ARM.exidx_start__ = .
+ 0x08002db4 __exidx_start = __ARM.exidx_start__
*(.ARM.exidx .ARM.exidx.*)
- 0x08002dc0 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
- 0x08002dc0 __exidx_end = __ARM.exidx_end__
- 0x08002dc0 __ARM.exidx_load_end__ = __ARM.exidx_end__
+ 0x08002db4 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx))
+ 0x08002db4 __exidx_end = __ARM.exidx_end__
+ 0x08002db4 __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)
- 0x08002dc0 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
+ 0x08002db4 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4)
-.fast 0x20000000 0x0 load address 0x08002dc0
+.fast 0x20000000 0x0 load address 0x08002db4
0x20000000 __fast_start__ = .
*(.fast .fast.*)
0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast))
- 0x08002dc0 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
+ 0x08002db4 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast))
0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment)
.fast_run 0x20000000 0x0
@@ -901,9 +901,9 @@ Linker script and memory map
0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run))
0x20000000 __fast_run_load_end__ = __fast_run_end__
0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment)
- 0x08002dc0 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
+ 0x08002db4 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4)
-.data 0x20000000 0xec load address 0x08002dc0
+.data 0x20000000 0xec load address 0x08002db4
0x20000000 __data_start__ = .
*(.data .data.* .gnu.linkonce.d.*)
.data.Bulk_StringSerial
@@ -937,10 +937,10 @@ Linker script and memory map
0x200000e8 0x4 THUMB Debug/../../obj/usb_prop.o
0x200000e8 Device_Table
0x200000ec __data_end__ = (__data_start__ + SIZEOF (.data))
- 0x08002eac __data_load_end__ = (__data_load_start__ + SIZEOF (.data))
+ 0x08002ea0 __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 0x20000000 0xec load address 0x08002dc0
+.data_run 0x20000000 0xec load address 0x08002db4
0x20000000 __data_run_start__ = .
0x200000ec . = MAX ((__data_run_start__ + SIZEOF (.data)), .)
*fill* 0x20000000 0xec 00
@@ -996,8 +996,7 @@ Linker script and memory map
0x20000138 0x4 THUMB Debug/../../obj/usb_pwr.o
0x20000138 bDeviceState
.bss.millisecond_counter
- 0x2000013c 0x2 THUMB Debug/../../obj/timer.o
- *fill* 0x2000013e 0x2 00
+ 0x2000013c 0x4 THUMB Debug/../../obj/timer.o
.bss.bootBlockInfo
0x20000140 0x204 THUMB Debug/../../obj/flash.o
.bss.blockInfo
@@ -1061,47 +1060,47 @@ Linker script and memory map
0x00000001 . = ASSERT (((__heap_end__ >= __SRAM_segment_start__) && (__heap_end__ <= __SRAM_segment_end__)), error: .heap is too large to fit in SRAM memory segment)
0x200007ec __stack_load_start__ = ALIGN (__heap_end__, 0x4)
-.stack 0x200007ec 0x100
+.stack 0x200007ec 0x200
0x200007ec __stack_start__ = .
*(.stack .stack.*)
- 0x200008ec . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
- *fill* 0x200007ec 0x100 00
- 0x200008ec __stack_end__ = (__stack_start__ + SIZEOF (.stack))
- 0x200008ec __stack_load_end__ = __stack_end__
+ 0x200009ec . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4)
+ *fill* 0x200007ec 0x200 00
+ 0x200009ec __stack_end__ = (__stack_start__ + SIZEOF (.stack))
+ 0x200009ec __stack_load_end__ = __stack_end__
0x00000001 . = ASSERT (((__stack_end__ >= __SRAM_segment_start__) && (__stack_end__ <= __SRAM_segment_end__)), error: .stack is too large to fit in SRAM memory segment)
- 0x200008ec __stack_process_load_start__ = ALIGN (__stack_end__, 0x4)
+ 0x200009ec __stack_process_load_start__ = ALIGN (__stack_end__, 0x4)
-.stack_process 0x200008ec 0x0
- 0x200008ec __stack_process_start__ = .
+.stack_process 0x200009ec 0x0
+ 0x200009ec __stack_process_start__ = .
*(.stack_process .stack_process.*)
- 0x200008ec . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4)
- 0x200008ec __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process))
- 0x200008ec __stack_process_load_end__ = __stack_process_end__
+ 0x200009ec . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4)
+ 0x200009ec __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process))
+ 0x200009ec __stack_process_load_end__ = __stack_process_end__
0x00000001 . = ASSERT (((__stack_process_end__ >= __SRAM_segment_start__) && (__stack_process_end__ <= __SRAM_segment_end__)), error: .stack_process is too large to fit in SRAM memory segment)
- 0x200008ec __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4)
+ 0x200009ec __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4)
-.tbss 0x200008ec 0x0
- 0x200008ec __tbss_start__ = .
+.tbss 0x200009ec 0x0
+ 0x200009ec __tbss_start__ = .
*(.tbss .tbss.*)
- 0x200008ec __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
- 0x200008ec __tbss_load_end__ = __tbss_end__
+ 0x200009ec __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss))
+ 0x200009ec __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)
- 0x08002eac __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
+ 0x08002ea0 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4)
-.tdata 0x200008ec 0x0 load address 0x08002eac
- 0x200008ec __tdata_start__ = .
+.tdata 0x200009ec 0x0 load address 0x08002ea0
+ 0x200009ec __tdata_start__ = .
*(.tdata .tdata.*)
- 0x200008ec __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
- 0x08002eac __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
- 0x08002eac __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata))
+ 0x200009ec __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata))
+ 0x08002ea0 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata))
+ 0x08002ea0 __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 0x200008ec 0x0
- 0x200008ec __tdata_run_start__ = .
- 0x200008ec . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .)
- 0x200008ec __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run))
- 0x200008ec __tdata_run_load_end__ = __tdata_run_end__
- 0x200008ec __SRAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run))
+.tdata_run 0x200009ec 0x0
+ 0x200009ec __tdata_run_start__ = .
+ 0x200009ec . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .)
+ 0x200009ec __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run))
+ 0x200009ec __tdata_run_load_end__ = __tdata_run_end__
+ 0x200009ec __SRAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run))
0x00000001 . = ASSERT (((__tdata_run_end__ >= __SRAM_segment_start__) && (__tdata_run_end__ <= __SRAM_segment_end__)), error: .tdata_run is too large to fit in SRAM memory segment)
START GROUP
LOAD THUMB Debug/../../obj/hooks.o
@@ -1195,20 +1194,20 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_info 0x00004765 0x5e THUMB Debug/../../obj/can.o
.debug_info 0x000047c3 0x13e THUMB Debug/../../obj/cpu.o
.debug_info 0x00004901 0x162 THUMB Debug/../../obj/nvm.o
- .debug_info 0x00004a63 0x122 THUMB Debug/../../obj/timer.o
- .debug_info 0x00004b85 0x5e THUMB Debug/../../obj/uart.o
- .debug_info 0x00004be3 0x671 THUMB Debug/../../obj/flash.o
- .debug_info 0x00005254 0x883 THUMB Debug/../../obj/usb.o
- .debug_info 0x00005ad7 0xe8 THUMB Debug/../../obj/assert.o
- .debug_info 0x00005bbf 0x8b THUMB Debug/../../obj/backdoor.o
- .debug_info 0x00005c4a 0x8c THUMB Debug/../../obj/boot.o
- .debug_info 0x00005cd6 0x1b9 THUMB Debug/../../obj/com.o
- .debug_info 0x00005e8f 0x8a THUMB Debug/../../obj/cop.o
- .debug_info 0x00005f19 0x60f THUMB Debug/../../obj/xcp.o
+ .debug_info 0x00004a63 0x117 THUMB Debug/../../obj/timer.o
+ .debug_info 0x00004b7a 0x5e THUMB Debug/../../obj/uart.o
+ .debug_info 0x00004bd8 0x676 THUMB Debug/../../obj/flash.o
+ .debug_info 0x0000524e 0x883 THUMB Debug/../../obj/usb.o
+ .debug_info 0x00005ad1 0xe8 THUMB Debug/../../obj/assert.o
+ .debug_info 0x00005bb9 0x8b THUMB Debug/../../obj/backdoor.o
+ .debug_info 0x00005c44 0x8c THUMB Debug/../../obj/boot.o
+ .debug_info 0x00005cd0 0x1b9 THUMB Debug/../../obj/com.o
+ .debug_info 0x00005e89 0x8a THUMB Debug/../../obj/cop.o
+ .debug_info 0x00005f13 0x615 THUMB Debug/../../obj/xcp.o
.debug_info 0x00006528 0x51f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
.debug_info 0x00006a47 0xcd C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
-.debug_abbrev 0x00000000 0x1e4b
+.debug_abbrev 0x00000000 0x1df4
.debug_abbrev 0x00000000 0xea THUMB Debug/../../obj/hooks.o
.debug_abbrev 0x000000ea 0x109 THUMB Debug/../../obj/main.o
.debug_abbrev 0x000001f3 0xa9 THUMB Debug/../../obj/core_cm3.o
@@ -1231,16 +1230,16 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_abbrev 0x0000135a 0xa5 THUMB Debug/../../obj/nvm.o
.debug_abbrev 0x000013ff 0xbb THUMB Debug/../../obj/timer.o
.debug_abbrev 0x000014ba 0x2a THUMB Debug/../../obj/uart.o
- .debug_abbrev 0x000014e4 0x229 THUMB Debug/../../obj/flash.o
- .debug_abbrev 0x0000170d 0x2d8 THUMB Debug/../../obj/usb.o
- .debug_abbrev 0x000019e5 0x7e THUMB Debug/../../obj/assert.o
- .debug_abbrev 0x00001a63 0x56 THUMB Debug/../../obj/backdoor.o
- .debug_abbrev 0x00001ab9 0x41 THUMB Debug/../../obj/boot.o
- .debug_abbrev 0x00001afa 0xf7 THUMB Debug/../../obj/com.o
- .debug_abbrev 0x00001bf1 0x41 THUMB Debug/../../obj/cop.o
- .debug_abbrev 0x00001c32 0x1bc THUMB Debug/../../obj/xcp.o
- .debug_abbrev 0x00001dee 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
- .debug_abbrev 0x00001e26 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
+ .debug_abbrev 0x000014e4 0x1e3 THUMB Debug/../../obj/flash.o
+ .debug_abbrev 0x000016c7 0x2d8 THUMB Debug/../../obj/usb.o
+ .debug_abbrev 0x0000199f 0x7e THUMB Debug/../../obj/assert.o
+ .debug_abbrev 0x00001a1d 0x56 THUMB Debug/../../obj/backdoor.o
+ .debug_abbrev 0x00001a73 0x41 THUMB Debug/../../obj/boot.o
+ .debug_abbrev 0x00001ab4 0xf7 THUMB Debug/../../obj/com.o
+ .debug_abbrev 0x00001bab 0x41 THUMB Debug/../../obj/cop.o
+ .debug_abbrev 0x00001bec 0x1ab THUMB Debug/../../obj/xcp.o
+ .debug_abbrev 0x00001d97 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
+ .debug_abbrev 0x00001dcf 0x25 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
.debug_aranges 0x00000000 0xb38
.debug_aranges
@@ -1332,7 +1331,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_ranges 0x000007e8 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
.debug_ranges 0x000009f0 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 0x39de
+.debug_line 0x00000000 0x39d9
.debug_line 0x00000000 0x214 THUMB Debug/../../obj/hooks.o
.debug_line 0x00000214 0x1ee THUMB Debug/../../obj/main.o
.debug_line 0x00000402 0x28f THUMB Debug/../../obj/core_cm3.o
@@ -1355,16 +1354,16 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_line 0x00002540 0x12d THUMB Debug/../../obj/nvm.o
.debug_line 0x0000266d 0x119 THUMB Debug/../../obj/timer.o
.debug_line 0x00002786 0x1d THUMB Debug/../../obj/uart.o
- .debug_line 0x000027a3 0x2d2 THUMB Debug/../../obj/flash.o
- .debug_line 0x00002a75 0x377 THUMB Debug/../../obj/usb.o
- .debug_line 0x00002dec 0xd6 THUMB Debug/../../obj/assert.o
- .debug_line 0x00002ec2 0xc2 THUMB Debug/../../obj/backdoor.o
- .debug_line 0x00002f84 0xbb THUMB Debug/../../obj/boot.o
- .debug_line 0x0000303f 0x158 THUMB Debug/../../obj/com.o
- .debug_line 0x00003197 0xb1 THUMB Debug/../../obj/cop.o
- .debug_line 0x00003248 0x1d2 THUMB Debug/../../obj/xcp.o
- .debug_line 0x0000341a 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
- .debug_line 0x0000396a 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 0x000027a3 0x2cd THUMB Debug/../../obj/flash.o
+ .debug_line 0x00002a70 0x377 THUMB Debug/../../obj/usb.o
+ .debug_line 0x00002de7 0xd6 THUMB Debug/../../obj/assert.o
+ .debug_line 0x00002ebd 0xc2 THUMB Debug/../../obj/backdoor.o
+ .debug_line 0x00002f7f 0xbb THUMB Debug/../../obj/boot.o
+ .debug_line 0x0000303a 0x158 THUMB Debug/../../obj/com.o
+ .debug_line 0x00003192 0xb1 THUMB Debug/../../obj/cop.o
+ .debug_line 0x00003243 0x1d2 THUMB Debug/../../obj/xcp.o
+ .debug_line 0x00003415 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
+ .debug_line 0x00003965 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 0x2e66
.debug_str 0x00000000 0x242 THUMB Debug/../../obj/hooks.o
@@ -1406,7 +1405,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_str 0x00001ca1 0xb1 THUMB Debug/../../obj/nvm.o
0x1dd (size before relaxing)
.debug_str 0x00001d52 0xd4 THUMB Debug/../../obj/timer.o
- 0x1e5 (size before relaxing)
+ 0x1da (size before relaxing)
.debug_str 0x00001e26 0x7e THUMB Debug/../../obj/uart.o
0x179 (size before relaxing)
.debug_str 0x00001ea4 0x27f THUMB Debug/../../obj/flash.o
@@ -1531,7 +1530,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.ARM.attributes
0x000001f0 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o)
-.debug_loc 0x00000000 0x372e
+.debug_loc 0x00000000 0x373b
.debug_loc 0x00000000 0x82 THUMB Debug/../../obj/main.o
.debug_loc 0x00000082 0x2ae THUMB Debug/../../obj/core_cm3.o
.debug_loc 0x00000330 0x165 THUMB Debug/../../obj/system_stm32f10x.o
@@ -1549,11 +1548,11 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossw
.debug_loc 0x00001d73 0x111 THUMB Debug/../../obj/cpu.o
.debug_loc 0x00001e84 0xff THUMB Debug/../../obj/nvm.o
.debug_loc 0x00001f83 0x40 THUMB Debug/../../obj/timer.o
- .debug_loc 0x00001fc3 0x6e9 THUMB Debug/../../obj/flash.o
- .debug_loc 0x000026ac 0x539 THUMB Debug/../../obj/usb.o
- .debug_loc 0x00002be5 0x46 THUMB Debug/../../obj/assert.o
- .debug_loc 0x00002c2b 0x20 THUMB Debug/../../obj/backdoor.o
- .debug_loc 0x00002c4b 0x40 THUMB Debug/../../obj/boot.o
- .debug_loc 0x00002c8b 0xd2 THUMB Debug/../../obj/com.o
- .debug_loc 0x00002d5d 0x1dd THUMB Debug/../../obj/xcp.o
- .debug_loc 0x00002f3a 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
+ .debug_loc 0x00001fc3 0x6f6 THUMB Debug/../../obj/flash.o
+ .debug_loc 0x000026b9 0x539 THUMB Debug/../../obj/usb.o
+ .debug_loc 0x00002bf2 0x46 THUMB Debug/../../obj/assert.o
+ .debug_loc 0x00002c38 0x20 THUMB Debug/../../obj/backdoor.o
+ .debug_loc 0x00002c58 0x40 THUMB Debug/../../obj/boot.o
+ .debug_loc 0x00002c98 0xd2 THUMB Debug/../../obj/com.o
+ .debug_loc 0x00002d6a 0x1dd THUMB Debug/../../obj/xcp.o
+ .debug_loc 0x00002f47 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.srec
index fb830eae..777ed3a1 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.srec
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/bin/openbtl_olimex_stm32h103.srec
@@ -1,5 +1,5 @@
S02B0000433A2F576F726B2F736F6674776172652F4F70656E424C542F5461726765742F44656D6F2F41524DEF
-S31508000000EC080020DB010008391A0008391A000834
+S31508000000EC090020DB010008391A0008391A000833
S31508000010391A0008391A0008391A0008391A000866
S31508000020391A0008391A0008391A0008391A000856
S31508000030391A0008391A0008391A0008391A000846
@@ -28,7 +28,7 @@ S315080001904E494F4A00F062F84E484F49002200F097
S315080001A068F84E484E49091A082903DB00220260FE
S315080001B0043001603F484049884205D0026804304F
S315080001C003B4904703BCF7E700208646EC4602F0E6
-S315080001D057FA00200021434A904772B62A498D46AD
+S315080001D051FA00200021434A904772B62A498D46B3
S315080001E02A482B492B4A00F039F82B482B492C4A28
S315080001F000F034F82B482C492C4A00F02FF82C48EC
S315080002002C492D4A00F02AF82C482D492D4A00F091
@@ -39,12 +39,12 @@ S315080002400268043003B4904703BCF7E700208646EB
S31508000250EC4600200021234A9047FEE7884207D053
S31508000260521A05D0037801300B700131013AF9D1E1
S315080002707047884202D002700130FAE770470000E2
-S3150800028008ED00E000000008EC080020C02D00087A
+S3150800028008ED00E000000008EC090020B42D000885
S3150800029000000020EC000020E8020008E802000840
-S315080002A0F82A0008C02D00080000002000000020E1
-S315080002B0F82A0008F82A0008F82A0008F82A000888
-S315080002C0F82A0008F82A0008F82A0008F82A000878
-S315080002D0C02D0008EC0000206C0700206C070020E9
+S315080002A0EC2A0008B42D00080000002000000020F9
+S315080002B0EC2A0008EC2A0008EC2A0008EC2A0008B8
+S315080002C0EC2A0008EC2A0008EC2A0008EC2A0008A8
+S315080002D0B42D0008EC0000206C0700206C070020F5
S30D080002E0EC0700208903000861
S315080002E8C0B240F2EC03C2F200031B78D3B94FF44C
S315080002F88053C4F202039A6942F010029A614FF4D5
@@ -64,8 +64,8 @@ S315080003C822F4FE025A604FF41F029A601A6842F431
S315080003D880321A604FF48053C4F2020340F2DC52AA
S315080003E8196801F400310191009901F101010091A0
S315080003F8019911B900999142F2D14FF48053C4F288
-S3150800040802031B6813F4003F04D12E484FF06F010E
-S3150800041802F0C0F84FF40053C4F202031A6842F017
+S3150800040802031B6813F4003F04D12E484FF06C0111
+S3150800041802F0BAF84FF40053C4F202031A6842F01D
S3150800042810021A601A6822F003021A601A6842F063
S3150800043802021A604FF48053C4F202035A685A60DB
S315080004485A6842F400525A605A6842F480625A60FE
@@ -75,8 +75,8 @@ S315080004781A6812F0007FFBD04FF48053C4F20203C7
S315080004885A6822F003025A605A6842F002025A6011
S315080004984FF48053C4F202035A6802F00C02082A81
S315080004A8FAD14FF48053C4F202035A6822F4800240
-S315080004B85A60DA6942F40002DA6102F089F802F051
-S315080004C895F8FCE7F82A000800B580B248B940F262
+S315080004B85A60DA6942F40002DA6102F083F802F057
+S315080004C88FF8FCE7EC2A000800B580B248B940F274
S315080004D82013C2F200031B684FF001021A835DF865
S315080004E804FB40F22413C2F200031B681B689847F2
S315080004F840F22013C2F20003186800F112005DF8F2
@@ -368,9 +368,9 @@ S315080016C8186040F22813C2F200034FF406421A8043
S315080016D845F64043C4F200031A60704770B50E46D3
S315080016E800F07F052846FFF7C7FF04462846FFF798
S315080016F871FF014630462246FFF75CFE204670BD5C
-S3150800170800B500F097FE5DF804FB00BF00B500F0D1
-S31508001718EFFE5DF804FB00BF00B540F23813C2F2CD
-S3150800172800031B68052B01D100F084FE5DF804FB55
+S3150800170800B500F091FE5DF804FB00BF00B500F0D7
+S31508001718E9FE5DF804FB00BF00B540F23813C2F2D3
+S3150800172800031B68052B01D100F07EFE5DF804FB5B
S3150800173800B545F64443C4F200031A6892B240F26B
S315080017483613C2F200031A801A8840F22813C2F226
S3150800175800031B88134013F4007F11D045F6444351
@@ -400,7 +400,7 @@ S315080018C85DF804FB4FF000005DF804FB00B580B234
S315080018D840F25401C2F20001FFF798F85DF804FBDC
S315080018E800B580B240F2B801C2F20001FFF78EF8DF
S315080018F85DF804FB10B540F22013C2F200031B681A
-S315080019084FF000049C7442F69C32C0F60002D27965
+S315080019084FF000049C7442F69032C0F60002D27971
S315080019185A74DC742046FFF765FD20464FF40071BB
S31508001928FFF76AFD20464FF01001FFF775FD2046C0
S315080019384FF04001FFF726FE20464FF08001FFF7DB
@@ -412,38 +412,38 @@ S3150800198801FE4FF001004FF04001FFF735FE4FF01A
S3150800199801004FF04001FFF743FE4FF001004FF4F6
S315080019A84051FFF757FD4FF001004FF02001FFF7B0
S315080019B833FD2046FFF7EAFA40F23813C2F200036D
-S315080019C84FF001021A6010BD10B500F0C1FD40F2D3
+S315080019C84FF001021A6010BD10B500F0BBFD40F2D9
S315080019D82013C2F200031B684FF000049C7400F041
S315080019E809F8FFF767FE40F23813C2F200031C60D5
S315080019F810BD00BF00B54FF00100FEF771FC45F6B3
S31508001A084043C4F200034FF001021A6040F228125C
S31508001A18C2F200024FF00000186045F64441C4F2CD
S31508001A28000108604FF4E051118019605DF804FB65
-S31508001A3800B542F60440C0F600004FF03C0100F03D
-S31508001A48A9FD5DF804FB00BF00B500F041F880B1B8
-S31508001A5800F004FE00F04EF84EF60853CEF20003E6
+S31508001A3800B542F6F830C0F600004FF03D0100F058
+S31508001A48A3FD5DF804FB00BF00B500F041F880B1BE
+S31508001A5800F0FEFD00F04EF84EF60853CEF20003ED
S31508001A684FF480421A6044F20403C0F600031B6868
S31508001A7898475DF804FB00BF70B50E4692B272B17E
S31508001A88044600F1010002F1FF3292B2851816F8F1
-S31508001A98013B04F8013B00F0FFFDAC42F7D170BDED
+S31508001A98013B04F8013B00F0F9FDAC42F7D170BDF3
S31508001AA800B5FEF796FB5DF804FB00BF00B500F02D
-S31508001AB8ADF95DF804FB00BF00B500F0B5F95DF8AF
-S31508001AC804FB00BF00B500F0DBF95DF804FB00BFB6
-S31508001AD800B500F0A3FA5DF804FB00BF00B500F0F6
-S31508001AE86FFA18B100F0CEFA5DF804FB4FF0000063
+S31508001AB8A7F95DF804FB00BF00B500F0AFF95DF8BB
+S31508001AC804FB00BF00B500F0D5F95DF804FB00BFBC
+S31508001AD800B500F09DFA5DF804FB00BF00B500F0FC
+S31508001AE869FA18B100F0C8FA5DF804FB4FF000006F
S31508001AF85DF804FB4EF21003CEF200034FF0000225
S31508001B081A60704700B5FFF7F5FF4EF21003CEF2DC
S31508001B18000341F63F12C0F201025A604FF0000274
S31508001B289A604FF00501196040F23C13C2F20003AF
-S31508001B381A805DF804FB00BF4EF21003CEF20003CC
+S31508001B381A605DF804FB00BF4EF21003CEF20003EC
S31508001B481B6813F4803F07D040F23C13C2F2000327
-S31508001B581A8802F101021A80704700BF4FF4005331
+S31508001B581A6802F101021A60704700BF4FF4005371
S31508001B68C4F2020340F22312C4F267525A6048F6D6
S31508001B78AB12CCF6EF525A604FF03402DA6070476F
S31508001B884FF40053C4F202031A6942F080021A613C
-S31508001B98704700BF70B5064642F69045C0F6000580
-S31508001BA84FF0000400F078FD2B68B3420DD8696839
-S31508001BB85B189E4209D242F69043C0F6000304EB2E
+S31508001B98704700BF70B5064642F68445C0F600058C
+S31508001BA84FF0000400F072FD2B68B3420DD869683F
+S31508001BB85B189E4209D242F68443C0F6000304EB3A
S31508001BC8440203EB8203187A70BD04F1010405F197
S31508001BD80C050E2CE6D14FF0FF0070BD2DE9F0413B
S31508001BE807460068FFF7D6FFFF2855D0FFF7B6FF68
@@ -452,15 +452,15 @@ S31508001C08FFF7BEFF4FF0000448E04FF40053C4F254
S31508001C1802031A6942F001021A614FF000054FF4EF
S31508001C280054C4F202043B6805EB030805F10402F4
S31508001C38BE58B2B2EA52E36813F0010F05D000F0B5
-S31508001C482BFDE36813F0010FF9D14FEA1643A8F8FC
-S31508001C580230E36813F0010F05D000F01DFDE368B4
+S31508001C4825FDE36813F0010FF9D14FEA1643A8F802
+S31508001C580230E36813F0010F05D000F017FDE368BA
S31508001C6813F0010FF9D1D8F80030B34207D105F1BE
S31508001C780405B5F5007FD6D14FF0010401E04FF011
S31508001C8800044FF40053C4F202031A6922F0010251
S31508001C981A61FFF775FF01E04FF000042046BDE81A
-S31508001CA8F08100BF70B5C6B242F69045C0F6000589
-S31508001CB84FF0000400F0F0FC2B7AB34208D142F644
-S31508001CC89043C0F6000304EB440253F8220070BDA3
+S31508001CA8F08100BF70B5C6B242F68445C0F6000595
+S31508001CB84FF0000400F0EAFC2B7AB34208D142F64A
+S31508001CC88443C0F6000304EB440253F8220070BDAF
S31508001CD804F1010405F10C050E2CEBD14FF0FF3089
S31508001CE870BD00BF00B54FEAC1534FEAD35363B975
S31508001CF803688B420DD040F8041B4FF40072FFF7B7
@@ -471,280 +471,280 @@ S31508001D388043C0F60003994208D0FFF74FFF48B919
S31508001D4810E040F24434C2F2000403E040F24014C2
S31508001D58C2F2000420462946FFF7C4FF002808BF38
S31508001D68002401E04FF00004204630BD2DE9F04379
-S31508001D7805460C4616469FB24FEA51294FEA4929A5
-S31508001D880368B3F1FF3F04D14946FFF7ABFF0028C4
-S31508001D9830D02B684B4505D028464946FFF7BEFF85
-S31508001DA8054658B32B68E41A04F104042C1906F1FD
-S31508001DB8010807F1FF37BFB2B84440F2FF1709F523
-S31508001DC8007900F069FC05F10403E31ABB4207D958
-S31508001DD828464946FFF7A2FF054698B100F10404CC
-S31508001DE816F8013B04F8013B4645EAD14FF00100D5
-S31508001DF8BDE8F0834FF00000BDE8F0834FF000001F
-S31508001E08BDE8F0834FF00000BDE8F08340F24433A4
-S31508001E18C2F200034FF0FF321A6040F24013C2F2D2
-S31508001E2800031A60704700BF70B504460D4616468B
-S31508001E38FFF7B0FEFF281DD004F1FF304019FFF761
-S31508001E48A9FEFF2819D04FEA54224FF48043C0F65A
-S31508001E580003B3EB422F07BF40F24010C2F200005E
-S31508001E6840F24430C2F20000ABB221463246FFF7D0
-S31508001E787DFF70BD4FF0000070BD4FF0000070BDCB
-S31508001E882DE9F04104460E46FFF784FE054604F19F
-S31508001E98FF34A019FFF77EFE04460646FF2D00F01C
-S31508001EA88780FF2800F08880854275D8012D77D964
-S31508001EB80F2879D8FFF752FE4FF40053C4F20203ED
-S31508001EC8DB6813F0010F05D0FFF75AFE4FF0000044
-S31508001ED8BDE8F0814FF40053C4F202031A6942F0D0
-S31508001EE802021A612846FFF7DDFE07462046FFF775
-S31508001EF8D9FE804642F69045C0F600054FF0000424
-S31508001F0800F0CAFB2B7AB34209D142F69043C0F6D1
-S31508001F18000304EB440203EB82035B6807E004F161
-S31508001F28010405F10C050E2CEAD14FF00003C7EBA6
-S31508001F3808084344C3F38F2303B303F1FF339EB260
-S31508001F4806F101064FEA86264FF000054FF40054BD
-S31508001F58C4F20204EB196361236943F04003236161
-S31508001F68E36813F0010F05D000F096FBE36813F059
-S31508001F78010FF9D105F58065B542EBD14FF4005349
-S31508001F88C4F202031A6922F002021A61FFF7F8FD81
-S31508001F984FF00100BDE8F0814FF00000BDE8F08180
-S31508001FA84FF00000BDE8F0814FF00000BDE8F08171
-S31508001FB84FF00000BDE8F0814FF00000BDE8F08161
-S31508001FC800B581B040F24013C2F200031B68B3F1B2
-S31508001FD8FF3F1FD040F24013C2F2000399685A68BF
-S31508001FE88918DA6889181A6989185A6989189A69CC
-S31508001FF88918DA698B18C3F1000301AA42F8043D67
-S3150800200844F25010C0F600004FF004016A46FFF784
-S315080020180BFF01E04FF0010001B000BD44F20402D5
-S31508002028C0F600024FF48043C0F6000310681B6828
-S31508002038C01844F20803C0F600031B68C01844F227
-S315080020480C03C0F600031B68C01844F21003C0F658
-S3150800205800031B68C01844F21403C0F600031B6883
-S31508002068C01844F21803C0F600031B68C01844F2E7
-S315080020785013C0F600031B68C018D0F1010038BF1A
-S315080020880020704700B540F24013C2F200031B68EF
-S31508002098B3F1FF3F06D040F24010C2F20000FFF746
-S315080020A89DFD90B140F24433C2F200031B68B3F1B8
-S315080020B8FF3F0ED040F24430C2F20000FFF78EFD13
-S315080020C8003018BF01205DF804FB4FF000005DF8EA
-S315080020D804FB4FF001005DF804FB00BF10B4D2B250
-S315080020E8BAB10B4601F1020102F1FF32D2B201EB95
-S315080020F842014FF000044FEA1072092A94BF3032A1
-S3150800210837321A704FEA00105C7003F102038B42EB
-S31508002118F1D110BC704700BF10B4C9B240F2CC5315
-S31508002128C2F200031B6893B140F2CC52C2F2000215
-S315080021385C69146019749860D8604FF000025A7484
-S31508002148186001F1FF3140185860987C01E04FF09B
-S31508002158FF0010BC704700BF30B5C4B2CDB2012C21
-S3150800216807D942F63850C0F600004FF4017100F05E
-S3150800217811FA40F2D053C2F2000304EB440203EB0F
-S31508002188C2035A7C1B7C9A4222D040F2D053C2F230
-S31508002198000304EB440203EBC203DA681570597CA2
-S315080021A801F101015974DA6802F10102DA605B6823
-S315080021B89A4210D940F2D053C2F2000304EB440401
-S315080021C84FEAC4041A191B59D3604FF0010030BDF1
-S315080021D84FF0000030BD4FF0010030BD00B5C1B268
-S315080021E840F24863C2F200031878FFF7B5FF5DF8B6
-S315080021F804FB00BF30B50D46C4B2012C07D942F618
-S315080022083850C0F6000040F2272100F0C3F940F222
-S31508002218D053C2F2000304EB440203EBC2035B7C0F
-S315080022280BB340F2D053C2F2000303EBC2039A6819
-S3150800223812782A70597C01F1FF3159749A6802F1AB
-S3150800224801029A605B689A4210D940F2D053C2F2EA
-S31508002258000304EB44044FEAC4041A191B59936093
-S315080022684FF0010030BD4FF0000030BD4FF00100BF
-S3150800227830BD00BF00B5014640F20063C2F2000354
-S315080022881878FFF7B7FF5DF804FB00BF30B540F2D2
-S31508002298D053C2F200034FF000029A7403F11801F2
-S315080022A859614FF0010183F82A10DA6240F2CC52DC
-S315080022B8C2F20002136040F24864C2F200046018D1
-S315080022C84FF04001FFF728FF207040F20065C2F280
-S315080022D8000505F101004FF04001FFF71DFF2870C2
-S315080022E82378FF2B01D0FF2807D142F63850C0F6CD
-S315080022F800004FF0760100F04DF9FEF7AFFE30BD4D
-S3150800230800B54FF00000FDF7EBFF5DF804FB00BFD2
-S315080023182DE9F0410546CCB23F2C07D942F638508C
-S31508002328C0F600004FF0970100F034F92046FFF791
-S3150800233855FF012807D042F63850C0F600004FF07E
-S315080023489A0100F027F92646BCB14FF0000442F678
-S315080023583857C0F600074FF0A20800F09DF9285D27
-S31508002368FFF73CFF012803D03846414600F012F92A
-S3150800237804F10104A3B2B342EFD3BDE8F08100BF6C
-S3150800238810B50446FFF7D4F940F24463C2F20003D5
-S315080023981B78B3B940F24850C2F20000FFF76AFF4B
-S315080023A801283CD140F24463C2F200034FF001020F
-S315080023B81A7040F2C853C2F200034FF000001870B2
-S315080023C810BD40F24853C2F2000340F2C852C2F2A6
-S315080023D80002107800F101001818FFF74BFF0128D2
-S315080023E820D140F2C853C2F200031A7802F101025A
-S315080023F8D2B21A7040F24853C2F200031B789342CD
-S3150800240813D120460A49FFF737FB40F24463C2F264
-S3150800241800034FF000021A704FF0010010BD4FF08C
-S31508002428000010BD4FF0000010BD4FF0000010BDB1
-S31508002438490500202DE9F04181B040F24863C2F20F
-S3150800244800031C78012C07D942F63850C0F600005C
-S315080024584FF4127100F09EF840F2D053C2F200030E
-S3150800246804EB440403EBC4035B7C002B3DD0402BF0
-S3150800247834BF98464FF04008B8F1000F23D040F211
-S315080024888853C2F2000303F1FF3408F1FF35EDB2B1
-S315080024985D1940F24866C2F2000642F63857C0F699
-S315080024A8000730780DF10301FFF7A4FE012804D0D0
-S315080024B838464FF4A67100F06DF89DF8033004F815
-S315080024C8013FAC42EDD140F28850C2F200004FF409
-S315080024D880714246FEF752FF4FF001004146FFF76A
-S315080024E88BF84FF00100FEF7D3FF01B0BDE8F08185
-S315080024F8F0B540F28C61C2F200014FF00100FFF717
-S31508002508EDF882B2FAB140F28C63C2F2000303F125
-S31508002518FF3402F1FF3295B25D1940F20066C2F245
-S31508002528000642F63857C0F60007307814F8011F37
-S31508002538FFF712FE012804D0384640F2731100F05E
-S3150800254829F8AC42F1D14FF00100FEF7B5FFF0BD0E
-S3150800255830B54FF2E873C1F6FF731B684FF2EC7299
-S31508002568C1F6FF7214684FF2F072C1F6FF7210686E
-S31508002578C0180CD0064D29464FF00802FFF7AEFDE5
-S3150800258805F1100120464FF00402FFF7A7FD30BDFC
-S315080025980200002000B540F2CC63C2F200031860BE
-S315080025A840F2D063C2F20003196000F075F8FCE740
-S315080025B800B5FDF7C3FEFDF7D7FE20B900F064F8AD
-S315080025C808B9FFF741FA5DF804FB00BF704700BF7A
-S315080025D800B500F05FF8FFF795FAFFF767FA00F01D
-S315080025E811F8FFF7E5FF5DF804FB00BF00B500F03A
-S315080025F853F8FFF7A1FA00F01FF8FFF7E7FF5DF8B1
-S3150800260804FB00BF00B581B04FF0FF038DF800301A
-S315080026184FF000038DF8013000F056F8FFF736FE44
-S3150800262840F2D463C2F200031B78012B02D1684634
-S3150800263800F064F801B000BD00B540F2D860C2F2F7
-S315080026480000FFF79DFE012805D140F2D860C2F2C6
-S31508002658000000F053F85DF804FB00BF00B5FFF76B
-S315080026684FFE5DF804FB00BF00B5C9B2FFF750FE80
-S3150800267800F03AF85DF804FB40F2D463C2F20003AE
-S315080026884FF001021A70704740F2D463C2F2000391
-S3150800269818787047704700BF704700BF40F2187334
-S315080026A8C2F200034FF000025A70704740F21873DE
-S315080026B8C2F200034FF0FE02DA7018714FF00202F8
-S315080026C8A3F84420704700BF40F21873C2F200030B
-S315080026D84FF000021A709A6483F84220A3F844203F
-S315080026E89A705A70704700BF40F21873C2F2000316
-S315080026F84FF0000283F84220704700BF30B5044601
-S315080027080278FF2A1DD1FFF7C9FF40F21873C2F2F3
-S3150800271800034FF001021A704FF0FF01D9704FF00D
-S31508002728100119714FF0000159714FF03F00987167
-S31508002738D87119725A729A724FF00802A3F844208F
-S315080027489BE140F21873C2F200031B78012B40F094
-S31508002758AE81A2F1C902352A00F28B81DFE812F0B0
-S31508002768EF0089018901840189018901760110012F
-S315080027785C01460189018901890189018901890163
+S31508001D7805460C4617461E464FEA51294FEA492991
+S31508001D880368B3F1FF3F03D14946FFF7ABFF50B3EA
+S31508001D982B684B4505D028464946FFF7BFFF054639
+S31508001DA828B32B68E41A04F104042C1940F2FF1826
+S31508001DB809F5007900F06AFC05F10403E31A4345BE
+S31508001DC807D928464946FFF7A9FF054698B100F1FD
+S31508001DD8040417F8013B04F8013B013EEAD14FF029
+S31508001DE80100BDE8F0834FF00000BDE8F0834FF02E
+S31508001DF80000BDE8F0834FF00000BDE8F08300BF9F
+S31508001E0840F24433C2F200034FF0FF321A6040F240
+S31508001E184013C2F200031A60704700BF70B5044643
+S31508001E280D461646FFF7B6FEFF281DD004F1FF300B
+S31508001E384019FFF7AFFEFF2819D04FEA54224FF48E
+S31508001E488043C0F60003B3EB422F07BF40F24010A9
+S31508001E58C2F2000040F24430C2F20000214632467F
+S31508001E682B46FFF783FF70BD4FF0000070BD4FF09B
+S31508001E78000070BD2DE9F04104460E46FFF78AFEBC
+S31508001E88054604F1FF34A019FFF784FE0446064602
+S31508001E98FF2D00F08780FF2800F08880854275D8D6
+S31508001EA8012D77D90F2879D8FFF758FE4FF4005334
+S31508001EB8C4F20203DB6813F0010F05D0FFF760FED2
+S31508001EC84FF00000BDE8F0814FF40053C4F2020356
+S31508001ED81A6942F002021A612846FFF7E3FE074626
+S31508001EE82046FFF7DFFE804642F68445C0F6000521
+S31508001EF84FF0000400F0CAFB2B7AB34209D142F628
+S31508001F088443C0F6000304EB440203EB82035B68D0
+S31508001F1807E004F1010405F10C050E2CEAD14FF08F
+S31508001F280003C7EB08084344C3F38F2303B303F13D
+S31508001F38FF339EB206F101064FEA86264FF00005E2
+S31508001F484FF40054C4F20204EB196361236943F0A1
+S31508001F5840032361E36813F0010F05D000F096FBF0
+S31508001F68E36813F0010FF9D105F58065B542EBD1A1
+S31508001F784FF40053C4F202031A6922F002021A61E6
+S31508001F88FFF7FEFD4FF00100BDE8F0814FF00000B5
+S31508001F98BDE8F0814FF00000BDE8F0814FF0000081
+S31508001FA8BDE8F0814FF00000BDE8F0814FF0000071
+S31508001FB8BDE8F08100B581B040F24013C2F20003D3
+S31508001FC81B68B3F1FF3F1FD040F24013C2F200036B
+S31508001FD899685A688918DA6889181A6989185A69BD
+S31508001FE889189A698918DA698B18C3F1000301AA4E
+S31508001FF842F8043D44F25010C0F600004FF00401C0
+S315080020086A46FFF70BFF01E04FF0010001B000BD7B
+S3150800201844F20402C0F600024FF48043C0F60003F7
+S3150800202810681B68C01844F20803C0F600031B684A
+S31508002038C01844F20C03C0F600031B68C01844F223
+S315080020481003C0F600031B68C01844F21403C0F650
+S3150800205800031B68C01844F21803C0F600031B687F
+S31508002068C01844F25013C0F600031B68C018D0F114
+S31508002078010038BF0020704700B540F24013C2F28D
+S3150800208800031B68B3F1FF3F06D040F24010C2F2C6
+S315080020980000FFF7A3FD90B140F24433C2F20003F3
+S315080020A81B68B3F1FF3F0ED040F24430C2F200007D
+S315080020B8FFF794FD003018BF01205DF804FB4FF0C8
+S315080020C800005DF804FB4FF001005DF804FB00BF53
+S315080020D810B4D2B2BAB10B4601F1020102F1FF32CD
+S315080020E8D2B201EB42014FF000044FEA1072092AF6
+S315080020F894BF303237321A704FEA00105C7003F119
+S3150800210802038B42F1D110BC704700BF10B4C9B2A4
+S3150800211840F2CC53C2F200031B6893B140F2CC528A
+S31508002128C2F200025C69146019749860D8604FF0AE
+S3150800213800025A74186001F1FF3140185860987CFB
+S3150800214801E04FF0FF0010BC704700BF30B5C4B2BD
+S31508002158CDB2012C07D942F62C50C0F600004FF430
+S31508002168FC7100F011FA40F2D053C2F2000304EBF6
+S31508002178440203EBC2035A7C1B7C9A4222D040F2E3
+S31508002188D053C2F2000304EB440203EBC203DA6835
+S315080021981570597C01F101015974DA6802F10102D6
+S315080021A8DA605B689A4210D940F2D053C2F200034B
+S315080021B804EB44044FEAC4041A191B59D3604FF0B8
+S315080021C8010030BD4FF0000030BD4FF0010030BDB2
+S315080021D800B5C1B240F24863C2F200031878FFF7A7
+S315080021E8B5FF5DF804FB00BF30B50D46C4B2012C37
+S315080021F807D942F62C50C0F6000040F21A2100F022
+S31508002208C3F940F2D053C2F2000304EB440203EBCD
+S31508002218C2035B7C0BB340F2D053C2F2000303EB54
+S31508002228C2039A6812782A70597C01F1FF315974E9
+S315080022389A6802F101029A605B689A4210D940F2DC
+S31508002248D053C2F2000304EB44044FEAC4041A1933
+S315080022581B5993604FF0010030BD4FF0000030BDA8
+S315080022684FF0010030BD00BF00B5014640F20063DB
+S31508002278C2F200031878FFF7B7FF5DF804FB00BF42
+S3150800228830B540F2D053C2F200034FF000029A74F8
+S3150800229803F1180159614FF0010183F82A10DA622F
+S315080022A840F2CC52C2F20002136040F24864C2F20D
+S315080022B8000460184FF04001FFF728FF207040F22D
+S315080022C80065C2F2000505F101004FF04001FFF76D
+S315080022D81DFF28702378FF2B01D0FF2807D142F667
+S315080022E82C50C0F600004FF07F0100F04DF9FEF7BC
+S315080022F8B5FE30BD00B54FF00000FDF7F1FF5DF8FB
+S3150800230804FB00BF2DE9F0410546CCB23F2C07D99E
+S3150800231842F62C50C0F600004FF09D0100F034F943
+S315080023282046FFF755FF012807D042F62C50C0F67D
+S3150800233800004FF0A00100F027F92646BCB14FF07F
+S31508002348000442F62C57C0F600074FF0A80800F01C
+S315080023589DF9285DFFF73CFF012803D0384641461A
+S3150800236800F012F904F10104A3B2B342EFD3BDE8B1
+S31508002378F08100BF10B50446FFF7DAF940F2446366
+S31508002388C2F200031B78B3B940F24850C2F2000003
+S31508002398FFF76AFF01283CD140F24463C2F2000302
+S315080023A84FF001021A7040F2C853C2F200034FF008
+S315080023B80000187010BD40F24853C2F2000340F2FC
+S315080023C8C852C2F20002107800F101001818FFF787
+S315080023D84BFF012820D140F2C853C2F200031A78ED
+S315080023E802F10102D2B21A7040F24853C2F200034F
+S315080023F81B78934213D120460A49FFF73DFB40F262
+S315080024084463C2F200034FF000021A704FF001004D
+S3150800241810BD4FF0000010BD4FF0000010BD4FF082
+S31508002428000010BD490500202DE9F04181B040F2B1
+S315080024384863C2F200031C78012C07D942F62C50CF
+S31508002448C0F6000040F23A2100F09EF840F2D05358
+S31508002458C2F2000304EB440403EBC4035B7C002BC1
+S315080024683DD0402B34BF98464FF04008B8F1000FCE
+S3150800247823D040F28853C2F2000303F1FF3408F16F
+S31508002488FF35EDB25D1940F24866C2F2000642F61B
+S315080024982C57C0F6000730780DF10301FFF7A4FEA4
+S315080024A8012804D0384640F2491100F06DF89DF825
+S315080024B8033004F8013FAC42EDD140F28850C2F22D
+S315080024C800004FF480714246FEF758FF4FF00100AE
+S315080024D84146FFF791F84FF00100FEF7D9FF01B022
+S315080024E8BDE8F081F0B540F28C61C2F200014FF008
+S315080024F80100FFF7F3F882B2FAB140F28C63C2F230
+S31508002508000303F1FF3402F1FF3295B25D1940F278
+S315080025180066C2F2000642F62C57C0F60007307865
+S3150800252814F8011FFFF712FE012804D038464FF4A5
+S31508002538B77100F029F8AC42F1D14FF00100FEF767
+S31508002548BBFFF0BD30B54FF2E873C1F6FF731B68E1
+S315080025584FF2EC72C1F6FF7214684FF2F072C1F6C8
+S31508002568FF721068C0180CD0064D29464FF00802AD
+S31508002578FFF7AEFD05F1100120464FF00402FFF7FC
+S31508002588A7FD30BD0200002000B540F2CC63C2F2B8
+S315080025980003186040F2D063C2F20003196000F025
+S315080025A875F8FCE700B5FDF7C9FEFDF7DDFE20B9AD
+S315080025B800F064F808B9FFF747FA5DF804FB00BFAE
+S315080025C8704700BF00B500F05FF8FFF79BFAFFF702
+S315080025D86DFA00F011F8FFF7E5FF5DF804FB00BF98
+S315080025E800B500F053F8FFF7A7FA00F01FF8FFF751
+S315080025F8E7FF5DF804FB00BF00B581B04FF0FF03A5
+S315080026088DF800304FF000038DF8013000F056F8C9
+S31508002618FFF736FE40F2D463C2F200031B78012B9B
+S3150800262802D1684600F064F801B000BD00B540F272
+S31508002638D860C2F20000FFF79DFE012805D140F2D6
+S31508002648D860C2F2000000F053F85DF804FB00BF3A
+S3150800265800B5FFF74FFE5DF804FB00BF00B5C9B229
+S31508002668FFF750FE00F03AF85DF804FB40F2D46331
+S31508002678C2F200034FF001021A70704740F2D463A1
+S31508002688C2F2000318787047704700BF704700BF4A
+S3150800269840F21873C2F200034FF000025A707047EE
+S315080026A840F21873C2F200034FF0FE02DA7018718E
+S315080026B84FF00202A3F84420704700BF40F218738F
+S315080026C8C2F200034FF000021A709A6483F8422097
+S315080026D8A3F844209A705A70704700BF40F21873DE
+S315080026E8C2F200034FF0000283F84220704700BF89
+S315080026F830B504460278FF2A1DD1FFF7C9FF40F214
+S315080027081873C2F200034FF001021A704FF0FF0166
+S31508002718D9704FF0100119714FF0000159714FF037
+S315080027283F009871D87119725A729A724FF0080256
+S31508002738A3F844209BE140F21873C2F200031B7801
+S31508002748012B40F0AE81A2F1C902352A00F28B812D
+S31508002758DFE812F0EF0089018901840189018901FE
+S31508002768760110015C0146018901890189018901FF
+S3150800277889018901890189018901890189018901F3
S3150800278889018901890189018901890189018901E3
S3150800279889018901890189018901890189018901D3
-S315080027A889018901890189018901890189018901C3
-S315080027B8890189018200540036007400890189015B
-S315080027C88901A9008901C500CA00DE0042783E2AA7
-S315080027D804D94FF02200FFF769FF4EE140F2187559
-S315080027E8C2F2000505F10400A96CFFF745F94FF098
-S315080027F8FF03EB706278AB6CD318AB64637803F1AC
-S315080028080103A5F8443038E143783E2B04D94FF044
-S315080028182200FFF74BFF30E1416840F21875C2F213
-S315080028280005A96405F104006278FFF725F94FF059
-S31508002838FF03EB706278AB6CD318AB64637803F16B
-S315080028480103A5F8443018E140F21873C2F20003F0
-S315080028584FF0FF02DA7042689A644FF00102A3F853
-S3150800286844200AE140F21873C2F200034FF0FF024F
-S31508002878DA70996C436843B14FF0000211F8010BFE
-S315080028881218D2B2013BF9D101E04FF0000240F22A
-S315080028981873C2F20003C3F807204FF001021A7131
-S315080028A84FF000025A719A714FF00802A3F84420B3
-S315080028B8E3E040F21873C2F200034FF0FF02DA7041
-S315080028C842F6B852C0F600029A644FF000021A712E
-S315080028D85A719A714FF00701D9711A725A729A7217
-S315080028E84FF00802A3F84420C7E04FF00000FFF7AE
-S315080028F8DDFEC2E040F21873C2F200034FF0FF0291
-S31508002908DA704FF000021A71597859719A71DA71AA
-S315080029181A724FF00602A3F84420AEE040F2187483
-S31508002928C2F200044FF000032370FFF7B7FE4FF01A
-S31508002938FF03E3704FF00103A4F844309DE040F22A
-S315080029481873C2F20003986C04F101024FF03E01B5
-S31508002958FFF7B2F820B94FF03100FFF7A7FE8CE071
-S3150800296840F21873C2F200034FF0FF02DA709A6C4D
-S3150800297802F13E029A644FF00102A3F844207CE073
-S3150800298843783D2B04D94FF02200FFF78FFE74E0F9
-S3150800299840F21873C2F200034FF0FF02DA704FF0E4
-S315080029A80102A3F84420417841B9FFF797F80028AF
-S315080029B863D14FF03100FFF779FE5EE040F21873F5
-S315080029C8C2F20003986C04F10202FFF775F820B901
-S315080029D84FF03100FFF76AFE4FE040F21873C2F273
-S315080029E8000361789A6C8A189A6446E040F218736C
-S315080029F8C2F200034FF0FF02DA704FF000021A71B4
-S31508002A085A714FF03F019971DA711A725A724FF07A
-S31508002A180702A3F8442030E040F21873C2F2000314
-S31508002A28986C6168FFF74EF820B94FF03100FFF748
-S31508002A383DFE22E040F21873C2F200034FF0FF028F
-S31508002A48DA704FF00102A3F8442016E0FFF728F8D9
-S31508002A5840F21873C2F200034FF0FF02DA704FF023
-S31508002A680102A3F8442008E04FF03100FFF71EFEE4
-S31508002A7803E04FF02000FFF719FE40F21873C2F280
-S31508002A88000393F84230012B03D14FF01000FFF7EB
-S31508002A980DFE40F21873C2F200034FF0010283F8E4
-S31508002AA8422003F10300B3F84410FFF7DDFD30BDFB
-S31508002AB830B504460D4600F017F840F26473C2F2C2
-S31508002AC800031D6040F26873C2F200031C601A46D0
-S31508002AD81368002BFCD100F009F840F26473C2F2BF
-S31508002AE80003186830BD00BF704700BF704700BFB5
-S31508002AF8433A2F576F726B2F736F667477617265D7
-S31508002B082F4F70656E424C542F5461726765742F47
-S31508002B1844656D6F2F41524D434D335F53544D33C2
-S31508002B28325F4F6C696D65785F53544D333248315F
-S31508002B3830335F43726F7373776F726B732F426F9D
-S31508002B486F742F6964652F2E2E2F6D61696E2E633B
-S31508002B580000000012011001000000404501230092
-S31508002B6800010102030100000403090426035700B3
-S31508002B7869006E00550053004200200042007500A7
-S31508002B886C006B002000440065007600690063004D
-S31508002B986500000009022000010100C0320904008E
-S31508002BA80002FF000004070581024000000705012E
-S31508002BB8024000001A034F00700065006E004200CC
-S31508002BC84C00540020005500730065007200000090
-S31508002BD82C03570069006E00550053004200200078
-S31508002BE8420075006C006B00200049006E007400F6
-S31508002BF8650072006600610063006500433A2F5756
-S31508002C086F726B2F736F6674776172652F4F706575
-S31508002C186E424C542F5461726765742F44656D6F04
-S31508002C282F41524D434D335F53544D33325F4F6CEA
-S31508002C38696D65785F53544D3332483130335F4395
-S31508002C48726F7373776F726B732F426F6F742F6916
-S31508002C5864652F2E2E2F2E2E2F2E2E2F2E2E2F53E7
-S31508002C686F757263652F41524D434D335F53544D0B
-S31508002C7833322F43726F7373776F726B732F766560
-S31508002C8863746F72732E630000400008002000000A
-S31508002C980200000000600008002000000300000091
-S31508002CA800800008002000000400000000A00008BA
-S31508002CB8002000000500000000C0000800200000F1
-S31508002CC80600000000E000080020000007000000D9
-S31508002CD80000010800200000080000000020010884
-S31508002CE8002000000900000000400108002000003C
-S31508002CF80A00000000600108002000000B00000020
-S31508002D0800800108002000000C00000000A001084F
-S31508002D18002000000D00000000C001080020000087
-S31508002D280E00000000E00108002000000F00000067
-S31508002D38433A2F576F726B2F736F66747761726594
-S31508002D482F4F70656E424C542F5461726765742F05
-S31508002D5844656D6F2F41524D434D335F53544D3380
-S31508002D68325F4F6C696D65785F53544D333248311D
-S31508002D7830335F43726F7373776F726B732F426F5B
-S31508002D886F742F6964652F2E2E2F2E2E2F2E2E2F19
-S31508002D982E2E2F536F757263652F41524D434D334F
-S31508002DA85F53544D33322F7573622E63000000004B
-S30D08002DB84F70656E424C540091
-S31508002DC01C03530045005200310032003300340022
-S31508002DD0350036003700380039003000091700087A
-S31508002DE061100008611000086110000861100008F1
-S31508002DF06110000861100008151700086110000826
-S31508002E0061100008611000086110000861100008D0
-S31508002E10611000089C2B000820000000D11900084A
-S31508002E20FD180008111800081518000819180008D8
-S31508002E307118000879180008E9180008D51800085C
-S31508002E40A5180008000000004000000061100008F6
-S31508002E50E5170008611000086110000861100008F5
-S31508002E6061100008611000086110000801180008C8
-S31508002E70AE2B0008090000005C2B000812000000B9
-S31508002E80702B000804000000BC2B00081A00000084
-S31508002E90742B000826000000000000201C0000001B
-S31108002EA0D82B00082C00000003010000DD
+S315080027A8890189018901890182005400360074006B
+S315080027B8890189018901A9008901C500CA00DE00C5
+S315080027C842783E2A04D94FF02200FFF769FF4EE106
+S315080027D840F21875C2F2000505F10400A96CFFF766
+S315080027E84BF94FF0FF03EB706278AB6CD318AB6408
+S315080027F8637803F10103A5F8443038E143783E2BA2
+S3150800280804D94FF02200FFF74BFF30E1416840F248
+S315080028181875C2F20005A96405F104006278FFF785
+S315080028282BF94FF0FF03EB706278AB6CD318AB64E7
+S31508002838637803F10103A5F8443018E140F21873E8
+S31508002848C2F200034FF0FF02DA7042689A644FF04A
+S315080028580102A3F844200AE140F21873C2F2000301
+S315080028684FF0FF02DA70996C436843B14FF00002E3
+S3150800287811F8010B1218D2B2013BF9D101E04FF059
+S31508002888000240F21873C2F20003C3F807204FF09B
+S3150800289801021A714FF000025A719A714FF0080234
+S315080028A8A3F84420E3E040F21873C2F200034FF09D
+S315080028B8FF02DA7042F6AC52C0F600029A644FF08C
+S315080028C800021A715A719A714FF00701D9711A7272
+S315080028D85A729A724FF00802A3F84420C7E04FF0DC
+S315080028E80000FFF7DDFEC2E040F21873C2F20003EB
+S315080028F84FF0FF02DA704FF000021A7159785971D1
+S315080029089A71DA711A724FF00602A3F84420AEE0FB
+S3150800291840F21874C2F200044FF000032370FFF760
+S31508002928B7FE4FF0FF03E3704FF00103A4F84430F5
+S315080029389DE040F21873C2F20003986C04F1010294
+S315080029484FF03E01FFF7B8F820B94FF03100FFF70E
+S31508002958A7FE8CE040F21873C2F200034FF0FF029C
+S31508002968DA709A6C02F13E029A644FF00102A3F8F3
+S3150800297844207CE043783D2B04D94FF02200FFF72A
+S315080029888FFE74E040F21873C2F200034FF0FF029C
+S31508002998DA704FF00102A3F84420417841B9FFF7ED
+S315080029A89DF8002863D14FF03100FFF779FE5EE005
+S315080029B840F21873C2F20003986C04F10202FFF79A
+S315080029C87BF820B94FF03100FFF76AFE4FE040F276
+S315080029D81873C2F2000361789A6C8A189A6446E0FA
+S315080029E840F21873C2F200034FF0FF02DA704FF094
+S315080029F800021A715A714FF03F019971DA711A7209
+S31508002A085A724FF00702A3F8442030E040F21873D0
+S31508002A18C2F20003986C6168FFF754F820B94FF0C2
+S31508002A283100FFF73DFE22E040F21873C2F20003B8
+S31508002A384FF0FF02DA704FF00102A3F8442016E0BF
+S31508002A48FFF72EF840F21873C2F200034FF0FF02A0
+S31508002A58DA704FF00102A3F8442008E04FF031007D
+S31508002A68FFF71EFE03E04FF02000FFF719FE40F2BD
+S31508002A781873C2F2000393F84230012B03D14FF0C2
+S31508002A881000FFF70DFE40F21873C2F200034FF06C
+S31508002A98010283F8422003F10300B3F84410FFF754
+S31508002AA8DDFD30BD30B504460D4600F017F840F296
+S31508002AB86473C2F200031D6040F26873C2F2000331
+S31508002AC81C601A461368002BFCD100F009F840F27E
+S31508002AD86473C2F20003186830BD00BF704700BFB0
+S30908002AE8704700BF66
+S31508002AEC433A2F576F726B2F736F667477617265E3
+S31508002AFC2F4F70656E424C542F5461726765742F54
+S31508002B0C44656D6F2F41524D434D335F53544D33CE
+S31508002B1C325F4F6C696D65785F53544D333248316B
+S31508002B2C30335F43726F7373776F726B732F426FA9
+S31508002B3C6F742F6964652F2E2E2F6D61696E2E6347
+S31508002B4C000000001201100100000040450123009E
+S31508002B5C00010102030100000403090426035700BF
+S31508002B6C69006E00550053004200200042007500B3
+S31508002B7C6C006B0020004400650076006900630059
+S31508002B8C6500000009022000010100C0320904009A
+S31508002B9C0002FF000004070581024000000705013A
+S31508002BAC024000001A034F00700065006E004200D8
+S31508002BBC4C0054002000550073006500720000009C
+S31508002BCC2C03570069006E00550053004200200084
+S31508002BDC420075006C006B00200049006E00740002
+S31508002BEC650072006600610063006500433A2F5762
+S31508002BFC6F726B2F736F6674776172652F4F706582
+S31508002C0C6E424C542F5461726765742F44656D6F10
+S31508002C1C2F41524D434D335F53544D33325F4F6CF6
+S31508002C2C696D65785F53544D3332483130335F43A1
+S31508002C3C726F7373776F726B732F426F6F742F6922
+S31508002C4C64652F2E2E2F2E2E2F2E2E2F2E2E2F53F3
+S31508002C5C6F757263652F41524D434D335F53544D17
+S31508002C6C33322F43726F7373776F726B732F76656C
+S31508002C7C63746F72732E6300004000080020000016
+S31508002C8C020000000060000800200000030000009D
+S31508002C9C00800008002000000400000000A00008C6
+S31508002CAC002000000500000000C0000800200000FD
+S31508002CBC0600000000E000080020000007000000E5
+S31508002CCC0000010800200000080000000020010890
+S31508002CDC0020000009000000004001080020000048
+S31508002CEC0A00000000600108002000000B0000002C
+S31508002CFC00800108002000000C00000000A001085C
+S31508002D0C002000000D00000000C001080020000093
+S31508002D1C0E00000000E00108002000000F00000073
+S31508002D2C433A2F576F726B2F736F667477617265A0
+S31508002D3C2F4F70656E424C542F5461726765742F11
+S31508002D4C44656D6F2F41524D434D335F53544D338C
+S31508002D5C325F4F6C696D65785F53544D3332483129
+S31508002D6C30335F43726F7373776F726B732F426F67
+S31508002D7C6F742F6964652F2E2E2F2E2E2F2E2E2F25
+S31508002D8C2E2E2F536F757263652F41524D434D335B
+S31508002D9C5F53544D33322F7573622E630000000057
+S30D08002DAC4F70656E424C54009D
+S31508002DB41C0353004500520031003200330034002E
+S31508002DC43500360037003800390030000917000886
+S31508002DD461100008611000086110000861100008FD
+S31508002DE46110000861100008151700086110000832
+S31508002DF461100008611000086110000861100008DD
+S31508002E0461100008902B000820000000D119000862
+S31508002E14FD180008111800081518000819180008E4
+S31508002E247118000879180008E9180008D518000868
+S31508002E34A518000800000000400000006110000802
+S31508002E44E517000861100008611000086110000801
+S31508002E5461100008611000086110000801180008D4
+S31508002E64A22B000809000000502B000812000000DD
+S31508002E74642B000804000000B02B00081A000000A8
+S31508002E84682B000826000000000000201C00000033
+S31108002E94CC2B00082C00000003010000F5
S705080001DB16
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/boot.dox
new file mode 100644
index 00000000..1bdd328c
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_STM32_Olimex_STM32H103_Crossworks Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_STM32_Olimex_STM32H103_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/config.h
index a4b0f0e4..96b07870 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/config.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (72000)
+/** \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 (0)
+/** \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 (1)
/* The USB communication interface is selected by setting the BOOT_COM_USB_ENABLE
@@ -95,8 +113,11 @@
* respectively.
*
*/
+/** \brief Enable/disable USB transport layer. */
#define BOOT_COM_USB_ENABLE (1)
+/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_USB_TX_MAX_DATA (63)
+/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_USB_RX_MAX_DATA (63)
@@ -111,6 +132,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 (1)
@@ -123,7 +145,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)
@@ -136,6 +160,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
index e9f3daa8..ceb1856d 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,11 @@
****************************************************************************************/
#if (BOOT_COM_USB_ENABLE > 0)
-/****************************************************************************************
-** NAME: UsbConnect
-** PARAMETER: connect BLT_TRUE to connect and BLT_FALSE to disconnected.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB device should be connected
-** to the USB bus.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB device should be connected
+** to the USB bus.
+** \param connect BLT_TRUE to connect and BLT_FALSE to disconnect.
+** \return none.
**
****************************************************************************************/
void UsbConnectHook(blt_bool connect)
@@ -83,12 +84,10 @@ void UsbConnectHook(blt_bool connect)
} /*** end of UsbConnect ***/
-/****************************************************************************************
-** NAME: UsbEnterLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device
-** to enter a low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device
+** to enter a low power mode.
+** \return none.
**
****************************************************************************************/
void UsbEnterLowPowerModeHook(void)
@@ -97,12 +96,10 @@ void UsbEnterLowPowerModeHook(void)
} /*** end of UsbEnterLowPowerMode ***/
-/****************************************************************************************
-** NAME: UsbLeaveLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device to
-** exit low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device to
+** exit low power mode.
+** \return none.
**
****************************************************************************************/
void UsbLeaveLowPowerModeHook(void)
@@ -117,11 +114,9 @@ void UsbLeaveLowPowerModeHook(void)
****************************************************************************************/
#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)
@@ -136,11 +131,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)
@@ -162,15 +155,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)
@@ -186,12 +177,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)
@@ -199,20 +188,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)
@@ -221,18 +208,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)
@@ -241,11 +227,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)
@@ -260,13 +244,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)
@@ -274,14 +256,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
index 74c2e73f..fdfecfd2 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/ide/stm32f103_crossworks.hzs
@@ -40,8 +40,8 @@
-
+
@@ -54,7 +54,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/main.c
index cb783a88..2e2ca01a 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/main.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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)
@@ -69,12 +69,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_conf.h
index 0606690f..1eeaff52 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_conf.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device configuration header file
-| File Name: usb_conf.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_conf.h
+* \brief Bootloader USB device configuration header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_CONF_H
#define USB_CONF_H
@@ -35,18 +36,21 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
+/** \brief Total number of used endpoints. */
#define EP_NUM (3)
-/* buffer table base address */
+/** \brief Buffer table base address. */
#define BTABLE_ADDRESS (0x00)
-/* EP0 rx/tx buffer base address */
+/** \brief EP0 rx buffer base address. */
#define ENDP0_RXADDR (0x40)
+/** \brief EP0 tx buffer base address. */
#define ENDP0_TXADDR (0x80)
-/* EP1 rx/tx buffer base address */
+/** \brief EP1 rx buffer base address */
#define ENDP1_RXADDR (0xC0)
+/** \brief EP1 tx buffer base address */
#define ENDP1_TXADDR (0x100)
-/* mask defining which events has to be handled by the device application software */
+/** \brief Mask defining which events has to be handled by the device application software. */
#define IMR_MSK (CNTR_CTRM | CNTR_SOFM | CNTR_RESETM )
-/* enable start of frame callback */
+/** \brief Enable start of frame callback. */
#define SOF_CALLBACK
/* CTR service routines associated to defined endpoints. keep EP1_IN and EP1_OUT
* callback uncommented to enable them. They are implemented in usb_endp.c
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.c
index e6dfa7ea..14873853 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device descriptor source file
-| File Name: usb_desc.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_desc.c
+* \brief Bootloader USB device descriptor source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -40,7 +41,7 @@
/****************************************************************************************
* Constant data declarations
****************************************************************************************/
-/* USB Device Descriptor */
+/** \brief USB device descriptor. */
const uint8_t Bulk_DeviceDescriptor[] =
{
0x12, /* bLength */
@@ -63,7 +64,7 @@ const uint8_t Bulk_DeviceDescriptor[] =
0x01 /* bNumConfigurations */
};
-/* USB Configuration Descriptor */
+/** \brief USB configuration descriptor. */
const uint8_t Bulk_ConfigDescriptor[] =
{
/*Configuration Descriptor*/
@@ -104,7 +105,7 @@ const uint8_t Bulk_ConfigDescriptor[] =
0x00 /* bInterval: ignore for Bulk transfer */
};
-/* USB String Descriptors */
+/** \brief USB string descriptors. */
const uint8_t Bulk_StringLangID[BULK_SIZ_STRING_LANGID] =
{
BULK_SIZ_STRING_LANGID,
@@ -113,6 +114,7 @@ const uint8_t Bulk_StringLangID[BULK_SIZ_STRING_LANGID] =
0x04 /* LangID = 0x0409: U.S. English */
};
+/** \brief Vendor string. */
const uint8_t Bulk_StringVendor[BULK_SIZ_STRING_VENDOR] =
{
BULK_SIZ_STRING_VENDOR, /* Size of Vendor string */
@@ -122,6 +124,7 @@ const uint8_t Bulk_StringVendor[BULK_SIZ_STRING_VENDOR] =
' ', 0, 'U', 0, 's', 0, 'e', 0, 'r', 0
};
+/** \brief Product string. */
const uint8_t Bulk_StringProduct[BULK_SIZ_STRING_PRODUCT] =
{
BULK_SIZ_STRING_PRODUCT, /* bLength */
@@ -132,6 +135,7 @@ const uint8_t Bulk_StringProduct[BULK_SIZ_STRING_PRODUCT] =
'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0
};
+/** \brief Serial number string. */
uint8_t Bulk_StringSerial[BULK_SIZ_STRING_SERIAL] =
{
BULK_SIZ_STRING_SERIAL, /* bLength */
@@ -141,6 +145,7 @@ uint8_t Bulk_StringSerial[BULK_SIZ_STRING_SERIAL] =
'8', 0, '9', 0, '0', 0
};
+/** \brief Interface string. */
const uint8_t Bulk_StringInterface[BULK_SIZ_STRING_INTERFACE] =
{
BULK_SIZ_STRING_INTERFACE,
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.h
index 029d48e9..71a9542b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_desc.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device descriptor header file
-| File Name: usb_desc.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_desc.h
+* \brief Bootloader USB device descriptor header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_DESC_H
#define USB_DESC_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_endp.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_endp.c
index dfdc1d97..29a62a89 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_endp.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_endp.c
@@ -1,36 +1,36 @@
-/****************************************************************************************
-| Description: bootloader USB device endpoint routines source file
-| File Name: usb_endp.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_endp.c
+* \brief Bootloader USB device endpoint routines source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
-
/****************************************************************************************
* Include files
****************************************************************************************/
@@ -48,12 +48,10 @@ extern void UsbTransmitPipeBulkIN(void);
extern void UsbReceivePipeBulkOUT(void);
-/****************************************************************************************
-** NAME: EP1_IN_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Endpoint 1 IN callback that gets called each time that data can be
-** transmitted from the USB device to the host on this endpoint.
+/************************************************************************************//**
+** \brief Endpoint 1 IN callback that gets called each time that data can be
+** transmitted from the USB device to the host on this endpoint.
+** \return none.
**
****************************************************************************************/
void EP1_IN_Callback(void)
@@ -63,12 +61,10 @@ void EP1_IN_Callback(void)
} /*** end of EP1_IN_Callback ***/
-/****************************************************************************************
-** NAME: EP1_OUT_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Endpoint 1 OUT callback that gets called each time that data was
-** received from the USB host on this endpoint.
+/************************************************************************************//**
+** \brief Endpoint 1 OUT callback that gets called each time that data was
+** received from the USB host on this endpoint.
+** \return none.
**
****************************************************************************************/
void EP1_OUT_Callback(void)
@@ -78,13 +74,11 @@ void EP1_OUT_Callback(void)
} /*** end of EP1_OUT_Callback ***/
-/****************************************************************************************
-** NAME: SOF_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Start of frame callback that gets called each time a start of frame
-** was received from the USB host, typically each millisecond. Can be
-** used as a trigger to start a transmission to an IN endpoint.
+/************************************************************************************//**
+** \brief Start of frame callback that gets called each time a start of frame
+** was received from the USB host, typically each millisecond. Can be
+** used as a trigger to start a transmission to an IN endpoint.
+** \return none.
**
****************************************************************************************/
void SOF_Callback(void)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.c
index 0c22b41c..b74f2d08 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.c
@@ -1,36 +1,36 @@
-/****************************************************************************************
-| Description: bootloader USB device interrupt/event handler source file
-| File Name: usb_istr.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_istr.c
+* \brief Bootloader USB device interrupt/event handler source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
-
/****************************************************************************************
* Include files
****************************************************************************************/
@@ -43,11 +43,11 @@
/****************************************************************************************
* Global data declarations
****************************************************************************************/
-/* ISTR register last read value */
+/** \brief ISTR register last read value. */
volatile uint16_t wIstr;
-/* SOFs received between 2 consecutive packets */
+/** \brief SOFs received between 2 consecutive packets. */
volatile uint8_t bIntPackSOF = 0;
-/* function pointers to non-control endpoints service routines */
+/** \brief Function pointers to non-control IN endpoints service routines. */
void (*pEpInt_IN[7])(void) =
{
EP1_IN_Callback,
@@ -59,6 +59,7 @@ void (*pEpInt_IN[7])(void) =
EP7_IN_Callback,
};
+/** \brief Function pointers to non-control OUT endpoints service routines. */
void (*pEpInt_OUT[7])(void) =
{
EP1_OUT_Callback,
@@ -71,13 +72,11 @@ void (*pEpInt_OUT[7])(void) =
};
-/****************************************************************************************
-** NAME: USB_Istr
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB interrupt service routine to process USB related event. Note that
-** this function can also be called by the software program to operate
-** the USB functionality in a polling way.
+/************************************************************************************//**
+** \brief USB interrupt service routine to process USB related event. Note that
+** this function can also be called by the software program to operate
+** the USB functionality in a polling way.
+** \return none.
**
****************************************************************************************/
void USB_Istr(void)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.h
index 65f086eb..6d2371b7 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_istr.h
@@ -1,38 +1,38 @@
-/****************************************************************************************
-| Description: bootloader USB device interrupt/event handler header file
-| File Name: usb_istr.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_istr.h
+* \brief Bootloader USB device interrupt/event handler header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_ISTR_H
#define USB_ISTR_H
-
/****************************************************************************************
* Include files
****************************************************************************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.c
index 4c91089e..10c45fb5 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.c
@@ -1,36 +1,36 @@
-/****************************************************************************************
-| Description: bootloader USB device properties source file
-| File Name: usb_prop.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_prop.c
+* \brief Bootloader USB device properties source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
-
/****************************************************************************************
* Include files
****************************************************************************************/
@@ -50,12 +50,14 @@ extern void UsbGetSerialNum(void);
/****************************************************************************************
* Global data declarations
****************************************************************************************/
+/** \brief Device table. */
DEVICE Device_Table =
{
EP_NUM,
1
};
+/** \brief Device property table. */
DEVICE_PROP Device_Property =
{
Bulk_Init,
@@ -72,6 +74,7 @@ DEVICE_PROP Device_Property =
0x40 /*MAX PACKET SIZE*/
};
+/** \brief Supported standard requests. */
USER_STANDARD_REQUESTS User_Standard_Requests =
{
Bulk_GetConfiguration,
@@ -85,24 +88,28 @@ USER_STANDARD_REQUESTS User_Standard_Requests =
Bulk_SetDeviceAddress
};
+/** \brief Device descriptor wrapper. */
ONE_DESCRIPTOR Device_Descriptor =
{
(uint8_t*)Bulk_DeviceDescriptor,
BULK_SIZ_DEVICE_DESC
};
+/** \brief Device configuration wrapper. */
ONE_DESCRIPTOR Config_Descriptor =
{
(uint8_t*)Bulk_ConfigDescriptor,
BULK_SIZ_CONFIG_DESC
};
+/** \brief USB bulk descriptor wrapper. */
ONE_DESCRIPTOR Bulk_Descriptor =
{
(uint8_t*)Bulk_ConfigDescriptor + BULK_OFF_DESC,
BULK_SIZ_DESC
};
+/** \brief USB string table wrapper. */
ONE_DESCRIPTOR String_Descriptor[5] =
{
{(uint8_t*)Bulk_StringLangID, BULK_SIZ_STRING_LANGID},
@@ -113,11 +120,9 @@ ONE_DESCRIPTOR String_Descriptor[5] =
};
-/****************************************************************************************
-** NAME: Bulk_Init
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device initialization function.
+/************************************************************************************//**
+** \brief USB device initialization function.
+** \return none.
**
****************************************************************************************/
void Bulk_Init(void)
@@ -135,11 +140,9 @@ void Bulk_Init(void)
} /*** end of Bulk_Init ***/
-/****************************************************************************************
-** NAME: Bulk_Reset
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device reset routine.
+/************************************************************************************//**
+** \brief USB device reset routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Reset(void)
@@ -175,11 +178,9 @@ void Bulk_Reset(void)
} /*** end of Bulk_Reset ***/
-/****************************************************************************************
-** NAME: Bulk_SetConfiguration
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Update the device state to configured.
+/************************************************************************************//**
+** \brief Update the device state to configured.
+** \return none.
**
****************************************************************************************/
void Bulk_SetConfiguration(void)
@@ -194,11 +195,9 @@ void Bulk_SetConfiguration(void)
} /*** end of Bulk_SetConfiguration ***/
-/****************************************************************************************
-** NAME: Bulk_SetDeviceAddress
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Update the device state to addressed.
+/************************************************************************************//**
+** \brief Update the device state to addressed.
+** \return none.
**
****************************************************************************************/
void Bulk_SetDeviceAddress (void)
@@ -207,11 +206,9 @@ void Bulk_SetDeviceAddress (void)
} /*** end of Bulk_SetDeviceAddress ***/
-/****************************************************************************************
-** NAME: Bulk_Status_In
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device status in routine.
+/************************************************************************************//**
+** \brief USB device status in routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Status_In(void)
@@ -220,11 +217,9 @@ void Bulk_Status_In(void)
} /*** end of Bulk_Status_In ***/
-/****************************************************************************************
-** NAME: Bulk_Status_Out
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device status out routine.
+/************************************************************************************//**
+** \brief USB device status out routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Status_Out(void)
@@ -233,11 +228,10 @@ void Bulk_Status_Out(void)
} /*** end of Bulk_Status_Out ***/
-/****************************************************************************************
-** NAME: Bulk_Data_Setup
-** PARAMETER: RequestNo request number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Handles the data class specific requests.
+/************************************************************************************//**
+** \brief Handles the data class specific requests.
+** \param RequestNo Request number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_Data_Setup(uint8_t RequestNo)
@@ -269,11 +263,10 @@ RESULT Bulk_Data_Setup(uint8_t RequestNo)
} /*** end of Bulk_Data_Setup ***/
-/****************************************************************************************
-** NAME: Bulk_NoData_Setup
-** PARAMETER: RequestNo request number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Handles the no data class specific requests.
+/************************************************************************************//**
+** \brief Handles the no data class specific requests.
+** \param RequestNo Request number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_NoData_Setup(uint8_t RequestNo)
@@ -282,11 +275,10 @@ RESULT Bulk_NoData_Setup(uint8_t RequestNo)
} /*** end of Bulk_NoData_Setup ***/
-/****************************************************************************************
-** NAME: Bulk_GetDeviceDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the device descriptor.
-** DESCRIPTION: Gets the device descriptor.
+/************************************************************************************//**
+** \brief Gets the device descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the device descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetDeviceDescriptor(uint16_t Length)
@@ -295,11 +287,10 @@ uint8_t *Bulk_GetDeviceDescriptor(uint16_t Length)
} /*** end of Bulk_GetDeviceDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetConfigDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the configuration descriptor.
-** DESCRIPTION: Gets the configuration descriptor.
+/************************************************************************************//**
+** \brief Gets the configuration descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the configuration descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetConfigDescriptor(uint16_t Length)
@@ -308,11 +299,10 @@ uint8_t *Bulk_GetConfigDescriptor(uint16_t Length)
} /*** end of Bulk_GetConfigDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetStringDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the string descriptor.
-** DESCRIPTION: Gets the string descriptor.
+/************************************************************************************//**
+** \brief Gets the string descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the string descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetStringDescriptor(uint16_t Length)
@@ -329,11 +319,10 @@ uint8_t *Bulk_GetStringDescriptor(uint16_t Length)
} /*** end of Bulk_GetStringDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetBulkDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the bulk descriptor.
-** DESCRIPTION: Gets the bulk descriptor.
+/************************************************************************************//**
+** \brief Gets the bulk descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the bulk descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetBulkDescriptor(uint16_t Length)
@@ -342,13 +331,12 @@ uint8_t *Bulk_GetBulkDescriptor(uint16_t Length)
} /*** end of Bulk_GetBulkDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_Get_Interface_Setting
-** PARAMETER: Interface interface number.
-** AlternateSetting alternate setting number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Test the interface and the alternate setting according to the
-** supported one.
+/************************************************************************************//**
+** \brief Test the interface and the alternate setting according to the
+** supported one.
+** \param Interface interface number.
+** \param AlternateSetting alternate setting number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.h
index e9322fbd..16dce4c2 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_prop.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device properties header file
-| File Name: usb_prop.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_prop.h
+* \brief Bootloader USB device properties header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_PROP_H
#define USB_PROP_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.c
index 295a2aca..ac2f7890 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.c
@@ -1,36 +1,36 @@
-/****************************************************************************************
-| Description: bootloader USB device power management source file
-| File Name: usb_pwr.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_pwr.c
+* \brief Bootloader USB device power management source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
-
/****************************************************************************************
* Include files
****************************************************************************************/
@@ -52,11 +52,12 @@ extern void UsbLeaveLowPowerMode(void);
/****************************************************************************************
* Global data declarations
****************************************************************************************/
-/* USB device status */
+/** \brief USB device status. */
volatile uint32_t bDeviceState = UNCONNECTED;
-/* true when suspend is possible */
+/** \brief True when suspend is possible. */
volatile bool fSuspendEnabled = TRUE;
+/** \brief Data structure to group together resume state related information. */
struct
{
volatile RESUME_STATE eState;
@@ -64,11 +65,9 @@ struct
}ResumeS;
-/****************************************************************************************
-** NAME: PowerOn
-** PARAMETER: none
-** RETURN VALUE: USB_SUCCESS
-** DESCRIPTION: Power on routine for the USB device
+/************************************************************************************//**
+** \brief Power on routine for the USB device
+** \return USB_SUCCESS.
**
****************************************************************************************/
RESULT PowerOn(void)
@@ -92,11 +91,9 @@ RESULT PowerOn(void)
} /*** end of PowerOn ***/
-/****************************************************************************************
-** NAME: PowerOff
-** PARAMETER: none
-** RETURN VALUE: USB_SUCCESS
-** DESCRIPTION: Power of routine for the USB device to handle a switch of event.
+/************************************************************************************//**
+** \brief Power of routine for the USB device to handle a switch of event.
+** \return USB_SUCCESS.
**
****************************************************************************************/
RESULT PowerOff()
@@ -113,11 +110,9 @@ RESULT PowerOff()
} /*** end of PowerOff ***/
-/****************************************************************************************
-** NAME: Suspend
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Sets suspend mode operating conditions.
+/************************************************************************************//**
+** \brief Sets suspend mode operating conditions.
+** \return none.
**
****************************************************************************************/
void Suspend(void)
@@ -139,11 +134,9 @@ void Suspend(void)
} /*** end of Suspend ***/
-/****************************************************************************************
-** NAME: Resume_Init
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Handles wake-up restoring normal operations.
+/************************************************************************************//**
+** \brief Handles wake-up restoring normal operations.
+** \return none.
**
****************************************************************************************/
void Resume_Init(void)
@@ -164,14 +157,13 @@ void Resume_Init(void)
} /*** end of Resume_Init ***/
-/****************************************************************************************
-** NAME: Resume
-** PARAMETER: eResumeSetVal a state machine value (RESUME_STATE)
-** RETURN VALUE: none
-** DESCRIPTION: This is the state machine handling resume operations and timing
-** sequence. The control is based on the Resume structure variables and
-** on the ESOF interrupt calling this subroutine without changing
-** machine state.
+/************************************************************************************//**
+** \brief This is the state machine handling resume operations and timing
+** sequence. The control is based on the Resume structure variables and
+** on the ESOF interrupt calling this subroutine without changing
+** machine state.
+** \param eResumeSetVal a state machine value (RESUME_STATE)
+** \return none.
**
****************************************************************************************/
void Resume(RESUME_STATE eResumeSetVal)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.h
index c315dd60..640fcf49 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Boot/usb_pwr.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device power management header file
-| File Name: usb_pwr.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Boot\usb_pwr.h
+* \brief Bootloader USB device power management header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_PWR_H
#define USB_PWR_H
@@ -36,6 +37,7 @@
/****************************************************************************************
* Type definitions
****************************************************************************************/
+/** \brief Enumeration of the supported resume states. */
typedef enum _RESUME_STATE
{
RESUME_EXTERNAL,
@@ -48,6 +50,7 @@ typedef enum _RESUME_STATE
RESUME_ESOF
} RESUME_STATE;
+/** \brief Enumeration of the supported device states. */
typedef enum _DEVICE_STATE
{
UNCONNECTED,
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/bin/demoprog_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/bin/demoprog_olimex_stm32h103.elf
index 30e39b8c..1a3b10b4 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/bin/demoprog_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/bin/demoprog_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/header.h
index 228f9ba1..f0196de4 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/header.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/ide/stm32f103_crossworks.hzs
index c848e2b7..d693316d 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/ide/stm32f103_crossworks.hzs
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/ide/stm32f103_crossworks.hzs
@@ -51,7 +51,7 @@
-
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.c
index a5cd3cd8..ed3c20dc 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.h
index 9f12faf4..2e91e562 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.c
index d4d4a557..b3a999b1 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -60,11 +62,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.h
index f69b6a44..61296f92 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/main.c
index 025a2745..b8c522f0 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/main.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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)
@@ -66,11 +66,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/prog.dox
new file mode 100644
index 00000000..3644105e
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_STM32_Olimex_STM32H103_Crossworks User Program
+\brief User Program.
+\ingroup ARMCM3_STM32_Olimex_STM32H103_Crossworks
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.c
index 99b3dc42..8e561a7b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\timer.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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,10 @@ void TimerInit(void)
} /*** end of TimerInit ***/
-/****************************************************************************************
-** 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)
@@ -71,11 +73,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)
@@ -85,11 +85,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.h
index b2f160c6..285632eb 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\timer.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/vectors.c
index bcf3ebed..d2ceebdc 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/Prog/vectors.c
@@ -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) 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_Crossworks\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_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 .
+*
+* 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 .
+*
+* \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[] =
{
@@ -161,6 +164,6 @@ const tIsrFunc _vectors[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/demo.dox
new file mode 100644
index 00000000..bd6db73a
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_Crossworks/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_STM32_Olimex_STM32H103_Crossworks Demo for Olimex STM32-H103/Crossworks
+\brief Preconfigured programs for the Olimex STM32-H103 and the Crossworks IDE.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf
index 2e5ad746..a75aa2d2 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.map
index 34d99dce..c69fded2 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.map
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.map
@@ -7,38 +7,38 @@ start address 0x08000000
Program Header:
LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15
- filesz 0x000026b8 memsz 0x000026b8 flags r-x
- LOAD off 0x00010000 vaddr 0x20000000 paddr 0x080026b8 align 2**15
+ filesz 0x000026ac memsz 0x000026ac flags r-x
+ LOAD off 0x00010000 vaddr 0x20000000 paddr 0x080026ac align 2**15
filesz 0x000000ec memsz 0x0000095c flags rw-
private flags = 5000002: [Version5 EABI] [has entry point]
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .text 000026b8 08000000 08000000 00008000 2**2
+ 0 .text 000026ac 08000000 08000000 00008000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 1 .data 000000ec 20000000 080026b8 00010000 2**2
+ 1 .data 000000ec 20000000 080026ac 00010000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 2 .bss 00000870 200000ec 080027a4 000100ec 2**2
+ 2 .bss 00000870 200000ec 08002798 000100ec 2**2
ALLOC
3 .debug_info 00006d48 00000000 00000000 000100ec 2**0
CONTENTS, READONLY, DEBUGGING
- 4 .debug_abbrev 0000222b 00000000 00000000 00016e34 2**0
+ 4 .debug_abbrev 000021d1 00000000 00000000 00016e34 2**0
CONTENTS, READONLY, DEBUGGING
- 5 .debug_aranges 000007f0 00000000 00000000 0001905f 2**0
+ 5 .debug_aranges 000007f0 00000000 00000000 00019005 2**0
CONTENTS, READONLY, DEBUGGING
- 6 .debug_ranges 000007f8 00000000 00000000 0001984f 2**0
+ 6 .debug_ranges 000007f8 00000000 00000000 000197f5 2**0
CONTENTS, READONLY, DEBUGGING
- 7 .debug_line 00002b51 00000000 00000000 0001a047 2**0
+ 7 .debug_line 00002b4c 00000000 00000000 00019fed 2**0
CONTENTS, READONLY, DEBUGGING
- 8 .debug_str 00001d4a 00000000 00000000 0001cb98 2**0
+ 8 .debug_str 00001d4a 00000000 00000000 0001cb39 2**0
CONTENTS, READONLY, DEBUGGING
- 9 .comment 00000030 00000000 00000000 0001e8e2 2**0
+ 9 .comment 00000030 00000000 00000000 0001e883 2**0
CONTENTS, READONLY
- 10 .ARM.attributes 00000033 00000000 00000000 0001e912 2**0
+ 10 .ARM.attributes 00000033 00000000 00000000 0001e8b3 2**0
CONTENTS, READONLY
- 11 .debug_frame 0000116c 00000000 00000000 0001e948 2**2
+ 11 .debug_frame 0000116c 00000000 00000000 0001e8e8 2**2
CONTENTS, READONLY, DEBUGGING
- 12 .debug_loc 00003738 00000000 00000000 0001fab4 2**0
+ 12 .debug_loc 0000373f 00000000 00000000 0001fa54 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
08000000 l d .text 00000000 .text
@@ -57,7 +57,7 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 vectors.c
00000000 l df *ABS* 00000000 cstart.c
08000192 l F .text 00000000 zero_loop2
-080024dc l F .text 00000000 zero_loop
+080024d0 l F .text 00000000 zero_loop
00000000 l df *ABS* 00000000 hooks.c
200000ec l O .bss 00000001 initialized.5014
00000000 l df *ABS* 00000000 main.c
@@ -79,7 +79,7 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 xcp.c
080016e4 l F .text 00000010 XcpProtectResources
080016f4 l F .text 00000018 XcpSetCtoError
-080025b8 l O .text 00000008 xcpStationId
+080025ac l O .text 00000008 xcpStationId
20000138 l O .bss 0000004c xcpInfo
00000000 l df *ABS* 00000000 backdoor.c
00000000 l df *ABS* 00000000 cop.c
@@ -105,7 +105,7 @@ SYMBOL TABLE:
200002d0 l O .bss 00000040 USB_Rx_Buffer.5525
00000000 l df *ABS* 00000000 nvm.c
00000000 l df *ABS* 00000000 timer.c
-20000310 l O .bss 00000002 millisecond_counter
+20000310 l O .bss 00000004 millisecond_counter
00000000 l df *ABS* 00000000 flash.c
08001fb0 l F .text 0000001c FlashUnlock
08001fcc l F .text 00000010 FlashLock
@@ -114,8 +114,8 @@ SYMBOL TABLE:
080020d0 l F .text 00000038 FlashGetSectorBaseAddr
08002108 l F .text 00000030 FlashInitBlock
08002138 l F .text 00000044 FlashSwitchBlock
-0800217c l F .text 000000a0 FlashAddToBlock
-080025e4 l O .text 000000a8 flashLayout
+0800217c l F .text 00000092 FlashAddToBlock
+080025d8 l O .text 000000a8 flashLayout
20000314 l O .bss 00000204 bootBlockInfo
20000518 l O .bss 00000204 blockInfo
00000000 l df *ABS* 00000000 usb_desc.c
@@ -124,11 +124,11 @@ SYMBOL TABLE:
08001664 g F .text 00000034 ComInit
20000756 g O .bss 00000002 SaveRState
08001430 g F .text 00000024 SetEPRxValid
-08002234 g F .text 00000054 FlashWrite
+08002228 g F .text 00000054 FlashWrite
080015bc g F .text 00000028 GetEPRxCount
08001a98 g F .text 00000018 AssertFailure
08000374 g F .text 00000014 SOF_Callback
-080024a4 g F .text 0000005c reset_handler
+08002498 g F .text 0000005c reset_handler
08001f90 g F .text 00000020 TimerUpdate
08001728 g F .text 00000010 XcpPacketTransmitted
080009e4 g F .text 000000c0 Standard_SetEndPointFeature
@@ -144,7 +144,7 @@ SYMBOL TABLE:
20000724 g O .bss 00000002 SaveState
20000064 g O .data 00000008 Device_Descriptor
08001a94 g F .text 00000002 CopService
-080026b8 g .text 00000000 _etext
+080026ac g .text 00000000 _etext
08000414 g F .text 00000012 Bulk_Get_Interface_Setting
08001394 g F .text 0000003c SetEPTxStatus
200000d0 g O .data 0000001c pEpInt_OUT
@@ -156,10 +156,10 @@ SYMBOL TABLE:
080003b0 g F .text 00000002 Bulk_Status_In
08000c34 g F .text 00000370 Setup0_Process
08001650 g F .text 00000014 BootTask
-080023a8 g F .text 00000050 FlashWriteChecksum
+0800239c g F .text 00000050 FlashWriteChecksum
080016b8 g F .text 0000000e ComTransmitPacket
08001ee4 g F .text 0000003c UsbGetSerialNum
-08002550 g O .text 00000020 Bulk_ConfigDescriptor
+08002544 g O .text 00000020 Bulk_ConfigDescriptor
080003b4 g F .text 00000002 Bulk_Status_Out
2000071c g O .bss 00000002 wIstr
20000728 g O .bss 00000004 pProperty
@@ -167,18 +167,18 @@ SYMBOL TABLE:
200000b4 g O .data 0000001c pEpInt_IN
2000072c g O .bss 00000001 EPindex
20000008 g O .data 00000030 Device_Property
-08002570 g O .text 0000001a Bulk_StringVendor
+08002564 g O .text 0000001a Bulk_StringVendor
08000680 g F .text 000000cc Standard_GetStatus
08001f20 g F .text 00000008 NvmInit
-08002510 g O .text 00000012 Bulk_DeviceDescriptor
-0800221c g F .text 00000018 FlashInit
+08002504 g O .text 00000012 Bulk_DeviceDescriptor
+08002210 g F .text 00000018 FlashInit
2000006c g O .data 00000028 String_Descriptor
08001474 g F .text 00000028 ClearDTOG_RX
2000075a g .bss 00000000 _ebss
08001058 g F .text 00000002 NOP_Process
08000858 g F .text 00000060 Standard_SetInterface
0800156c g F .text 00000050 SetEPRxCount
-08002490 g F .text 00000014 UnusedISR
+08002484 g F .text 00000014 UnusedISR
08000238 g F .text 00000014 BackDoorEntryHook
080015f0 g F .text 00000024 USB_SIL_Init
080016b0 g F .text 00000008 ComFree
@@ -197,7 +197,7 @@ SYMBOL TABLE:
08000628 g F .text 0000002c Standard_GetConfiguration
08001738 g F .text 0000033c XcpPacketReceived
2000074c g O .bss 00000004 pUser_Standard_Requests
-08002450 g F .text 00000040 FlashDone
+08002444 g F .text 00000040 FlashDone
08000150 g F .text 00000068 EntryFromProg
08000fa4 g F .text 0000004c SetDeviceAddress
08001338 g F .text 0000002e PMAToUserBufferCopy
@@ -214,7 +214,7 @@ SYMBOL TABLE:
0800170c g F .text 0000001c XcpInit
08001c80 g F .text 0000006c UsbInit
08001cec g F .text 0000000c UsbFree
-08002288 g F .text 00000120 FlashErase
+0800227c g F .text 00000120 FlashErase
0800024c g F .text 00000118 main
08000654 g F .text 0000002c Standard_GetInterface
08001f40 g F .text 00000014 NvmDone
@@ -224,10 +224,10 @@ SYMBOL TABLE:
0800040c g F .text 00000006 Bulk_NoData_Setup
08000470 g F .text 00000010 Bulk_GetDeviceDescriptor
08000ac8 g F .text 0000001c Standard_GetDescriptorData
-08002528 g O .text 00000026 Bulk_StringProduct
+0800251c g O .text 00000026 Bulk_StringProduct
08000b28 g F .text 0000010c Out0_Process
20000000 g .data 00000000 _data
-08002524 g O .text 00000004 Bulk_StringLangID
+08002518 g O .text 00000004 Bulk_StringLangID
08001a90 g F .text 00000002 CopInit
08000364 g F .text 00000008 EP1_IN_Callback
08001afc g F .text 00000008 CpuReset
@@ -237,7 +237,7 @@ SYMBOL TABLE:
08001ab0 g F .text 00000028 CpuStartUserProgram
2000095c g .bss 00000000 _estack
08001d5c g F .text 00000088 UsbReceivePacket
-080023f8 g F .text 00000058 FlashVerifyChecksum
+080023ec g F .text 00000058 FlashVerifyChecksum
200000f4 g O .bss 00000001 Data_Mul_MaxPacketSize
200000ec g .data 00000000 _edata
08000428 g F .text 00000010 Bulk_GetBulkDescriptor
@@ -258,7 +258,7 @@ SYMBOL TABLE:
08001de4 g F .text 000000a4 UsbTransmitPipeBulkIN
08000214 g F .text 00000024 BackDoorInitHook
08000460 g F .text 00000010 Bulk_GetConfigDescriptor
-0800258c g O .text 0000002c Bulk_StringInterface
+08002580 g O .text 0000002c Bulk_StringInterface
08001f64 g F .text 0000002c TimerInit
20000754 g O .bss 00000002 wInterrupt_Mask
0800152c g F .text 00000020 GetEPRxAddr
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.srec
index da378be9..cc0985db 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.srec
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/bin/openbtl_olimex_stm32h103.srec
@@ -1,32 +1,32 @@
S024000062696E2F6F70656E62746C5F6F6C696D65785F73746D3332683130332E73726563A3
-S315080000005C090020A5240008912400089124000812
-S3150800001091240008912400089124000891240008DE
-S3150800002091240008912400089124000891240008CE
-S3150800003091240008912400089124000891240008BE
-S3150800004091240008912400089124000891240008AE
-S31508000050912400089124000891240008912400089E
-S31508000060912400089124000891240008912400088E
-S31508000070912400089124000891240008912400087E
-S31508000080912400089124000891240008912400086E
-S31508000090912400089124000891240008912400085E
-S315080000A0912400089124000891240008912400084E
-S315080000B0912400089124000891240008912400083E
-S315080000C0912400089124000891240008912400082E
-S315080000D0912400089124000891240008912400081E
-S315080000E0912400089124000891240008912400080E
-S315080000F091240008912400089124000891240008FE
-S3150800010091240008912400089124000891240008ED
-S3150800011091240008912400089124000891240008DD
-S3150800012091240008912400089124000891240008CD
-S3150800013091240008912400089124000891240008BD
-S3150800014091240008912400089124000891240008AD
+S315080000005C09002099240008852400088524000836
+S31508000010852400088524000885240008852400080E
+S3150800002085240008852400088524000885240008FE
+S3150800003085240008852400088524000885240008EE
+S3150800004085240008852400088524000885240008DE
+S3150800005085240008852400088524000885240008CE
+S3150800006085240008852400088524000885240008BE
+S3150800007085240008852400088524000885240008AE
+S31508000080852400088524000885240008852400089E
+S31508000090852400088524000885240008852400088E
+S315080000A0852400088524000885240008852400087E
+S315080000B0852400088524000885240008852400086E
+S315080000C0852400088524000885240008852400085E
+S315080000D0852400088524000885240008852400084E
+S315080000E0852400088524000885240008852400083E
+S315080000F0852400088524000885240008852400082E
+S31508000100852400088524000885240008852400081D
+S31508000110852400088524000885240008852400080D
+S3150800012085240008852400088524000885240008FD
+S3150800013085240008852400088524000885240008ED
+S3150800014085240008852400088524000885240008DD
S3150800015010B572B618481949016019498D46124BEF
S31508000160124A9A4211D202F10403114CE41A24F0FD
S31508000170030404F104044FF0000310460D495A58CD
S315080001801A5003F10403A342F9D10E480E494FF061
S3150800019000028842B8BF40F8042BFFF6FAAF01F018
S315080001A093FA00F053F810BDEC0000200000002080
-S315080001B0EF000020B826000808ED00E0000000085F
+S315080001B0EF000020AC26000808ED00E0000000086B
S315080001C05C090020EC0000205A0700200E4B1B7823
S315080001D093B90E4B9A6942F010029A61A3F58033DF
S315080001E05A6822F470425A605A6842F4E0425A60E9
@@ -43,7 +43,7 @@ S3150800028022F4FE025A604FF41F029A601A6842F47A
S3150800029080321A601A4640F2DC53116801F40031C4
S315080002A00191009901F101010091019911B9009993
S315080002B09942F2D1274B1B6813F4003F04D1274813
-S315080002C04FF06F0101F0E8FB254B1A6842F0100267
+S315080002C04FF06C0101F0E8FB254B1A6842F010026A
S315080002D01A601A6822F003021A601A6842F00202CB
S315080002E01A60A3F580535A685A605A6842F4005255
S315080002F05A605A6842F480625A605A6822F47C123C
@@ -52,7 +52,7 @@ S315080003101A601A6812F0007FFBD00E4B5A6822F05A
S3150800032003025A605A6842F002025A605A6802F09A
S315080003300C02082AFAD1074B5A6822F480025A603E
S31508000340DA6942F40002DA6101F076F901F080F91F
-S31508000350FCE700BF001002400000FFF8082500086F
+S31508000350FCE700BF001002400000FFF8FC2400087C
S315080003600020024008B501F03DFD08BD08B501F0C2
S315080003708BFD08BD08B5034B1B68052B01D101F0A1
S3150800038031FD08BDF0000020034B9B7A1BB14FF0EE
@@ -83,7 +83,7 @@ S315080005004FF0400101F022F84FF001004FF0400192
S3150800051001F02CF84FF001004FF4405100F058FF5D
S315080005204FF001004FF0200100F034FF204600F0A4
S3150800053039FD4FF00102044B1A6010BD5007002028
-S315080005405025000808000020F000002010B501F032
+S315080005404425000808000020F000002010B501F03E
S31508000550C9FC064B1B684FF000049C7200F04AF871
S3150800056001F046F8024B1C6010BD00BF5007002082
S31508000570F000002008B51A4B1A6892B2194B1A8077
@@ -415,7 +415,7 @@ S315080019C08A189A643FE00F4B4FF0FF02DA704FF027
S315080019D000021A715A714FF03F019971DA711A7241
S315080019E05A724FF00702A3F844202CE0054B986C76
S315080019F0616800F09DFA48B94FF03100FFF77AFEAA
-S31508001A0021E000BF38010020B8250008184B4FF028
+S31508001A0021E000BF38010020AC250008184B4FF034
S31508001A10FF02DA704FF00102A3F8442013E000F049
S31508001A206DF8134B4FF0FF02DA704FF00102A3F87E
S31508001A30442008E04FF03100FFF75CFE03E04FF06A
@@ -431,7 +431,7 @@ S31508001AC04FF48042024B1A60024B1B68984708BDC8
S31508001AD008ED00E00440000870B5044602F1FF3640
S31508001AE0B6B252B100F101039E190D1A635D04F8EE
S31508001AF0013BFFF7CFFFB442F8D170BD08B500F03F
-S31508001B00D1FC08BD30B41546C2B101F1010301F19B
+S31508001B00CBFC08BD30B41546C2B101F1010301F1A1
S31508001B10030102F1FF34E4B201EB44044FF0000183
S31508001B204FEA1072092A94BF3032373203F8012C73
S31508001B304FEA001003F8021BA342F1D130BC7047EC
@@ -439,36 +439,36 @@ S31508001B4010B40B4B1B687BB15A69094C2260197497
S31508001B509860D8604FF000025A74186001F1FF319E
S31508001B6040185860987C01E04FF0FF0010BC7047A1
S31508001B70D001002038B504460D46012804D9184876
-S31508001B804FF40171FFF788FF04EB4403154A02EB93
+S31508001B804FF4FC71FFF788FF04EB4403154A02EB98
S31508001B90C3035A7C1B7C9A421CD004EB4403114AAB
S31508001BA002EBC303DA681570597C01F10101597417
S31508001BB0DA6802F10102DA605B689A420DD9094BCC
S31508001BC004EB44044FEAC4041A191B59D3604FF0B6
S31508001BD0010038BD4FF0000038BD4FF0010038BD98
-S31508001BE0C0250008D401002008B50146024B187824
+S31508001BE0B4250008D401002008B50146024B187830
S31508001BF0FFF7C0FF08BD00BF4C02002038B50446F9
-S31508001C000D46012804D9174840F22721FFF744FF5B
+S31508001C000D46012804D9174840F21A21FFF744FF68
S31508001C1004EB4403144A02EBC3035B7CE3B104EB15
S31508001C20440302EBC3039A6812782A70597C01F1BF
S31508001C30FF3159749A6802F101029A605B689A4208
S31508001C400DD9094B04EB44044FEAC4041A191B596D
S31508001C5093604FF0010038BD4FF0000038BD4FF0DB
-S31508001C60010038BDC0250008D401002008B501468A
+S31508001C60010038BDB4250008D401002008B5014696
S31508001C70024B1878FFF7C2FF08BD00BF0402002018
S31508001C8038B5154B4FF000029A7403F118015961E3
S31508001C904FF0010183F82A10DA62104A1360104CDB
S31508001CA060184FF04001FFF74BFF20700D4D05F10E
S31508001CB001004FF04001FFF743FF28702378FF2B00
-S31508001CC001D0FF2804D108484FF07601FFF7E4FE5B
+S31508001CC001D0FF2804D108484FF07F01FFF7E4FE52
S31508001CD0FFF7C4F938BD00BFD4010020D0010020A9
-S31508001CE04C02002004020020C025000808B54FF069
+S31508001CE04C02002004020020B425000808B54FF075
S31508001CF00000FEF76BFA08BD2DE9F04106460C46D2
-S31508001D003F2904D914484FF09701FFF7C5FE20462E
-S31508001D10FFF76AFF012804D00F484FF09A01FFF732
+S31508001D003F2904D914484FF09D01FFF7C5FE204628
+S31508001D10FFF76AFF012804D00F484FF0A001FFF72C
S31508001D20BBFE2546ACB14FF00004DFF82C804FF01F
-S31508001D30A207FFF7AFFE305DFFF756FF012803D075
+S31508001D30A807FFF7AFFE305DFFF756FF012803D06F
S31508001D4040463946FFF7A8FE04F10104A3B2AB42A8
-S31508001D50EFD3BDE8F08100BFC025000810B50446E2
+S31508001D50EFD3BDE8F08100BFB425000810B50446EE
S31508001D60FEF708FC1B4B1B786BB91B48FFF77EFF79
S31508001D70012825D14FF00102164B1A704FF00000CA
S31508001D80164B187010BD154B1878154BC018FFF771
@@ -478,41 +478,41 @@ S31508001DB093FE4FF00002074B1A704FF0010010BD5A
S31508001DC04FF0000010BD4FF0000010BD4FF00000AE
S31508001DD010BD00BF480200208C010020CC01002065
S31508001DE08D0100202DE9F04383B0234B1C78012C8C
-S31508001DF004D922484FF41271FFF74EFE04EB44044F
+S31508001DF004D9224840F23A21FFF74EFE04EB440488
S31508001E001F4B03EBC404637C9BB3402B34BF99463A
S31508001E104FF04009B9F1000F1CD01A4B03F1FF34FB
-S31508001E2009F1FF36F6B29E19134DDFF850804FF4CC
-S31508001E30A67728780DF10701FFF7E0FE012803D001
+S31508001E2009F1FF36F6B29E19134DDFF8508040F2DD
+S31508001E30491728780DF10701FFF7E0FE012803D0BE
S31508001E4040463946FFF728FE9DF8073004F8013F5B
S31508001E50B442EED10B484FF480714A46FFF74CFA6C
S31508001E604FF001004946FFF771FB4FF00100FFF7FD
-S31508001E70CDFA03B0BDE8F0834C020020C025000867
+S31508001E70CDFA03B0BDE8F0834C020020B425000873
S31508001E80D4010020900200202DE9F0414FF0010016
S31508001E901149FFF7BFFB80B2C0B10F4B03F1FF3406
-S31508001EA000F1FF3086B29E190C4DDFF8348040F2FF
-S31508001EB07317287814F8011FFFF75CFE012803D072
+S31508001EA000F1FF3086B29E190C4DDFF834804FF4EE
+S31508001EB0B777287814F8011FFFF75CFE012803D0CE
S31508001EC040463946FFF7E8FDB442F2D14FF001002B
S31508001ED0FFF7AEFABDE8F081D00200200402002028
-S31508001EE0C025000838B50B4B1B680B4A146802F16D
+S31508001EE0B425000838B50B4B1B680B4A146802F179
S31508001EF004021268D0180CD0084D29464FF0080283
S31508001F00FFF700FE204605F110014FF00402FFF727
S31508001F10F9FD38BDE8F7FF1FECF7FF1F9A00002010
-S31508001F2008B500F07BF908BD08B500F083F908BDCF
-S31508001F3008B500F0A9F908BD08B500F05DFA08BDB6
-S31508001F4008B500F031FA10B100F082FA08BD4FF07A
+S31508001F2008B500F075F908BD08B500F07DF908BDDB
+S31508001F3008B500F0A3F908BD08B500F057FA08BDC2
+S31508001F4008B500F02BFA10B100F07CFA08BD4FF086
S31508001F50000008BD4FF00002014B1A60704700BF31
S31508001F6010E000E008B5FFF7F5FF064B064A5A6091
-S31508001F704FF000029A604FF005011960034B1A8072
+S31508001F704FF000029A604FF005011960034B1A6092
S31508001F8008BD00BF10E000E03F1901001003002063
-S31508001F90054B1B6813F4803F04D0044B1A8802F1E2
-S31508001FA001021A80704700BF10E000E0100300200D
+S31508001F90054B1B6813F4803F04D0044B1A6802F102
+S31508001FA001021A60704700BF10E000E0100300202D
S31508001FB0044B054A5A6002F188325A604FF03402DF
S31508001FC0DA6070470020024023016745024B1A6910
S31508001FD042F080021A61704700200240F8B50746B1
S31508001FE04FF0000425460D4EFFF754FDA359BB429A
S31508001FF00BD8311949685B189F4206D205EB450292
S31508002000064B03EB8202107AF8BD05F1010504F1CF
-S315080020100C04A82CE8D14FF0FF00F8BDE425000811
+S315080020100C04A82CE8D14FF0FF00F8BDD82500081D
S315080020202DE9F04180460068FFF7D8FFFF2847D022
S31508002030FFF7BEFF254BDB6813F0010F04D0FFF74F
S31508002040C5FF4FF000043DE0204B1A6942F001023B
@@ -527,7 +527,7 @@ S315080020C04FF000042046BDE8F08100BF0020024022
S315080020D070B506460B4D4FF00004FFF7DBFC2B7A74
S315080020E0B34205D104EB4402064B53F8220070BDF7
S315080020F004F1010405F10C050E2CEED14FF0FF306A
-S3150800210070BD00BFE425000808B54FEAC1534FEA81
+S3150800210070BD00BFD825000808B54FEAC1534FEA8D
S31508002110D3535BB903688B420BD040F8041B4FF4CA
S315080021200072FFF7D9FC4FF0010008BD4FF0000020
S3150800213008BD4FF0010008BD38B504460D460C4BE6
@@ -535,103 +535,102 @@ S31508002140984206D00B4B994205D0FFF769FF18B99C
S315080021500AE0094C00E0064C20462946FFF7D4FF62
S31508002160002808BF002401E04FF00004204638BDCF
S315080021701403002000400008180500202DE9F84344
-S3150800218006460C4615461F464FEA51294FEA492985
-S315080021900268B2F1FF3F03D14946FFF7B5FF88B39E
+S3150800218006460C4617461D464FEA51294FEA492985
+S315080021900368B3F1FF3F03D14946FFF7B5FF50B3D4
S315080021A033684B4505D030464946FFF7C5FF064616
-S315080021B060B33368E41A341904F1040407F1FF38EC
-S315080021C01FFA88F808F10108A84440F2FF1709F534
-S315080021D00079FFF75FFC06F10403E31ABB4207D94F
-S315080021E030464946FFF7A8FF064698B100F10404B1
-S315080021F015F8013B04F8013B4545EAD14FF00100CB
-S31508002200BDE8F8834FF00000BDE8F8834FF0000002
-S31508002210BDE8F8834FF00000BDE8F8834FF0FF33C0
-S31508002220024A1360024A1360704700BF180500206F
-S315080022301403002070B504460D461646FFF7CEFE79
-S31508002240FF2814D004F1FF304019FFF7C7FEFF2816
-S3150800225010D04FEA5422094BB3EB422F0CBF084863
-S31508002260084821463246ABB2FFF788FF70BD4FF0EB
-S31508002270000070BD4FF0000070BD00BF00400008B0
-S3150800228014030020180500202DE9F04106460C46E7
-S31508002290FFF7A4FE054606F1FF300019FFF79EFE7C
-S315080022A00446FF2D73D0FF2875D0854263D8012DCB
-S315080022B065D90F2867D8FFF77BFE394BDB6813F023
-S315080022C0010F05D0FFF782FE4FF00000BDE8F08150
-S315080022D0334B1A6942F002021A612846FFF7F8FEE4
-S315080022E007462046FFF7F4FE80462E4E4FF00005BF
-S315080022F0FFF7D0FB337AA34206D105EB4502294BFB
-S3150800230003EB82035B6807E005F1010506F10C069D
-S315080023100E2DEDD14FF00003C7EB08084344C3F375
-S315080023208F23EBB103F1FF339EB206F101064FEAA4
-S3150800233086264FF000051A4CEB196361236943F0B2
-S3150800234040032361E36813F0010F05D0FFF7A2FBF2
-S31508002350E36813F0010FF9D105F58065B542EBD1B5
-S315080023600F4B1A6922F002021A61FFF72FFE4FF08F
-S315080023700100BDE8F0814FF00000BDE8F0814FF0A4
-S315080023800000BDE8F0814FF00000BDE8F0814FF095
-S315080023900000BDE8F0814FF00000BDE8F08100BF05
-S315080023A000200240E425000800B583B0104B1B68E6
-S315080023B0B3F1FF3F18D00E4B99685A688918DA6846
-S315080023C089181A6989185A6989189A698A18D969EF
-S315080023D05318C3F1000302AA42F8043D05484FF01A
-S315080023E00401FFF727FF01E04FF0010003B000BD2D
-S315080023F014030020504100080E4B1868A3F104038B
-S315080024001B68C0180C4B1B68C0180C4B1B68C018FF
-S315080024100B4B1B68C0180B4B1B68C0180A4B1B6874
-S31508002420C0180A4B1B68C018D0F1010038BF00203D
-S31508002430704700BF04400008084000080C40000828
-S3150800244010400008144000081840000850410008D1
-S3150800245008B50D4B1B68B3F1FF3F03D00A48FFF7D9
-S31508002460DFFD58B1094B1B68B3F1FF3F09D0074898
-S31508002470FFF7D6FD003018BF012008BD4FF0000059
-S3150800248008BD4FF0010008BD140300201805002000
-S3150800249008B503484FF03601FFF7FEFA08BD00BF3E
-S315080024A08C26000810B572B6114B124A9A4211D200
-S315080024B002F10403104CE41A24F0030404F10404A2
-S315080024C04FF0000310460D495A581A5003F10403F9
-S315080024D0A342F9D10A480B494FF000028842B8BF17
-S315080024E040F8042BFFF6FAAFFDF7B0FE10BD00BFAB
-S315080024F0EC00002000000020EF000020B8260008AD
-S31508002500EC0000205A0700206D61696E2E630000FA
-S3150800251012011001000000404501230000010102DC
-S3150800252003010000040309042603570069006E002E
-S315080025305500530042002000420075006C006B00F5
-S31508002540200044006500760069006300650000000D
-S3150800255009022000010100C0320904000002FF0040
-S31508002560000407058102400000070501024000003B
-S315080025701A034F00700065006E0042004C005400BC
-S315080025802000550073006500720000002C035700F8
-S3150800259069006E0055005300420020004200750095
-S315080025A06C006B00200049006E0074006500720024
-S315080025B066006100630065004F70656E424C54000A
-S315080025C02E2E2F2E2E2F2E2E2F536F757263652FBC
-S315080025D041524D434D335F53544D33322F75736219
-S315080025E02E630000004000080020000002000000E2
-S315080025F000600008002000000300000000800008BA
-S31508002600002000000400000000A0000800200000D0
-S315080026100500000000C000080020000006000000B9
-S3150800262000E0000800200000070000000000010884
-S31508002630002000000800000000200108002000001B
-S315080026400900000000400108002000000A00000000
-S3150800265000600108002000000B000000008001084F
-S31508002660002000000C00000000A001080020000067
-S315080026700D00000000C00108002000000E00000048
-S3150800268000E00108002000000F0000002E2E2F2E6B
-S315080026902E2F2E2E2F536F757263652F41524D4381
-S315080026A04D335F53544D33322F4743432F7665637B
-S30D080026B0746F72732E630000BB
-S315080026B850250008200000004D0500088104000880
-S315080026C8B1030008B5030008B90300080D0400089B
-S315080026D81504000871040008610400083904000894
-S315080026E8000000004000000059100008890300088F
-S315080026F85910000859100008591000085910000800
-S315080027085910000859100008A10300086225000896
-S3150800271809000000102500081200000024250008FA
-S3150800272804000000702500081A0000002825000883
-S3150800273826000000980000201C0000008C250008D0
-S315080027482C000000030100001C035300450052003A
-S3150800275831003200330034003500360037003800BF
-S315080027683900300065030008591000085910000898
-S31508002778591000085910000859100008591000087F
-S315080027886D03000859100008591000085910000868
-S31108002798591000085910000859100008D4
+S315080021B028B33368E41A341904F1040440F2FF180A
+S315080021C009F50079FFF766FC06F10403E31A4345AF
+S315080021D007D930464946FFF7AFFF064698B100F1E2
+S315080021E0040417F8013B04F8013B013DEAD14FF01E
+S315080021F00100BDE8F8834FF00000BDE8F8834FF012
+S315080022000000BDE8F8834FF00000BDE8F88300BF82
+S315080022104FF0FF33024A1360024A1360704700BF4B
+S31508002220180500201403002070B504460D4616460E
+S31508002230FFF7D4FEFF2814D004F1FF304019FFF74A
+S31508002240CDFEFF2810D04FEA5422094BB3EB422F9C
+S315080022500CBF08480848214632462B46FFF78EFF32
+S3150800226070BD4FF0000070BD4FF0000070BD00BF9C
+S315080022700040000814030020180500202DE9F0414D
+S3150800228006460C46FFF7AAFE054606F1FF3000197A
+S31508002290FFF7A4FE0446FF2D73D0FF2875D08542AC
+S315080022A063D8012D65D90F2867D8FFF781FE394B0A
+S315080022B0DB6813F0010F05D0FFF788FE4FF000002A
+S315080022C0BDE8F081334B1A6942F002021A612846CA
+S315080022D0FFF7FEFE07462046FFF7FAFE80462E4E1B
+S315080022E04FF00005FFF7D6FB337AA34206D105EB7C
+S315080022F04502294B03EB82035B6807E005F10105FC
+S3150800230006F10C060E2DEDD14FF00003C7EB0808B9
+S315080023104344C3F38F23EBB103F1FF339EB206F1B7
+S3150800232001064FEA86264FF000051A4CEB19636141
+S31508002330236943F040032361E36813F0010F05D0D6
+S31508002340FFF7A8FBE36813F0010FF9D105F58065DF
+S31508002350B542EBD10F4B1A6922F002021A61FFF758
+S3150800236035FE4FF00100BDE8F0814FF00000BDE8F2
+S31508002370F0814FF00000BDE8F0814FF00000BDE8A5
+S31508002380F0814FF00000BDE8F0814FF00000BDE895
+S31508002390F08100BF00200240D825000800B583B0B0
+S315080023A0104B1B68B3F1FF3F18D00E4B99685A685B
+S315080023B08918DA6889181A6989185A6989189A6900
+S315080023C08A18D9695318C3F1000302AA42F8043DD2
+S315080023D005484FF00401FFF727FF01E04FF0010021
+S315080023E003B000BD14030020504100080E4B1868C6
+S315080023F0A3F104031B68C0180C4B1B68C0180C4BD0
+S315080024001B68C0180B4B1B68C0180B4B1B68C01801
+S315080024100A4B1B68C0180A4B1B68C018D0F101008C
+S3150800242038BF0020704700BF044000080840000875
+S315080024300C40000810400008144000081840000826
+S315080024405041000808B50D4B1B68B3F1FF3F03D098
+S315080024500A48FFF7E5FD58B1094B1B68B3F1FF3F82
+S3150800246009D00748FFF7DCFD003018BF012008BD7A
+S315080024704FF0000008BD4FF0010008BD140300200E
+S315080024801805002008B503484FF03601FFF704FB8E
+S3150800249008BD00BF8026000810B572B6114B124A57
+S315080024A09A4211D202F10403104CE41A24F00304F0
+S315080024B004F104044FF0000310460D495A581A5007
+S315080024C003F10403A342F9D10A480B494FF000026D
+S315080024D08842B8BF40F8042BFFF6FAAFFDF7B6FE00
+S315080024E010BD00BFEC00002000000020EF00002017
+S315080024F0AC260008EC0000205A0700206D61696EC2
+S315080025002E6300001201100100000040450123005F
+S315080025100001010203010000040309042603570011
+S3150800252069006E0055005300420020004200750005
+S315080025306C006B00200044006500760069006300AB
+S315080025406500000009022000010100C032090400EC
+S315080025500002FF000004070581024000000705018C
+S31508002560024000001A034F00700065006E0042002A
+S315080025704C005400200055007300650072000000EE
+S315080025802C03570069006E005500530042002000D6
+S31508002590420075006C006B00200049006E00740054
+S315080025A06500720066006100630065004F70656E25
+S315080025B0424C54002E2E2F2E2E2F2E2E2F536F7553
+S315080025C07263652F41524D434D335F53544D333239
+S315080025D02F7573622E63000000400008002000007B
+S315080025E00200000000600008002000000300000050
+S315080025F000800008002000000400000000A0000879
+S31508002600002000000500000000C0000800200000AF
+S315080026100600000000E00008002000000700000097
+S315080026200000010800200000080000000020010842
+S3150800263000200000090000000040010800200000FA
+S315080026400A00000000600108002000000B000000DE
+S3150800265000800108002000000C00000000A001080E
+S31508002660002000000D00000000C001080020000046
+S315080026700E00000000E00108002000000F00000026
+S315080026802E2E2F2E2E2F2E2E2F536F757263652FFB
+S3150800269041524D434D335F53544D33322F474343D5
+S311080026A02F766563746F72732E6300005A
+S315080026AC44250008200000004D0500088104000898
+S315080026BCB1030008B5030008B90300080D040008A7
+S315080026CC15040008710400086104000839040008A0
+S315080026DC000000004000000059100008890300089B
+S315080026EC591000085910000859100008591000080C
+S315080026FC5910000859100008A103000856250008AF
+S3150800270C090000000425000812000000182500081E
+S3150800271C04000000642500081A0000001C250008A7
+S3150800272C26000000980000201C00000080250008E8
+S3150800273C2C000000030100001C0353004500520046
+S3150800274C31003200330034003500360037003800CB
+S3150800275C39003000650300085910000859100008A4
+S3150800276C591000085910000859100008591000088B
+S3150800277C6D03000859100008591000085910000874
+S3110800278C591000085910000859100008E0
S70508000000F2
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/boot.dox
new file mode 100644
index 00000000..dd9895bd
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_STM32_Olimex_STM32H103_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/config.h
index a4b0f0e4..5f02e575 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/config.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (72000)
+/** \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 (0)
+/** \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 (1)
/* The USB communication interface is selected by setting the BOOT_COM_USB_ENABLE
@@ -95,8 +113,11 @@
* respectively.
*
*/
+/** \brief Enable/disable USB transport layer. */
#define BOOT_COM_USB_ENABLE (1)
+/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_USB_TX_MAX_DATA (63)
+/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_USB_RX_MAX_DATA (63)
@@ -111,6 +132,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 (1)
@@ -123,7 +145,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)
@@ -136,6 +160,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
index e9f3daa8..e4937250 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,11 @@
****************************************************************************************/
#if (BOOT_COM_USB_ENABLE > 0)
-/****************************************************************************************
-** NAME: UsbConnect
-** PARAMETER: connect BLT_TRUE to connect and BLT_FALSE to disconnected.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB device should be connected
-** to the USB bus.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB device should be connected
+** to the USB bus.
+** \param connect BLT_TRUE to connect and BLT_FALSE to disconnect.
+** \return none.
**
****************************************************************************************/
void UsbConnectHook(blt_bool connect)
@@ -83,12 +84,10 @@ void UsbConnectHook(blt_bool connect)
} /*** end of UsbConnect ***/
-/****************************************************************************************
-** NAME: UsbEnterLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device
-** to enter a low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device
+** to enter a low power mode.
+** \return none.
**
****************************************************************************************/
void UsbEnterLowPowerModeHook(void)
@@ -97,12 +96,10 @@ void UsbEnterLowPowerModeHook(void)
} /*** end of UsbEnterLowPowerMode ***/
-/****************************************************************************************
-** NAME: UsbLeaveLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device to
-** exit low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device to
+** exit low power mode.
+** \return none.
**
****************************************************************************************/
void UsbLeaveLowPowerModeHook(void)
@@ -117,11 +114,9 @@ void UsbLeaveLowPowerModeHook(void)
****************************************************************************************/
#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)
@@ -136,11 +131,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)
@@ -162,15 +155,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)
@@ -186,12 +177,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)
@@ -199,20 +188,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)
@@ -221,18 +208,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)
@@ -241,11 +227,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)
@@ -260,13 +244,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)
@@ -274,14 +256,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/main.c
index cb783a88..bc3e6889 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/main.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\main.c
+* \brief Bootloader application source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
@@ -69,12 +69,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_conf.h
index 0606690f..ecc198e7 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_conf.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_conf.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device configuration header file
-| File Name: usb_conf.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_conf.h
+* \brief Bootloader USB device configuration header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_CONF_H
#define USB_CONF_H
@@ -35,18 +36,21 @@
/****************************************************************************************
* Macro definitions
****************************************************************************************/
+/** \brief Total number of used endpoints. */
#define EP_NUM (3)
-/* buffer table base address */
+/** \brief Buffer table base address. */
#define BTABLE_ADDRESS (0x00)
-/* EP0 rx/tx buffer base address */
+/** \brief EP0 rx buffer base address. */
#define ENDP0_RXADDR (0x40)
+/** \brief EP0 tx buffer base address. */
#define ENDP0_TXADDR (0x80)
-/* EP1 rx/tx buffer base address */
+/** \brief EP1 rx buffer base address */
#define ENDP1_RXADDR (0xC0)
+/** \brief EP1 tx buffer base address */
#define ENDP1_TXADDR (0x100)
-/* mask defining which events has to be handled by the device application software */
+/** \brief Mask defining which events has to be handled by the device application software. */
#define IMR_MSK (CNTR_CTRM | CNTR_SOFM | CNTR_RESETM )
-/* enable start of frame callback */
+/** \brief Enable start of frame callback. */
#define SOF_CALLBACK
/* CTR service routines associated to defined endpoints. keep EP1_IN and EP1_OUT
* callback uncommented to enable them. They are implemented in usb_endp.c
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.c
index e6dfa7ea..a4b65fcf 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device descriptor source file
-| File Name: usb_desc.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_desc.c
+* \brief Bootloader USB device descriptor source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -40,7 +41,7 @@
/****************************************************************************************
* Constant data declarations
****************************************************************************************/
-/* USB Device Descriptor */
+/** \brief USB device descriptor. */
const uint8_t Bulk_DeviceDescriptor[] =
{
0x12, /* bLength */
@@ -63,7 +64,7 @@ const uint8_t Bulk_DeviceDescriptor[] =
0x01 /* bNumConfigurations */
};
-/* USB Configuration Descriptor */
+/** \brief USB configuration descriptor. */
const uint8_t Bulk_ConfigDescriptor[] =
{
/*Configuration Descriptor*/
@@ -104,7 +105,7 @@ const uint8_t Bulk_ConfigDescriptor[] =
0x00 /* bInterval: ignore for Bulk transfer */
};
-/* USB String Descriptors */
+/** \brief USB string descriptors. */
const uint8_t Bulk_StringLangID[BULK_SIZ_STRING_LANGID] =
{
BULK_SIZ_STRING_LANGID,
@@ -113,6 +114,7 @@ const uint8_t Bulk_StringLangID[BULK_SIZ_STRING_LANGID] =
0x04 /* LangID = 0x0409: U.S. English */
};
+/** \brief Vendor string. */
const uint8_t Bulk_StringVendor[BULK_SIZ_STRING_VENDOR] =
{
BULK_SIZ_STRING_VENDOR, /* Size of Vendor string */
@@ -122,6 +124,7 @@ const uint8_t Bulk_StringVendor[BULK_SIZ_STRING_VENDOR] =
' ', 0, 'U', 0, 's', 0, 'e', 0, 'r', 0
};
+/** \brief Product string. */
const uint8_t Bulk_StringProduct[BULK_SIZ_STRING_PRODUCT] =
{
BULK_SIZ_STRING_PRODUCT, /* bLength */
@@ -132,6 +135,7 @@ const uint8_t Bulk_StringProduct[BULK_SIZ_STRING_PRODUCT] =
'D', 0, 'e', 0, 'v', 0, 'i', 0, 'c', 0, 'e', 0
};
+/** \brief Serial number string. */
uint8_t Bulk_StringSerial[BULK_SIZ_STRING_SERIAL] =
{
BULK_SIZ_STRING_SERIAL, /* bLength */
@@ -141,6 +145,7 @@ uint8_t Bulk_StringSerial[BULK_SIZ_STRING_SERIAL] =
'8', 0, '9', 0, '0', 0
};
+/** \brief Interface string. */
const uint8_t Bulk_StringInterface[BULK_SIZ_STRING_INTERFACE] =
{
BULK_SIZ_STRING_INTERFACE,
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.h
index 029d48e9..e40c3eb0 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_desc.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device descriptor header file
-| File Name: usb_desc.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_desc.h
+* \brief Bootloader USB device descriptor header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_DESC_H
#define USB_DESC_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_endp.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_endp.c
index dfdc1d97..3c6bc80e 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_endp.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_endp.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device endpoint routines source file
-| File Name: usb_endp.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_endp.c
+* \brief Bootloader USB device endpoint routines source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
@@ -48,12 +49,10 @@ extern void UsbTransmitPipeBulkIN(void);
extern void UsbReceivePipeBulkOUT(void);
-/****************************************************************************************
-** NAME: EP1_IN_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Endpoint 1 IN callback that gets called each time that data can be
-** transmitted from the USB device to the host on this endpoint.
+/************************************************************************************//**
+** \brief Endpoint 1 IN callback that gets called each time that data can be
+** transmitted from the USB device to the host on this endpoint.
+** \return none.
**
****************************************************************************************/
void EP1_IN_Callback(void)
@@ -63,12 +62,10 @@ void EP1_IN_Callback(void)
} /*** end of EP1_IN_Callback ***/
-/****************************************************************************************
-** NAME: EP1_OUT_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Endpoint 1 OUT callback that gets called each time that data was
-** received from the USB host on this endpoint.
+/************************************************************************************//**
+** \brief Endpoint 1 OUT callback that gets called each time that data was
+** received from the USB host on this endpoint.
+** \return none.
**
****************************************************************************************/
void EP1_OUT_Callback(void)
@@ -78,13 +75,11 @@ void EP1_OUT_Callback(void)
} /*** end of EP1_OUT_Callback ***/
-/****************************************************************************************
-** NAME: SOF_Callback
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Start of frame callback that gets called each time a start of frame
-** was received from the USB host, typically each millisecond. Can be
-** used as a trigger to start a transmission to an IN endpoint.
+/************************************************************************************//**
+** \brief Start of frame callback that gets called each time a start of frame
+** was received from the USB host, typically each millisecond. Can be
+** used as a trigger to start a transmission to an IN endpoint.
+** \return none.
**
****************************************************************************************/
void SOF_Callback(void)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.c
index 0c22b41c..155d62cb 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device interrupt/event handler source file
-| File Name: usb_istr.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_istr.c
+* \brief Bootloader USB device interrupt/event handler source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
@@ -43,11 +44,11 @@
/****************************************************************************************
* Global data declarations
****************************************************************************************/
-/* ISTR register last read value */
+/** \brief ISTR register last read value. */
volatile uint16_t wIstr;
-/* SOFs received between 2 consecutive packets */
+/** \brief SOFs received between 2 consecutive packets. */
volatile uint8_t bIntPackSOF = 0;
-/* function pointers to non-control endpoints service routines */
+/** \brief Function pointers to non-control IN endpoints service routines. */
void (*pEpInt_IN[7])(void) =
{
EP1_IN_Callback,
@@ -59,6 +60,7 @@ void (*pEpInt_IN[7])(void) =
EP7_IN_Callback,
};
+/** \brief Function pointers to non-control OUT endpoints service routines. */
void (*pEpInt_OUT[7])(void) =
{
EP1_OUT_Callback,
@@ -71,13 +73,11 @@ void (*pEpInt_OUT[7])(void) =
};
-/****************************************************************************************
-** NAME: USB_Istr
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB interrupt service routine to process USB related event. Note that
-** this function can also be called by the software program to operate
-** the USB functionality in a polling way.
+/************************************************************************************//**
+** \brief USB interrupt service routine to process USB related event. Note that
+** this function can also be called by the software program to operate
+** the USB functionality in a polling way.
+** \return none.
**
****************************************************************************************/
void USB_Istr(void)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.h
index 65f086eb..e4754efe 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_istr.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device interrupt/event handler header file
-| File Name: usb_istr.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_istr.h
+* \brief Bootloader USB device interrupt/event handler header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_ISTR_H
#define USB_ISTR_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.c
index 4c91089e..843d8fe8 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device properties source file
-| File Name: usb_prop.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_prop.c
+* \brief Bootloader USB device properties source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
@@ -50,12 +51,14 @@ extern void UsbGetSerialNum(void);
/****************************************************************************************
* Global data declarations
****************************************************************************************/
+/** \brief Device table. */
DEVICE Device_Table =
{
EP_NUM,
1
};
+/** \brief Device property table. */
DEVICE_PROP Device_Property =
{
Bulk_Init,
@@ -72,6 +75,7 @@ DEVICE_PROP Device_Property =
0x40 /*MAX PACKET SIZE*/
};
+/** \brief Supported standard requests. */
USER_STANDARD_REQUESTS User_Standard_Requests =
{
Bulk_GetConfiguration,
@@ -85,24 +89,28 @@ USER_STANDARD_REQUESTS User_Standard_Requests =
Bulk_SetDeviceAddress
};
+/** \brief Device descriptor wrapper. */
ONE_DESCRIPTOR Device_Descriptor =
{
(uint8_t*)Bulk_DeviceDescriptor,
BULK_SIZ_DEVICE_DESC
};
+/** \brief Device configuration wrapper. */
ONE_DESCRIPTOR Config_Descriptor =
{
(uint8_t*)Bulk_ConfigDescriptor,
BULK_SIZ_CONFIG_DESC
};
+/** \brief USB bulk descriptor wrapper. */
ONE_DESCRIPTOR Bulk_Descriptor =
{
(uint8_t*)Bulk_ConfigDescriptor + BULK_OFF_DESC,
BULK_SIZ_DESC
};
+/** \brief USB string table wrapper. */
ONE_DESCRIPTOR String_Descriptor[5] =
{
{(uint8_t*)Bulk_StringLangID, BULK_SIZ_STRING_LANGID},
@@ -113,11 +121,9 @@ ONE_DESCRIPTOR String_Descriptor[5] =
};
-/****************************************************************************************
-** NAME: Bulk_Init
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device initialization function.
+/************************************************************************************//**
+** \brief USB device initialization function.
+** \return none.
**
****************************************************************************************/
void Bulk_Init(void)
@@ -135,11 +141,9 @@ void Bulk_Init(void)
} /*** end of Bulk_Init ***/
-/****************************************************************************************
-** NAME: Bulk_Reset
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device reset routine.
+/************************************************************************************//**
+** \brief USB device reset routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Reset(void)
@@ -175,11 +179,9 @@ void Bulk_Reset(void)
} /*** end of Bulk_Reset ***/
-/****************************************************************************************
-** NAME: Bulk_SetConfiguration
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Update the device state to configured.
+/************************************************************************************//**
+** \brief Update the device state to configured.
+** \return none.
**
****************************************************************************************/
void Bulk_SetConfiguration(void)
@@ -194,11 +196,9 @@ void Bulk_SetConfiguration(void)
} /*** end of Bulk_SetConfiguration ***/
-/****************************************************************************************
-** NAME: Bulk_SetDeviceAddress
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Update the device state to addressed.
+/************************************************************************************//**
+** \brief Update the device state to addressed.
+** \return none.
**
****************************************************************************************/
void Bulk_SetDeviceAddress (void)
@@ -207,11 +207,9 @@ void Bulk_SetDeviceAddress (void)
} /*** end of Bulk_SetDeviceAddress ***/
-/****************************************************************************************
-** NAME: Bulk_Status_In
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device status in routine.
+/************************************************************************************//**
+** \brief USB device status in routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Status_In(void)
@@ -220,11 +218,9 @@ void Bulk_Status_In(void)
} /*** end of Bulk_Status_In ***/
-/****************************************************************************************
-** NAME: Bulk_Status_Out
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: USB device status out routine.
+/************************************************************************************//**
+** \brief USB device status out routine.
+** \return none.
**
****************************************************************************************/
void Bulk_Status_Out(void)
@@ -233,11 +229,10 @@ void Bulk_Status_Out(void)
} /*** end of Bulk_Status_Out ***/
-/****************************************************************************************
-** NAME: Bulk_Data_Setup
-** PARAMETER: RequestNo request number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Handles the data class specific requests.
+/************************************************************************************//**
+** \brief Handles the data class specific requests.
+** \param RequestNo Request number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_Data_Setup(uint8_t RequestNo)
@@ -269,11 +264,10 @@ RESULT Bulk_Data_Setup(uint8_t RequestNo)
} /*** end of Bulk_Data_Setup ***/
-/****************************************************************************************
-** NAME: Bulk_NoData_Setup
-** PARAMETER: RequestNo request number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Handles the no data class specific requests.
+/************************************************************************************//**
+** \brief Handles the no data class specific requests.
+** \param RequestNo Request number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_NoData_Setup(uint8_t RequestNo)
@@ -282,11 +276,10 @@ RESULT Bulk_NoData_Setup(uint8_t RequestNo)
} /*** end of Bulk_NoData_Setup ***/
-/****************************************************************************************
-** NAME: Bulk_GetDeviceDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the device descriptor.
-** DESCRIPTION: Gets the device descriptor.
+/************************************************************************************//**
+** \brief Gets the device descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the device descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetDeviceDescriptor(uint16_t Length)
@@ -295,11 +288,10 @@ uint8_t *Bulk_GetDeviceDescriptor(uint16_t Length)
} /*** end of Bulk_GetDeviceDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetConfigDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the configuration descriptor.
-** DESCRIPTION: Gets the configuration descriptor.
+/************************************************************************************//**
+** \brief Gets the configuration descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the configuration descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetConfigDescriptor(uint16_t Length)
@@ -308,11 +300,10 @@ uint8_t *Bulk_GetConfigDescriptor(uint16_t Length)
} /*** end of Bulk_GetConfigDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetStringDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the string descriptor.
-** DESCRIPTION: Gets the string descriptor.
+/************************************************************************************//**
+** \brief Gets the string descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the string descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetStringDescriptor(uint16_t Length)
@@ -329,11 +320,10 @@ uint8_t *Bulk_GetStringDescriptor(uint16_t Length)
} /*** end of Bulk_GetStringDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_GetBulkDescriptor
-** PARAMETER: Length length of the descriptor in bytes.
-** RETURN VALUE: The address of the bulk descriptor.
-** DESCRIPTION: Gets the bulk descriptor.
+/************************************************************************************//**
+** \brief Gets the bulk descriptor.
+** \param Length Length of the descriptor in bytes.
+** \return The address of the bulk descriptor.
**
****************************************************************************************/
uint8_t *Bulk_GetBulkDescriptor(uint16_t Length)
@@ -342,13 +332,12 @@ uint8_t *Bulk_GetBulkDescriptor(uint16_t Length)
} /*** end of Bulk_GetBulkDescriptor ***/
-/****************************************************************************************
-** NAME: Bulk_Get_Interface_Setting
-** PARAMETER: Interface interface number.
-** AlternateSetting alternate setting number.
-** RETURN VALUE: USB_UNSUPPORT or USB_SUCCESS.
-** DESCRIPTION: Test the interface and the alternate setting according to the
-** supported one.
+/************************************************************************************//**
+** \brief Test the interface and the alternate setting according to the
+** supported one.
+** \param Interface interface number.
+** \param AlternateSetting alternate setting number.
+** \return USB_UNSUPPORT or USB_SUCCESS.
**
****************************************************************************************/
RESULT Bulk_Get_Interface_Setting(uint8_t Interface, uint8_t AlternateSetting)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.h
index e9322fbd..c7cc33ac 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_prop.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device properties header file
-| File Name: usb_prop.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_prop.h
+* \brief Bootloader USB device properties header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_PROP_H
#define USB_PROP_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.c
index 295a2aca..184a7e52 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.c
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device power management source file
-| File Name: usb_pwr.c
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_pwr.c
+* \brief Bootloader USB device power management source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
@@ -52,11 +53,12 @@ extern void UsbLeaveLowPowerMode(void);
/****************************************************************************************
* Global data declarations
****************************************************************************************/
-/* USB device status */
+/** \brief USB device status. */
volatile uint32_t bDeviceState = UNCONNECTED;
-/* true when suspend is possible */
+/** \brief True when suspend is possible. */
volatile bool fSuspendEnabled = TRUE;
+/** \brief Data structure to group together resume state related information. */
struct
{
volatile RESUME_STATE eState;
@@ -64,11 +66,9 @@ struct
}ResumeS;
-/****************************************************************************************
-** NAME: PowerOn
-** PARAMETER: none
-** RETURN VALUE: USB_SUCCESS
-** DESCRIPTION: Power on routine for the USB device
+/************************************************************************************//**
+** \brief Power on routine for the USB device
+** \return USB_SUCCESS.
**
****************************************************************************************/
RESULT PowerOn(void)
@@ -92,11 +92,9 @@ RESULT PowerOn(void)
} /*** end of PowerOn ***/
-/****************************************************************************************
-** NAME: PowerOff
-** PARAMETER: none
-** RETURN VALUE: USB_SUCCESS
-** DESCRIPTION: Power of routine for the USB device to handle a switch of event.
+/************************************************************************************//**
+** \brief Power of routine for the USB device to handle a switch of event.
+** \return USB_SUCCESS.
**
****************************************************************************************/
RESULT PowerOff()
@@ -113,11 +111,9 @@ RESULT PowerOff()
} /*** end of PowerOff ***/
-/****************************************************************************************
-** NAME: Suspend
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Sets suspend mode operating conditions.
+/************************************************************************************//**
+** \brief Sets suspend mode operating conditions.
+** \return none.
**
****************************************************************************************/
void Suspend(void)
@@ -139,11 +135,9 @@ void Suspend(void)
} /*** end of Suspend ***/
-/****************************************************************************************
-** NAME: Resume_Init
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Handles wake-up restoring normal operations.
+/************************************************************************************//**
+** \brief Handles wake-up restoring normal operations.
+** \return none.
**
****************************************************************************************/
void Resume_Init(void)
@@ -164,14 +158,13 @@ void Resume_Init(void)
} /*** end of Resume_Init ***/
-/****************************************************************************************
-** NAME: Resume
-** PARAMETER: eResumeSetVal a state machine value (RESUME_STATE)
-** RETURN VALUE: none
-** DESCRIPTION: This is the state machine handling resume operations and timing
-** sequence. The control is based on the Resume structure variables and
-** on the ESOF interrupt calling this subroutine without changing
-** machine state.
+/************************************************************************************//**
+** \brief This is the state machine handling resume operations and timing
+** sequence. The control is based on the Resume structure variables and
+** on the ESOF interrupt calling this subroutine without changing
+** machine state.
+** \param eResumeSetVal a state machine value (RESUME_STATE)
+** \return none.
**
****************************************************************************************/
void Resume(RESUME_STATE eResumeSetVal)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.h
index c315dd60..35517983 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Boot/usb_pwr.h
@@ -1,33 +1,34 @@
-/****************************************************************************************
-| Description: bootloader USB device power management header file
-| File Name: usb_pwr.h
-| Notes: based on an example from STMicroelectronics
-|
-|----------------------------------------------------------------------------------------
-| 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Boot\usb_pwr.h
+* \brief Bootloader USB device power management header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef USB_PWR_H
#define USB_PWR_H
@@ -36,6 +37,7 @@
/****************************************************************************************
* Type definitions
****************************************************************************************/
+/** \brief Enumeration of the supported resume states. */
typedef enum _RESUME_STATE
{
RESUME_EXTERNAL,
@@ -48,6 +50,7 @@ typedef enum _RESUME_STATE
RESUME_ESOF
} RESUME_STATE;
+/** \brief Enumeration of the supported device states. */
typedef enum _DEVICE_STATE
{
UNCONNECTED,
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/bin/demoprog_olimex_stm32h103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/bin/demoprog_olimex_stm32h103.elf
index eb91c3e4..13d360fb 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/bin/demoprog_olimex_stm32h103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/bin/demoprog_olimex_stm32h103.elf differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/cstart.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/cstart.c
index 348255d9..b217d881 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/cstart.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/cstart.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\cstart.c
+* \brief Demo program C startup source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/header.h
index 228f9ba1..f2e17f0a 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/header.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/header.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\header.h
+* \brief Generic header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef HEADER_H
#define HEADER_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.c
index a5cd3cd8..62acdf2b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\irq.c
+* \brief IRQ driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.h
index 9f12faf4..32509d1b 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/irq.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\irq.h
+* \brief IRQ driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef IRQ_H
#define IRQ_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.c
index d4d4a557..1ad8aa50 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\led.c
+* \brief LED driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -38,14 +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.
+/************************************************************************************//**
+** \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)
@@ -60,11 +62,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.h
index f69b6a44..347e552e 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/led.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\led.h
+* \brief LED driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef LED_H
#define LED_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/main.c
index 025a2745..27081b94 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/main.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/main.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\main.c
+* \brief Demo program application source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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)
@@ -66,11 +66,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/prog.dox
new file mode 100644
index 00000000..cd79a99d
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/prog.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC User Program
+\brief User Program.
+\ingroup ARMCM3_STM32_Olimex_STM32H103_GCC
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.c
index 99b3dc42..cb4a0773 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\timer.c
+* \brief Timer driver source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \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,10 @@ void TimerInit(void)
} /*** end of TimerInit ***/
-/****************************************************************************************
-** 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)
@@ -71,11 +73,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)
@@ -85,11 +85,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.h
index b2f160c6..2c3a3294 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/timer.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\timer.h
+* \brief Timer driver header file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef TIMER_H
#define TIMER_H
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/vectors.c
index 9f671c56..d4983836 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/vectors.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/Prog/vectors.c
@@ -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) 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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_GCC\Prog\vectors.c
+* \brief Demo program interrupt vectors source file.
+* \ingroup Prog_ARMCM3_STM32_Olimex_STM32H103_GCC
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -44,14 +46,13 @@ extern void reset_handler(void); /* implemented in cstart.c
/****************************************************************************************
* 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[] =
{
@@ -161,6 +164,6 @@ const tIsrFunc _vectab[] =
};
-/************************************ end of hw.c **************************************/
+/************************************ end of vectors.c *********************************/
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/demo.dox
new file mode 100644
index 00000000..356b5c8a
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_GCC/demo.dox
@@ -0,0 +1,8 @@
+/**
+\defgroup ARMCM3_STM32_Olimex_STM32H103_GCC Demo for Olimex STM32-H103/GCC
+\brief Preconfigured programs for the Olimex STM32-H103 and the GCC compiler.
+\details Refer to http://feaser.com/openblt/doku.php?id=manual:demos
+ for detailed getting started instructions.
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out
index 21b15d6c..00f91cca 100644
Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.out differ
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.srec
index 014612cc..7bbb664e 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.srec
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/bin/openbtl_olimex_stm32h103.srec
@@ -1,27 +1,27 @@
S02000006F70656E62746C5F6F6C696D65785F73746D3332683130332E737265630F
-S31508000000480B002021170008892A0008892A0008B9
-S31508000010892A0008892A0008892A0008892A0008E6
-S31508000020892A0008892A0008892A0008892A0008D6
-S31508000030892A0008892A0008892A0008892A0008C6
-S31508000040892A0008892A0008892A0008892A0008B6
-S31508000050892A0008892A0008892A0008892A0008A6
-S31508000060892A0008892A0008892A0008892A000896
-S31508000070892A0008892A0008892A0008892A000886
-S31508000080892A0008892A0008892A0008892A000876
-S31508000090892A0008892A0008892A0008892A000866
-S315080000A0892A0008892A0008892A0008892A000856
-S315080000B0892A0008892A0008892A0008892A000846
-S315080000C0892A0008892A0008892A0008892A000836
-S315080000D0892A0008892A0008892A0008892A000826
-S315080000E0892A0008892A0008892A0008892A000816
-S315080000F0892A0008892A0008892A0008892A000806
-S31508000100892A0008892A0008892A0008892A0008F5
-S31508000110892A0008892A0008892A0008892A0008E5
-S31508000120892A0008892A0008892A0008892A0008D5
-S31508000130892A0008892A0008892A0008892A0008C5
-S31508000140892A0008892A0008892A0008892A0008B5
-S31508000150044B9D46C046C046C046C04601F0A6FAB6
-S3150800016001F04AFF480B002080B580B2002806D16E
+S31508000000500B002019170008812A0008812A0008C9
+S31508000010812A0008812A0008812A0008812A000806
+S31508000020812A0008812A0008812A0008812A0008F6
+S31508000030812A0008812A0008812A0008812A0008E6
+S31508000040812A0008812A0008812A0008812A0008D6
+S31508000050812A0008812A0008812A0008812A0008C6
+S31508000060812A0008812A0008812A0008812A0008B6
+S31508000070812A0008812A0008812A0008812A0008A6
+S31508000080812A0008812A0008812A0008812A000896
+S31508000090812A0008812A0008812A0008812A000886
+S315080000A0812A0008812A0008812A0008812A000876
+S315080000B0812A0008812A0008812A0008812A000866
+S315080000C0812A0008812A0008812A0008812A000856
+S315080000D0812A0008812A0008812A0008812A000846
+S315080000E0812A0008812A0008812A0008812A000836
+S315080000F0812A0008812A0008812A0008812A000826
+S31508000100812A0008812A0008812A0008812A000815
+S31508000110812A0008812A0008812A0008812A000805
+S31508000120812A0008812A0008812A0008812A0008F5
+S31508000130812A0008812A0008812A0008812A0008E5
+S31508000140812A0008812A0008812A0008812A0008D5
+S31508000150044B9D46C046C046C046C04601F0A2FABA
+S3150800016001F046FF500B002080B580B2002806D16A
S31508000170DFF8BC0B006801210182002008E0DFF8E7
S31508000180640B006800688047DFF8A40B00680A3033
S3150800019002BD80B5DFF89C0B4078DFF8941B096830
@@ -205,14 +205,14 @@ S31508000CA000F001F802BD80B5264890F82C1089B2EC
S31508000CB0002000F07CF91E480068007A082806D152
S31508000CC021484FF48051018020481021018018489E
S31508000CD00068007A092801D1012000E00020C0B28E
-S31508000CE002BD00002C07002030B412490A78002102
+S31508000CE002BD00003007002030B412490A780021FE
S31508000CF014E00B00DBB2124C54F8233048F68F741C
S31508000D0023400C00E4B2234343F4004353F080032A
S31508000D100C00E4B20A4D45F82430491C9142E8D348
S31508000D20C0B250F080001149086030BC704700001E
-S31508000D3024070020E80000202807002020070020BC
-S31508000D40005C004000000020380700203A07002019
-S31508000D50505C004004600040410700208D020008F6
+S31508000D3028070020E80000202C07002024070020B0
+S31508000D40005C0040000000203A0700203C07002015
+S31508000D50505C004004600040430700208D020008F4
S31508000D6069010008E1010008086000404C5C004089
S31508000D70704710B450F8041B81B102681218001DA0
S31508000D8050F8043BDC0744BFA9F10104E31852F804
@@ -263,438 +263,438 @@ S3150800104001F1804313F5C04309E00178401C047898
S3150800105051EA042119809B1C9B1C401C521E002A25
S31508001060F3D110BC704792B2521C521089B2490093
S3150800107001F1804111F5C04105E00B680380091DA7
-S31508001080401C401C521E002AF7D17047DFF8FC04AA
-S315080010905FF0FF310160DFF8F8045FF0FF310160AF
-S315080010A0704770B504000D001600200000F00AFA1B
-S315080010B0FF2805D02819401E00F004FAFF2801D1A0
-S315080010C0002019E0600A4FF400714843DFF8C414A1
-S315080010D00968884208D12B009BB232002100DFF84C
-S315080010E0B00400F0F1F807E02B009BB232002100B3
-S315080010F0DFF8980400F0E8F870BD70B504000D003C
-S31508001100200000F0DFF906002819401E00F0DAF981
-S31508001110F6B2FF2E02D0C0B2FF2801D1002005E0AA
-S315080011200100C9B23000C0B200F05DF970BD80B5EB
-S3150800113000200090DFF85804006810F1010F01D173
-S31508001140012038E00098DFF848144968081800902C
-S315080011500098DFF83C148968081800900098DFF8B2
-S315080011603014C968081800900098DFF82414096933
-S31508001170081800900098DFF81814496908180090B4
-S315080011800098DFF80C148969081800900098DFF8B1
-S315080011900014C969081800900098C0430090009888
-S315080011A0401C009000AA0421DFF8E803006810F547
-S315080011B0A870FFF776FF02BD0020DFF8D81309688C
-S315080011C009680818DFF8CC13096849680818DFF8B1
-S315080011D0C413096889680818DFF8B8130968C96864
-S315080011E00818DFF8B013096809690818DFF8A413A6
-S315080011F0096849690818DFF89C1309688969081895
-S31508001200DFF89013096811F5A8710968081800280D
-S3150800121001D1012000E00020704780B5DFF8700397
-S31508001220006810F1010F07D0DFF8640300F090F8AA
-S31508001230002801D100200EE0DFF85003006810F105
-S31508001240010F07D0DFF8440300F082F8002801D127
-S31508001250002000E0012002BD80B54FF40072B1FB0A
-S31508001260F2F303FB1213002B01D000200BE00268F7
-S315080012708A4201D1012006E001604FF40072001D88
-S3150800128000F0ACF9012002BD38B504000D00C048D5
-S31508001290844208D1BD4C29002000FFF7DDFF002855
-S315080012A010D100200FE0BB480068854203D1B84C36
-S315080012B0B8480568EFE7200000F04AF80028EAD1A8
-S315080012C0002000E0200032BD2DE9F04104000F00A7
-S315080012D015001E00780A4FF4007101FB00F820681B
-S315080012E010F1010F07D141462000FFF7B5FF00288E
-S315080012F001D100202AE02068404508D04146200058
-S31508001300FFF7C2FF0400002C01D100201EE0206870
-S31508001310381A0019071D00F077F9201D381AB0F59C
-S31508001320007F0AD318F500712000FFF7ADFF04000F
-S31508001330002C01D1002009E0271D287838707F1C71
-S315080013406D1C761EB6B2002EE5D10120BDE8F081EF
-S315080013502DE9F04104000125206800F0B3F8C0B279
-S31508001360FF2801D100203CE000F09BF88A4800687D
-S31508001370C00703D500F09FF8002032E087480068D0
-S3150800138050F0010085490860002600E0761C802E92
-S315080013901DD2206810EB860714EB8600D0F804806F
-S315080013A0A7F8008001E000F02FF97B480068C00725
-S315080013B0F9D45FEA1840788001E000F025F976480C
-S315080013C00068C007F9D438684045DFD0002573485F
-S315080013D00068400840007149086000F06CF8280071
-S315080013E0C0B2BDE8F08170B505000C00E4B2EDB2FC
-S315080013F0AC4201D2002053E06648007AEDB285423D
-S3150800140005D3644890F8A400E4B2A04201D20020B3
-S3150800141046E000F046F860480068C00703D500F0CB
-S315080014204AF800203CE05D48006850F002005B493D
-S3150800143008602800C0B200F06FF805002000C0B2AE
-S3150800144000F06AF806002000C0B200F082F88019A1
-S31508001450401E401B401C840A002606E000F0D4F813
-S315080014604D480068C007F9D4761CB6B2A4B2A642A5
-S315080014700DD2B6B24FF4806000FB065048490860AA
-S315080014804648006850F0400044490860E8E7434889
-S31508001490006830F002004149086000F00CF80120AD
-S315080014A070BD4048404901603E48404901603A489D
-S315080014B03421016070473948006850F08000374988
-S315080014C00860704738B50400002500E06D1CEDB2D1
-S315080014D00E2D1FD200F098F8EDB20C202D4900FB16
-S315080014E0051000688442F1D3EDB20C20294900FBAF
-S315080014F005100068EDB20C21264A01FB0521496852
-S3150800150008188442E2D2EDB20C20224900FB0510ED
-S31508001510007A00E0FF2032BD38B50400002500E05F
-S315080015206D1CEDB20E2D11D200F06EF8EDB20C2046
-S31508001530184900FB0510007AE4B2A042F0D1EDB2DA
-S315080015400C20144900FB0510006801E05FF0FF302D
-S3150800155032BD38B50400002500E06D1CEDB20E2D35
-S3150800156011D200F051F8EDB20C200A4900FB051023
-S31508001570007AE4B2A042F0D1EDB20C20054900FB96
-S315080015800510406800E0002032BD0000EC00002095
-S31508001590F0020020442800080C20024010200240D7
-S315080015A0142002400420024023016745AB89EFCD91
-S315080015B080B500F036F800280AD000F06CF800F084
-S315080015C097F804484FF48041016003480068804753
-S315080015D001BD000008ED00E00440000870B50400F5
-S315080015E00D00160005E0287820706D1C641C00F0BC
-S315080015F00BF83000461E80B20028F4D170BD80B5C5
-S3150800160000F08EF801BD7047704780B5FFF73EFDC4
-S3150800161001BD80B5FFF745FD02BD80B5FFF76DFD3D
-S3150800162002BD80B5FFF7C8FD02BD80B5FFF77FFD97
-S31508001630002801D1002001E0FFF7EFFD02BD50F8B8
-S31508001640041B61B150F8042BD30744BFA9F1010369
-S315080016509A18002342F8043B091FFAD1EFE77047AE
-S3150800166080B518480088ADF8000000F065F800F06D
-S315080016707FFA15480078012802D100A800F07DF805
-S3150800168001BD80B5114800F0CAFA012802D10F48F9
-S3150800169000F073F801BD80B500F08FFA01BD80B582
-S315080016A0C9B200F08FFA00F062F801BD06480121C0
-S315080016B0017070470448002101707047024800789D
-S315080016C0704700006E1B000844070020C80500206C
-S315080016D080B500F00DF80D480D4901600D48002150
-S315080016E001600D48052101600C480021018001BDFB
-S315080016F0094800210160704707480068C00304D5FF
-S3150800170006480088401C05490880704714E000E038
-S315080017103F19010018E000E010E000E0340700205F
-S31508001720044B9D46C046C046C046C046FFF7C2FFAA
-S3150800173000F062FC480B0020DFF814040021017059
-S31508001740DFF80C0400218164DFF80404002180F826
-S315080017504210DFF8FC030021A0F84410DFF8F0037C
-S3150800176000218170DFF8E803002141707047DFF837
-S31508001770E003002180F84210704780B50178FF2900
-S3150800178018D100F08BF8DFF8C80390F8420001285A
-S3150800179002D1102000F078F8DFF8B403012180F8B0
-S315080017A04210DFF8AC03B0F94410DFF8A80300F0E4
-S315080017B053F801BDDFF89813097801294BD1017850
-S315080017C0C92932D0CC293FD0CF293AD0D0292FD019
-S315080017D0D12933D0D2292ED0F32917D0F4290FD006
-S315080017E0F5290AD0F6290ED0FA2912D0FC2913D0E9
-S315080017F0FD2914D0FE2915D029E000F0CDF8C2E75E
-S3150800180000F0E9F8BFE700F0BCF8BCE700F005F91E
-S31508001810B9E700F09EF8B6E700F095F8B3E700F0F0
-S315080018207AF8B0E700F068F8ADE700F027F9AAE71C
-S3150800183000F03EF9A7E700F007F9A4E700F066F91B
-S31508001840A1E700F077F99EE700F08CF99BE72020E6
-S3150800185000F01AF897E7ACE780B589B2FFF71FFFE3
-S3150800186001BD10B4002302E00478E318401C0C0004
-S31508001870611E002CF8D1DBB21360012010BC704742
-S31508001880B348002141707047B149FE22CA70B04979
-S315080018900871AF480221A0F84410704710B504003B
-S315080018A0FFF7EEFFAA4801210170A948FF21C17080
-S315080018B0A74800210171A648007950F01000A449F4
-S315080018C00871A34800214171A148A149497941718C
-S315080018D09F483F2181719E483F21C1719C48002144
-S315080018E001729B48012141729948012181729848E9
-S315080018F00821A0F8441010BD10B504009448002132
-S315080019000170FFF7BDFF9248FF21C1709048012181
-S31508001910A0F8441010BD8E49FF22CA708C490022D7
-S315080019200A718B498A4A52784A71894900228A7112
-S3150800193087490022CA71864900220A72844906220A
-S31508001940A1F84420704710B504000020FFF79CFF5B
-S3150800195010BD7F49FF22CA707D497F4A8A647C4947
-S3150800196000220A717A4900224A71794900228A714D
-S3150800197077490722C1F8072075490822A1F84420AB
-S3150800198070477349FF22CA70714940688864704875
-S315080019900121A0F84410704710B5040060783F286C
-S315080019A003DB2220FFF770FF14E0627892B26848E2
-S315080019B0816C6A48FFF712FE6548FF21C1706448CA
-S315080019C0806C61780818624988646078401C6049B0
-S315080019D0A1F8440010BD10B5040060783F2803DB69
-S315080019E02220FFF751FF17E0594861688164627841
-S315080019F092B25748816C5948FFF7F0FD5448FF21C9
-S31508001A00C1705348806C61780818514988646078B9
-S31508001A10401C4F49A1F8440010BD80B54C49FF222F
-S31508001A20CA704F4A41684A48806CFFF71AFF48490E
-S31508001A300871474800214171454800218171444891
-S31508001A400821A0F8441001BD4149FF22CA70404947
-S31508001A5000220A713E4900224A713D493F228A7195
-S31508001A603B490022CA713A4900220A7238490022C3
-S31508001A704A7237490722A1F84420704780B5421CAC
-S31508001A803E213348806CFFF7C4FD002803D131207E
-S31508001A90FFF7FAFE0BE02E48FF21C1702C48806C38
-S31508001AA03E302B4988642A480121A0F8441001BD1C
-S31508001AB010B5040060783E2803DB2220FFF7E4FE19
-S31508001AC023E02348FF21C17021480121A0F84410D2
-S31508001AD06078002807D1FFF7A8FD002802D1312039
-S31508001AE0FFF7D2FE11E0A21C61781948806CFFF757
-S31508001AF090FD002803D13120FFF7C6FE05E0144803
-S31508001B00806C617808181249886410BD80B54168F0
-S31508001B100F48806CFFF781FD002803D13120FFF7BD
-S31508001B20B3FE06E00A48FF21C17009480121A0F862
-S31508001B30441001BD10B50400FFF761FD0448FF21FC
-S31508001B40C17003480121A0F8441010BD0000000030
-S31508001B50F4040020F7040020A42A0008F804002052
-S31508001B60FB04002080B53120FFF78EFE01BDFF0083
-S31508001B7080B500F033F94021DFF8300400F041F970
-S31508001B80DFF82C1408704021DFF8280400F039F932
-S31508001B90DFF824140870DFF818040078FF2804D04A
-S31508001BA0DFF814040078FF2804D17521DFF80C0447
-S31508001BB000F02EFA00F038FA01BD80B5002000F0DA
-S31508001BC053FA01BD70B504000D00EDB2402D04DBDB
-S31508001BD09721DFF8E80300F01BFA2800C0B200F0EE
-S31508001BE068F8012804D09A21DFF8D00300F010FA2B
-S31508001BF000260DE0FFF708FDB6B2305D00F059F893
-S31508001C00012804D0A221DFF8B40300F001FA761CFB
-S31508001C102800C0B2B6B280B28642EBD370BD10B50A
-S31508001C20040000F071FADFF89803007800280FD155
-S31508001C30DFF8900300F035F8012807D1DFF88003B4
-S31508001C4001210170DFF8800300210170002010BD1A
-S31508001C50DFF874030078DFF86C134018401C00F0B6
-S31508001C6020F80128F2D1DFF860030078401CDFF87D
-S31508001C7058130870DFF850030078DFF8481309781E
-S31508001C808842E3D1DFF84003027892B2DFF83C13CA
-S31508001C902000FFF7A3FCDFF82803002101700120CC
-S31508001CA0D5E780B50100C448007800F01BF9C0B23A
-S31508001CB002BD80B50100C9B2BD48007800F0BAF887
-S31508001CC0C0B202BD38B5BA48007800F05EF9040023
-S31508001CD0E4B2002C2DD0E4B2412C00DB40240025D0
-S31508001CE012E000A9B248007800F0FCF8C0B201285A
-S31508001CF004D04FF4A671B14800F08AF9EDB2B448A1
-S31508001D009DF8001029546D1CEDB2E4B2A542E8D343
-S31508001D10E4B2220092B24FF48071AD48FFF78AF917
-S31508001D20E4B2210089B20120FFF734F90120FFF758
-S31508001D3084F831BD38B5A749012000F033FA04000C
-S31508001D4000250FE0ADB2A348295C9B48007800F057
-S31508001D5071F8C0B2012804D040F27311974800F018
-S31508001D6057F96D1CADB2A4B2A542EBD30120FFF71B
-S31508001D707BF831BD30B40023002423000BE0DBB22E
-S31508001D80040F373401F813400001DBB211EB4304AA
-S31508001D90002565705B1CDBB2D2B2934208D2040FF1
-S31508001DA00A2CECD2DBB2040F303401F81340EBE70F
-S31508001DB030BC704710B58848006888490C6888495F
-S31508001DC009680818002808D008228649FFF7D2FFB4
-S31508001DD0042285492000FFF7CDFF10BD8349844AB8
-S31508001DE0002004E088744A6118311832401CC0B2D9
-S31508001DF00028F7D08874002048617E487B49016036
-S31508001E00704710B47B4A1268002A01D1FF200FE000
-S31508001E10784A12685369774C236011749060D060D1
-S31508001E20002353741060C9B20818401E5060907C95
-S31508001E3010BC704738B504000D00E4B2022C04DB70
-S31508001E404FF401715D4800F0E3F8E4B218206749E1
-S31508001E5000FB0410407CE4B21821644A01FB04210B
-S31508001E60097C884201D100203BE0E4B218205F4992
-S31508001E7000FB0410C0680570E4B218205B4900FB3B
-S31508001E800410407C401CE4B21821584A01FB042186
-S31508001E904874E4B21820554900FB0410C068401C79
-S31508001EA0E4B21821514A01FB0421C860E4B21820A3
-S31508001EB04E4900FB04104068E4B218214B4A01FB66
-S31508001EC00421C96888420BD2E4B21820474900FBAE
-S31508001ED00410E4B21821454A01FB04210968C160CF
-S31508001EE0012032BD38B504000D00E4B2022C04DB33
-S31508001EF040F22721314800F08BF8E4B218203B491C
-S31508001F0000FB0410407C002801D100203CE0E4B22C
-S31508001F101820364900FB0410806800782870E4B25F
-S31508001F201820324900FB0410407C401EE4B21821F8
-S31508001F302E4A01FB04214874E4B218202B4900FB01
-S31508001F4004108068401CE4B21821284A01FB0421C9
-S31508001F508860E4B21820254900FB04104068E4B202
-S31508001F601821224A01FB0421896888420BD2E4B26F
-S31508001F7018201E4900FB0410E4B218211B4A01FB75
-S31508001F80042109688160012032BD10B50400E4B25D
-S31508001F90022C04DB4FF41271084800F039F8E4B259
-S31508001FA01820124900FB0410407C10BD4105002092
-S31508001FB040050020850500208405002084290008A6
-S31508001FC040070020080600203F07002009060020D9
-S31508001FD04806002088060020E8F7FF1FECF7FF1FD9
-S31508001FE0F0F7FF1F7E0000208E000020C8060020A4
-S31508001FF0E00600201C07002000F0EAF8002801D0BF
-S3150800200000F0E8F8002000F0F9F800F0B1F9000057
-S3150800201080B5034A106003480160FFF7F5FAFCE74C
-S31508002020140700201807002080B5094809490160EF
-S3150800203007480068022101720748084901600848F4
-S3150800204008490160044800680068804701BD00BF70
-S3150800205024070020F806002028070020000000209A
-S315080020602C0700205800002020490978002914D19F
-S315080020701F49096851F010011D4A11601D49096878
-S3150800208031F470411B4A11601A49096851F4E0415C
-S31508002090184A1160154901220A70C0B2012804D1F4
-S315080020A015484FF40061016003E014484FF40061DD
-S315080020B0016070470E48006850F004000C4908603B
-S315080020C00F480068000900010D4908600C480068BF
-S315080020D050F004000A49086070470A480068C007BB
-S315080020E001D4012000E00020704700003E070020D0
-S315080020F0181002400410014014100140101001404D
-S31508002100000801400808014080B5174817490968C2
-S3150800211001801548008816490988084080050AD5AF
-S3150800212012484FF6FF51016012480078401C1149C9
-S31508002130087000F027F90C4800880D4909880840FE
-S31508002140000401D500F028F90748008808490988DD
-S315080021500840400506D505484FF6FF310160064898
-S315080021604068804701BD00BF3C070020445C004032
-S3150800217036070020430700200000002006480021FB
-S31508002180016006484FF4064101800548034909885D
-S315080021900160002070470000445C004036070020BC
-S315080021A0405C004070B504000D00002614F07F0066
-S315080021B0FEF720FF060014F07F00FEF7DEFE320071
-S315080021C092B2010089B22800FEF74DFF300070BDBB
-S315080021D00120704710B5074979441831064C7C44EC
-S315080021E0163404E00A68081D511888470146A142BA
-S315080021F0F8D110BD200800004008000080B500F0A6
-S3150800220005F800F0EBF900F0F5F9FCE700B583B046
-S3150800221000200090002001904D48006850F0010011
-S315080022204B4908604B4800684B49084049490860D3
-S3150800223047480068494908404549086044480068D5
-S3150800224030F48020424908604248006830F4FE00B5
-S315080022504049086042485FF41F0101603C48006835
-S3150800226050F480303A4908603948006810F4003064
-S3150800227001900098401C00900198002804D100980D
-S3150800228040F2DC518842EFD131480068800303D41C
-S315080022906C213448FFF7BCFE3348006850F0100044
-S315080022A03149086030480068800880002E49086077
-S315080022B02D48006850F002002B490860254825493A
-S315080022C0096801602348006850F4005021490860F5
-S315080022D02048006850F480601E4908601D48006860
-S315080022E030F47C101B4908600920801E80041949B7
-S315080022F0096850F480300843164908601448006895
-S3150800230050F0807012490860114800688001FBD5BA
-S3150800231010480068800880000E4908600D4800686B
-S3150800232050F002000B4908600A48006810F00C00DB
-S315080023300828F9D10748006830F480000549086084
-S315080023400A48006850F400000849086007BD000004
-S3150800235000100240041002400000FFF8FFFFF6FEDE
-S3150800236008100240EC280008002002401C10024019
-S3150800237000F04AB980B5FFF7A5FC01BD80B5FFF7A7
-S31508002380D9FC01BD80B503480068052801D1FFF7CF
-S3150800239099FC01BD3007002080B50020ADF800008B
-S315080023A039E086480078864951F82000ADF80000E3
-S315080023B0BDF80000000414D580480078804951F81B
-S315080023C0200040F68F7108407C4909787C4A42F81B
-S315080023D021007A4800787B4911EB800050F8040CFC
-S315080023E08047BDF80000000615D574480078744982
-S315080023F051F8200080B248F60F7108406F490978F5
-S315080024006F4A42F821006D4800786F4911EB800049
-S3150800241050F8040C80476D4800686D490880000430
-S3150800242040F1CA806A48008810F00F0063490870B6
-S31508002430624800780028B4D1664861490968018075
-S315080024406448008810F030006349088061480088B5
-S3150800245010F440505F4908805948006880B24BF62E
-S31508002460BF71084090F4005090F0200080B240F40C
-S31508002470004050F080005249086055480088C00660
-S315080024802FD44F48006880B248F60F7108404C496F
-S315080024900860FEF7B4FB4A48006880B24BF6BF7185
-S315080024A008404C490988C90401D590F48050494927
-S315080024B00988890401D590F4005047490988C90656
-S315080024C001D590F0100044490988890601D590F095
-S315080024D0200080B240F4004050F08000384908607F
-S315080024E06AE037480068ADF80000BDF8000000054E
-S315080024F02ED53348006840F68F7108403049086089
-S31508002500FEF733FB2E48006880B24BF6BF710840D1
-S3150800251030490988C90401D590F480502D490988A5
-S31508002520890401D590F400502B490988C90601D5BC
-S3150800253090F0100028490988890601D590F02000F6
-S3150800254080B240F4004050F080001D49086033E036
-S31508002550BDF8000000047FF55EAF1948006840F634
-S315080025608F71084016490860FEF77AFB1448006820
-S3150800257080B24BF6BF71084016490988C90401D5CF
-S3150800258090F4805013490988890401D590F40050C5
-S3150800259011490988C90601D590F010000E49098825
-S315080025A0890601D590F0200080B240F4004050F032
-S315080025B0800003490860FFE701BD000042070020CC
-S315080025C0005C0040B400002098000020445C0040F5
-S315080025D03C070020380700203A07002080B5FFF79F
-S315080025E012F8FFF775F8FFF710F8FFF739F800F05B
-S315080025F010F801BD80B5FFF707F8FFF77DF8FFF77C
-S3150800260040F800F016F801BD0746384600F012F803
-S31508002610FBE780B5FFF74EFDFFF75FFD002805D104
-S31508002620FFF74CF8002801D1FEF7C2FF00F001F8C9
-S3150800263001BD704780B5C046C046024A1100182041
-S31508002640ABBEFBE72600020080B5FFF7B3FB5D488B
-S3150800265000680021817200F0D3F8FFF78FFD5A4811
-S315080026600021016001BD80B55648006800218172CD
-S31508002670544800685549C979417252480068002192
-S31508002680C1720020FEF78CFB4FF400710020FEF7A4
-S315080026908EFB10210020FEF79AFB40210020FEF752
-S315080026A04FFC80210020FEF73BFC0020FEF7F3FBE1
-S315080026B0474890F82C1089B20020FEF778FC0020D5
-S315080026C0FEF7D2FB00210120FEF771FB4FF4807163
-S315080026D00120FEF725FCC0210120FEF731FC402130
-S315080026E00120FEF757FC40210120FEF760FC4FF45D
-S315080026F040510120FEF786FB20210120FEF767FBEB
-S315080027000020FEF7F1FA30480121016001BD314889
-S31508002710807A002802D02C480521016070472A4893
-S315080027200421016070477047704780B50021C0B228
-S31508002730062812D123480068007810F07F00012887
-S315080027400BD1204800684079002806D11D4800684A
-S315080027508078212801D10FF261010800002801D1F3
-S31508002760022009E0174800688161164800680022BF
-S31508002770428200208847002002BD0220704780B5AB
-S31508002780154980B2FDF728FF02BD80B5134980B20E
-S31508002790FDF722FF02BD80B50A490968C978C9B2A2
-S315080027A0062901DB002006E0C9B20D4A12EBC10179
-S315080027B080B2FDF711FF02BD80B50A4980B2FDF768
-S315080027C00BFF02BD2407002030070020382A000826
-S315080027D000000020F8060020D0000020D8000020C5
-S315080027E030000020E0000020C9B2002901D00220F4
-S315080027F005E0C0B2002801D0022000E000207047A2
-S3150800280080B50120FFF730FC01200B4980B2086033
-S315080028100A480021018008480849098801600848D3
-S315080028200021016005484FF4E05101800248034940
-S3150800283009880160002002BD405C00403607002080
-S31508002840445C004000400008002000000200000030
-S315080028500060000800200000030000000080000857
-S31508002860002000000400000000A00008002000006E
-S315080028700500000000C00008002000000600000057
-S3150800288000E0000800200000070000000000010822
-S3150800289000200000080000000020010800200000B9
-S315080028A00900000000400108002000000A0000009E
-S315080028B000600108002000000B00000000800108ED
-S315080028C0002000000C00000000A001080020000005
-S315080028D00D00000000C00108002000000E000000E6
-S315080028E000E00108002000000F000000433A5C5792
-S315080028F06F726B5C736F6674776172655C4F706537
-S315080029006E424C545C5461726765745C44656D6FC5
-S315080029105C41524D434D335F53544D33325F4F6CD8
-S31508002920696D65785F53544D3332483130335F49AA
-S3150800293041525C426F6F745C6D61696E2E63000074
-S31508002940433A5C576F726B5C736F66747761726536
-S315080029505C4F70656E424C545C5461726765745C7A
-S31508002960536F757263655C41524D434D335F5354E3
-S315080029704D33325C4941525C766563746F72732ECF
-S3150800298063000000433A5C576F726B5C736F667442
-S31508002990776172655C4F70656E424C545C54617227
-S315080029A06765745C536F757263655C41524D434D40
-S315080029B0335F53544D33325C7573622E63000000E7
-S315080029C02C03570069006E00550053004200200092
-S315080029D0420075006C006B00200049006E00740010
-S315080029E065007200660061006300650026035700F3
-S315080029F069006E0055005300420020004200750031
-S31508002A006C006B00200044006500760069006300D6
-S31508002A10650000002BECFFFF58060000EC000020C4
-S31508002A20000000004FE3FFFFEC00000084000000F8
-S31508002A30000000200000000009022000010100C07B
-S31508002A40320904000002FF00000407058102400065
-S31508002A5000070501024000001A034F0070006500D8
-S31508002A606E0042004C0054002000550073006500BB
-S31508002A707200000012011001000000404501230009
-S31508002A80000101020301000080B540210148FFF75B
-S31508002A90BFFA01BD40290008C046C046C046C04628
-S31508002AA0FFF7AAFA4F70656E424C540004030904F6
-S31508002AB0492600086726000827270008292700084E
-S31508002AC02B2700087B270008E92700087F2700082E
-S31508002AD08B27000897270008000000004000000028
-S31508002AE0AC2A000804000000582A00081A00000052
-S31508002AF0EC290008260000007C0000201C000000CD
-S31508002B00C02900082C000000710D00080F270008D6
+S31508001080401C401C521E002AF7D17047DFF8F404B2
+S315080010905FF0FF310160DFF8F0045FF0FF310160B7
+S315080010A0704770B504000D001600200000F007FA1E
+S315080010B0FF2805D02819401E00F001FAFF2801D1A3
+S315080010C0002017E0600A4FF400714843DFF8BC14AB
+S315080010D00968884207D12B0032002100DFF8A804EE
+S315080010E000F0F0F806E02B0032002100DFF8940447
+S315080010F000F0E8F870BD70B504000D00200000F09F
+S31508001100DEF906002819401E00F0D9F9F6B2FF2EBE
+S3150800111002D0C0B2FF2801D1002005E00100C9B203
+S315080011203000C0B200F05CF970BD80B500200090B8
+S31508001130DFF85404006810F1010F01D1012038E0EE
+S315080011400098DFF844144968081800900098DFF8FA
+S3150800115038148968081800900098DFF82C14C968B4
+S31508001160081800900098DFF82014096908180090FC
+S315080011700098DFF814144969081800900098DFF8F9
+S3150800118008148969081800900098DFF8FC13C969E3
+S31508001190081800900098C04300900098401C0090E2
+S315080011A000AA0421DFF8E403006810F5A870FFF729
+S315080011B078FF02BD0020DFF8D4130968096808180B
+S315080011C0DFF8C813096849680818DFF8C013096802
+S315080011D089680818DFF8B4130968C9680818DFF8B9
+S315080011E0AC13096809690818DFF8A0130968496982
+S315080011F00818DFF89813096889690818DFF88C1346
+S31508001200096811F5A87109680818002801D1012094
+S3150800121000E00020704780B5DFF86C03006810F125
+S31508001220010F07D0DFF8600300F08FF8002801D11E
+S3150800123000200EE0DFF84C03006810F1010F07D01C
+S31508001240DFF8400300F081F8002801D1002000E013
+S31508001250012002BD80B54FF40072B1FBF2F303FB27
+S315080012601213002B01D000200BE002688A4201D13C
+S31508001270012006E001604FF40072001D00F0AAF993
+S31508001280012002BD38B504000D00BF48844208D1CC
+S31508001290BC4C29002000FFF7DDFF002810D10020F4
+S315080012A00FE0BA480068854203D1B74CB7480568CD
+S315080012B0EFE7200000F049F80028EAD1002000E016
+S315080012C0200032BD2DE9F04104000F0015001E0074
+S315080012D0780A4FF4007101FB00F8206810F1010F3D
+S315080012E007D141462000FFF7B5FF002801D10020AD
+S315080012F029E02068404508D041462000FFF7C2FF94
+S315080013000400002C01D100201DE02068381A0019BD
+S31508001310071D00F075F9201D381AB0F5007F0AD3AD
+S3150800132018F500712000FFF7ADFF0400002C01D16D
+S31508001330002008E0271D287838707F1C6D1C761E53
+S31508001340002EE6D10120BDE8F0812DE9F041040028
+S315080013500125206800F0B3F8C0B2FF2801D10020AB
+S315080013603CE000F09BF88A480068C00703D500F007
+S315080013709FF8002032E08748006850F00100854950
+S315080013800860002600E0761C802E1DD2206810EB2F
+S31508001390860714EB8600D0F80480A7F8008001E0E1
+S315080013A000F02EF97A480068C007F9D45FEA1840B9
+S315080013B0788001E000F024F975480068C007F9D480
+S315080013C038684045DFD0002572480068400840006C
+S315080013D07049086000F06CF82800C0B2BDE8F081DA
+S315080013E070B505000C00E4B2EDB2AC4201D20020A3
+S315080013F053E06648007AEDB2854205D3634890F813
+S31508001400A400E4B2A04201D2002046E000F046F86B
+S315080014105F480068C00703D500F04AF800203CE0A2
+S315080014205C48006850F002005A4908602800C0B2BB
+S3150800143000F06FF805002000C0B200F06AF8060058
+S315080014402000C0B200F082F88019401E401B401CE4
+S31508001450840A002606E000F0D3F84D480068C00765
+S31508001460F9D4761CB6B2A4B2A6420DD2B6B24FF4DF
+S31508001470806000FB0650484908604648006850F0FE
+S31508001480400044490860E8E74248006830F0020036
+S315080014904049086000F00CF8012070BD3F484049FB
+S315080014A001603E483F490160394834210160704770
+S315080014B03848006850F0800036490860704738B5EB
+S315080014C00400002500E06D1CEDB20E2D1FD200F0C1
+S315080014D097F8EDB20C202D4900FB051000688442F0
+S315080014E0F1D3EDB20C20294900FB05100068EDB2D6
+S315080014F00C21264A01FB0521496808188442E2D2D4
+S31508001500EDB20C20214900FB0510007A00E0FF200F
+S3150800151032BD38B50400002500E06D1CEDB20E2D75
+S3150800152011D200F06DF8EDB20C20184900FB051039
+S31508001530007AE4B2A042F0D1EDB20C20134900FBC8
+S315080015400510006801E05FF0FF3032BD38B50400D1
+S31508001550002500E06D1CEDB20E2D11D200F050F8FA
+S31508001560EDB20C20094900FB0510007AE4B2A0424E
+S31508001570F0D1EDB20C20054900FB0510406800E0EB
+S31508001580002032BDEC000020F00200203C280008B4
+S315080015900C20024010200240142002400420024081
+S315080015A023016745AB89EFCD80B500F036F80028F2
+S315080015B00AD000F06CF800F097F804484FF4804120
+S315080015C0016003480068804701BD000008ED00E09F
+S315080015D00440000870B504000D00160005E02878E0
+S315080015E020706D1C641C00F00BF83000461E80B29B
+S315080015F00028F4D170BD80B500F08EF801BD7047A3
+S31508001600704780B5FFF742FD01BD80B5FFF749FD7C
+S3150800161002BD80B5FFF76FFD02BD80B5FFF7CAFDB5
+S3150800162002BD80B5FFF781FD002801D1002001E049
+S31508001630FFF7F1FD02BD50F8041B61B150F8042B09
+S31508001640D30744BFA9F101039A18002342F8043BC3
+S31508001650091FFAD1EFE7704780B518480088ADF83A
+S31508001660000000F065F800F07FFA154800780128B8
+S3150800167002D100A800F07DF801BD80B5114800F040
+S31508001680CAFA012802D10F4800F073F801BD80B5E7
+S3150800169000F08FFA01BD80B5C9B200F08FFA00F0EC
+S315080016A062F801BD0648012101707047044800210F
+S315080016B0017070470248007870470000661B0008F2
+S315080016C048070020C805002080B500F00DF80D4831
+S315080016D00D4901600D48002101600D480521016092
+S315080016E00C480021016001BD0948002101607047CE
+S315080016F007480068C00304D506480068401C054929
+S315080017000860704714E000E03F19010018E000E0A7
+S3150800171010E000E01C070020044B9D46C046C0466A
+S31508001720C046C046FFF7C2FF00F062FC500B00201F
+S31508001730DFF8140400210170DFF80C04002181642D
+S31508001740DFF80404002180F84210DFF8FC030021CA
+S31508001750A0F84410DFF8F00300218170DFF8E803F1
+S31508001760002141707047DFF8E003002180F842103D
+S31508001770704780B50178FF2918D100F08BF8DFF89B
+S31508001780C80390F84200012802D1102000F078F82A
+S31508001790DFF8B403012180F84210DFF8AC03B0F992
+S315080017A04410DFF8A80300F053F801BDDFF89813DA
+S315080017B0097801294BD10178C92932D0CC293FD0E3
+S315080017C0CF293AD0D0292FD0D12933D0D2292ED01B
+S315080017D0F32917D0F4290FD0F5290AD0F6290ED007
+S315080017E0FA2912D0FC2913D0FD2914D0FE2915D0C8
+S315080017F029E000F0CDF8C2E700F0E9F8BFE700F00D
+S31508001800BCF8BCE700F005F9B9E700F09EF8B6E7C2
+S3150800181000F095F8B3E700F07AF8B0E700F068F85A
+S31508001820ADE700F027F9AAE700F03EF9A7E700F0D0
+S3150800183007F9A4E700F066F9A1E700F077F99EE753
+S3150800184000F08CF99BE7202000F01AF897E7ACE740
+S3150800185080B589B2FFF71FFF01BD10B4002302E06F
+S315080018600478E318401C0C00611E002CF8D1DBB28A
+S315080018701360012010BC7047B348002141707047BF
+S31508001880B149FE22CA70B0490871AF480221A0F8D2
+S315080018904410704710B50400FFF7EEFFAA4801216F
+S315080018A00170A948FF21C170A74800210171A64807
+S315080018B0007950F01000A4490871A348002141712D
+S315080018C0A148A149497941719F483F2181719E48A4
+S315080018D03F21C1719C48002101729B480121417238
+S315080018E099480121817298480821A0F8441010BD32
+S315080018F010B50400944800210170FFF7BDFF924817
+S31508001900FF21C17090480121A0F8441010BD8E49EE
+S31508001910FF22CA708C4900220A718B498A4A52787A
+S315080019204A71894900228A7187490022CA71864903
+S3150800193000220A7284490622A1F84420704710B58D
+S3150800194004000020FFF79CFF10BD7F49FF22CA70E4
+S315080019507D497F4A8A647C4900220A717A490022B5
+S315080019604A71794900228A7177490722C1F8072006
+S3150800197075490822A1F8442070477349FF22CA70A6
+S3150800198071494068886470480121A0F8441070477E
+S3150800199010B5040060783F2803DB2220FFF770FFAC
+S315080019A014E0627892B26848816C6A48FFF712FEC2
+S315080019B06548FF21C1706448806C617808186249DF
+S315080019C088646078401C6049A1F8440010BD10B5D1
+S315080019D0040060783F2803DB2220FFF751FF17E059
+S315080019E0594861688164627892B25748816C59484F
+S315080019F0FFF7F0FD5448FF21C1705348806C6178A9
+S31508001A000818514988646078401C4F49A1F8440079
+S31508001A1010BD80B54C49FF22CA704F4A41684A48F2
+S31508001A20806CFFF71AFF4849087147480021417141
+S31508001A3045480021817144480821A0F8441001BD99
+S31508001A404149FF22CA70404900220A713E490022D4
+S31508001A504A713D493F228A713B490022CA713A4977
+S31508001A6000220A72384900224A7237490722A1F829
+S31508001A704420704780B5421C3E213348806CFFF7EE
+S31508001A80C4FD002803D13120FFF7FAFE0BE02E48EB
+S31508001A90FF21C1702C48806C3E302B4988642A4847
+S31508001AA00121A0F8441001BD10B5040060783E2855
+S31508001AB003DB2220FFF7E4FE23E02348FF21C17061
+S31508001AC021480121A0F844106078002807D1FFF7C3
+S31508001AD0A8FD002802D13120FFF7D2FE11E0A21C92
+S31508001AE061781948806CFFF790FD002803D13120F2
+S31508001AF0FFF7C6FE05E01448806C6178081812499D
+S31508001B00886410BD80B541680F48806CFFF781FD79
+S31508001B10002803D13120FFF7B3FE06E00A48FF216B
+S31508001B20C17009480121A0F8441001BD10B5040090
+S31508001B30FFF761FD0448FF21C17003480121A0F8A1
+S31508001B40441010BD00000000F4040020F704002033
+S31508001B509C2A0008F8040020FB04002080B53120E8
+S31508001B60FFF78EFE01BDFF0080B500F033F9402176
+S31508001B70DFF8300400F041F9DFF82C140870402132
+S31508001B80DFF8280400F039F9DFF824140870DFF8C4
+S31508001B9018040078FF2804D0DFF814040078FF281A
+S31508001BA004D17E21DFF80C0400F02EFA00F038FA92
+S31508001BB001BD80B5002000F053FA01BD70B50400E0
+S31508001BC00D00EDB2402D04DB9D21DFF8E80300F09F
+S31508001BD01BFA2800C0B200F068F8012804D0A0213A
+S31508001BE0DFF8D00300F010FA00260DE0FFF708FD35
+S31508001BF0B6B2305D00F059F8012804D0A821DFF804
+S31508001C00B40300F001FA761C2800C0B2B6B280B25E
+S31508001C108642EBD370BD10B5040000F071FADFF808
+S31508001C209803007800280FD1DFF8900300F035F804
+S31508001C30012807D1DFF8800301210170DFF880034E
+S31508001C4000210170002010BDDFF874030078DFF86A
+S31508001C506C134018401C00F020F80128F2D1DFF878
+S31508001C6060030078401CDFF858130870DFF850034B
+S31508001C700078DFF8481309788842E3D1DFF8400393
+S31508001C80027892B2DFF83C132000FFF7A3FCDFF8D6
+S31508001C902803002101700120D5E780B50100C4485A
+S31508001CA0007800F01BF9C0B202BD80B50100C9B2C8
+S31508001CB0BD48007800F0BAF8C0B202BD38B5BA48D7
+S31508001CC0007800F05EF90400E4B2002C2DD0E4B2EE
+S31508001CD0412C00DB4024002512E000A9B248007818
+S31508001CE000F0FCF8C0B2012804D040F24911B1480E
+S31508001CF000F08AF9EDB2B4489DF8001029546D1C1D
+S31508001D00EDB2E4B2A542E8D3E4B2220092B24FF4AF
+S31508001D108071AD48FFF78EF9E4B2210089B201203F
+S31508001D20FFF738F90120FFF788F831BD38B5A7491C
+S31508001D30012000F033FA040000250FE0ADB2A348F5
+S31508001D40295C9B48007800F071F8C0B2012804D0DD
+S31508001D504FF4B771974800F057F96D1CADB2A4B2AD
+S31508001D60A542EBD30120FFF77FF831BD30B400233D
+S31508001D70002423000BE0DBB2040F373401F81340CC
+S31508001D800001DBB211EB4304002565705B1CDBB276
+S31508001D90D2B2934208D2040F0A2CECD2DBB2040F5B
+S31508001DA0303401F81340EBE730BC704710B588486B
+S31508001DB0006888490C68884909680818002808D006
+S31508001DC008228649FFF7D2FF042285492000FFF73B
+S31508001DD0CDFF10BD8349844A002004E088744A6117
+S31508001DE018311832401CC0B20028F7D08874002079
+S31508001DF048617E487B490160704710B47B4A126887
+S31508001E00002A01D1FF200FE0784A12685369774CFF
+S31508001E10236011749060D060002353741060C9B2B7
+S31508001E200818401E5060907C10BC704738B50400F6
+S31508001E300D00E4B2022C04DB4FF4FC715D4800F09F
+S31508001E40E3F8E4B21820674900FB0410407CE4B2CA
+S31508001E501821644A01FB0421097C884201D100202B
+S31508001E603BE0E4B218205F4900FB0410C068057027
+S31508001E70E4B218205B4900FB0410407C401CE4B225
+S31508001E801821584A01FB04214874E4B21820554920
+S31508001E9000FB0410C068401CE4B21821514A01FB3B
+S31508001EA00421C860E4B218204E4900FB04104068BB
+S31508001EB0E4B218214B4A01FB0421C96888420BD2B7
+S31508001EC0E4B21820474900FB0410E4B21821454A39
+S31508001ED001FB04210968C160012032BD38B5040040
+S31508001EE00D00E4B2022C04DB40F21A21314800F05E
+S31508001EF08BF8E4B218203B4900FB0410407C00280C
+S31508001F0001D100203CE0E4B21820364900FB041059
+S31508001F10806800782870E4B21820324900FB041063
+S31508001F20407C401EE4B218212E4A01FB0421487465
+S31508001F30E4B218202B4900FB04108068401CE4B268
+S31508001F401821284A01FB04218860E4B21820254993
+S31508001F5000FB04104068E4B21821224A01FB042160
+S31508001F60896888420BD2E4B218201E4900FB041087
+S31508001F70E4B218211B4A01FB04210968816001208B
+S31508001F8032BD10B50400E4B2022C04DB40F23A215B
+S31508001F90084800F039F8E4B21820124900FB04108A
+S31508001FA0407C10BD41050020400500208505002025
+S31508001FB0840500207C290008420700200806002026
+S31508001FC04107002009060020480600208806002050
+S31508001FD0E8F7FF1FECF7FF1FF0F7FF1F7E00002052
+S31508001FE08E000020C8060020E006002020070020FA
+S31508001FF000F0EAF8002801D000F0E8F8002000F028
+S31508002000F9F800F0B1F9000080B5034A10600348FA
+S315080020100160FFF7F5FAFCE714070020180700200F
+S3150800202080B509480949016007480068022101721C
+S3150800203007480849016008480849016004480068DB
+S315080020400068804701BD00BF28070020F806002069
+S315080020502C07002000000020300700205800002030
+S3150800206020490978002914D11F49096851F010013F
+S315080020701D4A11601D49096831F470411B4A1160F7
+S315080020801A49096851F4E041184A116015490122B4
+S315080020900A70C0B2012804D115484FF400610160E6
+S315080020A003E014484FF40061016070470E48006869
+S315080020B050F004000C4908600F4800680009000148
+S315080020C00D4908600C48006850F004000A49086089
+S315080020D070470A480068C00701D4012000E00020C4
+S315080020E07047000040070020181002400410014005
+S315080020F01410014010100140000801400808014072
+S3150800210080B5174817490968018015480088164997
+S315080021100988084080050AD512484FF6FF51016024
+S3150800212012480078401C1149087000F027F90C483D
+S3150800213000880D4909880840000401D500F028F9EF
+S3150800214007480088084909880840400506D5054813
+S315080021504FF6FF31016006484068804701BD00BF61
+S315080021603E070020445C0040380700204507002051
+S315080021700000002006480021016006484FF4064189
+S31508002180018005480349098801600020704700005E
+S31508002190445C004038070020405C004070B50400ED
+S315080021A00D00002614F07F00FEF724FF060014F049
+S315080021B07F00FEF7E2FE320092B2010089B22800E3
+S315080021C0FEF751FF300070BD0120704710B5074972
+S315080021D079441831064C7C44163404E00A68081D14
+S315080021E0511888470146A142F8D110BD20080000C1
+S315080021F04008000080B500F005F800F0EBF900F0A3
+S31508002200F5F9FCE700B583B00020009000200190A6
+S315080022104D48006850F001004B4908604B4800687B
+S315080022204B490840494908604748006849490840F9
+S31508002230454908604448006830F4802042490860EF
+S315080022404248006830F4FE004049086042485FF49E
+S315080022501F0101603C48006850F480303A49086024
+S315080022603948006810F4003001900098401C00902E
+S315080022700198002804D1009840F2DC518842EFD139
+S3150800228031480068800303D469213448FFF7BCFE4F
+S315080022903348006850F0100031490860304800683B
+S315080022A0800880002E4908602D48006850F002001A
+S315080022B02B490860254825490968016023480068B4
+S315080022C050F40050214908602048006850F48060A6
+S315080022D01E4908601D48006830F47C101B490860D8
+S315080022E00920801E80041949096850F48030084383
+S315080022F0164908601448006850F080701249086052
+S31508002300114800688001FBD51048006880088000E5
+S315080023100E4908600D48006850F002000B49086035
+S315080023200A48006810F00C000828F9D10748006828
+S3150800233030F48000054908600A48006850F4000037
+S315080023400849086007BD000000100240041002405A
+S315080023500000FFF8FFFFF6FE08100240E428000818
+S31508002360002002401C10024000F04AB980B5FFF771
+S31508002370A5FC01BD80B5FFF7D9FC01BD80B50348B2
+S315080023800068052801D1FFF799FC01BD3407002034
+S3150800239080B50020ADF8000039E086480078864907
+S315080023A051F82000ADF80000BDF80000000414D56F
+S315080023B080480078804951F8200040F68F7108401F
+S315080023C07C4909787C4A42F821007A4800787B499A
+S315080023D011EB800050F8040C8047BDF80000000699
+S315080023E015D574480078744951F8200080B248F62B
+S315080023F00F7108406F4909786F4A42F821006D4805
+S3150800240000786F4911EB800050F8040C80476D483E
+S3150800241000686D490880000440F1CA806A4800884F
+S3150800242010F00F0063490870624800780028B4D19C
+S3150800243066486149096801806448008810F03000E0
+S31508002440634908806148008810F440505F49088055
+S315080024505948006880B24BF6BF71084090F40050A6
+S3150800246090F0200080B240F4004050F080005249BD
+S31508002470086055480088C0062FD44F48006880B2C7
+S3150800248048F60F7108404C490860FEF7B8FB4A4801
+S31508002490006880B24BF6BF7108404C490988C904E8
+S315080024A001D590F4805049490988890401D590F4EA
+S315080024B0005047490988C90601D590F010004449DB
+S315080024C00988890601D590F0200080B240F40040C2
+S315080024D050F08000384908606AE037480068ADF86F
+S315080024E00000BDF8000000052ED53348006840F608
+S315080024F08F71084030490860FEF737FB2E480068A0
+S3150800250080B24BF6BF71084030490988C90401D525
+S3150800251090F480502D490988890401D590F400501B
+S315080025202B490988C90601D590F010002849098861
+S31508002530890601D590F0200080B240F4004050F0A2
+S3150800254080001D49086033E0BDF8000000047FF5EF
+S315080025505EAF1948006840F68F7108401649086052
+S31508002560FEF77EFB1448006880B24BF6BF71084040
+S3150800257016490988C90401D590F480501349098879
+S31508002580890401D590F4005011490988C90601D576
+S3150800259090F010000E490988890601D590F02000B0
+S315080025A080B240F4004050F0800003490860FFE71D
+S315080025B001BD000044070020005C0040B400002074
+S315080025C098000020445C00403E0700203A0700209F
+S315080025D03C07002080B5FFF712F8FFF775F8FFF7FC
+S315080025E010F8FFF739F800F010F801BD80B5FFF7CD
+S315080025F007F8FFF77DF8FFF740F800F016F801BD79
+S315080026000746384600F012F8FBE780B5FFF74EFD9F
+S31508002610FFF75FFD002805D1FFF74CF8002801D128
+S31508002620FEF7C2FF00F001F801BD704780B5C0464D
+S31508002630C046024A11001820ABBEFBE7260002007E
+S3150800264080B5FFF7B3FB5D4800680021817200F092
+S31508002650D3F8FFF78FFD5A480021016001BD80B508
+S315080026605648006800218172544800685549C9795E
+S315080026704172524800680021C1720020FEF790FBA3
+S315080026804FF400710020FEF792FB10210020FEF7A0
+S315080026909EFB40210020FEF753FC80210020FEF718
+S315080026A03FFC0020FEF7F7FB474890F82C1089B24C
+S315080026B00020FEF77CFC0020FEF7D6FB0021012057
+S315080026C0FEF775FB4FF480710120FEF729FCC02147
+S315080026D00120FEF735FC40210120FEF75BFC402176
+S315080026E00120FEF764FC4FF440510120FEF78AFBF7
+S315080026F020210120FEF76BFB0020FEF7F5FA304893
+S315080027000121016001BD3148807A002802D02C4899
+S315080027100521016070472A48042101607047704707
+S31508002720704780B50021C0B2062812D12348006838
+S31508002730007810F07F0001280BD120480068407906
+S31508002740002806D11D4800688078212801D10FF29B
+S3150800275061010800002801D1022009E01748006835
+S3150800276081611648006800224282002088470020BE
+S3150800277002BD0220704780B5154980B2FDF72CFFCF
+S3150800278002BD80B5134980B2FDF726FF02BD80B5AC
+S315080027900A490968C978C9B2062901DB002006E09A
+S315080027A0C9B20D4A12EBC10180B2FDF715FF02BD91
+S315080027B080B50A4980B2FDF70FFF02BD2807002041
+S315080027C034070020302A000800000020F806002000
+S315080027D0D0000020D800002030000020E0000020B3
+S315080027E0C9B2002901D0022005E0C0B2002801D0F4
+S315080027F0022000E00020704780B50120FFF730FC7A
+S3150800280001200B4980B208600A4800210180084867
+S3150800281008490988016008480021016005484FF405
+S31508002820E05101800248034909880160002002BD81
+S31508002830405C004038070020445C00400040000827
+S3150800284000200000020000000060000800200000D0
+S3150800285003000000008000080020000004000000BB
+S3150800286000A00008002000000500000000C00008C5
+S31508002870002000000600000000E00008002000001C
+S315080028800700000000000108002000000800000002
+S31508002890002001080020000009000000004001088F
+S315080028A0002000000A000000006001080020000067
+S315080028B00B00000000800108002000000C0000004A
+S315080028C000A00108002000000D00000000C001085B
+S315080028D0002000000E00000000E0010800200000B3
+S315080028E00F000000433A5C576F726B5C736F667437
+S315080028F0776172655C4F70656E424C545C546172C8
+S315080029006765745C44656D6F5C41524D434D335F3A
+S3150800291053544D33325F4F6C696D65785F53544D30
+S315080029203332483130335F4941525C426F6F745CD1
+S315080029306D61696E2E630000433A5C576F726B5C7B
+S31508002940736F6674776172655C4F70656E424C543E
+S315080029505C5461726765745C536F757263655C413C
+S31508002960524D434D335F53544D33325C4941525CAB
+S31508002970766563746F72732E63000000433A5C5782
+S315080029806F726B5C736F6674776172655C4F7065A6
+S315080029906E424C545C5461726765745C536F757211
+S315080029A063655C41524D434D335F53544D33325C3E
+S315080029B07573622E630000002C03570069006E00D1
+S315080029C05500530042002000420075006C006B0061
+S315080029D0200049006E007400650072006600610000
+S315080029E0630065002603570069006E005500530012
+S315080029F042002000420075006C006B002000440075
+S31508002A006500760069006300650000002BECFFFF97
+S31508002A105C060000EC0000200000000057E3FFFF02
+S31508002A20EC00000084000000000000200000000008
+S31508002A3009022000010100C0320904000002FF005B
+S31508002A400004070581024000000705010240000056
+S31508002A501A034F00700065006E0042004C005400D7
+S31508002A602000550073006500720000001201100175
+S31508002A700000004045012300000101020301000097
+S31508002A8080B541210148FFF7BFFA01BD3829000882
+S31508002A90C046C046C046C046FFF7AAFA4F70656EE4
+S31508002AA0424C540004030904412600085F26000826
+S31508002AB01F27000821270008232700087327000876
+S31508002AC0E127000877270008832700088F270008D2
+S31508002AD00000000040000000A42A000804000000CE
+S31508002AE0502A00081A000000E42900082600000001
+S31508002AF07C0000201C000000B82900082C000000FB
+S31508002B00710D000807270008710D0008710D0008EF
S31508002B10710D0008710D0008710D0008710D00088F
-S31508002B20710D0008710D00081F2700081C035300CB
-S31508002B3045005200310032003300340035003600BB
-S31508002B40370038003900300075230008710D000879
-S31508002B50710D0008710D0008710D0008710D00084F
-S31508002B60710D00087D230008710D0008710D00081D
-S31508002B70710D0008710D0008710D0008710D00082F
-S31508002B80742A000812000000382A000820000000F5
-S31108002B904A2A00080900000003010000A2
-S70508002A992F
+S31508002B20172700081C0353004500520031003200E5
+S31508002B3033003400350036003700380039003000DD
+S31508002B406D230008710D0008710D0008710D00084D
+S31508002B50710D0008710D0008710D00087523000835
+S31508002B60710D0008710D0008710D0008710D00083F
+S31508002B70710D0008710D00086C2A0008120000008B
+S31508002B80302A000820000000422A00080900000038
+S30908002B90030100002F
+S70508002A9137
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/boot.dox
new file mode 100644
index 00000000..443597cf
--- /dev/null
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/boot.dox
@@ -0,0 +1,7 @@
+/**
+\defgroup Boot_ARMCM3_STM32_Olimex_STM32H103_IAR Bootloader
+\brief Bootloader.
+\ingroup ARMCM3_STM32_Olimex_STM32H103_IAR
+*/
+
+
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/config.h
index 22be6bad..255b4f03 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/config.h
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/config.h
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_IAR\Boot\config.h
+* \brief Bootloader configuration header file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
@@ -46,10 +48,15 @@
* 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 (8000)
+/** \brief Desired system speed. */
#define BOOT_CPU_SYSTEM_SPEED_KHZ (72000)
+/** \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)
+/** \brief Compiler specific variable prefix to prevent its initialization during startup. */
#define BOOT_CPU_CONNECT_STATE_PREFIX __no_init
@@ -68,12 +75,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
@@ -84,10 +98,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 (0)
+/** \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 (1)
/* The USB communication interface is selected by setting the BOOT_COM_USB_ENABLE
@@ -96,8 +115,11 @@
* respectively.
*
*/
+/** \brief Enable/disable USB transport layer. */
#define BOOT_COM_USB_ENABLE (1)
+/** \brief Configure number of bytes in the target->host data packet. */
#define BOOT_COM_USB_TX_MAX_DATA (63)
+/** \brief Configure number of bytes in the host->target data packet. */
#define BOOT_COM_USB_RX_MAX_DATA (63)
@@ -112,6 +134,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 (1)
@@ -124,7 +147,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)
@@ -137,6 +162,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
index e9f3daa8..651b4960 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/hooks.c
@@ -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 .
-|
-| 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 .
-|
+/************************************************************************************//**
+* \file Demo\ARMCM3_STM32_Olimex_STM32H103_IAR\Boot\hooks.c
+* \brief Bootloader callback source file.
+* \ingroup Boot_ARMCM3_STM32_Olimex_STM32H103_IAR
+* \internal
+*----------------------------------------------------------------------------------------
+* C O P Y R I G H T
+*----------------------------------------------------------------------------------------
+* Copyright (c) 2012 by Feaser http://www.feaser.com All rights reserved
+*
+*----------------------------------------------------------------------------------------
+* L I C E N S E
+*----------------------------------------------------------------------------------------
+* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as published by the Free
+* Software Foundation, either version 3 of the License, or (at your option) any later
+* version.
+*
+* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+* PURPOSE. See the GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License along with OpenBLT.
+* If not, see .
+*
+* 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 .
+*
+* \endinternal
****************************************************************************************/
/****************************************************************************************
@@ -41,12 +43,11 @@
****************************************************************************************/
#if (BOOT_COM_USB_ENABLE > 0)
-/****************************************************************************************
-** NAME: UsbConnect
-** PARAMETER: connect BLT_TRUE to connect and BLT_FALSE to disconnected.
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB device should be connected
-** to the USB bus.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB device should be connected
+** to the USB bus.
+** \param connect BLT_TRUE to connect and BLT_FALSE to disconnect.
+** \return none.
**
****************************************************************************************/
void UsbConnectHook(blt_bool connect)
@@ -83,12 +84,10 @@ void UsbConnectHook(blt_bool connect)
} /*** end of UsbConnect ***/
-/****************************************************************************************
-** NAME: UsbEnterLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device
-** to enter a low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device
+** to enter a low power mode.
+** \return none.
**
****************************************************************************************/
void UsbEnterLowPowerModeHook(void)
@@ -97,12 +96,10 @@ void UsbEnterLowPowerModeHook(void)
} /*** end of UsbEnterLowPowerMode ***/
-/****************************************************************************************
-** NAME: UsbLeaveLowPowerMode
-** PARAMETER: none
-** RETURN VALUE: none
-** DESCRIPTION: Callback that gets called whenever the USB host requests the device to
-** exit low power mode.
+/************************************************************************************//**
+** \brief Callback that gets called whenever the USB host requests the device to
+** exit low power mode.
+** \return none.
**
****************************************************************************************/
void UsbLeaveLowPowerModeHook(void)
@@ -117,11 +114,9 @@ void UsbLeaveLowPowerModeHook(void)
****************************************************************************************/
#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)
@@ -136,11 +131,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)
@@ -162,15 +155,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)
@@ -186,12 +177,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)
@@ -199,20 +188,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)
@@ -221,18 +208,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)
@@ -241,11 +227,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)
@@ -260,13 +244,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)
@@ -274,14 +256,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)
diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
index faa1cb57..fe9b384e 100644
--- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
+++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/settings/stm32f103.wsdt
@@ -12,12 +12,12 @@
- 379272727
+ 146272727