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-Files2011553087730055278946300FileFunctionLine200700100300BuildFind-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 20105928270201413 - + TabID-32216-31616 @@ -29,7 +29,7 @@ - 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 + 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 @@ -42,7 +42,7 @@ - iaridepm.enu1-2-2727453-2-2261204135938202381236979723214-2-22361922-2-219242381002083236111135938202381 + iaridepm.enu1-2-2395237-2-2137116135913202091237103691638-2-21341010-2-210121361003968236934135913202091 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep index be7e1c6a..e2e7919b 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/ide/stm32f103.dep @@ -70,13 +70,13 @@ $PROJ_DIR$\..\boot.h $PROJ_DIR$\..\cstart.s $PROJ_DIR$\..\header.h - $PROJ_DIR$\..\led.h - $PROJ_DIR$\..\timer.c - $TOOLKIT_DIR$\inc\c\DLib_Product.h $PROJ_DIR$\..\timer.h - $PROJ_DIR$\..\led.c $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\led.c + $TOOLKIT_DIR$\inc\c\DLib_Product.h $PROJ_DIR$\..\irq.h + $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\led.h $PROJ_DIR$\Debug\Obj\stm32f10x_crc.pbi $PROJ_DIR$\Debug\Obj\core_cm3.o $TOOLKIT_DIR$\inc\c\yvals.h @@ -115,6 +115,45 @@ $PROJ_DIR$\..\obj\xcp.o $PROJ_DIR$\..\obj\backdoor.o $PROJ_DIR$\..\obj\assert.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h + $PROJ_DIR$\..\boot.c + $PROJ_DIR$\..\obj\usb_core.pbi + $PROJ_DIR$\..\obj\usb_int.pbi + $PROJ_DIR$\..\obj\usb_mem.pbi + $PROJ_DIR$\..\obj\usb_regs.pbi + $PROJ_DIR$\..\obj\usb_sil.pbi + $PROJ_DIR$\..\obj\usb_sil.lst + $PROJ_DIR$\..\obj\usb_regs.lst + $PROJ_DIR$\..\bin\openbtl_olimex_stm32h103.srec + $PROJ_DIR$\..\bin\openbtl_olimex_stm32h103.out + $PROJ_DIR$\..\obj\usb_pwr.lst + $PROJ_DIR$\..\obj\usb_int.lst + $PROJ_DIR$\..\obj\usb_endp.lst + $PROJ_DIR$\..\obj\usb_core.lst + $PROJ_DIR$\Debug\Obj\app.o + $PROJ_DIR$\..\obj\stm32f10x_adc.pbi + $PROJ_DIR$\Debug\Obj\system_stm32f10x.pbi + $PROJ_DIR$\Debug\Obj\stm32f103.pbd + $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.o + $PROJ_DIR$\..\obj\stm32f10x_dac.o + $PROJ_DIR$\..\obj\stm32f10x_dma.o + $PROJ_DIR$\..\obj\vectors.o + $PROJ_DIR$\..\obj\timer.o + $PROJ_DIR$\..\obj\boot.pbi + $PROJ_DIR$\..\obj\irq.pbi + $PROJ_DIR$\..\obj\led.pbi + $PROJ_DIR$\..\obj\main.pbi + $PROJ_DIR$\..\obj\timer.pbi + $PROJ_DIR$\..\obj\vectors.pbi + $PROJ_DIR$\..\obj\boot.lst + $PROJ_DIR$\..\obj\led.lst $PROJ_DIR$\..\obj\vectors.lst $PROJ_DIR$\..\obj\main.lst $PROJ_DIR$\..\obj\timer.lst @@ -144,10 +183,10 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\misc.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h @@ -178,8 +217,8 @@ $PROJ_DIR$\..\obj\assert.lst $PROJ_DIR$\..\obj\flash.lst $PROJ_DIR$\..\obj\backdoor.lst - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\bin\openbtl_olimex_stm32p103.srec + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\obj\hooks.pbi $PROJ_DIR$\..\obj\hooks.o $PROJ_DIR$\..\obj\cpu.lst @@ -355,66 +394,27 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h - $PROJ_DIR$\..\boot.c - $PROJ_DIR$\..\obj\usb_core.pbi - $PROJ_DIR$\..\obj\usb_int.pbi - $PROJ_DIR$\..\obj\usb_mem.pbi - $PROJ_DIR$\..\obj\usb_regs.pbi - $PROJ_DIR$\..\obj\usb_sil.pbi - $PROJ_DIR$\..\obj\usb_sil.lst - $PROJ_DIR$\..\obj\usb_regs.lst - $PROJ_DIR$\..\bin\openbtl_olimex_stm32h103.srec - $PROJ_DIR$\..\bin\openbtl_olimex_stm32h103.out - $PROJ_DIR$\..\obj\usb_pwr.lst - $PROJ_DIR$\..\obj\usb_int.lst - $PROJ_DIR$\..\obj\usb_endp.lst - $PROJ_DIR$\..\obj\usb_core.lst - $PROJ_DIR$\Debug\Obj\app.o - $PROJ_DIR$\..\obj\stm32f10x_adc.pbi - $PROJ_DIR$\Debug\Obj\system_stm32f10x.pbi - $PROJ_DIR$\Debug\Obj\stm32f103.pbd - $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.o - $PROJ_DIR$\..\obj\stm32f10x_dac.o - $PROJ_DIR$\..\obj\stm32f10x_dma.o - $PROJ_DIR$\..\obj\vectors.o - $PROJ_DIR$\..\obj\timer.o - $PROJ_DIR$\..\obj\boot.pbi - $PROJ_DIR$\..\obj\irq.pbi - $PROJ_DIR$\..\obj\led.pbi - $PROJ_DIR$\..\obj\main.pbi - $PROJ_DIR$\..\obj\timer.pbi - $PROJ_DIR$\..\obj\vectors.pbi - $PROJ_DIR$\..\obj\boot.lst - $PROJ_DIR$\..\obj\led.lst $PROJ_DIR$\..\lib\USB_FS_DEVICE\src\usb_core.c BICOMP - 358 + 118 ICCARM - 370 278 + 130 317 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -423,21 +423,21 @@ BICOMP - 284 + 323 ICCARM - 334 279 + 373 318 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -446,21 +446,21 @@ BICOMP - 359 + 119 ICCARM - 368 280 + 128 319 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -469,21 +469,17 @@ BICOMP - 360 + 120 ICCARM - 332 281 + 371 320 - - BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 - ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -492,21 +488,21 @@ BICOMP - 361 + 121 ICCARM - 364 282 + 124 321 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -515,21 +511,21 @@ BICOMP - 362 + 122 ICCARM - 363 283 + 123 322 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 @@ -538,21 +534,21 @@ BICOMP - 188 + 227 ICCARM - 84 304 + 84 343 BICOMP - 86 88 73 293 90 66 216 220 + 86 88 73 332 90 67 255 259 ICCARM - 86 88 73 293 90 66 216 220 + 86 88 73 332 90 67 255 259 @@ -561,21 +557,21 @@ BICOMP - 134 + 173 ICCARM - 81 186 + 81 225 BICOMP - 17 16 86 88 73 293 90 66 216 220 151 19 + 17 16 86 88 73 332 90 67 255 259 190 19 ICCARM - 17 16 86 88 73 293 90 66 216 220 151 19 + 17 16 86 88 73 332 90 67 255 259 190 19 @@ -584,7 +580,7 @@ ILINK - 366 335 + 126 374 @@ -593,21 +589,21 @@ BICOMP - 174 + 213 ICCARM - 166 175 + 205 214 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 17 16 86 88 73 293 90 66 216 220 151 19 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 17 16 86 88 73 332 90 67 255 259 190 19 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 17 16 86 88 73 293 90 66 216 220 151 19 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 17 16 86 88 73 332 90 67 255 259 190 19 @@ -616,21 +612,21 @@ BICOMP - 383 + 143 ICCARM - 110 101 + 149 101 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 17 16 86 88 73 293 90 66 216 220 151 19 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 17 16 86 88 73 332 90 67 255 259 190 19 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 17 16 86 88 73 293 90 66 216 220 151 19 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 17 16 86 88 73 332 90 67 255 259 190 19 @@ -639,21 +635,21 @@ BICOMP - 268 + 307 ICCARM - 333 271 + 372 310 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 @@ -662,21 +658,21 @@ BICOMP - 277 + 316 ICCARM - 369 276 + 129 315 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 28 32 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 28 32 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 28 32 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 28 32 @@ -685,21 +681,21 @@ BICOMP - 275 + 314 ICCARM - 331 273 + 370 312 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 30 32 28 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 30 32 28 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 30 32 28 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 30 32 28 @@ -708,21 +704,21 @@ BICOMP - 272 + 311 ICCARM - 336 274 + 375 313 BICOMP - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 30 25 32 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 30 25 32 ICCARM - 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 30 25 32 + 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 30 25 32 @@ -731,21 +727,21 @@ BICOMP - 270 + 309 ICCARM - 367 269 + 127 308 BICOMP - 17 16 86 88 73 293 90 66 216 220 151 19 7 14 23 11 3 0 1 9 6 13 32 45 + 17 16 86 88 73 332 90 67 255 259 190 19 7 14 23 11 3 0 1 9 6 13 32 45 ICCARM - 17 16 86 88 73 293 90 66 216 220 151 19 7 14 23 11 3 0 1 9 6 13 32 45 + 17 16 86 88 73 332 90 67 255 259 190 19 7 14 23 11 3 0 1 9 6 13 32 45 @@ -758,17 +754,17 @@ ICCARM - 169 168 + 208 207 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -777,7 +773,7 @@ AARM - 313 + 352 @@ -786,21 +782,21 @@ BICOMP - 385 + 145 ICCARM - 109 378 + 148 138 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -809,21 +805,21 @@ BICOMP - 261 + 300 ICCARM - 178 257 + 217 296 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -832,21 +828,21 @@ BICOMP - 264 + 303 ICCARM - 176 259 + 215 298 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -855,21 +851,21 @@ BICOMP - 263 + 302 ICCARM - 170 260 + 209 299 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -878,21 +874,21 @@ BICOMP - 265 + 304 ICCARM - 254 256 + 293 295 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -901,21 +897,21 @@ BICOMP - 384 + 144 ICCARM - 111 379 + 150 139 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -924,21 +920,21 @@ BICOMP - 266 + 305 ICCARM - 177 262 + 216 301 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -947,21 +943,21 @@ BICOMP - 267 + 306 ICCARM - 255 258 + 294 297 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 32 28 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 32 28 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 7 17 16 86 88 73 293 90 66 216 220 151 19 14 23 11 3 0 1 9 6 13 25 32 28 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 7 17 16 86 88 73 332 90 67 255 259 190 19 14 23 11 3 0 1 9 6 13 25 32 28 @@ -970,21 +966,21 @@ BICOMP - 249 + 288 ICCARM - 171 107 + 210 107 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -993,21 +989,21 @@ BICOMP - 380 + 140 ICCARM - 386 103 + 146 103 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -1016,21 +1012,21 @@ BICOMP - 250 + 289 ICCARM - 180 248 + 219 287 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 48 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 48 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 48 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 48 @@ -1039,21 +1035,21 @@ BICOMP - 251 + 290 ICCARM - 179 247 + 218 286 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -1062,21 +1058,21 @@ BICOMP - 252 + 291 ICCARM - 253 106 + 292 106 BICOMP - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 ICCARM - 53 45 49 20 58 38 57 42 40 44 51 246 55 60 + 53 45 49 20 58 38 57 42 40 44 51 285 55 60 @@ -1085,26 +1081,26 @@ AARM - 313 + 352 - $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\irq.c BICOMP - 384 + 141 ICCARM - 111 379 + 151 100 ICCARM - 63 20 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 61 70 64 67 + 63 20 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 61 68 70 64 @@ -1113,36 +1109,36 @@ BICOMP - 382 + 142 ICCARM - 387 102 + 147 102 ICCARM - 63 20 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 61 70 64 67 + 63 20 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 61 68 70 64 - $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\timer.c BICOMP - 381 + 144 ICCARM - 112 100 + 150 139 ICCARM - 63 20 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 61 70 64 67 + 63 20 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 61 68 70 64 @@ -1151,7 +1147,7 @@ ILINK - 87 371 72 303 311 296 312 307 76 77 79 306 226 228 229 230 290 225 80 310 96 221 222 97 154 235 152 155 159 99 223 116 218 + 87 131 72 342 350 335 351 346 76 77 79 345 265 267 268 269 329 264 80 349 96 260 261 97 193 274 191 194 198 99 262 155 257 @@ -1166,521 +1162,7 @@ ILINK - 87 103 304 313 100 102 101 301 98 302 299 298 297 376 375 377 113 114 314 160 161 162 163 164 165 181 182 183 184 185 186 379 378 99 223 116 218 - - - - - $PROJ_DIR$\..\bin\stm32f103.out - - - OBJCOPY - 121 - - - - - ILINK - 87 103 304 313 100 102 101 301 98 302 299 298 297 376 375 377 113 114 314 160 161 162 163 164 165 181 182 183 184 185 186 379 378 99 223 116 218 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - - - BICOMP - 189 - - - ICCARM - 199 301 - - - - - ICCARM - 143 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - - - BICOMP - 237 - - - ICCARM - 195 302 - - - - - ICCARM - 137 136 138 86 88 73 293 90 66 216 220 151 356 148 144 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - - - BICOMP - 188 - - - ICCARM - 84 304 - - - - - ICCARM - 86 88 73 293 90 66 216 220 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - - - BICOMP - 372 - - - ICCARM - 197 98 - - - - - ICCARM - 144 136 138 86 88 73 293 90 66 216 220 151 356 148 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - - - BICOMP - 238 - - - ICCARM - 196 299 - - - - - ICCARM - 145 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - - - BICOMP - 239 - - - ICCARM - 193 298 - - - - - ICCARM - 147 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - - - BICOMP - 240 - - - ICCARM - 198 297 - - - - - ICCARM - 150 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\bin\openbtl_olimex_stm32p103.out - - - OBJCOPY - 173 - - - - - ILINK - 172 168 107 103 257 248 247 304 259 313 260 175 101 256 186 379 262 258 378 106 99 223 116 218 - - - - - $PROJ_DIR$\..\vectors.c - - - BICOMP - 385 - - - ICCARM - 109 378 - - - - - ICCARM - 63 20 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 61 70 64 67 - - - - - $PROJ_DIR$\..\src\app\app.c - - - BICOMP - 124 - - - ICCARM - 305 187 - - - - - ICCARM - 291 289 294 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 287 - - - - - $PROJ_DIR$\..\src\hw\cstart.s - - - AARM - 313 - - - - - $PROJ_DIR$\..\src\os\os.c - - - BICOMP - 133 - - - ICCARM - 82 191 - - - - - ICCARM - 289 - - - - - $PROJ_DIR$\..\src\hw\hw.c - - - BICOMP - 244 - - - ICCARM - 83 190 - - - - - ICCARM - 291 289 294 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 287 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - - - BICOMP - 241 - - - ICCARM - 200 376 - - - - - ICCARM - 315 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - - - BICOMP - 236 - - - ICCARM - 201 375 - - - - - ICCARM - 324 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - - - BICOMP - 243 - - - ICCARM - 202 113 - - - - - ICCARM - 320 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - - - BICOMP - 115 - - - ICCARM - 203 114 - - - - - ICCARM - 322 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - - - BICOMP - 242 - - - ICCARM - 213 377 - - - - - ICCARM - 321 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - - - BICOMP - 120 - - - ICCARM - 204 314 - - - - - ICCARM - 326 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 328 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - - - BICOMP - 131 - - - ICCARM - 205 160 - - - - - ICCARM - 328 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 330 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - - - BICOMP - 128 - - - ICCARM - 206 161 - - - - - ICCARM - 330 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 338 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - - - BICOMP - 127 - - - ICCARM - 207 162 - - - - - ICCARM - 338 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 346 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - - - BICOMP - 129 - - - ICCARM - 208 163 - - - - - ICCARM - 346 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 343 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - - - BICOMP - 117 - - - ICCARM - 210 165 - - - - - ICCARM - 342 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - - - BICOMP - 130 - - - ICCARM - 211 181 - - - - - ICCARM - 344 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - - - BICOMP - 118 - - - ICCARM - 209 164 - - - - - ICCARM - 343 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 342 344 348 350 352 354 143 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - - - BICOMP - 126 - - - ICCARM - 212 182 - - - - - ICCARM - 348 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 350 352 354 143 + 87 103 343 352 100 102 101 340 98 341 338 337 336 136 135 137 152 153 353 199 200 201 202 203 204 220 221 222 223 224 225 139 138 99 262 155 257 @@ -1689,17 +1171,17 @@ BICOMP - 123 + 162 ICCARM - 214 183 + 253 222 ICCARM - 350 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 352 354 143 + 110 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 112 114 182 @@ -1708,17 +1190,17 @@ BICOMP - 122 + 161 ICCARM - 215 184 + 254 223 ICCARM - 352 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 354 143 + 112 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 114 182 @@ -1727,17 +1209,17 @@ BICOMP - 119 + 158 ICCARM - 192 185 + 231 224 ICCARM - 354 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 143 + 114 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 182 @@ -1746,17 +1228,17 @@ BICOMP - 134 + 173 ICCARM - 81 186 + 81 225 ICCARM - 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 + 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 @@ -1765,17 +1247,17 @@ BICOMP - 380 + 140 ICCARM - 386 103 + 146 103 ICCARM - 63 20 136 138 86 88 73 293 90 66 216 220 151 356 148 144 137 145 147 150 315 324 321 320 322 326 328 330 338 346 343 342 344 348 350 352 354 143 61 70 64 67 + 63 20 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 61 68 70 64 @@ -1784,17 +1266,17 @@ ILINK - 335 + 374 OBJCOPY - 365 + 125 ILINK - 172 168 107 103 257 248 247 304 259 313 260 175 101 256 186 379 262 258 278 271 276 279 280 273 281 274 269 282 283 378 106 99 223 116 218 + 212 207 107 103 296 287 286 343 298 352 299 214 101 295 225 139 301 297 317 310 315 318 319 312 320 313 308 321 322 138 106 99 262 155 257 @@ -1803,7 +1285,521 @@ BILINK - 309 153 308 219 245 156 157 158 94 71 231 232 233 194 234 224 300 217 92 95 93 74 91 89 85 75 227 373 + 348 192 347 258 284 195 196 197 94 71 270 271 272 233 273 263 339 256 92 95 93 74 91 89 85 75 266 133 + + + + + $PROJ_DIR$\..\bin\stm32f103.out + + + OBJCOPY + 160 + + + + + ILINK + 87 103 343 352 100 102 101 340 98 341 338 337 336 136 135 137 152 153 353 199 200 201 202 203 204 220 221 222 223 224 225 139 138 99 262 155 257 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c + + + BICOMP + 228 + + + ICCARM + 238 340 + + + + + ICCARM + 182 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + + + BICOMP + 276 + + + ICCARM + 234 341 + + + + + ICCARM + 176 175 178 86 88 73 332 90 67 255 259 190 116 187 183 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + BICOMP + 132 + + + ICCARM + 236 98 + + + + + ICCARM + 183 175 178 86 88 73 332 90 67 255 259 190 116 187 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + + + BICOMP + 227 + + + ICCARM + 84 343 + + + + + ICCARM + 86 88 73 332 90 67 255 259 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + + + BICOMP + 277 + + + ICCARM + 235 338 + + + + + ICCARM + 184 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + + + BICOMP + 278 + + + ICCARM + 232 337 + + + + + ICCARM + 186 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + + + BICOMP + 279 + + + ICCARM + 237 336 + + + + + ICCARM + 189 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\bin\openbtl_olimex_stm32p103.out + + + OBJCOPY + 211 + + + + + ILINK + 212 207 107 103 296 287 286 343 298 352 299 214 101 295 225 139 301 297 138 106 99 262 155 257 + + + + + $PROJ_DIR$\..\vectors.c + + + BICOMP + 145 + + + ICCARM + 148 138 + + + + + ICCARM + 63 20 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 61 68 70 64 + + + + + $PROJ_DIR$\..\src\app\app.c + + + BICOMP + 163 + + + ICCARM + 344 226 + + + + + ICCARM + 330 328 333 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 326 + + + + + $PROJ_DIR$\..\src\hw\cstart.s + + + AARM + 352 + + + + + $PROJ_DIR$\..\src\os\os.c + + + BICOMP + 172 + + + ICCARM + 82 230 + + + + + ICCARM + 328 + + + + + $PROJ_DIR$\..\src\hw\hw.c + + + BICOMP + 283 + + + ICCARM + 83 229 + + + + + ICCARM + 330 328 333 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 326 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + + + BICOMP + 280 + + + ICCARM + 239 136 + + + + + ICCARM + 354 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 363 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + + + BICOMP + 275 + + + ICCARM + 240 135 + + + + + ICCARM + 363 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 360 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + BICOMP + 282 + + + ICCARM + 241 152 + + + + + ICCARM + 359 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + BICOMP + 154 + + + ICCARM + 242 153 + + + + + ICCARM + 361 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + BICOMP + 281 + + + ICCARM + 252 137 + + + + + ICCARM + 360 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 359 361 365 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + BICOMP + 159 + + + ICCARM + 243 353 + + + + + ICCARM + 365 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 367 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + BICOMP + 170 + + + ICCARM + 244 199 + + + + + ICCARM + 367 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 369 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + BICOMP + 167 + + + ICCARM + 245 200 + + + + + ICCARM + 369 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 377 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + BICOMP + 166 + + + ICCARM + 246 201 + + + + + ICCARM + 377 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 385 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + + + BICOMP + 168 + + + ICCARM + 247 202 + + + + + ICCARM + 385 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 382 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + BICOMP + 156 + + + ICCARM + 249 204 + + + + + ICCARM + 381 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + BICOMP + 169 + + + ICCARM + 250 220 + + + + + ICCARM + 383 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + BICOMP + 157 + + + ICCARM + 248 203 + + + + + ICCARM + 382 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 381 383 387 110 112 114 182 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + BICOMP + 165 + + + ICCARM + 251 221 + + + + + ICCARM + 387 175 178 86 88 73 332 90 67 255 259 190 116 187 183 176 184 186 189 354 363 360 359 361 365 367 369 377 385 382 381 383 110 112 114 182 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/main.c index 2247fd19..e8c2cd54 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\main.c +* \brief Bootloader application 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 ****************************************************************************************/ /**************************************************************************************** @@ -42,12 +44,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) @@ -66,12 +66,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_STM32_Olimex_STM32H103_IAR/Boot/usb_conf.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_conf.h index 0606690f..0becaddf 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_conf.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_conf.h +* \brief Bootloader USB device 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 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_IAR/Boot/usb_desc.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_desc.c index e6dfa7ea..e0747d67 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_desc.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_desc.c +* \brief Bootloader USB device descriptor 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 ****************************************************************************************/ /**************************************************************************************** @@ -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_IAR/Boot/usb_desc.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_desc.h index 029d48e9..d3c5197d 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_desc.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_desc.h +* \brief Bootloader USB device descriptor 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 USB_DESC_H #define USB_DESC_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_endp.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_endp.c index dfdc1d97..f647a716 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_endp.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_endp.c +* \brief Bootloader USB device endpoint routines 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 ****************************************************************************************/ @@ -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_IAR/Boot/usb_istr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_istr.c index 0c22b41c..4989b5f9 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_istr.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_istr.c +* \brief Bootloader USB device interrupt/event handler 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 ****************************************************************************************/ @@ -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_IAR/Boot/usb_istr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_istr.h index 65f086eb..b6a5225a 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_istr.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_istr.h +* \brief Bootloader USB device interrupt/event handler 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 USB_ISTR_H #define USB_ISTR_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_prop.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_prop.c index 4c91089e..8435be9c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_prop.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_prop.c +* \brief Bootloader USB device properties 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 ****************************************************************************************/ @@ -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_IAR/Boot/usb_prop.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_prop.h index e9322fbd..3e0180e8 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_prop.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_prop.h +* \brief Bootloader USB device properties 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 USB_PROP_H #define USB_PROP_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_pwr.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_pwr.c index 295a2aca..4279e8aa 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_pwr.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_pwr.c +* \brief Bootloader USB device power management 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 ****************************************************************************************/ @@ -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_IAR/Boot/usb_pwr.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_pwr.h index c315dd60..ae543f3c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Boot/usb_pwr.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/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_IAR\Boot\usb_pwr.h +* \brief Bootloader USB device power management 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 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_IAR/Prog/bin/demoprog_olimex_stm32h103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/bin/demoprog_olimex_stm32h103.out index 64f30ec4..6e7eb540 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/bin/demoprog_olimex_stm32h103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/bin/demoprog_olimex_stm32h103.out differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/header.h index 228f9ba1..43bda3fa 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/header.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_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 HEADER_H #define HEADER_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/settings/stm32f103.wsdt index 19fe32c5..53fe04a3 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/settings/stm32f103.wsdt +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/settings/stm32f103.wsdt @@ -12,12 +12,12 @@ - 379272727 + 163272727 20105928270201413 - + TabID-32216-31616 @@ -29,7 +29,7 @@ - 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 + 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 @@ -42,7 +42,7 @@ - iaridepm.enu1-2-2727453-2-2261204135938202381236979723214-2-22361922-2-219242381002083236111135938202381 + iaridepm.enu1-2-2395237-2-2137116135913202091237103691638-2-21341010-2-210121361003968236934135913202091 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/stm32f103.dep index ac78b419..86cb41e8 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/stm32f103.dep +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/ide/stm32f103.dep @@ -7,9 +7,9 @@ Debug $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\misc.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h @@ -71,13 +71,13 @@ $PROJ_DIR$\Debug\Obj\os.o $PROJ_DIR$\..\obj\stm32f10x_crc.o $PROJ_DIR$\..\obj\stm32f10x_cec.o - $PROJ_DIR$\..\obj\stm32f10x_bkp.o - $PROJ_DIR$\..\obj\core_cm3.o - $PROJ_DIR$\Debug\Obj\hw.o $PROJ_DIR$\..\obj\misc.o - $PROJ_DIR$\..\obj\app.lst $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.pbi + $PROJ_DIR$\..\obj\app.lst + $PROJ_DIR$\Debug\Obj\hw.o $PROJ_DIR$\..\obj\stm32f10x_can.o + $PROJ_DIR$\..\obj\core_cm3.o + $PROJ_DIR$\..\obj\stm32f10x_bkp.o $PROJ_DIR$\Debug\Obj\stm32f10x_dac.o $PROJ_DIR$\Debug\Obj\stm32f10x_bkp.o $PROJ_DIR$\Debug\Obj\hw.pbi @@ -272,7 +272,7 @@ ICCARM - 172 66 + 172 70 @@ -295,17 +295,17 @@ ICCARM - 231 68 + 231 65 BICOMP - 4 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 + 4 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 ICCARM - 4 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 + 4 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 @@ -322,13 +322,9 @@ - - BICOMP - 6 1 3 174 176 161 128 178 158 87 132 198 51 13 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 - ICCARM - 6 1 3 174 176 161 128 178 158 87 132 198 51 13 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 6 2 1 174 176 161 128 178 158 87 132 198 51 13 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -341,17 +337,17 @@ ICCARM - 227 65 + 227 71 BICOMP - 8 1 3 174 176 161 128 178 158 87 132 198 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 8 2 1 174 176 161 128 178 158 87 132 198 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 8 1 3 174 176 161 128 178 158 87 132 198 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 8 2 1 174 176 161 128 178 158 87 132 198 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -364,17 +360,17 @@ ICCARM - 228 71 + 228 69 BICOMP - 10 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 10 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 10 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 10 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -393,11 +389,11 @@ BICOMP - 12 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 12 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 12 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 12 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -416,11 +412,11 @@ BICOMP - 15 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 15 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 15 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 15 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -439,11 +435,11 @@ BICOMP - 17 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 17 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 17 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 17 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -462,11 +458,11 @@ BICOMP - 19 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 19 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 19 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 19 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -485,11 +481,11 @@ BICOMP - 21 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 21 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 21 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 21 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -517,11 +513,11 @@ BICOMP - 23 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 23 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 23 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 23 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -540,7 +536,7 @@ ICCARM - 25 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 27 29 31 33 35 37 39 41 43 45 47 49 4 + 25 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -559,11 +555,11 @@ BICOMP - 27 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 29 31 33 35 37 39 41 43 45 47 49 4 + 27 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 27 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 29 31 33 35 37 39 41 43 45 47 49 4 + 27 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 29 31 33 35 37 39 41 43 45 47 49 4 @@ -582,11 +578,11 @@ BICOMP - 29 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 31 33 35 37 39 41 43 45 47 49 4 + 29 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 29 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 31 33 35 37 39 41 43 45 47 49 4 + 29 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 31 33 35 37 39 41 43 45 47 49 4 @@ -605,11 +601,11 @@ BICOMP - 31 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 33 35 37 39 41 43 45 47 49 4 + 31 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 33 35 37 39 41 43 45 47 49 4 ICCARM - 31 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 33 35 37 39 41 43 45 47 49 4 + 31 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 33 35 37 39 41 43 45 47 49 4 @@ -628,11 +624,11 @@ BICOMP - 33 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 35 37 39 41 43 45 47 49 4 + 33 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 35 37 39 41 43 45 47 49 4 ICCARM - 33 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 35 37 39 41 43 45 47 49 4 + 33 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 35 37 39 41 43 45 47 49 4 @@ -651,11 +647,11 @@ BICOMP - 35 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 37 39 41 43 45 47 49 4 + 35 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 37 39 41 43 45 47 49 4 ICCARM - 35 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 37 39 41 43 45 47 49 4 + 35 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 37 39 41 43 45 47 49 4 @@ -674,11 +670,11 @@ BICOMP - 37 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 39 41 43 45 47 49 4 + 37 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 39 41 43 45 47 49 4 ICCARM - 37 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 39 41 43 45 47 49 4 + 37 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 39 41 43 45 47 49 4 @@ -697,11 +693,11 @@ BICOMP - 39 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 41 43 45 47 49 4 + 39 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 41 43 45 47 49 4 ICCARM - 39 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 41 43 45 47 49 4 + 39 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 41 43 45 47 49 4 @@ -720,11 +716,11 @@ BICOMP - 41 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 43 45 47 49 4 + 41 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 43 45 47 49 4 ICCARM - 41 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 43 45 47 49 4 + 41 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 43 45 47 49 4 @@ -743,11 +739,11 @@ BICOMP - 43 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 45 47 49 4 + 43 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 45 47 49 4 ICCARM - 43 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 45 47 49 4 + 43 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 45 47 49 4 @@ -766,11 +762,11 @@ BICOMP - 45 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 47 49 4 + 45 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 47 49 4 ICCARM - 45 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 47 49 4 + 45 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 47 49 4 @@ -789,11 +785,11 @@ BICOMP - 47 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 49 4 + 47 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 49 4 ICCARM - 47 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 49 4 + 47 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 49 4 @@ -812,11 +808,11 @@ BICOMP - 49 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 4 + 49 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 4 ICCARM - 49 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 4 + 49 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 4 @@ -835,11 +831,11 @@ BICOMP - 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 ICCARM - 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 + 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -867,11 +863,11 @@ BICOMP - 53 98 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 @@ -890,11 +886,11 @@ BICOMP - 53 98 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 @@ -913,11 +909,11 @@ BICOMP - 53 98 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 @@ -936,11 +932,11 @@ BICOMP - 53 98 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 @@ -959,11 +955,11 @@ BICOMP - 53 98 1 3 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 55 57 60 @@ -982,7 +978,7 @@ ICCARM - 53 98 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 92 55 57 60 + 53 98 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 92 55 57 60 @@ -1004,13 +1000,13 @@ ICCARM - 69 219 + 67 219 ICCARM - 126 124 129 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 122 + 126 124 129 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 122 @@ -1057,7 +1053,7 @@ ICCARM - 126 124 129 1 3 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 122 + 126 124 129 2 1 174 176 161 128 178 158 87 132 198 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 122 @@ -1066,7 +1062,7 @@ ILINK - 175 81 160 67 77 62 78 73 164 165 167 72 138 140 141 142 125 137 168 76 244 133 134 245 201 147 199 202 206 247 135 108 89 + 175 81 160 68 77 62 78 73 164 165 167 72 138 140 141 142 125 137 168 76 244 133 134 245 201 147 199 202 206 247 135 108 89 @@ -1075,7 +1071,7 @@ BILINK - 75 200 74 90 157 203 204 205 182 159 143 144 145 226 146 136 70 88 180 183 181 162 179 177 173 163 139 184 + 75 200 74 90 157 203 204 205 182 159 143 144 145 226 146 136 66 88 180 183 181 162 179 177 173 163 139 184 @@ -1090,7 +1086,7 @@ ILINK - 175 251 66 79 248 250 249 68 246 65 71 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 + 175 251 70 79 248 250 249 65 246 71 69 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 @@ -1105,7 +1101,7 @@ ILINK - 175 251 66 79 248 250 249 68 246 65 71 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 + 175 251 70 79 248 250 249 65 246 71 69 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 @@ -1124,7 +1120,7 @@ ILINK - 175 66 79 248 250 249 68 246 65 71 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 + 175 70 79 248 250 249 65 246 71 69 64 63 187 186 188 105 106 80 207 208 209 210 211 212 213 214 215 216 217 218 190 189 247 135 108 89 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/irq.c index a5cd3cd8..3db14f5d 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/irq.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_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 ****************************************************************************************/ /**************************************************************************************** @@ -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_IAR/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/irq.h index 9f12faf4..5932562b 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/irq.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_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 IRQ_H #define IRQ_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/led.c index d4d4a557..cd228ecc 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/led.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_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 ****************************************************************************************/ /**************************************************************************************** @@ -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_IAR/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/led.h index f69b6a44..a230f80e 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/led.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_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 LED_H #define LED_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/main.c index 9a90513b..5917681c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_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,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) @@ -63,11 +63,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_STM32_Olimex_STM32H103_IAR/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/prog.dox new file mode 100644 index 00000000..ad73adab --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM3_STM32_Olimex_STM32H103_IAR User Program +\brief User Program. +\ingroup ARMCM3_STM32_Olimex_STM32H103_IAR +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/timer.c index 99b3dc42..d5ca332f 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/timer.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_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 ****************************************************************************************/ /**************************************************************************************** @@ -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_IAR/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/timer.h index b2f160c6..b4a61b25 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/timer.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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) 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\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_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 TIMER_H #define TIMER_H diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/vectors.c index dafcbbad..042e4b5a 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/Prog/vectors.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_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_STM32_Olimex_STM32H103_IAR\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_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 ****************************************************************************************/ /**************************************************************************************** @@ -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 */ @@ -161,6 +163,6 @@ __root const tIsrFunc __vector_table[] @ ".intvec" = }; -/************************************ end of hw.c **************************************/ +/************************************ end of vectors.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/demo.dox new file mode 100644 index 00000000..6c5fa604 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32H103_IAR/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM3_STM32_Olimex_STM32H103_IAR Demo for Olimex STM32-H103/IAR +\brief Preconfigured programs for the Olimex STM32-H103 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_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf index 1511b9f0..e413d31b 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.elf differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.map index 8dd18db5..8913cef1 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.map +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.map @@ -1091,7 +1091,7 @@ FLASH 0x08000000 0x00006000 xr Linker script and memory map - 0x0800499c __do_debug_operation = __do_debug_operation_mempoll + 0x08004990 __do_debug_operation = __do_debug_operation_mempoll 0x20000000 __SRAM_segment_start__ = 0x20000000 0x20002000 __SRAM_segment_end__ = 0x20002000 0x08000000 __FLASH_segment_start__ = 0x8000000 @@ -1136,7 +1136,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 0x46f4 +.text 0x080002e8 0x46e8 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 @@ -1297,193 +1297,193 @@ Linker script and memory map .text.FlashSwitchBlock 0x08001698 0x50 THUMB Debug/../../obj/flash.o .text.FlashAddToBlock - 0x080016e8 0xa0 THUMB Debug/../../obj/flash.o + 0x080016e8 0x94 THUMB Debug/../../obj/flash.o .text.FlashInit - 0x08001788 0x1c THUMB Debug/../../obj/flash.o - 0x08001788 FlashInit + 0x0800177c 0x1c THUMB Debug/../../obj/flash.o + 0x0800177c FlashInit .text.FlashWrite - 0x080017a4 0x58 THUMB Debug/../../obj/flash.o - 0x080017a4 FlashWrite + 0x08001798 0x58 THUMB Debug/../../obj/flash.o + 0x08001798 FlashWrite .text.FlashErase - 0x080017fc 0x140 THUMB Debug/../../obj/flash.o - 0x080017fc FlashErase + 0x080017f0 0x140 THUMB Debug/../../obj/flash.o + 0x080017f0 FlashErase .text.FlashWriteChecksum - 0x0800193c 0x5c THUMB Debug/../../obj/flash.o - 0x0800193c FlashWriteChecksum + 0x08001930 0x5c THUMB Debug/../../obj/flash.o + 0x08001930 FlashWriteChecksum .text.FlashVerifyChecksum - 0x08001998 0x68 THUMB Debug/../../obj/flash.o - 0x08001998 FlashVerifyChecksum + 0x0800198c 0x68 THUMB Debug/../../obj/flash.o + 0x0800198c FlashVerifyChecksum .text.FlashDone - 0x08001a00 0x58 THUMB Debug/../../obj/flash.o - 0x08001a00 FlashDone + 0x080019f4 0x58 THUMB Debug/../../obj/flash.o + 0x080019f4 FlashDone .text.AssertFailure - 0x08001a58 0x1c THUMB Debug/../../obj/assert.o - 0x08001a58 AssertFailure + 0x08001a4c 0x1c THUMB Debug/../../obj/assert.o + 0x08001a4c AssertFailure .text.BackDoorCheck - 0x08001a74 0x50 THUMB Debug/../../obj/backdoor.o - 0x08001a74 BackDoorCheck + 0x08001a68 0x50 THUMB Debug/../../obj/backdoor.o + 0x08001a68 BackDoorCheck .text.BackDoorInit - 0x08001ac4 0x28 THUMB Debug/../../obj/backdoor.o - 0x08001ac4 BackDoorInit + 0x08001ab8 0x28 THUMB Debug/../../obj/backdoor.o + 0x08001ab8 BackDoorInit .text.BootInit - 0x08001aec 0x20 THUMB Debug/../../obj/boot.o - 0x08001aec BootInit + 0x08001ae0 0x20 THUMB Debug/../../obj/boot.o + 0x08001ae0 BootInit .text.BootTask - 0x08001b0c 0x1c THUMB Debug/../../obj/boot.o - 0x08001b0c BootTask - .text.ComInit 0x08001b28 0x34 THUMB Debug/../../obj/com.o - 0x08001b28 ComInit - .text.ComTask 0x08001b5c 0x24 THUMB Debug/../../obj/com.o - 0x08001b5c ComTask - .text.ComFree 0x08001b80 0x4 THUMB Debug/../../obj/com.o - 0x08001b80 ComFree + 0x08001b00 0x1c THUMB Debug/../../obj/boot.o + 0x08001b00 BootTask + .text.ComInit 0x08001b1c 0x34 THUMB Debug/../../obj/com.o + 0x08001b1c ComInit + .text.ComTask 0x08001b50 0x24 THUMB Debug/../../obj/com.o + 0x08001b50 ComTask + .text.ComFree 0x08001b74 0x4 THUMB Debug/../../obj/com.o + 0x08001b74 ComFree .text.ComTransmitPacket - 0x08001b84 0x10 THUMB Debug/../../obj/com.o - 0x08001b84 ComTransmitPacket + 0x08001b78 0x10 THUMB Debug/../../obj/com.o + 0x08001b78 ComTransmitPacket .text.ComSetConnectEntryState - 0x08001b94 0x10 THUMB Debug/../../obj/com.o - 0x08001b94 ComSetConnectEntryState + 0x08001b88 0x10 THUMB Debug/../../obj/com.o + 0x08001b88 ComSetConnectEntryState .text.ComIsConnected - 0x08001ba4 0xc THUMB Debug/../../obj/com.o - 0x08001ba4 ComIsConnected - .text.CopInit 0x08001bb0 0x4 THUMB Debug/../../obj/cop.o - 0x08001bb0 CopInit + 0x08001b98 0xc THUMB Debug/../../obj/com.o + 0x08001b98 ComIsConnected + .text.CopInit 0x08001ba4 0x4 THUMB Debug/../../obj/cop.o + 0x08001ba4 CopInit .text.CopService - 0x08001bb4 0x4 THUMB Debug/../../obj/cop.o - 0x08001bb4 CopService + 0x08001ba8 0x4 THUMB Debug/../../obj/cop.o + 0x08001ba8 CopService .text.XcpProtectResources - 0x08001bb8 0x10 THUMB Debug/../../obj/xcp.o + 0x08001bac 0x10 THUMB Debug/../../obj/xcp.o .text.XcpSetCtoError - 0x08001bc8 0x1c THUMB Debug/../../obj/xcp.o - .text.XcpInit 0x08001be4 0x20 THUMB Debug/../../obj/xcp.o - 0x08001be4 XcpInit + 0x08001bbc 0x1c THUMB Debug/../../obj/xcp.o + .text.XcpInit 0x08001bd8 0x20 THUMB Debug/../../obj/xcp.o + 0x08001bd8 XcpInit .text.XcpIsConnected - 0x08001c04 0x14 THUMB Debug/../../obj/xcp.o - 0x08001c04 XcpIsConnected + 0x08001bf8 0x14 THUMB Debug/../../obj/xcp.o + 0x08001bf8 XcpIsConnected .text.XcpPacketTransmitted - 0x08001c18 0x14 THUMB Debug/../../obj/xcp.o - 0x08001c18 XcpPacketTransmitted + 0x08001c0c 0x14 THUMB Debug/../../obj/xcp.o + 0x08001c0c XcpPacketTransmitted .text.XcpPacketReceived - 0x08001c2c 0x3c4 THUMB Debug/../../obj/xcp.o - 0x08001c2c XcpPacketReceived - .text.mem_cpy 0x08001ff0 0x10 THUMB Debug/../../obj/ff.o - .text.mem_set 0x08002000 0xc THUMB Debug/../../obj/ff.o - .text.chk_chr 0x0800200c 0x18 THUMB Debug/../../obj/ff.o + 0x08001c20 0x3c4 THUMB Debug/../../obj/xcp.o + 0x08001c20 XcpPacketReceived + .text.mem_cpy 0x08001fe4 0x10 THUMB Debug/../../obj/ff.o + .text.mem_set 0x08001ff4 0xc THUMB Debug/../../obj/ff.o + .text.chk_chr 0x08002000 0x18 THUMB Debug/../../obj/ff.o .text.ld_clust - 0x08002024 0x20 THUMB Debug/../../obj/ff.o + 0x08002018 0x20 THUMB Debug/../../obj/ff.o .text.st_clust - 0x08002044 0x18 THUMB Debug/../../obj/ff.o - .text.sum_sfn 0x0800205c 0x24 THUMB Debug/../../obj/ff.o + 0x08002038 0x18 THUMB Debug/../../obj/ff.o + .text.sum_sfn 0x08002050 0x24 THUMB Debug/../../obj/ff.o .text.validate - 0x08002080 0x4c THUMB Debug/../../obj/ff.o + 0x08002074 0x4c THUMB Debug/../../obj/ff.o .text.check_fs - 0x080020cc 0xa4 THUMB Debug/../../obj/ff.o + 0x080020c0 0xa4 THUMB Debug/../../obj/ff.o .text.chk_mounted - 0x08002170 0x3f4 THUMB Debug/../../obj/ff.o + 0x08002164 0x3f4 THUMB Debug/../../obj/ff.o .text.get_fileinfo - 0x08002564 0x148 THUMB Debug/../../obj/ff.o + 0x08002558 0x148 THUMB Debug/../../obj/ff.o .text.sync_window - 0x080026ac 0x88 THUMB Debug/../../obj/ff.o + 0x080026a0 0x88 THUMB Debug/../../obj/ff.o .text.move_window - 0x08002734 0x3c THUMB Debug/../../obj/ff.o - .text.sync_fs 0x08002770 0xd4 THUMB Debug/../../obj/ff.o + 0x08002728 0x3c THUMB Debug/../../obj/ff.o + .text.sync_fs 0x08002764 0xd4 THUMB Debug/../../obj/ff.o .text.clust2sect - 0x08002844 0x20 THUMB Debug/../../obj/ff.o - 0x08002844 clust2sect - .text.get_fat 0x08002864 0xfc THUMB Debug/../../obj/ff.o - 0x08002864 get_fat - .text.dir_sdi 0x08002960 0xac THUMB Debug/../../obj/ff.o - .text.put_fat 0x08002a0c 0x118 THUMB Debug/../../obj/ff.o - 0x08002a0c put_fat + 0x08002838 0x20 THUMB Debug/../../obj/ff.o + 0x08002838 clust2sect + .text.get_fat 0x08002858 0xfc THUMB Debug/../../obj/ff.o + 0x08002858 get_fat + .text.dir_sdi 0x08002954 0xac THUMB Debug/../../obj/ff.o + .text.put_fat 0x08002a00 0x118 THUMB Debug/../../obj/ff.o + 0x08002a00 put_fat .text.create_chain - 0x08002b24 0xc8 THUMB Debug/../../obj/ff.o + 0x08002b18 0xc8 THUMB Debug/../../obj/ff.o .text.dir_next - 0x08002bec 0x150 THUMB Debug/../../obj/ff.o + 0x08002be0 0x150 THUMB Debug/../../obj/ff.o .text.dir_find - 0x08002d3c 0x184 THUMB Debug/../../obj/ff.o + 0x08002d30 0x184 THUMB Debug/../../obj/ff.o .text.follow_path - 0x08002ec0 0x320 THUMB Debug/../../obj/ff.o + 0x08002eb4 0x320 THUMB Debug/../../obj/ff.o .text.dir_remove - 0x080031e0 0x54 THUMB Debug/../../obj/ff.o + 0x080031d4 0x54 THUMB Debug/../../obj/ff.o .text.dir_read - 0x08003234 0x144 THUMB Debug/../../obj/ff.o + 0x08003228 0x144 THUMB Debug/../../obj/ff.o .text.remove_chain - 0x08003378 0x88 THUMB Debug/../../obj/ff.o + 0x0800336c 0x88 THUMB Debug/../../obj/ff.o .text.gen_numname - 0x08003400 0xb0 THUMB Debug/../../obj/ff.o - 0x08003400 gen_numname + 0x080033f4 0xb0 THUMB Debug/../../obj/ff.o + 0x080033f4 gen_numname .text.dir_register - 0x080034b0 0x238 THUMB Debug/../../obj/ff.o - .text.f_mount 0x080036e8 0x34 THUMB Debug/../../obj/ff.o - 0x080036e8 f_mount - .text.f_open 0x0800371c 0x188 THUMB Debug/../../obj/ff.o - 0x0800371c f_open - .text.f_read 0x080038a4 0x1c0 THUMB Debug/../../obj/ff.o - 0x080038a4 f_read - .text.f_write 0x08003a64 0x200 THUMB Debug/../../obj/ff.o - 0x08003a64 f_write - .text.f_sync 0x08003c64 0xa8 THUMB Debug/../../obj/ff.o - 0x08003c64 f_sync - .text.f_close 0x08003d0c 0x14 THUMB Debug/../../obj/ff.o - 0x08003d0c f_close - .text.f_lseek 0x08003d20 0x1b8 THUMB Debug/../../obj/ff.o - 0x08003d20 f_lseek - .text.f_stat 0x08003ed8 0x50 THUMB Debug/../../obj/ff.o - 0x08003ed8 f_stat + 0x080034a4 0x238 THUMB Debug/../../obj/ff.o + .text.f_mount 0x080036dc 0x34 THUMB Debug/../../obj/ff.o + 0x080036dc f_mount + .text.f_open 0x08003710 0x188 THUMB Debug/../../obj/ff.o + 0x08003710 f_open + .text.f_read 0x08003898 0x1c0 THUMB Debug/../../obj/ff.o + 0x08003898 f_read + .text.f_write 0x08003a58 0x200 THUMB Debug/../../obj/ff.o + 0x08003a58 f_write + .text.f_sync 0x08003c58 0xa8 THUMB Debug/../../obj/ff.o + 0x08003c58 f_sync + .text.f_close 0x08003d00 0x14 THUMB Debug/../../obj/ff.o + 0x08003d00 f_close + .text.f_lseek 0x08003d14 0x1b8 THUMB Debug/../../obj/ff.o + 0x08003d14 f_lseek + .text.f_stat 0x08003ecc 0x50 THUMB Debug/../../obj/ff.o + 0x08003ecc f_stat .text.f_unlink - 0x08003f28 0xbc THUMB Debug/../../obj/ff.o - 0x08003f28 f_unlink - .text.f_gets 0x08003fe4 0x5c THUMB Debug/../../obj/ff.o - 0x08003fe4 f_gets - .text.f_putc 0x08004040 0x38 THUMB Debug/../../obj/ff.o - 0x08004040 f_putc - .text.f_puts 0x08004078 0x38 THUMB Debug/../../obj/ff.o - 0x08004078 f_puts + 0x08003f1c 0xbc THUMB Debug/../../obj/ff.o + 0x08003f1c f_unlink + .text.f_gets 0x08003fd8 0x5c THUMB Debug/../../obj/ff.o + 0x08003fd8 f_gets + .text.f_putc 0x08004034 0x38 THUMB Debug/../../obj/ff.o + 0x08004034 f_putc + .text.f_puts 0x0800406c 0x38 THUMB Debug/../../obj/ff.o + 0x0800406c f_puts .text.ff_convert - 0x080040b0 0x58 THUMB Debug/../../obj/unicode.o - 0x080040b0 ff_convert + 0x080040a4 0x58 THUMB Debug/../../obj/unicode.o + 0x080040a4 ff_convert .text.ff_wtoupper - 0x08004108 0x38 THUMB Debug/../../obj/unicode.o - 0x08004108 ff_wtoupper + 0x080040fc 0x38 THUMB Debug/../../obj/unicode.o + 0x080040fc ff_wtoupper .text.FileLibLongToIntString - 0x08004140 0x54 THUMB Debug/../../obj/file.o + 0x08004134 0x54 THUMB Debug/../../obj/file.o .text.FileLibHexStringToByte - 0x08004194 0x50 THUMB Debug/../../obj/file.o + 0x08004188 0x50 THUMB Debug/../../obj/file.o .text.FileLibByteNibbleToChar - 0x080041e4 0x24 THUMB Debug/../../obj/file.o + 0x080041d8 0x24 THUMB Debug/../../obj/file.o .text.FileLibByteToHexString - 0x08004208 0x24 THUMB Debug/../../obj/file.o + 0x080041fc 0x24 THUMB Debug/../../obj/file.o .text.SrecParseLine - 0x0800422c 0x214 THUMB Debug/../../obj/file.o + 0x08004220 0x214 THUMB Debug/../../obj/file.o .text.FileInit - 0x08004440 0x34 THUMB Debug/../../obj/file.o - 0x08004440 FileInit + 0x08004434 0x34 THUMB Debug/../../obj/file.o + 0x08004434 FileInit .text.FileIsIdle - 0x08004474 0x14 THUMB Debug/../../obj/file.o - 0x08004474 FileIsIdle + 0x08004468 0x14 THUMB Debug/../../obj/file.o + 0x08004468 FileIsIdle .text.FileHandleFirmwareUpdateRequest - 0x08004488 0x44 THUMB Debug/../../obj/file.o - 0x08004488 FileHandleFirmwareUpdateRequest + 0x0800447c 0x44 THUMB Debug/../../obj/file.o + 0x0800447c FileHandleFirmwareUpdateRequest .text.FileTask - 0x080044cc 0x4b0 THUMB Debug/../../obj/file.o - 0x080044cc FileTask + 0x080044c0 0x4b0 THUMB Debug/../../obj/file.o + 0x080044c0 FileTask .text.libc.isdigit - 0x0800497c 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) - 0x0800497c isdigit + 0x08004970 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) + 0x08004970 isdigit .text.libc.toupper - 0x0800498c 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) - 0x0800498c toupper + 0x08004980 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) + 0x08004980 toupper .text.libdebugio.__do_debug_operation_mempoll - 0x0800499c 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) - 0x0800499c __do_debug_operation_mempoll + 0x08004990 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) + 0x08004990 __do_debug_operation_mempoll .text.libc.__debug_io_lock - 0x080049d4 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o) - 0x080049d4 __debug_io_lock + 0x080049c8 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o) + 0x080049c8 __debug_io_lock .text.libc.__debug_io_unlock - 0x080049d8 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o) - 0x080049d8 __debug_io_unlock - 0x080049dc __text_end__ = (__text_start__ + SIZEOF (.text)) - 0x080049dc __text_load_end__ = __text_end__ + 0x080049cc 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7m_t_le.a(user_libc.o) + 0x080049cc __debug_io_unlock + 0x080049d0 __text_end__ = (__text_start__ + SIZEOF (.text)) + 0x080049d0 __text_load_end__ = __text_end__ .vfp11_veneer 0x00000000 0x0 .vfp11_veneer 0x00000000 0x0 linker stubs @@ -1491,86 +1491,86 @@ 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) - 0x080049dc __dtors_load_start__ = ALIGN (__text_end__, 0x4) + 0x080049d0 __dtors_load_start__ = ALIGN (__text_end__, 0x4) -.dtors 0x080049dc 0x0 - 0x080049dc __dtors_start__ = . +.dtors 0x080049d0 0x0 + 0x080049d0 __dtors_start__ = . *(SORT(.dtors.*)) *(.dtors) *(.fini_array .fini_array.*) - 0x080049dc __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) - 0x080049dc __dtors_load_end__ = __dtors_end__ + 0x080049d0 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) + 0x080049d0 __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) - 0x080049dc __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) + 0x080049d0 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) -.ctors 0x080049dc 0x0 - 0x080049dc __ctors_start__ = . +.ctors 0x080049d0 0x0 + 0x080049d0 __ctors_start__ = . *(SORT(.ctors.*)) *(.ctors) *(.init_array .init_array.*) - 0x080049dc __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) - 0x080049dc __ctors_load_end__ = __ctors_end__ + 0x080049d0 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) + 0x080049d0 __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) - 0x080049dc __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) + 0x080049d0 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) -.rodata 0x080049dc 0x9c4 - 0x080049dc __rodata_start__ = . +.rodata 0x080049d0 0x9c4 + 0x080049d0 __rodata_start__ = . *(.rodata .rodata.* .gnu.linkonce.r.*) .rodata.firmwareFilename - 0x080049dc 0x20 THUMB Debug/../../obj/hooks.o + 0x080049d0 0x20 THUMB Debug/../../obj/hooks.o .rodata.str1.4 - 0x080049fc 0xd THUMB Debug/../../obj/hooks.o + 0x080049f0 0xd THUMB Debug/../../obj/hooks.o 0x10 (size before relaxing) - *fill* 0x08004a09 0x3 00 + *fill* 0x080049fd 0x3 00 .rodata.str1.4 - 0x08004a0c 0x61 THUMB Debug/../../obj/main.o + 0x08004a00 0x61 THUMB Debug/../../obj/main.o 0x64 (size before relaxing) - *fill* 0x08004a6d 0x3 00 + *fill* 0x08004a61 0x3 00 .rodata.str1.4 - 0x08004a70 0x8c THUMB Debug/../../obj/vectors.o + 0x08004a64 0x8c THUMB Debug/../../obj/vectors.o .rodata.str1.4 - 0x08004afc 0x7e THUMB Debug/../../obj/uart.o + 0x08004af0 0x7e THUMB Debug/../../obj/uart.o 0x80 (size before relaxing) - *fill* 0x08004b7a 0x2 00 + *fill* 0x08004b6e 0x2 00 .rodata.flashLayout - 0x08004b7c 0x9c THUMB Debug/../../obj/flash.o + 0x08004b70 0x9c THUMB Debug/../../obj/flash.o .rodata.xcpStationId - 0x08004c18 0x8 THUMB Debug/../../obj/xcp.o + 0x08004c0c 0x8 THUMB Debug/../../obj/xcp.o .rodata.str1.4 - 0x08004c20 0x13 THUMB Debug/../../obj/ff.o + 0x08004c14 0x13 THUMB Debug/../../obj/ff.o 0x14 (size before relaxing) - *fill* 0x08004c33 0x1 00 - .rodata.ExCvt 0x08004c34 0x80 THUMB Debug/../../obj/ff.o + *fill* 0x08004c27 0x1 00 + .rodata.ExCvt 0x08004c28 0x80 THUMB Debug/../../obj/ff.o .rodata.LfnOfs - 0x08004cb4 0x10 THUMB Debug/../../obj/ff.o + 0x08004ca8 0x10 THUMB Debug/../../obj/ff.o .rodata.tbl_upper.984 - 0x08004cc4 0x1e0 THUMB Debug/../../obj/unicode.o + 0x08004cb8 0x1e0 THUMB Debug/../../obj/unicode.o .rodata.tbl_lower.983 - 0x08004ea4 0x1e0 THUMB Debug/../../obj/unicode.o - .rodata.Tbl 0x08005084 0x100 THUMB Debug/../../obj/unicode.o + 0x08004e98 0x1e0 THUMB Debug/../../obj/unicode.o + .rodata.Tbl 0x08005078 0x100 THUMB Debug/../../obj/unicode.o .rodata.str1.4 - 0x08005184 0x21c THUMB Debug/../../obj/file.o + 0x08005178 0x21c THUMB Debug/../../obj/file.o 0x220 (size before relaxing) - 0x080053a0 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) - 0x080053a0 __rodata_load_end__ = __rodata_end__ + 0x08005394 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) + 0x08005394 __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) - 0x080053a0 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) + 0x08005394 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) -.ARM.exidx 0x080053a0 0x0 - 0x080053a0 __ARM.exidx_start__ = . - 0x080053a0 __exidx_start = __ARM.exidx_start__ +.ARM.exidx 0x08005394 0x0 + 0x08005394 __ARM.exidx_start__ = . + 0x08005394 __exidx_start = __ARM.exidx_start__ *(.ARM.exidx .ARM.exidx.*) - 0x080053a0 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) - 0x080053a0 __exidx_end = __ARM.exidx_end__ - 0x080053a0 __ARM.exidx_load_end__ = __ARM.exidx_end__ + 0x08005394 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) + 0x08005394 __exidx_end = __ARM.exidx_end__ + 0x08005394 __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) - 0x080053a0 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) + 0x08005394 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) -.fast 0x20000000 0x0 load address 0x080053a0 +.fast 0x20000000 0x0 load address 0x08005394 0x20000000 __fast_start__ = . *(.fast .fast.*) 0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast)) - 0x080053a0 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) + 0x08005394 __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 @@ -1579,17 +1579,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) - 0x080053a0 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) + 0x08005394 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) -.data 0x20000000 0x1 load address 0x080053a0 +.data 0x20000000 0x1 load address 0x08005394 0x20000000 __data_start__ = . *(.data .data.* .gnu.linkonce.d.*) .data.Stat 0x20000000 0x1 THUMB Debug/../../obj/mmc.o 0x20000001 __data_end__ = (__data_start__ + SIZEOF (.data)) - 0x080053a1 __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) + 0x08005395 __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 0x080053a0 +.data_run 0x20000000 0x1 load address 0x08005394 0x20000000 __data_run_start__ = . 0x20000001 . = MAX ((__data_run_start__ + SIZEOF (.data)), .) *fill* 0x20000000 0x1 00 @@ -1604,8 +1604,7 @@ Linker script and memory map .bss.logfile 0x20000004 0x228 THUMB Debug/../../obj/hooks.o .bss.CardType 0x2000022c 0x4 THUMB Debug/../../obj/mmc.o .bss.millisecond_counter - 0x20000230 0x2 THUMB Debug/../../obj/timer.o - *fill* 0x20000232 0x2 00 + 0x20000230 0x4 THUMB Debug/../../obj/timer.o .bss.xcpCtoReqPacket.1110 0x20000234 0x44 THUMB Debug/../../obj/uart.o .bss.xcpCtoRxLength.1111 @@ -1701,14 +1700,14 @@ Linker script and memory map 0x200011dc __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) 0x200011dc __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) - 0x080053a4 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + 0x08005398 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) -.tdata 0x200011dc 0x0 load address 0x080053a4 +.tdata 0x200011dc 0x0 load address 0x08005398 0x200011dc __tdata_start__ = . *(.tdata .tdata.*) 0x200011dc __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) - 0x080053a4 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) - 0x080053a4 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) + 0x08005398 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) + 0x08005398 __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 0x200011dc 0x0 @@ -1802,15 +1801,15 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_info 0x00004275 0x65 THUMB Debug/../../obj/can.o .debug_info 0x000042da 0x145 THUMB Debug/../../obj/cpu.o .debug_info 0x0000441f 0x169 THUMB Debug/../../obj/nvm.o - .debug_info 0x00004588 0x129 THUMB Debug/../../obj/timer.o - .debug_info 0x000046b1 0x294 THUMB Debug/../../obj/uart.o - .debug_info 0x00004945 0x678 THUMB Debug/../../obj/flash.o - .debug_info 0x00004fbd 0xef THUMB Debug/../../obj/assert.o - .debug_info 0x000050ac 0xcb THUMB Debug/../../obj/backdoor.o - .debug_info 0x00005177 0x93 THUMB Debug/../../obj/boot.o - .debug_info 0x0000520a 0x1bf THUMB Debug/../../obj/com.o - .debug_info 0x000053c9 0x91 THUMB Debug/../../obj/cop.o - .debug_info 0x0000545a 0x616 THUMB Debug/../../obj/xcp.o + .debug_info 0x00004588 0x11e THUMB Debug/../../obj/timer.o + .debug_info 0x000046a6 0x294 THUMB Debug/../../obj/uart.o + .debug_info 0x0000493a 0x67d THUMB Debug/../../obj/flash.o + .debug_info 0x00004fb7 0xef THUMB Debug/../../obj/assert.o + .debug_info 0x000050a6 0xcb THUMB Debug/../../obj/backdoor.o + .debug_info 0x00005171 0x93 THUMB Debug/../../obj/boot.o + .debug_info 0x00005204 0x1bf THUMB Debug/../../obj/com.o + .debug_info 0x000053c3 0x91 THUMB Debug/../../obj/cop.o + .debug_info 0x00005454 0x61c THUMB Debug/../../obj/xcp.o .debug_info 0x00005a70 0x2054 THUMB Debug/../../obj/ff.o .debug_info 0x00007ac4 0x160 THUMB Debug/../../obj/unicode.o .debug_info 0x00007c24 0x7db THUMB Debug/../../obj/file.o @@ -1818,7 +1817,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_info 0x00009062 0x51f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) .debug_info 0x00009581 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 0x1f9a +.debug_abbrev 0x00000000 0x1f43 .debug_abbrev 0x00000000 0x19f THUMB Debug/../../obj/hooks.o .debug_abbrev 0x0000019f 0x109 THUMB Debug/../../obj/main.o .debug_abbrev 0x000002a8 0xa9 THUMB Debug/../../obj/core_cm3.o @@ -1835,21 +1834,21 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_abbrev 0x0000109f 0xa5 THUMB Debug/../../obj/nvm.o .debug_abbrev 0x00001144 0xbb THUMB Debug/../../obj/timer.o .debug_abbrev 0x000011ff 0x133 THUMB Debug/../../obj/uart.o - .debug_abbrev 0x00001332 0x229 THUMB Debug/../../obj/flash.o - .debug_abbrev 0x0000155b 0x7e THUMB Debug/../../obj/assert.o - .debug_abbrev 0x000015d9 0x5d THUMB Debug/../../obj/backdoor.o - .debug_abbrev 0x00001636 0x41 THUMB Debug/../../obj/boot.o - .debug_abbrev 0x00001677 0xe2 THUMB Debug/../../obj/com.o - .debug_abbrev 0x00001759 0x41 THUMB Debug/../../obj/cop.o - .debug_abbrev 0x0000179a 0x1bc THUMB Debug/../../obj/xcp.o - .debug_abbrev 0x00001956 0x2c7 THUMB Debug/../../obj/ff.o - .debug_abbrev 0x00001c1d 0xa5 THUMB Debug/../../obj/unicode.o - .debug_abbrev 0x00001cc2 0x1db THUMB Debug/../../obj/file.o - .debug_abbrev 0x00001e9d 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) - .debug_abbrev 0x00001f3d 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) - .debug_abbrev 0x00001f75 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 0x00001332 0x1e3 THUMB Debug/../../obj/flash.o + .debug_abbrev 0x00001515 0x7e THUMB Debug/../../obj/assert.o + .debug_abbrev 0x00001593 0x5d THUMB Debug/../../obj/backdoor.o + .debug_abbrev 0x000015f0 0x41 THUMB Debug/../../obj/boot.o + .debug_abbrev 0x00001631 0xe2 THUMB Debug/../../obj/com.o + .debug_abbrev 0x00001713 0x41 THUMB Debug/../../obj/cop.o + .debug_abbrev 0x00001754 0x1ab THUMB Debug/../../obj/xcp.o + .debug_abbrev 0x000018ff 0x2c7 THUMB Debug/../../obj/ff.o + .debug_abbrev 0x00001bc6 0xa5 THUMB Debug/../../obj/unicode.o + .debug_abbrev 0x00001c6b 0x1db THUMB Debug/../../obj/file.o + .debug_abbrev 0x00001e46 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) + .debug_abbrev 0x00001ee6 0x38 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) + .debug_abbrev 0x00001f1e 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_loc 0x00000000 0x9335 +.debug_loc 0x00000000 0x9342 .debug_loc 0x00000000 0xdd THUMB Debug/../../obj/hooks.o .debug_loc 0x000000dd 0x82 THUMB Debug/../../obj/main.o .debug_loc 0x0000015f 0x2ae THUMB Debug/../../obj/core_cm3.o @@ -1864,17 +1863,17 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_loc 0x0000267e 0xff THUMB Debug/../../obj/nvm.o .debug_loc 0x0000277d 0x40 THUMB Debug/../../obj/timer.o .debug_loc 0x000027bd 0x120 THUMB Debug/../../obj/uart.o - .debug_loc 0x000028dd 0x6e9 THUMB Debug/../../obj/flash.o - .debug_loc 0x00002fc6 0x46 THUMB Debug/../../obj/assert.o - .debug_loc 0x0000300c 0x40 THUMB Debug/../../obj/backdoor.o - .debug_loc 0x0000304c 0x40 THUMB Debug/../../obj/boot.o - .debug_loc 0x0000308c 0xb2 THUMB Debug/../../obj/com.o - .debug_loc 0x0000313e 0x1dd THUMB Debug/../../obj/xcp.o - .debug_loc 0x0000331b 0x3fd3 THUMB Debug/../../obj/ff.o - .debug_loc 0x000072ee 0xdd THUMB Debug/../../obj/unicode.o - .debug_loc 0x000073cb 0x71d THUMB Debug/../../obj/file.o - .debug_loc 0x00007ae8 0x1059 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) - .debug_loc 0x00008b41 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) + .debug_loc 0x000028dd 0x6f6 THUMB Debug/../../obj/flash.o + .debug_loc 0x00002fd3 0x46 THUMB Debug/../../obj/assert.o + .debug_loc 0x00003019 0x40 THUMB Debug/../../obj/backdoor.o + .debug_loc 0x00003059 0x40 THUMB Debug/../../obj/boot.o + .debug_loc 0x00003099 0xb2 THUMB Debug/../../obj/com.o + .debug_loc 0x0000314b 0x1dd THUMB Debug/../../obj/xcp.o + .debug_loc 0x00003328 0x3fd3 THUMB Debug/../../obj/ff.o + .debug_loc 0x000072fb 0xdd THUMB Debug/../../obj/unicode.o + .debug_loc 0x000073d8 0x71d THUMB Debug/../../obj/file.o + .debug_loc 0x00007af5 0x1059 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) + .debug_loc 0x00008b4e 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) .debug_aranges 0x00000000 0x11f0 .debug_aranges @@ -1963,7 +1962,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_ranges 0x00000fe8 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) .debug_ranges 0x000011f0 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 0x4cfd +.debug_line 0x00000000 0x4cfa .debug_line 0x00000000 0x285 THUMB Debug/../../obj/hooks.o .debug_line 0x00000285 0x1f4 THUMB Debug/../../obj/main.o .debug_line 0x00000479 0x28f THUMB Debug/../../obj/core_cm3.o @@ -1980,19 +1979,19 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_line 0x0000223d 0x12d THUMB Debug/../../obj/nvm.o .debug_line 0x0000236a 0x119 THUMB Debug/../../obj/timer.o .debug_line 0x00002483 0x165 THUMB Debug/../../obj/uart.o - .debug_line 0x000025e8 0x2d2 THUMB Debug/../../obj/flash.o - .debug_line 0x000028ba 0xd6 THUMB Debug/../../obj/assert.o - .debug_line 0x00002990 0xf1 THUMB Debug/../../obj/backdoor.o - .debug_line 0x00002a81 0xbd THUMB Debug/../../obj/boot.o - .debug_line 0x00002b3e 0x153 THUMB Debug/../../obj/com.o - .debug_line 0x00002c91 0xb1 THUMB Debug/../../obj/cop.o - .debug_line 0x00002d42 0x1d4 THUMB Debug/../../obj/xcp.o - .debug_line 0x00002f16 0xdf9 THUMB Debug/../../obj/ff.o - .debug_line 0x00003d0f 0x183 THUMB Debug/../../obj/unicode.o - .debug_line 0x00003e92 0x2f4 THUMB Debug/../../obj/file.o - .debug_line 0x00004186 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) - .debug_line 0x00004739 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) - .debug_line 0x00004c89 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 0x000025e8 0x2cd THUMB Debug/../../obj/flash.o + .debug_line 0x000028b5 0xd6 THUMB Debug/../../obj/assert.o + .debug_line 0x0000298b 0xf1 THUMB Debug/../../obj/backdoor.o + .debug_line 0x00002a7c 0xbd THUMB Debug/../../obj/boot.o + .debug_line 0x00002b39 0x155 THUMB Debug/../../obj/com.o + .debug_line 0x00002c8e 0xb1 THUMB Debug/../../obj/cop.o + .debug_line 0x00002d3f 0x1d4 THUMB Debug/../../obj/xcp.o + .debug_line 0x00002f13 0xdf9 THUMB Debug/../../obj/ff.o + .debug_line 0x00003d0c 0x183 THUMB Debug/../../obj/unicode.o + .debug_line 0x00003e8f 0x2f4 THUMB Debug/../../obj/file.o + .debug_line 0x00004183 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le.a(libc2.o) + .debug_line 0x00004736 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7m_t_le.a(libdebugio.o) + .debug_line 0x00004c86 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 0x3911 .debug_str 0x00000000 0x4e6 THUMB Debug/../../obj/hooks.o @@ -2022,7 +2021,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossw .debug_str 0x00001d1a 0xb1 THUMB Debug/../../obj/nvm.o 0x1e6 (size before relaxing) .debug_str 0x00001dcb 0xd4 THUMB Debug/../../obj/timer.o - 0x1ee (size before relaxing) + 0x1e3 (size before relaxing) .debug_str 0x00001e9f 0x114 THUMB Debug/../../obj/uart.o 0x291 (size before relaxing) .debug_str 0x00001fb3 0x271 THUMB Debug/../../obj/flash.o diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.srec index 74b89afd..515d7c7e 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.srec +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/bin/openbtl_olimex_stm32p103.srec @@ -28,7 +28,7 @@ S315080001904E494F4A00F062F84E484F49002200F097 S315080001A068F84E484E49091A082903DB00220260FE S315080001B0043001603F484049884205D0026804304F S315080001C003B4904703BCF7E700208646EC4601F0E7 -S315080001D0E1FC00200021434A904772B62A498D4621 +S315080001D0DBFC00200021434A904772B62A498D4627 S315080001E02A482B492B4A00F039F82B482B492C4A28 S315080001F000F034F82B482C492C4A00F02FF82C48EC S315080002002C492D4A00F02AF82C482D492D4A00F091 @@ -39,32 +39,32 @@ S315080002400268043003B4904703BCF7E700208646EB S31508000250EC4600200021234A9047FEE7884207D053 S31508000260521A05D0037801300B700131013AF9D1E1 S315080002707047884202D002700130FAE770470000E2 -S3150800028008ED00E000000008DC110020A05300087B +S3150800028008ED00E000000008DC1100209453000887 S315080002900000002001000020E8020008E80200082B -S315080002A0DC490008A05300080000002000000020D8 -S315080002B0DC490008DC490008DC490008DC4900087C -S315080002C0DC490008DC490008DC490008DC4900086C -S315080002D0A0530008040000205C0F00205C0F0020DB +S315080002A0D0490008945300080000002000000020F0 +S315080002B0D0490008D0490008D0490008D0490008AC +S315080002C0D0490008D0490008D0490008D04900089C +S315080002D094530008040000205C0F00205C0F0020E7 S30D080002E0DC0F002045040008AC S315080002E800B588B04FF00003009301930293039377 -S315080002F8049305930693079344F6DC10C0F60000AA -S31508000308694603F0E5FD48B9009B53B19DF80830E6 +S315080002F8049305930693079344F6D010C0F60000B6 +S31508000308694603F0DFFD48B9009B53B19DF80830EC S3150800031813F0100F14BF0020012004E04FF000006E -S3150800032801E04FF0000008B000BD00BF44F6DC103D +S3150800032801E04FF0000008B000BD00BF44F6D01049 S31508000338C0F60000704700BF00B540F20400C2F2DC -S3150800034800004FF0000380F8243244F6FC11C0F68A -S3150800035800014FF00A0203F0DDF938B940F2040348 +S3150800034800004FF0000380F8243244F6F011C0F696 +S3150800035800014FF00A0203F0D7F938B940F204034E S31508000368C2F200034FF0010283F824225DF804FB69 S3150800037830B540F20403C2F2000393F82432012B85 -S3150800038805D140F20400C2F2000003F0BBFC4FF4AA +S3150800038805D140F20400C2F2000003F0B5FC4FF4B0 S315080003988844C4F200044FF040052046294600F078 -S315080003A80FFF0028F9D044F6DC10C0F6000003F069 -S315080003B8B7FD30BD00B540F20403C2F2000393F856 +S315080003A80FFF0028F9D044F6D010C0F6000003F075 +S315080003B8B1FD30BD00B540F20403C2F2000393F85C S315080003C82432012B05D140F20400C2F2000003F0E2 -S315080003D899FC5DF804FB00BF70B5064640F20403B5 +S315080003D893FC5DF804FB00BF70B5064640F20403BB S315080003E8C2F2000393F82432012B11D140F204011A -S315080003F8C2F2000103F03CFE002809DA40F20400C4 -S31508000408C2F200004FF0000380F8243203F07AFCA9 +S315080003F8C2F2000103F036FE002809DA40F20400CA +S31508000408C2F200004FF0000380F8243203F074FCAF S31508000418317891B14FF48844C4F200044FF080054E S31508000428204600F0C7FE2046294600F0C9FE0028E7 S31508000438F9D016F8011F0029F2D170BD00B582B0AF @@ -76,7 +76,7 @@ S315080004885A604FF41F029A601A6842F480321A605A S315080004984FF48053C4F2020340F2DC52196801F49F S315080004A800310191009901F101010091019911B9F1 S315080004B800999142F2D14FF48053C4F202031B68A3 -S315080004C813F4003F04D138484FF0760101F0C0FA1A +S315080004C813F4003F04D138484FF0730101F0BAFA23 S315080004D84FF40053C4F202031A6842F010021A6075 S315080004E81A6822F003021A601A6842F002021A60B1 S315080004F84FF48053C4F202035A685A605A6842F4A1 @@ -90,7 +90,7 @@ S315080005688053C4F20203DA6942F40032DA619A69FE S3150800057842F005029A614FF40063C4F201031A684F S3150800058822F470621A601A6842F430621A601A68AD S3150800059822F470421A601A6842F480421A6001F01E -S315080005A8A1FA01F0AFFAFCE70C4A000830B5C1B267 +S315080005A89BFA01F0A9FAFCE7004A000830B5C1B27F S315080005B84FF46050C4F2000000F0DCFD4FF46054BC S315080005C8C4F200044FF001052046294600F0EAFD6A S315080005D80028F9D04FF46050C4F2000000F0CEFDB0 @@ -285,42 +285,42 @@ S315080011987047038823F400534FEA03434FEA13437F S315080011A80380704703899BB219420CBF00200120AF S315080011B8704700BF4FEAC1514FEAD1518180704745 S315080011C803889BB219420CBF00200120704700BF54 -S315080011D800B544F67020C0F600004FF03C0100F058 -S315080011E837FC5DF804FB00BF00B500F041F880B194 -S315080011F800F0C2FC00F04EF84EF60853CEF2000393 +S315080011D800B544F66420C0F600004FF03D0100F063 +S315080011E831FC5DF804FB00BF00B500F041F880B19A +S315080011F800F0BCFC00F04EF84EF60853CEF2000399 S315080012084FF4C0421A6046F20403C0F600031B688E S3150800121898475DF804FB00BF70B50E4692B272B1E6 S31508001228044600F1010002F1FF3292B2851816F859 -S31508001238013B04F8013B00F0B9FCAC42F7D170BD9C +S31508001238013B04F8013B00F0B3FCAC42F7D170BDA2 S3150800124800B5FEF7C6FF5DF804FB00BF00B500F061 -S3150800125897FA5DF804FB00BF00B500F09FFA5DF841 -S3150800126804FB00BF00B500F0C5FA5DF804FB00BF33 -S3150800127800B500F08DFB5DF804FB00BF00B500F073 -S3150800128859FB18B100F0B8FB5DF804FB4FF00000F5 +S3150800125891FA5DF804FB00BF00B500F099FA5DF84D +S3150800126804FB00BF00B500F0BFFA5DF804FB00BF39 +S3150800127800B500F087FB5DF804FB00BF00B500F079 +S3150800128853FB18B100F0B2FB5DF804FB4FF0000001 S315080012985DF804FB4EF21003CEF200034FF000028D S315080012A81A60704700B5FFF7F5FF4EF21003CEF245 S315080012B8000341F63F12C0F201025A604FF00002DD S315080012C89A604FF00501196040F23023C2F2000314 -S315080012D81A805DF804FB00BF4EF21003CEF2000335 +S315080012D81A605DF804FB00BF4EF21003CEF2000355 S315080012E81B6813F4803F07D040F23023C2F200038C -S315080012F81A8802F101021A80704700BF00B5FFF785 -S31508001308EBFF40F23023C2F2000318885DF804FBAD +S315080012F81A6802F101021A60704700BF00B5FFF7C5 +S31508001308EBFF40F23023C2F2000318685DF804FBCD S315080013184FF48843C4F200031B8813F0200F08D043 S315080013284FF48843C4F200039B8803704FF001000A S3150800133870474FF00000704710B5C0B24FF48843A5 S31508001348C4F200031B8813F0800F15D04FF48843A6 S31508001358C4F2000398801B8813F0800F0FD14FF44E -S315080013688844C4F2000400F021FC238813F0800F97 +S315080013688844C4F2000400F01BFC238813F0800F9D S31508001378F9D04FF0010010BD4FF0000010BD4FF036 S31508001388010010BD4FF48843C4F200034FF0000271 S315080013981A819A811A829A821A8340F271221A81CC S315080013A89A8992B242F4005242F00C029A81704726 -S315080013B82DE9F0410546CCB2402C07D944F6FC2065 -S315080013C8C0F600004FF0880100F042FB2046FFF700 -S315080013D8B3FF012807D044F6FC20C0F600004FF0FA -S315080013E88B0100F035FB2646BCB14FF0000444F6E5 -S315080013F8FC27C0F600074FF0930800F0D7FB285DD6 -S31508001408FFF79AFF012803D03846414600F020FB2B +S315080013B82DE9F0410546CCB2402C07D944F6F02071 +S315080013C8C0F600004FF08D0100F03CFB2046FFF701 +S315080013D8B3FF012807D044F6F020C0F600004FF006 +S315080013E8900100F02FFB2646BCB14FF0000444F6E6 +S315080013F8F027C0F600074FF0980800F0D1FB285DE3 +S31508001408FFF79AFF012803D03846414600F01AFB31 S3150800141804F10104A3B2B342EFD3BDE8F08100BFDB S3150800142830B5054640F27923C2F200031B78B3B9F2 S3150800143840F23420C2F20000FFF76AFF01283BD1C8 @@ -336,9 +336,9 @@ S315080014C8000030BD4FF0000030BD00BF35020020D7 S315080014D84FF40053C4F2020340F22312C4F26752CF S315080014E85A6048F6AB12CCF6EF525A604FF03402FF S315080014F8DA6070474FF40053C4F202031A6942F0DF -S3150800150880021A61704700BF70B5064644F67C35F6 -S31508001518C0F600054FF0000400F048FB2B68B342FC -S315080015280DD869685B189E4209D244F67C33C0F622 +S3150800150880021A61704700BF70B5064644F6703502 +S31508001518C0F600054FF0000400F042FB2B68B34202 +S315080015280DD869685B189E4209D244F67033C0F62E S31508001538000304EB440203EB8203187A70BD04F136 S31508001548010405F10C050D2CE6D14FF0FF0070BD1E S315080015582DE9F04107460068FFF7D6FFFF2855D062 @@ -347,15 +347,15 @@ S31508001578010F04D0FFF7BEFF4FF0000448E04FF410 S315080015880053C4F202031A6942F001021A614FF0C5 S3150800159800054FF40054C4F202043B6805EB03083F S315080015A805F10402BE58B2B2EA52E36813F0010F15 -S315080015B805D000F0FBFAE36813F0010FF9D14FEAFA +S315080015B805D000F0F5FAE36813F0010FF9D14FEA00 S315080015C81643A8F80230E36813F0010F05D000F0B7 -S315080015D8EDFAE36813F0010FF9D1D8F80030B342F1 +S315080015D8E7FAE36813F0010FF9D1D8F80030B342F7 S315080015E807D105F10405B5F5007FD6D14FF00104FA S315080015F801E04FF000044FF40053C4F202031A69DD S3150800160822F001021A61FFF775FF01E04FF00004A6 -S315080016182046BDE8F08100BF70B5C6B244F67C35F1 -S31508001628C0F600054FF0000400F0C0FA2B7AB34262 -S3150800163808D144F67C33C0F6000304EB440253F899 +S315080016182046BDE8F08100BF70B5C6B244F67035FD +S31508001628C0F600054FF0000400F0BAFA2B7AB34268 +S3150800163808D144F67033C0F6000304EB440253F8A5 S31508001648220070BD04F1010405F10C050D2CEBD13F S315080016584FF0FF3070BD00BF00B54FEAC1534FEADF S31508001668D35363B903688B420DD040F8041B4FF473 @@ -366,978 +366,977 @@ S315080016A809D04FF4C043C0F60003994208D0FFF7A3 S315080016B84FFF48B910E040F28044C2F2000403E044 S315080016C840F27C24C2F2000420462946FFF7C4FFEC S315080016D8002808BF002401E04FF00004204630BD6A -S315080016E82DE9F04305460C4616469FB24FEA51299E -S315080016F84FEA49290368B3F1FF3F04D14946FFF782 -S31508001708ABFF002830D02B684B4505D028464946FC -S31508001718FFF7BEFF054658B32B68E41A04F104041C -S315080017282C1906F1010807F1FF37BFB2B84440F291 -S31508001738FF1709F5007900F039FA05F10403E31AE9 -S31508001748BB4207D928464946FFF7A2FF054698B17E -S3150800175800F1040416F8013B04F8013B4645EAD1B2 -S315080017684FF00100BDE8F0834FF00000BDE8F083B4 -S315080017784FF00000BDE8F0834FF00000BDE8F083A5 -S3150800178840F28043C2F200034FF0FF321A6040F27B -S315080017987C23C2F200031A60704700BF70B504467E -S315080017A80D461646FFF7B0FEFF281DD004F1FF3098 -S315080017B84019FFF7A9FEFF2819D04FEA54224FF41B -S315080017C8C043C0F60003B3EB422F07BF40F27C20A4 -S315080017D8C2F2000040F28040C2F20000ABB22146D5 -S315080017E83246FFF77DFF70BD4FF0000070BD4FF021 -S315080017F8000070BD2DE9F04104460E46FFF784FE49 -S31508001808054604F1FF34A019FFF77EFE044606468E -S31508001818FF2D00F08780FF2800F08880854275D85C -S31508001828022D77D90F2879D8FFF752FE4FF40053BF -S31508001838C4F20203DB6813F0010F05D0FFF75AFE5E -S315080018484FF00000BDE8F0814FF40053C4F20203DC -S315080018581A6942F002021A612846FFF7DDFE0746B2 -S315080018682046FFF7D9FE804644F67C35C0F60005C3 -S315080018784FF0000400F09AF92B7AB34209D144F6DE -S315080018887C33C0F6000304EB440203EB82035B686F -S3150800189807E004F1010405F10C050D2CEAD14FF017 -S315080018A80003C7EB08084344C3F38F2303B303F1C4 -S315080018B8FF339EB206F101064FEA86264FF0000569 -S315080018C84FF40054C4F20204EB196361236943F028 -S315080018D840032361E36813F0010F05D000F066F9A9 -S315080018E8E36813F0010FF9D105F58065B542EBD128 -S315080018F84FF40053C4F202031A6922F002021A616D -S31508001908FFF7F8FD4FF00100BDE8F0814FF0000041 -S31508001918BDE8F0814FF00000BDE8F0814FF0000007 -S31508001928BDE8F0814FF00000BDE8F0814FF00000F7 -S31508001938BDE8F08100B581B040F27C23C2F200030D -S315080019481B68B3F1FF3F1FD040F27C23C2F20003A5 -S3150800195899685A688918DA6889181A6989185A6943 -S3150800196889189A698918DA698B18C3F1000301AAD4 -S3150800197842F8043D46F25010C0F600004FF0040144 -S315080019886A46FFF70BFF01E04FF0010001B000BD02 -S3150800199846F20402C0F600024FF4C043C0F600033C -S315080019A810681B68C01846F20803C0F600031B68CF -S315080019B8C01846F20C03C0F600031B68C01846F2A6 -S315080019C81003C0F600031B68C01846F21403C0F6D5 -S315080019D800031B68C01846F21803C0F600031B6804 -S315080019E8C01846F25013C0F600031B68C018D0F199 -S315080019F8010038BF0020704700B540F27C23C2F2C8 -S31508001A0800031B68B3F1FF3F06D040F27C20C2F200 -S31508001A180000FFF79DFD90B140F28043C2F2000333 -S31508001A281B68B3F1FF3F0ED040F28040C2F20000B7 -S31508001A38FFF78EFD003018BF01205DF804FB4FF054 -S31508001A4800005DF804FB4FF001005DF804FB00BFD9 -S31508001A5800B540F28463C2F20003186040F2886356 -S31508001A68C2F20003196000F0A1F8FCE700B500F01F -S31508001A7895F8012820D002F0F9FCE8B140F28C6309 -S31508001A88C2F200031B78012B16D1FFF737FC40F288 -S31508001A989063C2F200031B6803F1320398420BD322 -S31508001AA840F28C63C2F200034FF000021A7002F08B -S31508001AB8E7FC08B9FFF798FB5DF804FB00B540F2A8 -S31508001AC88C63C2F200034FF001021A70FFF716FC86 -S31508001AD840F29063C2F200031860FFF7C7FF5DF88B -S31508001AE804FB00BF00B500F05FF8FFF7DBFBFFF764 -S31508001AF8ADFB02F0A1FC00F013F8FFF7DFFF5DF875 -S31508001B0804FB00BF00B500F051F8FFF7E5FB02F04B -S31508001B18D9FC00F01FF8FFF7A9FF5DF804FB00BF22 -S31508001B2800B581B04FF0FF038DF800304FF0000381 -S31508001B388DF8013000F052F8FFF724FC40F2946360 -S31508001B48C2F200031B78012B02D1684600F06AF836 -S31508001B5801B000BD00B540F29860C2F20000FFF778 -S31508001B685FFC012805D140F29860C2F2000000F037 -S31508001B7859F85DF804FB00BF704700BF00B5C9B245 -S31508001B88FFF716FC00F044F85DF804FB40F294638E -S31508001B98C2F200034FF001021A70704700B500F050 -S31508001BA82DF85DF804FB00BF704700BF704700BFFB -S31508001BB840F2D863C2F200034FF000025A70704729 -S31508001BC840F2D863C2F200034FF0FE02DA701871C9 -S31508001BD84FF00202A3F84420704700BF40F2D863CA -S31508001BE8C2F200034FF000021A709A6483F8432081 -S31508001BF8A3F844209A705A70704700BF40F2D86319 -S31508001C08C2F200031878003018BF0120704700BFD9 -S31508001C1840F2D863C2F200034FF0000283F843206B -S31508001C28704700BF30B504460278FF2A25D102F06E -S31508001C381DFC20B94FF01000FFF7C2FFB9E1FFF706 -S31508001C48B7FF40F2D863C2F200034FF001021A70D8 -S31508001C584FF0FF01D9704FF0100119714FF00001CC -S31508001C6859714FF040009871D87119725A729A7260 -S31508001C784FF00802A3F844209BE140F2D863C2F269 -S31508001C8800031B78012B40F0AE81A2F1C902352A60 -S31508001C9800F28B81DFE812F0EF00890189018401DF -S31508001CA889018901760110015C01460189018901CA +S315080016E82DE9F04305460C4617461E464FEA51298A +S315080016F84FEA49290368B3F1FF3F03D14946FFF783 +S31508001708ABFF50B32B684B4505D028464946FFF72B +S31508001718BFFF054628B32B68E41A04F104042C19FC +S3150800172840F2FF1809F5007900F03AFA05F10403C2 +S31508001738E31A434507D928464946FFF7A9FF054648 +S3150800174898B100F1040417F8013B04F8013B013E7F +S31508001758EAD14FF00100BDE8F0834FF00000BDE87C +S31508001768F0834FF00000BDE8F0834FF00000BDE8B5 +S31508001778F08300BF40F28043C2F200034FF0FF3205 +S315080017881A6040F27C23C2F200031A60704700BF51 +S3150800179870B504460D461646FFF7B6FEFF281DD057 +S315080017A804F1FF304019FFF7AFFEFF2819D04FEABA +S315080017B854224FF4C043C0F60003B3EB422F07BFC9 +S315080017C840F27C20C2F2000040F28040C2F20000DB +S315080017D8214632462B46FFF783FF70BD4FF00000BF +S315080017E870BD4FF0000070BD2DE9F04104460E4665 +S315080017F8FFF78AFE054604F1FF34A019FFF784FEB1 +S3150800180804460646FF2D00F08780FF2800F08880EA +S31508001818854275D8022D77D90F2879D8FFF758FE4B +S315080018284FF40053C4F20203DB6813F0010F05D026 +S31508001838FFF760FE4FF00000BDE8F0814FF4005353 +S31508001848C4F202031A6942F002021A612846FFF72F +S31508001858E3FE07462046FFF7DFFE804644F6703566 +S31508001868C0F600054FF0000400F09AF92B7AB34247 +S3150800187809D144F67033C0F6000304EB440203EBBF +S3150800188882035B6807E004F1010405F10C050D2CD9 +S31508001898EAD14FF00003C7EB08084344C3F38F2384 +S315080018A803B303F1FF339EB206F101064FEA862613 +S315080018B84FF000054FF40054C4F20204EB196361B3 +S315080018C8236943F040032361E36813F0010F05D049 +S315080018D800F066F9E36813F0010FF9D105F580659C +S315080018E8B542EBD14FF40053C4F202031A6922F049 +S315080018F802021A61FFF7FEFD4FF00100BDE8F0810C +S315080019084FF00000BDE8F0814FF00000BDE8F08117 +S315080019184FF00000BDE8F0814FF00000BDE8F08107 +S315080019284FF00000BDE8F08100B581B040F27C2395 +S31508001938C2F200031B68B3F1FF3F1FD040F27C23B5 +S31508001948C2F2000399685A688918DA6889181A6900 +S3150800195889185A6989189A698918DA698B18C3F12E +S31508001968000301AA42F8043D46F25010C0F60000EA +S315080019784FF004016A46FFF70BFF01E04FF001003C +S3150800198801B000BD46F20402C0F600024FF4C04397 +S31508001998C0F6000310681B68C01846F20803C0F6AC +S315080019A800031B68C01846F20C03C0F600031B6840 +S315080019B8C01846F21003C0F600031B68C01846F2A2 +S315080019C81403C0F600031B68C01846F21803C0F6CD +S315080019D800031B68C01846F25013C0F600031B68BC +S315080019E8C018D0F1010038BF0020704700B540F292 +S315080019F87C23C2F200031B68B3F1FF3F06D040F20E +S31508001A087C20C2F20000FFF7A3FD90B140F28043A4 +S31508001A18C2F200031B68B3F1FF3F0ED040F28040C4 +S31508001A28C2F20000FFF794FD003018BF01205DF8E8 +S31508001A3804FB4FF000005DF804FB4FF001005DF869 +S31508001A4804FB00BF00B540F28463C2F200031860C5 +S31508001A5840F28863C2F20003196000F0A1F8FCE7B7 +S31508001A6800B500F095F8012820D002F0F9FCE8B195 +S31508001A7840F28C63C2F200031B78012B16D1FFF7DC +S31508001A883DFC40F29063C2F200031B6803F132037F +S31508001A9898420BD340F28C63C2F200034FF000025F +S31508001AA81A7002F0E7FC08B9FFF79EFB5DF804FB1D +S31508001AB800B540F28C63C2F200034FF001021A70B7 +S31508001AC8FFF71CFC40F29063C2F200031860FFF7A8 +S31508001AD8C7FF5DF804FB00BF00B500F05FF8FFF725 +S31508001AE8E1FBFFF7B3FB02F0A1FC00F013F8FFF7E0 +S31508001AF8DFFF5DF804FB00BF00B500F051F8FFF7FB +S31508001B08EBFB02F0D9FC00F01FF8FFF7A9FF5DF818 +S31508001B1804FB00BF00B581B04FF0FF038DF8003015 +S31508001B284FF000038DF8013000F052F8FFF72AFC51 +S31508001B3840F29463C2F200031B78012B02D168466F +S31508001B4800F06AF801B000BD00B540F29860C2F22C +S31508001B580000FFF765FC012805D140F29860C2F23B +S31508001B68000000F059F85DF804FB00BF704700BF95 +S31508001B7800B5C9B2FFF71CFC00F044F85DF804FB91 +S31508001B8840F29463C2F200034FF001021A707047DC +S31508001B9800B500F02DF85DF804FB00BF704700BFDC +S31508001BA8704700BF40F2D863C2F200034FF0000244 +S31508001BB85A70704740F2D863C2F200034FF0FE022B +S31508001BC8DA7018714FF00202A3F84420704700BF74 +S31508001BD840F2D863C2F200034FF000021A709A6402 +S31508001BE883F84320A3F844209A705A70704700BFB8 +S31508001BF840F2D863C2F200031878003018BF0120F3 +S31508001C08704700BF40F2D863C2F200034FF00002E3 +S31508001C1883F84320704700BF30B504460278FF2A88 +S31508001C2825D102F01DFC20B94FF01000FFF7C2FFBE +S31508001C38B9E1FFF7B7FF40F2D863C2F200034FF0E5 +S31508001C4801021A704FF0FF01D9704FF0100119718F +S31508001C584FF0000159714FF040009871D871197208 +S31508001C685A729A724FF00802A3F844209BE140F290 +S31508001C78D863C2F200031B78012B40F0AE81A2F1AB +S31508001C88C902352A00F28B81DFE812F0EF008901D4 +S31508001C988901840189018901760110015C014601DF +S31508001CA889018901890189018901890189018901CE S31508001CB889018901890189018901890189018901BE S31508001CC889018901890189018901890189018901AE S31508001CD8890189018901890189018901890189019E -S31508001CE889018901890189018901890182005400CC -S31508001CF836007400890189018901A9008901C5008E -S31508001D08CA00DE0042783F2A04D94FF02200FFF7BE -S31508001D1857FF4EE140F2D865C2F2000505F1040006 -S31508001D28A96CFFF779FA4FF0FF03EB706278AB6C92 -S31508001D38D318AB64637803F10103A5F8443038E196 -S31508001D4843783F2B04D94FF02200FFF739FF30E1DB -S31508001D58416840F2D865C2F20005A96405F1040095 -S31508001D686278FFF759FA4FF0FF03EB706278AB6CAD -S31508001D78D318AB64637803F10103A5F8443018E176 -S31508001D8840F2D863C2F200034FF0FF02DA704268E5 -S31508001D989A644FF00102A3F844200AE140F2D86396 -S31508001DA8C2F200034FF0FF02DA70996C436843B138 -S31508001DB84FF0000211F8010B1218D2B2013BF9D103 -S31508001DC801E04FF0000240F2D863C2F20003C3F8FC -S31508001DD807204FF001021A714FF000025A719A71E2 -S31508001DE84FF00802A3F84420E3E040F2D863C2F2B1 -S31508001DF800034FF0FF02DA7044F61842C0F60002F4 -S31508001E089A644FF000021A715A719A714FF00701D5 -S31508001E18D9711A725A729A724FF00802A3F84420B6 -S31508001E28C7E04FF00000FFF7CBFEC2E040F2D863E8 -S31508001E38C2F200034FF0FF02DA704FF000021A717F -S31508001E48597859719A71DA711A724FF00602A3F81D -S31508001E584420AEE040F2D864C2F200044FF0000312 -S31508001E682370FFF7A5FE4FF0FF03E3704FF0010359 -S31508001E78A4F844309DE040F2D863C2F20003986C97 -S31508001E8804F101024FF03F01FFF7E6F920B94FF0D8 -S31508001E983100FFF795FE8CE040F2D863C2F20003E2 -S31508001EA84FF0FF02DA709A6C02F13F029A644FF01B -S31508001EB80102A3F844207CE043783E2B04D94FF06E -S31508001EC82200FFF77DFE74E040F2D863C2F20003F1 -S31508001ED84FF0FF02DA704FF00102A3F84420417868 -S31508001EE841B9FFF7CBF9002863D14FF03100FFF766 -S31508001EF867FE5EE040F2D863C2F20003986C04F10C -S31508001F080202FFF7A9F920B94FF03100FFF758FE8A -S31508001F184FE040F2D863C2F2000361789A6C8A18D7 -S31508001F289A6446E040F2D863C2F200034FF0FF0213 -S31508001F38DA704FF000021A715A714FF04001997120 -S31508001F48DA711A725A724FF00702A3F8442030E081 -S31508001F5840F2D863C2F20003986C6168FFF782F909 -S31508001F6820B94FF03100FFF72BFE22E040F2D86384 -S31508001F78C2F200034FF0FF02DA704FF00102A3F82D -S31508001F88442016E0FFF75CF940F2D863C2F2000372 -S31508001F984FF0FF02DA704FF00102A3F8442008E078 -S31508001FA84FF03100FFF70CFE03E04FF02000FFF773 -S31508001FB807FE40F2D863C2F2000393F84330012BB8 -S31508001FC803D14FF01000FFF7FBFD40F2D863C2F2C9 -S31508001FD800034FF0010283F8432003F10300B3F826 -S31508001FE84410FFF7CBFD30BD2AB111F8013B00F8C4 -S31508001FF8013B013AF9D170471AB100F8011B013AB9 -S31508002008FBD17047037833B18B4204D010F8013FEF -S315080020180BB18B42FAD11846704700BF0346C87EF3 -S315080020288A7E42EA00201B78032B05D14A7D0B7D60 -S3150800203843EA022340EA0340704700BF8176C1F3AA -S315080020480723C3764FEA114101754FEA11214175F5 -S31508002058704700BF00F10B014FF000034FEA530227 -S3150800206842EAC31310F8012B9B1803F0FF038842B2 -S31508002078F4D11846704700BF00B590B10368A3B1FC -S315080020881A78B2B1D9888288914216D15878FEF75B -S315080020985BFD00F00100002814BF032000205DF84E -S315080020A804FB4FF009005DF804FB4FF009005DF8E2 -S315080020B804FB4FF009005DF804FB4FF009005DF8D2 -S315080020C804FB00BF10B504460A46407804F13401FB -S315080020D84FF00103FEF744FD00283CD194F833225B -S315080020E894F8323243EA022212B24AF65523CFF658 -S315080020F8FF739A4232D194F86D2094F86C304FEAFF -S31508002108034343EA026294F86A30134394F86B204F -S3150800211843EA022222F07F4244F24613C0F25403ED -S315080021289A421ED094F8890094F888304FEA0343F7 -S3150800213843EA006094F88630034394F8870043EA34 -S31508002148002020F07F4044F24613C0F25403C01A18 -S3150800215818BF012010BD4FF0030010BD4FF0020054 -S3150800216810BD4FF0000010BD2DE9F041D5B2036847 -S315080021781A78A2F13002092A00F2DF815C783A2C33 -S3150800218840F0DB8103F1020303604FF000030B60A4 -S31508002198002A40F0868140F62813C2F200031C681C -S315080021A8002C00F082810C60237883B16078FEF7F2 -S315080021B8CBFC10F0010F0AD1002D00F07A8100F04F -S315080021C80400002814BF0A200020BDE8F0814FF05B -S315080021D8000020706070FEF705FB10F0010F40F054 -S315080021E86C811DB110F0040F40F06B8120464FF04A -S315080021F80001FFF767FF0346012819D194F8F6315D -S31508002208002B00F0628194F8FD2194F8FC314FEA1E -S31508002218034343EA026294F8FA31134394F8FB51EC -S3150800222843EA052520462946FFF74CFF034601E001 -S315080022384FF00005032B00F04C81002B40F04D8130 -S3150800224894F8402094F83F3043EA02231BB2B3F5CA -S31508002258007F40F0468194F84B0094F84A3053EAD8 -S3150800226800200ED194F85B2094F85A304FEA0343BD -S3150800227843EA026294F85830134394F8590043EA3B -S315080022880020E06194F84410E17001F1FF33DBB2F5 -S31508002298012B00F22A8194F84130A370002B00F034 -S315080022A8288103F1FF321A4240F0278194F84660E4 -S315080022B894F8452042EA0622228112F00F0F40F0D0 -S315080022C8208194F8487094F8476056EA07260ED194 -S315080022D894F8577094F856604FEA064646EA076730 -S315080022E894F854603E4394F8557046EA072694F8DD -S315080022F843C094F8427057EA0C2700F0068101FBA0 -S3150800230800FC07EB121161448E42C0F00281761A6E -S31508002318B6FBF3F3002B00F0008140F6F576B342DE -S315080023288CBF022601264FF6F578434500F2098147 -S3150800233803F10203A3612562EF1967626918E1626E -S31508002348032E15D1002A40F0EC8094F8631094F80F -S3150800235862204FEA024242EA016194F860200A4381 -S3150800236894F8611042EA0122A2624FEA830311E057 -S31508002378002A00F0DA806744A762022E02D14FEAE3 -S31508002388430307E04FF0030202FB03F203F00103DD -S3150800239803EB520303F5FE7303F10303B0EB532F64 -S315080023A8C0F0C7804FF0FF3323614FF00003E360A6 -S315080023B8032E68D1637194F8652094F8643043EA6B -S315080023C80222AA186261607804F134014FF0010309 -S315080023D8FEF7C6FB002856D194F8332294F8323211 -S315080023E843EA022212B24AF65523CFF6FF739A42F7 -S315080023F849D194F8372094F836304FEA034343EA2C -S31508002408026294F83430134394F8352043EA0222DA -S3150800241845F25223C4F261139A4234D194F81B2226 -S3150800242894F81A324FEA034343EA026294F81832D8 -S31508002438134394F8192243EA022247F27223C6F292 -S3150800244841139A421FD194F8232294F822324FEA6C -S31508002458034343EA026294F82032134394F821228C -S3150800246843EA0223E36094F81F2294F81E324FEADF -S31508002478034343EA026294F81C32134394F81D2274 -S3150800248843EA022323612670334A138803F10103BA -S315080024989BB21380E3804FF0000020632071BDE8EB -S315080024A8F0814FF00B00BDE8F0814FF00C00BDE855 -S315080024B8F0814FF00000BDE8F0814FF00300BDE859 -S315080024C8F0814FF00A00BDE8F0814FF00D00BDE835 -S315080024D8F0814FF00100BDE8F0814FF00D00BDE82E -S315080024E8F0814FF00D00BDE8F0814FF00D00BDE812 -S315080024F8F0814FF00D00BDE8F0814FF00D00BDE802 -S31508002508F0814FF00D00BDE8F0814FF00D00BDE8F1 -S31508002518F0814FF00D00BDE8F0814FF00D00BDE8E1 -S31508002528F0814FF00D00BDE8F0814FF00D00BDE8D1 -S31508002538F0814FF00D00BDE8F0814FF000030B6005 -S3150800254829E603F10203A3612562EF196762691890 -S31508002558E1624FF00306F5E6240900202DE9F0416B -S315080025680D4601F109060369002B61D0446994F800 -S315080025780C802378202B1ED0274631464FF00002C0 -S3150800258808F0080C03E017F8013F202B13D0052B99 -S3150800259808BFE523BCF1000F06D0A3F14106F6B241 -S315080025A8192E9CBF2033DBB201F8013B0E4602F117 -S315080025B80102082AE7D1237A202B21D033464FF087 -S315080025C82E0203F8012B227A202A18D004F10801D2 -S315080025D806F1040C08F0100703E011F8012F202A69 -S315080025E80ED037B1A2F14106F6B2192E9CBF203299 -S315080025F8D2B203F8012B1E466345EED100E01E460B -S31508002608E37A2B72E27FA37F4FEA034343EA026326 -S31508002618227F1343627F43EA02232B60627E237E6E -S3150800262843EA0223AB80E27DA37D43EA0223EB80DB -S315080026384FF000033370AE69002E31D0EB69002BDA -S315080026482ED00369DBB1028C4FF6FF739A4219D074 -S31508002658C7693888C8B14FF00004A046414601F05A -S3150800266823FDA8B1EB6903F1FF33A34213D930550B -S3150800267804F1010437F814000028EFD10DE04FF0F3 -S3150800268800040AE04FF0000407E04FF0000404E0F5 -S315080026984FF0000401E04FF000044FF000033355F3 -S315080026A8BDE8F0812DE9F04104460379002B29D0CD -S315080026B8056B00F13407407839462A464FF001037E -S315080026C8FEF7A2FA10BB4FF000032371636A9D4216 -S315080026D820D3E2699B189D4220D2E678012E21D99B -S315080026E84FF00108E369ED18607839462A464346EB -S315080026F8FEF78AFA06F1FF36012EF3D14FF00000ED -S31508002708BDE8F0814FF00000BDE8F0814FF0010008 -S31508002718BDE8F0814FF00000BDE8F0814FF00000F9 -S31508002728BDE8F0814FF00000BDE8F08130B50446F9 -S315080027380D46036B8B420DD0FFF7B4FF68B9607876 -S3150800274804F134012A464FF00103FEF709FA38B9AD -S31508002758256330BD4FF0000030BD4FF0010030BD95 -S315080027684FF0010030BD00BFF0B50446FFF79AFFE9 -S31508002778054600285FD12378032B53D16379002BAC -S3150800278850D04FF00006266304F134073846314620 -S315080027984FF40072FFF730FC4FF0550384F83232D5 -S315080027A84FF0AA0384F833324FF0520384F83430D2 -S315080027B884F835304FF0610384F836304FF041021B -S315080027C884F837204FF0720184F8181284F8191221 -S315080027D884F81A2284F81B32236984F81C32C3F356 -S315080027E8072284F81D224FEA134284F81E224FEA6C -S315080027F8136384F81F32E36884F82032C3F3072288 -S3150800280884F821224FEA134284F822224FEA1363F6 -S3150800281884F823326078626939464FF00103FEF777 -S31508002828F3F9667160784FF000010A46FEF756FA22 -S31508002838002818BF01252846F0BD00BFA1F10201EE -S315080028488369A3F10203994204D28278C36A02FB18 -S31508002858013070474FF00000704700BFF0B50546D5 -S315080028680C46012962D98369994262D20378022BF8 -S315080028782DD0032B3DD0012B5ED101EB5106416AC1 -S3150800288801EB5621FFF752FF002858D14FEAC653E5 -S315080028984FEAD353EB1893F8347006F10106696AC0 -S315080028A801EB56212846FFF741FF00284AD14FEA8F -S315080028B8C6564FEAD656AD1995F8340047EA0020A9 -S315080028C814F0010F12BF00090005000DF0BD416A9A -S315080028D801EB1421FFF72AFF002836D14FEA0464D2 -S315080028E805EBD45595F8350095F8343043EA0020B9 -S315080028F8F0BD416A01EBD411FFF718FF002827D16C -S315080029084FEA446405EBD45595F8370095F8363000 -S315080029184FEA034343EA006095F83430034395F8D1 -S31508002928350043EA002020F07040F0BD4FF0010062 -S31508002938F0BD4FF00100F0BD4FF0FF30F0BD4FF08D -S31508002948FF30F0BD4FF0FF30F0BD4FF0FF30F0BD5F -S315080029584FF0FF30F0BD00BF70B504468DB2C58094 -S31508002968816801293CD003689A6991423BD279B9B2 -S315080029781A78032A01D1996A51B94FF00002E26020 -S315080029881A89AA4232D99B6A03EB151323611CE0FC -S315080029989E784FEA0616B54210D32068FFF75EFF01 -S315080029A80146B0F1FF3F24D0012825D923689B6941 -S315080029B8984224D2AD1BADB2AE42EED9E16020688A -S315080029C8FFF73CFF00EB15102061236803F1340379 -S315080029D805F00F0503EB451565614FF0000070BD5E -S315080029E84FF0020070BD4FF0020070BD4FF00200B4 -S315080029F870BD4FF0010070BD4FF0020070BD4FF07A -S31508002A08020070BDF0B505460C46164601297FD961 -S31508002A18836999427FD20378022B42D0032B51D07F -S31508002A28012B6FD101EB5107416A01EB5721FFF7DB -S31508002A387DFE002868D14FEAC7534FEAD35314F0EE -S31508002A48010409D0EA1892F8342002F00F02F1B20C -S31508002A5842EA0112D2B200E0F2B2EB1883F8342047 -S31508002A6807F101074FF001032B71696A01EB57213A -S31508002A782846FFF75BFE002846D14FEAC7574FEAB4 -S31508002A88D75714B1C6F3071607E0EB1993F834308D -S31508002A9823F00F03C6F303261E43EF1987F834609D -S31508002AA832E0416A01EB1421FFF740FE60BB4FEAAA -S31508002AB8046405EBD45484F83460C6F3072684F80E -S31508002AC8356021E0416A01EBD411FFF72FFED8B92A -S31508002AD84FEA446405EBD45494F837304FEA036355 -S31508002AE803F070431E4384F83460C6F3072384F85A -S31508002AF835304FEA164384F836304FEA166684F8B6 -S31508002B08376001E04FF002004FF001032B71F0BD6A -S31508002B184FF00200F0BD4FF00200F0BD2DE9F0417C -S31508002B280546884631B9C6686EB183699E4228BF8C -S31508002B3801260AE0FFF792FE012844D9AB699842B4 -S31508002B484ED3464601E04FF0010634464FF00207D9 -S31508002B5804F10104AB699C4202D3012E37D93C46DD -S31508002B6828462146FFF77AFE38B1B0F1FF3F37D03D -S31508002B78012835D0B442EBD12DE026462846214611 -S31508002B886FF07042FFF73EFFB0B9B8F1000F05D0F5 -S31508002B98284641462246FFF735FF68B9EE602B6995 -S31508002BA8B3F1FF3F1BD003F1FF332B614FF001034D -S31508002BB86B712046BDE8F081012814BF01204FF04B -S31508002BC8FF30BDE8F0814FF00100BDE8F0814FF015 -S31508002BD80000BDE8F0814FF00000BDE8F08120460E -S31508002BE8BDE8F0812DE9F04104460D46C68806F190 -S31508002BF80106B6B2002E71D00369002B72D016F002 -S31508002C080F0F5ED103F101030361C16821B9036897 -S31508002C181B89B3426AD954E00068837803F1FF3305 -S31508002C2813EA16134DD1FFF719FE0746012861D98D -S31508002C38B0F1FF3F62D0206883699F423BD3002DDD -S31508002C4860D0E168FFF76AFF074600285ED00128CA -S31508002C5860D0B0F1FF3F61D02068FFF723FD002858 -S31508002C6860D1206800F134004FF000014FF400727B -S31508002C78FFF7C2F9256828463946FFF7DFFD2863B6 -S31508002C884FF000054FF001080EE083F8048020682D -S31508002C98FFF708FD002849D123681A6B02F10102DB -S31508002CA81A6305F10105EDB223689A78AA42ECD8A9 -S31508002CB81A6B551B1D63E76020683946FFF7BEFD8A -S31508002CC82061E680236803F1340306F00F0603EB58 -S31508002CD8461666614FF00000BDE8F0814FF0040023 -S31508002CE8BDE8F0814FF00400BDE8F0814FF004001C -S31508002CF8BDE8F0814FF00200BDE8F0814FF0010011 -S31508002D08BDE8F0814FF00400BDE8F0814FF00700F8 -S31508002D18BDE8F0814FF00200BDE8F0814FF00100F0 -S31508002D28BDE8F0814FF00100BDE8F0814FF00100E1 -S31508002D38BDE8F0812DE9F04F83B004464FF0000155 -S31508002D48FFF70AFE0546002840F0AD804FF0FF0859 -S31508002D58474644F6B449C0F6000909F10C0A206842 -S31508002D682169FFF7E3FC0546002840F09C80666960 -S31508002D783378002B00F09580F27AE52B79D002F0AB -S31508002D883F0212F0080F02D00F2A75D101E00F2A68 -S31508002D9853D1E569002D7AD013F0400F06D096F87E -S31508002DA80D80E288228403F0BF0701E09F4266D1BE -S31508002DB896F80DB0C34565D1337823F0400303F17F -S31508002DC8FF3303EB430203EB8202019209F1FF3852 -S31508002DD84FF00102009218F8013FF2185278F35C96 -S31508002DE843EA0220009B93B101F08AF90290009009 -S31508002DF8019AFE2A1DD835F8120001F081F9029BBE -S31508002E08834216D1019A02F10102019203E04FF6B4 -S31508002E18FF7398420DD1D045DDD1337813F0400FB2 -S31508002E2845D0009A002A42D0019A35F81230002B6C -S31508002E383DD0D8464FF0FF0729E027B93046FFF7B7 -S31508002E4809F940452FD04FF6FF732384A369DA7A28 -S31508002E5812F0010F19D103F10B0001E0834222D0C9 -S31508002E6816F8011B13F8012B9142F7D04FF0FF070C -S31508002E780DE04FF0FF070AE04FF0FF0707E04FF0B5 -S31508002E88FF0704E04FF0FF0701E04FF0FF07204671 -S31508002E984FF00001FFF7A6FE054600283FF45FAF8E -S31508002EA801E04FF00405284603B0BDE8F08F07F1A6 -S31508002EB8FF37FFB2D846EAE72DE9F04F84B08246D5 -S31508002EC888460B782F2B01D05C2B01D108F1010815 -S31508002ED84FF00003CAF8083098F800301F2B09D8B5 -S31508002EE850464FF00001FFF737FD4FF00003CAF8C8 -S31508002EF814305AE144F62043C0F60003009344F61A -S31508002F082C43C0F6000303934346984613F8012B4F -S31508002F182F2AFAD05C2AF8D0DAF81CB098F80000FC -S31508002F281F2833D92F2800F043815C2800F04581F3 -S31508002F38ABF1020647464FF00104A14625460AE0CA -S31508002F482F2B00F03F815C2B00F03E81B2F5807F85 -S31508002F5800F01A811546494601F0A6F804460028E5 -S31508002F6800F015817F2806D800982146FFF74AF809 -S31508002F78002840F00F8126F8024F17F8013F184637 -S31508002F8805F101021F2BDBD82C4603E04FF000049D -S31508002F984FF0010290444FF00407002C00F0FD8022 -S31508002FA80BEB440232F8023D202B01D02E2B04D11C -S31508002FB8013CF7D14FF00600F7E02646002C00F052 -S31508002FC8EF804FF000052BF81450DAF818004FF088 -S31508002FD820014FF00B02FFF70FF85A4601E005F1FA -S31508002FE8010532F8023B202BF9D02E2BF7D00DB16C -S31508002FF847F0030706F1FF360BEB46033BF81620A6 -S315080030082E2A01D0013C08D14FF0080001904FF054 -S315080030180009CDF80890264604E033F8022D2E2A32 -S31508003028F0D1F1E73BF81540002C62D005F101050F -S31508003038202C03D02E2C04D1AE4202D047F0030729 -S31508003048F0E7019A914501D2AE4217D1019B0B2BA5 -S3150800305803D147F0030702994EE0AE4202D047F083 -S31508003068030748D302984FEA8003DBB20293354632 -S315080030784FF00B0201924FF00809D3E77F2C11D9BC -S3150800308820464FF0000101F00FF8002800F0A18053 -S3150800309844F63443C0F600031B1813F8804C47F06F -S315080030A8020724B103982146FEF7ACFF20B147F082 -S315080030B803074FF05F0415E0A4F141039BB2192BEF -S315080030C804D8029B43F0020302930BE0A4F16103C0 -S315080030D89BB2192B06D8029840F001000290A4F179 -S315080030E82004A4B2DAF8183003F8094009F10109EE -S315080030F898E7029900E00299DAF818301A78E52A6A -S3150800310804BF05221A70019A082A03D14FEA8101D9 -S31508003118C9B20291029901F00C030C2B03D001F0F5 -S315080031280302032A01D147F0020717F0020F09D153 -S3150800313801F00301012908BF47F01007042B08BF4F -S3150800314847F00807DAF81830DF725046FFF7F2FD3D -S31508003158DAF81830DB7A38B1042826D103F00403E4 -S31508003168002B08BF052020E013F0040F1DD1DAF85C -S315080031781410CB7A13F0100F15D0DAF80000FEF702 -S315080031884DFFCAF80800BFE64FF006000DE04FF0FD -S3150800319806000AE04FF0060007E04FF0060004E0D4 -S315080031A84FF0060001E04FF0050004B0BDE8F08FC7 -S315080031B84FF000044FF0010207E04FF000044FF00B -S315080031C8010202E02C4600E02C4690444FF0000726 -S315080031D8E3E647F002076AE72DE9F0410446C588A1 -S315080031E8018C4FF6FF73994208BF2946FFF7B4FBCF -S315080031F8D0B94FF0E5064FF001074FF000082068F0 -S315080032082169FFF793FA60B963691E7023681F710D -S31508003218E388AB4208D220464146FFF7E3FC00287C -S31508003228EDD0042808BF0220BDE8F0812DE9F04F4B -S3150800323804460F464FF0FF0846464FF0040544F685 -S31508003248B449C0F6000909F10C0A7EE02068FFF7C0 -S315080032586DFA054600287DD160690378002B00F0D1 -S315080032688480C27AE52B5BD02E2B5CD002F03F0215 -S31508003278082A14BF00210121B94257D10F2A46D17D -S3150800328813F0400F06D090F80D80E288228403F0E8 -S31508003298BF0601E09E424CD1457B45454CD1D4F842 -S315080032A81CC0037803F03F0303F1FF3303EB430124 -S315080032B803EB810109F1FF334FF0010E4FF6FF7852 -S315080032C813F8012F00EB020B9BF801B0825C42EA67 -S315080032D80B22BEF1000F07D0FE2914D82CF81120AE -S315080032E801F10101964601E042450CD15345E7D163 -S315080032F8037813F0400F33D0FE2904D84FF00003A3 -S315080033082CF811302CE0A8464FF0FF0616E01EB937 -S31508003318FEF7A0FE404520D04FF6FF7323841CE035 -S315080033284FF0FF060AE04FF0FF0607E04FF0FF06EA -S3150800333804E04FF0FF0601E04FF0FF0620464FF085 -S315080033480001FFF74FFC054620B9216900297FF4DB -S315080033587DAF15B14FF0000323612846BDE8F08F0D -S3150800336806F1FF36F6B2A846E8E74FF00405F1E796 -S315080033782DE9F04104460E46012928D98369994260 -S3150800338829D201E02E4603E04FF000074FF0010866 -S3150800339820463146FFF762FA054600B3012822D0CF -S315080033A8B0F1FF3F23D0204631463A46FFF72AFBBD -S315080033B8F8B92369B3F1FF3F04D003F10103236188 -S315080033C884F80580A369AB42DCD8BDE8F0814FF0E4 -S315080033D80200BDE8F0814FF00200BDE8F0814FF029 -S315080033E80000BDE8F0814FF00200BDE8F0814FF01B -S315080033F80100BDE8F08100BF70B582B005461646E3 -S315080034089CB24FF00B02FEF7EFFD052C0CD9A6F17E -S3150800341802064FEA540343EAC43436F8023FE4186E -S31508003428A4B27388002BF4D14FF0070204F00F01F9 -S3150800343801F13003392B88BF01F137030DF8023043 -S3150800344802F1FF322409F1D1144602A98B184FF06C -S315080034587E0103F8081C72B12B78202B0ED029465A -S315080034684FF0000303F10103A34209D011F8010F35 -S315080034782028F7D104E04FF0000301E04FF00003DD -S315080034884FF02000072A06D802ACA11811F8081C24 -S3150800349802F1010200E00146E95403F10103072B92 -S315080034A8F0D902B070BD00BF2DE9F04F83B00646CB -S315080034B8D0F81890D0F81C80684649464FF00C0298 -S315080034C8FEF792FD9DF80B3013F0010F28D04FF048 -S315080034D8000389F80B30F3614FF001073D4648466B -S315080034E8694642463B46FFF787FF3046FFF722FC08 -S315080034F8044648B905F10105ADB207F10107642D7F -S31508003508EDD14FF00704D2E0642D00F0CE800428F0 -S3150800351840F0CD809DF80B3089F80B30C6F81C8032 -S315080035289DF80B3013F0020F19D0B8F800304BB1DC -S315080035384FF0000303F101039BB238F81320002A61 -S31508003548F8D101E04FF0000303F119034EF64F4294 -S31508003558C4F6C46282FB0312C2F38F0901E04FF076 -S315080035680109C84630464FF00001FFF7F5F9044649 -S31508003578002840F09C804FF00005AA464FF0010746 -S3150800358830683169FFF7D2F80446002840F08F8082 -S3150800359873691B78E52B00D023B905F10105A84501 -S315080035A801D188E0554630463946FFF71BFB0446E5 -S315080035B80028E5D07BE0F188C91B89B23046FFF7B9 -S315080035C8CBF90446002872D1B069FEF743FD804658 -S315080035D844F6B445C0F6000530683169FFF7A6F821 -S315080035E80446002863D1D6F81CC071695FFA87FAC1 -S315080035F881F80D804FF00F03CB724FF000020A7363 -S315080036088A76CA760AF1FF3303EB430003EB800098 -S3150800361813464FF6FF7E4FF0FF09734550D03CF826 -S31508003628103000F10100545D0B550C194FEA132BA5 -S3150800363884F801B0002B08BF734602F101020D2A6F -S31508003648EBD14FF6FF72934202D03CF810300BB913 -S315080036584AF0400A81F800A033684FF001021A714F -S3150800366830464FF00001FFF7BDFA0446F8B907F1EE -S31508003678FF37BFB2002FAFD129E070694FF00001BC -S315080036884FF02002FEF7B8FC7069B1694FF00B02DB -S31508003698FEF7AAFC7369B269D27A02F018021A739D -S315080036A833684FF001021A7101E04FF0070420460B -S315080036B803B0BDE8F08F09F1FF37BFB23FB17AE72B -S315080036C8545D01F804900C1984F80190B5E7306840 -S315080036D83169FFF72BF804460028E8D1CDE700BF83 -S315080036E8C0B2A0B940F62813C2F200031B6813B18A -S315080036F84FF000021A7011B14FF000030B7040F634 -S315080037082813C2F2000319604FF0000070474FF003 -S315080037180B0070472DE9F0438DB004460091D2B2EC -S31508003728002800F0A4804FF00003036002F01F068B -S31508003738B04606F0FE02684604A9FEF715FD0546DA -S31508003748002840F0968001AB0A9340F22473C2F22F -S3150800375800030B9304A80099FFF7AEFB099F10B95D -S31508003768002F08BF062018F01C0F4DD050B10428AA -S315080037787BD104A8FFF798FE099F002875D146F063 -S31508003788080606E0FB7A13F0110F76D118F0040F35 -S3150800379876D116F0080F7CD0FDF728FCB873C0F36D -S315080037A80723FB734FEA10433B744FEA106078749B -S315080037B84FF0000887F80B8087F81C8087F81D806B -S315080037C887F81E8087F81F8004983946FEF726FC76 -S315080037D8814638464146FEF731FC04984FF0010306 -S315080037E80371B9F1000F54D0D0F830804946FFF775 -S315080037F8BFFD002839D1049809F1FF33C360414653 -S31508003808FEF794FF68B130E000282ED1FB7A13F052 -S31508003818100F38D118F0020F3BD013F0010F35D12D -S3150800382837E046F02006DDF81080D8F83030E36136 -S315080038382762A67140463946FEF7F0FB2061FA7FF3 -S31508003848BB7F4FEA034343EA02633A7F13437A7F0F -S3150800385843EA0223E3604FF00003A360A361C4F8B8 -S315080038680080B8F80630A38003E0054601E04FF06B -S31508003878090528460DB0BDE8F0834FF00700F4E7C0 -S315080038884FF00800F1E74FF00400EEE74FF00700A5 -S31508003898EBE716F0080FC6D0C3E700BF2DE9F04FCF -S315080038A882B00446894615461E464FF00003336023 -S315080038B8FEF7E2FB0746002840F0CB80A37913F011 -S315080038C8800F40F0C18013F0010F00F0C080E26855 -S315080038D8A368C3EB0208454538BFA846B8F1000FE8 -S315080038E800F0B78004F1240300930190A2684FEA18 -S315080038F8C2534FEAD353002B40F088802068857856 -S3150800390805F1FF3505EA5225EDB2CDB90AB92069A0 -S3150800391802E06169FEF7A2FF012806D8A37963F0D9 -S315080039287F03A3714FF0020793E0B0F1FF3F06D17A -S31508003938A37963F07F03A3714FF0010789E06061FB -S31508003948276861693846FEF779FF30B9A37963F0C5 -S315080039587F03A3714FF002077BE000EB050A5FEAD5 -S31508003968582B28D0BB780BEB05029A4288BFC5EBC3 -S31508003978030B78785FFA8BF349465246FDF7F0F859 -S3150800398830B1A37963F07F03A3714FF0010760E0B4 -S31508003998A37913F0400F0BD0A369CAEB030AD345E2 -S315080039A806D909EB4A2000994FF40072FEF71CFB6A -S315080039B84FEA4B253BE0A269524525D0A37913F077 -S315080039C8400F11D0787800994FF00103FDF71CF9DC -S315080039D830B1A37963F07F03A3714FF0010738E08C -S315080039E8A37923F04003A3712368587800995246AF -S315080039F84FF00103FDF7B4F830B1A37963F07F03FC -S31508003A08A3714FF0010724E0C4F818A0A1684FEA8B -S31508003A18C1514FEAD151C1F50075A84538BF454689 -S31508003A2801F12401611848462A46FEF7DDFAA94439 -S31508003A38A3685B19A36033685B193360B8EB05089C -S31508003A487FF454AF019F04E04FF0020701E04FF0FE -S31508003A580707384602B0BDE8F08F00BF2DE9F04FDA -S31508003A6882B00446894617461E464FF0000333605F -S31508003A78FEF702FB8046002840F0EB80A37913F096 -S31508003A88800F40F0E18013F0020F00F0E080E36851 -S31508003A98DF4280F0CF80002F00F0CC8004F12403A9 -S31508003AA800930190A2684FEAC2534FEAD353002BFA -S31508003AB840F09C802068857805F1FF3505EA52258F -S31508003AC8EDB225BB42B923696BB94FF00001FFF780 -S31508003AD825F80346206103E06169FFF71FF80346E6 -S31508003AE8002B00F0A580012B06D1A37963F07F038C -S31508003AF8A3714FF00208ACE0B3F1FF3F06D1A379F2 -S31508003B0863F07F03A3714FF00108A2E06361A3790C -S31508003B1813F0400F13D023685878A26900994FF01C -S31508003B280103FDF771F830B1A37963F07F03A37138 -S31508003B384FF001088DE0A37923F04003A371D4F868 -S31508003B48008061694046FEF779FE30B9A37963F0CB -S31508003B587F03A3714FF002087BE000EB050A5FEAD2 -S31508003B68572B2AD098F802300BEB05029A4288BFE1 -S31508003B78C5EB030B98F801005FFA8BF349465246E2 -S31508003B88FDF742F830B1A37963F07F03A3714FF0CC -S31508003B9801085EE0A369CAEB030AD3450AD909EB0B -S31508003BA84A2100984FF40072FEF71EFAA37923F00B -S31508003BB84003A3714FEA4B252DE0A369534513D05B -S31508003BC8A268E3689A420FD298F80100009952460B -S31508003BD84FF00103FCF7C4FF30B1A37963F07F0304 -S31508003BE8A3714FF0010834E0C4F818A0A0684FEA9A -S31508003BF8C0504FEAD050C0F50075AF4238BF3D46B1 -S31508003C0800F12400201849462A46FEF7EDF9A3795B -S31508003C1843F04003A371A944A3685B19A3603368FA -S31508003C285B1933607F1B7FF43DAFDDF8048001E044 -S31508003C38DDF80480A368E268934288BFE360A37945 -S31508003C4843F02003A37104E04FF0020801E04FF0A7 -S31508003C580708404602B0BDE8F08F00BF30B50446F5 -S31508003C68FEF70AFA00284CD1A37913F0200F48D09A -S31508003C7813F0400F0ED0214651F8243B5878A26914 -S31508003C884FF00103FCF7C0FF002838D1A37923F0C9 -S31508003C984003A3712068E169FEF748FD002830D182 -S31508003CA8256AEB7A43F02003EB72E3682B77A3893E -S31508003CB84FEA13236B77E389AB77E37BEB772169C5 -S31508003CC82846FEF7BBF9FDF791F9A875C0F307234F -S31508003CD8EB754FEA10432B764FEA106068764FF07B -S31508003CE80003AB74EB74A37923F02003A37123684C -S31508003CF84FF001021A712068FEF736FD30BD4FF005 -S31508003D08010030BD10B50446FFF7A8FF10B94FF0FB -S31508003D180003236010BD00BFF0B504460D46FEF744 -S31508003D28ABF90646002840F0D080A37913F0800F37 -S31508003D3840F0C980E268AA4204D203F00203002BC5 -S31508003D4808BF1546A2684FF00003A360002D00F0CF -S31508003D58BC80206887784FEA472782B102F1FF328C -S31508003D6805F1FF31B1FBF7F1B2FBF7F3994206D338 -S31508003D78C7F100031A40A260AD1A616919E0216902 -S31508003D88B1B9FEF7CBFE0146012806D1A37963F03F -S31508003D987F03A3714FF0020697E0B0F1FF3F06D103 -S31508003DA8A37963F07F03A3714FF001068DE02061C4 -S31508003DB86161002945D0BD422DD9A37913F0020FB8 -S31508003DC805D02068FEF7AAFE014620B922E0206839 -S31508003DD8FEF744FD0146B1F1FF3F06D1A37963F02A -S31508003DE87F03A3714FF001066FE0012903D9236801 -S31508003DF89B69994206D3A37963F07F03A3714FF0B1 -S31508003E08020662E06161A368DB19A360ED1BAF4295 -S31508003E18D3D300E03D46A3685B19A3604FEAC553B0 -S31508003E284FEAD35383B12068FEF708FD30B9A37962 -S31508003E3863F07F03A3714FF0020646E000EB5525B1 -S31508003E4804E04FF0000501E04FF00005A3684FEACB -S31508003E58C3534FEAD35363B3A269AA4229D0A379B5 -S31508003E6813F0400F13D0214651F8243B58784FF0E9 -S31508003E780103FCF7C9FE30B1A37963F07F03A37188 -S31508003E884FF0010621E0A37923F04003A3712146E8 -S31508003E9851F8243B58782A464FF00103FCF760FE90 -S31508003EA830B1A37963F07F03A3714FF001060CE0E4 -S31508003EB8A561A368E268934207D9E360A37943F04A -S31508003EC82003A37101E04FF002063046F0BD00BF9B -S31508003ED830B58DB00DAB43F8340D0D46684604A9C8 -S31508003EE84FF00002FEF740F90446A8B901AB0A9359 -S31508003EF840F22473C2F200030B9304A80099FEF754 -S31508003F08DBFF044640B9099B23B104A82946FEF7F6 -S31508003F1825FB01E04FF0060420460DB030BD00BF72 -S31508003F2830B596B016AB43F8580D68460DA94FF04C -S31508003F380102FEF719F900283CD101AB139340F2A8 -S31508003F482473C2F2000314930DA80099FEF7B4FF70 -S31508003F5800282FD1129931B1CC7A14F0010F2BD041 -S31508003F684FF0070026E04FF0060023E0012D2BD975 -S31508003F7804A80DA94FF02402FEF736F8069504A8FA -S31508003F884FF00201FEF7E8FCA0B904A84FF00001BB -S31508003F98FFF74CF910B1042819D00BE04FF00700C9 -S31508003FA808E025B10D982946FFF7E2F910B90D98EA -S31508003FB8FEF7DAFB16B030BD0D98FEF72FF8054662 -S31508003FC814F0100FD2D102E04FF00200F2E70DA864 -S31508003FD8FFF702F90028E4D0ECE700BF2DE9F04323 -S31508003FE882B08146904604464FF0000501F1FF3736 -S31508003FF815E0404601A94FF001026B46FFF74EFC53 -S31508004008009B012B0ED19DF804300D2B08D0337078 -S3150800401804F10104264605F101050A2B02D02646B5 -S31508004028AF42E6DC4FF0000333709D4208BF99465D -S31508004038484602B0BDE8F08330B582B00D46C4B232 -S315080040480A2C03D14FF00D00FFF7F6FF02A901F875 -S31508004058084D284669464FF0010201ABFFF7FEFCFA -S315080040680198012814BF4FF0FF30012002B030BD77 -S3150800407870B505460E46007870B14FF00004314613 -S31508004088FFF7DAFFB0F1FF3F09D004F1010415F88C -S31508004098010F0028F3D104E04FF0000401E04FF0C7 -S315080040A8FF34204670BD00BF80B27F2826D911B9D3 -S315080040B8C7280BD11AE0FF281ED845F28403C0F694 -S315080040C80003A0F1800033F81000704745F2840217 -S315080040D8C0F600024FF0010332F8021F814207D0EA -S315080040E803F101039BB2802BF6D101E04FF00003E0 -S315080040F803F18000C0B270474FF00000704700BF58 -S3150800410880B261280ED044F6A461C0F600014FF0CB -S31508004118000202F1010231F8023F5BB18342F8D18D -S3150800412813B970474FF0000244F6C443C0F60003BB -S3150800413833F81200704700BF30B403464CF6CD4436 -S31508004148CCF6CC4400E0114601F10102A4FB035366 -S31508004158DB08F8D14FF000034B7011464CF6CD45F5 -S31508004168CCF6CC4502F1FF32A5FB00434FEAD30350 -S3150800417803EB8304A0EB440000F1300001F8010DBD -S315080041881846002BEED1104630BC704770B5064667 -S315080041984FF000042546305D00F0F4FBC0B2A0F1EC -S315080041A83003DBB2162B12D8A0F13A02D2B2062A8D -S315080041B810D9092B84BFA0F13703DBB203EB051529 -S315080041C805F0FF0504F10104022CE4D104E04FF0E0 -S315080041D8000501E04FF00005284670BD00B5C3B2DA -S315080041E803F00F00092B03D900F137005DF804FB2B -S315080041F800F1300000F0C6FBC0B25DF804FB00BF52 -S3150800420830B50C46C5B24FEA1510FFF7E7FF207020 -S3150800421805F00F00FFF7E2FF60704FF00003A37088 -S31508004228204630BD2DE9F04F81B0074689469046AD -S3150800423801B138B945F28410C0F600004FF415717B -S31508004248FDF706FC387800F09DFB532840F0D1802E -S31508004258787800F08FFB002800F0CE807B78312B29 -S3150800426800F0D680322B00F0D680332B00F0D680AB -S315080042784FF00005C8E02046FFF788FF3618F6B263 -S3150800428805F1FF35ADB204F10204012DF3D8204635 -S31508004298FFF77CFF6FEA0606F6B2864240F0AF8063 -S315080042A8BAF1010F35D0BAF1000F04D0BAF1020FEE -S315080042B840F0A88061E05846FFF768FF0546009871 -S315080042C8FFF764FF4FEA0024C9F8004007F1060023 -S315080042D8FFF75CFF2418C9F80040A5F10305ADB23D -S315080042E8B8F1000F00F090802EB2002E40F38C80B3 -S315080042F807F108074FF000043846FFF747FF08F8A4 -S31508004308040007F1020704F10104A4B2B442F3DB7E -S315080043187AE05846FFF73AFF05460098FFF736FF52 -S315080043284FEA0044C9F8004007F10600FFF72EFFD8 -S3150800433804EB0024C9F8004007F10800FFF726FF38 -S315080043482418C9F80040A5F10405ADB2B8F1000F64 -S315080043585AD02EB2002E57DD07F10A074FF000048F -S315080043683846FFF713FF08F8040007F1020704F1B7 -S315080043780104A4B2A642F3DC46E05846FFF706FF56 -S3150800438805460098FFF702FF4FEA0064C9F800409F -S3150800439807F10600FFF7FAFE04EB0044C9F80040E7 -S315080043A807F10800FFF7F2FE04EB0024C9F80040FD -S315080043B807F10A00FFF7EAFE2418C9F80040A5F134 -S315080043C80505ADB2B8F1000F1ED02EB2002E1BDDC2 -S315080043D807F10C074FF000043846FFF7D7FE08F830 -S315080043E8040007F1020704F10104A4B2B442F3DB9E -S315080043F80AE04FF0000507E04FF0000504E04FF625 -S31508004408FF7501E04FF0000528B201B0BDE8F08F4E -S315080044184FF0000A04E04FF0010A01E04FF0020AE3 -S3150800442807F1020B5846FFF7B1FE0646054607F19F -S31508004438040300931C461EE700B540F66C13C2F247 -S3150800444800034FF00000186040F67811C2F2000128 -S31508004458FFF746F938B145F28410C0F600004FF068 -S315080044689101FDF7F5FA5DF804FB00BF40F66C13F9 -S31508004478C2F200031868D0F1010038BF002070475F -S3150800448800B5FDF78BFB012810D040F66C13C2F275 -S3150800449800031B6873B9FBF723FF01280ED140F602 -S315080044A86C13C2F2000318605DF804FB4FF00000B5 -S315080044B85DF804FB4FF000005DF804FB4FF00000C0 -S315080044C85DF804FB70B540F66C13C2F200031B686E -S315080044D8002B00F04B82012B43D1FBF72DFF45F249 -S315080044E8F810C0F60000FBF777FF45F21C20C0F667 -S315080044F80000FBF771FFFBF719FF0146B3484FF0B9 -S315080045080102FFF707F950B145F24420C0F600004A -S31508004518FBF762FF4FF00100FBF74CFF70BD45F251 -S315080045284C20C0F60000FBF757FF45F25420C0F6AA -S315080045380000FBF751FF45F27820C0F60000FBF7AC -S315080045484BFF40F67013C2F200034FF000021A60E0 -S315080045585A6040F66C13C2F200034FF002021A6062 -S3150800456870BD022B40F0078140F6D050C2F2000019 -S3150800457840F67814C2F2000404F50D724FF48071FF -S31508004588FFF72CFD94F93A32002B15DA45F2442048 -S31508004598C0F60000FBF720FF4FF00200FBF70AFF02 -S315080045A804F50D70FFF7AEFB40F66C13C2F2000374 -S315080045B84FF000021A6070BD10B340F6D050C2F230 -S315080045C8000000F5C0714FF00002FFF72BFE064603 -S315080045D8B0F1FF3F14D145F24420C0F60000FBF7BE -S315080045E8FBFE4FF00300FBF7E5FE7848FFF78AFB6A -S315080045F840F66C13C2F200034FF000021A6070BD51 -S3150800460833B2002B2CDD40F67013C2F200035B6848 -S315080046186BB940F67013C2F2000340F6D052C2F2E4 -S315080046280002D2F880211A6036B25E6018E040F6B9 -S31508004638D052C2F20002D2F8801140F67012C2F2C5 -S3150800464800021268914204D240F67012C2F20002C1 -S31508004658116040F67012C2F2000236B2F3185360BF -S3150800466840F67813C2F20003D3F83C22D3F8403256 -S315080046789A4240F07B8155484FF00001FFF74CFB02 -S31508004688A0B145F24420C0F60000FBF7A5FE4FF09E -S315080046980400FBF78FFE4D48FFF734FB40F66C1312 -S315080046A8C2F200034FF000021A6070BD45F24C20B2 -S315080046B8C0F60000FBF790FE45F2A820C0F60000F9 -S315080046C8FBF78AFE40F67014C2F20004606840F6EA -S315080046D82C15C2F200052946FFF72EFD2846FBF7DA -S315080046E87BFE45F2B420C0F60000FBF775FEE078BD -S315080046F82946FFF785FDA07805F10201FFF780FD39 -S31508004708607805F10401FFF77BFD207805F10601BD -S31508004718FFF776FD2846FBF75FFE45F25830C0F6E8 -S315080047280000FBF759FE20686168FCF79BFDA0B9F5 -S3150800473845F24420C0F60000FBF74EFE4FF0050090 -S31508004748FBF738FE2148FFF7DDFA40F66C13C2F28C -S3150800475800034FF000021A6070BD45F24C20C0F6FF -S315080047680000FBF739FE40F66C13C2F200034FF05F -S3150800477803021A6070BD032B40F0F88040F6D0504B -S31508004788C2F2000040F67814C2F2000404F50D726D -S315080047984FF48071FFF722FC94F93A32002B17DAA6 -S315080047A845F2D020C0F60000FBF716FE4FF00200CF -S315080047B8FBF700FE04F50D70FFF7A4FA40F66C1334 -S315080047C8C2F200034FF000021A6070BDAC0B00205D -S315080047D810B340F6D050C2F2000000F5C07100F5DB -S315080047E88072FFF71FFD0646B0F1FF3F14D145F268 -S315080047F8F420C0F60000FBF7EFFD4FF00300FBF7C7 -S31508004808D9FD5B48FFF77EFA40F66C13C2F200033F -S315080048184FF000021A6070BD33B2002B5EDD45F218 -S315080048281830C0F60000FBF7D7FD36B240F62C1450 -S31508004838C2F2000430462146FFF77EFC2046FBF705 -S31508004848CBFD45F22830C0F60000FBF7C5FD40F65B -S31508004858D055C2F2000595F883012146FFF7D0FC2A -S3150800486895F8820104F10201FFF7CAFC95F881015F -S3150800487804F10401FFF7C4FC95F8800104F1060168 -S31508004888FFF7BEFC2046FBF7A7FD45F25830C0F6F1 -S315080048980000FBF7A1FDD5F8800105F580723146C1 -S315080048A8FCF7DAFCA0B945F24420C0F60000FBF78D -S315080048B893FD4FF00600FBF77DFD2D48FFF722FA1A -S315080048C840F66C13C2F200034FF000021A6070BD7E -S315080048D845F24C20C0F60000FBF77EFD40F678133B -S315080048E8C2F20003D3F83C22D3F840329A423DD1AB -S315080048F845F24030C0F60000FBF76EFDFCF7BEFC3B -S31508004908A0B945F24420C0F60000FBF765FD4FF054 -S315080049180700FBF74FFD1648FFF7F4F940F66C1346 -S31508004928C2F200034FF000021A6070BD45F24C202F -S31508004938C0F60000FBF750FD45F25C30C0F60000F3 -S31508004948FBF74AFD0A48FFF7DDF945F27430C0F669 -S315080049580000FBF741FD40F66C13C2F200034FF066 -S3150800496800021A60FBF704FDFCF73EFC70BD00BFA9 -S31508004978AC0B0020A0F1300009288CBF00200120CC -S31508004988704700BFA0F16103DBB2192B98BF203826 -S31508004998704700BF30B504460D4600F017F840F6D4 -S315080049A85473C2F200031D6040F65873C2F200033E -S315080049B81C601A461368002BFCD100F009F840F66B -S315080049C85473C2F20003186830BD00BF704700BFB1 -S309080049D8704700BF57 -S315080049DC2F64656D6F70726F675F6F6C696D657844 -S315080049EC5F73746D3332703130332E7372656300B6 -S315080049FC2F626F6F746C6F672E74787400000000EA -S31508004A0C433A2F576F726B2F736F667477617265A3 -S31508004A1C2F4F70656E424C542F5461726765742F14 -S31508004A2C44656D6F2F41524D434D335F53544D338F -S31508004A3C325F4F6C696D65785F53544D3332503124 -S31508004A4C30335F43726F7373776F726B732F426F6A -S31508004A5C6F742F6964652F2E2E2F6D61696E2E6308 -S31508004A6C00000000433A2F576F726B2F736F6674F2 -S31508004A7C776172652F4F70656E424C542F54617274 -S31508004A8C6765742F44656D6F2F41524D434D335FE7 -S31508004A9C53544D33325F4F6C696D65785F53544D83 -S31508004AAC3332503130335F43726F7373776F726B77 -S31508004ABC732F426F6F742F6964652F2E2E2F2E2E2F -S31508004ACC2F2E2E2F2E2E2F536F757263652F415254 -S31508004ADC4D434D335F53544D33322F43726F7373BB -S31508004AEC776F726B732F766563746F72732E6300B0 -S31508004AFC433A2F576F726B2F736F667477617265B3 -S31508004B0C2F4F70656E424C542F5461726765742F23 -S31508004B1C44656D6F2F41524D434D335F53544D339E -S31508004B2C325F4F6C696D65785F53544D3332503133 -S31508004B3C30335F43726F7373776F726B732F426F79 -S31508004B4C6F742F6964652F2E2E2F2E2E2F2E2E2F37 -S31508004B5C2E2E2F536F757263652F41524D434D336D -S31508004B6C5F53544D33322F756172742E63000000F7 -S31508004B7C0060000800200000030000000080000808 -S31508004B8C002000000400000000A00008002000001F -S31508004B9C0500000000C00008002000000600000008 -S31508004BAC00E00008002000000700000000000108D3 -S31508004BBC002000000800000000200108002000006A -S31508004BCC0900000000400108002000000A0000004F -S31508004BDC00600108002000000B000000008001089E -S31508004BEC002000000C00000000A0010800200000B6 -S31508004BFC0D00000000C00108002000000E00000097 -S31508004C0C00E00108002000000F0000004F70656EE0 -S31508004C1C424C5400222A3A3C3E3F7C7F000000005E -S31508004C2C2B2C3B3D5B5D0000809A90418E418F801A -S31508004C3C4545454949498E8F9092924F994F5555FE -S31508004C4C59999A9B9C9D9E9F41494F55A5A5A6A7E8 -S31508004C5CA8A9AAABAC21AEAFB0B1B2B3B4B5B6B7CE -S31508004C6CB8B9BABBBCBDBEBFC0C1C2C3C4C5C6C732 -S31508004C7CC8C9CACBCCCDCECFD0D1D2D3D4D5D6D722 -S31508004C8CD8D9DADBDCDDDEDFE0E1E2E3E4E5E6E712 -S31508004C9CE8E9EAEBECEDEEEFF0F1F2F3F4F5F6F702 -S31508004CACF8F9FAFBFCFDFEFF01030507090E1012C5 -S31508004CBC1416181C1E000000410042004300440054 -S31508004CCC450046004700480049004A004B004C0086 -S31508004CDC4D004E004F005000510052005300540036 -S31508004CEC550056005700580059005A002100E0FF9D -S31508004CFCE1FFE5FFE2FFE3FFC000C100C200C3000D -S31508004D0CC400C500C600C700C800C900CA00CB004D -S31508004D1CCC00CD00CE00CF00D000D100D200D300FD -S31508004D2CD400D500D600D800D900DA00DB00DC00A8 -S31508004D3CDD00DE007801000102010401060108010C -S31508004D4C0A010C010E0110011201140116011801B9 -S31508004D5C1A011C011E012001220124012601280129 -S31508004D6C2A012C012E013001320134013601390198 -S31508004D7C3B013D013F0141014301450147014A0100 -S31508004D8C4C014E01500152015401560158015A0169 -S31508004D9C5C015E01600162016401660168016A01D9 -S31508004DAC6C016E01700172017401760179017B0147 -S31508004DBC7D01910191039203930394039503960342 -S31508004DCC9703980399039A039B039C039D039E03DD -S31508004DDC9F03A003A103A303A403A503A603A70388 -S31508004DECA803A903AA031004110412041304140437 -S31508004DFC150416041704180419041A041B041C04B5 -S31508004E0C1D041E041F042004210422042304240464 -S31508004E1C250426042704280429042A042B042C0414 -S31508004E2C2D042E042F0401040204030404040504AF -S31508004E3C06040704080409040A040B040C040E04EB -S31508004E4C0F04602161216221632164216521662199 -S31508004E5C6721682169216A216B216C216D216E21DC -S31508004E6C6F2121FF22FF23FF24FF25FF26FF27FFA3 -S31508004E7C28FF29FF2AFF2BFF2CFF2DFF2EFF2FFFC4 -S31508004E8C30FF31FF32FF33FF34FF35FF36FF37FF74 -S31508004E9C38FF39FF3AFF00006100620063006400C6 -S31508004EAC650066006700680069006A006B006C00A4 -S31508004EBC6D006E006F007000710072007300740054 -S31508004ECC750076007700780079007A00A100A200B8 -S31508004EDCA300A500AC00AF00E000E100E200E3008F -S31508004EECE400E500E600E700E800E900EA00EB006C -S31508004EFCEC00ED00EE00EF00F000F100F200F3001C -S31508004F0CF400F500F600F800F900FA00FB00FC00C6 -S31508004F1CFD00FE00FF00010103010501070109015F -S31508004F2C0B010D010F0111011301150117011901CF -S31508004F3C1B011D011F01210123012501270129013F -S31508004F4C2B012D012F0131013301350137013A01AE -S31508004F5C3C013E01400142014401460148014B0116 -S31508004F6C4D014F01510153015501570159015B017F -S31508004F7C5D015F01610163016501670169016B01EF -S31508004F8C6D016F0171017301750177017A017C015D -S31508004F9C7E019201B103B203B303B403B503B6039E -S31508004FACB703B803B903BA03BB03BC03BD03BE03FB -S31508004FBCBF03C003C103C303C403C503C603C703A6 -S31508004FCCC803C903CA033004310432043304340455 -S31508004FDC350436043704380439043A043B043C04D3 -S31508004FEC3D043E043F044004410442044304440483 -S31508004FFC450446044704480449044A044B044C0433 -S3150800500C4D044E044F0451045204530454045504DD -S3150800501C56045704580459045A045B045C045E0489 -S3150800502C5F047021712172217321742175217621F7 -S3150800503C7721782179217A217B217C217D217E217A -S3150800504C7F2141FF42FF43FF44FF45FF46FF47FFD1 -S3150800505C48FF49FF4AFF4BFF4CFF4DFF4EFF4FFFE2 -S3150800506C50FF51FF52FF53FF54FF55FF56FF57FF92 -S3150800507C58FF59FF5AFF0000C700FC00E900E20080 -S3150800508CE400E000E500E700EA00EB00E800EF00CA -S3150800509CEE00EC00C400C500C900E600C600F4002A -S315080050ACF600F200FB00F900FF00D600DC00A200B7 -S315080050BCA300A500A7209201E100ED00F300FA0079 -S315080050CCF100D100AA00BA00BF001023AC00BD0045 -S315080050DCBC00A100AB00BB009125922593250225A7 -S315080050EC24256125622556255525632551255725E1 -S315080050FC5D255C255B251025142534252C251C25BA -S3150800510C00253C255E255F255A25542569256625E7 -S3150800511C602550256C256725682564256525592540 -S3150800512C5825522553256B256A2518250C258825BF -S3150800513C84258C2590258025B103DF009303C003B5 -S3150800514CA303C303B500C403A6039803A903B403B6 -S3150800515C1E22C603B50329226122B10065226422E8 -S3150800516C20232123F7004822B0001922B7001A225F -S3150800517C7F20B200A025A000433A2F576F726B2FE1 -S3150800518C736F6674776172652F4F70656E424C54F7 -S3150800519C2F5461726765742F44656D6F2F41524D9C -S315080051AC434D335F53544D33325F4F6C696D65789D -S315080051BC5F53544D3332503130335F43726F7373D0 -S315080051CC776F726B732F426F6F742F6964652F2E0E -S315080051DC2E2F2E2E2F2E2E2F2E2E2F536F757263AB -S315080051EC652F66696C652E63000000004669726D52 -S315080051FC7761726520757064617465207265717566 -S3150800520C6573742064657465637465640A0D0000BF -S3150800521C4F70656E696E67206669726D7761726527 -S3150800522C2066696C6520666F722072656164696EAA -S3150800523C672E2E2E000000004552524F520A0D00C2 -S3150800524C4F4B0A0D000000005374617274696E6747 -S3150800525C207468652070726F6772616D6D696E6710 -S3150800526C2073657175656E63650A0D0050617273FE -S3150800527C696E67206669726D776172652066696CFE -S3150800528C6520746F206F627461696E206572617334 -S3150800529C652073697A652E2E2E000000457261739F -S315080052AC696E6720000000002062797465732066B9 -S315080052BC726F6D206D656D6F727920617420307810 -S315080052CC0000000052656164696E67206C696E6542 -S315080052DC2066726F6D2066696C652E2E2E455252AD -S315080052EC4F520A0D00000000496E76616C69642005 -S315080052FC636865636B73756D20666F756E642E2EA9 -S3150800530C2E4552524F520A0D0000000050726F671C -S3150800531C72616D6D696E67200000000020627974F9 -S3150800532C657320746F206D656D6F727920617420BA -S3150800533C3078000057726974696E672070726F67EF -S3150800534C72616D20636865636B73756D2E2E2E0006 -S3150800535C436C6F73696E67206669726D77617265E7 -S3150800536C2066696C650A0D004669726D776172650F -S3150800537C20757064617465207375636365737366F1 -S3150800538C756C6C7920636F6D706C657465640A0D49 -S3090800539C00000000FF -S306080053A001FD +S31508001CE88200540036007400890189018901A90017 +S31508001CF88901C500CA00DE0042783F2A04D94FF098 +S31508001D082200FFF757FF4EE140F2D865C2F20005F8 +S31508001D1805F10400A96CFFF77FFA4FF0FF03EB7093 +S31508001D286278AB6CD318AB64637803F10103A5F842 +S31508001D38443038E143783F2B04D94FF02200FFF7A7 +S31508001D4839FF30E1416840F2D865C2F20005A96456 +S31508001D5805F104006278FFF75FFA4FF0FF03EB70AE +S31508001D686278AB6CD318AB64637803F10103A5F802 +S31508001D78443018E140F2D863C2F200034FF0FF027C +S31508001D88DA7042689A644FF00102A3F844200AE11F +S31508001D9840F2D863C2F200034FF0FF02DA70996C7A +S31508001DA8436843B14FF0000211F8010B1218D2B27A +S31508001DB8013BF9D101E04FF0000240F2D863C2F2C4 +S31508001DC80003C3F807204FF001021A714FF000020A +S31508001DD85A719A714FF00802A3F84420E3E040F2DA +S31508001DE8D863C2F200034FF0FF02DA7044F60C42D9 +S31508001DF8C0F600029A644FF000021A715A719A7175 +S31508001E084FF00701D9711A725A729A724FF008027E +S31508001E18A3F84420C7E04FF00000FFF7CBFEC2E066 +S31508001E2840F2D863C2F200034FF0FF02DA704FF0AF +S31508001E3800021A71597859719A71DA711A724FF043 +S31508001E480602A3F84420AEE040F2D864C2F20004C1 +S31508001E584FF000032370FFF7A5FE4FF0FF03E3706A +S31508001E684FF00103A4F844309DE040F2D863C2F26B +S31508001E780003986C04F101024FF03F01FFF7ECF9F3 +S31508001E8820B94FF03100FFF795FE8CE040F2D86391 +S31508001E98C2F200034FF0FF02DA709A6C02F13F02B1 +S31508001EA89A644FF00102A3F844207CE043783E2B5D +S31508001EB804D94FF02200FFF77DFE74E040F2D8639C +S31508001EC8C2F200034FF0FF02DA704FF00102A3F8DE +S31508001ED84420417841B9FFF7D1F9002863D14FF07A +S31508001EE83100FFF767FE5EE040F2D863C2F20003EE +S31508001EF8986C04F10202FFF7AFF920B94FF03100E8 +S31508001F08FFF758FE4FE040F2D863C2F20003617843 +S31508001F189A6C8A189A6446E040F2D863C2F20003BB +S31508001F284FF0FF02DA704FF000021A715A714FF03B +S31508001F3840019971DA711A725A724FF00702A3F8BA +S31508001F48442030E040F2D863C2F20003986C616816 +S31508001F58FFF788F920B94FF03100FFF72BFE22E08A +S31508001F6840F2D863C2F200034FF0FF02DA704FF06E +S31508001F780102A3F8442016E0FFF762F940F2D86395 +S31508001F88C2F200034FF0FF02DA704FF00102A3F81D +S31508001F98442008E04FF03100FFF70CFE03E04FF04D +S31508001FA82000FFF707FE40F2D863C2F2000393F851 +S31508001FB84330012B03D14FF01000FFF7FBFD40F229 +S31508001FC8D863C2F200034FF0010283F8432003F1F5 +S31508001FD80300B3F84410FFF7CBFD30BD2AB111F85A +S31508001FE8013B00F8013B013AF9D170471AB100F8EC +S31508001FF8011B013AFBD17047037833B18B4204D0F1 +S3150800200810F8013F0BB18B42FAD11846704700BF4A +S315080020180346C87E8A7E42EA00201B78032B05D130 +S315080020284A7D0B7D43EA022340EA0340704700BF16 +S315080020388176C1F30723C3764FEA114101754FEA42 +S3150800204811214175704700BF00F10B014FF00003DD +S315080020584FEA530242EAC31310F8012B9B1803F000 +S31508002068FF038842F4D11846704700BF00B590B1FF +S315080020780368A3B11A78B2B1D9888288914216D171 +S315080020885878FEF761FD00F00100002814BF032008 +S3150800209800205DF804FB4FF009005DF804FB4FF0DB +S315080020A809005DF804FB4FF009005DF804FB4FF0E2 +S315080020B809005DF804FB00BF10B504460A464078D7 +S315080020C804F134014FF00103FEF74AFD00283CD11C +S315080020D894F8332294F8323243EA022212B24AF6C4 +S315080020E85523CFF6FF739A4232D194F86D2094F8A7 +S315080020F86C304FEA034343EA026294F86A301343A2 +S3150800210894F86B2043EA022222F07F4244F24613EF +S31508002118C0F254039A421ED094F8890094F888307D +S315080021284FEA034343EA006094F88630034394F879 +S31508002138870043EA002020F07F4044F24613C0F2A5 +S315080021485403C01A18BF012010BD4FF0030010BD74 +S315080021584FF0020010BD4FF0000010BD2DE9F04108 +S31508002168D5B203681A78A2F13002092A00F2DF818B +S315080021785C783A2C40F0DB8103F1020303604FF0E8 +S3150800218800030B60002A40F0868140F62813C2F245 +S3150800219800031C68002C00F082810C60237883B148 +S315080021A86078FEF7D1FC10F0010F0AD1002D00F077 +S315080021B87A8100F00400002814BF0A200020BDE830 +S315080021C8F0814FF0000020706070FEF70BFB10F0EE +S315080021D8010F40F06C811DB110F0040F40F06B81BF +S315080021E820464FF00001FFF767FF0346012819D17B +S315080021F894F8F631002B00F0628194F8FD2194F8E2 +S31508002208FC314FEA034343EA026294F8FA3113436E +S3150800221894F8FB5143EA052520462946FFF74CFF63 +S31508002228034601E04FF00005032B00F04C81002B14 +S3150800223840F04D8194F8402094F83F3043EA022351 +S315080022481BB2B3F5007F40F0468194F84B0094F82A +S315080022584A3053EA00200ED194F85B2094F85A3095 +S315080022684FEA034343EA026294F85830134394F852 +S31508002278590043EA0020E06194F84410E17001F13E +S31508002288FF33DBB2012B00F22A8194F84130A370A0 +S31508002298002B00F0288103F1FF321A4240F027810B +S315080022A894F8466094F8452042EA0622228112F0FC +S315080022B80F0F40F0208194F8487094F8476056EA62 +S315080022C807260ED194F8577094F856604FEA0646D2 +S315080022D846EA076794F854603E4394F8557046EA08 +S315080022E8072694F843C094F8427057EA0C2700F07A +S315080022F8068101FB00FC07EB121161448E42C0F00F +S315080023080281761AB6FBF3F3002B00F0008140F63B +S31508002318F576B3428CBF022601264FF6F578434573 +S3150800232800F2098103F10203A3612562EF196762C6 +S315080023386918E162032E15D1002A40F0EC8094F85A +S31508002348631094F862204FEA024242EA016194F85F +S3150800235860200A4394F8611042EA0122A2624FEA11 +S31508002368830311E0002A00F0DA806744A762022E88 +S3150800237802D14FEA430307E04FF0030202FB03F2D8 +S3150800238803F0010303EB520303F5FE7303F103039A +S31508002398B0EB532FC0F0C7804FF0FF3323614FF0DF +S315080023A80003E360032E68D1637194F8652094F8F6 +S315080023B8643043EA0222AA186261607804F134019B +S315080023C84FF00103FEF7CCFB002856D194F83322C8 +S315080023D894F8323243EA022212B24AF65523CFF665 +S315080023E8FF739A4249D194F8372094F836304FEA61 +S315080023F8034343EA026294F83430134394F83520C9 +S3150800240843EA022245F25223C4F261139A4234D1AE +S3150800241894F81B2294F81A324FEA034343EA0262F5 +S3150800242894F81832134394F8192243EA022247F219 +S315080024387223C6F241139A421FD194F8232294F8BC +S3150800244822324FEA034343EA026294F820321343DE +S3150800245894F8212243EA0223E36094F81F2294F8A9 +S315080024681E324FEA034343EA026294F81C321343C6 +S3150800247894F81D2243EA022323612670334A1388F7 +S3150800248803F101039BB21380E3804FF00000206339 +S315080024982071BDE8F0814FF00B00BDE8F0814FF0E0 +S315080024A80C00BDE8F0814FF00000BDE8F0814FF060 +S315080024B80300BDE8F0814FF00A00BDE8F0814FF04F +S315080024C80D00BDE8F0814FF00100BDE8F0814FF03E +S315080024D80D00BDE8F0814FF00D00BDE8F0814FF022 +S315080024E80D00BDE8F0814FF00D00BDE8F0814FF012 +S315080024F80D00BDE8F0814FF00D00BDE8F0814FF002 +S315080025080D00BDE8F0814FF00D00BDE8F0814FF0F1 +S315080025180D00BDE8F0814FF00D00BDE8F0814FF0E1 +S315080025280D00BDE8F0814FF00D00BDE8F0814FF0D1 +S3150800253800030B6029E603F10203A3612562EF197C +S3150800254867626918E1624FF00306F5E62409002078 +S315080025582DE9F0410D4601F109060369002B61D002 +S31508002568446994F80C802378202B1ED027463146D8 +S315080025784FF0000208F0080C03E017F8013F202B7B +S3150800258813D0052B08BFE523BCF1000F06D0A3F12D +S315080025984106F6B2192E9CBF2033DBB201F8013B7F +S315080025A80E4602F10102082AE7D1237A202B21D008 +S315080025B833464FF02E0203F8012B227A202A18D028 +S315080025C804F1080106F1040C08F0100703E011F8F5 +S315080025D8012F202A0ED037B1A2F14106F6B2192EDC +S315080025E89CBF2032D2B203F8012B1E466345EED1B2 +S315080025F800E01E46E37A2B72E27FA37F4FEA034385 +S3150800260843EA0263227F1343627F43EA02232B606D +S31508002618627E237E43EA0223AB80E27DA37D43EAFA +S315080026280223EB804FF000033370AE69002E31D0D9 +S31508002638EB69002B2ED00369DBB1028C4FF6FF73CA +S315080026489A4219D0C7693888C8B14FF00004A0461D +S31508002658414601F023FDA8B1EB6903F1FF33A34214 +S3150800266813D9305504F1010437F814000028EFD1BE +S315080026780DE04FF000040AE04FF0000407E04FF0C1 +S31508002688000404E04FF0000401E04FF000044FF0A6 +S3150800269800033355BDE8F0812DE9F0410446037976 +S315080026A8002B29D0056B00F13407407839462A46AD +S315080026B84FF00103FEF7A8FA10BB4FF00003237189 +S315080026C8636A9D4220D3E2699B189D4220D2E67828 +S315080026D8012E21D94FF00108E369ED1860783946CB +S315080026E82A464346FEF790FA06F1FF36012EF3D13D +S315080026F84FF00000BDE8F0814FF00000BDE8F0811A +S315080027084FF00100BDE8F0814FF00000BDE8F08108 +S315080027184FF00000BDE8F0814FF00000BDE8F081F9 +S3150800272830B504460D46036B8B420DD0FFF7B4FF50 +S3150800273868B9607804F134012A464FF00103FEF7B8 +S315080027480FFA38B9256330BD4FF0000030BD4FF099 +S31508002758010030BD4FF0010030BD00BFF0B504469A +S31508002768FFF79AFF054600285FD12378032B53D134 +S315080027786379002B50D04FF00006266304F134071E +S31508002788384631464FF40072FFF730FC4FF05503D0 +S3150800279884F832324FF0AA0384F833324FF05203E2 +S315080027A884F8343084F835304FF0610384F83630CD +S315080027B84FF0410284F837204FF0720184F8181256 +S315080027C884F8191284F81A2284F81B32236984F8C3 +S315080027D81C32C3F3072284F81D224FEA134284F8F1 +S315080027E81E224FEA136384F81F32E36884F82032FE +S315080027F8C3F3072284F821224FEA134284F82222D7 +S315080028084FEA136384F823326078626939464FF0D1 +S315080028180103FEF7F9F9667160784FF000010A4678 +S31508002828FEF75CFA002818BF01252846F0BD00BF48 +S31508002838A1F102018369A3F10203994204D28278BD +S31508002848C36A02FB013070474FF00000704700BFAB +S31508002858F0B505460C46012962D98369994262D2C0 +S315080028680378022B2DD0032B3DD0012B5ED101EB2B +S315080028785106416A01EB5621FFF752FF002858D145 +S315080028884FEAC6534FEAD353EB1893F8347006F158 +S315080028980106696A01EB56212846FFF741FF002819 +S315080028A84AD14FEAC6564FEAD656AD1995F83400B6 +S315080028B847EA002014F0010F12BF00090005000DB1 +S315080028C8F0BD416A01EB1421FFF72AFF002836D12B +S315080028D84FEA046405EBD45595F8350095F8343075 +S315080028E843EA0020F0BD416A01EBD411FFF718FF4F +S315080028F8002827D14FEA446405EBD45595F83700E4 +S3150800290895F836304FEA034343EA006095F83430C1 +S31508002918034395F8350043EA002020F07040F0BDDF +S315080029284FF00100F0BD4FF00100F0BD4FF0FF3049 +S31508002938F0BD4FF0FF30F0BD4FF0FF30F0BD4FF05F +S31508002948FF30F0BD4FF0FF30F0BD00BF70B504464C +S315080029588DB2C580816801293CD003689A6991427D +S315080029683BD279B91A78032A01D1996A51B94FF035 +S315080029780002E2601A89AA4232D99B6A03EB151348 +S3150800298823611CE09E784FEA0616B54210D32068E4 +S31508002998FFF75EFF0146B0F1FF3F24D0012825D98D +S315080029A823689B69984224D2AD1BADB2AE42EED9D4 +S315080029B8E1602068FFF73CFF00EB151020612368EB +S315080029C803F1340305F00F0503EB451565614FF070 +S315080029D8000070BD4FF0020070BD4FF0020070BDD8 +S315080029E84FF0020070BD4FF0010070BD4FF00200B5 +S315080029F870BD4FF0020070BDF0B505460C46164688 +S31508002A0801297FD9836999427FD20378022B42D05C +S31508002A18032B51D0012B6FD101EB5107416A01EB0A +S31508002A285721FFF77DFE002868D14FEAC7534FEABA +S31508002A38D35314F0010409D0EA1892F8342002F0A6 +S31508002A480F02F1B242EA0112D2B200E0F2B2EB1872 +S31508002A5883F8342007F101074FF001032B71696ADF +S31508002A6801EB57212846FFF75BFE002846D14FEAB7 +S31508002A78C7574FEAD75714B1C6F3071607E0EB1935 +S31508002A8893F8343023F00F03C6F303261E43EF19D1 +S31508002A9887F8346032E0416A01EB1421FFF740FEFB +S31508002AA860BB4FEA046405EBD45484F83460C6F373 +S31508002AB8072684F8356021E0416A01EBD411FFF74F +S31508002AC82FFED8B94FEA446405EBD45494F8373046 +S31508002AD84FEA036303F070431E4384F83460C6F371 +S31508002AE8072384F835304FEA164384F836304FEA18 +S31508002AF8166684F8376001E04FF002004FF00103CC +S31508002B082B71F0BD4FF00200F0BD4FF00200F0BD8A +S31508002B182DE9F0410546884631B9C6686EB183691C +S31508002B289E4228BF01260AE0FFF792FE012844D9EB +S31508002B38AB6998424ED3464601E04FF00106344643 +S31508002B484FF0020704F10104AB699C4202D3012E37 +S31508002B5837D93C4628462146FFF77AFE38B1B0F100 +S31508002B68FF3F37D0012835D0B442EBD12DE02646B1 +S31508002B78284621466FF07042FFF73EFFB0B9B8F114 +S31508002B88000F05D0284641462246FFF735FF68B9A3 +S31508002B98EE602B69B3F1FF3F1BD003F1FF332B61BE +S31508002BA84FF001036B712046BDE8F081012814BF78 +S31508002BB801204FF0FF30BDE8F0814FF00100BDE875 +S31508002BC8F0814FF00000BDE8F0814FF00000BDE845 +S31508002BD8F0812046BDE8F0812DE9F04104460D460E +S31508002BE8C68806F10106B6B2002E71D00369002B15 +S31508002BF872D016F00F0F5ED103F101030361C168A5 +S31508002C0821B903681B89B3426AD954E000688378F6 +S31508002C1803F1FF3313EA16134DD1FFF719FE0746DA +S31508002C28012861D9B0F1FF3F62D0206883699F42C5 +S31508002C383BD3002D60D0E168FFF76AFF07460028F6 +S31508002C485ED0012860D0B0F1FF3F61D02068FFF759 +S31508002C5823FD002860D1206800F134004FF00001F8 +S31508002C684FF40072FFF7C2F9256828463946FFF778 +S31508002C78DFFD28634FF000054FF001080EE083F8E2 +S31508002C8804802068FFF708FD002849D123681A6BD5 +S31508002C9802F101021A6305F10105EDB223689A7873 +S31508002CA8AA42ECD81A6B551B1D63E760206839469B +S31508002CB8FFF7BEFD2061E680236803F1340306F0BA +S31508002CC80F0603EB461666614FF00000BDE8F08173 +S31508002CD84FF00400BDE8F0814FF00400BDE8F0812C +S31508002CE84FF00400BDE8F0814FF00200BDE8F0811E +S31508002CF84FF00100BDE8F0814FF00400BDE8F0810F +S31508002D084FF00700BDE8F0814FF00200BDE8F081FA +S31508002D184FF00100BDE8F0814FF00100BDE8F081F1 +S31508002D284FF00100BDE8F0812DE9F04F83B0044665 +S31508002D384FF00001FFF70AFE0546002840F0AD806F +S31508002D484FF0FF08474644F6A849C0F6000909F1B6 +S31508002D580C0A20682169FFF7E3FC0546002840F0BD +S31508002D689C8066693378002B00F09580F27AE52B0B +S31508002D7879D002F03F0212F0080F02D00F2A75D157 +S31508002D8801E00F2A53D1E569002D7AD013F0400FD8 +S31508002D9806D096F80D80E288228403F0BF0701E082 +S31508002DA89F4266D196F80DB0C34565D1337823F0AE +S31508002DB8400303F1FF3303EB430203EB820201925C +S31508002DC809F1FF384FF00102009218F8013FF2188E +S31508002DD85278F35C43EA0220009B93B101F08AF922 +S31508002DE802900090019AFE2A1DD835F8120001F0C3 +S31508002DF881F9029B834216D1019A02F101020192D6 +S31508002E0803E04FF6FF7398420DD1D045DDD13378EC +S31508002E1813F0400F45D0009A002A42D0019A35F897 +S31508002E281230002B3DD0D8464FF0FF0729E027B9C6 +S31508002E383046FFF709F940452FD04FF6FF7323842C +S31508002E48A369DA7A12F0010F19D103F10B0001E030 +S31508002E58834222D016F8011B13F8012B9142F7D0AA +S31508002E684FF0FF070DE04FF0FF070AE04FF0FF07A6 +S31508002E7807E04FF0FF0704E04FF0FF0701E04FF0C7 +S31508002E88FF0720464FF00001FFF7A6FE0546002873 +S31508002E983FF45FAF01E04FF00405284603B0BDE8EC +S31508002EA8F08F07F1FF37FFB2D846EAE72DE9F04F6A +S31508002EB884B0824688460B782F2B01D05C2B01D12B +S31508002EC808F101084FF00003CAF8083098F80030EE +S31508002ED81F2B09D850464FF00001FFF737FD4FF072 +S31508002EE80003CAF814305AE144F61443C0F600033E +S31508002EF8009344F62043C0F60003039343469846D6 +S31508002F0813F8012B2F2AFAD05C2AF8D0DAF81CB065 +S31508002F1898F800001F2833D92F2800F043815C2829 +S31508002F2800F04581ABF1020647464FF00104A14679 +S31508002F3825460AE02F2B00F03F815C2B00F03E81E6 +S31508002F48B2F5807F00F01A811546494601F0A6F8C1 +S31508002F580446002800F015817F2806D800982146DF +S31508002F68FFF74AF8002840F00F8126F8024F17F8AD +S31508002F78013F184605F101021F2BDBD82C4603E052 +S31508002F884FF000044FF0010290444FF00407002C5C +S31508002F9800F0FD800BEB440232F8023D202B01D0ED +S31508002FA82E2B04D1013CF7D14FF00600F7E0264650 +S31508002FB8002C00F0EF804FF000052BF81450DAF8D3 +S31508002FC818004FF020014FF00B02FFF70FF85A468A +S31508002FD801E005F1010532F8023B202BF9D02E2B2A +S31508002FE8F7D00DB147F0030706F1FF360BEB46039A +S31508002FF83BF816202E2A01D0013C08D14FF00800CC +S3150800300801904FF00009CDF80890264604E033F8F9 +S31508003018022D2E2AF0D1F1E73BF81540002C62D094 +S3150800302805F10105202C03D02E2C04D1AE4202D07E +S3150800303847F00307F0E7019A914501D2AE4217D146 +S31508003048019B0B2B03D147F0030702994EE0AE42CA +S3150800305802D047F0030748D302984FEA8003DBB249 +S31508003068029335464FF00B0201924FF00809D3E751 +S315080030787F2C11D920464FF0000101F00FF80028DF +S3150800308800F0A18044F62843C0F600031B1813F87D +S31508003098804C47F0020724B103982146FEF7ACFF97 +S315080030A820B147F003074FF05F0415E0A4F1410388 +S315080030B89BB2192B04D8029B43F0020302930BE038 +S315080030C8A4F161039BB2192B06D8029840F00100B7 +S315080030D80290A4F12004A4B2DAF8183003F80940DB +S315080030E809F1010998E7029900E00299DAF8183017 +S315080030F81A78E52A04BF05221A70019A082A03D104 +S315080031084FEA8101C9B20291029901F00C030C2B0E +S3150800311803D001F00302032A01D147F0020717F08A +S31508003128020F09D101F00301012908BF47F010076A +S31508003138042B08BF47F00807DAF81830DF7250463C +S31508003148FFF7F2FDDAF81830DB7A38B1042826D109 +S3150800315803F00403002B08BF052020E013F0040F32 +S315080031681DD1DAF81410CB7A13F0100F15D0DAF847 +S315080031780000FEF74DFFCAF80800BFE64FF0060044 +S315080031880DE04FF006000AE04FF0060007E04FF0A2 +S31508003198060004E04FF0060001E04FF0050004B011 +S315080031A8BDE8F08F4FF000044FF0010207E04FF03A +S315080031B800044FF0010202E02C4600E02C46904439 +S315080031C84FF00007E3E647F002076AE72DE9F04102 +S315080031D80446C588018C4FF6FF73994208BF2946ED +S315080031E8FFF7B4FBD0B94FF0E5064FF001074FF0EB +S315080031F8000820682169FFF793FA60B963691E70A9 +S3150800320823681F71E388AB4208D220464146FFF778 +S31508003218E3FC0028EDD0042808BF0220BDE8F081A9 +S315080032282DE9F04F04460F464FF0FF0846464FF083 +S31508003238040544F6A849C0F6000909F10C0A7EE017 +S315080032482068FFF76DFA054600287DD1606903787E +S31508003258002B00F08480C27AE52B5BD02E2B5CD03D +S3150800326802F03F02082A14BF00210121B94257D1AA +S315080032780F2A46D113F0400F06D090F80D80E28841 +S31508003288228403F0BF0601E09E424CD1457B4545A2 +S315080032984CD1D4F81CC0037803F03F0303F1FF337D +S315080032A803EB430103EB810109F1FF334FF0010EEC +S315080032B84FF6FF7813F8012F00EB020B9BF801B0C5 +S315080032C8825C42EA0B22BEF1000F07D0FE2914D809 +S315080032D82CF8112001F10101964601E042450CD16E +S315080032E85345E7D1037813F0400F33D0FE2904D8A5 +S315080032F84FF000032CF811302CE0A8464FF0FF06D3 +S3150800330816E01EB9FEF7A0FE404520D04FF6FF731B +S3150800331823841CE04FF0FF060AE04FF0FF0607E09B +S315080033284FF0FF0604E04FF0FF0601E04FF0FF06F6 +S3150800333820464FF00001FFF74FFC054620B92169E2 +S3150800334800297FF47DAF15B14FF0000323612846A5 +S31508003358BDE8F08F06F1FF36F6B2A846E8E74FF063 +S315080033680405F1E72DE9F04104460E46012928D956 +S315080033788369994229D201E02E4603E04FF00007F7 +S315080033884FF0010820463146FFF762FA054600B3B2 +S31508003398012822D0B0F1FF3F23D0204631463A46CD +S315080033A8FFF72AFBF8B92369B3F1FF3F04D003F105 +S315080033B80103236184F80580A369AB42DCD8BDE81C +S315080033C8F0814FF00200BDE8F0814FF00200BDE839 +S315080033D8F0814FF00000BDE8F0814FF00200BDE82B +S315080033E8F0814FF00100BDE8F08100BF70B582B0EA +S315080033F8054616469CB24FF00B02FEF7EFFD052C64 +S315080034080CD9A6F102064FEA540343EAC43436F83F +S31508003418023FE418A4B27388002BF4D14FF00702D0 +S3150800342804F00F0101F13003392B88BF01F1370386 +S315080034380DF8023002F1FF322409F1D1144602A927 +S315080034488B184FF07E0103F8081C72B12B78202BD5 +S315080034580ED029464FF0000303F10103A34209D011 +S3150800346811F8010F2028F7D104E04FF0000301E016 +S315080034784FF000034FF02000072A06D802ACA1181F +S3150800348811F8081C02F1010200E00146E95403F1AB +S315080034980103072BF0D902B070BD00BF2DE9F04F24 +S315080034A883B00646D0F81890D0F81C806846494676 +S315080034B84FF00C02FEF792FD9DF80B3013F0010F42 +S315080034C828D04FF0000389F80B30F3614FF0010755 +S315080034D83D464846694642463B46FFF787FF30461B +S315080034E8FFF722FC044648B905F10105ADB207F114 +S315080034F80107642DEDD14FF00704D2E0642D00F0E2 +S31508003508CE80042840F0CD809DF80B3089F80B3022 +S31508003518C6F81C809DF80B3013F0020F19D0B8F8BE +S3150800352800304BB14FF0000303F101039BB238F8A2 +S315080035381320002AF8D101E04FF0000303F119031C +S315080035484EF64F42C4F6C46282FB0312C2F38F09D1 +S3150800355801E04FF00109C84630464FF00001FFF771 +S31508003568F5F90446002840F09C804FF00005AA4665 +S315080035784FF0010730683169FFF7D2F8044600288A +S3150800358840F08F8073691B78E52B00D023B905F1C5 +S315080035980105A84501D188E0554630463946FFF762 +S315080035A81BFB04460028E5D07BE0F188C91B89B2D5 +S315080035B83046FFF7CBF90446002872D1B069FEF702 +S315080035C843FD804644F6A845C0F6000530683169CB +S315080035D8FFF7A6F80446002863D1D6F81CC0716917 +S315080035E85FFA87FA81F80D804FF00F03CB724FF018 +S315080035F800020A738A76CA760AF1FF3303EB430098 +S3150800360803EB800013464FF6FF7E4FF0FF0973451C +S3150800361850D03CF8103000F10100545D0B550C19D8 +S315080036284FEA132B84F801B0002B08BF734602F142 +S3150800363801020D2AEBD14FF6FF72934202D03CF8ED +S3150800364810300BB94AF0400A81F800A033684FF0E9 +S3150800365801021A7130464FF00001FFF7BDFA044619 +S31508003668F8B907F1FF37BFB2002FAFD129E0706963 +S315080036784FF000014FF02002FEF7B8FC7069B169F7 +S315080036884FF00B02FEF7AAFC7369B269D27A02F008 +S3150800369818021A7333684FF001021A7101E04FF0E5 +S315080036A80704204603B0BDE8F08F09F1FF37BFB21B +S315080036B83FB17AE7545D01F804900C1984F8019033 +S315080036C8B5E730683169FFF72BF804460028E8D1D2 +S315080036D8CDE700BFC0B2A0B940F62813C2F200036E +S315080036E81B6813B14FF000021A7011B14FF00003AE +S315080036F80B7040F62813C2F2000319604FF0000059 +S3150800370870474FF00B0070472DE9F0438DB004461B +S315080037180091D2B2002800F0A4804FF0000303609D +S3150800372802F01F06B04606F0FE02684604A9FEF730 +S3150800373815FD0546002840F0968001AB0A9340F22D +S315080037482473C2F200030B9304A80099FFF7AEFB93 +S31508003758099F10B9002F08BF062018F01C0F4DD076 +S3150800376850B104287BD104A8FFF798FE099F0028C2 +S3150800377875D146F0080606E0FB7A13F0110F76D1E4 +S3150800378818F0040F76D116F0080F7CD0FDF72EFC3A +S31508003798B873C0F30723FB734FEA10433B744FEA29 +S315080037A8106078744FF0000887F80B8087F81C803B +S315080037B887F81D8087F81E8087F81F800498394681 +S315080037C8FEF726FC814638464146FEF731FC049842 +S315080037D84FF001030371B9F1000F54D0D0F83080C7 +S315080037E84946FFF7BFFD002839D1049809F1FF3388 +S315080037F8C3604146FEF794FF68B130E000282ED131 +S31508003808FB7A13F0100F38D118F0020F3BD013F0DB +S31508003818010F35D137E046F02006DDF81080D8F8D4 +S315080038283030E3612762A67140463946FEF7F0FB59 +S315080038382061FA7FBB7F4FEA034343EA02633A7F74 +S3150800384813437A7F43EA0223E3604FF00003A36039 +S31508003858A361C4F80080B8F80630A38003E00546DB +S3150800386801E04FF0090528460DB0BDE8F0834FF092 +S315080038780700F4E74FF00800F1E74FF00400EEE719 +S315080038884FF00700EBE716F0080FC6D0C3E700BFEE +S315080038982DE9F04F82B00446894615461E464FF074 +S315080038A800033360FEF7E2FB0746002840F0CB80AA +S315080038B8A37913F0800F40F0C18013F0010F00F0D0 +S315080038C8C080E268A368C3EB0208454538BFA84626 +S315080038D8B8F1000F00F0B78004F1240300930190B3 +S315080038E8A2684FEAC2534FEAD353002B40F08880A8 +S315080038F82068857805F1FF3505EA5225EDB2CDB978 +S315080039080AB9206902E06169FEF7A2FF012806D80C +S31508003918A37963F07F03A3714FF0020793E0B0F130 +S31508003928FF3F06D1A37963F07F03A3714FF0010720 +S3150800393889E06061276861693846FEF779FF30B91A +S31508003948A37963F07F03A3714FF002077BE000EBCE +S31508003958050A5FEA582B28D0BB780BEB05029A4272 +S3150800396888BFC5EB030B78785FFA8BF3494652464E +S31508003978FDF7F6F830B1A37963F07F03A3714FF02A +S31508003988010760E0A37913F0400F0BD0A369CAEBCF +S31508003998030AD34506D909EB4A2000994FF4007261 +S315080039A8FEF71CFB4FEA4B253BE0A269524525D09A +S315080039B8A37913F0400F11D0787800994FF00103D6 +S315080039C8FDF722F930B1A37963F07F03A3714FF0AD +S315080039D8010738E0A37923F04003A37123685878D0 +S315080039E8009952464FF00103FDF7BAF830B1A379AA +S315080039F863F07F03A3714FF0010724E0C4F818A009 +S31508003A08A1684FEAC1514FEAD151C1F50075A845D9 +S31508003A1838BF454601F12401611848462A46FEF78B +S31508003A28DDFAA944A3685B19A36033685B19336098 +S31508003A38B8EB05087FF454AF019F04E04FF002077E +S31508003A4801E04FF00707384602B0BDE8F08F00BF1F +S31508003A582DE9F04F82B00446894617461E464FF0B0 +S31508003A6800033360FEF702FB8046002840F0EB802F +S31508003A78A37913F0800F40F0E18013F0020F00F0ED +S31508003A88E080E368DF4280F0CF80002F00F0CC802A +S31508003A9804F1240300930190A2684FEAC2534FEA3F +S31508003AA8D353002B40F09C802068857805F1FF35B4 +S31508003AB805EA5225EDB225BB42B923696BB94FF021 +S31508003AC80001FFF725F80346206103E06169FFF75F +S31508003AD81FF80346002B00F0A580012B06D1A37911 +S31508003AE863F07F03A3714FF00208ACE0B3F1FF3F20 +S31508003AF806D1A37963F07F03A3714FF00108A2E00A +S31508003B086361A37913F0400F13D023685878A26924 +S31508003B1800994FF00103FDF777F830B1A37963F000 +S31508003B287F03A3714FF001088DE0A37923F04003C2 +S31508003B38A371D4F8008061694046FEF779FE30B96A +S31508003B48A37963F07F03A3714FF002087BE000EBCB +S31508003B58050A5FEA572B2AD098F802300BEB0502BC +S31508003B689A4288BFC5EB030B98F801005FFA8BF3F6 +S31508003B7849465246FDF748F830B1A37963F07F0302 +S31508003B88A3714FF001085EE0A369CAEB030AD3459F +S31508003B980AD909EB4A2100984FF40072FEF71EFA73 +S31508003BA8A37923F04003A3714FEA4B252DE0A369B7 +S31508003BB8534513D0A268E3689A420FD298F80100D1 +S31508003BC8009952464FF00103FCF7CAFF30B1A379B2 +S31508003BD863F07F03A3714FF0010834E0C4F818A016 +S31508003BE8A0684FEAC0504FEAD050C0F50075AF42FA +S31508003BF838BF3D4600F12400201849462A46FEF7F4 +S31508003C08EDF9A37943F04003A371A944A3685B19A6 +S31508003C18A36033685B1933607F1B7FF43DAFDDF81B +S31508003C28048001E0DDF80480A368E268934288BF4F +S31508003C38E360A37943F02003A37104E04FF0020878 +S31508003C4801E04FF00708404602B0BDE8F08F00BF14 +S31508003C5830B50446FEF70AFA00284CD1A37913F0C2 +S31508003C68200F48D013F0400F0ED0214651F8243BB8 +S31508003C785878A2694FF00103FCF7C6FF002838D127 +S31508003C88A37923F04003A3712068E169FEF748FD8C +S31508003C98002830D1256AEB7A43F02003EB72E368F3 +S31508003CA82B77A3894FEA13236B77E389AB77E37BF3 +S31508003CB8EB7721692846FEF7BBF9FDF797F9A8754A +S31508003CC8C0F30723EB754FEA10432B764FEA1060CB +S31508003CD868764FF00003AB74EB74A37923F02003DE +S31508003CE8A37123684FF001021A712068FEF736FDA2 +S31508003CF830BD4FF0010030BD10B50446FFF7A8FFE8 +S31508003D0810B94FF00003236010BD00BFF0B5044694 +S31508003D180D46FEF7ABF90646002840F0D080A37991 +S31508003D2813F0800F40F0C980E268AA4204D203F073 +S31508003D380203002B08BF1546A2684FF00003A360CC +S31508003D48002D00F0BC80206887784FEA472782B1A3 +S31508003D5802F1FF3205F1FF31B1FBF7F1B2FBF7F3D8 +S31508003D68994206D3C7F100031A40A260AD1A6169E1 +S31508003D7819E02169B1B9FEF7CBFE0146012806D13B +S31508003D88A37963F07F03A3714FF0020697E0B0F1B9 +S31508003D98FF3F06D1A37963F07F03A3714FF00106AD +S31508003DA88DE020616161002945D0BD422DD9A379EE +S31508003DB813F0020F05D02068FEF7AAFE014620B9BF +S31508003DC822E02068FEF744FD0146B1F1FF3F06D11F +S31508003DD8A37963F07F03A3714FF001066FE0012909 +S31508003DE803D923689B69994206D3A37963F07F03AD +S31508003DF8A3714FF0020662E06161A368DB19A3604C +S31508003E08ED1BAF42D3D300E03D46A3685B19A36018 +S31508003E184FEAC5534FEAD35383B12068FEF708FD26 +S31508003E2830B9A37963F07F03A3714FF0020646E021 +S31508003E3800EB552504E04FF0000501E04FF00005BA +S31508003E48A3684FEAC3534FEAD35363B3A269AA4296 +S31508003E5829D0A37913F0400F13D0214651F8243BF3 +S31508003E6858784FF00103FCF7CFFE30B1A37963F019 +S31508003E787F03A3714FF0010621E0A37923F04003DD +S31508003E88A371214651F8243B58782A464FF0010376 +S31508003E98FCF766FE30B1A37963F07F03A3714FF090 +S31508003EA801060CE0A561A368E268934207D9E360B6 +S31508003EB8A37943F02003A37101E04FF002063046C8 +S31508003EC8F0BD00BF30B58DB00DAB43F8340D0D46C7 +S31508003ED8684604A94FF00002FEF740F90446A8B957 +S31508003EE801AB0A9340F22473C2F200030B9304A8A9 +S31508003EF80099FEF7DBFF044640B9099B23B104A8DD +S31508003F082946FEF725FB01E04FF0060420460DB0CA +S31508003F1830BD00BF30B596B016AB43F8580D6846A5 +S31508003F280DA94FF00102FEF719F900283CD101AB9B +S31508003F38139340F22473C2F2000314930DA8009950 +S31508003F48FEF7B4FF00282FD1129931B1CC7A14F0B4 +S31508003F58010F2BD04FF0070026E04FF0060023E0AC +S31508003F68012D2BD904A80DA94FF02402FEF736F81F +S31508003F78069504A84FF00201FEF7E8FCA0B904A8C4 +S31508003F884FF00001FFF74CF910B1042819D00BE0DF +S31508003F984FF0070008E025B10D982946FFF7E2F922 +S31508003FA810B90D98FEF7DAFB16B030BD0D98FEF776 +S31508003FB82FF8054614F0100FD2D102E04FF0020090 +S31508003FC8F2E70DA8FFF702F90028E4D0ECE700BFEE +S31508003FD82DE9F04382B08146904604464FF0000525 +S31508003FE801F1FF3715E0404601A94FF001026B467B +S31508003FF8FFF74EFC009B012B0ED19DF804300D2BC4 +S3150800400808D0337004F10104264605F101050A2B88 +S3150800401802D02646AF42E6DC4FF0000333709D42D5 +S3150800402808BF9946484602B0BDE8F08330B582B065 +S315080040380D46C4B20A2C03D14FF00D00FFF7F6FF60 +S3150800404802A901F8084D284669464FF0010201AB56 +S31508004058FFF7FEFC0198012814BF4FF0FF30012036 +S3150800406802B030BD70B505460E46007870B14FF0FF +S3150800407800043146FFF7DAFFB0F1FF3F09D004F133 +S31508004088010415F8010F0028F3D104E04FF00004E5 +S3150800409801E04FF0FF34204670BD00BF80B27F288C +S315080040A826D911B9C7280BD11AE0FF281ED845F218 +S315080040B87803C0F60003A0F1800033F810007047B3 +S315080040C845F27802C0F600024FF0010332F8021FE3 +S315080040D8814207D003F101039BB2802BF6D101E098 +S315080040E84FF0000303F18000C0B270474FF000009C +S315080040F8704700BF80B261280ED044F69861C0F6B2 +S3150800410800014FF0000202F1010231F8023F5BB1EB +S315080041188342F8D113B970474FF0000244F6B84302 +S31508004128C0F6000333F81200704700BF30B40346E0 +S315080041384CF6CD44CCF6CC4400E0114601F1010218 +S31508004148A4FB0353DB08F8D14FF000034B70114664 +S315080041584CF6CD45CCF6CC4502F1FF32A5FB00431B +S315080041684FEAD30303EB8304A0EB440000F13000C5 +S3150800417801F8010D1846002BEED1104630BC7047E1 +S3150800418870B506464FF000042546305D00F0F4FB8E +S31508004198C0B2A0F13003DBB2162B12D8A0F13A024E +S315080041A8D2B2062A10D9092B84BFA0F13703DBB28D +S315080041B803EB051505F0FF0504F10104022CE4D10B +S315080041C804E04FF0000501E04FF00005284670BDF1 +S315080041D800B5C3B203F00F00092B03D900F1370065 +S315080041E85DF804FB00F1300000F0C6FBC0B25DF8CC +S315080041F804FB00BF30B50C46C5B24FEA1510FFF7E9 +S31508004208E7FF207005F00F00FFF7E2FF60704FF038 +S315080042180003A370204630BD2DE9F04F81B007464C +S315080042288946904601B138B945F27810C0F60000BB +S315080042384FF41671FDF706FC387800F09DFB5328F5 +S3150800424840F0D180787800F08FFB002800F0CE8007 +S315080042587B78312B00F0D680322B00F0D680332BB2 +S3150800426800F0D6804FF00005C8E02046FFF788FF23 +S315080042783618F6B205F1FF35ADB204F10204012D80 +S31508004288F3D82046FFF77CFF6FEA0606F6B28642A1 +S3150800429840F0AF80BAF1010F35D0BAF1000F04D05B +S315080042A8BAF1020F40F0A88061E05846FFF768FFA8 +S315080042B805460098FFF764FF4FEA0024C9F800404E +S315080042C807F10600FFF75CFF2418C9F80040A5F1B6 +S315080042D80305ADB2B8F1000F00F090802EB2002E9B +S315080042E840F38C8007F108074FF000043846FFF7BB +S315080042F847FF08F8040007F1020704F10104A4B20D +S31508004308B442F3DB7AE05846FFF73AFF05460098C9 +S31508004318FFF736FF4FEA0044C9F8004007F10600E0 +S31508004328FFF72EFF04EB0024C9F8004007F1080040 +S31508004338FFF726FF2418C9F80040A5F10405ADB211 +S31508004348B8F1000F5AD02EB2002E57DD07F10A072A +S315080043584FF000043846FFF713FF08F8040007F182 +S31508004368020704F10104A4B2A642F3DC46E0584663 +S31508004378FFF706FF05460098FFF702FF4FEA0064B5 +S31508004388C9F8004007F10600FFF7FAFE04EB0044F7 +S31508004398C9F8004007F10800FFF7F2FE04EB00240D +S315080043A8C9F8004007F10A00FFF7EAFE2418C9F819 +S315080043B80040A5F10505ADB2B8F1000F1ED02EB222 +S315080043C8002E1BDD07F10C074FF000043846FFF7EF +S315080043D8D7FE08F8040007F1020704F10104A4B29D +S315080043E8B442F3DB0AE04FF0000507E04FF000059A +S315080043F804E04FF6FF7501E04FF0000528B201B05A +S31508004408BDE8F08F4FF0000A04E04FF0010A01E01A +S315080044184FF0020A07F1020B5846FFF7B1FE0646A7 +S31508004428054607F1040300931C461EE700B540F647 +S315080044386C13C2F200034FF00000186040F67811BA +S31508004448C2F20001FFF746F938B145F27810C0F60E +S3150800445800004FF09E01FDF7F5FA5DF804FB00BF72 +S3150800446840F66C13C2F200031868D0F1010038BF91 +S315080044780020704700B5FDF78BFB012810D040F6E1 +S315080044886C13C2F200031B6873B9FBF729FF0128EE +S315080044980ED140F66C13C2F2000318605DF804FBEF +S315080044A84FF000005DF804FB4FF000005DF804FBD0 +S315080044B84FF000005DF804FB70B540F66C13C2F2C5 +S315080044C800031B68002B00F04B82012B43D1FBF736 +S315080044D833FF45F2EC10C0F60000FBF77DFF45F206 +S315080044E81020C0F60000FBF777FFFBF71FFF014611 +S315080044F8B3484FF00102FFF707F950B145F23820E3 +S31508004508C0F60000FBF768FF4FF00100FBF752FF03 +S3150800451870BD45F24020C0F60000FBF75DFF45F286 +S315080045284820C0F60000FBF757FF45F26C20C0F696 +S315080045380000FBF751FF40F67013C2F200034FF074 +S3150800454800021A605A6040F66C13C2F200034FF074 +S3150800455802021A6070BD022B40F0078140F6D0505F +S31508004568C2F2000040F67814C2F2000404F50D728F +S315080045784FF48071FFF72CFD94F93A32002B15DABF +S3150800458845F23820C0F60000FBF726FF4FF0020078 +S31508004598FBF710FF04F50D70FFF7AEFB40F66C133A +S315080045A8C2F200034FF000021A6070BD10B340F65D +S315080045B8D050C2F2000000F5C0714FF00002FFF7B4 +S315080045C82BFE0646B0F1FF3F14D145F23820C0F657 +S315080045D80000FBF701FF4FF00300FBF7EBFE7848F6 +S315080045E8FFF78AFB40F66C13C2F200034FF000028D +S315080045F81A6070BD33B2002B2CDD40F67013C2F278 +S3150800460800035B686BB940F67013C2F2000340F604 +S31508004618D052C2F20002D2F880211A6036B25E6021 +S3150800462818E040F6D052C2F20002D2F8801140F6DD +S315080046387012C2F200021268914204D240F6701251 +S31508004648C2F20002116040F67012C2F2000236B2D7 +S31508004658F318536040F67813C2F20003D3F83C22E5 +S31508004668D3F840329A4240F07B8155484FF0000112 +S31508004678FFF74CFBA0B145F23820C0F60000FBF75F +S31508004688ABFE4FF00400FBF795FE4D48FFF734FBE9 +S3150800469840F66C13C2F200034FF000021A6070BDB0 +S315080046A845F24020C0F60000FBF796FE45F29C202E +S315080046B8C0F60000FBF790FE40F67014C2F200043C +S315080046C8606840F62C15C2F200052946FFF72EFD4C +S315080046D82846FBF781FE45F2A820C0F60000FBF73E +S315080046E87BFEE0782946FFF785FDA07805F10201EB +S315080046F8FFF780FD607805F10401FFF77BFD207858 +S3150800470805F10601FFF776FD2846FBF765FE45F233 +S315080047184C30C0F60000FBF75FFE20686168FCF7BE +S31508004728A1FDA0B945F23820C0F60000FBF754FEF3 +S315080047384FF00500FBF73EFE2148FFF7DDFA40F685 +S315080047486C13C2F200034FF000021A6070BD45F2FE +S315080047584020C0F60000FBF73FFE40F66C13C2F295 +S3150800476800034FF003021A6070BD032B40F0F8806F +S3150800477840F6D050C2F2000040F67814C2F200049F +S3150800478804F50D724FF48071FFF722FC94F93A325A +S31508004798002B17DA45F2C420C0F60000FBF71CFE0A +S315080047A84FF00200FBF706FE04F50D70FFF7A4FAB2 +S315080047B840F66C13C2F200034FF000021A6070BD8F +S315080047C8AC0B002010B340F6D050C2F2000000F53A +S315080047D8C07100F58072FFF71FFD0646B0F1FF3F6E +S315080047E814D145F2E820C0F60000FBF7F5FD4FF0B6 +S315080047F80300FBF7DFFD5B48FFF77EFA40F66C130C +S31508004808C2F200034FF000021A6070BD33B2002BE3 +S315080048185EDD45F20C30C0F60000FBF7DDFD36B26A +S3150800482840F62C14C2F2000430462146FFF77EFCF7 +S315080048382046FBF7D1FD45F21C30C0F60000FBF711 +S31508004848CBFD40F6D055C2F2000595F883012146FE +S31508004858FFF7D0FC95F8820104F10201FFF7CAFCBC +S3150800486895F8810104F10401FFF7C4FC95F8800165 +S3150800487804F10601FFF7BEFC2046FBF7ADFD45F23D +S315080048884C30C0F60000FBF7A7FDD5F8800105F502 +S3150800489880723146FCF7E0FCA0B945F23820C0F62C +S315080048A80000FBF799FD4FF00600FBF783FD2D483E +S315080048B8FFF722FA40F66C13C2F200034FF0000223 +S315080048C81A6070BD45F24020C0F60000FBF784FD6B +S315080048D840F67813C2F20003D3F83C22D3F84032E4 +S315080048E89A423DD145F23430C0F60000FBF774FD14 +S315080048F8FCF7C4FCA0B945F23820C0F60000FBF75F +S315080049086BFD4FF00700FBF755FD1648FFF7F4F95E +S3150800491840F66C13C2F200034FF000021A6070BD2D +S3150800492845F24020C0F60000FBF756FD45F2503028 +S31508004938C0F60000FBF750FD0A48FFF7DDF945F217 +S315080049486830C0F60000FBF747FD40F66C13C2F264 +S3150800495800034FF000021A60FBF70AFDFCF744FC57 +S3150800496870BD00BFAC0B0020A0F1300009288CBF31 +S3150800497800200120704700BFA0F16103DBB2192BA4 +S3150800498898BF2038704700BF30B504460D4600F07A +S3150800499817F840F65473C2F200031D6040F65873C0 +S315080049A8C2F200031C601A461368002BFCD100F0FB +S315080049B809F840F65473C2F20003186830BD00BF00 +S30D080049C8704700BF704700BFED +S315080049D02F64656D6F70726F675F6F6C696D657850 +S315080049E05F73746D3332703130332E7372656300C2 +S315080049F02F626F6F746C6F672E74787400000000F6 +S31508004A00433A2F576F726B2F736F667477617265AF +S31508004A102F4F70656E424C542F5461726765742F20 +S31508004A2044656D6F2F41524D434D335F53544D339B +S31508004A30325F4F6C696D65785F53544D3332503130 +S31508004A4030335F43726F7373776F726B732F426F76 +S31508004A506F742F6964652F2E2E2F6D61696E2E6314 +S31508004A6000000000433A2F576F726B2F736F6674FE +S31508004A70776172652F4F70656E424C542F54617280 +S31508004A806765742F44656D6F2F41524D434D335FF3 +S31508004A9053544D33325F4F6C696D65785F53544D8F +S31508004AA03332503130335F43726F7373776F726B83 +S31508004AB0732F426F6F742F6964652F2E2E2F2E2E3B +S31508004AC02F2E2E2F2E2E2F536F757263652F415260 +S31508004AD04D434D335F53544D33322F43726F7373C7 +S31508004AE0776F726B732F766563746F72732E6300BC +S31508004AF0433A2F576F726B2F736F667477617265BF +S31508004B002F4F70656E424C542F5461726765742F2F +S31508004B1044656D6F2F41524D434D335F53544D33AA +S31508004B20325F4F6C696D65785F53544D333250313F +S31508004B3030335F43726F7373776F726B732F426F85 +S31508004B406F742F6964652F2E2E2F2E2E2F2E2E2F43 +S31508004B502E2E2F536F757263652F41524D434D3379 +S31508004B605F53544D33322F756172742E6300000003 +S31508004B700060000800200000030000000080000814 +S31508004B80002000000400000000A00008002000002B +S31508004B900500000000C00008002000000600000014 +S31508004BA000E00008002000000700000000000108DF +S31508004BB00020000008000000002001080020000076 +S31508004BC00900000000400108002000000A0000005B +S31508004BD000600108002000000B00000000800108AA +S31508004BE0002000000C00000000A0010800200000C2 +S31508004BF00D00000000C00108002000000E000000A3 +S31508004C0000E00108002000000F0000004F70656EEC +S31508004C10424C5400222A3A3C3E3F7C7F000000006A +S31508004C202B2C3B3D5B5D0000809A90418E418F8026 +S31508004C304545454949498E8F9092924F994F55550A +S31508004C4059999A9B9C9D9E9F41494F55A5A5A6A7F4 +S31508004C50A8A9AAABAC21AEAFB0B1B2B3B4B5B6B7DA +S31508004C60B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C73E +S31508004C70C8C9CACBCCCDCECFD0D1D2D3D4D5D6D72E +S31508004C80D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E71E +S31508004C90E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F70E +S31508004CA0F8F9FAFBFCFDFEFF01030507090E1012D1 +S31508004CB01416181C1E000000410042004300440060 +S31508004CC0450046004700480049004A004B004C0092 +S31508004CD04D004E004F005000510052005300540042 +S31508004CE0550056005700580059005A002100E0FFA9 +S31508004CF0E1FFE5FFE2FFE3FFC000C100C200C30019 +S31508004D00C400C500C600C700C800C900CA00CB0059 +S31508004D10CC00CD00CE00CF00D000D100D200D30009 +S31508004D20D400D500D600D800D900DA00DB00DC00B4 +S31508004D30DD00DE0078010001020104010601080118 +S31508004D400A010C010E0110011201140116011801C5 +S31508004D501A011C011E012001220124012601280135 +S31508004D602A012C012E0130013201340136013901A4 +S31508004D703B013D013F0141014301450147014A010C +S31508004D804C014E01500152015401560158015A0175 +S31508004D905C015E01600162016401660168016A01E5 +S31508004DA06C016E01700172017401760179017B0153 +S31508004DB07D0191019103920393039403950396034E +S31508004DC09703980399039A039B039C039D039E03E9 +S31508004DD09F03A003A103A303A403A503A603A70394 +S31508004DE0A803A903AA031004110412041304140443 +S31508004DF0150416041704180419041A041B041C04C1 +S31508004E001D041E041F042004210422042304240470 +S31508004E10250426042704280429042A042B042C0420 +S31508004E202D042E042F0401040204030404040504BB +S31508004E3006040704080409040A040B040C040E04F7 +S31508004E400F046021612162216321642165216621A5 +S31508004E506721682169216A216B216C216D216E21E8 +S31508004E606F2121FF22FF23FF24FF25FF26FF27FFAF +S31508004E7028FF29FF2AFF2BFF2CFF2DFF2EFF2FFFD0 +S31508004E8030FF31FF32FF33FF34FF35FF36FF37FF80 +S31508004E9038FF39FF3AFF00006100620063006400D2 +S31508004EA0650066006700680069006A006B006C00B0 +S31508004EB06D006E006F007000710072007300740060 +S31508004EC0750076007700780079007A00A100A200C4 +S31508004ED0A300A500AC00AF00E000E100E200E3009B +S31508004EE0E400E500E600E700E800E900EA00EB0078 +S31508004EF0EC00ED00EE00EF00F000F100F200F30028 +S31508004F00F400F500F600F800F900FA00FB00FC00D2 +S31508004F10FD00FE00FF00010103010501070109016B +S31508004F200B010D010F0111011301150117011901DB +S31508004F301B011D011F01210123012501270129014B +S31508004F402B012D012F0131013301350137013A01BA +S31508004F503C013E01400142014401460148014B0122 +S31508004F604D014F01510153015501570159015B018B +S31508004F705D015F01610163016501670169016B01FB +S31508004F806D016F0171017301750177017A017C0169 +S31508004F907E019201B103B203B303B403B503B603AA +S31508004FA0B703B803B903BA03BB03BC03BD03BE0307 +S31508004FB0BF03C003C103C303C403C503C603C703B2 +S31508004FC0C803C903CA033004310432043304340461 +S31508004FD0350436043704380439043A043B043C04DF +S31508004FE03D043E043F04400441044204430444048F +S31508004FF0450446044704480449044A044B044C043F +S315080050004D044E044F0451045204530454045504E9 +S3150800501056045704580459045A045B045C045E0495 +S315080050205F04702171217221732174217521762103 +S315080050307721782179217A217B217C217D217E2186 +S315080050407F2141FF42FF43FF44FF45FF46FF47FFDD +S3150800505048FF49FF4AFF4BFF4CFF4DFF4EFF4FFFEE +S3150800506050FF51FF52FF53FF54FF55FF56FF57FF9E +S3150800507058FF59FF5AFF0000C700FC00E900E2008C +S31508005080E400E000E500E700EA00EB00E800EF00D6 +S31508005090EE00EC00C400C500C900E600C600F40036 +S315080050A0F600F200FB00F900FF00D600DC00A200C3 +S315080050B0A300A500A7209201E100ED00F300FA0085 +S315080050C0F100D100AA00BA00BF001023AC00BD0051 +S315080050D0BC00A100AB00BB009125922593250225B3 +S315080050E024256125622556255525632551255725ED +S315080050F05D255C255B251025142534252C251C25C6 +S3150800510000253C255E255F255A25542569256625F3 +S31508005110602550256C25672568256425652559254C +S315080051205825522553256B256A2518250C258825CB +S3150800513084258C2590258025B103DF009303C003C1 +S31508005140A303C303B500C403A6039803A903B403C2 +S315080051501E22C603B50329226122B10065226422F4 +S3150800516020232123F7004822B0001922B7001A226B +S315080051707F20B200A025A000433A2F576F726B2FED +S31508005180736F6674776172652F4F70656E424C5403 +S315080051902F5461726765742F44656D6F2F41524DA8 +S315080051A0434D335F53544D33325F4F6C696D6578A9 +S315080051B05F53544D3332503130335F43726F7373DC +S315080051C0776F726B732F426F6F742F6964652F2E1A +S315080051D02E2F2E2E2F2E2E2F2E2E2F536F757263B7 +S315080051E0652F66696C652E63000000004669726D5E +S315080051F07761726520757064617465207265717572 +S315080052006573742064657465637465640A0D0000CB +S315080052104F70656E696E67206669726D7761726533 +S315080052202066696C6520666F722072656164696EB6 +S31508005230672E2E2E000000004552524F520A0D00CE +S315080052404F4B0A0D000000005374617274696E6753 +S31508005250207468652070726F6772616D6D696E671C +S315080052602073657175656E63650A0D00506172730A +S31508005270696E67206669726D776172652066696C0A +S315080052806520746F206F627461696E206572617340 +S31508005290652073697A652E2E2E00000045726173AB +S315080052A0696E6720000000002062797465732066C5 +S315080052B0726F6D206D656D6F72792061742030781C +S315080052C00000000052656164696E67206C696E654E +S315080052D02066726F6D2066696C652E2E2E455252B9 +S315080052E04F520A0D00000000496E76616C69642011 +S315080052F0636865636B73756D20666F756E642E2EB5 +S315080053002E4552524F520A0D0000000050726F6728 +S3150800531072616D6D696E6720000000002062797405 +S31508005320657320746F206D656D6F727920617420C6 +S315080053303078000057726974696E672070726F67FB +S3150800534072616D20636865636B73756D2E2E2E0012 +S31508005350436C6F73696E67206669726D77617265F3 +S315080053602066696C650A0D004669726D776172651B +S3150800537020757064617465207375636365737366FD +S31508005380756C6C7920636F6D706C657465640A0D55 +S30908005390000000000B +S306080053940109 S705080001DB16 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/boot.dox new file mode 100644 index 00000000..9d6f8d24 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM3_STM32_Olimex_STM32P103_Crossworks Bootloader +\brief Bootloader. +\ingroup ARMCM3_STM32_Olimex_STM32P103_Crossworks +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/config.h index 959aee2b..0e4ab724 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/config.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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 (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 (1) @@ -114,10 +132,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) @@ -132,6 +155,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) @@ -144,7 +168,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) @@ -157,6 +183,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_STM32P103_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c index ffa4da48..2f4f33e4 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/hooks.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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,11 +46,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) @@ -56,11 +56,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) @@ -76,15 +74,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) @@ -100,12 +96,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) @@ -113,20 +107,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) @@ -135,18 +127,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) @@ -155,11 +146,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) @@ -174,13 +163,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) @@ -188,14 +175,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) @@ -213,6 +198,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.srec"; @@ -220,22 +206,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.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) @@ -263,14 +248,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) @@ -280,12 +263,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) @@ -303,12 +284,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) @@ -329,12 +308,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) @@ -351,12 +328,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_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs index a8b60eaa..3f9bf2cc 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/ide/stm32f103_crossworks.hzs @@ -40,9 +40,9 @@ - - + + @@ -55,7 +55,7 @@ - + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/main.c index 2377ee08..09d5d7cf 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Boot/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_Crossworks/Prog/bin/demoprog_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/bin/demoprog_olimex_stm32p103.elf index d4179801..32f4f019 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/bin/demoprog_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/bin/demoprog_olimex_stm32p103.elf differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/boot.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/boot.c index e1cb1c00..bed19171 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/boot.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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 +104,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 +155,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) @@ -192,28 +182,26 @@ static unsigned char UartReceiveByte(unsigned char *data) * C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * 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 */ @@ -239,15 +227,14 @@ static const tCanBusTiming canTiming[] = }; -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 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 prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. ** ****************************************************************************************/ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, @@ -279,11 +266,9 @@ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *pres } /*** 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) @@ -343,12 +328,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_STM32_Olimex_STM32P103_Crossworks/Prog/boot.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/boot.h index 92789052..b537f4bd 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/boot.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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\ARMCM3_STM32_Olimex_STM32P103_Crossworks\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_Crossworks/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/header.h index 8e99d289..6e7fe0fb 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/header.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/ide/stm32f103_crossworks.hzs b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/ide/stm32f103_crossworks.hzs index a083105b..f1cdd7aa 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/ide/stm32f103_crossworks.hzs +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/ide/stm32f103_crossworks.hzs @@ -51,8 +51,8 @@ - - + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/irq.c index a5cd3cd8..e7b01a91 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/irq.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/irq.h index 9f12faf4..b7bf1a00 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/irq.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/led.c index d4d4a557..defd8c9a 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/led.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/led.h index f69b6a44..8da985d9 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/led.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/main.c index ced41fea..16472fd1 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/prog.dox new file mode 100644 index 00000000..0671fae6 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM3_STM32_Olimex_STM32P103_Crossworks User Program +\brief User Program. +\ingroup ARMCM3_STM32_Olimex_STM32P103_Crossworks +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/timer.c index 282215a8..3f926ade 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/timer.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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 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_STM32_Olimex_STM32P103_Crossworks/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/timer.h index b3da70d4..44b242c2 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/timer.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/vectors.c index bcf3ebed..afd72361 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/Prog/vectors.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_Crossworks/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/demo.dox new file mode 100644 index 00000000..6ae510f2 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_Crossworks/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM3_STM32_Olimex_STM32P103_Crossworks Demo for Olimex STM32-P103/Crossworks +\brief Preconfigured programs for the Olimex STM32-P103 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_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf index 6295e7f9..7cc20567 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.elf differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.map b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.map index f48c77c6..f3f212f3 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.map +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.map @@ -7,38 +7,38 @@ start address 0x08000000 Program Header: LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15 - filesz 0x00004ec8 memsz 0x00004ec8 flags r-x - LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08004ec8 align 2**15 - filesz 0x00000008 memsz 0x00001154 flags rw- + filesz 0x00004ebc memsz 0x00004ebc flags r-x + LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08004ebc align 2**15 + filesz 0x00000008 memsz 0x00001158 flags rw- private flags = 5000002: [Version5 EABI] [has entry point] Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00004ec8 08000000 08000000 00008000 2**2 + 0 .text 00004ebc 08000000 08000000 00008000 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000008 20000000 08004ec8 00010000 2**2 + 1 .data 00000008 20000000 08004ebc 00010000 2**2 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 0000114c 20000008 08004ed0 00010008 2**2 + 2 .bss 00001150 20000008 08004ec4 00010008 2**2 ALLOC 3 .debug_info 0000afe1 00000000 00000000 00010008 2**0 CONTENTS, READONLY, DEBUGGING - 4 .debug_abbrev 000023a8 00000000 00000000 0001afe9 2**0 + 4 .debug_abbrev 0000234e 00000000 00000000 0001afe9 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_loc 00009472 00000000 00000000 0001d391 2**0 + 5 .debug_loc 00009479 00000000 00000000 0001d337 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_aranges 00000988 00000000 00000000 00026803 2**0 + 6 .debug_aranges 00000988 00000000 00000000 000267b0 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_ranges 00000aa0 00000000 00000000 0002718b 2**0 + 7 .debug_ranges 00000aa0 00000000 00000000 00027138 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00003624 00000000 00000000 00027c2b 2**0 + 8 .debug_line 00003621 00000000 00000000 00027bd8 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_str 0000243d 00000000 00000000 0002b24f 2**0 + 9 .debug_str 0000243d 00000000 00000000 0002b1f9 2**0 CONTENTS, READONLY, DEBUGGING - 10 .comment 00000030 00000000 00000000 0002d68c 2**0 + 10 .comment 00000030 00000000 00000000 0002d636 2**0 CONTENTS, READONLY - 11 .ARM.attributes 00000033 00000000 00000000 0002d6bc 2**0 + 11 .ARM.attributes 00000033 00000000 00000000 0002d666 2**0 CONTENTS, READONLY - 12 .debug_frame 00001828 00000000 00000000 0002d6f0 2**2 + 12 .debug_frame 00001828 00000000 00000000 0002d69c 2**2 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: 08000000 l d .text 00000000 .text @@ -57,9 +57,9 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 cstart.c 08000192 l F .text 00000000 zero_loop2 -08004548 l F .text 00000000 zero_loop +0800453c l F .text 00000000 zero_loop 00000000 l df *ABS* 00000000 hooks.c -08004574 l O .text 00000020 firmwareFilename +08004568 l O .text 00000020 firmwareFilename 20000008 l O .bss 00000228 logfile 00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 mmc.c @@ -102,13 +102,13 @@ SYMBOL TABLE: 080024b0 l F .text 00000258 dir_register 20000234 l O .bss 00000200 LfnBuf 20000434 l O .bss 00000002 Fsid -080045c0 l O .text 00000080 ExCvt -08004640 l O .text 0000000d LfnOfs +080045b4 l O .text 00000080 ExCvt +08004634 l O .text 0000000d LfnOfs 20000438 l O .bss 00000004 FatFs 00000000 l df *ABS* 00000000 unicode.c -08004650 l O .text 000001e0 tbl_lower.4261 -08004830 l O .text 00000100 Tbl -08004930 l O .text 000001e0 tbl_upper.4262 +08004644 l O .text 000001e0 tbl_lower.4261 +08004824 l O .text 00000100 Tbl +08004924 l O .text 000001e0 tbl_upper.4262 00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 com.c 2000043c l O .bss 00000001 comEntryStateConnect @@ -116,7 +116,7 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 xcp.c 08003234 l F .text 00000010 XcpProtectResources 08003244 l F .text 00000018 XcpSetCtoError -08004b10 l O .text 00000008 xcpStationId +08004b04 l O .text 00000008 xcpStationId 20000480 l O .bss 0000004c xcpInfo 00000000 l df *ABS* 00000000 backdoor.c 200004cc l O .bss 00000001 backdoorOpen @@ -145,7 +145,7 @@ SYMBOL TABLE: 20000b49 l O .bss 00000001 xcpCtoRxLength.4389 00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 timer.c -20000b4a l O .bss 00000002 millisecond_counter +20000b4c l O .bss 00000004 millisecond_counter 00000000 l df *ABS* 00000000 flash.c 0800401c l F .text 0000001c FlashUnlock 08004038 l F .text 00000010 FlashLock @@ -154,19 +154,19 @@ SYMBOL TABLE: 0800413c l F .text 00000038 FlashGetSectorBaseAddr 08004174 l F .text 00000030 FlashInitBlock 080041a4 l F .text 00000044 FlashSwitchBlock -080041e8 l F .text 000000a0 FlashAddToBlock -08004cfc l O .text 0000009c flashLayout -20000b4c l O .bss 00000204 bootBlockInfo -20000d50 l O .bss 00000204 blockInfo +080041e8 l F .text 00000092 FlashAddToBlock +08004cf0 l O .text 0000009c flashLayout +20000b50 l O .bss 00000204 bootBlockInfo +20000d54 l O .bss 00000204 blockInfo 00000000 l df *ABS* 00000000 ctype_.c 00000000 l df *ABS* 00000000 00000200 l *ABS* 00000000 __STACKSIZE__ 080031bc g F .text 00000034 ComInit -080042a0 g F .text 00000054 FlashWrite +08004294 g F .text 00000054 FlashWrite 0800303c g F .text 0000005e f_gets 08003d98 g F .text 00000018 AssertFailure 08001808 g F .text 0000010a get_fat -08004510 g F .text 0000005c reset_handler +08004504 g F .text 0000005c reset_handler 08003fec g F .text 00000020 TimerUpdate 08003288 g F .text 00000010 XcpPacketTransmitted 08000f58 g F .text 00000004 SPI_I2S_SendData @@ -177,13 +177,13 @@ SYMBOL TABLE: 08003628 g F .text 00000020 BackDoorInit 08000f9c g F .text 0000000c USART_GetFlagStatus 0800364c g F .text 00000002 CopService -08004ec8 g .text 00000000 _etext +08004ebc g .text 00000000 _etext 08003158 g F .text 00000030 ff_wtoupper 080039cc g F .text 000003cc FileTask 08003fb0 g F .text 00000010 TimerReset 08000650 g F .text 00000326 disk_initialize 080031a4 g F .text 00000018 BootTask -08004414 g F .text 00000050 FlashWriteChecksum +08004408 g F .text 00000050 FlashWriteChecksum 08000f64 g F .text 00000020 SPI_CalculateCRC 08000ebc g F .text 0000001c RCC_APB2PeriphClockCmd 0800320c g F .text 0000000e ComTransmitPacket @@ -198,11 +198,11 @@ SYMBOL TABLE: 08003278 g F .text 00000010 XcpIsConnected 08002f6c g F .text 000000d0 f_unlink 08003f7c g F .text 00000008 NvmInit -08004288 g F .text 00000018 FlashInit -20000f54 g .bss 00000000 _ebss +0800427c g F .text 00000018 FlashInit +20000f58 g .bss 00000000 _ebss 0800309c g F .text 00000038 f_putc 080030d4 g F .text 00000036 f_puts -080044fc g F .text 00000014 UnusedISR +080044f0 g F .text 00000014 UnusedISR 08003208 g F .text 00000002 ComFree 08000eb4 g F .text 00000004 GPIO_SetBits 08003e6c g F .text 0000002c UartInit @@ -211,13 +211,13 @@ SYMBOL TABLE: 08002d4c g F .text 00000016 f_close 08003298 g F .text 0000034c XcpPacketReceived 080028d4 g F .text 000001c4 f_read -080044bc g F .text 00000040 FlashDone +080044b0 g F .text 00000040 FlashDone 08000150 g F .text 00000068 EntryFromProg 08000eb8 g F .text 00000004 GPIO_ResetBits 08000df8 g F .text 00000008 get_fattime 0800325c g F .text 0000001c XcpInit 08003958 g F .text 0000002c FileInit -080042f4 g F .text 00000120 FlashErase +080042e8 g F .text 00000120 FlashErase 08000280 g F .text 00000018 FileFirmwareUpdateErrorHook 080002ec g F .text 0000013c main 08002c98 g F .text 000000b4 f_sync @@ -238,9 +238,9 @@ SYMBOL TABLE: 08003f84 g F .text 00000008 NvmWrite 08003db0 g F .text 00000028 CpuStartUserProgram 080017e8 g F .text 0000001e clust2sect -20001154 g .bss 00000000 _estack +20001158 g .bss 00000000 _estack 08000f90 g F .text 0000000c USART_SendData -08004464 g F .text 00000058 FlashVerifyChecksum +08004458 g F .text 00000058 FlashVerifyChecksum 20000008 g .data 00000000 _edata 08003984 g F .text 00000014 FileIsIdle 08002a98 g F .text 00000200 f_write @@ -250,11 +250,11 @@ SYMBOL TABLE: 08000298 g F .text 00000054 FileFirmwareUpdateLogHook 20000004 g O .data 00000004 __ctype_ptr__ 0800322c g F .text 00000008 ComIsConnected -08004dc4 g O .text 00000101 _ctype_ +08004db8 g O .text 00000101 _ctype_ 080001cc g F .text 00000048 FileIsFirmwareUpdateRequestedHook 0800098c g F .text 000000a4 disk_read 080035e4 g F .text 00000044 BackDoorCheck -20000f54 g .bss 00000000 _stack +20000f58 g .bss 00000000 _stack 08000ef4 g F .text 00000044 SPI_Init 0800310c g F .text 0000004c ff_convert 0800400c g F .text 00000010 TimerGet diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.srec index 61614ea6..829aa127 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.srec +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/bin/openbtl_olimex_stm32p103.srec @@ -1,44 +1,44 @@ S024000062696E2F6F70656E62746C5F6F6C696D65785F73746D3332703130332E737265639B -S315080000005411002011450008FD440008FD4400086D -S31508000010FD440008FD440008FD440008FD440008AE -S31508000020FD440008FD440008FD440008FD4400089E -S31508000030FD440008FD440008FD440008FD4400088E -S31508000040FD440008FD440008FD440008FD4400087E -S31508000050FD440008FD440008FD440008FD4400086E -S31508000060FD440008FD440008FD440008FD4400085E -S31508000070FD440008FD440008FD440008FD4400084E -S31508000080FD440008FD440008FD440008FD4400083E -S31508000090FD440008FD440008FD440008FD4400082E -S315080000A0FD440008FD440008FD440008FD4400081E -S315080000B0FD440008FD440008FD440008FD4400080E -S315080000C0FD440008FD440008FD440008FD440008FE -S315080000D0FD440008FD440008FD440008FD440008EE -S315080000E0FD440008FD440008FD440008FD440008DE -S315080000F0FD440008FD440008FD440008FD440008CE -S31508000100FD440008FD440008FD440008FD440008BD -S31508000110FD440008FD440008FD440008FD440008AD -S31508000120FD440008FD440008FD440008FD4400089D -S31508000130FD440008FD440008FD440008FD4400088D -S31508000140FD440008FD440008FD440008FD4400087D +S315080000005811002005450008F1440008F14400088D +S31508000010F1440008F1440008F1440008F1440008DE +S31508000020F1440008F1440008F1440008F1440008CE +S31508000030F1440008F1440008F1440008F1440008BE +S31508000040F1440008F1440008F1440008F1440008AE +S31508000050F1440008F1440008F1440008F14400089E +S31508000060F1440008F1440008F1440008F14400088E +S31508000070F1440008F1440008F1440008F14400087E +S31508000080F1440008F1440008F1440008F14400086E +S31508000090F1440008F1440008F1440008F14400085E +S315080000A0F1440008F1440008F1440008F14400084E +S315080000B0F1440008F1440008F1440008F14400083E +S315080000C0F1440008F1440008F1440008F14400082E +S315080000D0F1440008F1440008F1440008F14400081E +S315080000E0F1440008F1440008F1440008F14400080E +S315080000F0F1440008F1440008F1440008F1440008FE +S31508000100F1440008F1440008F1440008F1440008ED +S31508000110F1440008F1440008F1440008F1440008DD +S31508000120F1440008F1440008F1440008F1440008CD +S31508000130F1440008F1440008F1440008F1440008BD +S31508000140F1440008F1440008F1440008F1440008AD S3150800015010B572B618481949016019498D46124BEF S31508000160124A9A4211D202F10403114CE41A24F0FD S31508000170030404F104044FF0000310460D495A58CD S315080001801A5003F10403A342F9D10E480E494FF061 S3150800019000028842B8BF40F8042BFFF6FAAF03F016 S315080001A03DF800F0A3F810BD08000020000000206C -S315080001B00B000020C84E000808ED00E0000000080B -S315080001C05411002008000020540F002000B589B003 +S315080001B00B000020BC4E000808ED00E00000000817 +S315080001C05811002008000020580F002000B589B0FB S315080001D04FF000030093019302930393049305934E S315080001E0069307930A48694602F09AFE40B9009BAF S315080001F04BB19DF8080080F01000C0F3001004E031 S315080002004FF0000001E04FF0000009B000BD00BF4C -S3150800021074450008004870477445000808B5084842 +S3150800021068450008004870476845000808B508485A S315080002204FF0000380F8243206494FF00A0202F024 S3150800023081FA20B94FF00102014B83F8242208BD48 -S31508000240080000209445000838B50A4B93F8243274 +S31508000240080000208845000838B50A4B93F8243280 S31508000250012B02D1074802F079FD074D4FF0400403 S315080002602846214600F09AFE0028F9D0034802F0F5 -S315080002707DFE38BD08000020004400407445000893 +S315080002707DFE38BD0800002000440040684500089F S3150800028008B5044B93F82432012B02D1014802F039 S315080002905DFD08BD0800002070B50646114B93F8B1 S315080002A02432012B0BD10F4902F014FF002806DA7D @@ -53,7 +53,7 @@ S3150800032022F4FE025A604FF41F029A601A6842F4D9 S3150800033080321A601A4640F2DC53116801F4003123 S315080003400191009901F101010091019911B90099F2 S315080003509942F2D1304B1B6813F4003F04D1304860 -S315080003604FF0760103F018FD2E4B1A6842F0100282 +S315080003604FF0730103F018FD2E4B1A6842F0100285 S315080003701A601A6822F003021A601A6842F002022A S315080003801A60A3F580535A685A605A6842F40052B4 S315080003905A605A6842F480625A605A6822F47C129B @@ -65,7 +65,7 @@ S315080003E09A6942F005029A61A3F584331A6822F4E1 S315080003F070621A601A6842F430621A601A6822F447 S3150800040070421A601A6842F480421A6002F0BCFE12 S3150800041002F0C8FEFCE700BF001002400000FFF82B -S31508000420A44500080020024038B50146084800F0F7 +S31508000420984500080020024038B50146084800F003 S3150800043093FD074D4FF001042846214600F0A2FD22 S315080004400028F9D0024800F089FDC0B238BD00BFC7 S315080004500038004070B503F0D9FD00F5FA764FF084 @@ -489,7 +489,7 @@ S31508001E60D04604E0D04602E0D04600E0D046204600 S31508001E705946FFF7A1FE074600283FF45BAF10E07E S31508001E804FF004070DE006F1FF365FFA86F8DDF835 S31508001E900890ECE7049C00E0049CDDF80890D04626 -S31508001EA0E5E7384607B0BDE8F08F00BF40460008B2 +S31508001EA0E5E7384607B0BDE8F08F00BF34460008BE S31508001EB02DE9F04F85B0824688460B782F2B01D046 S31508001EC05C2B01D108F101084FF00003CAF808306D S31508001ED098F800301F2B0AD850464FF00001FFF73C @@ -540,8 +540,8 @@ S315080021900004D846A8444FF00407E7E609F1FF39DA S315080021A036F819302E2B3FF417AF019B12E7019A28 S315080021B00B2A7FF445AF39E74FF0060207E0019B8B S315080021C00B2B7FF43DAF31E747F002075BE710467C -S315080021D005B0BDE8F08F00BFAC450008C045000853 -S315080021E0B84500082DE9F0410446C588018C4FF62C +S315080021D005B0BDE8F08F00BFA0450008B44500086B +S315080021E0AC4500082DE9F0410446C588018C4FF638 S315080021F0FF73994208BF2946FFF78CFB0346E0B9EF S315080022004FF0E5074FF001064FF0000820682169F6 S31508002210FFF762FA034668B9626917702268167191 @@ -567,7 +567,7 @@ S31508002340464600E0464620463946FFF735FC054630 S3150800235018B92169002986D175B14FF000032361A8 S315080023600AE003F1FF33DEB2F246ECE7F2464646F0 S31508002370E9E74FF00405F0E7284603B0BDE8F08F1B -S31508002380404600082DE9F04104460E46012926D9A3 +S31508002380344600082DE9F04104460E46012926D9AF S315080023908369994226D24FF000074FF0010820467C S315080023A03146FFF731FA0546F8B1012820D0B0F1D9 S315080023B0FF3F20D0204631463A46FFF701FB01464B @@ -623,7 +623,7 @@ S315080026C0FF371FFA87F8B8F1000F0DD06EE706EB53 S315080026D0020E1EF801EC01F80E708E448EF8017099 S315080026E0B2E70C2A9AD9B6E720682169FEF7F4FF03 S315080026F082460028C8D0504607B0BDE8F08F00BF14 -S315080027004FECC44E4046000870B9094B1B6813B11C +S315080027004FECC44E3446000870B9094B1B6813B128 S315080027104FF000021A7011B14FF000030B70044B12 S3150800272019604FF0000070474FF00B00704700BF6C S31508002730380400202DE9F0438FB00191164605466E @@ -788,10 +788,10 @@ S3150800311011B9C72808D114E0FF2818D8A0F18000F3 S315080031200C4B33F8100070470A4A4FF0010332F887 S31508003130021F814207D003F101039BB2802BF6D10F S3150800314001E04FF0000303F18000C0B270474FF072 -S31508003150000070473048000861280BD008494FF036 +S31508003150000070472448000861280BD008494FF042 S31508003160000202F1010231F8023F43B18342F8D16D S3150800317013B970474FF00002024B33F8120070473C -S31508003180504600083049000808B500F05DFA00F01E +S31508003180444600082449000808B500F05DFA00F036 S3150800319017FF00F0F3FE00F0DFFB00F00FF800F079 S315080031A043FA08BD08B500F051FA00F01FFF00F019 S315080031B00DFC00F01DF800F015FA08BD00B583B047 @@ -854,7 +854,7 @@ S315080035308A189A643FE00F4B4FF0FF02DA704FF09B S3150800354000021A715A714FF040019971DA711A72B4 S315080035505A724FF00702A3F844202CE0054B986CEA S31508003560616800F013FD48B94FF03100FFF76AFEB5 -S3150800357021E000BF80040020104B0008184B4FF0D4 +S3150800357021E000BF80040020044B0008184B4FF0E0 S31508003580FF02DA704FF00102A3F8442013E000F0BE S3150800359035FC134B4FF0FF02DA704FF00102A3F827 S315080035A0442008E04FF03100FFF74CFE03E04FF0EF @@ -885,7 +885,7 @@ S31508003720A1F13702D2B202EB001000F0FF0003F15C S315080037300103022BDFD104E04FF0000001E04FF057 S31508003740000070BC704700BF040000202DE9F04F50 S3150800375083B080461746894601B120B97C484FF4A4 -S31508003760157100F019FB98F800307A4A1268D118DA +S31508003760167100F019FB98F800307A4A1268D118D9 S31508003770497801F00301022908BF203B532B40F08A S31508003780C38098F80130D218527802F00402D2B2F7 S31508003790002A00F0BC80312B00F0C380322B00F0E9 @@ -916,10 +916,10 @@ S31508003910000504E04FF6FF7501E04FF0000528B2F8 S3150800392012E04FF0000A04E04FF0010A01E04FF000 S31508003930020A08F10200FFF7D7FE0646019008F1D1 S31508003940040B05465C4632E703B0BDE8F08F00BFBE -S31508003950184B00080400002008B54FF00000064B7D -S3150800396018700649FEF7D0FE20B105484FF09101C0 +S315080039500C4B00080400002008B54FF00000064B89 +S3150800396018700649FEF7D0FE20B105484FF09E01B3 S3150800397000F012FA08BD00BF14050020200500203B -S31508003980184B0008034B1878D0F1010038BF002007 +S315080039800C4B0008034B1878D0F1010038BF002013 S31508003990704700BF1405002008B5FFF747FC01284B S315080039A009D0094B1B784BB9FCF710FC012808D144 S315080039B0054B187008BD4FF0000008BD4FF0000019 @@ -961,11 +961,11 @@ S31508003BE0FFF7B4F84FF000020F4B1A7070BD0028AB S31508003BF03CD0174A104602F5C07102F58072FFF7ED S31508003C00A5FD0446B0F1FF3F30D11748FCF744FB49 S31508003C104FF00300FCF734FB0648FFF797F84FF020 -S31508003C200002014B1A7070BD14050020304B0008C5 -S31508003C30544B0008540700207C4B0008844B0008AE -S31508003C408C4B0008B04B0008180500202005002002 -S31508003C5078090020E04B0008D4040020EC4B00084B -S31508003C60904C0008084C00082C4C000823B2002B86 +S31508003C200002014B1A7070BD14050020244B0008D1 +S31508003C30484B000854070020704B0008784B0008D2 +S31508003C40804B0008A44B000818050020200500201A +S31508003C5078090020D44B0008D4040020E04B000863 +S31508003C60844C0008FC4B0008204C000823B2002BAB S31508003C7046DD3C48FCF710FB24B23B4D204629465E S31508003C80FFF70EFD2846FCF707FB3848FCF704FB50 S31508003C90374E96F883012946FFF7F0FC96F882011D @@ -981,17 +981,17 @@ S31508003D204FF00700FCF7ACFA1448FFF70FF84FF00E S31508003D300002134B1A7070BD1248FCF7ADFA14480E S31508003D40FCF7AAFA0D48FFF701F81248FCF7A4FA9F S31508003D504FF000020A4B1A70FCF776FA00F028F8C2 -S31508003D6070BD00BF504C0008D4040020604C000809 -S31508003D7078090020904C00087C4B00085407002066 -S31508003D8014050020844B000820050020784C000804 -S31508003D90944C0008AC4C000808B5034B1860034B5C +S31508003D6070BD00BF444C0008D4040020544C000821 +S31508003D7078090020844C0008704B0008540700207E +S31508003D8014050020784B0008200500206C4C00081C +S31508003D90884C0008A04C000808B5034B1860034B74 S31508003DA01960FFF753FCFCE7FC0A0020000B002013 S31508003DB008B500F0EFF850B1FFF726FA00F0F8F86A S31508003DC04FF4C042024B1A60024B1B68984708BD65 S31508003DD008ED00E00460000870B5044602F1FF36FD S31508003DE0B6B252B100F101039E190D1A635D04F8CB S31508003DF0013BFFF72BFCB442F8D170BD08B500F0C3 -S31508003E0087FB08BD074B1B8803F020039BB22BB129 +S31508003E0081FB08BD074B1B8803F020039BB22BB12F S31508003E10044B9B8803704FF0010070474FF0000079 S31508003E20704700BF0044004010B50F4B1B8803F0D5 S31508003E3080039BB293B10C4B98801B8803F08003D8 @@ -1001,12 +1001,12 @@ S31508003E6010BD4FF0010010BD00440040094B4FF053 S31508003E7000021A819A811A829A821A8340F2712262 S31508003E801A819A8992B242F4005242F00C029A813F S31508003E90704700BF004400402DE9F04106460C4635 -S31508003EA0402904D914484FF08801FFF775FF2046CA -S31508003EB0FFF7BAFF012804D00F484FF08B01FFF730 +S31508003EA0402904D914484FF08D01FFF775FF2046C5 +S31508003EB0FFF7BAFF012804D00F484FF09001FFF72B S31508003EC06BFF2546ACB14FF00004DFF82C804FF0AD -S31508003ED09307FFF7BBFB305DFFF7A6FF012803D06A +S31508003ED09807FFF7BBFB305DFFF7A6FF012803D065 S31508003EE040463946FFF758FF04F10104A3B2AB4236 -S31508003EF0EFD3BDE8F08100BFD84C000838B50546B9 +S31508003EF0EFD3BDE8F08100BFCC4C000838B50546C5 S31508003F001A4B1B786BB91A48FFF77CFF012824D196 S31508003F104FF00102154B1A704FF00000154B187040 S31508003F2038BD144B1C7814482018FFF76BFF01287E @@ -1015,23 +1015,23 @@ S31508003F40934210D128460C49FFF746FF4FF000026E S31508003F50064B1A704FF0010038BD4FF0000038BD0F S31508003F604FF0000038BD4FF0000038BD480B002068 S31508003F70040B0020490B0020050B002008B500F0B3 -S31508003F8083F908BD08B500F08BF908BD08B500F03F -S31508003F90B1F908BD08B500F065FA08BD08B500F026 -S31508003FA039FA10B100F08AFA08BD4FF0000008BDD2 +S31508003F807DF908BD08B500F085F908BD08B500F04B +S31508003F90ABF908BD08B500F05FFA08BD08B500F032 +S31508003FA033FA10B100F084FA08BD4FF0000008BDDE S31508003FB04FF00002014B1A60704700BF10E000E0A6 S31508003FC008B5FFF7F5FF064B064A5A604FF00002A0 -S31508003FD09A604FF005011960034B1A8008BD00BFAF -S31508003FE010E000E03F1901004A0B0020054B1B6852 -S31508003FF013F4803F04D0044B1A8802F101021A8098 -S31508004000704700BF10E000E04A0B002008B5FFF734 -S31508004010EDFF014B188808BD4A0B0020044B054AE2 +S31508003FD09A604FF005011960034B1A6008BD00BFCF +S31508003FE010E000E03F1901004C0B0020054B1B6850 +S31508003FF013F4803F04D0044B1A6802F101021A60D8 +S31508004000704700BF10E000E04C0B002008B5FFF732 +S31508004010EDFF014B186808BD4C0B0020044B054A00 S315080040205A6002F188325A604FF03402DA607047FB S315080040300020024023016745024B1A6942F08002BC S315080040401A61704700200240F8B507464FF0000491 S3150800405025460D4EFFF7FAFAA359BB420BD831197C S3150800406049685B189F4206D205EB4502064B03EBEF S315080040708202107AF8BD05F1010504F10C049C2CA6 -S31508004080E8D14FF0FF00F8BDFC4C00082DE9F041DF +S31508004080E8D14FF0FF00F8BDF04C00082DE9F041EB S3150800409080460068FFF7D8FFFF2847D0FFF7BEFF26 S315080040A0254BDB6813F0010F04D0FFF7C5FF4FF06F S315080040B000043DE0204B1A6942F001021A614FF0F4 @@ -1046,219 +1046,218 @@ S315080041302046BDE8F08100BF0020024070B5064663 S315080041400B4D4FF00004FFF781FA2B7AB34205D1E5 S3150800415004EB4402064B53F8220070BD04F1010437 S3150800416005F10C050D2CEED14FF0FF3070BD00BFE8 -S31508004170FC4C000808B54FEAC1534FEAD3535BB964 +S31508004170F04C000808B54FEAC1534FEAD3535BB970 S3150800418003688B420BD040F8041B4FF40072FFF70C S3150800419023FE4FF0010008BD4FF0000008BD4FF0A8 S315080041A0010008BD38B504460D460C4B984206D0AA S315080041B00B4B994205D0FFF769FF18B90AE0094C7D S315080041C000E0064C20462946FFF7D4FF002808BF22 -S315080041D0002401E04FF00004204638BD4C0B0020B7 -S315080041E000600008500D00202DE9F84306460C46ED -S315080041F015461F464FEA51294FEA49290268B2F186 -S31508004200FF3F03D14946FFF7B5FF88B333684B45EF -S3150800421005D030464946FFF7C5FF064660B3336802 -S31508004220E41A341904F1040407F1FF381FFA88F870 -S3150800423008F10108A84440F2FF1709F50079FFF7CD -S3150800424005FA06F10403E31ABB4207D93046494684 -S31508004250FFF7A8FF064698B100F1040415F8013BDC -S3150800426004F8013B4545EAD14FF00100BDE8F88363 -S315080042704FF00000BDE8F8834FF00000BDE8F88372 -S315080042804FF00000BDE8F8834FF0FF33024A136091 -S31508004290024A1360704700BF500D00204C0B0020E7 -S315080042A070B504460D461646FFF7CEFEFF2814D015 -S315080042B004F1FF304019FFF7C7FEFF2810D04FEA78 -S315080042C05422094BB3EB422F0CBF08480848214635 -S315080042D03246ABB2FFF788FF70BD4FF0000070BDE5 -S315080042E04FF0000070BD00BF006000084C0B0020B6 -S315080042F0500D00202DE9F04106460C46FFF7A4FEB6 -S31508004300054606F1FF300019FFF79EFE0446FF2D0D -S3150800431073D0FF2875D0854263D8022D65D90F283A -S3150800432067D8FFF77BFE394BDB6813F0010F05D022 -S31508004330FFF782FE4FF00000BDE8F081334B1A69A3 -S3150800434042F002021A612846FFF7F8FE07462046A1 -S31508004350FFF7F4FE80462E4E4FF00005FFF776F97C -S31508004360337AA34206D105EB4502294B03EB8203B8 -S315080043705B6807E005F1010506F10C060D2DEDD188 -S315080043804FF00003C7EB08084344C3F38F23EBB190 -S3150800439003F1FF339EB206F101064FEA86264FF077 -S315080043A000051A4CEB196361236943F04003236146 -S315080043B0E36813F0010F05D0FFF748F9E36813F037 -S315080043C0010FF9D105F58065B542EBD10F4B1A6996 -S315080043D022F002021A61FFF72FFE4FF00100BDE836 -S315080043E0F0814FF00000BDE8F0814FF00000BDE815 -S315080043F0F0814FF00000BDE8F0814FF00000BDE805 -S31508004400F0814FF00000BDE8F08100BF00200240B7 -S31508004410FC4C000800B583B0104B1B68B3F1FF3F96 -S3150800442018D00E4B99685A688918DA6889181A6973 -S3150800443089185A6989189A698A18D9695318C3F163 -S31508004440000302AA42F8043D05484FF00401FFF7AD -S3150800445027FF01E04FF0010003B000BD4C0B002020 -S31508004460506100080E4B1868A3F104031B68C018B6 -S315080044700C4B1B68C0180C4B1B68C0180B4B1B68F1 -S31508004480C0180B4B1B68C0180A4B1B68C0180A4B90 -S315080044901B68C018D0F1010038BF0020704700BF64 -S315080044A004600008086000080C6000081060000836 -S315080044B014600008186000085061000808B50D4B24 -S315080044C01B68B3F1FF3F03D00A48FFF7DFFD58B179 -S315080044D0094B1B68B3F1FF3F09D00748FFF7D6FD24 -S315080044E0003018BF012008BD4FF0000008BD4FF08E -S315080044F0010008BD4C0B0020500D002008B50348EC -S315080045004FF03601FFF748FC08BD00BF984D00087C -S3150800451010B572B6114B124A9A4211D202F104032F -S31508004520104CE41A24F0030404F104044FF00003C9 -S3150800453010460D495A581A5003F10403A342F9D1FB -S315080045400A480B494FF000028842B8BF40F8042BCE -S31508004550FFF6FAAFFBF7CAFE10BD00BF0800002041 -S31508004560000000200B000020C84E000808000020AC -S31508004570540F00202F64656D6F70726F675F6F6CE4 -S31508004580696D65785F73746D3332703130332E73AD -S31508004590726563002F626F6F746C6F672E74787420 -S315080045A0000000006D61696E2E630000222A3A3C05 -S315080045B03E3F7C7F000000002B2C3B3D5B5D0000EE -S315080045C0809A90418E418F804545454949498E8F4D -S315080045D09092924F994F555559999A9B9C9D9E9F9B -S315080045E041494F55A5A5A6A7A8A9AAABAC21AEAF28 -S315080045F0B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF35 -S31508004600C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF24 -S31508004610D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF14 -S31508004620E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF04 -S31508004630F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFFF4 -S3150800464001030507090E10121416181C1E00000097 -S315080046506100620063006400650066006700680028 -S3150800466069006A006B006C006D006E006F007000D8 -S315080046707100720073007400750076007700780088 -S3150800468079007A00A100A200A300A500AC00AF0043 -S31508004690E000E100E200E300E400E500E600E700F0 -S315080046A0E800E900EA00EB00EC00ED00EE00EF00A0 -S315080046B0F000F100F200F300F400F500F600F8004F -S315080046C0F900FA00FB00FC00FD00FE00FF000101F6 -S315080046D003010501070109010B010D010F01110174 -S315080046E013011501170119011B011D011F012101E4 -S315080046F023012501270129012B012D012F01310154 -S315080047003301350137013A013C013E0140014201BE -S315080047104401460148014B014D014F015101530126 -S315080047205501570159015B015D015F016101630193 -S315080047306501670169016B016D016F017101730103 -S31508004740750177017A017C017E019201B103B203FA -S31508004750B303B403B503B603B703B803B903BA037F -S31508004760BB03BC03BD03BE03BF03C003C103C3032E -S31508004770C403C503C603C703C803C903CA03300471 -S315080047803104320433043404350436043704380457 -S3150800479039043A043B043C043D043E043F04400407 -S315080047A041044204430444044504460447044804B7 -S315080047B049044A044B044C044D044E044F04510466 -S315080047C0520453045404550456045704580459040F -S315080047D05A045B045C045E045F0470217121722133 -S315080047E073217421752176217721782179217A21FF -S315080047F07B217C217D217E217F2141FF42FF43FFD2 -S3150800480044FF45FF46FF47FF48FF49FF4AFF4BFF66 -S315080048104CFF4DFF4EFF4FFF50FF51FF52FF53FF16 -S3150800482054FF55FF56FF57FF58FF59FF5AFF000020 -S31508004830C700FC00E900E200E400E000E500E7004C -S31508004840EA00EB00E800EF00EE00EC00C400C5004B -S31508004850C900E600C600F400F600F200FB00F90005 -S31508004860FF00D600DC00A200A300A500A720920145 -S31508004870E100ED00F300FA00F100D100AA00BA0049 -S31508004880BF001023AC00BD00BC00A100AB00BB00FC -S3150800489091259225932502252425612562255625ED -S315080048A055256325512557255D255C255B2510254E -S315080048B0142534252C251C2500253C255E255F2539 -S315080048C05A25542569256625602550256C256725B2 -S315080048D068256425652559255825522553256B25B0 -S315080048E06A2518250C25882584258C25902580255C -S315080048F0B103DF009303C003A303C303B500C403D6 -S31508004900A6039803A903B4031E22C603B5032922E6 -S315080049106122B1006522642220232123F700482260 -S31508004920B0001922B7001A227F20B200A025A000E5 -S315080049304100420043004400450046004700480045 -S3150800494049004A004B004C004D004E004F005000F5 -S3150800495051005200530054005500560057005800A5 -S3150800496059005A002100E0FFE1FFE5FFE2FFE3FFFF -S31508004970C000C100C200C300C400C500C600C7000D -S31508004980C800C900CA00CB00CC00CD00CE00CF00BD -S31508004990D000D100D200D300D400D500D600D8006C -S315080049A0D900DA00DB00DC00DD00DE00780100015A -S315080049B002010401060108010A010C010E01100199 -S315080049C012011401160118011A011C011E01200109 -S315080049D022012401260128012A012C012E01300179 -S315080049E032013401360139013B013D013F014101E4 -S315080049F04301450147014A014C014E01500152014C -S31508004A005401560158015A015C015E0160016201B8 -S31508004A106401660168016A016C016E017001720128 -S31508004A207401760179017B017D019101910392035D -S31508004A3093039403950396039703980399039A039C -S31508004A409B039C039D039E039F03A003A103A3034B -S31508004A50A403A503A603A703A803A903AA0310048E -S31508004A601104120413041404150416041704180474 -S31508004A7019041A041B041C041D041E041F04200424 -S31508004A8021042204230424042504260427042804D4 -S31508004A9029042A042B042C042D042E042F040104B3 -S31508004AA002040304040405040604070408040904AC -S31508004AB00A040B040C040E040F0460216121622110 -S31508004AC063216421652166216721682169216A219C -S31508004AD06B216C216D216E216F2121FF22FF23FF9F -S31508004AE024FF25FF26FF27FF28FF29FF2AFF2BFF84 -S31508004AF02CFF2DFF2EFF2FFF30FF31FF32FF33FF34 -S31508004B0034FF35FF36FF37FF38FF39FF3AFF00001D -S31508004B104F70656E424C54002E2E2F2E2E2F2E2EA1 -S31508004B202F536F757263652F66696C652E63000077 -S31508004B304669726D77617265207570646174652067 -S31508004B4072657175657374206465746563746564EC -S31508004B500A0D00004F70656E696E67206669726D92 -S31508004B60776172652066696C6520666F722072656A -S31508004B706164696E672E2E2E000000004552524F62 -S31508004B80520A0D004F4B0A0D000000005374617263 -S31508004B9074696E67207468652070726F6772616DDC -S31508004BA06D696E672073657175656E63650A0D00BC -S31508004BB050617273696E67206669726D7761726596 -S31508004BC02066696C6520746F206F627461696E2057 -S31508004BD065726173652073697A652E2E2E00000052 -S31508004BE045726173696E672000000000206279745F -S31508004BF065732066726F6D206D656D6F72792061C1 -S31508004C00742030780000000052656164696E672080 -S31508004C106C696E652066726F6D2066696C652E2EEE -S31508004C202E4552524F520A0D00000000496E766119 -S31508004C306C696420636865636B73756D20666F7550 -S31508004C406E642E2E2E4552524F520A0D0000000059 -S31508004C5050726F6772616D6D696E672000000000A3 -S31508004C6020627974657320746F206D656D6F727933 -S31508004C70206174203078000057726974696E672065 -S31508004C8070726F6772616D20636865636B73756DAB -S31508004C902E2E2E00436C6F73696E67206669726DDF -S31508004CA0776172652066696C650A0D004669726DE2 -S31508004CB077617265207570646174652073756363C6 -S31508004CC065737366756C6C7920636F6D706C65744B -S31508004CD065640A0D000000002E2E2F2E2E2F2E2E74 -S31508004CE02F536F757263652F41524D434D335F5392 -S31508004CF0544D33322F756172742E630000600008BC -S31508004D0000200000030000000080000800200000CA -S31508004D100400000000A000080020000005000000B4 -S31508004D2000C00008002000000600000000E000089F -S31508004D300020000007000000000001080020000015 -S31508004D4008000000002001080020000009000000FB -S31508004D5000400108002000000A0000000060010869 -S31508004D60002000000B000000008001080020000061 -S31508004D700C00000000A00108002000000D00000043 -S31508004D8000C00108002000000E00000000E0010835 -S31508004D90002000000F0000002E2E2F2E2E2F2E2E64 -S31508004DA02F536F757263652F41524D434D335F53D1 -S31508004DB0544D33322F4743432F766563746F7273AE -S31508004DC02E630000002020202020202020202828D4 -S31508004DD028282820202020202020202020202020AD -S31508004DE020202020208810101010101010101010ED -S31508004DF0101010101004040404040404040404101D -S31508004E0010101010101041414141414101010101AA -S31508004E100101010101010101010101010101010174 -S31508004E201010101010104242424242420202020280 -S31508004E300202020202020202020202020202020244 -S31508004E4010101010200000000000000000000000F4 +S315080041D0002401E04FF00004204638BD500B0020B3 +S315080041E000600008540D00202DE9F84306460C46E9 +S315080041F017461D464FEA51294FEA49290368B3F184 +S31508004200FF3F03D14946FFF7B5FF50B333684B4527 +S3150800421005D030464946FFF7C5FF064628B333683A +S31508004220E41A341904F1040440F2FF1809F5007978 +S31508004230FFF70CFA06F10403E31A434507D930469B +S315080042404946FFF7AFFF064698B100F1040417F890 +S31508004250013B04F8013B013DEAD14FF00100BDE8FE +S31508004260F8834FF00000BDE8F8834FF00000BDE882 +S31508004270F8834FF00000BDE8F88300BF4FF0FF3326 +S31508004280024A1360024A1360704700BF540D0020AB +S31508004290500B002070B504460D461646FFF7D4FEAF +S315080042A0FF2814D004F1FF304019FFF7CDFEFF2890 +S315080042B010D04FEA5422094BB3EB422F0CBF0848E3 +S315080042C00848214632462B46FFF78EFF70BD4FF051 +S315080042D0000070BD4FF0000070BD00BF0060000810 +S315080042E0500B0020540D00202DE9F04106460C46DF +S315080042F0FFF7AAFE054606F1FF300019FFF7A4FEF0 +S315080043000446FF2D73D0FF2875D0854263D8022D49 +S3150800431065D90F2867D8FFF781FE394BDB6813F09C +S31508004320010F05D0FFF788FE4FF00000BDE8F081C9 +S31508004330334B1A6942F002021A612846FFF7FEFE5D +S3150800434007462046FFF7FAFE80462E4E4FF0000538 +S31508004350FFF77CF9337AA34206D105EB4502294BD0 +S3150800436003EB82035B6807E005F1010506F10C061D +S315080043700D2DEDD14FF00003C7EB08084344C3F3F6 +S315080043808F23EBB103F1FF339EB206F101064FEA24 +S3150800439086264FF000051A4CEB196361236943F032 +S315080043A040032361E36813F0010F05D0FFF74EF9C8 +S315080043B0E36813F0010FF9D105F58065B542EBD135 +S315080043C00F4B1A6922F002021A61FFF735FE4FF009 +S315080043D00100BDE8F0814FF00000BDE8F0814FF024 +S315080043E00000BDE8F0814FF00000BDE8F0814FF015 +S315080043F00000BDE8F0814FF00000BDE8F08100BF85 +S3150800440000200240F04C000800B583B0104B1B6832 +S31508004410B3F1FF3F18D00E4B99685A688918DA68C5 +S3150800442089181A6989185A6989189A698A18D9696E +S315080044305318C3F1000302AA42F8043D05484FF099 +S315080044400401FFF727FF01E04FF0010003B000BDAC +S31508004450500B0020506100080E4B1868A3F10403A6 +S315080044601B68C0180C4B1B68C0180C4B1B68C0187F +S315080044700B4B1B68C0180B4B1B68C0180A4B1B68F4 +S31508004480C0180A4B1B68C018D0F1010038BF0020BD +S31508004490704700BF04600008086000080C60000848 +S315080044A010600008146000081860000850610008D1 +S315080044B008B50D4B1B68B3F1FF3F03D00A48FFF759 +S315080044C0E5FD58B1094B1B68B3F1FF3F09D0074812 +S315080044D0FFF7DCFD003018BF012008BD4FF00000D3 +S315080044E008BD4FF0010008BD500B0020540D0020F8 +S315080044F008B503484FF03601FFF74EFC08BD00BF6C +S315080045008C4D000810B572B6114B124A9A4211D258 +S3150800451002F10403104CE41A24F0030404F1040421 +S315080045204FF0000310460D495A581A5003F1040378 +S31508004530A342F9D10A480B494FF000028842B8BF96 +S3150800454040F8042BFFF6FAAFFBF7D0FE10BD00BF0C +S3150800455008000020000000200B000020BC4E0008C8 +S3150800456008000020580F00202F64656D6F70726F69 +S31508004570675F6F6C696D65785F73746D3332703120 +S3150800458030332E73726563002F626F6F746C6F67BA +S315080045902E747874000000006D61696E2E63000049 +S315080045A0222A3A3C3E3F7C7F000000002B2C3B3DF4 +S315080045B05B5D0000809A90418E418F804545454954 +S315080045C049498E8F9092924F994F555559999A9B72 +S315080045D09C9D9E9F41494F55A5A5A6A7A8A9AAABEC +S315080045E0AC21AEAFB0B1B2B3B4B5B6B7B8B9BABB11 +S315080045F0BCBDBEBFC0C1C2C3C4C5C6C7C8C9CACB75 +S31508004600CCCDCECFD0D1D2D3D4D5D6D7D8D9DADB64 +S31508004610DCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEB54 +S31508004620ECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFB44 +S31508004630FCFDFEFF01030507090E10121416181CCF +S315080046401E000000610062006300640065006600E9 +S315080046506700680069006A006B006C006D006E00F8 +S315080046606F007000710072007300740075007600A8 +S315080046707700780079007A00A100A200A300A500BF +S31508004680AC00AF00E000E100E200E300E400E50072 +S31508004690E600E700E800E900EA00EB00EC00ED00C0 +S315080046A0EE00EF00F000F100F200F300F400F50070 +S315080046B0F600F800F900FA00FB00FC00FD00FE0019 +S315080046C0FF00010103010501070109010B010D01A5 +S315080046D00F01110113011501170119011B011D0114 +S315080046E01F01210123012501270129012B012D0184 +S315080046F02F0131013301350137013A013C013E01F1 +S31508004700400142014401460148014B014D014F0158 +S31508004710510153015501570159015B015D015F01C3 +S31508004720610163016501670169016B016D016F0133 +S3150800473071017301750177017A017C017E0192018D +S31508004740B103B203B303B403B503B603B703B8039F +S31508004750B903BA03BB03BC03BD03BE03BF03C0034F +S31508004760C103C303C403C503C603C703C803C903F8 +S31508004770CA033004310432043304340435043604DD +S315080047803704380439043A043B043C043D043E0427 +S315080047903F044004410442044304440445044604D7 +S315080047A04704480449044A044B044C044D044E0487 +S315080047B04F04510452045304540455045604570430 +S315080047C0580459045A045B045C045E045F047021AF +S315080047D0712172217321742175217621772178211F +S315080047E079217A217B217C217D217E217F2141FF30 +S315080047F042FF43FF44FF45FF46FF47FF48FF49FF87 +S315080048004AFF4BFF4CFF4DFF4EFF4FFF50FF51FF36 +S3150800481052FF53FF54FF55FF56FF57FF58FF59FFE6 +S315080048205AFF0000C700FC00E900E200E400E000CF +S31508004830E500E700EA00EB00E800EF00EE00EC0018 +S31508004840C400C500C900E600C600F400F600F20080 +S31508004850FB00F900FF00D600DC00A200A300A500BB +S31508004860A7209201E100ED00F300FA00F100D10063 +S31508004870AA00BA00BF001023AC00BD00BC00A1000E +S31508004880AB00BB0091259225932502252425612599 +S315080048906225562555256325512557255D255C2511 +S315080048A05B251025142534252C251C2500253C259B +S315080048B05E255F255A2554256925662560255025D8 +S315080048C06C256725682564256525592558255225AB +S315080048D053256B256A2518250C25882584258C25BE +S315080048E090258025B103DF009303C003A303C30308 +S315080048F0B500C403A6039803A903B4031E22C6037E +S31508004900B50329226122B1006522642220232123CE +S31508004910F7004822B0001922B7001A227F20B200F9 +S31508004920A025A0004100420043004400450046007F +S315080049304700480049004A004B004C004D004E0015 +S315080049404F005000510052005300540055005600C5 +S315080049505700580059005A002100E0FFE1FFE5FF23 +S31508004960E2FFE3FFC000C100C200C300C400C500E7 +S31508004970C600C700C800C900CA00CB00CC00CD00DD +S31508004980CE00CF00D000D100D200D300D400D5008D +S31508004990D600D800D900DA00DB00DC00DD00DE0036 +S315080049A07801000102010401060108010A010C014F +S315080049B00E01100112011401160118011A011C0139 +S315080049C01E01200122012401260128012A012C01A9 +S315080049D02E01300132013401360139013B013D0116 +S315080049E03F0141014301450147014A014C014E017E +S315080049F0500152015401560158015A015C015E01E9 +S31508004A00600162016401660168016A016C016E0158 +S31508004A10700172017401760179017B017D019101B2 +S31508004A2091039203930394039503960397039803BC +S31508004A3099039A039B039C039D039E039F03A0036C +S31508004A40A103A303A403A503A603A703A803A90315 +S31508004A50AA031004110412041304140415041604FA +S31508004A601704180419041A041B041C041D041E0444 +S31508004A701F042004210422042304240425042604F4 +S31508004A802704280429042A042B042C042D042E04A4 +S31508004A902F0401040204030404040504060407049D +S31508004AA0080409040A040B040C040E040F0460210C +S31508004AB061216221632164216521662167216821BC +S31508004AC069216A216B216C216D216E216F2121FFDD +S31508004AD022FF23FF24FF25FF26FF27FF28FF29FFA4 +S31508004AE02AFF2BFF2CFF2DFF2EFF2FFF30FF31FF54 +S31508004AF032FF33FF34FF35FF36FF37FF38FF39FF04 +S31508004B003AFF00004F70656E424C54002E2E2F2E31 +S31508004B102E2F2E2E2F536F757263652F66696C655F +S31508004B202E6300004669726D776172652075706440 +S31508004B306174652072657175657374206465746542 +S31508004B40637465640A0D00004F70656E696E6720B0 +S31508004B506669726D776172652066696C6520666F35 +S31508004B60722072656164696E672E2E2E0000000041 +S31508004B704552524F520A0D004F4B0A0D00000000D5 +S31508004B805374617274696E67207468652070726FF9 +S31508004B906772616D6D696E672073657175656E63A1 +S31508004BA0650A0D0050617273696E67206669726DD9 +S31508004BB0776172652066696C6520746F206F627410 +S31508004BC061696E2065726173652073697A652E2E38 +S31508004BD02E00000045726173696E672000000000B0 +S31508004BE02062797465732066726F6D206D656D6FCE +S31508004BF07279206174203078000000005265616483 +S31508004C00696E67206C696E652066726F6D206669CD +S31508004C106C652E2E2E4552524F520A0D000000008A +S31508004C20496E76616C696420636865636B73756D3C +S31508004C3020666F756E642E2E2E4552524F520A0DFF +S31508004C400000000050726F6772616D6D696E6720B3 +S31508004C500000000020627974657320746F206D650A +S31508004C606D6F72792061742030780000577269740C +S31508004C70696E672070726F6772616D20636865631D +S31508004C806B73756D2E2E2E00436C6F73696E6720DD +S31508004C906669726D776172652066696C650A0D00D2 +S31508004CA04669726D776172652075706461746520F6 +S31508004CB07375636365737366756C6C7920636F6D62 +S31508004CC0706C657465640A0D000000002E2E2F2E88 +S31508004CD02E2F2E2E2F536F757263652F41524D431B +S31508004CE04D335F53544D33322F756172742E630002 +S31508004CF00060000800200000030000000080000893 +S31508004D00002000000400000000A0000800200000A9 +S31508004D100500000000C00008002000000600000092 +S31508004D2000E000080020000007000000000001085D +S31508004D3000200000080000000020010800200000F4 +S31508004D400900000000400108002000000A000000D9 +S31508004D5000600108002000000B0000000080010828 +S31508004D60002000000C00000000A001080020000040 +S31508004D700D00000000C00108002000000E00000021 +S31508004D8000E00108002000000F0000002E2E2F2E44 +S31508004D902E2F2E2E2F536F757263652F41524D435A +S31508004DA04D335F53544D33322F4743432F76656354 +S31508004DB0746F72732E6300000020202020202020AC +S31508004DC020202828282828202020202020202020AD +S31508004DD020202020202020202088101010101010BD +S31508004DE01010101010101010100404040404040409 +S31508004DF004040410101010101010414141414141A3 +S31508004E000101010101010101010101010101010184 +S31508004E100101010110101010101042424242424294 +S31508004E200202020202020202020202020202020254 +S31508004E3002020202101010102000000000000000FC +S31508004E400000000000000000000000000000000054 S31508004E500000000000000000000000000000000044 S31508004E600000000000000000000000000000000034 S31508004E700000000000000000000000000000000024 S31508004E800000000000000000000000000000000014 S31508004E900000000000000000000000000000000004 S31508004EA000000000000000000000000000000000F4 -S31508004EB000000000000000000000000000000000E4 -S30D08004EC00000000000000000DC -S30D08004EC801000000C44D0008BA +S31108004EB0000000000000000000000000E8 +S30D08004EBC01000000B84D0008D2 S70508000000F2 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/boot.dox new file mode 100644 index 00000000..f3d7df8b --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM3_STM32_Olimex_STM32P103_GCC Bootloader +\brief Bootloader. +\ingroup ARMCM3_STM32_Olimex_STM32P103_GCC +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/config.h index 959aee2b..bfa7fdb7 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/config.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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 (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 (1) @@ -114,10 +132,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) @@ -132,6 +155,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) @@ -144,7 +168,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) @@ -157,6 +183,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_STM32P103_GCC/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c index ffa4da48..849df52b 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/hooks.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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,11 +46,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) @@ -56,11 +56,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) @@ -76,15 +74,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) @@ -100,12 +96,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) @@ -113,20 +107,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) @@ -135,18 +127,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) @@ -155,11 +146,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) @@ -174,13 +163,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) @@ -188,14 +175,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) @@ -213,6 +198,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.srec"; @@ -220,22 +206,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.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) @@ -263,14 +248,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) @@ -280,12 +263,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) @@ -303,12 +284,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) @@ -329,12 +308,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) @@ -351,12 +328,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_STM32_Olimex_STM32P103_GCC/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/main.c index 2377ee08..5eeca350 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Boot/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_GCC/Prog/bin/demoprog_olimex_stm32p103.elf b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/bin/demoprog_olimex_stm32p103.elf index 184cb75d..36ce42af 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/bin/demoprog_olimex_stm32p103.elf and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/bin/demoprog_olimex_stm32p103.elf differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/boot.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/boot.c index e1cb1c00..949df815 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/boot.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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\ARMCM3_STM32_Olimex_STM32P103_GCC\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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 +104,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 +155,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) @@ -192,28 +182,26 @@ static unsigned char UartReceiveByte(unsigned char *data) * C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * 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 */ @@ -239,15 +227,14 @@ static const tCanBusTiming canTiming[] = }; -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 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 prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. ** ****************************************************************************************/ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, @@ -279,11 +266,9 @@ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *pres } /*** 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) @@ -343,12 +328,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_STM32_Olimex_STM32P103_GCC/Prog/boot.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/boot.h index 92789052..9ff7b7f6 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/boot.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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\ARMCM3_STM32_Olimex_STM32P103_GCC\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_GCC/Prog/cstart.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/cstart.c index 348255d9..8d394338 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/cstart.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\cstart.c +* \brief Demo program C startup source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/header.h index 8e99d289..33502d7e 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/header.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/irq.c index a5cd3cd8..70609148 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/irq.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/irq.h index 9f12faf4..81486dcb 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/irq.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/led.c index d4d4a557..d4b612d4 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/led.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/led.h index f69b6a44..8dfb365c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/led.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/main.c index ced41fea..9eed0050 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_GCC/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/prog.dox new file mode 100644 index 00000000..aaf3c601 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM3_STM32_Olimex_STM32P103_GCC User Program +\brief User Program. +\ingroup ARMCM3_STM32_Olimex_STM32P103_GCC +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/timer.c index 282215a8..8bda1fde 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/timer.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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 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_STM32_Olimex_STM32P103_GCC/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/timer.h index b3da70d4..3539bff6 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/timer.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/vectors.c index 9f671c56..a5c18532 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/Prog/vectors.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_GCC/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/demo.dox new file mode 100644 index 00000000..e8365cae --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_GCC/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM3_STM32_Olimex_STM32P103_GCC Demo for Olimex STM32-P103/GCC +\brief Preconfigured programs for the Olimex STM32-P103 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_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out index 7c4a2c2b..a2f47d1f 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.out differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec index 58a721a2..78a5d1fe 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/bin/openbtl_olimex_stm32p103.srec @@ -1,27 +1,27 @@ S02000006F70656E62746C5F6F6C696D65785F73746D3332703130332E7372656307 -S315080000004813002001410008E94C0008E94C0008A3 -S31508000010E94C0008E94C0008E94C0008E94C0008DE -S31508000020E94C0008E94C0008E94C0008E94C0008CE -S31508000030E94C0008E94C0008E94C0008E94C0008BE -S31508000040E94C0008E94C0008E94C0008E94C0008AE -S31508000050E94C0008E94C0008E94C0008E94C00089E -S31508000060E94C0008E94C0008E94C0008E94C00088E -S31508000070E94C0008E94C0008E94C0008E94C00087E -S31508000080E94C0008E94C0008E94C0008E94C00086E -S31508000090E94C0008E94C0008E94C0008E94C00085E -S315080000A0E94C0008E94C0008E94C0008E94C00084E -S315080000B0E94C0008E94C0008E94C0008E94C00083E -S315080000C0E94C0008E94C0008E94C0008E94C00082E -S315080000D0E94C0008E94C0008E94C0008E94C00081E -S315080000E0E94C0008E94C0008E94C0008E94C00080E -S315080000F0E94C0008E94C0008E94C0008E94C0008FE -S31508000100E94C0008E94C0008E94C0008E94C0008ED -S31508000110E94C0008E94C0008E94C0008E94C0008DD -S31508000120E94C0008E94C0008E94C0008E94C0008CD -S31508000130E94C0008E94C0008E94C0008E94C0008BD -S31508000140E94C0008E94C0008E94C0008E94C0008AD +S3150800000050130020F9400008E14C0008E14C0008B4 +S31508000010E14C0008E14C0008E14C0008E14C0008FE +S31508000020E14C0008E14C0008E14C0008E14C0008EE +S31508000030E14C0008E14C0008E14C0008E14C0008DE +S31508000040E14C0008E14C0008E14C0008E14C0008CE +S31508000050E14C0008E14C0008E14C0008E14C0008BE +S31508000060E14C0008E14C0008E14C0008E14C0008AE +S31508000070E14C0008E14C0008E14C0008E14C00089E +S31508000080E14C0008E14C0008E14C0008E14C00088E +S31508000090E14C0008E14C0008E14C0008E14C00087E +S315080000A0E14C0008E14C0008E14C0008E14C00086E +S315080000B0E14C0008E14C0008E14C0008E14C00085E +S315080000C0E14C0008E14C0008E14C0008E14C00084E +S315080000D0E14C0008E14C0008E14C0008E14C00083E +S315080000E0E14C0008E14C0008E14C0008E14C00082E +S315080000F0E14C0008E14C0008E14C0008E14C00081E +S31508000100E14C0008E14C0008E14C0008E14C00080D +S31508000110E14C0008E14C0008E14C0008E14C0008FD +S31508000120E14C0008E14C0008E14C0008E14C0008ED +S31508000130E14C0008E14C0008E14C0008E14C0008DD +S31508000140E14C0008E14C0008E14C0008E14C0008CD S31508000150044B9D46C046C046C046C04603F05FF9FC -S3150800016004F000F84813002003E00B780370491CDC +S3150800016003F0FCFF5013002003E00B780370491CD2 S31508000170401C13005A1E002BF7D1704701E001708E S31508000180401C13005A1E002BF9D1704710B40023E7 S315080001901400621E002C06D003780C781B1B491C21 @@ -351,7 +351,7 @@ S315080015C020120843E06094F81F0294F81E120904DA S315080015D051EA006094F81D1250EA012094F81C1292 S315080015E0084320612670DFF8D8090088401CDFF818 S315080015F0D0190880E0800020206300202071002098 -S31508001600F2BD0000B84C000880B500280BD0016870 +S31508001600F2BD0000B04C000880B500280BD0016878 S31508001610002908D001680978002904D00168C9881A S315080016208288914201D0092008E00068407800F0DD S31508001630C4FFC00701D5032000E0002002BDC0B2E8 @@ -382,7 +382,7 @@ S315080017B019D1A57139000098FFF76BF82061F87FF9 S315080017C0B97F090451EA0060797F50EA0120397F20 S315080017D00843E0600020A0600020A0610098206017 S315080017E00098C088A0803000C0B20DB0BDE8F08374 -S315080017F0F84C0008744900081C4D00082DE9F0470C +S315080017F0F04C00086C490008144D00082DE9F04724 S31508001800050016001F000C00002038602800FFF7AE S31508001810FBFEC0B2002801D0C0B2E7E0A8790006F6 S3150800182001D50220E2E0A879C00701D40720DDE04F @@ -507,7 +507,7 @@ S31508001F80E4B2002C14D100A8FEF742FF0400E4B224 S31508001F90002C0DD1002E04D031000098FEF7D5FA9A S31508001FA00400E4B2002C03D10098FEF74FF90400B0 S31508001FB02000C0B216B070BD5252614172724161C2 -S31508001FC03C0F00208C0A00202DE9FC4104000F007C +S31508001FC0400F00208C0A00202DE9FC4104000F0078 S31508001FD0904600252600FFE7781E854213DA00ABF7 S31508001FE0012201A94046FFF709FC009801280AD1F9 S31508001FF09DF80400C0B20D28EED03070761C6D1C1A @@ -671,7 +671,7 @@ S315080029C080B29042F4D111F18000C1B2080080B201 S315080029D07047002100E0491C0B4A32F81120002AF2 S315080029E005D0094A32F8112080B29042F3D1064A3E S315080029F032F81120002A03D0044830F81100FFE706 -S31508002A0080B27047D847000818440008F8450008FF +S31508002A0080B27047D047000810440008F045000817 S31508002A10F0B400220026002400250023002791F8A0 S31508002A2003C01CF00F0C624691F803C05FEACC6C39 S31508002A3001D58B781A430B781B0621D0036800242E @@ -700,13 +700,13 @@ S31508002B900000094908607047C9B2002905D00749ED S31508002BA0096808430549086005E00449096831EAE7 S31508002BB00000024908607047181002401C100240C5 S31508002BC080B500F00DF81048104901601048002142 -S31508002BD001601048052101600F480021018001BDF0 +S31508002BD001601048052101600F480021016001BD10 S31508002BE00C480021016070470A480068C00304D5F4 -S31508002BF009480088401C08490880704780B5FFF7D7 -S31508002C00F3FF0548008802BD14E000E03F19010003 -S31508002C1018E000E010E000E03E0F002080B5DFF885 +S31508002BF009480068401C08490860704780B5FFF717 +S31508002C00F3FF0548006802BD14E000E03F19010023 +S31508002C1018E000E010E000E03C0F002080B5DFF887 S31508002C20780600210170DFF874160020FEF707FD0C -S31508002C30C0B2002804D09121DFF8640600F0C0FB7A +S31508002C30C0B2002804D09E21DFF8640600F0C0FB6D S31508002C4001BDDFF854060078002801D1012000E014 S31508002C500020704780B500F0F1FB012801D1002063 S31508002C6011E0DFF834060078002801D000200AE0D9 @@ -786,7 +786,7 @@ S315080030F000F041F986196D1EA41CADB2022DF6DA50 S31508003100F6B2F643200000F036F9F6B2864201D050 S31508003110002000E0012070BD2DE9F04105000E00F9 S3150800312014005FF00008002E01D0002D04D14FF4E2 -S3150800313015715B4800F044F92800FFF7AFFF070058 +S3150800313016715B4800F044F92800FFF7AFFF070057 S31508003140FFB2032F01D10020A3E02800FFF7C5FF37 S31508003150002802D15FF0FF309BE0FFB2002F03D0BA S31508003160022F5AD028D392E0AD1C280000F003F9AC @@ -808,14 +808,14 @@ S3150800325000203060AD1CD6F80080280000F08BF8FE S3150800326010EB08003060AD1CB7F10508002C0DD036 S31508003270002606E0280000F07EF8B6B23055AD1CF0 S31508003280761CB6B20FFA88F84645F3DBFFE74046E8 -S3150800329000B2BDE8F0810000410F002004000020C4 -S315080032A0C84A00087C4B0008544B00083802002026 -S315080032B0244D00082C4D0008A04B0008F84A0008C9 -S315080032C0200F00208C0C00200C0E0020044D000856 -S315080032D0E00E0020504C0008E20E0020E40E00200C -S315080032E0E60E0020C44B00088C0D0020E84B0008B1 -S315080032F0C84C0008884C00086C4C0008A04C000814 -S31508003300284B000880B5010011F00F003030C9B213 +S3150800329000B2BDE8F0810000430F002004000020C2 +S315080032A0C04A0008744B00084C4B0008380200203E +S315080032B01C4D0008244D0008984B0008F04A0008E9 +S315080032C0200F00208C0C00200C0E0020FC4C00085F +S315080032D0E00E0020484C0008E20E0020E40E002014 +S315080032E0E60E0020BC4B00088C0D0020E04B0008C1 +S315080032F0C04C0008804C0008644C0008984C000834 +S31508003300204B000880B5010011F00F003030C9B21B S315080033100A2901DBC01D02E0C0B200F04EF9C0B2B6 S3150800332002BD38B504000D00E4B22009FFF7EAFF34 S31508003330287014F00F00FFF7E5FF68700020A870EA @@ -834,7 +834,7 @@ S315080033F002D100A800F02AF901BD80B50E4800F0F8 S315080034006DFB012802D10C4800F020F901BD704778 S3150800341080B5C9B200F038FB00F012F901BD0548C5 S3150800342001210170704703480021017070470000B0 -S315080034304E3A0008440F0020A00E002080B500F088 +S315080034304E3A0008480F0020A00E002080B500F084 S31508003440F6F802BD00B589B000A8202100F0B0FB4F S3150800345000A93348FEF720FD002808D10098002867 S3150800346005D09DF80800C00601D4012000E0002020 @@ -849,16 +849,16 @@ S315080034E019D110492000FEF7B2FD002813D50D4862 S315080034F0002180F824120B48FEF7E5FB0BE0217843 S3150800350089B20A4800F058FB8021084800F058FBA9 S315080035100028F9D0641C20780028F0D110BD0000DE -S31508003520304C00085C040020D84C000800440040D9 +S31508003520284C00085C040020D04C000800440040E9 S3150800353080B500F053FB01BD80B500F05AFB02BD13 -S3150800354080B500F082FB02BD80B500F0DDFB02BD50 -S3150800355080B500F094FB002801D1002001E000F0BE -S3150800356004FC02BD80B5FFF7EFFF00280AD0FFF77D +S3150800354080B500F080FB02BD80B500F0DBFB02BD54 +S3150800355080B500F092FB002801D1002001E000F0C0 +S3150800356002FC02BD80B5FFF7EFFF00280AD0FFF77F S315080035704EFFFFF735FB04484FF4C041016003488E S315080035800068804701BD000008ED00E004600008FF S3150800359070B504000D00160005E0287820706D1C33 S315080035A0641C00F017F83000461E80B20028F4D1DB -S315080035B070BD80B500F0A4FD01BD80B500F0ACFD7E +S315080035B070BD80B500F0A0FD01BD80B500F0A8FD86 S315080035C002BD30380A2801D2012000E00020C0B22E S315080035D070477047704750F8041B61B150F8042BC8 S315080035E0D30744BFA9F101039A18002342F8043B04 @@ -930,16 +930,16 @@ S315080039F041680F48806CFFF7A3FD002803D13120EA S31508003A00FFF7ABFE06E00A48FF21C170084801210E S31508003A10A0F8441001BD10B50400FFF7CAFD04481C S31508003A20FF21C17002480121A0F8441010BD000012 -S31508003A30100E0020130E0020344D0008140E00202E +S31508003A30100E0020130E00202C4D0008140E002036 S31508003A40170E002080B53120FFF787FE01BDFF0065 S31508003A504B48002101804B48002101804A4800213B S31508003A6001804A48002101804948002101804448D4 S31508003A7040F2712101804348008840F4005050F01C S31508003A800C0040490880704770B504000D00EDB27F -S31508003A90412D03DB88213F48FFF792FC2800C0B27E -S31508003AA000F05AF8012803D08B213A48FFF788FC22 +S31508003A90412D03DB8D213F48FFF792FC2800C0B279 +S31508003AA000F05AF8012803D090213A48FFF788FC1D S31508003AB000260CE0FFF78EFDB6B2305D00F04CF83C -S31508003AC0012803D093213348FFF77AFC761C280097 +S31508003AC0012803D098213348FFF77AFC761C280092 S31508003AD0C0B2B6B280B28642ECD370BD10B504004F S31508003AE02D48007800280CD12C4800F02AF8012827 S31508003AF005D12948012101702948002101700020BB @@ -952,287 +952,287 @@ S31508003B50012000E00020704780B51349098809064E S31508003B6001D400200AE01149C0B2088001E0FFF73D S31508003B7031FD0D4800880006F9D5012002BD000078 S31508003B80084400400C4400401044004014440040DF -S31508003B90184400408C4A0008430F00205C0E0020A1 -S31508003BA0420F00205D0E00200044004004440040FF -S31508003BB0002200F0BDBA0000C905C90D8180704712 +S31508003B9018440040844A0008450F00205C0E0020A7 +S31508003BA0440F00205D0E00200044004004440040FD +S31508003BB0002200F0B9BA0000C905C90D8180704716 S31508003BC0002289B2B1F5007F0088084201D001229F -S31508003BD000E000221000C0B270470000DFF8FC04C5 -S31508003BE05FF0FF310160DFF8F8045FF0FF31016034 -S31508003BF0704770B504000D001600200000F00AFAA0 -S31508003C00FF2805D02819401E00F004FAFF2801D124 -S31508003C10002019E0600A4FF400714843DFF8C41425 -S31508003C200968884208D12B009BB232002100DFF8D0 -S31508003C30B00400F0F1F807E02B009BB23200210037 -S31508003C40DFF8980400F0E8F870BD70B504000D00C0 -S31508003C50200000F0DFF906002819401E00F0DAF906 -S31508003C60F6B2FF2E02D0C0B2FF2801D1002005E02F -S31508003C700100C9B23000C0B200F05DF970BD80B570 -S31508003C8000200090DFF85804006810F1010F01D1F8 -S31508003C90012038E00098DFF84814496808180090B1 -S31508003CA00098DFF83C148968081800900098DFF837 -S31508003CB03014C968081800900098DFF824140969B8 -S31508003CC0081800900098DFF8181449690818009039 -S31508003CD00098DFF80C148969081800900098DFF836 -S31508003CE00014C969081800900098C043009000980D -S31508003CF0401C009000AA0421DFF8E803006810F5CC -S31508003D00A870FFF776FF02BD0020DFF8D813096810 -S31508003D1009680818DFF8CC13096849680818DFF835 -S31508003D20C413096889680818DFF8B8130968C968E8 -S31508003D300818DFF8B013096809690818DFF8A4132A -S31508003D40096849690818DFF89C1309688969081819 -S31508003D50DFF89013096811F5A87109680818002892 -S31508003D6001D1012000E00020704780B5DFF870031C -S31508003D70006810F1010F07D0DFF8640300F090F82F -S31508003D80002801D100200EE0DFF85003006810F18A -S31508003D90010F07D0DFF8440300F082F8002801D1AC -S31508003DA0002000E0012002BD80B54FF40072B1FB8F -S31508003DB0F2F303FB1213002B01D000200BE002687C -S31508003DC08A4201D1012006E001604FF40072001D0D -S31508003DD0FFF7DEFB012002BD38B504000D00C04820 -S31508003DE0844208D1BD4C29002000FFF7DDFF0028DA -S31508003DF010D100200FE0BB480068854203D1B84CBB -S31508003E00B8480568EFE7200000F04AF80028EAD12C -S31508003E10002000E0200032BD2DE9F04104000F002B -S31508003E2015001E00780A4FF4007101FB00F820689F -S31508003E3010F1010F07D141462000FFF7B5FF002812 -S31508003E4001D100202AE02068404508D041462000DC -S31508003E50FFF7C2FF0400002C01D100201EE02068F5 -S31508003E60381A0019071DFFF7B5FB201D381AB0F5DB -S31508003E70007F0AD318F500712000FFF7ADFF040094 -S31508003E80002C01D1002009E0271D287838707F1CF6 -S31508003E906D1C761EB6B2002EE5D10120BDE8F08174 -S31508003EA02DE9F04104000125206800F0B3F8C0B2FE -S31508003EB0FF2801D100203CE000F09BF88A48006802 -S31508003EC0C00703D500F09FF8002032E08748006855 -S31508003ED050F0010085490860002600E0761C802E17 -S31508003EE01DD2206810EB860714EB8600D0F80480F4 -S31508003EF0A7F8008001E0FFF76DFB7B480068C00764 -S31508003F00F9D45FEA1840788001E0FFF763FB76484A -S31508003F100068C007F9D438684045DFD000257348E3 -S31508003F200068400840007149086000F06CF82800F5 -S31508003F30C0B2BDE8F08170B505000C00E4B2EDB280 -S31508003F40AC4201D2002053E06648007AEDB28542C1 -S31508003F5005D3644890F89800E4B2A04201D2002044 -S31508003F6046E000F046F860480068C00703D500F050 -S31508003F704AF800203CE05D48006850F002005B49C2 -S31508003F8008602800C0B200F06FF805002000C0B233 -S31508003F9000F06AF806002000C0B200F082F8801926 -S31508003FA0401E401B401C840A002606E0FFF712FB51 -S31508003FB04D480068C007F9D4761CB6B2A4B2A6422A -S31508003FC00DD2B6B24FF4806000FB0650484908602F -S31508003FD04648006850F0400044490860E8E743480E -S31508003FE0006830F002004149086000F00CF8012032 -S31508003FF070BD4048404901603E48404901603A4822 -S315080040003421016070473948006850F0800037490C -S315080040100860704738B50400002500E06D1CEDB255 -S315080040200D2D1FD2FFF7D6FAEDB20C202D4900FB55 -S31508004030051000688442F1D3EDB20C20294900FB33 -S3150800404005100068EDB20C21264A01FB05214968D6 -S3150800405008188442E2D2EDB20C20224900FB051072 -S31508004060007A00E0FF2032BD38B50400002500E0E4 -S315080040706D1CEDB20D2D11D2FFF7ACFAEDB20C2086 -S31508004080184900FB0510007AE4B2A042F0D1EDB25F -S315080040900C20144900FB0510006801E05FF0FF30B2 -S315080040A032BD38B50400002500E06D1CEDB20D2DBB -S315080040B011D2FFF78FFAEDB20C200A4900FB051062 -S315080040C0007AE4B2A042F0D1EDB20C20054900FB1B -S315080040D00510406800E0002032BD0000840600207C -S315080040E088080020D84800080C200240102002400A -S315080040F0142002400420024023016745AB89EFCD16 -S31508004100044B9D46C046C046C046C046FFF78BF9DD -S3150800411000F028F84813002010B50400200000F02D -S315080041202CF8002801D0203CFFE7200010BD000035 -S3150800413000B500BF130096469446103928BFA0E87C -S315080041400C50FAD85FEA417C28BF0CC048BF40F83B -S31508004150042BC90728BF20F8022B48BF00F8012BFB -S3150800416000BD000000F011F8002801D000F010F89A -S31508004170002000F021F800F0F5F861381A2801D27D -S31508004180012000E00020C0B27047012070470000FF -S3150800419010B5074979441831064C7C44163404E0B6 -S315080041A00A68081D511888470146A142F8D110BD72 -S315080041B05C0A00007C0A000080B500F005F800F0F3 -S315080041C0D3F800F0DFF8FCE700B583B000200090D4 -S315080041D0002001905948006850F0010057490860CE -S315080041E057480068574908405549086053480068C9 -S315080041F055490840514908605048006830F4802005 -S315080042004E4908604E48006830F4FE004C49086084 -S315080042104E485FF41F0101604848006850F480303A -S31508004220464908604548006810F400300190009837 -S31508004230401C00900198002804D1009840F2DC51F7 -S315080042408842EFD13D480068800303D47321404873 -S31508004250FFF7B6F83F48006850F010003D4908607F -S315080042603C480068800880003A4908603948006878 -S3150800427050F0020037490860314831490968016041 -S315080042802F48006850F400502D4908602C480068F3 -S3150800429050F480602A4908602948006830F47C1088 -S315080042A0274908600920801E80042549096850F4BA -S315080042B080300843224908602048006850F0807022 -S315080042C01E4908601D4800688001FBD51C48006827 -S315080042D0800880001A4908601948006850F00200F2 -S315080042E0174908601648006810F00C000828F9D12C -S315080042F01948006850F400301749086017480068E4 -S3150800430050F00500154908601548006830F47060DB -S31508004310134908601248006850F430601049086074 -S315080043200F48006830F470400D4908600C48006872 -S3150800433050F480400A49086007BD0000001002409A -S31508004340041002400000FFF8FFFFF6FE08100240C6 -S31508004350F4490008002002401C10024018100240D0 -S315080043600008014000F01AB880B5FFF732F9FEF7E9 -S3150800437027FCFFF7DDF8FEF751FCFFF72DF800F0F4 -S3150800438013F801BD80B5FFF725F9FEF72DFCFEF7FA -S315080043907BFCFFF732F800F012F801BD07463846F5 -S315080043A000F030F8FBE7000080B5144801210170E1 -S315080043B0FEF724FC1249086000F001F801BD80B53B -S315080043C0FFF73CF8012817D0FEF73BFC002813D06E -S315080043D00A48007801280FD1FEF710FC0849096839 -S315080043E03231884208D3054800210170FEF732FCB5 -S315080043F0002801D1FFF7B6F801BD0000400F0020E4 -S31508004400300F002080B5C046C046024A1100182069 -S31508004410ABBEFBE726000200610062006300640091 -S31508004420650066006700680069006A006B006C003A -S315080044306D006E006F0070007100720073007400EA -S31508004440750076007700780079007A00A100A2004E -S31508004450A300A500AC00AF00E000E100E200E30025 -S31508004460E400E500E600E700E800E900EA00EB0002 -S31508004470EC00ED00EE00EF00F000F100F200F300B2 -S31508004480F400F500F600F800F900FA00FB00FC005D -S31508004490FD00FE00FF0001010301050107010901F6 -S315080044A00B010D010F011101130115011701190166 -S315080044B01B011D011F0121012301250127012901D6 -S315080044C02B012D012F0131013301350137013A0145 -S315080044D03C013E01400142014401460148014B01AD -S315080044E04D014F01510153015501570159015B0116 -S315080044F05D015F01610163016501670169016B0186 -S315080045006D016F0171017301750177017A017C01F3 -S315080045107E019201B103B203B303B403B503B60334 -S31508004520B703B803B903BA03BB03BC03BD03BE0391 -S31508004530BF03C003C103C303C403C503C603C7033C -S31508004540C803C903CA0330043104320433043404EB -S31508004550350436043704380439043A043B043C0469 -S315080045603D043E043F044004410442044304440419 -S31508004570450446044704480449044A044B044C04C9 -S315080045804D044E044F045104520453045404550474 -S3150800459056045704580459045A045B045C045E0420 -S315080045A05F0470217121722173217421752176218E -S315080045B07721782179217A217B217C217D217E2111 -S315080045C07F2141FF42FF43FF44FF45FF46FF47FF68 -S315080045D048FF49FF4AFF4BFF4CFF4DFF4EFF4FFF79 -S315080045E050FF51FF52FF53FF54FF55FF56FF57FF29 -S315080045F058FF59FF5AFF000041004200430044009B -S31508004600450046004700480049004A004B004C0058 -S315080046104D004E004F005000510052005300540008 -S31508004620550056005700580059005A002100E0FF6F -S31508004630E1FFE5FFE2FFE3FFC000C100C200C300DF -S31508004640C400C500C600C700C800C900CA00CB0020 -S31508004650CC00CD00CE00CF00D000D100D200D300D0 -S31508004660D400D500D600D800D900DA00DB00DC007B -S31508004670DD00DE00780100010201040106010801DF -S315080046800A010C010E01100112011401160118018C -S315080046901A011C011E0120012201240126012801FC -S315080046A02A012C012E01300132013401360139016B -S315080046B03B013D013F0141014301450147014A01D3 -S315080046C04C014E01500152015401560158015A013C -S315080046D05C015E01600162016401660168016A01AC -S315080046E06C016E01700172017401760179017B011A -S315080046F07D01910191039203930394039503960315 -S315080047009703980399039A039B039C039D039E03AF -S315080047109F03A003A103A303A403A503A603A7035A -S31508004720A803A903AA031004110412041304140409 -S31508004730150416041704180419041A041B041C0487 -S315080047401D041E041F042004210422042304240437 -S31508004750250426042704280429042A042B042C04E7 -S315080047602D042E042F040104020403040404050482 -S3150800477006040704080409040A040B040C040E04BE -S315080047800F0460216121622163216421652166216C -S315080047906721682169216A216B216C216D216E21AF -S315080047A06F2121FF22FF23FF24FF25FF26FF27FF76 -S315080047B028FF29FF2AFF2BFF2CFF2DFF2EFF2FFF97 -S315080047C030FF31FF32FF33FF34FF35FF36FF37FF47 -S315080047D038FF39FF3AFF0000C700FC00E900E20095 -S315080047E0E400E000E500E700EA00EB00E800EF007F -S315080047F0EE00EC00C400C500C900E600C600F400DF -S31508004800F600F200FB00F900FF00D600DC00A2006B -S31508004810A300A500A7209201E100ED00F300FA002D -S31508004820F100D100AA00BA00BF001023AC00BD00F9 -S31508004830BC00A100AB00BB0091259225932502255B -S315080048402425612562255625552563255125572595 -S315080048505D255C255B251025142534252C251C256E -S3150800486000253C255E255F255A255425692566259C -S31508004870602550256C2567256825642565255925F5 -S315080048805825522553256B256A2518250C25882574 -S3150800489084258C2590258025B103DF009303C0036A -S315080048A0A303C303B500C403A6039803A903B4036B -S315080048B01E22C603B50329226122B100652264229D -S315080048C020232123F7004822B0001922B7001A2214 -S315080048D07F20B200A025A00000600008002000008C -S315080048E0030000000080000800200000040000000B -S315080048F000A00008002000000500000000C0000815 -S31508004900002000000600000000E00008002000006B -S315080049100700000000000108002000000800000051 -S3150800492000200108002000000900000000400108DE -S31508004930002000000A0000000060010800200000B6 -S315080049400B00000000800108002000000C00000099 -S3150800495000A00108002000000D00000000C00108AA -S31508004960002000000E00000000E001080020000002 -S315080049700F000000809A90418E418F804545454939 -S3150800498049498E8F9092924F994F555559999A9BAE -S315080049909C9D9E9F41494F55A5A5A6A7A8A9AAAB28 -S315080049A0AC21AEAFB0B1B2B3B4B5B6B7B8B9BABB4D -S315080049B0BCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBB1 -S315080049C0CCCDCECFD0D1D2D3D4D5D6D7D8D9DADBA1 -S315080049D0DCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEB91 -S315080049E0ECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFB81 -S315080049F0FCFDFEFF433A5C576F726B5C736F66741F -S31508004A00776172655C4F70656E424C545C54617296 -S31508004A106765745C44656D6F5C41524D434D335F09 -S31508004A2053544D33325F4F6C696D65785F53544DFF -S31508004A303332503130335F4941525C426F6F745C98 -S31508004A406D61696E2E630000433A5C576F726B5C4A -S31508004A50736F6674776172655C4F70656E424C540D -S31508004A605C5461726765745C536F757263655C410B -S31508004A70524D434D335F53544D33325C4941525C7A -S31508004A80766563746F72732E63000000433A5C5751 -S31508004A906F726B5C736F6674776172655C4F706575 -S31508004AA06E424C545C5461726765745C536F7572E0 -S31508004AB063655C41524D434D335F53544D33325C0D -S31508004AC0756172742E630000433A5C576F726B5CB3 -S31508004AD0736F6674776172655C4F70656E424C548D -S31508004AE05C5461726765745C536F757263655C6666 -S31508004AF0696C652E6300000050617273696E6720E9 -S31508004B006669726D776172652066696C6520746F77 -S31508004B10206F627461696E206572617365207369BE -S31508004B207A652E2E2E0000004669726D77617265D1 -S31508004B302075706461746520737563636573736645 -S31508004B40756C6C7920636F6D706C657465640A0D9D -S31508004B50000000004F70656E696E67206669726DA9 -S31508004B60776172652066696C6520666F722072656A -S31508004B706164696E672E2E2E000000004669726D0C -S31508004B8077617265207570646174652072657175E8 -S31508004B906573742064657465637465640A0D000042 -S31508004BA05374617274696E67207468652070726FD9 -S31508004BB06772616D6D696E672073657175656E6381 -S31508004BC0650A0D0052656164696E67206C696E65D9 -S31508004BD02066726F6D2066696C652E2E2E455252C0 -S31508004BE04F520A0D00000000496E76616C69642018 -S31508004BF0636865636B73756D20666F756E642E2EBC -S31508004C002E4552524F520A0D00000000CBE9FFFF15 -S31508004C10400F000004000020000000005FD4FFFFE2 -S31508004C200400000018010000000000200000000039 -S31508004C302F64656D6F70726F675F6F6C696D6578ED -S31508004C405F73746D3332703130332E73726563005F -S31508004C502062797465732066726F6D206D656D6F5D -S31508004C6072792061742030780000000057726974E8 -S31508004C70696E672070726F6772616D20636865631D -S31508004C806B73756D2E2E2E002062797465732074F1 -S31508004C906F206D656D6F7279206174203078000021 -S31508004CA0436C6F73696E67206669726D77617265AA -S31508004CB02066696C650A0D0001030507090E1012C6 -S31508004CC01416181C1E00000050726F6772616D6D15 -S31508004CD0696E6720000000002F626F6F746C6F6743 -S31508004CE02E7478740000000080B540210148FEF754 -S31508004CF067FB01BD484A0008222A3A3C3E3F7C7FB2 -S31508004D000000000045726173696E672000000000AC -S31508004D10C046C046C046C046FFF724FA2B2C3B3D8A -S31508004D205B5D00004552524F520A0D004F4B0A0D6B -S31508004D30000000004F70656E424C540001000000F0 -S70508004D1194 +S31508003BD000E000221000C0B270470000DFF8F404CD +S31508003BE05FF0FF310160DFF8F0045FF0FF3101603C +S31508003BF0704770B504000D001600200000F007FAA3 +S31508003C00FF2805D02819401E00F001FAFF2801D127 +S31508003C10002017E0600A4FF400714843DFF8BC142F +S31508003C200968884207D12B0032002100DFF8A80472 +S31508003C3000F0F0F806E02B0032002100DFF89404CB +S31508003C4000F0E8F870BD70B504000D00200000F023 +S31508003C50DEF906002819401E00F0D9F9F6B2FF2E43 +S31508003C6002D0C0B2FF2801D1002005E00100C9B288 +S31508003C703000C0B200F05CF970BD80B5002000903D +S31508003C80DFF85404006810F1010F01D1012038E073 +S31508003C900098DFF844144968081800900098DFF87F +S31508003CA038148968081800900098DFF82C14C96839 +S31508003CB0081800900098DFF8201409690818009081 +S31508003CC00098DFF814144969081800900098DFF87E +S31508003CD008148969081800900098DFF8FC13C96968 +S31508003CE0081800900098C04300900098401C009067 +S31508003CF000AA0421DFF8E403006810F5A870FFF7AE +S31508003D0078FF02BD0020DFF8D4130968096808188F +S31508003D10DFF8C813096849680818DFF8C013096886 +S31508003D2089680818DFF8B4130968C9680818DFF83D +S31508003D30AC13096809690818DFF8A0130968496906 +S31508003D400818DFF89813096889690818DFF88C13CA +S31508003D50096811F5A87109680818002801D1012019 +S31508003D6000E00020704780B5DFF86C03006810F1AA +S31508003D70010F07D0DFF8600300F08FF8002801D1A3 +S31508003D8000200EE0DFF84C03006810F1010F07D0A1 +S31508003D90DFF8400300F081F8002801D1002000E098 +S31508003DA0012002BD80B54FF40072B1FBF2F303FBAC +S31508003DB01213002B01D000200BE002688A4201D1C1 +S31508003DC0012006E001604FF40072001DFFF7E0FBDA +S31508003DD0012002BD38B504000D00BF48844208D151 +S31508003DE0BC4C29002000FFF7DDFF002810D1002079 +S31508003DF00FE0BA480068854203D1B74CB748056852 +S31508003E00EFE7200000F049F80028EAD1002000E09A +S31508003E10200032BD2DE9F04104000F0015001E00F8 +S31508003E20780A4FF4007101FB00F8206810F1010FC1 +S31508003E3007D141462000FFF7B5FF002801D1002031 +S31508003E4029E02068404508D041462000FFF7C2FF18 +S31508003E500400002C01D100201DE02068381A001942 +S31508003E60071DFFF7B7FB201D381AB0F5007F0AD3E8 +S31508003E7018F500712000FFF7ADFF0400002C01D1F2 +S31508003E80002008E0271D287838707F1C6D1C761ED8 +S31508003E90002EE6D10120BDE8F0812DE9F0410400AD +S31508003EA00125206800F0B3F8C0B2FF2801D1002030 +S31508003EB03CE000F09BF88A480068C00703D500F08C +S31508003EC09FF8002032E08748006850F001008549D5 +S31508003ED00860002600E0761C802E1DD2206810EBB4 +S31508003EE0860714EB8600D0F80480A7F8008001E066 +S31508003EF0FFF770FB7A480068C007F9D45FEA1840F4 +S31508003F00788001E0FFF766FB75480068C007F9D4BA +S31508003F1038684045DFD000257248006840084000F0 +S31508003F207049086000F06CF82800C0B2BDE8F0815E +S31508003F3070B505000C00E4B2EDB2AC4201D2002027 +S31508003F4053E06648007AEDB2854205D3634890F897 +S31508003F509800E4B2A04201D2002046E000F046F8FC +S31508003F605F480068C00703D500F04AF800203CE027 +S31508003F705C48006850F002005A4908602800C0B240 +S31508003F8000F06FF805002000C0B200F06AF80600DD +S31508003F902000C0B200F082F88019401E401B401C69 +S31508003FA0840A002606E0FFF715FB4D480068C0079F +S31508003FB0F9D4761CB6B2A4B2A6420DD2B6B24FF464 +S31508003FC0806000FB0650484908604648006850F083 +S31508003FD0400044490860E8E74248006830F00200BB +S31508003FE04049086000F00CF8012070BD3F48404980 +S31508003FF001603E483F4901603948342101607047F5 +S315080040003848006850F0800036490860704738B56F +S315080040100400002500E06D1CEDB20D2D1FD2FFF740 +S31508004020D9FAEDB20C202D4900FB05100068844230 +S31508004030F1D3EDB20C20294900FB05100068EDB25A +S315080040400C21264A01FB0521496808188442E2D258 +S31508004050EDB20C20214900FB0510007A00E0FF2094 +S3150800406032BD38B50400002500E06D1CEDB20D2DFB +S3150800407011D2FFF7AFFAEDB20C20184900FB051074 +S31508004080007AE4B2A042F0D1EDB20C20134900FB4D +S315080040900510006801E05FF0FF3032BD38B5040056 +S315080040A0002500E06D1CEDB20D2D11D2FFF792FA36 +S315080040B0EDB20C20094900FB0510007AE4B2A042D3 +S315080040C0F0D1EDB20C20054900FB0510406800E070 +S315080040D0002032BD8406002088080020D048000849 +S315080040E00C20024010200240142002400420024006 +S315080040F023016745AB89EFCD044B9D46C046C046B4 +S31508004100C046C046FFF78FF900F028F85013002084 +S3150800411010B50400200000F02CF8002801D0203C3F +S31508004120FFE7200010BD000000B500BF130096464B +S315080041309446103928BFA0E80C50FAD85FEA417CAB +S3150800414028BF0CC048BF40F8042BC90728BF20F871 +S31508004150022B48BF00F8012B00BD000000F011F843 +S31508004160002801D000F010F8002000F021F800F037 +S31508004170F5F861381A2801D2012000E00020C0B203 +S31508004180704701207047000010B507497944183177 +S31508004190064C7C44163404E00A68081D5118884702 +S315080041A00146A142F8D110BD5C0A00007C0A000055 +S315080041B080B500F005F800F0D3F800F0DFF8FCE76A +S315080041C000B583B00020009000200190594800688F +S315080041D050F0010057490860574800685749084099 +S315080041E055490860534800685549084051490860D0 +S315080041F05048006830F480204E4908604E480068F0 +S3150800420030F4FE004C4908604E485FF41F01016017 +S315080042104848006850F480304649086045480068B8 +S3150800422010F4003001900098401C00900198002876 +S3150800423004D1009840F2DC518842EFD13D4800682D +S31508004240800303D470214048FFF7BAF83F48006856 +S3150800425050F010003D4908603C480068800880001E +S315080042603A4908603948006850F002003749086042 +S3150800427031483149096801602F48006850F40050F8 +S315080042802D4908602C48006850F480602A49086067 +S315080042902948006830F47C10274908600920801EE8 +S315080042A080042549096850F480300843224908608B +S315080042B02048006850F080701E4908601D48006854 +S315080042C08001FBD51C480068800880001A490860F0 +S315080042D01948006850F00200174908601648006837 +S315080042E010F00C000828F9D11948006850F400307D +S315080042F0174908601748006850F005001549086016 +S315080043001548006830F47060134908601248006860 +S3150800431050F43060104908600F48006830F4704067 +S315080043200D4908600C48006850F480400A49086046 +S3150800433007BD000000100240041002400000FFF80C +S31508004340FFFFF6FE08100240EC4900080020024074 +S315080043501C100240181002400008014000F01AB86C +S3150800436080B5FFF736F9FEF72BFCFFF7E1F8FEF705 +S3150800437055FCFFF731F800F013F801BD80B5FFF7DB +S3150800438029F9FEF731FCFEF77FFCFFF736F800F057 +S3150800439012F801BD0746384600F030F8FBE7000082 +S315080043A080B5144801210170FEF728FC12490860FF +S315080043B000F001F801BD80B5FFF740F8012817D0D5 +S315080043C0FEF73FFC002813D00A48007801280FD1D1 +S315080043D0FEF714FC084909683231884208D30548B3 +S315080043E000210170FEF736FC002801D1FFF7BAF864 +S315080043F001BD0000420F0020300F002080B5C046E6 +S31508004400C046024A11001820ABBEFBE72600020090 +S31508004410610062006300640065006600670068006A +S3150800442069006A006B006C006D006E006F0070001A +S3150800443071007200730074007500760077007800CA +S3150800444079007A00A100A200A300A500AC00AF0085 +S31508004450E000E100E200E300E400E500E600E70032 +S31508004460E800E900EA00EB00EC00ED00EE00EF00E2 +S31508004470F000F100F200F300F400F500F600F80091 +S31508004480F900FA00FB00FC00FD00FE00FF00010138 +S3150800449003010501070109010B010D010F011101B6 +S315080044A013011501170119011B011D011F01210126 +S315080044B023012501270129012B012D012F01310196 +S315080044C03301350137013A013C013E014001420101 +S315080044D04401460148014B014D014F015101530169 +S315080044E05501570159015B015D015F0161016301D6 +S315080044F06501670169016B016D016F017101730146 +S31508004500750177017A017C017E019201B103B2033C +S31508004510B303B403B503B603B703B803B903BA03C1 +S31508004520BB03BC03BD03BE03BF03C003C103C30370 +S31508004530C403C503C603C703C803C903CA033004B3 +S315080045403104320433043404350436043704380499 +S3150800455039043A043B043C043D043E043F04400449 +S3150800456041044204430444044504460447044804F9 +S3150800457049044A044B044C044D044E044F045104A8 +S315080045805204530454045504560457045804590451 +S315080045905A045B045C045E045F0470217121722175 +S315080045A073217421752176217721782179217A2141 +S315080045B07B217C217D217E217F2141FF42FF43FF14 +S315080045C044FF45FF46FF47FF48FF49FF4AFF4BFFA9 +S315080045D04CFF4DFF4EFF4FFF50FF51FF52FF53FF59 +S315080045E054FF55FF56FF57FF58FF59FF5AFF000063 +S315080045F04100420043004400450046004700480089 +S3150800460049004A004B004C004D004E004F00500038 +S3150800461051005200530054005500560057005800E8 +S3150800462059005A002100E0FFE1FFE5FFE2FFE3FF42 +S31508004630C000C100C200C300C400C500C600C70050 +S31508004640C800C900CA00CB00CC00CD00CE00CF0000 +S31508004650D000D100D200D300D400D500D600D800AF +S31508004660D900DA00DB00DC00DD00DE00780100019D +S3150800467002010401060108010A010C010E011001DC +S3150800468012011401160118011A011C011E0120014C +S3150800469022012401260128012A012C012E013001BC +S315080046A032013401360139013B013D013F01410127 +S315080046B04301450147014A014C014E01500152018F +S315080046C05401560158015A015C015E0160016201FC +S315080046D06401660168016A016C016E01700172016C +S315080046E07401760179017B017D01910191039203A1 +S315080046F093039403950396039703980399039A03E0 +S315080047009B039C039D039E039F03A003A103A3038E +S31508004710A403A503A603A703A803A903AA031004D1 +S3150800472011041204130414041504160417041804B7 +S3150800473019041A041B041C041D041E041F04200467 +S315080047402104220423042404250426042704280417 +S3150800475029042A042B042C042D042E042F040104F6 +S3150800476002040304040405040604070408040904EF +S315080047700A040B040C040E040F0460216121622153 +S3150800478063216421652166216721682169216A21DF +S315080047906B216C216D216E216F2121FF22FF23FFE2 +S315080047A024FF25FF26FF27FF28FF29FF2AFF2BFFC7 +S315080047B02CFF2DFF2EFF2FFF30FF31FF32FF33FF77 +S315080047C034FF35FF36FF37FF38FF39FF3AFF000061 +S315080047D0C700FC00E900E200E400E000E500E700AD +S315080047E0EA00EB00E800EF00EE00EC00C400C500AC +S315080047F0C900E600C600F400F600F200FB00F90066 +S31508004800FF00D600DC00A200A300A500A7209201A5 +S31508004810E100ED00F300FA00F100D100AA00BA00A9 +S31508004820BF001023AC00BD00BC00A100AB00BB005C +S31508004830912592259325022524256125622556254D +S3150800484055256325512557255D255C255B251025AE +S31508004850142534252C251C2500253C255E255F2599 +S315080048605A25542569256625602550256C25672512 +S3150800487068256425652559255825522553256B2510 +S315080048806A2518250C25882584258C2590258025BC +S31508004890B103DF009303C003A303C303B500C40336 +S315080048A0A6039803A903B4031E22C603B503292247 +S315080048B06122B1006522642220232123F7004822C1 +S315080048C0B0001922B7001A227F20B200A025A00046 +S315080048D000600008002000000300000000800008B7 +S315080048E0002000000400000000A0000800200000CE +S315080048F00500000000C000080020000006000000B7 +S3150800490000E0000800200000070000000000010881 +S315080049100020000008000000002001080020000018 +S315080049200900000000400108002000000A000000FD +S3150800493000600108002000000B000000008001084C +S31508004940002000000C00000000A001080020000064 +S315080049500D00000000C00108002000000E00000045 +S3150800496000E00108002000000F000000809A904136 +S315080049708E418F804545454949498E8F9092924F81 +S31508004980994F555559999A9B9C9D9E9F41494F55BC +S31508004990A5A5A6A7A8A9AAABAC21AEAFB0B1B2B3DC +S315080049A0B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C341 +S315080049B0C4C5C6C7C8C9CACBCCCDCECFD0D1D2D331 +S315080049C0D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E321 +S315080049D0E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F311 +S315080049E0F4F5F6F7F8F9FAFBFCFDFEFF433A5C57D7 +S315080049F06F726B5C736F6674776172655C4F706516 +S31508004A006E424C545C5461726765745C44656D6FA4 +S31508004A105C41524D434D335F53544D33325F4F6CB7 +S31508004A20696D65785F53544D3332503130335F4981 +S31508004A3041525C426F6F745C6D61696E2E63000053 +S31508004A40433A5C576F726B5C736F66747761726515 +S31508004A505C4F70656E424C545C5461726765745C59 +S31508004A60536F757263655C41524D434D335F5354C2 +S31508004A704D33325C4941525C766563746F72732EAE +S31508004A8063000000433A5C576F726B5C736F667421 +S31508004A90776172655C4F70656E424C545C54617206 +S31508004AA06765745C536F757263655C41524D434D1F +S31508004AB0335F53544D33325C756172742E63000054 +S31508004AC0433A5C576F726B5C736F66747761726595 +S31508004AD05C4F70656E424C545C5461726765745CD9 +S31508004AE0536F757263655C66696C652E63000000BA +S31508004AF050617273696E67206669726D7761726557 +S31508004B002066696C6520746F206F627461696E2017 +S31508004B1065726173652073697A652E2E2E00000012 +S31508004B204669726D77617265207570646174652077 +S31508004B307375636365737366756C6C7920636F6DE3 +S31508004B40706C657465640A0D000000004F70656E30 +S31508004B50696E67206669726D776172652066696C31 +S31508004B606520666F722072656164696E672E2E2EE7 +S31508004B70000000004669726D776172652075706481 +S31508004B8061746520726571756573742064657465F2 +S31508004B90637465640A0D00005374617274696E6704 +S31508004BA0207468652070726F6772616D6D696E67D3 +S31508004BB02073657175656E63650A0D0052656164DB +S31508004BC0696E67206C696E652066726F6D2066690E +S31508004BD06C652E2E2E4552524F520A0D00000000CB +S31508004BE0496E76616C696420636865636B73756D7D +S31508004BF020666F756E642E2E2E4552524F520A0D40 +S31508004C0000000000D3E9FFFF440F00000400002065 +S31508004C100000000067D4FFFF040000001801000030 +S31508004C2000000020000000002F64656D6F70726F31 +S31508004C30675F6F6C696D65785F73746D3332703159 +S31508004C4030332E737265630020627974657320664B +S31508004C50726F6D206D656D6F727920617420307882 +S31508004C600000000057726974696E672070726F677A +S31508004C7072616D20636865636B73756D2E2E2E00E9 +S31508004C8020627974657320746F206D656D6F727913 +S31508004C902061742030780000436C6F73696E67205A +S31508004CA06669726D776172652066696C650A0D00C2 +S31508004CB001030507090E10121416181C1E00000021 +S31508004CC050726F6772616D6D696E67200000000033 +S31508004CD02F626F6F746C6F672E7478740000000013 +S31508004CE080B541210148FEF76BFB01BD404A00082B +S31508004CF0222A3A3C3E3F7C7F0000000045726173E1 +S31508004D00696E672000000000C046C046C046C0461F +S31508004D10FFF724FA2B2C3B3D5B5D00004552524FB2 +S31508004D20520A0D004F4B0A0D000000004F70656EC9 +S30D08004D30424C5400010000008A +S70508004D099C diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/boot.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/boot.dox new file mode 100644 index 00000000..5c2f3316 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM3_STM32_Olimex_STM32P103_IAR Bootloader +\brief Bootloader. +\ingroup ARMCM3_STM32_Olimex_STM32P103_IAR +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/config.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/config.h index 969dc516..1665d431 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/config.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_IAR\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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 (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 (1) @@ -115,10 +134,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) @@ -133,6 +157,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) @@ -145,7 +170,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) @@ -158,6 +185,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_STM32P103_IAR/Boot/hooks.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c index ffa4da48..d13b491c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/hooks.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32P103_IAR\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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,11 +46,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) @@ -56,11 +56,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) @@ -76,15 +74,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) @@ -100,12 +96,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) @@ -113,20 +107,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) @@ -135,18 +127,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) @@ -155,11 +146,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) @@ -174,13 +163,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) @@ -188,14 +175,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) @@ -213,6 +198,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.srec"; @@ -220,22 +206,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32p103.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) @@ -263,14 +248,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) @@ -280,12 +263,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) @@ -303,12 +284,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) @@ -329,12 +308,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) @@ -351,12 +328,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_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt index 40c179b5..1cf38b3c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/settings/stm32f103.wsdt @@ -12,12 +12,12 @@ - 362272727 + 146272727 300Debug-Log20105928270300Build201413664941138 - + TabID-32216-31616 @@ -29,7 +29,7 @@ - 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0 + 0TabID-13144-32069BuildBuildTabID-25023-6652Debug LogDebug-LogTabID-18334-26223Find in FilesFind-in-Files0 @@ -42,7 +42,7 @@ - iaridepm.enu1-2-2765453-2-2261204135938202381236979760913-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1-2-2417237-2-2137116135913202091237103729965-2-21121010-2-210121141003968198606104167198606 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep index b9b4f562..9a6ccf67 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/ide/stm32f103.dep @@ -62,17 +62,17 @@ $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\misc.c $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c $PROJ_DIR$\Debug\Obj\stm32f10x_crc.o $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o @@ -113,6 +113,68 @@ $PROJ_DIR$\..\obj\assert.o $PROJ_DIR$\..\obj\stm32f10x_gpio.pbi $PROJ_DIR$\..\bin\stm32f103.out + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h + $PROJ_DIR$\..\obj\hw.lst + $PROJ_DIR$\..\obj\core_cm3.lst + $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi + $TOOLKIT_DIR$\inc\c\stdint.h + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $TOOLKIT_DIR$\inc\c\ctype.h + $TOOLKIT_DIR$\inc\c\string.h + $PROJ_DIR$\..\boot.c + $PROJ_DIR$\..\boot.h + $PROJ_DIR$\..\header.h + $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\irq.h + $PROJ_DIR$\..\led.c + $PROJ_DIR$\..\led.h + $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\timer.h + $PROJ_DIR$\..\vectors.c + $PROJ_DIR$\..\src\app\app.c + $PROJ_DIR$\..\src\app\app.h + $PROJ_DIR$\..\src\hw\cstart.s + $PROJ_DIR$\..\src\os\os.h + $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o + $PROJ_DIR$\..\src\header.h + $PROJ_DIR$\..\src\os\os.c + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\..\src\hw\hw.h + $PROJ_DIR$\..\src\hw\hw.c + $PROJ_DIR$\Debug\Obj\os.o + $PROJ_DIR$\..\obj\stm32f10x_crc.o + $PROJ_DIR$\..\obj\stm32f10x_cec.o + $PROJ_DIR$\..\obj\stm32f10x_can.o + $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.pbi + $PROJ_DIR$\..\obj\misc.o + $PROJ_DIR$\..\obj\stm32f10x_bkp.o + $PROJ_DIR$\Debug\Obj\hw.o + $PROJ_DIR$\..\obj\core_cm3.o + $PROJ_DIR$\..\obj\app.lst + $PROJ_DIR$\Debug\Obj\stm32f10x_dac.o + $PROJ_DIR$\Debug\Obj\stm32f10x_bkp.o + $PROJ_DIR$\Debug\Obj\hw.pbi + $PROJ_DIR$\Debug\Obj\app.pbi + $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.o + $PROJ_DIR$\Debug\Obj\misc.o + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.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_dbgmcu.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c @@ -188,10 +250,10 @@ $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $PROJ_DIR$\..\lib\stdperiphlib\stm32f10x_conf.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.h $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\inc\stm32f10x_crc.h $TOOLKIT_DIR$\inc\c\intrinsics.h $PROJ_DIR$\Debug\Obj\stm32f10x_usart.o @@ -253,8 +315,8 @@ $PROJ_DIR$\..\obj\can.lst $PROJ_DIR$\..\obj\cop.lst $PROJ_DIR$\..\obj\com.lst - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f10x_sdio.o + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_STM32\IAR\memory.x $PROJ_DIR$\..\obj\stm32f10x_spi.o $PROJ_DIR$\..\obj\stm32f10x_tim.o $PROJ_DIR$\..\obj\stm32f10x_usart.o @@ -344,8 +406,8 @@ $TOOLKIT_DIR$\inc\c\xmtx.h $TOOLKIT_DIR$\inc\c\xlocaleuse.h $TOOLKIT_DIR$\inc\c\xlocale.h - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\file.lst $TOOLKIT_DIR$\inc\c\xlocale_c.h $TOOLKIT_DIR$\inc\c\wchar.h @@ -353,89 +415,27 @@ $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h $PROJ_DIR$\..\cstart.s $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h - $PROJ_DIR$\..\obj\hw.lst - $PROJ_DIR$\..\obj\core_cm3.lst - $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi - $TOOLKIT_DIR$\inc\c\stdint.h - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\ctype.h - $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\..\boot.c - $PROJ_DIR$\..\boot.h - $PROJ_DIR$\..\header.h - $PROJ_DIR$\..\irq.c - $PROJ_DIR$\..\irq.h - $PROJ_DIR$\..\led.c - $PROJ_DIR$\..\led.h - $PROJ_DIR$\..\timer.c - $PROJ_DIR$\..\timer.h - $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\src\app\app.c - $PROJ_DIR$\..\src\app\app.h - $PROJ_DIR$\..\src\hw\cstart.s - $PROJ_DIR$\..\src\os\os.h - $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o - $PROJ_DIR$\..\src\header.h - $PROJ_DIR$\..\src\os\os.c - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $PROJ_DIR$\..\src\hw\hw.h - $PROJ_DIR$\..\src\hw\hw.c - $PROJ_DIR$\Debug\Obj\os.o - $PROJ_DIR$\..\obj\stm32f10x_crc.o - $PROJ_DIR$\..\obj\stm32f10x_cec.o - $PROJ_DIR$\..\obj\stm32f10x_can.o - $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.pbi - $PROJ_DIR$\..\obj\misc.o - $PROJ_DIR$\..\obj\stm32f10x_bkp.o - $PROJ_DIR$\Debug\Obj\hw.o - $PROJ_DIR$\..\obj\core_cm3.o - $PROJ_DIR$\..\obj\app.lst - $PROJ_DIR$\Debug\Obj\stm32f10x_dac.o - $PROJ_DIR$\Debug\Obj\stm32f10x_bkp.o - $PROJ_DIR$\Debug\Obj\hw.pbi - $PROJ_DIR$\Debug\Obj\app.pbi - $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.o - $PROJ_DIR$\Debug\Obj\misc.o - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.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\CMSIS\CM3\CoreSupport\core_cm3.c BICOMP - 255 + 317 ICCARM - 357 392 + 117 152 BICOMP - 359 225 316 381 233 313 283 287 + 119 287 378 141 295 375 345 349 ICCARM - 359 225 316 381 233 313 283 287 + 119 287 378 141 295 375 345 349 @@ -444,21 +444,21 @@ BICOMP - 170 + 232 ICCARM - 70 253 + 70 315 BICOMP - 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -467,21 +467,21 @@ BICOMP - 328 + 390 ICCARM - 124 327 + 186 389 BICOMP - 37 40 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 46 32 42 16 53 25 50 29 27 31 44 52 38 5 48 55 + 37 40 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 46 32 42 16 53 25 50 29 27 31 44 52 38 5 48 55 ICCARM - 37 40 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 46 32 42 16 53 25 50 29 27 31 44 52 38 5 48 55 + 37 40 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 46 32 42 16 53 25 50 29 27 31 44 52 38 5 48 55 @@ -494,17 +494,17 @@ ICCARM - 272 196 + 334 258 BICOMP - 9 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 + 9 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 ICCARM - 9 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 + 9 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 @@ -513,17 +513,17 @@ BICOMP - 156 + 218 ICCARM - 276 100 + 338 100 ICCARM - 11 3 0 359 225 316 381 233 313 283 287 187 1 7 9 13 15 + 11 3 0 119 287 378 141 295 375 345 349 249 1 7 9 13 15 @@ -532,21 +532,21 @@ BICOMP - 164 + 226 ICCARM - 279 249 + 341 311 BICOMP - 13 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 15 + 13 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 15 ICCARM - 13 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 15 + 13 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 15 @@ -555,21 +555,21 @@ BICOMP - 160 + 222 ICCARM - 282 251 + 344 313 BICOMP - 15 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 + 15 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 ICCARM - 15 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 + 15 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 @@ -578,21 +578,21 @@ BICOMP - 240 + 302 ICCARM - 102 241 + 102 303 BICOMP - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -601,21 +601,21 @@ BICOMP - 142 + 204 ICCARM - 148 73 + 210 73 BICOMP - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -624,11 +624,11 @@ BICOMP - 144 + 206 ICCARM - 147 137 + 209 199 @@ -647,7 +647,7 @@ AARM - 128 + 190 @@ -656,7 +656,7 @@ ILINK - 103 236 + 103 298 @@ -669,7 +669,7 @@ ICCARM - 244 91 + 306 91 @@ -688,21 +688,21 @@ BICOMP - 126 + 188 ICCARM - 330 125 + 392 187 BICOMP - 38 40 5 37 331 225 316 381 233 313 283 287 + 38 40 5 37 393 287 378 141 295 375 345 349 ICCARM - 38 40 5 37 331 225 316 381 233 313 283 287 + 38 40 5 37 393 287 378 141 295 375 345 349 @@ -711,11 +711,11 @@ BICOMP - 323 + 385 ICCARM - 242 93 + 304 93 @@ -734,11 +734,11 @@ BICOMP - 322 + 384 ICCARM - 237 94 + 299 94 @@ -757,7 +757,7 @@ BICOMP - 324 + 386 ICCARM @@ -780,11 +780,11 @@ BICOMP - 143 + 205 ICCARM - 149 138 + 211 200 @@ -803,11 +803,11 @@ BICOMP - 325 + 387 ICCARM - 243 96 + 305 96 @@ -826,7 +826,7 @@ BICOMP - 326 + 388 ICCARM @@ -853,7 +853,7 @@ ICCARM - 235 104 + 297 104 @@ -872,21 +872,21 @@ BICOMP - 123 + 185 ICCARM - 329 122 + 391 184 BICOMP - 38 40 5 338 + 38 40 5 401 ICCARM - 38 40 5 338 + 38 40 5 401 @@ -899,7 +899,7 @@ ICCARM - 238 79 + 300 79 @@ -918,11 +918,11 @@ BICOMP - 139 + 201 ICCARM - 145 75 + 207 75 @@ -945,7 +945,7 @@ ICCARM - 246 82 + 308 82 @@ -968,7 +968,7 @@ ICCARM - 245 81 + 307 81 @@ -987,21 +987,21 @@ BICOMP - 333 + 395 ICCARM - 340 332 + 402 394 BICOMP - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 363 225 316 381 233 313 283 287 360 361 362 337 334 335 339 336 341 342 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 123 287 378 141 295 375 345 349 120 121 122 399 396 397 400 398 403 404 ICCARM - 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 363 225 316 381 233 313 283 287 360 361 362 337 334 335 339 336 341 342 + 46 32 42 16 53 25 50 29 27 31 44 52 38 40 5 48 55 123 287 378 141 295 375 345 349 120 121 122 399 396 397 400 398 403 404 @@ -1033,21 +1033,21 @@ BICOMP - 131 + 193 ICCARM - 264 222 + 326 284 BICOMP - 57 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 56 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 57 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 56 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -1056,67 +1056,21 @@ BICOMP - 305 + 367 ICCARM - 263 387 + 325 147 BICOMP - 62 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 59 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 62 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - - - BICOMP - 304 - - - ICCARM - 262 390 - - - - - BICOMP - 59 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 59 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - - - BICOMP - 307 - - - ICCARM - 265 385 - - - - - BICOMP - 66 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 66 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 59 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -1125,21 +1079,67 @@ BICOMP - 306 + 368 ICCARM - 260 386 + 322 146 BICOMP - 61 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 62 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 61 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 62 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + + + BICOMP + 369 + + + ICCARM + 327 145 + + + + + BICOMP + 63 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 63 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + + + BICOMP + 366 + + + ICCARM + 324 150 + + + + + BICOMP + 65 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 65 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -1148,7 +1148,7 @@ BICOMP - 256 + 318 @@ -1157,21 +1157,21 @@ BICOMP - 308 + 370 ICCARM - 267 135 + 329 197 BICOMP - 197 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 259 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 ICCARM - 197 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 + 259 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 @@ -1186,7 +1186,7 @@ ILINK - 224 75 392 128 72 74 73 389 222 390 387 386 385 135 134 136 151 152 129 196 97 98 99 100 101 248 249 250 251 252 253 138 137 223 290 154 285 + 286 75 152 190 72 74 73 149 284 150 147 146 145 197 196 198 213 214 191 258 97 98 99 100 101 309 311 312 313 314 315 200 199 285 352 216 347 @@ -1195,17 +1195,17 @@ ILINK - 236 + 298 OBJCOPY - 239 + 301 ILINK - 247 104 79 75 91 82 81 392 93 128 125 332 94 241 73 327 90 196 100 249 251 253 138 96 122 92 137 78 223 290 154 285 + 310 104 79 75 91 82 81 152 93 190 187 394 94 303 73 389 90 258 100 311 313 315 200 96 184 92 199 78 285 352 216 347 @@ -1214,620 +1214,13 @@ OBJCOPY - 159 + 221 ILINK - 224 75 392 128 72 74 73 389 222 390 387 386 385 135 134 136 151 152 129 196 97 98 99 100 101 248 249 250 251 252 253 138 137 223 290 154 285 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - - - BICOMP - 303 - - - ICCARM - 268 134 - - - - - ICCARM - 108 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - - - BICOMP - 158 - - - ICCARM - 271 129 - - - - - ICCARM - 111 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - - - BICOMP - 166 - - - ICCARM - 273 97 - - - - - ICCARM - 119 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - - - BICOMP - 167 - - - ICCARM - 275 99 - - - - - ICCARM - 115 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - - - BICOMP - 156 - - - ICCARM - 276 100 - - - - - ICCARM - 117 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - - - BICOMP - 165 - - - ICCARM - 274 98 - - - - - ICCARM - 116 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - - - BICOMP - 155 - - - ICCARM - 277 101 - - - - - ICCARM - 121 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 354 355 347 352 350 177 - - - - - $PROJ_DIR$\Debug\Obj\stm32f103.pbd - - - BILINK - 397 189 396 286 312 192 193 194 226 314 298 299 300 261 301 291 388 284 228 229 231 317 230 232 358 318 294 132 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - - - BICOMP - 256 - - - ICCARM - 266 389 - - - - - ICCARM - 177 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c - - - BICOMP - 304 - - - ICCARM - 262 390 - - - - - ICCARM - 173 172 182 359 225 316 381 233 313 283 287 187 344 183 178 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c - - - BICOMP - 131 - - - ICCARM - 264 222 - - - - - ICCARM - 178 172 182 359 225 316 381 233 313 283 287 187 344 183 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c - - - BICOMP - 305 - - - ICCARM - 263 387 - - - - - ICCARM - 179 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - - - BICOMP - 306 - - - ICCARM - 260 386 - - - - - ICCARM - 181 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - - - BICOMP - 255 - - - ICCARM - 357 392 - - - - - ICCARM - 359 225 316 381 233 313 283 287 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - - - BICOMP - 307 - - - ICCARM - 265 385 - - - - - ICCARM - 186 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - - - BICOMP - 303 - - - ICCARM - 268 134 - - - - - BICOMP - 199 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 199 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - - - BICOMP - 309 - - - ICCARM - 280 136 - - - - - BICOMP - 201 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 201 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - - - BICOMP - 310 - - - ICCARM - 269 151 - - - - - BICOMP - 203 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 203 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - - - BICOMP - 153 - - - ICCARM - 270 152 - - - - - BICOMP - 205 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - ICCARM - 205 3 0 359 225 316 381 233 313 283 287 187 1 7 9 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - - - BICOMP - 158 - - - ICCARM - 271 129 - - - - - BICOMP - 207 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 207 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - - - BICOMP - 166 - - - ICCARM - 273 97 - - - - - BICOMP - 209 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 209 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - - - BICOMP - 165 - - - ICCARM - 274 98 - - - - - BICOMP - 211 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 211 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - - - BICOMP - 167 - - - ICCARM - 275 99 - - - - - BICOMP - 213 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 213 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - - - BICOMP - 155 - - - ICCARM - 277 101 - - - - - BICOMP - 215 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 215 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - - - BICOMP - 168 - - - ICCARM - 278 248 - - - - - BICOMP - 217 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 217 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - - - BICOMP - 161 - - - ICCARM - 281 250 - - - - - BICOMP - 219 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 219 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c - - - BICOMP - 157 - - - ICCARM - 259 252 - - - - - BICOMP - 221 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - ICCARM - 221 3 0 359 225 316 381 233 313 283 287 187 1 7 11 13 15 - - - - - $PROJ_DIR$\Debug\Exe\stm32f103.out - - - ILINK - 224 130 315 391 399 384 127 395 319 320 68 394 293 295 296 297 378 292 69 398 227 288 289 234 190 302 188 191 195 223 290 154 285 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - - - BICOMP - 170 - - - ICCARM - 70 253 - - - - - ICCARM - 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 - - - - - $PROJ_DIR$\..\cstart.s - - - AARM - 128 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - - - BICOMP - 168 - - - ICCARM - 278 248 - - - - - ICCARM - 354 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 355 347 352 350 177 + 286 75 152 190 72 74 73 149 284 150 147 146 145 197 196 198 213 214 191 258 97 98 99 100 101 309 311 312 313 314 315 200 199 285 352 216 347 @@ -1836,17 +1229,17 @@ BICOMP - 161 + 223 ICCARM - 281 250 + 343 312 ICCARM - 347 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 352 350 177 + 107 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 112 110 239 @@ -1855,17 +1248,17 @@ BICOMP - 157 + 219 ICCARM - 259 252 + 321 314 ICCARM - 350 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 177 + 110 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 239 @@ -1874,17 +1267,17 @@ BICOMP - 160 + 222 ICCARM - 282 251 + 344 313 ICCARM - 352 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 350 177 + 112 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 110 239 @@ -1893,17 +1286,17 @@ BICOMP - 164 + 226 ICCARM - 279 249 + 341 311 ICCARM - 355 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 347 352 350 177 + 115 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 107 112 110 239 @@ -1912,17 +1305,17 @@ BICOMP - 139 + 201 ICCARM - 145 75 + 207 75 ICCARM - 366 16 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 365 368 370 372 + 126 16 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 125 128 130 132 @@ -1931,17 +1324,17 @@ BICOMP - 140 + 202 ICCARM - 150 72 + 212 72 ICCARM - 366 16 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 365 368 370 372 + 126 16 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 125 128 130 132 @@ -1950,17 +1343,17 @@ BICOMP - 141 + 203 ICCARM - 146 74 + 208 74 ICCARM - 366 16 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 365 368 370 372 + 126 16 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 125 128 130 132 @@ -1969,17 +1362,17 @@ BICOMP - 143 + 205 ICCARM - 149 138 + 211 200 ICCARM - 366 16 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 365 368 370 372 + 126 16 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 125 128 130 132 @@ -1988,17 +1381,17 @@ BICOMP - 144 + 206 ICCARM - 147 137 + 209 199 ICCARM - 366 16 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 365 368 370 372 + 126 16 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 125 128 130 132 @@ -2007,17 +1400,17 @@ BICOMP - 162 + 224 ICCARM - 393 254 + 153 316 ICCARM - 379 377 382 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 375 + 139 137 142 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 135 @@ -2026,7 +1419,7 @@ AARM - 128 + 190 @@ -2035,17 +1428,17 @@ BICOMP - 169 + 231 ICCARM - 71 258 + 71 320 ICCARM - 377 + 137 @@ -2054,17 +1447,17 @@ BICOMP - 311 + 373 ICCARM - 356 257 + 116 319 ICCARM - 379 377 382 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 375 + 139 137 142 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 135 @@ -2077,13 +1470,13 @@ ICCARM - 272 196 + 334 258 ICCARM - 112 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 404 111 119 116 115 117 121 354 355 347 352 350 177 + 174 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 181 178 177 179 183 114 115 107 112 110 239 @@ -2092,17 +1485,17 @@ BICOMP - 308 + 370 ICCARM - 267 135 + 329 197 ICCARM - 400 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 108 405 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 + 160 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 @@ -2111,17 +1504,17 @@ BICOMP - 153 + 215 ICCARM - 270 152 + 332 214 ICCARM - 404 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 403 111 112 119 116 115 117 121 354 355 347 352 350 177 + 164 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 173 174 181 178 177 179 183 114 115 107 112 110 239 @@ -2130,17 +1523,17 @@ BICOMP - 309 + 371 ICCARM - 280 136 + 342 198 ICCARM - 405 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 403 404 111 112 119 116 115 117 121 354 355 347 352 350 177 + 165 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 @@ -2149,17 +1542,624 @@ BICOMP - 310 + 372 ICCARM - 269 151 + 331 213 ICCARM - 403 172 182 359 225 316 381 233 313 283 287 187 344 183 178 173 179 181 186 400 108 405 404 111 112 119 116 115 117 121 354 355 347 352 350 177 + 163 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + + + BICOMP + 365 + + + ICCARM + 330 196 + + + + + ICCARM + 170 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + BICOMP + 220 + + + ICCARM + 333 191 + + + + + ICCARM + 173 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + BICOMP + 228 + + + ICCARM + 335 97 + + + + + ICCARM + 181 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + + + BICOMP + 229 + + + ICCARM + 337 99 + + + + + ICCARM + 177 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + BICOMP + 218 + + + ICCARM + 338 100 + + + + + ICCARM + 179 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + BICOMP + 227 + + + ICCARM + 336 98 + + + + + ICCARM + 178 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + BICOMP + 217 + + + ICCARM + 339 101 + + + + + ICCARM + 183 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 114 115 107 112 110 239 + + + + + $PROJ_DIR$\Debug\Obj\stm32f103.pbd + + + BILINK + 157 251 156 348 374 254 255 256 288 376 360 361 362 323 363 353 148 346 290 291 293 379 292 294 118 380 356 194 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c + + + BICOMP + 318 + + + ICCARM + 328 149 + + + + + ICCARM + 239 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + + + BICOMP + 366 + + + ICCARM + 324 150 + + + + + ICCARM + 235 234 245 119 287 378 141 295 375 345 349 249 406 244 240 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + + + BICOMP + 193 + + + ICCARM + 326 284 + + + + + ICCARM + 240 234 245 119 287 378 141 295 375 345 349 249 406 244 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + + + BICOMP + 367 + + + ICCARM + 325 147 + + + + + ICCARM + 241 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + + + BICOMP + 368 + + + ICCARM + 322 146 + + + + + ICCARM + 243 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + + + BICOMP + 369 + + + ICCARM + 327 145 + + + + + ICCARM + 248 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + + + BICOMP + 317 + + + ICCARM + 117 152 + + + + + ICCARM + 119 287 378 141 295 375 345 349 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + + + BICOMP + 365 + + + ICCARM + 330 196 + + + + + BICOMP + 261 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 261 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + + + BICOMP + 371 + + + ICCARM + 342 198 + + + + + BICOMP + 263 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 263 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + BICOMP + 372 + + + ICCARM + 331 213 + + + + + BICOMP + 265 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 265 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + BICOMP + 215 + + + ICCARM + 332 214 + + + + + BICOMP + 267 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + ICCARM + 267 3 0 119 287 378 141 295 375 345 349 249 1 7 9 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + BICOMP + 220 + + + ICCARM + 333 191 + + + + + BICOMP + 269 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 269 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + BICOMP + 228 + + + ICCARM + 335 97 + + + + + BICOMP + 271 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 271 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + BICOMP + 227 + + + ICCARM + 336 98 + + + + + BICOMP + 273 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 273 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + + + BICOMP + 229 + + + ICCARM + 337 99 + + + + + BICOMP + 275 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 275 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + BICOMP + 217 + + + ICCARM + 339 101 + + + + + BICOMP + 277 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 277 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + BICOMP + 230 + + + ICCARM + 340 309 + + + + + BICOMP + 279 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 279 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + + + BICOMP + 223 + + + ICCARM + 343 312 + + + + + BICOMP + 281 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 281 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\..\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + + + BICOMP + 219 + + + ICCARM + 321 314 + + + + + BICOMP + 283 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + ICCARM + 283 3 0 119 287 378 141 295 375 345 349 249 1 7 11 13 15 + + + + + $PROJ_DIR$\Debug\Exe\stm32f103.out + + + ILINK + 286 192 377 151 159 144 189 155 381 382 68 154 355 357 358 359 138 354 69 158 289 350 351 296 252 364 250 253 257 285 352 216 347 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + + + BICOMP + 232 + + + ICCARM + 70 315 + + + + + ICCARM + 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 114 115 107 112 110 239 + + + + + $PROJ_DIR$\..\cstart.s + + + AARM + 190 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + BICOMP + 230 + + + ICCARM + 340 309 + + + + + ICCARM + 114 234 245 119 287 378 141 295 375 345 349 249 406 244 240 235 241 243 248 160 170 165 163 164 173 174 181 178 177 179 183 115 107 112 110 239 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/main.c index 11cb7b88..463eb627 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Boot/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM3_STM32_Olimex_STM32P103_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 none. ** ****************************************************************************************/ 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_STM32_Olimex_STM32P103_IAR/Prog/bin/demoprog_olimex_stm32p103.out b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/bin/demoprog_olimex_stm32p103.out index 207ada15..d5bfe54f 100644 Binary files a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/bin/demoprog_olimex_stm32p103.out and b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/bin/demoprog_olimex_stm32p103.out differ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/boot.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/boot.c index b16345dc..2af31de3 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/boot.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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 +104,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 +155,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) @@ -192,28 +182,26 @@ static unsigned char UartReceiveByte(unsigned char *data) * C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * 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 */ @@ -239,15 +227,14 @@ static const tCanBusTiming canTiming[] = }; -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 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 prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return 1 if the CAN bustiming register values were found, 0 otherwise. ** ****************************************************************************************/ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *prescaler, @@ -279,11 +266,9 @@ static unsigned char CanGetSpeedConfig(unsigned short baud, unsigned short *pres } /*** 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) @@ -343,12 +328,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_STM32_Olimex_STM32P103_IAR/Prog/boot.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/boot.h index 92789052..75c56393 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/boot.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/header.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/header.h index 8e99d289..53d7752c 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/header.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/ide/settings/stm32f103.wsdt b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/settings/stm32f103.wsdt index 3ad8a332..1bb5a637 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/settings/stm32f103.wsdt +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/settings/stm32f103.wsdt @@ -12,12 +12,12 @@ - 379272727 + 146272727 20105928270201413 - + TabID-32216-31616 @@ -29,7 +29,7 @@ - 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 + 0TabID-12497-1878BuildBuildTabID-2690-2881Debug LogDebug-Log0 @@ -42,7 +42,7 @@ - iaridepm.enu1-2-2727453-2-2262204136458202381236979723214-2-22361922-2-219242381002083236111136458202381 + iaridepm.enu1-2-2395237-2-2138116136905202091237103691638-2-21341010-2-210121361003968236934136905202091 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/stm32f103.dep b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/stm32f103.dep index 917d26b3..be4d72f4 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/stm32f103.dep +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/ide/stm32f103.dep @@ -73,13 +73,13 @@ $TOOLKIT_DIR$\lib\m7M_tl.a $PROJ_DIR$\..\obj\stm32f10x_rtc.pbi $PROJ_DIR$\..\obj\stm32f10x_rcc.pbi - $PROJ_DIR$\..\obj\stm32f103.pbd - $PROJ_DIR$\..\obj\stm32f10x_fsmc.pbi - $PROJ_DIR$\..\obj\stm32f10x_usart.pbi $PROJ_DIR$\..\obj\stm32f10x_wwdg.pbi - $PROJ_DIR$\..\bin\stm32f103.srec $PROJ_DIR$\..\obj\app.pbi + $PROJ_DIR$\..\bin\stm32f103.srec + $PROJ_DIR$\..\obj\stm32f10x_usart.pbi $PROJ_DIR$\..\obj\stm32f10x_tim.pbi + $PROJ_DIR$\..\obj\stm32f10x_fsmc.pbi + $PROJ_DIR$\..\obj\stm32f103.pbd $PROJ_DIR$\..\obj\stm32f10x_spi.pbi $PROJ_DIR$\..\obj\stm32f10x_iwdg.pbi $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi @@ -343,10 +343,6 @@ - - BICOMP - 8 2 1 158 160 145 84 162 142 112 116 182 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 - ICCARM 8 2 1 158 160 145 84 162 142 112 116 182 51 13 6 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 @@ -551,7 +547,7 @@ BICOMP - 68 + 72 ICCARM @@ -758,7 +754,7 @@ BICOMP - 73 + 71 ICCARM @@ -781,7 +777,7 @@ BICOMP - 69 + 70 ICCARM @@ -804,7 +800,7 @@ BICOMP - 70 + 67 ICCARM @@ -890,6 +886,10 @@ + + BICOMP + 55 243 2 1 158 160 145 84 162 142 112 116 182 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 53 57 59 62 + ICCARM 55 243 2 1 158 160 145 84 162 142 112 116 182 51 13 6 8 10 12 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 4 53 57 59 62 @@ -993,7 +993,7 @@ BICOMP - 72 + 68 ICCARM @@ -1077,7 +1077,7 @@ OBJCOPY - 71 + 69 diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/irq.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/irq.c index a5cd3cd8..eed80fb6 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/irq.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/irq.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/irq.h index 9f12faf4..6a9511e4 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/irq.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/led.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/led.c index d4d4a557..45800a7b 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/led.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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) @@ -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_STM32P103_IAR/Prog/led.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/led.h index f69b6a44..c74d5d86 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/led.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/main.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/main.c index 731b3f90..b5a07632 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/main.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/prog.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/prog.dox new file mode 100644 index 00000000..e2edcfcf --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM3_STM32_Olimex_STM32P103_IAR User Program +\brief User Program. +\ingroup ARMCM3_STM32_Olimex_STM32P103_IAR +*/ + + diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/timer.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/timer.c index 282215a8..f8b0fd02 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/timer.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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 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_STM32_Olimex_STM32P103_IAR/Prog/timer.h b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/timer.h index b3da70d4..928d0de8 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/timer.h +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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) 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_STM32P103_IAR\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR/Prog/vectors.c b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/vectors.c index dafcbbad..31803aa3 100644 --- a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/Prog/vectors.c +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_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_STM32_Olimex_STM32P103_IAR\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM3_STM32_Olimex_STM32P103_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 */ @@ -161,6 +163,6 @@ __root const tIsrFunc __vector_table[] @ ".intvec" = }; -/************************************ end of hw.c **************************************/ +/************************************ end of vectors.c *********************************/ diff --git a/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/demo.dox b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/demo.dox new file mode 100644 index 00000000..c198e092 --- /dev/null +++ b/Target/Demo/ARMCM3_STM32_Olimex_STM32P103_IAR/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM3_STM32_Olimex_STM32P103_IAR Demo for Olimex STM32-P103/IAR +\brief Preconfigured programs for the Olimex STM32-P103 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf index f3206c53..ef4a1c90 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map index 12386e95..7c7237af 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.map @@ -2449,7 +2449,7 @@ CM3_System_Control_Space 0xe000e000 0x00001000 xw Linker script and memory map - 0x08006634 __do_debug_operation = __do_debug_operation_mempoll + 0x08006624 __do_debug_operation = __do_debug_operation_mempoll 0x08000000 __FLASH_segment_start__ = 0x8000000 0x08008000 __FLASH_segment_end__ = 0x8008000 0x10000000 __DATA_SRAM_segment_start__ = 0x10000000 @@ -2534,7 +2534,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) 0x08000328 __text_load_start__ = ALIGN (__init_end__, 0x4) -.text 0x08000328 0x6350 +.text 0x08000328 0x6340 0x08000328 __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 @@ -2738,237 +2738,237 @@ Linker script and memory map .text.FlashSwitchBlock 0x080025bc 0x54 THUMB Debug/../../obj/flash.o .text.FlashAddToBlock - 0x08002610 0x140 THUMB Debug/../../obj/flash.o + 0x08002610 0x130 THUMB Debug/../../obj/flash.o .text.FlashInit - 0x08002750 0x1c THUMB Debug/../../obj/flash.o - 0x08002750 FlashInit + 0x08002740 0x1c THUMB Debug/../../obj/flash.o + 0x08002740 FlashInit .text.FlashWrite - 0x0800276c 0x64 THUMB Debug/../../obj/flash.o - 0x0800276c FlashWrite + 0x0800275c 0x64 THUMB Debug/../../obj/flash.o + 0x0800275c FlashWrite .text.FlashErase - 0x080027d0 0x120 THUMB Debug/../../obj/flash.o - 0x080027d0 FlashErase + 0x080027c0 0x120 THUMB Debug/../../obj/flash.o + 0x080027c0 FlashErase .text.FlashWriteChecksum - 0x080028f0 0x5c THUMB Debug/../../obj/flash.o - 0x080028f0 FlashWriteChecksum + 0x080028e0 0x5c THUMB Debug/../../obj/flash.o + 0x080028e0 FlashWriteChecksum .text.FlashVerifyChecksum - 0x0800294c 0x68 THUMB Debug/../../obj/flash.o - 0x0800294c FlashVerifyChecksum + 0x0800293c 0x68 THUMB Debug/../../obj/flash.o + 0x0800293c FlashVerifyChecksum .text.FlashDone - 0x080029b4 0x50 THUMB Debug/../../obj/flash.o - 0x080029b4 FlashDone - .text.NvmInit 0x08002a04 0x8 THUMB Debug/../../obj/nvm.o - 0x08002a04 NvmInit + 0x080029a4 0x50 THUMB Debug/../../obj/flash.o + 0x080029a4 FlashDone + .text.NvmInit 0x080029f4 0x8 THUMB Debug/../../obj/nvm.o + 0x080029f4 NvmInit .text.NvmWrite - 0x08002a0c 0x8 THUMB Debug/../../obj/nvm.o - 0x08002a0c NvmWrite + 0x080029fc 0x8 THUMB Debug/../../obj/nvm.o + 0x080029fc NvmWrite .text.NvmErase - 0x08002a14 0x8 THUMB Debug/../../obj/nvm.o - 0x08002a14 NvmErase + 0x08002a04 0x8 THUMB Debug/../../obj/nvm.o + 0x08002a04 NvmErase .text.NvmVerifyChecksum - 0x08002a1c 0x8 THUMB Debug/../../obj/nvm.o - 0x08002a1c NvmVerifyChecksum - .text.NvmDone 0x08002a24 0x14 THUMB Debug/../../obj/nvm.o - 0x08002a24 NvmDone + 0x08002a0c 0x8 THUMB Debug/../../obj/nvm.o + 0x08002a0c NvmVerifyChecksum + .text.NvmDone 0x08002a14 0x14 THUMB Debug/../../obj/nvm.o + 0x08002a14 NvmDone .text.TimerReset - 0x08002a38 0x10 THUMB Debug/../../obj/timer.o - 0x08002a38 TimerReset + 0x08002a28 0x10 THUMB Debug/../../obj/timer.o + 0x08002a28 TimerReset .text.TimerInit - 0x08002a48 0x30 THUMB Debug/../../obj/timer.o - 0x08002a48 TimerInit + 0x08002a38 0x30 THUMB Debug/../../obj/timer.o + 0x08002a38 TimerInit .text.TimerUpdate - 0x08002a78 0x24 THUMB Debug/../../obj/timer.o - 0x08002a78 TimerUpdate + 0x08002a68 0x24 THUMB Debug/../../obj/timer.o + 0x08002a68 TimerUpdate .text.TimerGet - 0x08002a9c 0x14 THUMB Debug/../../obj/timer.o - 0x08002a9c TimerGet + 0x08002a8c 0x14 THUMB Debug/../../obj/timer.o + 0x08002a8c TimerGet .text.UartReceiveByte - 0x08002ab0 0x34 THUMB Debug/../../obj/uart.o + 0x08002aa0 0x34 THUMB Debug/../../obj/uart.o .text.UartTransmitByte - 0x08002ae4 0x48 THUMB Debug/../../obj/uart.o + 0x08002ad4 0x48 THUMB Debug/../../obj/uart.o .text.UartInit - 0x08002b2c 0x44 THUMB Debug/../../obj/uart.o - 0x08002b2c UartInit + 0x08002b1c 0x44 THUMB Debug/../../obj/uart.o + 0x08002b1c UartInit .text.UartTransmitPacket - 0x08002b70 0xe4 THUMB Debug/../../obj/uart.o - 0x08002b70 UartTransmitPacket + 0x08002b60 0xe4 THUMB Debug/../../obj/uart.o + 0x08002b60 UartTransmitPacket .text.UartReceivePacket - 0x08002c54 0xb0 THUMB Debug/../../obj/uart.o - 0x08002c54 UartReceivePacket + 0x08002c44 0xb0 THUMB Debug/../../obj/uart.o + 0x08002c44 UartReceivePacket .text.AssertFailure - 0x08002d04 0x1c THUMB Debug/../../obj/assert.o - 0x08002d04 AssertFailure + 0x08002cf4 0x1c THUMB Debug/../../obj/assert.o + 0x08002cf4 AssertFailure .text.BackDoorCheck - 0x08002d20 0x50 THUMB Debug/../../obj/backdoor.o - 0x08002d20 BackDoorCheck + 0x08002d10 0x50 THUMB Debug/../../obj/backdoor.o + 0x08002d10 BackDoorCheck .text.BackDoorInit - 0x08002d70 0x24 THUMB Debug/../../obj/backdoor.o - 0x08002d70 BackDoorInit + 0x08002d60 0x24 THUMB Debug/../../obj/backdoor.o + 0x08002d60 BackDoorInit .text.BootInit - 0x08002d94 0x1c THUMB Debug/../../obj/boot.o - 0x08002d94 BootInit + 0x08002d84 0x1c THUMB Debug/../../obj/boot.o + 0x08002d84 BootInit .text.BootTask - 0x08002db0 0x18 THUMB Debug/../../obj/boot.o - 0x08002db0 BootTask - .text.ComInit 0x08002dc8 0x34 THUMB Debug/../../obj/com.o - 0x08002dc8 ComInit - .text.ComTask 0x08002dfc 0x20 THUMB Debug/../../obj/com.o - 0x08002dfc ComTask - .text.ComFree 0x08002e1c 0x4 THUMB Debug/../../obj/com.o - 0x08002e1c ComFree + 0x08002da0 0x18 THUMB Debug/../../obj/boot.o + 0x08002da0 BootTask + .text.ComInit 0x08002db8 0x34 THUMB Debug/../../obj/com.o + 0x08002db8 ComInit + .text.ComTask 0x08002dec 0x20 THUMB Debug/../../obj/com.o + 0x08002dec ComTask + .text.ComFree 0x08002e0c 0x4 THUMB Debug/../../obj/com.o + 0x08002e0c ComFree .text.ComTransmitPacket - 0x08002e20 0x10 THUMB Debug/../../obj/com.o - 0x08002e20 ComTransmitPacket + 0x08002e10 0x10 THUMB Debug/../../obj/com.o + 0x08002e10 ComTransmitPacket .text.ComSetConnectEntryState - 0x08002e30 0x10 THUMB Debug/../../obj/com.o - 0x08002e30 ComSetConnectEntryState + 0x08002e20 0x10 THUMB Debug/../../obj/com.o + 0x08002e20 ComSetConnectEntryState .text.ComIsConnected - 0x08002e40 0x8 THUMB Debug/../../obj/com.o - 0x08002e40 ComIsConnected - .text.CopInit 0x08002e48 0x4 THUMB Debug/../../obj/cop.o - 0x08002e48 CopInit + 0x08002e30 0x8 THUMB Debug/../../obj/com.o + 0x08002e30 ComIsConnected + .text.CopInit 0x08002e38 0x4 THUMB Debug/../../obj/cop.o + 0x08002e38 CopInit .text.CopService - 0x08002e4c 0x4 THUMB Debug/../../obj/cop.o - 0x08002e4c CopService + 0x08002e3c 0x4 THUMB Debug/../../obj/cop.o + 0x08002e3c CopService .text.XcpProtectResources - 0x08002e50 0x10 THUMB Debug/../../obj/xcp.o + 0x08002e40 0x10 THUMB Debug/../../obj/xcp.o .text.XcpSetCtoError - 0x08002e60 0x1c THUMB Debug/../../obj/xcp.o - .text.XcpInit 0x08002e7c 0x20 THUMB Debug/../../obj/xcp.o - 0x08002e7c XcpInit + 0x08002e50 0x1c THUMB Debug/../../obj/xcp.o + .text.XcpInit 0x08002e6c 0x20 THUMB Debug/../../obj/xcp.o + 0x08002e6c XcpInit .text.XcpIsConnected - 0x08002e9c 0x14 THUMB Debug/../../obj/xcp.o - 0x08002e9c XcpIsConnected + 0x08002e8c 0x14 THUMB Debug/../../obj/xcp.o + 0x08002e8c XcpIsConnected .text.XcpPacketTransmitted - 0x08002eb0 0x14 THUMB Debug/../../obj/xcp.o - 0x08002eb0 XcpPacketTransmitted + 0x08002ea0 0x14 THUMB Debug/../../obj/xcp.o + 0x08002ea0 XcpPacketTransmitted .text.XcpPacketReceived - 0x08002ec4 0x3f8 THUMB Debug/../../obj/xcp.o - 0x08002ec4 XcpPacketReceived - .text.mem_cpy 0x080032bc 0x54 THUMB Debug/../../obj/ff.o - .text.mem_set 0x08003310 0x38 THUMB Debug/../../obj/ff.o - .text.chk_chr 0x08003348 0x18 THUMB Debug/../../obj/ff.o + 0x08002eb4 0x3f8 THUMB Debug/../../obj/xcp.o + 0x08002eb4 XcpPacketReceived + .text.mem_cpy 0x080032ac 0x54 THUMB Debug/../../obj/ff.o + .text.mem_set 0x08003300 0x38 THUMB Debug/../../obj/ff.o + .text.chk_chr 0x08003338 0x18 THUMB Debug/../../obj/ff.o .text.ld_clust - 0x08003360 0x20 THUMB Debug/../../obj/ff.o + 0x08003350 0x20 THUMB Debug/../../obj/ff.o .text.st_clust - 0x08003380 0x18 THUMB Debug/../../obj/ff.o - .text.sum_sfn 0x08003398 0xa4 THUMB Debug/../../obj/ff.o + 0x08003370 0x18 THUMB Debug/../../obj/ff.o + .text.sum_sfn 0x08003388 0xa4 THUMB Debug/../../obj/ff.o .text.validate - 0x0800343c 0x44 THUMB Debug/../../obj/ff.o + 0x0800342c 0x44 THUMB Debug/../../obj/ff.o .text.check_fs - 0x08003480 0xa8 THUMB Debug/../../obj/ff.o + 0x08003470 0xa8 THUMB Debug/../../obj/ff.o .text.chk_mounted - 0x08003528 0x400 THUMB Debug/../../obj/ff.o + 0x08003518 0x400 THUMB Debug/../../obj/ff.o .text.get_fileinfo - 0x08003928 0x248 THUMB Debug/../../obj/ff.o + 0x08003918 0x248 THUMB Debug/../../obj/ff.o .text.sync_window - 0x08003b70 0xd8 THUMB Debug/../../obj/ff.o + 0x08003b60 0xd8 THUMB Debug/../../obj/ff.o .text.move_window - 0x08003c48 0x3c THUMB Debug/../../obj/ff.o - .text.sync_fs 0x08003c84 0xd4 THUMB Debug/../../obj/ff.o + 0x08003c38 0x3c THUMB Debug/../../obj/ff.o + .text.sync_fs 0x08003c74 0xd4 THUMB Debug/../../obj/ff.o .text.clust2sect - 0x08003d58 0x20 THUMB Debug/../../obj/ff.o - 0x08003d58 clust2sect - .text.get_fat 0x08003d78 0x110 THUMB Debug/../../obj/ff.o - 0x08003d78 get_fat - .text.dir_sdi 0x08003e88 0xac THUMB Debug/../../obj/ff.o - .text.put_fat 0x08003f34 0x134 THUMB Debug/../../obj/ff.o - 0x08003f34 put_fat + 0x08003d48 0x20 THUMB Debug/../../obj/ff.o + 0x08003d48 clust2sect + .text.get_fat 0x08003d68 0x110 THUMB Debug/../../obj/ff.o + 0x08003d68 get_fat + .text.dir_sdi 0x08003e78 0xac THUMB Debug/../../obj/ff.o + .text.put_fat 0x08003f24 0x134 THUMB Debug/../../obj/ff.o + 0x08003f24 put_fat .text.create_chain - 0x08004068 0xc8 THUMB Debug/../../obj/ff.o + 0x08004058 0xc8 THUMB Debug/../../obj/ff.o .text.dir_next - 0x08004130 0x150 THUMB Debug/../../obj/ff.o + 0x08004120 0x150 THUMB Debug/../../obj/ff.o .text.dir_find - 0x08004280 0x478 THUMB Debug/../../obj/ff.o + 0x08004270 0x478 THUMB Debug/../../obj/ff.o .text.follow_path - 0x080046f8 0x408 THUMB Debug/../../obj/ff.o + 0x080046e8 0x408 THUMB Debug/../../obj/ff.o .text.dir_remove - 0x08004b00 0x5c THUMB Debug/../../obj/ff.o + 0x08004af0 0x5c THUMB Debug/../../obj/ff.o .text.dir_read - 0x08004b5c 0x2c4 THUMB Debug/../../obj/ff.o + 0x08004b4c 0x2c4 THUMB Debug/../../obj/ff.o .text.remove_chain - 0x08004e20 0x7c THUMB Debug/../../obj/ff.o + 0x08004e10 0x7c THUMB Debug/../../obj/ff.o .text.gen_numname - 0x08004e9c 0x140 THUMB Debug/../../obj/ff.o - 0x08004e9c gen_numname + 0x08004e8c 0x140 THUMB Debug/../../obj/ff.o + 0x08004e8c gen_numname .text.dir_register - 0x08004fdc 0x298 THUMB Debug/../../obj/ff.o - .text.f_mount 0x08005274 0x34 THUMB Debug/../../obj/ff.o - 0x08005274 f_mount - .text.f_open 0x080052a8 0x1a4 THUMB Debug/../../obj/ff.o - 0x080052a8 f_open - .text.f_read 0x0800544c 0x1c8 THUMB Debug/../../obj/ff.o - 0x0800544c f_read - .text.f_write 0x08005614 0x204 THUMB Debug/../../obj/ff.o - 0x08005614 f_write - .text.f_sync 0x08005818 0xb4 THUMB Debug/../../obj/ff.o - 0x08005818 f_sync - .text.f_close 0x080058cc 0x18 THUMB Debug/../../obj/ff.o - 0x080058cc f_close - .text.f_lseek 0x080058e4 0x1bc THUMB Debug/../../obj/ff.o - 0x080058e4 f_lseek - .text.f_stat 0x08005aa0 0x50 THUMB Debug/../../obj/ff.o - 0x08005aa0 f_stat + 0x08004fcc 0x298 THUMB Debug/../../obj/ff.o + .text.f_mount 0x08005264 0x34 THUMB Debug/../../obj/ff.o + 0x08005264 f_mount + .text.f_open 0x08005298 0x1a4 THUMB Debug/../../obj/ff.o + 0x08005298 f_open + .text.f_read 0x0800543c 0x1c8 THUMB Debug/../../obj/ff.o + 0x0800543c f_read + .text.f_write 0x08005604 0x204 THUMB Debug/../../obj/ff.o + 0x08005604 f_write + .text.f_sync 0x08005808 0xb4 THUMB Debug/../../obj/ff.o + 0x08005808 f_sync + .text.f_close 0x080058bc 0x18 THUMB Debug/../../obj/ff.o + 0x080058bc f_close + .text.f_lseek 0x080058d4 0x1bc THUMB Debug/../../obj/ff.o + 0x080058d4 f_lseek + .text.f_stat 0x08005a90 0x50 THUMB Debug/../../obj/ff.o + 0x08005a90 f_stat .text.f_unlink - 0x08005af0 0xd4 THUMB Debug/../../obj/ff.o - 0x08005af0 f_unlink - .text.f_gets 0x08005bc4 0x60 THUMB Debug/../../obj/ff.o - 0x08005bc4 f_gets - .text.f_putc 0x08005c24 0x38 THUMB Debug/../../obj/ff.o - 0x08005c24 f_putc - .text.f_puts 0x08005c5c 0x38 THUMB Debug/../../obj/ff.o - 0x08005c5c f_puts + 0x08005ae0 0xd4 THUMB Debug/../../obj/ff.o + 0x08005ae0 f_unlink + .text.f_gets 0x08005bb4 0x60 THUMB Debug/../../obj/ff.o + 0x08005bb4 f_gets + .text.f_putc 0x08005c14 0x38 THUMB Debug/../../obj/ff.o + 0x08005c14 f_putc + .text.f_puts 0x08005c4c 0x38 THUMB Debug/../../obj/ff.o + 0x08005c4c f_puts .text.ff_convert - 0x08005c94 0x78 THUMB Debug/../../obj/unicode.o - 0x08005c94 ff_convert + 0x08005c84 0x78 THUMB Debug/../../obj/unicode.o + 0x08005c84 ff_convert .text.ff_wtoupper - 0x08005d0c 0x34 THUMB Debug/../../obj/unicode.o - 0x08005d0c ff_wtoupper + 0x08005cfc 0x34 THUMB Debug/../../obj/unicode.o + 0x08005cfc ff_wtoupper .text.FileLibLongToIntString - 0x08005d40 0x50 THUMB Debug/../../obj/file.o + 0x08005d30 0x50 THUMB Debug/../../obj/file.o .text.FileLibHexStringToByte - 0x08005d90 0x70 THUMB Debug/../../obj/file.o + 0x08005d80 0x70 THUMB Debug/../../obj/file.o .text.FileLibByteNibbleToChar - 0x08005e00 0x1c THUMB Debug/../../obj/file.o + 0x08005df0 0x1c THUMB Debug/../../obj/file.o .text.FileLibByteToHexString - 0x08005e1c 0x24 THUMB Debug/../../obj/file.o + 0x08005e0c 0x24 THUMB Debug/../../obj/file.o .text.SrecParseLine - 0x08005e40 0x258 THUMB Debug/../../obj/file.o + 0x08005e30 0x258 THUMB Debug/../../obj/file.o .text.FileInit - 0x08006098 0x30 THUMB Debug/../../obj/file.o - 0x08006098 FileInit + 0x08006088 0x30 THUMB Debug/../../obj/file.o + 0x08006088 FileInit .text.FileIsIdle - 0x080060c8 0x14 THUMB Debug/../../obj/file.o - 0x080060c8 FileIsIdle + 0x080060b8 0x14 THUMB Debug/../../obj/file.o + 0x080060b8 FileIsIdle .text.FileHandleFirmwareUpdateRequest - 0x080060dc 0x3c THUMB Debug/../../obj/file.o - 0x080060dc FileHandleFirmwareUpdateRequest + 0x080060cc 0x3c THUMB Debug/../../obj/file.o + 0x080060cc FileHandleFirmwareUpdateRequest .text.FileTask - 0x08006118 0x4b4 THUMB Debug/../../obj/file.o - 0x08006118 FileTask + 0x08006108 0x4b4 THUMB Debug/../../obj/file.o + 0x08006108 FileTask .text.libc.isdigit - 0x080065cc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - 0x080065cc isdigit + 0x080065bc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + 0x080065bc isdigit .text.libc.toupper - 0x080065dc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - 0x080065dc toupper + 0x080065cc 0x10 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + 0x080065cc toupper .text.libc.memcpy - 0x080065ec 0x48 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) - 0x080065ec __aeabi_memcpy - 0x080065ec __aeabi_memcpy4 - 0x080065ec __aeabi_memcpy8 - 0x080065ec memcpy + 0x080065dc 0x48 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2_asm.o) + 0x080065dc __aeabi_memcpy + 0x080065dc __aeabi_memcpy4 + 0x080065dc __aeabi_memcpy8 + 0x080065dc memcpy .text.libdebugio.__do_debug_operation_mempoll - 0x08006634 0x3c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x08006634 __do_debug_operation_mempoll + 0x08006624 0x3c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x08006624 __do_debug_operation_mempoll .text.libc.__debug_io_lock - 0x08006670 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) - 0x08006670 __debug_io_lock + 0x08006660 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + 0x08006660 __debug_io_lock .text.libc.__debug_io_unlock - 0x08006674 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) - 0x08006674 __debug_io_unlock - 0x08006678 __text_end__ = (__text_start__ + SIZEOF (.text)) - 0x08006678 __text_load_end__ = __text_end__ + 0x08006664 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + 0x08006664 __debug_io_unlock + 0x08006668 __text_end__ = (__text_start__ + SIZEOF (.text)) + 0x08006668 __text_load_end__ = __text_end__ .vfp11_veneer 0x00000000 0x0 .vfp11_veneer 0x00000000 0x0 linker stubs @@ -2979,87 +2979,87 @@ Linker script and memory map .iplt 0x00000000 0x0 .iplt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= __FLASH_segment_end__)), error: .text is too large to fit in FLASH memory segment) - 0x08006678 __dtors_load_start__ = ALIGN (__text_end__, 0x4) + 0x08006668 __dtors_load_start__ = ALIGN (__text_end__, 0x4) -.dtors 0x08006678 0x0 - 0x08006678 __dtors_start__ = . +.dtors 0x08006668 0x0 + 0x08006668 __dtors_start__ = . *(SORT(.dtors.*)) *(.dtors) *(.fini_array .fini_array.*) - 0x08006678 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) - 0x08006678 __dtors_load_end__ = __dtors_end__ + 0x08006668 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) + 0x08006668 __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) - 0x08006678 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) + 0x08006668 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) -.ctors 0x08006678 0x0 - 0x08006678 __ctors_start__ = . +.ctors 0x08006668 0x0 + 0x08006668 __ctors_start__ = . *(SORT(.ctors.*)) *(.ctors) *(.init_array .init_array.*) - 0x08006678 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) - 0x08006678 __ctors_load_end__ = __ctors_end__ + 0x08006668 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) + 0x08006668 __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) - 0x08006678 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) + 0x08006668 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) -.rodata 0x08006678 0x96c - 0x08006678 __rodata_start__ = . +.rodata 0x08006668 0x96c + 0x08006668 __rodata_start__ = . *(.rodata .rodata.* .gnu.linkonce.r.*) .rodata.firmwareFilename - 0x08006678 0x20 THUMB Debug/../../obj/hooks.o + 0x08006668 0x20 THUMB Debug/../../obj/hooks.o .rodata.str1.4 - 0x08006698 0xd THUMB Debug/../../obj/hooks.o + 0x08006688 0xd THUMB Debug/../../obj/hooks.o 0x10 (size before relaxing) - *fill* 0x080066a5 0x3 00 + *fill* 0x08006695 0x3 00 .rodata.str1.4 - 0x080066a8 0x8c THUMB Debug/../../obj/vectors.o + 0x08006698 0x8c THUMB Debug/../../obj/vectors.o .rodata.flashSectorNumToMask - 0x08006734 0x30 THUMB Debug/../../obj/flash.o + 0x08006724 0x30 THUMB Debug/../../obj/flash.o .rodata.flashLayout - 0x08006764 0x78 THUMB Debug/../../obj/flash.o + 0x08006754 0x78 THUMB Debug/../../obj/flash.o .rodata.str1.4 - 0x080067dc 0x7e THUMB Debug/../../obj/uart.o + 0x080067cc 0x7e THUMB Debug/../../obj/uart.o 0x80 (size before relaxing) - *fill* 0x0800685a 0x2 00 + *fill* 0x0800684a 0x2 00 .rodata.xcpStationId - 0x0800685c 0x8 THUMB Debug/../../obj/xcp.o + 0x0800684c 0x8 THUMB Debug/../../obj/xcp.o .rodata.str1.4 - 0x08006864 0x13 THUMB Debug/../../obj/ff.o + 0x08006854 0x13 THUMB Debug/../../obj/ff.o 0x14 (size before relaxing) - *fill* 0x08006877 0x1 00 - .rodata.ExCvt 0x08006878 0x80 THUMB Debug/../../obj/ff.o + *fill* 0x08006867 0x1 00 + .rodata.ExCvt 0x08006868 0x80 THUMB Debug/../../obj/ff.o .rodata.LfnOfs - 0x080068f8 0x10 THUMB Debug/../../obj/ff.o + 0x080068e8 0x10 THUMB Debug/../../obj/ff.o .rodata.tbl_lower.3809 - 0x08006908 0x1e0 THUMB Debug/../../obj/unicode.o - .rodata.Tbl 0x08006ae8 0x100 THUMB Debug/../../obj/unicode.o + 0x080068f8 0x1e0 THUMB Debug/../../obj/unicode.o + .rodata.Tbl 0x08006ad8 0x100 THUMB Debug/../../obj/unicode.o .rodata.tbl_upper.3810 - 0x08006be8 0x1e0 THUMB Debug/../../obj/unicode.o + 0x08006bd8 0x1e0 THUMB Debug/../../obj/unicode.o .rodata.str1.4 - 0x08006dc8 0x21c THUMB Debug/../../obj/file.o + 0x08006db8 0x21c THUMB Debug/../../obj/file.o 0x220 (size before relaxing) - 0x08006fe4 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) - 0x08006fe4 __rodata_load_end__ = __rodata_end__ + 0x08006fd4 __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) + 0x08006fd4 __rodata_load_end__ = __rodata_end__ .rel.dyn 0x08000000 0x0 .rel.iplt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment) - 0x08006fe4 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) + 0x08006fd4 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) -.ARM.exidx 0x08006fe4 0x0 - 0x08006fe4 __ARM.exidx_start__ = . - 0x08006fe4 __exidx_start = __ARM.exidx_start__ +.ARM.exidx 0x08006fd4 0x0 + 0x08006fd4 __ARM.exidx_start__ = . + 0x08006fd4 __exidx_start = __ARM.exidx_start__ *(.ARM.exidx .ARM.exidx.*) - 0x08006fe4 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) - 0x08006fe4 __exidx_end = __ARM.exidx_end__ - 0x08006fe4 __ARM.exidx_load_end__ = __ARM.exidx_end__ + 0x08006fd4 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) + 0x08006fd4 __exidx_end = __ARM.exidx_end__ + 0x08006fd4 __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) - 0x08006fe4 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) + 0x08006fd4 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) -.fast 0x20000000 0x0 load address 0x08006fe4 +.fast 0x20000000 0x0 load address 0x08006fd4 0x20000000 __fast_start__ = . *(.fast .fast.*) 0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast)) - 0x08006fe4 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) + 0x08006fd4 __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 @@ -3068,9 +3068,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__ >= __RAM_segment_start__) && (__fast_run_end__ <= __RAM_segment_end__)), error: .fast_run is too large to fit in RAM memory segment) - 0x08006fe4 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) + 0x08006fd4 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) -.data 0x20000000 0x18 load address 0x08006fe4 +.data 0x20000000 0x18 load address 0x08006fd4 0x20000000 __data_start__ = . *(.data .data.* .gnu.linkonce.d.*) .data.DMAEndOfTransfer @@ -3080,13 +3080,13 @@ Linker script and memory map .data.APBAHBPrescTable 0x20000008 0x10 THUMB Debug/../../obj/stm32f4xx_rcc.o 0x20000018 __data_end__ = (__data_start__ + SIZEOF (.data)) - 0x08006ffc __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) + 0x08006fec __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) .igot.plt 0x00000000 0x0 .igot.plt 0x00000000 0x0 THUMB Debug/../../obj/mmc.o 0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment) -.data_run 0x20000000 0x18 load address 0x08006fe4 +.data_run 0x20000000 0x18 load address 0x08006fd4 0x20000000 __data_run_start__ = . 0x20000018 . = MAX ((__data_run_start__ + SIZEOF (.data)), .) *fill* 0x20000000 0x18 00 @@ -3095,7 +3095,7 @@ Linker script and memory map 0x00000001 . = ASSERT (((__data_run_end__ >= __RAM_segment_start__) && (__data_run_end__ <= __RAM_segment_end__)), error: .data_run is too large to fit in RAM memory segment) 0x20000018 __bss_load_start__ = ALIGN (__data_run_end__, 0x4) -.bss 0x20000018 0x1024 +.bss 0x20000018 0x1028 0x20000018 __bss_start__ = . *(.bss .bss.* .gnu.linkonce.b.*) .bss.TransferError @@ -3123,116 +3123,116 @@ Linker script and memory map .bss.blockInfo 0x20000514 0x204 THUMB Debug/../../obj/flash.o .bss.millisecond_counter - 0x20000718 0x2 THUMB Debug/../../obj/timer.o + 0x20000718 0x4 THUMB Debug/../../obj/timer.o .bss.xcpCtoRxInProgress.7303 - 0x2000071a 0x1 THUMB Debug/../../obj/uart.o - *fill* 0x2000071b 0x1 00 + 0x2000071c 0x1 THUMB Debug/../../obj/uart.o + *fill* 0x2000071d 0x3 00 .bss.xcpCtoReqPacket.7301 - 0x2000071c 0x44 THUMB Debug/../../obj/uart.o + 0x20000720 0x44 THUMB Debug/../../obj/uart.o .bss.xcpCtoRxLength.7302 - 0x20000760 0x1 THUMB Debug/../../obj/uart.o - *fill* 0x20000761 0x3 00 + 0x20000764 0x1 THUMB Debug/../../obj/uart.o + *fill* 0x20000765 0x3 00 .bss.assert_failure_file - 0x20000764 0x4 THUMB Debug/../../obj/assert.o - .bss.assert_failure_line 0x20000768 0x4 THUMB Debug/../../obj/assert.o + .bss.assert_failure_line + 0x2000076c 0x4 THUMB Debug/../../obj/assert.o .bss.backdoorOpen - 0x2000076c 0x1 THUMB Debug/../../obj/backdoor.o - *fill* 0x2000076d 0x3 00 + 0x20000770 0x1 THUMB Debug/../../obj/backdoor.o + *fill* 0x20000771 0x3 00 .bss.backdoorOpenTime - 0x20000770 0x4 THUMB Debug/../../obj/backdoor.o + 0x20000774 0x4 THUMB Debug/../../obj/backdoor.o .bss.comEntryStateConnect - 0x20000774 0x1 THUMB Debug/../../obj/com.o - *fill* 0x20000775 0x3 00 + 0x20000778 0x1 THUMB Debug/../../obj/com.o + *fill* 0x20000779 0x3 00 .bss.xcpCtoReqPacket.3915 - 0x20000778 0x40 THUMB Debug/../../obj/com.o - .bss.xcpInfo 0x200007b8 0x4c THUMB Debug/../../obj/xcp.o - .bss.LfnBuf 0x20000804 0x200 THUMB Debug/../../obj/ff.o - .bss.Fsid 0x20000a04 0x2 THUMB Debug/../../obj/ff.o - *fill* 0x20000a06 0x2 00 - .bss.FatFs 0x20000a08 0x4 THUMB Debug/../../obj/ff.o + 0x2000077c 0x40 THUMB Debug/../../obj/com.o + .bss.xcpInfo 0x200007bc 0x4c THUMB Debug/../../obj/xcp.o + .bss.LfnBuf 0x20000808 0x200 THUMB Debug/../../obj/ff.o + .bss.Fsid 0x20000a08 0x2 THUMB Debug/../../obj/ff.o + *fill* 0x20000a0a 0x2 00 + .bss.FatFs 0x20000a0c 0x4 THUMB Debug/../../obj/ff.o .bss.loggingStr - 0x20000a0c 0x40 THUMB Debug/../../obj/file.o + 0x20000a10 0x40 THUMB Debug/../../obj/file.o .bss.firmwareUpdateState - 0x20000a4c 0x1 THUMB Debug/../../obj/file.o - *fill* 0x20000a4d 0x3 00 + 0x20000a50 0x1 THUMB Debug/../../obj/file.o + *fill* 0x20000a51 0x3 00 .bss.eraseInfo - 0x20000a50 0x8 THUMB Debug/../../obj/file.o + 0x20000a54 0x8 THUMB Debug/../../obj/file.o .bss.fatFsObjects - 0x20000a58 0x458 THUMB Debug/../../obj/file.o + 0x20000a5c 0x458 THUMB Debug/../../obj/file.o .bss.lineParseObject - 0x20000eb0 0x184 THUMB Debug/../../obj/file.o + 0x20000eb4 0x184 THUMB Debug/../../obj/file.o .bss.libdebugio.dbgCommWord - 0x20001034 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x20001034 dbgCommWord - .bss.libdebugio.dbgCntrlWord_mempoll 0x20001038 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - 0x20001038 dbgCntrlWord_mempoll + 0x20001038 dbgCommWord + .bss.libdebugio.dbgCntrlWord_mempoll + 0x2000103c 0x4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + 0x2000103c dbgCntrlWord_mempoll *(COMMON) - 0x2000103c __bss_end__ = (__bss_start__ + SIZEOF (.bss)) - 0x2000103c __bss_load_end__ = __bss_end__ + 0x20001040 __bss_end__ = (__bss_start__ + SIZEOF (.bss)) + 0x20001040 __bss_load_end__ = __bss_end__ 0x00000001 . = ASSERT (((__bss_end__ >= __RAM_segment_start__) && (__bss_end__ <= __RAM_segment_end__)), error: .bss is too large to fit in RAM memory segment) - 0x2000103c __non_init_load_start__ = ALIGN (__bss_end__, 0x4) + 0x20001040 __non_init_load_start__ = ALIGN (__bss_end__, 0x4) -.non_init 0x2000103c 0x0 - 0x2000103c __non_init_start__ = . +.non_init 0x20001040 0x0 + 0x20001040 __non_init_start__ = . *(.non_init .non_init.*) - 0x2000103c __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init)) - 0x2000103c __non_init_load_end__ = __non_init_end__ + 0x20001040 __non_init_end__ = (__non_init_start__ + SIZEOF (.non_init)) + 0x20001040 __non_init_load_end__ = __non_init_end__ 0x00000001 . = ASSERT (((__non_init_end__ >= __RAM_segment_start__) && (__non_init_end__ <= __RAM_segment_end__)), error: .non_init is too large to fit in RAM memory segment) - 0x2000103c __heap_load_start__ = ALIGN (__non_init_end__, 0x4) + 0x20001040 __heap_load_start__ = ALIGN (__non_init_end__, 0x4) -.heap 0x2000103c 0x800 - 0x2000103c __heap_start__ = . +.heap 0x20001040 0x800 + 0x20001040 __heap_start__ = . *(.heap .heap.*) - 0x2000183c . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4) - *fill* 0x2000103c 0x800 00 - 0x2000183c __heap_end__ = (__heap_start__ + SIZEOF (.heap)) - 0x2000183c __heap_load_end__ = __heap_end__ + 0x20001840 . = ALIGN (MAX ((__heap_start__ + __HEAPSIZE__), .), 0x4) + *fill* 0x20001040 0x800 00 + 0x20001840 __heap_end__ = (__heap_start__ + SIZEOF (.heap)) + 0x20001840 __heap_load_end__ = __heap_end__ 0x00000001 . = ASSERT (((__heap_end__ >= __RAM_segment_start__) && (__heap_end__ <= __RAM_segment_end__)), error: .heap is too large to fit in RAM memory segment) - 0x2000183c __stack_load_start__ = ALIGN (__heap_end__, 0x4) + 0x20001840 __stack_load_start__ = ALIGN (__heap_end__, 0x4) -.stack 0x2000183c 0x800 - 0x2000183c __stack_start__ = . +.stack 0x20001840 0x800 + 0x20001840 __stack_start__ = . *(.stack .stack.*) - 0x2000203c . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4) - *fill* 0x2000183c 0x800 00 - 0x2000203c __stack_end__ = (__stack_start__ + SIZEOF (.stack)) - 0x2000203c __stack_load_end__ = __stack_end__ + 0x20002040 . = ALIGN (MAX ((__stack_start__ + __STACKSIZE__), .), 0x4) + *fill* 0x20001840 0x800 00 + 0x20002040 __stack_end__ = (__stack_start__ + SIZEOF (.stack)) + 0x20002040 __stack_load_end__ = __stack_end__ 0x00000001 . = ASSERT (((__stack_end__ >= __RAM_segment_start__) && (__stack_end__ <= __RAM_segment_end__)), error: .stack is too large to fit in RAM memory segment) - 0x2000203c __stack_process_load_start__ = ALIGN (__stack_end__, 0x4) + 0x20002040 __stack_process_load_start__ = ALIGN (__stack_end__, 0x4) -.stack_process 0x2000203c 0x0 - 0x2000203c __stack_process_start__ = . +.stack_process 0x20002040 0x0 + 0x20002040 __stack_process_start__ = . *(.stack_process .stack_process.*) - 0x2000203c . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4) - 0x2000203c __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process)) - 0x2000203c __stack_process_load_end__ = __stack_process_end__ + 0x20002040 . = ALIGN (MAX ((__stack_process_start__ + __STACKSIZE_PROCESS__), .), 0x4) + 0x20002040 __stack_process_end__ = (__stack_process_start__ + SIZEOF (.stack_process)) + 0x20002040 __stack_process_load_end__ = __stack_process_end__ 0x00000001 . = ASSERT (((__stack_process_end__ >= __RAM_segment_start__) && (__stack_process_end__ <= __RAM_segment_end__)), error: .stack_process is too large to fit in RAM memory segment) - 0x2000203c __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4) + 0x20002040 __tbss_load_start__ = ALIGN (__stack_process_end__, 0x4) -.tbss 0x2000203c 0x0 - 0x2000203c __tbss_start__ = . +.tbss 0x20002040 0x0 + 0x20002040 __tbss_start__ = . *(.tbss .tbss.*) - 0x2000203c __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) - 0x2000203c __tbss_load_end__ = __tbss_end__ + 0x20002040 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) + 0x20002040 __tbss_load_end__ = __tbss_end__ 0x00000001 . = ASSERT (((__tbss_end__ >= __RAM_segment_start__) && (__tbss_end__ <= __RAM_segment_end__)), error: .tbss is too large to fit in RAM memory segment) - 0x08006ffc __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + 0x08006fec __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) -.tdata 0x2000203c 0x0 load address 0x08006ffc - 0x2000203c __tdata_start__ = . +.tdata 0x20002040 0x0 load address 0x08006fec + 0x20002040 __tdata_start__ = . *(.tdata .tdata.*) - 0x2000203c __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) - 0x08006ffc __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) - 0x08006ffc __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) + 0x20002040 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) + 0x08006fec __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) + 0x08006fec __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 0x2000203c 0x0 - 0x2000203c __tdata_run_start__ = . - 0x2000203c . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .) - 0x2000203c __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run)) - 0x2000203c __tdata_run_load_end__ = __tdata_run_end__ - 0x2000203c __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run)) +.tdata_run 0x20002040 0x0 + 0x20002040 __tdata_run_start__ = . + 0x20002040 . = MAX ((__tdata_run_start__ + SIZEOF (.tdata)), .) + 0x20002040 __tdata_run_end__ = (__tdata_run_start__ + SIZEOF (.tdata_run)) + 0x20002040 __tdata_run_load_end__ = __tdata_run_end__ + 0x20002040 __RAM_segment_used_end__ = (ALIGN (__tbss_end__, 0x4) + SIZEOF (.tdata_run)) 0x00000001 . = ASSERT (((__tdata_run_end__ >= __RAM_segment_start__) && (__tdata_run_end__ <= __RAM_segment_end__)), error: .tdata_run is too large to fit in RAM memory segment) START GROUP LOAD THUMB Debug/../../obj/mmc.o @@ -3326,7 +3326,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_frame 0x000032f0 0x790 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) .debug_frame 0x00003a80 0xa0 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_info 0x00000000 0x10013 +.debug_info 0x00000000 0x1000e .debug_info 0x00000000 0x35cb THUMB Debug/../../obj/mmc.o .debug_info 0x000035cb 0x61d THUMB Debug/../../obj/system_stm32f4xx.o .debug_info 0x00003be8 0x8a0 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3341,22 +3341,22 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_info 0x00007e40 0x1dd THUMB Debug/../../obj/cpu.o .debug_info 0x0000801d 0xa0b THUMB Debug/../../obj/flash.o .debug_info 0x00008a28 0x252 THUMB Debug/../../obj/nvm.o - .debug_info 0x00008c7a 0x1a0 THUMB Debug/../../obj/timer.o - .debug_info 0x00008e1a 0x65e THUMB Debug/../../obj/uart.o - .debug_info 0x00009478 0x10a THUMB Debug/../../obj/assert.o - .debug_info 0x00009582 0x15f THUMB Debug/../../obj/backdoor.o - .debug_info 0x000096e1 0x177 THUMB Debug/../../obj/boot.o - .debug_info 0x00009858 0x2be THUMB Debug/../../obj/com.o - .debug_info 0x00009b16 0x9a THUMB Debug/../../obj/cop.o - .debug_info 0x00009bb0 0x834 THUMB Debug/../../obj/xcp.o - .debug_info 0x0000a3e4 0x3562 THUMB Debug/../../obj/ff.o - .debug_info 0x0000d946 0x169 THUMB Debug/../../obj/unicode.o - .debug_info 0x0000daaf 0x122d THUMB Debug/../../obj/file.o - .debug_info 0x0000ecdc 0xd02 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_info 0x0000f9de 0x55f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_info 0x0000ff3d 0xd6 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_info 0x00008c7a 0x195 THUMB Debug/../../obj/timer.o + .debug_info 0x00008e0f 0x65e THUMB Debug/../../obj/uart.o + .debug_info 0x0000946d 0x10a THUMB Debug/../../obj/assert.o + .debug_info 0x00009577 0x15f THUMB Debug/../../obj/backdoor.o + .debug_info 0x000096d6 0x177 THUMB Debug/../../obj/boot.o + .debug_info 0x0000984d 0x2be THUMB Debug/../../obj/com.o + .debug_info 0x00009b0b 0x9a THUMB Debug/../../obj/cop.o + .debug_info 0x00009ba5 0x83a THUMB Debug/../../obj/xcp.o + .debug_info 0x0000a3df 0x3562 THUMB Debug/../../obj/ff.o + .debug_info 0x0000d941 0x169 THUMB Debug/../../obj/unicode.o + .debug_info 0x0000daaa 0x122d THUMB Debug/../../obj/file.o + .debug_info 0x0000ecd7 0xd02 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_info 0x0000f9d9 0x55f C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_info 0x0000ff38 0xd6 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_abbrev 0x00000000 0x27f4 +.debug_abbrev 0x00000000 0x27d4 .debug_abbrev 0x00000000 0x370 THUMB Debug/../../obj/mmc.o .debug_abbrev 0x00000370 0x158 THUMB Debug/../../obj/system_stm32f4xx.o .debug_abbrev 0x000004c8 0x1a9 THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3378,15 +3378,15 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_abbrev 0x00001c03 0x62 THUMB Debug/../../obj/boot.o .debug_abbrev 0x00001c65 0x172 THUMB Debug/../../obj/com.o .debug_abbrev 0x00001dd7 0x44 THUMB Debug/../../obj/cop.o - .debug_abbrev 0x00001e1b 0x26d THUMB Debug/../../obj/xcp.o - .debug_abbrev 0x00002088 0x337 THUMB Debug/../../obj/ff.o - .debug_abbrev 0x000023bf 0xa8 THUMB Debug/../../obj/unicode.o - .debug_abbrev 0x00002467 0x25c THUMB Debug/../../obj/file.o - .debug_abbrev 0x000026c3 0xcb C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_abbrev 0x0000278e 0x3e C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_abbrev 0x000027cc 0x28 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_abbrev 0x00001e1b 0x24d THUMB Debug/../../obj/xcp.o + .debug_abbrev 0x00002068 0x337 THUMB Debug/../../obj/ff.o + .debug_abbrev 0x0000239f 0xa8 THUMB Debug/../../obj/unicode.o + .debug_abbrev 0x00002447 0x25c THUMB Debug/../../obj/file.o + .debug_abbrev 0x000026a3 0xcb C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_abbrev 0x0000276e 0x3e C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_abbrev 0x000027ac 0x28 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_loc 0x00000000 0xeb1a +.debug_loc 0x00000000 0xeb2d .debug_loc 0x00000000 0x2289 THUMB Debug/../../obj/mmc.o .debug_loc 0x00002289 0x1a7 THUMB Debug/../../obj/system_stm32f4xx.o .debug_loc 0x00002430 0x83a THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3398,20 +3398,20 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_loc 0x00004d2d 0x2c THUMB Debug/../../obj/main.o .debug_loc 0x00004d59 0x20 THUMB Debug/../../obj/vectors.o .debug_loc 0x00004d79 0x172 THUMB Debug/../../obj/cpu.o - .debug_loc 0x00004eeb 0x8da THUMB Debug/../../obj/flash.o - .debug_loc 0x000057c5 0x145 THUMB Debug/../../obj/nvm.o - .debug_loc 0x0000590a 0x40 THUMB Debug/../../obj/timer.o - .debug_loc 0x0000594a 0x168 THUMB Debug/../../obj/uart.o - .debug_loc 0x00005ab2 0x71 THUMB Debug/../../obj/assert.o - .debug_loc 0x00005b23 0x40 THUMB Debug/../../obj/backdoor.o - .debug_loc 0x00005b63 0x40 THUMB Debug/../../obj/boot.o - .debug_loc 0x00005ba3 0xce THUMB Debug/../../obj/com.o - .debug_loc 0x00005c71 0x248 THUMB Debug/../../obj/xcp.o - .debug_loc 0x00005eb9 0x68fe THUMB Debug/../../obj/ff.o - .debug_loc 0x0000c7b7 0x179 THUMB Debug/../../obj/unicode.o - .debug_loc 0x0000c930 0x964 THUMB Debug/../../obj/file.o - .debug_loc 0x0000d294 0x1092 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_loc 0x0000e326 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_loc 0x00004eeb 0x8ed THUMB Debug/../../obj/flash.o + .debug_loc 0x000057d8 0x145 THUMB Debug/../../obj/nvm.o + .debug_loc 0x0000591d 0x40 THUMB Debug/../../obj/timer.o + .debug_loc 0x0000595d 0x168 THUMB Debug/../../obj/uart.o + .debug_loc 0x00005ac5 0x71 THUMB Debug/../../obj/assert.o + .debug_loc 0x00005b36 0x40 THUMB Debug/../../obj/backdoor.o + .debug_loc 0x00005b76 0x40 THUMB Debug/../../obj/boot.o + .debug_loc 0x00005bb6 0xce THUMB Debug/../../obj/com.o + .debug_loc 0x00005c84 0x248 THUMB Debug/../../obj/xcp.o + .debug_loc 0x00005ecc 0x68fe THUMB Debug/../../obj/ff.o + .debug_loc 0x0000c7ca 0x179 THUMB Debug/../../obj/unicode.o + .debug_loc 0x0000c943 0x964 THUMB Debug/../../obj/file.o + .debug_loc 0x0000d2a7 0x1092 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_loc 0x0000e339 0x7f4 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) .debug_aranges 0x00000000 0x1360 .debug_aranges @@ -3500,7 +3500,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_ranges 0x00001210 0x208 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) .debug_ranges 0x00001418 0x50 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) -.debug_line 0x00000000 0x5e04 +.debug_line 0x00000000 0x5e02 .debug_line 0x00000000 0xb4f THUMB Debug/../../obj/mmc.o .debug_line 0x00000b4f 0x21c THUMB Debug/../../obj/system_stm32f4xx.o .debug_line 0x00000d6b 0x49f THUMB Debug/../../obj/stm32f4xx_flash.o @@ -3513,22 +3513,22 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_line 0x0000296e 0x17f THUMB Debug/../../obj/cstart.o .debug_line 0x00002aed 0x10a THUMB Debug/../../obj/vectors.o .debug_line 0x00002bf7 0x150 THUMB Debug/../../obj/cpu.o - .debug_line 0x00002d47 0x395 THUMB Debug/../../obj/flash.o - .debug_line 0x000030dc 0x137 THUMB Debug/../../obj/nvm.o - .debug_line 0x00003213 0x1a3 THUMB Debug/../../obj/timer.o - .debug_line 0x000033b6 0x2f8 THUMB Debug/../../obj/uart.o - .debug_line 0x000036ae 0xdf THUMB Debug/../../obj/assert.o - .debug_line 0x0000378d 0x117 THUMB Debug/../../obj/backdoor.o - .debug_line 0x000038a4 0x11b THUMB Debug/../../obj/boot.o - .debug_line 0x000039bf 0x163 THUMB Debug/../../obj/com.o - .debug_line 0x00003b22 0xaf THUMB Debug/../../obj/cop.o - .debug_line 0x00003bd1 0x1fd THUMB Debug/../../obj/xcp.o - .debug_line 0x00003dce 0xfb9 THUMB Debug/../../obj/ff.o - .debug_line 0x00004d87 0x185 THUMB Debug/../../obj/unicode.o - .debug_line 0x00004f0c 0x381 THUMB Debug/../../obj/file.o - .debug_line 0x0000528d 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) - .debug_line 0x00005840 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) - .debug_line 0x00005d90 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) + .debug_line 0x00002d47 0x391 THUMB Debug/../../obj/flash.o + .debug_line 0x000030d8 0x137 THUMB Debug/../../obj/nvm.o + .debug_line 0x0000320f 0x1a3 THUMB Debug/../../obj/timer.o + .debug_line 0x000033b2 0x2f8 THUMB Debug/../../obj/uart.o + .debug_line 0x000036aa 0xdf THUMB Debug/../../obj/assert.o + .debug_line 0x00003789 0x117 THUMB Debug/../../obj/backdoor.o + .debug_line 0x000038a0 0x11b THUMB Debug/../../obj/boot.o + .debug_line 0x000039bb 0x165 THUMB Debug/../../obj/com.o + .debug_line 0x00003b20 0xaf THUMB Debug/../../obj/cop.o + .debug_line 0x00003bcf 0x1fd THUMB Debug/../../obj/xcp.o + .debug_line 0x00003dcc 0xfb9 THUMB Debug/../../obj/ff.o + .debug_line 0x00004d85 0x185 THUMB Debug/../../obj/unicode.o + .debug_line 0x00004f0a 0x381 THUMB Debug/../../obj/file.o + .debug_line 0x0000528b 0x5b3 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7em_t_le_eabi.a(libc2.o) + .debug_line 0x0000583e 0x550 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libdebugio_v7em_t_le_eabi.a(libdebugio.o) + .debug_line 0x00005d8e 0x74 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_user_libc_v7em_t_le_eabi.a(user_libc.o) .debug_str 0x00000000 0x4a49 .debug_str 0x00000000 0x1460 THUMB Debug/../../obj/mmc.o @@ -3558,7 +3558,7 @@ OUTPUT(C:/Work/software/OpenBLT/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossw .debug_str 0x00003130 0x9f THUMB Debug/../../obj/nvm.o 0x240 (size before relaxing) .debug_str 0x000031cf 0xca THUMB Debug/../../obj/timer.o - 0x240 (size before relaxing) + 0x235 (size before relaxing) .debug_str 0x00003299 0x11e THUMB Debug/../../obj/uart.o 0x421 (size before relaxing) .debug_str 0x000033b7 0x9b THUMB Debug/../../obj/assert.o diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec index 7e786ad6..4ca15ada 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1,5 +1,5 @@ S02B0000433A2F576F726B2F736F6674776172652F4F70656E424C542F5461726765742F44656D6F2F41524DEF -S315080000003C20002017020008D1220008D12200084F +S315080000004020002017020008D1220008D12200084B S31508000010D1220008D1220008D1220008D1220008E6 S31508000020D1220008D1220008D1220008D1220008D6 S31508000030D1220008D1220008D1220008D1220008C6 @@ -32,7 +32,7 @@ S315080001C869F84F484F49504A00F064F84F48504973 S315080001D8002200F06AF84F484F49091A082903DB34 S315080001E8002202600430016040484149884205D02F S315080001F80268043003B4904703BCF7E70020864634 -S31508000208EC4602F011FE00200021444A904772B6D7 +S31508000208EC4602F009FE00200021444A904772B6DF S315080002182B49072291438D462A482B492B4A00F039 S3150800022839F82B482B492C4A00F034F82B482C4926 S315080002382C4A00F02FF82C482C492D4A00F02AF8A9 @@ -44,12 +44,12 @@ S3150800028803BCF7E700208646EC4600200021234AEF S315080002989047FEE7884207D0521A05D003780130FE S315080002A80B700131013AF9D17047884202D00270C1 S315080002B80130FAE77047000008ED00E00000000882 -S315080002C83C200020E46F00080000002018000020E9 -S315080002D8280300082803000878660008E46F000861 -S315080002E800000020000000207866000878660008EC -S315080002F87866000878660008786600087866000850 -S315080003087866000878660008E46F00081800002078 -S315080003183C1000203C1000203C180020452200080C +S315080002C840200020D46F00080000002018000020F5 +S315080002D8280300082803000868660008D46F000881 +S315080002E8000000200000002068660008686600080C +S315080002F86866000868660008686600086866000890 +S315080003086866000868660008D46F000818000020A8 +S315080003184010002040100020401800204522000800 S3150800032808B54FF43053C4F20103586B10F0450F63 S3150800033807D14FF43052C4F20102506B10F0450F42 S31508000348FBD010F0040F06D04FF0040001F01EFE93 @@ -376,13 +376,13 @@ S3150800174840F20402C2F20002107808BD2DE9B0433F S31508001758ADF5027D88461746C8B120E04FF0000966 S315080017684FF40075E219009502A84FEA42224B4643 S31508001778FFF71AFDB0B9FFF7A3FF0128FBD008EB5E -S31508001788442002A92A4604F02DFF8CB90DE003F17E +S31508001788442002A92A4604F025FF8CB90DE003F186 S31508001798FF34E4B2002BE1D14FF001000CE04FF022 S315080017A8010009E04FF0010006E04FF0000003E0F1 S315080017B804F1FF30C4B2D5E70DF5027DBDE8B08364 S315080017C82DE9F043ADF5037D0F469046E8B124E0D0 S315080017D84FF400754FF0000902A807EB44212A4682 -S315080017E804F000FF04EB0802009502A84FEA42221B +S315080017E804F0F8FE04EB0802009502A84FEA422224 S315080017F84B46FFF7F3FD064608B1052810D1FFF753 S315080018085FFF0128FBD08CB90DE003F1FF34E4B281 S31508001818002BDDD14FF001000CE04FF0010009E084 @@ -527,24 +527,24 @@ S315080020B823F400514FEA01424FEA124383817047DD S315080020C84FEAC1514FEAD1528280704780884FEA59 S315080020D8C0514FEAD1507047038819420CBF0020F7 S315080020E80120704700B589B04FF0000300930193AB -S315080020F802930393049305930693079346F278602D -S31508002108C0F60000694603F0C7FC40B9009848B114 +S315080020F802930393049305930693079346F268603D +S31508002108C0F60000694603F0BFFC40B9009848B11C S315080021189DF8081081F01002C2F3001004E04FF091 -S31508002128000001E04FF0000009B000BD46F27860F3 +S31508002128000001E04FF0000009B000BD46F2686003 S31508002138C0F60000704700BF08B540F2E800C2F2D2 -S3150800214800004FF0000380F8243246F29861C0F682 -S3150800215800014FF00A0203F0A3F838B940F2E80084 +S3150800214800004FF0000380F8243246F28861C0F692 +S3150800215800014FF00A0203F09BF838B940F2E8008C S31508002168C2F200004FF0010280F8242208BD00BF21 S3150800217838B540F2E803C2F2000393F824020128AE -S3150800218805D140F2E800C2F2000003F09BFB4FF4C9 +S3150800218805D140F2E800C2F2000003F093FB4FF4D1 S31508002198A054C4F201044FF0400520462946FFF72B -S315080021A89BFF0028F9D046F27860C0F6000003F0D5 -S315080021B89BFC38BD08B540F2E803C2F2000393F861 +S315080021A89BFF0028F9D046F26860C0F6000003F0E5 +S315080021B893FC38BD08B540F2E803C2F2000393F869 S315080021C82402012805D140F2E800C2F2000003F013 -S315080021D879FB08BD70B5064640F2E803C2F200036B +S315080021D871FB08BD70B5064640F2E803C2F2000373 S315080021E893F82402012812D1304640F2E801C2F2D7 -S315080021F8000103F02FFD002809DA40F2E800C2F2D0 -S3150800220800004FF0000180F8241203F05BFB3178D8 +S315080021F8000103F027FD002809DA40F2E800C2F2D8 +S3150800220800004FF0000180F8241203F053FB3178E0 S3150800221891B14FF4A054C4F201044FF0800520464A S31508002228FFF74EFF20462946FFF756FF0028F9D044 S3150800223816F8011F0029F2D170BD00BF00B583B09A @@ -556,47 +556,47 @@ S315080022882BFD4FF000038DF806304FF001008DF84E S3150800229807004FF002058DF804504FF040010091F1 S315080022A88DF8055020466946FFF760FC8DF80450FE S315080022B84FF08002009220466946FFF757FC00F067 -S315080022C865FD00F071FDFCE708B546F2A860C0F6A2 -S315080022D800004FF03C0100F011FD08BD08B500F0FC -S315080022E899FB80B100F096FD00F0A2FB4EF6085364 +S315080022C85DFD00F069FDFCE708B546F29860C0F6C2 +S315080022D800004FF03D0100F009FD08BD08B500F003 +S315080022E891FB80B100F08EFD00F09AFB4EF608537C S315080022F8CEF200034FF400421A6048F20400C0F612 S3150800230800000168884708BDF8B5044602F1FF379A S31508002318BFB2F2B100F10103DF190E1A6FEA000025 -S31508002328391801F00105A25D04F8012B00F08AFDB1 +S31508002328391801F00105A25D04F8012B00F082FDB9 S31508002338BC420FD1F8BDA05D254605F8010B00F093 -S3150800234881FDA95D617005F1010400F07BFDBC42C1 +S3150800234879FDA95D617005F1010400F073FDBC42D1 S31508002358F1D1F8BD002DEED0A35D04F8013B00F0DD -S3150800236871FDBC42E7D1F8BD08B5FDF750FF08BDB9 -S3150800237810B5044600F066FD47F6FF73C0F600037D +S3150800236869FDBC42E7D1F8BD08B5FDF750FF08BDC1 +S3150800237810B5044600F05EFD47F6FF73C0F6000385 S315080023889C4205D94BF6FF70C0F6000084427DD9F9 -S3150800239800F058FD4BF6FF71C0F600018C4205D9CE -S315080023A84FF6FF72C0F60002944272D900F04AFD51 +S3150800239800F050FD4BF6FF71C0F600018C4205D9D6 +S315080023A84FF6FF72C0F60002944272D900F042FD59 S315080023B84FF6FF73C0F600039C4205D94FF6FF7027 -S315080023C8C0F60100844267D900F03CFD4FF6FF715C +S315080023C8C0F60100844267D900F034FD4FF6FF7164 S315080023D8C0F601018C4205D94FF6FF72C0F6030212 -S315080023E894425CD900F02EFD4FF6FF73C0F603033E +S315080023E894425CD900F026FD4FF6FF73C0F6030346 S315080023F89C4205D94FF6FF70C0F60500844251D9AC -S3150800240800F020FD4FF6FF71C0F605018C4205D98C -S315080024184FF6FF72C0F60702944246D900F012FD3D +S3150800240800F018FD4FF6FF71C0F605018C4205D994 +S315080024184FF6FF72C0F60702944246D900F00AFD45 S315080024284FF6FF73C0F607039C4205D94FF6FF70AF -S31508002438C0F6090084423BD900F004FD4FF6FF7147 +S31508002438C0F6090084423BD900F0FCFC4FF6FF7150 S31508002448C0F609018C4205D94FF6FF72C0F60B0291 -S31508002458944230D900F0F6FC4FF6FF73C0F60B032A +S31508002458944230D900F0EEFC4FF6FF73C0F60B0332 S315080024689C4205D94FF6FF70C0F60D00844225D95F -S3150800247800F0E8FC4FF6FF71C0F60D018C4229D929 +S3150800247800F0E0FC4FF6FF71C0F60D018C4229D931 S31508002488B4F1016F38BF09211AD326E04FF00001CD S3150800249816E04FF0010113E04FF0020110E04FF08B S315080024A803010DE04FF004010AE04FF0050107E0CB S315080024B84FF0060104E04FF0070101E04FF008016C -S315080024C801EB410346F26472C0F6000202EB830090 +S315080024C801EB410346F25472C0F6000202EB8300A0 S315080024D8007A10BD4FF0FF0010BD4FF0FF0010BD89 S315080024E82DE9F04105460068FFF742FFFF283BD073 S315080024F8FFF776FA4FF0F300FFF792FAFFF796FA26 S31508002508012818BF002404D1FFF780FA4FF0000409 -S315080025182CE02F6804EB07082B195E6800F092FC7C +S315080025182CE02F6804EB07082B195E6800F08AFC84 S3150800252840463146FFF7CAFA082815D1E059B0429D S3150800253815D104F104042F6804EB07082A1956680C -S3150800254800F080FC40463146FFF7B8FA082810D054 +S3150800254800F078FC40463146FFF7B8FA082810D05C S3150800255802E04FF0010404E04FF0000401E04FF0F8 S315080025680004FFF753FA01E04FF000042046BDE8DF S31508002578F081E359B342F2D104F10404B4F5007FBB @@ -608,1188 +608,1187 @@ S315080025C8000398420AD04FF40040C0F60000814242 S315080025D809D02046FFF784FF48B911E040F21454A1 S315080025E8C2F2000403E040F21034C2F200042046A6 S315080025F82946FFF7C7FF002814BF2046002038BD24 -S315080026084FF0000038BD00BF2DE9F04704460E46D6 -S3150800261815461F464FEA51294FEA49290268B2F179 -S31508002628FF3F04D14946FFF7ADFF002847D0236886 -S315080026384B4506D020464946FFF7BCFF0446002806 -S3150800264841D02068361AA61906F1040607F1FF389C -S315080026581FFA88F101F1010705EB070840F2FF1791 -S3150800266809F500796FEA050A08EB0A0202F0010A79 -S3150800267800F0E8FB04F10403F01AB84234D92AE05A -S3150800268800F0E0FB04F10401721ABA4207D92046A1 -S315080026984946FFF78FFF0446C8B100F1040615F846 -S315080026A8013B06F8013B00F0CDFB04F10400311AA2 -S315080026B8B94242D938E04FF00100BDE8F0874FF03B -S315080026C80000BDE8F0874FF00000BDE8F0874FF03E -S315080026D80000BDE8F08720464946FFF76BFF044629 -S315080026E80028F4D000F1040615F8011B06F8011BAA -S315080026F84545E0D0BAF1000FC2D000F0A3FB04F1BB -S315080027080402B31ABB4208D920464946FFF752FFC6 -S3150800271804460028DBD000F1040615F8010B06F874 -S31508002728010B4545ACD1C6E720464946FFF742FFA7 -S3150800273804460028CBD000F1040615F8012B06F844 -S31508002748012B45459CD1B6E74FF0FF3340F21452AA -S31508002758C2F20002136040F21030C2F200000360B1 -S31508002768704700BF70B504460D461646FFF700FECB -S31508002778FF2823D004F1FF304019FFF7F9FDFF2899 -S315080027881FD04FEA54224FF40043C0F60003B3EBB8 -S31508002798422F09D140F21030C2F2000021463246D3 -S315080027A8ABB2FFF731FF70BD40F21450C2F2000019 -S315080027B821463246ABB2FFF727FF70BD4FF000003F -S315080027C870BD4FF0000070BD2DE9F04106460C4675 -S315080027D8FFF7CEFD054606F1FF300019FFF7C8FDDD -S315080027E80446FF2D59D0FF285BD0854249D8012DCC -S315080027F84BD90B284DD8FFF7F3F84FF0F300FFF73E -S315080028080FF9FFF713F9012805D1FFF7FFF84FF07D -S315080028180000BDE8F08146F23476C0F600064FF0AF -S315080028280207631B03F0010800F00CFB36F81500D5 -S315080028383946FFF763F9082837D008E000F002FBA5 -S3150800284836F815003946FFF759F9082805D0FFF76D -S31508002858DDF84FF00000BDE8F08105F1010505F047 -S31508002868FF0500F0EFFA36F815003946FFF746F97E -S31508002878082832D0EBE7FFF7C9F84FF00100BDE8A2 +S315080026084FF0000038BD00BF2DE9F04704460D46D7 +S3150800261816461F464FEA51294FEA49290368B3F176 +S31508002628FF3F04D14946FFF7ADFF00283FD0206891 +S31508002638484506D020464946FFF7BCFF0446002809 +S3150800264839D021686D1A651905F1040540F2FF1895 +S3150800265809F5007907F1FF3A0AF0010A00F0EAFBE2 +S3150800266804F10402AB1A434536D92CE000F0E2FB24 +S3150800267804F10400291A414507D920464946FFF7B7 +S3150800268899FF0446D8B100F1040516F8012B05F898 +S31508002698012B07F1FF3700F0CDFB04F10403E81A14 +S315080026A8404542D938E04FF00100BDE8F0874FF0C1 +S315080026B80000BDE8F0874FF00000BDE8F0874FF04E +S315080026C80000BDE8F08720464946FFF773FF044631 +S315080026D80028F4D000F1040516F8010B05F8010BDB +S315080026E8013FE0D0BAF1000FC0D000F0A3FB04F117 +S315080026F804016A1A424508D920464946FFF75AFF8F +S3150800270804460028DBD000F1040516F8013B05F855 +S31508002718013B013FAAD1C6E720464946FFF74AFFCB +S3150800272804460028CBD000F1040516F8011B05F865 +S31508002738011B013F9AD1B6E74FF0FF3340F2145216 +S31508002748C2F20002136040F21030C2F200000360C1 +S31508002758704700BF70B504460D461646FFF708FED3 +S31508002768FF2823D004F1FF304019FFF701FEFF28A0 +S315080027781FD04FEA54224FF40043C0F60003B3EBC8 +S31508002788422F09D140F21030C2F2000021463246E3 +S315080027982B46FFF739FF70BD40F21450C2F200000D +S315080027A8214632462B46FFF72FFF70BD4FF0000033 +S315080027B870BD4FF0000070BD2DE9F04106460C4685 +S315080027C8FFF7D6FD054606F1FF300019FFF7D0FDDD +S315080027D80446FF2D59D0FF285BD0854249D8012DDC +S315080027E84BD90B284DD8FFF7FBF84FF0F300FFF746 +S315080027F817F9FFF71BF9012805D1FFF707F94FF075 +S315080028080000BDE8F08146F22476C0F600064FF0CF +S315080028180207631B03F0010800F00CFB36F81500E5 +S315080028283946FFF76BF9082837D008E000F002FBAD +S3150800283836F815003946FFF761F9082805D0FFF775 +S31508002848E5F84FF00000BDE8F08105F1010505F04F +S31508002858FF0500F0EFFA36F815003946FFF74EF986 +S31508002868082832D0EBE7FFF7D1F84FF00100BDE8AA +S31508002878F0814FF00000BDE8F0814FF00000BDE898 S31508002888F0814FF00000BDE8F0814FF00000BDE888 -S31508002898F0814FF00000BDE8F0814FF00000BDE878 -S315080028A8F0814FF00000BDE8F08105F10105EDB2B1 -S315080028B8AC42E0D34FFA88F10029BFD000F0C2FA3B -S315080028C836F815003946FFF719F90828BFD105F172 -S315080028D80105EDB2AC42B1D2CDE705F10105EDB27D -S315080028E8AC42ABD2C7E700BF00B583B040F210339D -S315080028F8C2F200031868B0F1FF3F1ED040F2103349 -S31508002908C2F2000399685A688818D96840181A697B -S315080029188118586909189A698818DB69C118C1F1B4 -S31508002928000002AA42F8040D48F28810C0F6000012 -S315080029384FF00401FFF716FF01E04FF0010003B05E -S3150800294800BD00BF48F20402C0F600024FF4004377 -S31508002958C0F6000310681968421848F20803C0F65A -S3150800296800031868111848F20C02C0F6000213682A -S31508002978C81848F21001C0F600010A68801848F21B -S315080029881403C0F600031968421848F21800C0F67E -S3150800299800000368D11848F28812C0F600021068C9 -S315080029A80B18D3F1010038BF0020704708B540F26C -S315080029B81033C2F200031868B0F1FF3F06D040F2A0 -S315080029C81030C2F20000FFF78BFD88B140F21451AF -S315080029D8C2F200010A68B2F1FF3F0CD040F2145067 -S315080029E8C2F20000FFF77CFD003018BF012008BDC1 -S315080029F84FF0000008BD4FF0010008BD08B5FFF705 -S31508002A08A3FE08BD08B5FFF7ADFE08BD08B5FFF774 -S31508002A18DBFE08BD08B5FFF795FF08BD08B5FFF743 -S31508002A2863FF10B1FFF7C2FF08BD4FF0000008BDED -S31508002A384EF21003CEF200034FF000021A607047F8 -S31508002A4808B5FFF7F5FF4EF21003CEF2000349F278 -S31508002A583F02C0F202025A604FF0000098604FF039 -S31508002A680501196040F21873C2F20003188008BD00 -S31508002A784EF21003CEF20003186810F4803F07D010 -S31508002A8840F21871C2F200010A8802F101020A80AE -S31508002A98704700BF08B5FFF7EBFF40F21873C2F29C -S31508002AA80003188808BD00BF10B504464FF4A050A7 -S31508002AB8C4F201004FF02001FFF70EFB012809D1E7 -S31508002AC84FF4A050C4F20100FFF700FB20704FF046 -S31508002AD8010010BD4FF0000010BD00BF38B5044610 -S31508002AE84FF4A050C4F201004FF08001FFF7F4FA42 -S31508002AF8A8B14FF4A050C4F201002146FFF7E0FA46 -S31508002B084FF4A054C4F201044FF080052046294624 -S31508002B18FFF7E2FA0028F9D04FF0010038BD4FF068 -S31508002B28000038BD10B584B04FF4614300934FF0E8 -S31508002B380000ADF80400ADF80600ADF80800ADF8D9 -S31508002B480C004FF00C01ADF80A104FF4A054C4F26B -S31508002B58010420466946FFF71FFA20464FF001018F -S31508002B68FFF79EFA04B010BD2DE9F84305460C4652 -S31508002B78402907D946F2DC70C0F600004FF071010B -S31508002B8800F0BCF82046FFF7A9FF012807D046F24F -S31508002B98DC70C0F600004FF0740100F0AFF8264666 -S31508002BA844B346F2DC77C0F600074FF07C084FF0CE -S31508002BB8000406F1FF3303F0010900F043F9285D24 -S31508002BC8FFF78CFF012817D11AE000F03BF9285DBA -S31508002BD8FFF784FF012803D03846414600F08EF8EF -S31508002BE804F1010400F02EF9285DFFF777FF0128A4 -S31508002BF820D123E0BDE8F8833846414600F07EF840 -S31508002C0804F10104012EF5D90FFA89F00028DCD061 -S31508002C1800F018F9285DFFF761FF012803D0384648 -S31508002C28414600F06BF804F10104A1B2B142CCD3D5 -S31508002C38BDE8F8833846414600F060F804F1010417 -S31508002C48A2B2B242C1D3BDE8F88300BF10B50446A4 -S31508002C5840F21A73C2F200031878B0B940F21C7031 -S31508002C68C2F20000FFF720FF01283CD140F21A7390 -S31508002C78C2F200034FF0010018704FF0000040F24E -S31508002C886071C2F20001087010BD40F26071C2F2AC -S31508002C9800010A7802F1010240F21C73C2F200032D -S31508002CA89818FFF701FF012820D140F26070C2F298 -S31508002CB80000017801F10101CAB2027040F21C73E2 -S31508002CC8C2F200031878904213D120460A49FFF742 -S31508002CD81BFB40F21A71C2F200014FF000020A709B -S31508002CE84FF0010010BD4FF0000010BD4FF0000076 -S31508002CF810BD4FF0000010BD1D07002008B540F2B2 -S31508002D086473C2F20003186040F26870C2F20000E9 -S31508002D18016000F097F8FCE708B500F08DF801287F -S31508002D2820D003F0CDF9E8B140F26C73C2F2000383 -S31508002D381878012816D1FFF7ADFE40F27071C2F275 -S31508002D4800010A6802F1320290420BD340F26C7312 -S31508002D58C2F200034FF00000187003F0BBF908B977 -S31508002D68FFF7BCFA08BD00BF08B540F26C73C2F29B -S31508002D7800034FF001021A70FFF78CFE40F27071DB -S31508002D88C2F200010860FFF7C7FF08BD08B500F0E2 -S31508002D9857F8FFF755FEFFF731FE03F079F900F00B -S31508002DA80FF8FFF7E1FF08BD08B500F04BF8FFF785 -S31508002DB85FFE03F0ADF900F01DF8FFF7ADFF08BD9B -S31508002DC800B583B04FF0FF038DF804304FF00000CC -S31508002DD88DF8050000F04EF8FFF7A4FE40F274716E -S31508002DE8C2F200010A78012A02D101A800F066F8A1 -S31508002DF803B000BD08B540F27870C2F20000FFF7CC -S31508002E0825FF012805D140F27870C2F2000000F0CB -S31508002E1855F808BD704700BF08B5C9B2FFF7A4FE44 -S31508002E2800F042F808BD00BF40F27473C2F200030E -S31508002E384FF001021A70704708B500F02BF808BD64 -S31508002E48704700BF704700BF40F2B873C2F200036C -S31508002E584FF000025A70704740F2B873C2F2000386 -S31508002E684FF0FE02DA7018714FF00200A3F844001A -S31508002E78704700BF40F2B873C2F200034FF0000271 -S31508002E881A709A6483F84320A3F844209A705A70F3 -S31508002E98704700BF40F2B873C2F2000318780030D2 -S31508002EA818BF0120704700BF40F2B873C2F200038A -S31508002EB84FF0000283F84320704700BF38B5044630 -S31508002EC80378FF2B25D103F0FBF820B94FF0100043 -S31508002ED8FFF7C2FFC7E1FFF7B7FF40F2B873C2F2C0 -S31508002EE800034FF001021A704FF0FF00D8704FF038 -S31508002EF8100119714FF0000159714FF0400098718F -S31508002F08D87119725A729A724FF00802A3F84420B7 -S31508002F18A9E140F2B872C2F200021078012840F01E -S31508002F28BC81A3F1C903352B00F29981DFE813F0B8 -S31508002F38FD009701970192019701970184011E01E7 -S31508002F486A0154019701970197019701970197011B +S31508002898F0814FF00000BDE8F08105F10105EDB2C1 +S315080028A8AC42E0D34FFA88F10029BFD000F0C2FA4B +S315080028B836F815003946FFF721F90828BFD105F17A +S315080028C80105EDB2AC42B1D2CDE705F10105EDB28D +S315080028D8AC42ABD2C7E700BF00B583B040F21033AD +S315080028E8C2F200031868B0F1FF3F1ED040F2103359 +S315080028F8C2F2000399685A688818D96840181A698C +S315080029088118586909189A698818DB69C118C1F1C4 +S31508002918000002AA42F8040D48F28810C0F6000022 +S315080029284FF00401FFF716FF01E04FF0010003B06E +S3150800293800BD00BF48F20402C0F600024FF4004387 +S31508002948C0F6000310681968421848F20803C0F66A +S3150800295800031868111848F20C02C0F6000213683A +S31508002968C81848F21001C0F600010A68801848F22B +S315080029781403C0F600031968421848F21800C0F68E +S3150800298800000368D11848F28812C0F600021068D9 +S315080029980B18D3F1010038BF0020704708B540F27C +S315080029A81033C2F200031868B0F1FF3F06D040F2B0 +S315080029B81030C2F20000FFF793FD88B140F21451B7 +S315080029C8C2F200010A68B2F1FF3F0CD040F2145077 +S315080029D8C2F20000FFF784FD003018BF012008BDC9 +S315080029E84FF0000008BD4FF0010008BD08B5FFF715 +S315080029F8A3FE08BD08B5FFF7ADFE08BD08B5FFF785 +S31508002A08DBFE08BD08B5FFF795FF08BD08B5FFF753 +S31508002A1863FF10B1FFF7C2FF08BD4FF0000008BDFD +S31508002A284EF21003CEF200034FF000021A60704708 +S31508002A3808B5FFF7F5FF4EF21003CEF2000349F288 +S31508002A483F02C0F202025A604FF0000098604FF049 +S31508002A580501196040F21873C2F20003186008BD30 +S31508002A684EF21003CEF20003186810F4803F07D020 +S31508002A7840F21871C2F200010A6802F101020A60FE +S31508002A88704700BF08B5FFF7EBFF40F21873C2F2AC +S31508002A980003186808BD00BF10B504464FF4A050D7 +S31508002AA8C4F201004FF02001FFF716FB012809D1EF +S31508002AB84FF4A050C4F20100FFF708FB20704FF04E +S31508002AC8010010BD4FF0000010BD00BF38B5044620 +S31508002AD84FF4A050C4F201004FF08001FFF7FCFA4A +S31508002AE8A8B14FF4A050C4F201002146FFF7E8FA4E +S31508002AF84FF4A054C4F201044FF080052046294635 +S31508002B08FFF7EAFA0028F9D04FF0010038BD4FF070 +S31508002B18000038BD10B584B04FF4614300934FF0F8 +S31508002B280000ADF80400ADF80600ADF80800ADF8E9 +S31508002B380C004FF00C01ADF80A104FF4A054C4F27B +S31508002B48010420466946FFF727FA20464FF0010197 +S31508002B58FFF7A6FA04B010BD2DE9F84305460C465A +S31508002B68402907D946F2CC70C0F600004FF0760126 +S31508002B7800F0BCF82046FFF7A9FF012807D046F25F +S31508002B88CC70C0F600004FF0790100F0AFF8264681 +S31508002B9844B346F2CC77C0F600074FF081084FF0E9 +S31508002BA8000406F1FF3303F0010900F043F9285D34 +S31508002BB8FFF78CFF012817D11AE000F03BF9285DCA +S31508002BC8FFF784FF012803D03846414600F08EF8FF +S31508002BD804F1010400F02EF9285DFFF777FF0128B4 +S31508002BE820D123E0BDE8F8833846414600F07EF850 +S31508002BF804F10104012EF5D90FFA89F00028DCD072 +S31508002C0800F018F9285DFFF761FF012803D0384658 +S31508002C18414600F06BF804F10104A1B2B142CCD3E5 +S31508002C28BDE8F8833846414600F060F804F1010427 +S31508002C38A2B2B242C1D3BDE8F88300BF10B50446B4 +S31508002C4840F21C73C2F200031878B0B940F220703B +S31508002C58C2F20000FFF720FF01283CD140F21C739E +S31508002C68C2F200034FF0010018704FF0000040F25E +S31508002C786471C2F20001087010BD40F26471C2F2B4 +S31508002C8800010A7802F1010240F22073C2F2000339 +S31508002C989818FFF701FF012820D140F26470C2F2A4 +S31508002CA80000017801F10101CAB2027040F22073EE +S31508002CB8C2F200031878904213D120460A49FFF752 +S31508002CC823FB40F21C71C2F200014FF000020A70A1 +S31508002CD84FF0010010BD4FF0000010BD4FF0000086 +S31508002CE810BD4FF0000010BD2107002008B540F2BE +S31508002CF86873C2F20003186040F26C70C2F20000F2 +S31508002D08016000F097F8FCE708B500F08DF801288F +S31508002D1820D003F0CDF9E8B140F27073C2F200038F +S31508002D281878012816D1FFF7ADFE40F27471C2F281 +S31508002D3800010A6802F1320290420BD340F270731E +S31508002D48C2F200034FF00000187003F0BBF908B987 +S31508002D58FFF7C4FA08BD00BF08B540F27073C2F29F +S31508002D6800034FF001021A70FFF78CFE40F27471E7 +S31508002D78C2F200010860FFF7C7FF08BD08B500F0F2 +S31508002D8857F8FFF755FEFFF731FE03F079F900F01B +S31508002D980FF8FFF7E1FF08BD08B500F04BF8FFF795 +S31508002DA85FFE03F0ADF900F01DF8FFF7ADFF08BDAB +S31508002DB800B583B04FF0FF038DF804304FF00000DC +S31508002DC88DF8050000F04EF8FFF7A4FE40F278717A +S31508002DD8C2F200010A78012A02D101A800F066F8B1 +S31508002DE803B000BD08B540F27C70C2F20000FFF7D8 +S31508002DF825FF012805D140F27C70C2F2000000F0D8 +S31508002E0855F808BD704700BF08B5C9B2FFF7A4FE54 +S31508002E1800F042F808BD00BF40F27873C2F200031A +S31508002E284FF001021A70704708B500F02BF808BD74 +S31508002E38704700BF704700BF40F2BC73C2F2000378 +S31508002E484FF000025A70704740F2BC73C2F2000392 +S31508002E584FF0FE02DA7018714FF00200A3F844002A +S31508002E68704700BF40F2BC73C2F200034FF000027D +S31508002E781A709A6483F84320A3F844209A705A7003 +S31508002E88704700BF40F2BC73C2F2000318780030DE +S31508002E9818BF0120704700BF40F2BC73C2F2000396 +S31508002EA84FF0000283F84320704700BF38B5044640 +S31508002EB80378FF2B25D103F0FBF820B94FF0100053 +S31508002EC8FFF7C2FFC7E1FFF7B7FF40F2BC73C2F2CC +S31508002ED800034FF001021A704FF0FF00D8704FF048 +S31508002EE8100119714FF0000159714FF0400098719F +S31508002EF8D87119725A729A724FF00802A3F84420C8 +S31508002F08A9E140F2BC72C2F200021078012840F02A +S31508002F18BC81A3F1C903352B00F29981DFE813F0C8 +S31508002F28FD009701970192019701970184011E01F7 +S31508002F386A0154019701970197019701970197012B +S31508002F4897019701970197019701970197019701AB S31508002F58970197019701970197019701970197019B S31508002F68970197019701970197019701970197018B -S31508002F78970197019701970197019701970197017B -S31508002F88970197018200540036007400970197014B -S31508002F989701B9009701D300D800EC0062783F2A58 -S31508002FA804D94FF02200FFF757FF5CE140F2B875E5 -S31508002FB8C2F2000505F10400A96CFFF7A5F94FF060 -S31508002FC8FF00E8706178AB6CCA18AA64607800F1EB -S31508002FD80100A5F8440046E161783F2904D94FF075 -S31508002FE82200FFF739FF3EE1616840F2B875C2F280 -S31508002FF80005A96405F104006278FFF785F94FF022 -S31508003008FF03EB706278A86C1118A964637803F15A -S315080030180103A5F8443026E140F2B870C2F2000070 -S315080030284FF0FF01C170636883644FF00102A0F88E -S31508003038442018E140F2B870C2F200004FF0FF02CF -S31508003048C270836C6468C4B1E4186FEA030108198E -S3150800305800F0010213F8011BA34240F01F810EE09D -S315080030681A4612F8010B09185B7853FA81F0C1B2AF -S3150800307802F10103A342F3D101E04FF0000140F247 -S31508003088B873C2F20003C3F807104FF001021A71A9 -S315080030984FF00001597199714FF00800A3F84400E0 -S315080030A8E1E040F2B870C2F200004FF0FF03C370C7 -S315080030B846F65C02C0F6000282644FF00001017110 -S315080030C8417181714FF00703C0F807304FF00802C5 -S315080030D8A0F84420C7E04FF00000FFF7BDFEC2E0A5 -S315080030E840F2B870C2F200004FF0FF01C1704FF00D -S315080030F800030371427842718371C37103724FF0FA -S315080031080601A0F84410AEE040F2B874C2F2000412 -S315080031184FF000012170FFF797FE4FF0FF03E370A9 -S315080031284FF00102A4F844209DE040F2B873C2F2B9 -S315080031380003986C4FF03F0104F10102FFF762FCA7 -S3150800314820B94FF03100FFF787FE8CE040F2B870DF -S31508003158C2F200004FF0FF01C170826C02F13F0213 -S3150800316882644FF00103A0F844307CE063783E2B74 -S3150800317804D94FF02200FFF76FFE74E040F2B870EA -S31508003188C2F200004FF0FF01C1704FF00102A0F82B -S315080031984420617841B9FFF741FC002863D14FF014 -S315080031A83100FFF759FE5EE040F2B873C2F2000339 -S315080031B8986C04F10202FFF725FC20B94FF031009C -S315080031C8FFF74AFE4FE040F2B870C2F20000617895 -S315080031D8826C8B18836446E040F2B873C2F2000327 -S315080031E84FF0FF02DA704FF00000187158714FF06F -S315080031F840019971D871187258724FF00702A3F8EE -S31508003208442030E040F2B873C2F20003986C616853 -S31508003218FFF7FCFB20B94FF03100FFF71DFE22E04F -S3150800322840F2B870C2F200004FF0FF01C1704FF0CB -S315080032380102A0F8442016E0FFF796F840F2B870A5 -S31508003248C2F200004FF0FF01C1704FF00102A0F86A -S31508003258442008E04FF03100FFF7FEFD03E04FF089 -S315080032682000FFF7F9FD40F2B873C2F2000393F89D -S315080032784310012903D14FF01000FFF7EDFD40F286 -S31508003288B873C2F200034FF0010083F8430003F154 -S315080032980300B3F84410FFF7BFFD38BD002A3FF412 -S315080032A8DFAE13F8010B0918C9B2A3427FF4D8AEEA -S315080032B8E5E600BF10B4E2B182186FEA00041319F4 -S315080032C803F0010401F1FF3111F8013F00F8013B51 -S315080032D8904210D10DE001F101044978034603F83C -S315080032E8011B04F101016478447003F1010090425E -S315080032F8F1D110BC7047002CEDD011F8013F00F849 -S31508003308013B9042E7D1F4E792B182186FEA0003CD -S31508003318D31803F0010300F8011B904209D170473E -S31508003328034603F8011B417003F101009042F7D1E7 -S315080033387047002BF4D000F8011B9042F0D1704773 -S31508003348037833B18B4204D010F8013F0BB18B4296 -S31508003358FAD11846704700BFCA7E8B7E43EA022315 -S315080033680078032805D1487D097D41EA002243EA09 -S3150800337802431846704700BF8176C1F30723C37610 -S315080033884FEA114101754FEA11224275704700BF8D -S3150800339803784FEAC31242EA53014378CA18D1B2EE -S315080033A84FEAC11343EA5101827852FA81F3D9B236 -S315080033B84FEAC11242EA5103C17851FA83F2D3B2ED -S315080033C84FEAC31141EA5303027952FA83F1CBB2A1 -S315080033D84FEAC31242EA5301437953FA81F2D1B24A -S315080033E84FEAC11343EA5101827952FA81F3D9B2F5 -S315080033F84FEAC11242EA5103C17951FA83F2D3B2AC -S315080034084FEAC31141EA5303027A52FA83F1CBB25F -S315080034184FEAC31242EA5301437A53FA81F2D1B208 -S315080034284FEAC11343EA5101807A50FA81F2D0B2C1 -S31508003438704700BF08B5024688B1036893B1197882 -S3150800344899B1D8889288904212D15878FEF764F9CB -S3150800345800F00103002B14BF0320002008BD4FF01D -S31508003468090008BD4FF0090008BD4FF0090008BD5E -S315080034784FF0090008BD00BF10B504460A46407853 -S3150800348804F134014FF00103FEF760F900283ED134 -S3150800349894F8332294F8323243EA022001B24AF603 -S315080034A85522CFF6FF72914234D194F86D0094F8FC -S315080034B86C304FEA034141EA006294F86A0042EA2E -S315080034C8000394F86B1043EA012222F07F4044F285 -S315080034D84613C0F2540398421FD094F8891094F8FA -S315080034E888204FEA024040EA016194F8863041EAAA -S315080034F8030294F8870042EA002121F07F4244F249 -S315080035084613C0F25403D01A18BF012010BD4FF055 -S31508003518030010BD4FF0020010BD4FF0000010BDAB -S315080035282DE9F041154603681C78A4F13004092CE6 -S3150800353800F2E5815A783A2A40F0E18103F102035C -S3150800354803604FF000030B60002C40F08C8140F6B6 -S315080035580824C2F200042468002C00F088810C6054 -S31508003568217889B16078FEF7D7F810F0010F0BD1EA -S31508003578002D00F0808100F00401C8B2002814BFAD -S315080035880A200020BDE8F0814FF000002070607026 -S31508003598FEF7A4F810F0010F40F071812DB100F084 -S315080035A80402D0B2002840F06E8120464FF0000190 -S315080035B8FFF762FF012819D194F8F631002B00F0BD -S315080035C8668194F8FD5194F8FC114FEA014242EAE3 -S315080035D8056094F8FA3140EA030194F8FB5141EA88 -S315080035E8052520462946FFF747FF01E04FF0000565 -S315080035F8032800F05081002840F0518194F84020B3 -S3150800360894F83F0040EA022319B2B1F5007F40F06A -S315080036184A8194F84B2094F84A0050EA02210FD1BF -S3150800362894F85B1094F85A304FEA034242EA01606C -S3150800363894F8581040EA010394F8592043EA0221FD -S31508003648E16194F84420E27002F1FF30C3B2012B1D -S3150800365800F22D8194F84130A370002B00F02B81DD -S3150800366803F1FF30184240F02A8194F8466094F82E -S31508003678450040EA0626B0B2208116F00F0F40F042 -S31508003688228194F8487094F8476056EA07260ED1BE -S3150800369894F8577094F856604FEA064646EA07675C -S315080036A894F854603E4394F8557046EA072694F809 -S315080036B843C094F8427057EA0C2700F0088102FBC9 -S315080036C801FC07EB101262449642C0F00481B61A50 -S315080036D8B6FBF3F3002B00F0028140F6F576B34209 -S315080036E88CBF022601264FF6F578434500F20B8172 -S315080036F803F10203A3612562EF1967625219E262B0 -S31508003708032E15D1002840F0EE8094F8630094F84B -S3150800371862204FEA024242EA006094F860200243B7 -S3150800372894F8610042EA0022A2624FEA830011E097 -S31508003738002800F0DC806744A762022E02D14FEA0F -S31508003748430007E04FF0030000FB03F203F0010310 -S3150800375803EB520000F2FF13B1EB532FC0F0CB80F6 -S315080037684FF0FF3121614FF00000E060032E6CD165 -S31508003778607194F8652094F8643043EA02216A185F -S315080037886261607804F134014FF00103FDF7DEFF4A -S3150800379800285AD194F8330294F8322242EA0023D0 -S315080037A819B24AF65520CFF6FF7081424DD194F8E2 -S315080037B8372094F836304FEA034141EA026094F814 -S315080037C8342040EA020394F8351043EA012045F20A -S315080037D85222C4F26112904237D194F81B1294F817 -S315080037E81A324FEA034040EA016294F8181242EA8C -S315080037F8010394F8190243EA002247F27221C6F235 -S3150800380841118A4221D194F8230294F822324FEAC8 -S31508003818034242EA006194F8200241EA000394F858 -S31508003828212243EA0221E16094F81F0294F81E3225 -S315080038384FEA034242EA006194F81C0241EA00038F -S3150800384894F81D2243EA0221216126703348038829 -S3150800385803F101039AB20280E2804FF00000206368 -S315080038682071BDE8F0814FF00B00BDE8F0814FF0FC -S315080038780C00BDE8F0814FF00000BDE8F0814FF07C -S315080038880300BDE8F0814FF00A00BDE8F0814FF06B -S315080038980D00BDE8F0814FF00100BDE8F0814FF05A +S31508002F78970197018200540036007400970197015B +S31508002F889701B9009701D300D800EC0062783F2A68 +S31508002F9804D94FF02200FFF757FF5CE140F2BC75F1 +S31508002FA8C2F2000505F10400A96CFFF7ADF94FF068 +S31508002FB8FF00E8706178AB6CCA18AA64607800F1FB +S31508002FC80100A5F8440046E161783F2904D94FF085 +S31508002FD82200FFF739FF3EE1616840F2BC75C2F28C +S31508002FE80005A96405F104006278FFF78DF94FF02A +S31508002FF8FF03EB706278A86C1118A964637803F16B +S315080030080103A5F8443026E140F2BC70C2F200007C +S315080030184FF0FF01C170636883644FF00102A0F89E +S31508003028442018E140F2BC70C2F200004FF0FF02DB +S31508003038C270836C6468C4B1E4186FEA030108199E +S3150800304800F0010213F8011BA34240F01F810EE0AD +S315080030581A4612F8010B09185B7853FA81F0C1B2BF +S3150800306802F10103A342F3D101E04FF0000140F257 +S31508003078BC73C2F20003C3F807104FF001021A71B5 +S315080030884FF00001597199714FF00800A3F84400F0 +S31508003098E1E040F2BC70C2F200004FF0FF03C370D3 +S315080030A846F64C02C0F6000282644FF00001017130 +S315080030B8417181714FF00703C0F807304FF00802D5 +S315080030C8A0F84420C7E04FF00000FFF7BDFEC2E0B5 +S315080030D840F2BC70C2F200004FF0FF01C1704FF019 +S315080030E800030371427842718371C37103724FF00A +S315080030F80601A0F84410AEE040F2BC74C2F200041F +S315080031084FF000012170FFF797FE4FF0FF03E370B9 +S315080031184FF00102A4F844209DE040F2BC73C2F2C5 +S315080031280003986C4FF03F0104F10102FFF762FCB7 +S3150800313820B94FF03100FFF787FE8CE040F2BC70EB +S31508003148C2F200004FF0FF01C170826C02F13F0223 +S3150800315882644FF00103A0F844307CE063783E2B84 +S3150800316804D94FF02200FFF76FFE74E040F2BC70F6 +S31508003178C2F200004FF0FF01C1704FF00102A0F83B +S315080031884420617841B9FFF741FC002863D14FF024 +S315080031983100FFF759FE5EE040F2BC73C2F2000345 +S315080031A8986C04F10202FFF725FC20B94FF03100AC +S315080031B8FFF74AFE4FE040F2BC70C2F200006178A1 +S315080031C8826C8B18836446E040F2BC73C2F2000333 +S315080031D84FF0FF02DA704FF00000187158714FF07F +S315080031E840019971D871187258724FF00702A3F8FE +S315080031F8442030E040F2BC73C2F20003986C616860 +S31508003208FFF7FCFB20B94FF03100FFF71DFE22E05F +S3150800321840F2BC70C2F200004FF0FF01C1704FF0D7 +S315080032280102A0F8442016E0FFF79EF840F2BC70A9 +S31508003238C2F200004FF0FF01C1704FF00102A0F87A +S31508003248442008E04FF03100FFF7FEFD03E04FF099 +S315080032582000FFF7F9FD40F2BC73C2F2000393F8A9 +S315080032684310012903D14FF01000FFF7EDFD40F296 +S31508003278BC73C2F200034FF0010083F8430003F160 +S315080032880300B3F84410FFF7BFFD38BD002A3FF422 +S31508003298DFAE13F8010B0918C9B2A3427FF4D8AEFA +S315080032A8E5E600BF10B4E2B182186FEA0004131904 +S315080032B803F0010401F1FF3111F8013F00F8013B61 +S315080032C8904210D10DE001F101044978034603F84C +S315080032D8011B04F101016478447003F1010090426E +S315080032E8F1D110BC7047002CEDD011F8013F00F859 +S315080032F8013B9042E7D1F4E792B182186FEA0003DE +S31508003308D31803F0010300F8011B904209D170474E +S31508003318034603F8011B417003F101009042F7D1F7 +S315080033287047002BF4D000F8011B9042F0D1704783 +S31508003338037833B18B4204D010F8013F0BB18B42A6 +S31508003348FAD11846704700BFCA7E8B7E43EA022325 +S315080033580078032805D1487D097D41EA002243EA19 +S3150800336802431846704700BF8176C1F30723C37620 +S315080033784FEA114101754FEA11224275704700BF9D +S3150800338803784FEAC31242EA53014378CA18D1B2FE +S315080033984FEAC11343EA5101827852FA81F3D9B246 +S315080033A84FEAC11242EA5103C17851FA83F2D3B2FD +S315080033B84FEAC31141EA5303027952FA83F1CBB2B1 +S315080033C84FEAC31242EA5301437953FA81F2D1B25A +S315080033D84FEAC11343EA5101827952FA81F3D9B205 +S315080033E84FEAC11242EA5103C17951FA83F2D3B2BC +S315080033F84FEAC31141EA5303027A52FA83F1CBB270 +S315080034084FEAC31242EA5301437A53FA81F2D1B218 +S315080034184FEAC11343EA5101807A50FA81F2D0B2D1 +S31508003428704700BF08B5024688B1036893B1197892 +S3150800343899B1D8889288904212D15878FEF76CF9D3 +S3150800344800F00103002B14BF0320002008BD4FF02D +S31508003458090008BD4FF0090008BD4FF0090008BD6E +S315080034684FF0090008BD00BF10B504460A46407863 +S3150800347804F134014FF00103FEF768F900283ED13C +S3150800348894F8332294F8323243EA022001B24AF613 +S315080034985522CFF6FF72914234D194F86D0094F80C +S315080034A86C304FEA034141EA006294F86A0042EA3E +S315080034B8000394F86B1043EA012222F07F4044F295 +S315080034C84613C0F2540398421FD094F8891094F80A +S315080034D888204FEA024040EA016194F8863041EABA +S315080034E8030294F8870042EA002121F07F4244F259 +S315080034F84613C0F25403D01A18BF012010BD4FF066 +S31508003508030010BD4FF0020010BD4FF0000010BDBB +S315080035182DE9F041154603681C78A4F13004092CF6 +S3150800352800F2E5815A783A2A40F0E18103F102036C +S3150800353803604FF000030B60002C40F08C8140F6C6 +S315080035480C24C2F200042468002C00F088810C6060 +S31508003558217889B16078FEF7DFF810F0010F0BD1F2 +S31508003568002D00F0808100F00401C8B2002814BFBD +S315080035780A200020BDE8F0814FF000002070607036 +S31508003588FEF7ACF810F0010F40F071812DB100F08C +S315080035980402D0B2002840F06E8120464FF00001A0 +S315080035A8FFF762FF012819D194F8F631002B00F0CD +S315080035B8668194F8FD5194F8FC114FEA014242EAF3 +S315080035C8056094F8FA3140EA030194F8FB5141EA98 +S315080035D8052520462946FFF747FF01E04FF0000575 +S315080035E8032800F05081002840F0518194F84020C3 +S315080035F894F83F0040EA022319B2B1F5007F40F07B +S315080036084A8194F84B2094F84A0050EA02210FD1CF +S3150800361894F85B1094F85A304FEA034242EA01607C +S3150800362894F8581040EA010394F8592043EA02210D +S31508003638E16194F84420E27002F1FF30C3B2012B2D +S3150800364800F22D8194F84130A370002B00F02B81ED +S3150800365803F1FF30184240F02A8194F8466094F83E +S31508003668450040EA0626B0B2208116F00F0F40F052 +S31508003678228194F8487094F8476056EA07260ED1CE +S3150800368894F8577094F856604FEA064646EA07676C +S3150800369894F854603E4394F8557046EA072694F819 +S315080036A843C094F8427057EA0C2700F0088102FBD9 +S315080036B801FC07EB101262449642C0F00481B61A60 +S315080036C8B6FBF3F3002B00F0028140F6F576B34219 +S315080036D88CBF022601264FF6F578434500F20B8182 +S315080036E803F10203A3612562EF1967625219E262C0 +S315080036F8032E15D1002840F0EE8094F8630094F85C +S3150800370862204FEA024242EA006094F860200243C7 +S3150800371894F8610042EA0022A2624FEA830011E0A7 +S31508003728002800F0DC806744A762022E02D14FEA1F +S31508003738430007E04FF0030000FB03F203F0010320 +S3150800374803EB520000F2FF13B1EB532FC0F0CB8006 +S315080037584FF0FF3121614FF00000E060032E6CD175 +S31508003768607194F8652094F8643043EA02216A186F +S315080037786261607804F134014FF00103FDF7E6FF52 +S3150800378800285AD194F8330294F8322242EA0023E0 +S3150800379819B24AF65520CFF6FF7081424DD194F8F2 +S315080037A8372094F836304FEA034141EA026094F824 +S315080037B8342040EA020394F8351043EA012045F21A +S315080037C85222C4F26112904237D194F81B1294F827 +S315080037D81A324FEA034040EA016294F8181242EA9C +S315080037E8010394F8190243EA002247F27221C6F245 +S315080037F841118A4221D194F8230294F822324FEAD9 +S31508003808034242EA006194F8200241EA000394F868 +S31508003818212243EA0221E16094F81F0294F81E3235 +S315080038284FEA034242EA006194F81C0241EA00039F +S3150800383894F81D2243EA0221216126703348038839 +S3150800384803F101039AB20280E2804FF00000206378 +S315080038582071BDE8F0814FF00B00BDE8F0814FF00C +S315080038680C00BDE8F0814FF00000BDE8F0814FF08C +S315080038780300BDE8F0814FF00A00BDE8F0814FF07B +S315080038880D00BDE8F0814FF00100BDE8F0814FF06A +S315080038980D00BDE8F0814FF00D00BDE8F0814FF04E S315080038A80D00BDE8F0814FF00D00BDE8F0814FF03E S315080038B80D00BDE8F0814FF00D00BDE8F0814FF02E S315080038C80D00BDE8F0814FF00D00BDE8F0814FF01E S315080038D80D00BDE8F0814FF00D00BDE8F0814FF00E S315080038E80D00BDE8F0814FF00D00BDE8F0814FF0FE -S315080038F80D00BDE8F0814FF00D00BDE8F0814FF0EE -S315080039080000086023E603F10203A3612562EF19A4 -S3150800391867625619E6624FF00306F3E6040A0020C2 -S315080039282DE9F0410C4601F109020369002B00F064 -S31508003938E28043691E7B1978202900F08A800529C8 -S3150800394814BF0A46E52206F0080505F0FF0135B159 -S31508003958A2F14105EDB2192D9CBF2032D2B262728E -S3150800396804F10A025D78202D73D0052D08BFE525D8 -S3150800397831B1A5F14102D2B2192A9CBF2035EDB260 -S31508003988A57204F10B029D78202D62D0052D08BF7B -S31508003998E52531B1A5F14102D2B2192A9CBF2035D5 -S315080039A8EDB2E57204F10C02DD78202D51D0052D13 -S315080039B808BFE52531B1A5F14102D2B2192A9CBF43 -S315080039C82035EDB2257304F10D021D79202D40D05E -S315080039D8052D08BFE52531B1A5F14102D2B2192A4C -S315080039E89CBF2035EDB2657304F10E025D79202D72 -S315080039F82FD0052D08BFE52531B1A5F14102D2B270 -S31508003A08192A9CBF2035EDB2A57304F10F029D79DA -S31508003A18202D1ED0052D08BFE52531B1A5F1410297 -S31508003A28D2B2192A9CBF2035EDB2E57304F110020B -S31508003A38DD79202D0DD0052D08BFE52531B1A5F175 -S31508003A484101CAB2192A9CBF2035EDB2257404F182 -S31508003A5811021D7A202D36D015464FF02E0105F88D -S31508003A68011B197A20292DD006F0100606F0FF0545 -S31508003A7836B1A1F14106F6B2192E9CBF2031C9B25A -S31508003A88517002F10206597A20290DD035B1A1F1F3 -S31508003A984106F6B2192E9CBF2031C9B2917002F1BF -S31508003AA80306997A202901D132460CE035B1A1F1ED -S31508003AB84105EEB2192E9CBF2031C9B2D17002F168 -S31508003AC8040200E02A46D97A2172DD7F9E7F4FEAF2 -S31508003AD8064141EA05661D7F2E43597F46EA0126B7 -S31508003AE826605D7E197E41EA0526A680D97D9B7DDE -S31508003AF843EA0126E6804FF000011170A6698EB3E5 -S31508003B08E2697AB30569E5B1018C4FF6FF73994204 -S31508003B181AD0C7693888D0B14FF00005A84641467B -S31508003B2802F0B4F80146A8B1E06900F1FF32AA42EA -S31508003B3813D9715505F1010537F8020F0028EED19A -S31508003B480DE04FF000050AE04FF0000507E04FF0DA -S31508003B58000504E04FF0000501E04FF000054FF0BE -S31508003B6800037355BDE8F0812DE9F8430446037947 -S31508003B78002B40D0076B00F13405407829463A46B1 -S31508003B884FF00103FDF71CFE002838D14FF000005E -S31508003B982071616A8F4236D3E2698B189F4236D202 -S31508003BA8E678012E37D94FF0010806EA0809BF1842 -S31508003BB8607829463A464346FDF702FE06F1FF367F -S31508003BC846452CD113E0E269BF18607829463A467B -S31508003BD84346FDF7F5FDE369FF18607829463A4636 -S31508003BE84346FDF7EDFDA6F10206012EEBD14FF08F -S31508003BF80000BDE8F8834FF00000BDE8F8834FF0F1 -S31508003C080100BDE8F8834FF00000BDE8F8834FF0DF -S31508003C180000BDE8F8834FF00000BDE8F883B9F165 -S31508003C28000FD0D0E1697F18607829463A4643469E -S31508003C38FDF7C6FD06F1FF36012EC4D1D7E700BF4A -S31508003C4838B504460D46036B8B420DD0FFF78CFF3B -S31508003C5868B9607804F134012A464FF00103FDF784 -S31508003C6875FD38B9256338BD4FF0000038BD4FF0EB -S31508003C78010038BD4FF0010038BD00BF70B50446D5 -S31508003C88FFF772FF034600285FD12378032B53D129 -S31508003C986079002850D04FF00005256304F13406F2 -S31508003CA8304629464FF40072FFF72EFB4FF05501B0 -S31508003CB884F832124FF0AA0284F833224FF05203DE -S31508003CC884F8343084F835304FF0610084F83600CB -S31508003CD84FF0410284F837204FF0720184F8181221 -S31508003CE884F8191284F81A2284F81B02236984F8BE -S31508003CF81C32C3F3072084F81D024FEA134284F8DE -S31508003D081E224FEA136184F81F12E36884F82032EA -S31508003D18C3F3072084F821024FEA134284F82222C3 -S31508003D284FEA136184F823126078314662694FF0C6 -S31508003D380103FDF745FD657160784FF000010A46F5 -S31508003D48FDF77CFD031C18BF0123184670BD00BF8C -S31508003D58A1F102018369A3F10203994204D2827888 -S31508003D68C06A02FB010070474FF00000704700BFA9 -S31508003D78F8B505460C4601296DD9836999426DD26D -S31508003D880078022832D0032845D0012869D101EBEA -S31508003D985106696A284601EB5621FFF751FF0028A4 -S31508003DA862D14FEAC6524FEAD257EB1993F83470E4 -S31508003DB806F10106696A284601EB5621FFF740FF16 -S31508003DC8002854D14FEAC6564FEAD656AD1995F883 -S31508003DD8340047EA002214F0010F02D04FEA121005 -S31508003DE8F8BD4FEA02534FEA1350F8BD6A6A2846E7 -S31508003DF802EB1121FFF724FF00283BD14FEA0464A0 -S31508003E084FEAD4502B1893F834102C1894F8352008 -S31508003E1841EA0220F8BD696A284601EBD411FFF782 -S31508003E280FFF002829D14FEA44644FEAD4516B188A -S31508003E3893F8360093F837204FEA026444EA0042BA -S31508003E4893F8353042EA03206C1894F8341008437E -S31508003E5820F07040F8BD4FF00100F8BD4FF00100A2 -S31508003E68F8BD4FF0FF30F8BD4FF0FF30F8BD4FF002 -S31508003E78FF30F8BD4FF0FF30F8BD4FF0FF30F8BD02 -S31508003E8870B504460D46E180816801293CD003686F -S31508003E989A6991423BD279B91878032801D1996A67 -S31508003EA851B94FF00000E0601A89AA4232D99B6AD4 -S31508003EB803EB151121611CE09E784FEA0616B542F8 -S31508003EC810D32068FFF754FF0146B0F1FF3F24D00E -S31508003ED8012825D923689A69904224D2AD1BADB228 -S31508003EE8AE42EED9E1602068FFF732FF00EB151104 -S31508003EF8216105F00F05206800EB451202F134022E -S31508003F0862614FF0000070BD4FF0020070BD4FF0BF -S31508003F18020070BD4FF0020070BD4FF0010070BD81 -S31508003F284FF0020070BD4FF0020070BDF8B50546A7 -S31508003F380C461646012940F28C808369994280F01E -S31508003F488B800078022845D0032858D001287AD1D2 -S31508003F5801EB5107696A284601EB5721FFF770FEFE -S31508003F680346002871D14FEAC7524FEAD25314F0D4 -S31508003F78010409D0E91891F8342002F00F00F1B2CB -S31508003F8840EA0112D0B200E0F0B2EB1883F8340028 -S31508003F9807F101074FF001002871696A284601EB05 -S31508003FA85721FFF74DFE034600284ED14FEAC7575B -S31508003FB84FEAD75014B1C6F3071607E02A1892F83D -S31508003FC8341021F00F07C6F303263E432F1887F847 -S31508003FD834603AE06B6A284603EB1121FFF730FE96 -S31508003FE8034690BB4FEA04644FEAD452A91881F8ED -S31508003FF834600C46C6F3072681F8356025E06B6AF7 -S31508004008284603EBD111FFF71BFE0346E8B94FEA2A -S3150800401844644FEAD4502A1892F837104FEA0161D7 -S315080040282C1801F07040064384F83460C6F307215B -S3150800403882F835104FEA164082F836004FEA1666B7 -S3150800404882F8376001E04FF002034FF0010028714B -S3150800405804E04FF0020301E04FF002031846F8BDEA -S315080040682DE9F0410546884631B9C66876B18369AF -S315080040789E4228BF01260BE0FFF77AFE0346012871 -S3150800408845D9AA6990424CD3464601E04FF0010645 -S3150800409834464FF0020704F10104A869844202D3A2 -S315080040A8012E37D93C4628462146FFF761FE0346C6 -S315080040B838B1B0F1FF3F34D0012832D0B442EAD142 -S315080040C82BE02646284621466FF07042FFF72EFF5A -S315080040D80146B0B9B8F1000F06D02846414622462F -S315080040E8FFF724FF014660B9EE602A69B2F1FF3F7F -S315080040F816D002F1FF3028614FF001016971234695 -S315080041080FE0012914BF01234FF0FF3309E04FF0F0 -S31508004118010306E04FF0000303E04FF0000300E058 -S3150800412823461846BDE8F0812DE9F84304460E46AD -S31508004138C58805F10105ADB2002D70D00369002BBD -S3150800414871D015F00F075FD103F101030361C16848 -S3150800415821B903681989A94269D955E0006882789E -S3150800416802F1FF3313EA15134ED1FFF701FE804615 -S31508004178012860D9B0F1FF3F61D020688169884578 -S315080041883BD3002E5FD0E168FFF76AFF8046002818 -S315080041985DD001285FD0B0F1FF3F60D02068FFF7F7 -S315080041A8E3FC00285FD1206800F134004FF00001D5 -S315080041B84FF40072FFF7A8F8266830464146FFF71D -S315080041C8C7FD30634FF000064FF001090EE080F88E -S315080041D804902068FFF7C8FC002848D12068026BBD -S315080041E802F10102026306F10106F6B22068827836 -S315080041F8B242ECD8036B991B0163C4F80C8020689B -S315080042084146FFF7A5FD2061E580206800EB4712C7 -S3150800421802F1340262614FF00000BDE8F8834FF0FE -S315080042280400BDE8F8834FF00400BDE8F8834FF0B2 -S315080042380400BDE8F8834FF00200BDE8F8834FF0A4 -S315080042480100BDE8F8834FF00400BDE8F8834FF095 -S315080042580700BDE8F8834FF00200BDE8F8834FF081 -S315080042680100BDE8F8834FF00100BDE8F8834FF078 -S315080042780100BDE8F88300BF2DE9F04F83B0044676 -S315080042884FF00001FFF7FCFD0746002840F02C8296 -S315080042984FF0FF0BD846DA464FF000092068216927 -S315080042A8FFF7CEFC0746002840F01E8265692E787F -S315080042B8002E00F00B82EB7A03F03F02E52E00F0A1 -S315080042C8E18103F00800C1B219B10F2A40F0DC8178 -S315080042D802E00F2A40F09881E769002F00F0ED8187 -S315080042E806F04003DAB232B195F80DB006F0BF060B -S315080042F8E188218404E0B04518BFD04640F0DD8146 -S31508004308687B0090584540F0C1812B7823F040021D -S3150800431802F1FF3101EB410001EB80030193AA7812 -S31508004328697841EA022001F0EDFC80460198FE28EA -S3150800433800F2D68100F1010B37F8100001F0E2FC13 -S31508004348804540F0CD812A79EB7843EA0220B8F116 -S31508004358000F04D14FF6FF71884211D0C0E101F071 -S31508004368D1FC8046BBF1FE0F00F2BA8137F81B0074 -S31508004378019A02F1020B01F0C5FC804540F0B081B4 -S31508004388A8796B7943EA0020B8F1000F04D14FF6F3 -S31508004398FF71884210D0A3E101F0B4FC8046BBF156 -S315080043A8FE0F00F29D8137F81B000BF1010B01F097 -S315080043B8A9FC804540F094812A7AE87940EA0220E7 -S315080043C8B8F1000F04D14FF6FF73984210D087E171 -S315080043D801F098FC8046BBF1FE0F00F2818137F8A0 -S315080043E81B000BF1010B01F08DFC804540F078812C -S315080043F8A97A6A7A42EA0120B8F1000F04D14FF681 -S31508004408FF73984210D06BE101F07CFC8046BBF143 -S31508004418FE0F00F2658137F81B000BF1010B01F05E -S3150800442871FC804540F05C81E87BA97B41EA002065 -S31508004438B8F1000F04D14FF6FF72904210D04FE141 -S3150800444801F060FC8046BBF1FE0F00F2498137F89F -S315080044581B000BF1010B01F055FC804540F040812B -S31508004468687C2B7C43EA0020B8F1000F04D14FF68C -S31508004478FF71884210D033E101F044FC8046BBF155 -S31508004488FE0F00F22D8137F81B000BF1010B01F026 -S3150800449839FC804540F02481EA7CA87C40EA022061 -S315080044A8B8F1000F04D14FF6FF73984210D017E100 -S315080044B801F028FC8046BBF1FE0F00F2118137F89F -S315080044C81B000BF1010B01F01DFC804540F008812B -S315080044D8697D2A7D42EA0120B8F1000F04D14FF61A -S315080044E8FF73984210D0FBE001F00CFC8046BBF144 -S315080044F8FE0F00F2F58037F81B000BF1010B01F0EF -S3150800450801FC804540F0EC80E87DA97D41EA002061 -S31508004518B8F1000F04D14FF6FF72904210D0DFE0D1 -S3150800452801F0F0FB8046BBF1FE0F00F2D98037F8A0 -S315080045381B000BF1010B01F0E5FB804540F0D0802C -S31508004548687E2B7E43EA0020B8F1000F04D14FF6A7 -S31508004558FF71884210D0C3E001F0D4FB8046BBF156 -S31508004568FE0F00F2BD8037F81B000BF1010B01F0B6 -S31508004578C9FB804540F0B4806A7F287F40EA02205C -S31508004588B8F1000F04D14FF6FF73984210D0A7E090 -S3150800459801F0B8FB8046BBF1FE0F00F2A18037F8A0 -S315080045A81B000BF1010B01F0ADFB804540F098802C -S315080045B8E97FAA7F42EA0120B8F1000F10D001F07E -S315080045C8A1FB8046BBF1FE0F00F28A800BF10100C1 -S315080045D8019037F81B0001F095FB804505D07FE070 -S315080045E84FF6FF77B84274D07AE02B7803F040018B -S315080045F8CAB2002A6DD0B8F1000F6AD0019837F808 -S315080046081070002F65D06BE0B8F1000F04D128466A -S31508004618FEF7BEFE584567D04FF0FF332384A069DE -S31508004628C27A12F0010F33D129780378994231D129 -S315080046386978427891422FD1AB7881788B422DD10F -S31508004648EB78C27893422BD129790379994229D1F3 -S3150800465869794279914227D1AB7981798B4225D1FB -S31508004668EB79C279934223D1297A037A994221D1DF -S31508004678697A427A91421FD1A97A807A814233D0DF -S31508004688D0461AE0D04618E0D04616E0D04614E0E0 -S31508004698D04612E0D04610E0D0460EE0D0460CE0F0 -S315080046A8D0460AE0D04608E0D04606E0D04604E000 -S315080046B8D04602E0D04600E0D04620464946FFF7F5 -S315080046C833FD074600283FF4E9AD0DE04FF004072F -S315080046D80AE006F1FF365FFA86F8DDF800B0ECE77F -S315080046E8DDF800B0D046E8E7384603B0BDE8F08FF5 -S315080046F82DE9F04F87B001908B460B782F2B01D008 -S315080047085C2B01D10BF1010B4FF000000199886071 -S315080047189BF800201F2A0AD808464FF00001FFF721 -S31508004728AFFB02464FF0000301994B6198E146F644 -S315080047386404C0F60004039446F67006C0F600063C -S31508004748049646F67803C0F6000305935E461BF8FA -S31508004758010B2F28FAD05C28F8D00199CA69029269 -S3150800476830781F2840F256812F2800F045815C28AA -S3150800477800F047811746A7F1020735464FF00104AE -S31508004788A34613E02F2B00F040815C2B00F03D81F7 -S31508004798B2F5807F00F0598192461446594601F0D1 -S315080047A875FA8046002840F08D814EE1594601F099 -S315080047B86DFA8046002800F048817F2806D80398B5 -S315080047C84146FEF7BDFD002840F03F8107F1020982 -S315080047D8A7F8028015F8013F184604F101021F2BB5 -S315080047E8D0D81BE1002C00F0308104F1FF3000F02E -S315080047F80101029B03EB440232F8020D202840F01F -S31508004808478148E132F8023D202B01D02E2B08D1EA -S3150800481804F1FF30041E32F8021D202940F04B81AE -S315080048284CE12746002C00F01081029A02EB440856 -S315080048384FF0000522F81450019B98694FF02001A3 -S315080048484FF00B02FEF760FD029AA2F1020201E0A0 -S3150800485805F1010532F8020F2028F9D02E28F7D0DD -S31508004868002D00F0E08046F00306DCE004F1FF3096 -S31508004878044628B94FF008094FF00008C24607E071 -S31508004888A8F1020737F8021C2E2940F0F780F1E74D -S31508004898029B33F8157005F10105002F5AD0202F11 -S315080048A804D02E2F05D1AC4200F0D28046F003067C -S315080048B8EEE7C84502D2AC4217D1C1E0B9F10B0FF1 -S315080048C803D146F00306504647E0AC4203D046F00B -S315080048D80306A54240D84FEA8A0A5FFA8AFA2546A5 -S315080048E84FF00B094FF00808D2E77F2F0FD9384643 -S315080048F84FF0000101F0CAF90746002800F0AD801C -S315080049080598C11911F8807C46F0020627B1049863 -S315080049183946FEF715FD20B146F003064FF05F0746 -S3150800492811E0A7F1410293B2192B02D84AF0020AFC -S3150800493809E0A7F1610081B2192904D84AF0010AE9 -S31508004948A7F12007BFB2019A936903F8087008F11E -S3150800495801089DE7504600E0504601998B691A7888 -S31508004968E52A04BF05221A70B9F1080F04BF8000AA -S315080049785FFA80FA0AF00C000C2803D00AF0030143 -S31508004988032901D146F0020606F00203DAB252B943 -S315080049980AF0030ABAF1010F08BF46F01006042800 -S315080049A808BF46F0080601988169CE72FFF764FCCD -S315080049B8019B9A69D37A024640B1042850D103F07C -S315080049C80403D8B2002808BF052249E003F004000A -S315080049D8C1B2002944D1019A5169CB7A03F0100073 -S315080049E8C2B232B1019C2068FEF7B6FC019EB060DF -S315080049F8ACE64FF0050233E04FF000044FF0010231 -S31508004A0803E04FF000044FF0010206EB020B4FF0EB -S31508004A180006E7E64FF000044FF0010206EB020B2A -S31508004A284FF00406DEE607F1FF37029931F817203A -S31508004A382E2A3FF41FAF14F0010F7FF417AF13E0C7 -S31508004A48B9F10B0F7FF447AF3BE74FF0060207E0D3 -S31508004A58B9F10B0F7FF43FAF33E746F002065BE781 -S31508004A68104607B0BDE8F08F04F1FF34A8F1020834 -S31508004A7838F8023C2E2B7FF4F9AEFBE600F1FF343A -S31508004A88A7F1020838F8022C2E2A7FF4EFAEF1E6D1 -S31508004A982E287FF4C6AE013CD7D000293FF4B2AE23 -S31508004AA832F8021D202902D02E297FF4BAAE013C1D -S31508004AB87FF4A8AEC9E72E297FF4B3AE441E7FF467 -S31508004AC8A1AEC2E77F2805D803984146FEF738FC09 -S31508004AD80028BAD109F10207A9F8028015F8011FBA -S31508004AE8084604F101021F2998D92F298DD05C2977 -S31508004AF88BD00AF1010459E62DE9F0410446C58828 -S31508004B08018C4FF6FF73994208BF2946FFF7B8F993 -S31508004B180346E0B94FF0E5074FF001064FF00008E5 -S31508004B2820682169FFF78CF8034668B96269177027 -S31508004B3820680671E188A94209D220464146FFF74E -S31508004B48F3FA03460028EBD0042B08BF02231846BD -S31508004B58BDE8F0812DE9F84F044689464FF0FF0A6B -S31508004B6856464FF00405D0464FF000074FF6FF7B30 -S31508004B783AE12068FFF764F80546002840F03981CD -S31508004B8860690378002B00F04081C27AE52B00F0B3 -S31508004B981E812E2B00F01D8102F03F02082A14BF41 -S31508004BA800210121494540F016810F2A40F0068167 -S31508004BB803F04001CDB235B190F80DA003F0BF035C -S31508004BC8E688268404E09E4218BF464640F00681D9 -S31508004BD8417B514540F00181E669027802F03F05BC -S31508004BE805F1FF3202EB420E02EB8E0E857842780B -S31508004BF842EA0525BEF1FE0F00F2048126F81E508A -S31508004C080EF1010290F804A090F803C04CEA0A2AAB -S31508004C1815B9DA4508D0F5E0FE2A00F2F38026F839 -S31508004C2812A00EF10202554690F806C090F805E063 -S31508004C384EEA0C2A15B9DA4508D0E3E0FE2A00F24E -S31508004C48E18026F812A002F10102554690F808C03C -S31508004C5890F807E04EEA0C2A15B9DA4508D0D1E0EB -S31508004C68FE2A00F2CF8026F812A002F10102554664 -S31508004C7890F80AC090F809E04EEA0C2A15B9DA4500 -S31508004C8808D0BFE0FE2A00F2BD8026F812A002F17D -S31508004C980102554690F80FC090F80EE04EEA0C2A25 -S31508004CA815B9DA4508D0ADE0FE2A00F2AB8026F839 -S31508004CB812A002F10102554690F811C090F810E0CA -S31508004CC84EEA0C2A15B9DA4508D09BE0FE2A00F206 -S31508004CD8998026F812A002F10102554690F813C0E9 -S31508004CE890F812E04EEA0C2A15B9DA4508D089E098 -S31508004CF8FE2A00F2878026F812A002F1010255461C -S31508004D0890F815C090F814E04EEA0C2A15B9DA4559 -S31508004D1807D077E0FE2A75D826F812A002F1010214 -S31508004D28554690F817C090F816E04EEA0C2A15B9B9 -S31508004D38DA4507D066E0FE2A64D826F812A002F1FA -S31508004D480102554690F819C090F818E04EEA0C2A60 -S31508004D5815B9DA4507D055E0FE2A53D826F812A021 -S31508004D6802F10102554690F81DC090F81CE04EEA7B -S31508004D780C2A15B9DA4507D044E0FE2A42D826F89F -S31508004D8812A002F10102554690F81FC090F81EE0DD -S31508004D984EEA0C2A35B1FE2A34D826F812A002F1B2 -S31508004DA8010201E0DA452DD1007800F04005E8B2A5 -S31508004DB818B3FE2A26D826F812701EE01EB9FEF782 -S31508004DC8E7FA504524D04FF6FF70208420E046467F -S31508004DD804E0464602E0464600E04646204639468E -S31508004DE8FFF7A2F9054620B9216900297FF4C1AE63 -S31508004DF875B14FF0000121610AE003F1FF33DEB215 -S31508004E088A46EBE78A464646E8E74FF00405F0E7A0 -S31508004E182846BDE8F88F00BF2DE9F04104460E463E -S31508004E28012926D98369994226D24FF000074FF0FF -S31508004E38010820463146FEF79BFF0546F8B10128CA -S31508004E4820D0B0F1FF3F20D0204631463A46FFF73A -S31508004E586DF80146D8B92069B0F1FF3F04D000F1D2 -S31508004E680100206184F805802E46A269AA42E0D886 -S31508004E780DE04FF002010AE04FF0020107E04FF09B -S31508004E88000104E04FF0020101E04FF00101084675 -S31508004E98BDE8F08170B582B0054616461C464FF047 -S31508004EA80B02FEF707FA052C0DD9A6F102024FEAFE -S31508004EB8540343EAC43432F8020F10FA84F18CB268 -S31508004EC85688002EF3D14FF0070204F00F0000F1C0 -S31508004ED83003392B88BF00F137030DF8023002F189 -S31508004EE8FF322409F1D1164602A988184FF07E0325 -S31508004EF800F8083C92B12C78202C12D029464FF09D -S31508004F08000312F0010F56D003F101000346B04220 -S31508004F1809D011F8014F202C54D104E04FF00003B2 -S31508004F2801E04FF000034FF02000C3F1070101F03C -S31508004F380104072A19D811E0072A06D802ACA118CD -S31508004F4811F8081C02F1010200E00146E95403F1D0 -S31508004F580103072A28D820E002B070BD02AEB118AE -S31508004F6811F8081C02F1010200E00146E95403F1B0 -S31508004F780103072BF0D8002CDED0072A06D802AC86 -S31508004F88A11811F8081C02F1010200E00146E954CB -S31508004F9803F10103072BCFD9DEE702AEB11811F8E2 -S31508004FA8081C02F1010200E00146E95403F1010375 -S31508004FB8072BC1D9D0E703F1010311F8010F2028FF -S31508004FC8A2D1B0E700F1010311F8010F20289BD1FF -S31508004FD8A9E700BF2DE9F04F87B004468769C66977 -S31508004FE803A839464FF00C02FEF764F99DF8173006 -S31508004FF813F0010F2FD04FF00000F872E0614FF060 -S315080050080105384603A932462B46FFF743FF2046D3 -S31508005018FFF732F9814698B905F10105ADB2384668 -S3150800502803A932462B46FFF735FF2046FFF724F932 -S315080050388146002800F0038102E04FF00709FAE0EC -S31508005048642D00F0DB80B9F1040F40F0F4809DF878 -S315080050581710F972E6619DF8172002F00207FBB2ED -S31508005068DBB1308848B14FF0000303F101039BB266 -S3150800507836F813100029F8D101E04FF0000303F1C0 -S3150800508819034EF64F42C4F6C46282FB03174FEA69 -S31508005098E370C0EBA7039FB201E04FF00107204673 -S315080050A84FF00001FEF7ECFE8146002840F0C38069 -S315080050B84FF00005A8464FF0010620682169FEF75B -S315080050C8BFFD8146002840F0B68061690A78E52A5E -S315080050D800D022B905F10105AF4201D191E0454654 -S315080050E820463146FFF720F881460028E5D0A2E099 -S315080050F8E088C31B204699B2FEF7C2FE81460028FF -S3150800510840F09980A069FEF743F901904FF000082E -S315080051184FF6FF7546F6F806C0F6000620682169B8 -S31508005128FEF78EFD8146002840F08580D4F81C904D -S3150800513861695FFA87FB019A4A734FF00F00C872D4 -S3150800514881F80C8081F81A8081F81B800BF1FF33EF -S3150800515803EB430203EB82004FF0010243464FF08C -S31508005168FF0A02E02B4602F10102AB424ED039F89B -S31508005178103000F1010006EB020C1CF801EC01F8EE -S315080051880E308E444FEA132C8EF801C0002B48D0F7 -S315080051980C2AE8D9AB4202D039F8100018B947F0FA -S315080051A8400B5FFA8BFB81F800B022684FF00101CB -S315080051B8117120464146FEF7B7FF814600283AD1C5 -S315080051C807F1FF37BFB2002FA8D12DE060694FF06D -S315080051D800014FF02002FEF797F86069A1694FF0C1 -S315080051E80B02FEF767F86369A069C27A02F018012C -S315080051F8197323684FF0010018711CE04FF007096E -S3150800520819E007F1FF37BFB277B171E706EB020E6F -S315080052181EF801CC01F80CA001EB0C0E8EF801A0C3 -S31508005228B6E70C2A9ED9BAE720682169FEF708FD71 -S3150800523881460028CAD0484607B0BDE8F08F05F170 -S315080052480105ADB2384603A932462B46FFF722FEBA -S315080052582046FFF711F8814600287FF4F1AE05F1DC -S315080052680105ADB2642D7FF4CCAEE6E6A0B940F6EA -S315080052780823C2F20003186810B14FF00002027042 -S3150800528811B14FF000030B7040F60820C2F2000077 -S3150800529801604FF0000070474FF00B00704700BFE1 -S315080052A82DE9F0438FB0019116460546002800F00F -S315080052B8A5804FF00003036001A805A902F01E02A5 -S315080052C8FEF72EF90446002840F0B78006F01F08B6 -S315080052D802A80B9040F60401C2F200010C9105A839 -S315080052E80199FFF705FA0A9F0146002840F08F80C2 -S315080052F8002F40F0868088E059B1042940F0928052 -S3150800530805A8FFF767FE48F008080A9F50B1044643 -S3150800531893E0FB7A13F0110F7ED106F00402D6B299 -S31508005328002E7CD108F00800C6B2002E41D0FCF742 -S31508005338BFFAB873C0F30723FB734FEA10423A74EF -S315080053484FEA106179744FF00006FE723E777E7751 -S31508005358BE77FE7705983946FDF7FEFF814638463B -S315080053683146FEF709F805984FF001030371B9F1BC -S31508005378000F1ED0066B4946FFF74EFD002853D18D -S31508005388059809F1FF31C1603146FEF759FC014617 -S315080053980DE0FB7A03F01002D0B2002846D106F0D9 -S315080053A80206F6B22EB113F0010F42D101E0002928 -S315080053B842D108F00800C6B20EB148F02008059E8A -S315080053C8336BEB612F6285F8068030463946FDF760 -S315080053D8C3FF2861FA7FB97F4FEA014040EA0263B2 -S315080053E83A7F1343797F43EA0120E8604FF00003C8 -S315080053F8AB60AB612E60F288AA801EE04FF0090404 -S315080054081BE016F01C0F84D1C3E74FF0060116F00F -S315080054181C0F7FF471AFCAE74FF007040DE04FF091 -S3150800542808040AE00C4608E0044606E04FF00404BF -S3150800543803E04FF0070400E00C4620460FB0BDE82D -S31508005448F08300BF2DE9F04F83B00446884691469D -S315080054581E464FF000033360FDF7ECFF07460028A9 -S3150800546840F0D080A07910F0800F40F0C68010F088 -S31508005478010F00F0C580E568A1686D1AA94538BF0F -S315080054884D46002D00F0BE8004F1240200920197D3 -S31508005498A7684FEAC7534FEAD350002840F08D80D3 -S315080054A8206890F802A00AF1FF3101EA572212F0A3 -S315080054B8FF0A19D10FB9206902E06169FEF758FC9D -S315080054C8012806D8A77967F07F00A0714FF0020770 -S315080054D898E0B0F1FF3F06D1A37963F07F02A27185 -S315080054E84FF001078EE06061276838466169FEF764 -S315080054F82FFC814630B9A07960F07F01A1714FF081 -S3150800550802077FE000EB0A095FEA552B29D0BB782A -S315080055180BEB0A029A4288BFCAEB030B7878414616 -S315080055284A465FFA8BF3FCF711F930B1A27962F0B3 -S315080055387F07A7714FF0010764E0A77907F04000D5 -S31508005548C1B259B1A369C9EB0302934506D908EB59 -S31508005558422000994FF40072FDF7ACFE4FEA4B2B38 -S315080055683CE0A2694A4526D0A37903F04000C1B2B7 -S3150800557889B1787800994FF00103FCF721F930B121 -S31508005588A07960F07F01A1714FF001073AE0A2798E -S3150800559822F04007A7712368587800994A464FF0C1 -S315080055A80103FCF7D3F830B1A77967F07F03A37135 -S315080055B84FF0010726E0C4F81890A0684FEAC051D2 -S315080055C84FEAD152C2F5007B5D4538BFAB46A118F4 -S315080055D8404601F124015A46FDF76CFED844A768EF -S315080055E807EB0B00A060316801EB0B033360B5EBE2 -S315080055F80B057FF44DAF019F04E04FF0020701E069 -S315080056084FF00707384603B0BDE8F08F2DE9F04F8D -S3150800561883B00446884615461E464FF00003336095 -S31508005628FDF708FF0746002840F0EE80A07910F03D -S31508005638800F40F0E48000F00201CAB2002A00F0A8 -S31508005648E180E368DD4280F0D080002D00F0CD804F -S3150800565804F1240000900197A7684FEAC7514FEA5A -S31508005668D152002A40F09C80206890F802B00BF1CD -S31508005678FF3303EA572111F0FF0B24D147B92769ED -S315080056886FB94FF00001FEF7EBFC0746206103E00F -S315080056986169FEF7E5FC0746002F00F0A580012F93 -S315080056A806D1A77967F07F00A0714FF00207ABE033 -S315080056B8B7F1FF3F06D1A27962F07F03A3714FF0D5 -S315080056C80107A1E06761A07900F04002D3B29BB157 -S315080056D8216848780099A2694FF00103FCF770F829 -S315080056E830B1A07960F07F01A1714FF001078BE016 -S315080056F8A77927F04000A071276838466169FEF740 -S3150800570827FB814630B9A37963F07F07A7714FF065 -S31508005718020779E000EB0B095FEA552A28D0B97821 -S315080057280AEB0B028A4288BFCBEB010A7878414616 -S315080057384A465FFA8AF3FCF743F830B1A17961F073 -S315080057487F02A2714FF001075EE0A369C9EB030760 -S31508005758BA450AD9009808EB47214FF40072FDF7B5 -S31508005768A9FDA07920F04001A1714FEA4A2A2CE048 -S31508005778A2694A4512D0A168E36899420ED2787898 -S3150800578800994A464FF00103FBF7E0FF30B1A079CC -S3150800579860F07F07A7714FF0010735E0C4F8189045 -S315080057A8A0684FEAC0574FEAD752C2F5007A55455E -S315080057B838BFAA46A01800F1240041465246FDF70C -S315080057C879FDA17941F04003A371D044A26802EBA0 -S315080057D80A03A360376807EB0A003060B5EB0A05C9 -S315080057E87FF43AAF019F00E0019FA168E268914201 -S315080057F888BFE160A37943F02000A07104E04FF068 -S31508005808020701E04FF00707384603B0BDE8F08FF6 -S3150800581838B50446FDF70EFE0346002850D1A2798E -S3150800582802F02001C8B200284AD002F04003DAB2D2 -S3150800583872B1214651F8240B4078A2694FF001034A -S31508005848FBF7BEFF002839D1A17921F04003A371DF -S315080058582068E169FEF7F4F9034688BB256AEA7AFF -S3150800586842F02000E872E1682977A3894FEA1322F3 -S315080058786A77E089A877E17BE97728462169FDF701 -S315080058887BFDFCF715F8A875C0F30723EB754FEAF7 -S3150800589810422A764FEA106068764FF00001A9741C -S315080058A8E974A37923F02002A27120684FF0010158 -S315080058B801712068FEF7E2F9034601E04FF001039B -S315080058C8184638BD10B50446FFF7A2FF034610B9B7 -S315080058D84FF000022260184610BD00BFF8B504460E -S315080058E80D46FDF7A7FD0746002840F0D380A379A3 -S315080058F813F0800F40F0CC80E268AA4205D203F084 -S315080059080200C1B2002908BF1546A2684FF0000375 -S31508005918A360002D00F0BE80206886784FEA4626E8 -S3150800592882B102F1FF3205F1FF31B1FBF6F1B2FBA4 -S31508005938F6F3994206D3C6F100031A40A260AD1AD7 -S31508005948616919E02169B1B9FEF78AFB01460128A0 -S3150800595806D1A27962F07F01A1714FF0020799E09A -S31508005968B0F1FF3F06D1A77967F07F00A0714FF025 -S3150800597801078FE020616161002946D0B5422ED91A -S31508005988A07900F00202D3B22BB12068FEF768FBB3 -S31508005998014620B922E02068FEF7EAF90146B1F186 -S315080059A8FF3F06D1A27962F07F03A3714FF0010782 -S315080059B870E0012903D920688269914206D3A7793C -S315080059C867F07F01A1714FF0020763E06161A36880 -S315080059D89819A060AD1BAE42D2D300E03546A06840 -S315080059E84219A2604FEAC5534FEAD35080B12068DE -S315080059F8FEF7AEF930B9A07960F07F07A7714FF0C6 -S31508005A08020747E000EB552504E04FF0000501E0E2 -S31508005A184FF00005A2684FEAC2534FEAD35068B35D -S31508005A28A269AA422AD0A17901F04003D8B298B14E -S31508005A38214651F8243B58784FF00103FBF7C0FE7E -S31508005A4830B1A27962F07F01A1714FF0010721E018 -S31508005A58A27922F04001A171214651F8240B407819 -S31508005A682A464FF00103FBF771FE30B1A77967F0B4 -S31508005A787F03A3714FF001070CE0A561A368E268EC -S31508005A88934207D9E360A17941F02000A07101E0AB -S31508005A984FF002073846F8BD30B58FB00EAB43F85D -S31508005AA8340D0D46184605A94FF00002FDF738FDD6 -S31508005AB80446A8B902A80B9040F60401C2F20001F0 -S31508005AC80C9105A80199FEF713FE044640B90A9AEF -S31508005AD822B105A82946FDF723FF01E04FF0060481 -S31508005AE820460FB030BD00BF30B599B018AB43F8A3 -S31508005AF85C0D18460FA94FF00102FDF711FD024685 -S31508005B08002857D103A8159040F60401C2F20001EF -S31508005B1816910FA80199FEF7EBFD0246002849D110 -S31508005B28149959B3CC7A14F0010F2AD12CE0012D17 -S31508005B3834D906A80FA94FF02402FDF7BBFB089530 -S31508005B4806A84FF00201FEF79BF90246002831D154 -S31508005B5806A84FF00001FEF7FDFF024640B30428E9 -S31508005B681FD027E02DB10F982946FFF755F90246A9 -S31508005B7800BB0F98FEF782F802461BE04FF00602B4 -S31508005B8818E04FF0070215E00F98FDF7E5FB054604 -S31508005B9804F01004E4B2002CC9D102E04FF0020266 -S31508005BA808E00FA8FEF7A8FF02460028DAD001E0A9 -S31508005BB84FF00702104619B030BD00BF2DE9F0476F -S31508005BC882B08246914604464FF0000501F1FF3738 -S31508005BD84FF0010814E0484601A942466B46FFF70C -S31508005BE831FC009B012B0ED19DF804000D2808D026 -S31508005BF8307004F10104264605F101050A2802D089 -S31508005C082646AF42E7DC4FF0000131708D4214BFDB -S31508005C185046084602B0BDE8F08700BF30B583B0E5 -S31508005C2804460D460A2803D14FF00D00FFF7F6FF84 -S31508005C3802A901F8084D284669464FF0010201AB4A -S31508005C48FFF7E4FC0198012814BF4FF0FF30012044 -S31508005C5803B030BD70B505460E46007870B14FF0F2 -S31508005C6800043146FFF7DAFFB0F1FF3F09D004F127 -S31508005C78010415F8010F0028F3D104E04FF00004D9 -S31508005C8801E04FF0FF34204670BD00BF7F282DD9AC -S31508005C9811B9C7280BD121E0FF2825D8A0F1800023 -S31508005CA846F6E822C0F6000232F8100070474FF0B0 -S31508005CB8010346F6E822C0F6000232F8021F8142BE -S31508005CC815D10DE032F8021F814209D003F101030C -S31508005CD89BB232F8021F81420DD101E04FF0000352 -S31508005CE803F18000C0B270474FF00000704703F117 -S31508005CF801039BB2E6E703F101039BB2802BE1D1CE -S31508005D08EEE700BF61280ED046F60811C0F6000176 -S31508005D184FF0000202F1010231F8023F5BB18342FB -S31508005D28F8D113B970474FF0000246F6E830C0F6C6 -S31508005D38000030F81200704730B402464CF6CD44DD -S31508005D48CCF6CC4401F10101A4FB0223DA08F9D107 -S31508005D584FF0000501F8015902464CF6CD45CCF638 -S31508005D68CC450846A5FB02434FEAD30303EB830455 -S31508005D78A2EB440202F1300201F801291A46002B67 -S31508005D88EFD130BC704700BF38B50546007800F03B -S31508005D9821FCC0B2A0F13004E4B2162C20D8A0F138 -S31508005DA83A02D1B206291ED9092C84BFA0F13704B4 -S31508005DB8E4B2687800F00EFCC0B2A0F13003D9B29C -S31508005DC8162913D8A0F13A02D3B2062B11D90929F4 -S31508005DD884BFA0F13701C9B201EB0414E0B238BD9B -S31508005DE84FF0000038BD4FF0000038BD4FF00000F6 -S31508005DF838BD4FF0000038BD08B500F00F03092874 -S31508005E0802D903F1370008BD03F1300000F0E2FBC0 -S31508005E18C0B208BD38B505460C464FEA1010FFF75C -S31508005E28EBFF207005F00F00FFF7E6FF60704FF0F4 -S31508005E380003A370204638BD2DE9F04F85B080468B -S31508005E481646894601B138B946F6C850C0F6000064 -S31508005E584FF41571FCF752FF98F8000000F0BAFBEA -S31508005E68532840F0DA8098F8010000F0ABFB0028C8 -S31508005E7800F0D38098F80130312B00F0D180322B0E -S31508005E8800F0D180332B40F0C880CFE02046FFF7DA -S31508005E987BFF3918CFB205F1FF3204F1020495B237 -S31508005EA82046FFF771FF3B18DFB205F1FF3085B2D0 -S31508005EB804F10204012DE9D82046FFF765FF6FEAC9 -S31508005EC80701CFB2874240F0A180BAF1010F32D05C -S31508005ED8BAF1000F04D0BAF1020F40F09A805CE0DC -S31508005EE80198FFF751FF05460298FFF74DFF4FEA5D -S31508005EF80024C9F8004008F10600FFF745FF2318F3 -S31508005F08C9F8003008F10808A5F10305ADB2002E56 -S31508005F1800F081802FB2002F7DDD4FF00004404647 -S31508005F28FFF732FF305508F1020804F10104A4B25C -S31508005F38BC42F4DB6FE00198FFF726FF0546029896 -S31508005F48FFF722FF4FEA0044C9F8004008F10600A7 -S31508005F58FFF71AFF04EB0024C9F8004008F1080007 -S31508005F68FFF712FF2018C9F8000008F10A08A5F17A -S31508005F780405ADB2002E4ED02FB2002F4BDD4FF0E0 -S31508005F8800044046FFF700FF305508F1020804F1FF -S31508005F980104A4B2BC42F4DB3DE00198FFF7F4FE25 -S31508005FA805460298FFF7F0FE4FEA0064C9F8004074 -S31508005FB808F10600FFF7E8FE04EB0044C9F80040BC -S31508005FC808F10800FFF7E0FE04EB0024C9F80040D2 -S31508005FD808F10A00FFF7D8FE2218C9F8002008F1C8 -S31508005FE80C08A5F10505ADB2AEB12FB2002F12DD2A -S31508005FF84FF000044046FFF7C7FE305508F102087F -S3150800600804F10104A4B2BC42F4DB04E04FF6FF75C0 -S3150800601801E04FF0000528B224E04FF00005FAE742 -S315080060284FF0000A04E04FF0010A01E04FF0020AB7 -S3150800603808F102000190FFF7A7FE044608F10401DB -S315080060480291039100F0010B0846FFF79DFE2218FE -S31508006058D7B204F1FF339DB2039C04F10204012D63 -S3150800606803D829E705B0BDE8F08F0FFA8BF00028AA -S315080060783FF40CAF2046FFF787FE3F18FFB205F13D -S31508006088FF35ADB204F10204012D3FF6FFAE13E762 -S3150800609808B54FF0000040F64C23C2F2000318700A -S315080060A840F65821C2F20001FFF7E0F838B146F683 -S315080060B8C850C0F600004FF09101FCF71FFE08BD56 -S315080060C840F64C23C2F200031878D0F1010038BF15 -S315080060D80020704708B5FCF7AFFE01280FD040F638 -S315080060E84C23C2F20003187860B9FBF7FBFF0128B6 -S315080060F80BD140F64C21C2F20001087008BD4FF0DA -S31508006108000008BD4FF0000008BD4FF0000008BDAC -S3150800611870B540F64C23C2F200031878002800F040 -S315080061284D82012843D1FCF707F846F63C60C0F6CD -S315080061380000FCF74FF846F66060C0F60000FCF76A -S3150800614849F8FBF7F3FF0146C6484FF00102FFF787 -S31508006158A7F850B146F68860C0F60000FCF73AF88A -S315080061684FF00100FCF726F870BD46F69060C0F6B9 -S315080061780000FCF72FF846F69860C0F60000FCF712 -S3150800618829F846F6BC60C0F60000FCF723F840F686 -S315080061985023C2F200034FF000021A605A6040F614 -S315080061A84C20C2F200004FF00201017070BD0228AF -S315080061B840F0088140F65824C2F2000440F6B06060 -S315080061C8C2F200004FF4807104F50D72FFF7F6FC71 -S315080061D894F93A12002915DA46F68860C0F60000DE -S315080061E8FBF7F8FF4FF00200FBF7E4FF04F50D7024 -S315080061F8FFF768FB40F64C20C2F200004FF000019A -S31508006208017070BD18B340F6B066C2F20006304693 -S3150800621806F5C0714FF00002FFF70EFE0646B0F10C -S31508006228FF3F14D146F68860C0F60000FBF7D2FF98 -S315080062384FF00300FBF7BEFF8A48FFF743FB40F61B -S315080062484C23C2F200034FF000021A7070BD32B236 -S31508006258002A2CDD40F65023C2F20003586868B9B4 -S3150800626840F65021C2F2000140F6B063C2F20003BC -S31508006278D3F88001086036B24E6018E040F6B0617F -S31508006288C2F20001D1F8802140F65023C2F2000379 -S3150800629819688A4204D240F65023C2F200031A60EB -S315080062A800FA86F040F65022C2F20002506040F624 -S315080062B85821C2F20001D1F83C22D1F840329A425C -S315080062C840F07C8167484FF00001FFF707FBA0B153 -S315080062D846F68860C0F60000FBF77CFF4FF004001E -S315080062E8FBF768FF5F48FFF7EDFA40F64C20C2F265 -S315080062F800004FF00001017070BD46F69060C0F6C8 -S315080063080000FBF767FF46F6EC60C0F60000FBF7EF -S3150800631861FF40F65024C2F2000440F60C25C2F28A -S31508006328000560682946FFF707FD2846FBF752FF70 -S3150800633846F6F860C0F60000FBF74CFFE0782946F9 -S31508006348FFF768FDA07805F10201FFF763FD60789D -S3150800635805F10401FFF75EFD207805F10601FFF750 -S3150800636859FD2846FBF736FF46F69C70C0F600002E -S31508006378FBF730FF20686168FCF748FBA0B946F6CA -S315080063888860C0F60000FBF725FF4FF00500FBF70D -S3150800639811FF3448FFF796FA40F64C23C2F2000379 -S315080063A84FF000021A7070BD46F69060C0F60000FD -S315080063B8FBF710FF40F64C20C2F200004FF003012D -S315080063C8017070BD032840F0F98040F65824C2F2DF -S315080063D8000440F6B060C2F200004FF4807104F57C -S315080063E80D72FFF7EBFB94F93A12002915DA46F60F -S315080063F81470C0F60000FBF7EDFE4FF00200FBF73D -S31508006408D9FE04F50D70FFF75DFA40F64C23C2F283 -S3150800641800034FF00000187070BD28B340F6B0624C -S31508006428C2F20002104602F5C07102F58072FFF743 -S3150800643803FD0546B0F1FF3F16D146F63870C0F69B -S315080064480000FBF7C7FE4FF00300FBF7B3FE05484D -S31508006458FFF738FA40F64C21C2F200014FF0000265 -S315080064680A7070BD8C0C00202BB2002B5EDD46F638 -S315080064785C70C0F60000FBF7ADFE2EB240F60C24A1 -S31508006488C2F2000430462146FFF756FC2046FBF7C1 -S31508006498A1FE46F66C70C0F60000FBF79BFE40F6B8 -S315080064A8B065C2F2000595F883012146FFF7B2FCEC -S315080064B895F8820104F10201FFF7ACFC95F8810111 -S315080064C804F10401FFF7A6FC95F8800104F106011A -S315080064D8FFF7A0FC2046FBF77DFE46F69C70C0F643 -S315080064E80000FBF777FED5F88001314605F580727E -S315080064F8FCF788FAA0B946F68860C0F60000FBF7EC -S3150800650869FE4FF00600FBF755FE2D48FFF7DAF946 -S3150800651840F64C23C2F200034FF00000187070BD15 -S3150800652846F69060C0F60000FBF754FE40F6582081 -S31508006538C2F20000D0F83C12D0F8402291423DD170 -S3150800654846F68470C0F60000FBF744FEFCF766FAC8 -S31508006558A0B946F68860C0F60000FBF73BFE4FF088 -S315080065680700FBF727FE1648FFF7ACF940F64C215B -S31508006578C2F200014FF000020A7070BD46F690603C -S31508006588C0F60000FBF726FE46F6A070C0F6000027 -S31508006598FBF720FE0A48FFF795F946F6B870C0F6E5 -S315080065A80000FBF717FE40F64C23C2F200034FF033 -S315080065B800001870FBF7DCFDFBF790FE70BD00BF06 -S315080065C88C0C0020A0F1300009288CBF002001207F -S315080065D8704700BFA0F16103D9B2192998BF2038BE -S315080065E8704700BF844640EA010313F0030F40F0E2 -S315080065F81080242AC0F00D802DE9F00FB1E8F80FB5 -S31508006608A0E8F80FA2F12402242ABFF4F7AFBDE8E0 -S31508006618F00F002A00F0078011F8013B00F8013B4B -S31508006628013A7FF4F9AF6046704700BF38B50446AB -S315080066380D4600F019F841F23403C2F200031D6052 -S3150800664844F0800441F23800C2F2000004600246B1 -S3150800665811680029FCD100F009F841F23403C2F2A6 -S315080066680003186838BD00BF704700BF704700BFF1 -S315080066782F64656D6F70726F675F6F6C696D65788B -S315080066885F73746D3332653430372E737265630001 -S315080066982F626F6F746C6F672E7478740000000031 -S315080066A8433A2F576F726B2F736F667477617265EB -S315080066B82F4F70656E424C542F5461726765742F5C -S315080066C844656D6F2F41524D434D345F53544D33D6 -S315080066D8325F4F6C696D65785F53544D3332453474 -S315080066E830375F43726F7373776F726B732F426FAE -S315080066F86F742F6964652F2E2E2F2E2E2F2E2E2F70 -S315080067082E2E2F536F757263652F41524D434D34A4 -S315080067185F53544D33322F43726F7373776F726BAF -S31508006728732F766563746F72732E63000000080012 -S3150800673810001800200028003000380040004800E3 -S31508006748500058008000880090009800A000A80013 -S31508006758B000B800C000C800D000D8000080000803 -S31508006768004000000200000000C0000800400000C9 -S3150800677803000000000001080000010004000000F2 -S3150800678800000208000002000500000000000408D6 -S3150800679800000200060000000000060800000200CB -S315080067A807000000000008080000020008000000B2 -S315080067B800000A08000002000900000000000C0892 -S315080067C8000002000A00000000000E08000002008F -S315080067D80B000000433A2F576F726B2F736F66745E -S315080067E8776172652F4F70656E424C542F546172EB -S315080067F86765742F44656D6F2F41524D434D345F5D -S3150800680853544D33325F4F6C696D65785F53544DF9 -S315080068183332453430375F43726F7373776F726BF1 -S31508006828732F426F6F742F6964652F2E2E2F2E2EA5 -S315080068382F2E2E2F2E2E2F536F757263652F4152CA -S315080068484D434D345F53544D33322F756172742E50 -S31508006858630000004F70656E424C5400222A3A3C89 -S315080068683E3F7C7F000000002B2C3B3D5B5D000013 -S31508006878809A90418E418F804545454949498E8F72 -S315080068889092924F994F555559999A9B9C9D9E9FC0 -S3150800689841494F55A5A5A6A7A8A9AAABAC21AEAF4D -S315080068A8B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF5A -S315080068B8C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF4A -S315080068C8D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF3A -S315080068D8E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF2A -S315080068E8F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF1A -S315080068F801030507090E10121416181C1E000000BD -S31508006908610062006300640065006600670068004D -S3150800691869006A006B006C006D006E006F007000FD -S3150800692871007200730074007500760077007800AD -S3150800693879007A00A100A200A300A500AC00AF0068 -S31508006948E000E100E200E300E400E500E600E70015 -S31508006958E800E900EA00EB00EC00ED00EE00EF00C5 -S31508006968F000F100F200F300F400F500F600F80074 -S31508006978F900FA00FB00FC00FD00FE00FF0001011B -S3150800698803010501070109010B010D010F01110199 -S3150800699813011501170119011B011D011F01210109 -S315080069A823012501270129012B012D012F01310179 -S315080069B83301350137013A013C013E0140014201E4 -S315080069C84401460148014B014D014F01510153014C -S315080069D85501570159015B015D015F0161016301B9 -S315080069E86501670169016B016D016F017101730129 -S315080069F8750177017A017C017E019201B103B20320 -S31508006A08B303B403B503B603B703B803B903BA03A4 -S31508006A18BB03BC03BD03BE03BF03C003C103C30353 -S31508006A28C403C503C603C703C803C903CA03300496 -S31508006A38310432043304340435043604370438047C -S31508006A4839043A043B043C043D043E043F0440042C -S31508006A5841044204430444044504460447044804DC -S31508006A6849044A044B044C044D044E044F0451048B -S31508006A785204530454045504560457045804590434 -S31508006A885A045B045C045E045F0470217121722158 -S31508006A9873217421752176217721782179217A2124 -S31508006AA87B217C217D217E217F2141FF42FF43FFF7 -S31508006AB844FF45FF46FF47FF48FF49FF4AFF4BFF8C -S31508006AC84CFF4DFF4EFF4FFF50FF51FF52FF53FF3C -S31508006AD854FF55FF56FF57FF58FF59FF5AFF000046 -S31508006AE8C700FC00E900E200E400E000E500E70072 -S31508006AF8EA00EB00E800EF00EE00EC00C400C50071 -S31508006B08C900E600C600F400F600F200FB00F9002A -S31508006B18FF00D600DC00A200A300A500A72092016A -S31508006B28E100ED00F300FA00F100D100AA00BA006E -S31508006B38BF001023AC00BD00BC00A100AB00BB0021 -S31508006B489125922593250225242561256225562512 -S31508006B5855256325512557255D255C255B25102573 -S31508006B68142534252C251C2500253C255E255F255E -S31508006B785A25542569256625602550256C256725D7 -S31508006B8868256425652559255825522553256B25D5 -S31508006B986A2518250C25882584258C259025802581 -S31508006BA8B103DF009303C003A303C303B500C403FB -S31508006BB8A6039803A903B4031E22C603B50329220C -S31508006BC86122B1006522642220232123F700482286 -S31508006BD8B0001922B7001A227F20B200A025A0000B -S31508006BE8410042004300440045004600470048006B -S31508006BF849004A004B004C004D004E004F0050001B -S31508006C0851005200530054005500560057005800CA -S31508006C1859005A002100E0FFE1FFE5FFE2FFE3FF24 -S31508006C28C000C100C200C300C400C500C600C70032 -S31508006C38C800C900CA00CB00CC00CD00CE00CF00E2 -S31508006C48D000D100D200D300D400D500D600D80091 -S31508006C58D900DA00DB00DC00DD00DE00780100017F -S31508006C6802010401060108010A010C010E011001BE -S31508006C7812011401160118011A011C011E0120012E -S31508006C8822012401260128012A012C012E0130019E -S31508006C9832013401360139013B013D013F01410109 -S31508006CA84301450147014A014C014E015001520171 -S31508006CB85401560158015A015C015E0160016201DE -S31508006CC86401660168016A016C016E01700172014E -S31508006CD87401760179017B017D0191019103920383 -S31508006CE893039403950396039703980399039A03C2 -S31508006CF89B039C039D039E039F03A003A103A30371 -S31508006D08A403A503A603A703A803A903AA031004B3 -S31508006D181104120413041404150416041704180499 -S31508006D2819041A041B041C041D041E041F04200449 -S31508006D3821042204230424042504260427042804F9 -S31508006D4829042A042B042C042D042E042F040104D8 -S31508006D5802040304040405040604070408040904D1 -S31508006D680A040B040C040E040F0460216121622135 -S31508006D7863216421652166216721682169216A21C1 -S31508006D886B216C216D216E216F2121FF22FF23FFC4 -S31508006D9824FF25FF26FF27FF28FF29FF2AFF2BFFA9 -S31508006DA82CFF2DFF2EFF2FFF30FF31FF32FF33FF59 -S31508006DB834FF35FF36FF37FF38FF39FF3AFF000043 -S31508006DC8433A2F576F726B2F736F667477617265C4 -S31508006DD82F4F70656E424C542F5461726765742F35 -S31508006DE844656D6F2F41524D434D345F53544D33AF -S31508006DF8325F4F6C696D65785F53544D333245344D -S31508006E0830375F43726F7373776F726B732F426F86 -S31508006E186F742F6964652F2E2E2F2E2E2F2E2E2F48 -S31508006E282E2E2F536F757263652F66696C652E63F0 -S31508006E38000000004669726D776172652075706496 -S31508006E486174652072657175657374206465746507 -S31508006E58637465640A0D00004F70656E696E672075 -S31508006E686669726D776172652066696C6520666FFA -S31508006E78722072656164696E672E2E2E0000000006 -S31508006E884552524F520A0D004F4B0A0D000000009A -S31508006E985374617274696E67207468652070726FBE -S31508006EA86772616D6D696E672073657175656E6366 -S31508006EB8650A0D0050617273696E67206669726D9E -S31508006EC8776172652066696C6520746F206F6274D5 -S31508006ED861696E2065726173652073697A652E2EFD -S31508006EE82E00000045726173696E67200000000075 -S31508006EF82062797465732066726F6D206D656D6F93 -S31508006F087279206174203078000000005265616447 -S31508006F18696E67206C696E652066726F6D20666992 -S31508006F286C652E2E2E4552524F520A0D000000004F -S31508006F38496E76616C696420636865636B73756D01 -S31508006F4820666F756E642E2E2E4552524F520A0DC4 -S31508006F580000000050726F6772616D6D696E672078 -S31508006F680000000020627974657320746F206D65CF -S31508006F786D6F7279206174203078000057726974D1 -S31508006F88696E672070726F6772616D2063686563E2 -S31508006F986B73756D2E2E2E00436C6F73696E6720A2 -S31508006FA86669726D776172652066696C650A0D0097 -S31508006FB84669726D776172652075706461746520BB -S31508006FC87375636365737366756C6C7920636F6D27 -S31108006FD8706C657465640A0D000000000A -S31508006FE40100000001000000000000000102030483 -S30D08006FF401020304060708095F +S315080038F80000086023E603F10203A3612562EF19B5 +S3150800390867625619E6624FF00306F3E6080A0020CE +S315080039182DE9F0410C4601F109020369002B00F074 +S31508003928E28043691E7B1978202900F08A800529D8 +S3150800393814BF0A46E52206F0080505F0FF0135B169 +S31508003948A2F14105EDB2192D9CBF2032D2B262729E +S3150800395804F10A025D78202D73D0052D08BFE525E8 +S3150800396831B1A5F14102D2B2192A9CBF2035EDB270 +S31508003978A57204F10B029D78202D62D0052D08BF8B +S31508003988E52531B1A5F14102D2B2192A9CBF2035E5 +S31508003998EDB2E57204F10C02DD78202D51D0052D23 +S315080039A808BFE52531B1A5F14102D2B2192A9CBF53 +S315080039B82035EDB2257304F10D021D79202D40D06E +S315080039C8052D08BFE52531B1A5F14102D2B2192A5C +S315080039D89CBF2035EDB2657304F10E025D79202D82 +S315080039E82FD0052D08BFE52531B1A5F14102D2B280 +S315080039F8192A9CBF2035EDB2A57304F10F029D79EB +S31508003A08202D1ED0052D08BFE52531B1A5F14102A7 +S31508003A18D2B2192A9CBF2035EDB2E57304F110021B +S31508003A28DD79202D0DD0052D08BFE52531B1A5F185 +S31508003A384101CAB2192A9CBF2035EDB2257404F192 +S31508003A4811021D7A202D36D015464FF02E0105F89D +S31508003A58011B197A20292DD006F0100606F0FF0555 +S31508003A6836B1A1F14106F6B2192E9CBF2031C9B26A +S31508003A78517002F10206597A20290DD035B1A1F103 +S31508003A884106F6B2192E9CBF2031C9B2917002F1CF +S31508003A980306997A202901D132460CE035B1A1F1FD +S31508003AA84105EEB2192E9CBF2031C9B2D17002F178 +S31508003AB8040200E02A46D97A2172DD7F9E7F4FEA02 +S31508003AC8064141EA05661D7F2E43597F46EA0126C7 +S31508003AD826605D7E197E41EA0526A680D97D9B7DEE +S31508003AE843EA0126E6804FF000011170A6698EB3F5 +S31508003AF8E2697AB30569E5B1018C4FF6FF73994215 +S31508003B081AD0C7693888D0B14FF00005A84641468B +S31508003B1802F0B4F80146A8B1E06900F1FF32AA42FA +S31508003B2813D9715505F1010537F8020F0028EED1AA +S31508003B380DE04FF000050AE04FF0000507E04FF0EA +S31508003B48000504E04FF0000501E04FF000054FF0CE +S31508003B5800037355BDE8F0812DE9F8430446037957 +S31508003B68002B40D0076B00F13405407829463A46C1 +S31508003B784FF00103FDF724FE002838D14FF0000066 +S31508003B882071616A8F4236D3E2698B189F4236D212 +S31508003B98E678012E37D94FF0010806EA0809BF1852 +S31508003BA8607829463A464346FDF70AFE06F1FF3687 +S31508003BB846452CD113E0E269BF18607829463A468B +S31508003BC84346FDF7FDFDE369FF18607829463A463E +S31508003BD84346FDF7F5FDA6F10206012EEBD14FF097 +S31508003BE80000BDE8F8834FF00000BDE8F8834FF001 +S31508003BF80100BDE8F8834FF00000BDE8F8834FF0F0 +S31508003C080000BDE8F8834FF00000BDE8F883B9F175 +S31508003C18000FD0D0E1697F18607829463A464346AE +S31508003C28FDF7CEFD06F1FF36012EC4D1D7E700BF52 +S31508003C3838B504460D46036B8B420DD0FFF78CFF4B +S31508003C4868B9607804F134012A464FF00103FDF794 +S31508003C587DFD38B9256338BD4FF0000038BD4FF0F3 +S31508003C68010038BD4FF0010038BD00BF70B50446E5 +S31508003C78FFF772FF034600285FD12378032B53D139 +S31508003C886079002850D04FF00005256304F1340602 +S31508003C98304629464FF40072FFF72EFB4FF05501C0 +S31508003CA884F832124FF0AA0284F833224FF05203EE +S31508003CB884F8343084F835304FF0610084F83600DB +S31508003CC84FF0410284F837204FF0720184F8181231 +S31508003CD884F8191284F81A2284F81B02236984F8CE +S31508003CE81C32C3F3072084F81D024FEA134284F8EE +S31508003CF81E224FEA136184F81F12E36884F82032FB +S31508003D08C3F3072084F821024FEA134284F82222D3 +S31508003D184FEA136184F823126078314662694FF0D6 +S31508003D280103FDF74DFD657160784FF000010A46FD +S31508003D38FDF784FD031C18BF0123184670BD00BF94 +S31508003D48A1F102018369A3F10203994204D2827898 +S31508003D58C06A02FB010070474FF00000704700BFB9 +S31508003D68F8B505460C4601296DD9836999426DD27D +S31508003D780078022832D0032845D0012869D101EBFA +S31508003D885106696A284601EB5621FFF751FF0028B4 +S31508003D9862D14FEAC6524FEAD257EB1993F83470F4 +S31508003DA806F10106696A284601EB5621FFF740FF26 +S31508003DB8002854D14FEAC6564FEAD656AD1995F893 +S31508003DC8340047EA002214F0010F02D04FEA121015 +S31508003DD8F8BD4FEA02534FEA1350F8BD6A6A2846F7 +S31508003DE802EB1121FFF724FF00283BD14FEA0464B0 +S31508003DF84FEAD4502B1893F834102C1894F8352019 +S31508003E0841EA0220F8BD696A284601EBD411FFF792 +S31508003E180FFF002829D14FEA44644FEAD4516B189A +S31508003E2893F8360093F837204FEA026444EA0042CA +S31508003E3893F8353042EA03206C1894F8341008438E +S31508003E4820F07040F8BD4FF00100F8BD4FF00100B2 +S31508003E58F8BD4FF0FF30F8BD4FF0FF30F8BD4FF012 +S31508003E68FF30F8BD4FF0FF30F8BD4FF0FF30F8BD12 +S31508003E7870B504460D46E180816801293CD003687F +S31508003E889A6991423BD279B91878032801D1996A77 +S31508003E9851B94FF00000E0601A89AA4232D99B6AE4 +S31508003EA803EB151121611CE09E784FEA0616B54208 +S31508003EB810D32068FFF754FF0146B0F1FF3F24D01E +S31508003EC8012825D923689A69904224D2AD1BADB238 +S31508003ED8AE42EED9E1602068FFF732FF00EB151114 +S31508003EE8216105F00F05206800EB451202F134023E +S31508003EF862614FF0000070BD4FF0020070BD4FF0D0 +S31508003F08020070BD4FF0020070BD4FF0010070BD91 +S31508003F184FF0020070BD4FF0020070BDF8B50546B7 +S31508003F280C461646012940F28C808369994280F02E +S31508003F388B800078022845D0032858D001287AD1E2 +S31508003F4801EB5107696A284601EB5721FFF770FE0E +S31508003F580346002871D14FEAC7524FEAD25314F0E4 +S31508003F68010409D0E91891F8342002F00F00F1B2DB +S31508003F7840EA0112D0B200E0F0B2EB1883F8340038 +S31508003F8807F101074FF001002871696A284601EB15 +S31508003F985721FFF74DFE034600284ED14FEAC7576B +S31508003FA84FEAD75014B1C6F3071607E02A1892F84D +S31508003FB8341021F00F07C6F303263E432F1887F857 +S31508003FC834603AE06B6A284603EB1121FFF730FEA6 +S31508003FD8034690BB4FEA04644FEAD452A91881F8FD +S31508003FE834600C46C6F3072681F8356025E06B6A07 +S31508003FF8284603EBD111FFF71BFE0346E8B94FEA3B +S3150800400844644FEAD4502A1892F837104FEA0161E7 +S315080040182C1801F07040064384F83460C6F307216B +S3150800402882F835104FEA164082F836004FEA1666C7 +S3150800403882F8376001E04FF002034FF0010028715B +S3150800404804E04FF0020301E04FF002031846F8BDFA +S315080040582DE9F0410546884631B9C66876B18369BF +S315080040689E4228BF01260BE0FFF77AFE0346012881 +S3150800407845D9AA6990424CD3464601E04FF0010655 +S3150800408834464FF0020704F10104A869844202D3B2 +S31508004098012E37D93C4628462146FFF761FE0346D6 +S315080040A838B1B0F1FF3F34D0012832D0B442EAD152 +S315080040B82BE02646284621466FF07042FFF72EFF6A +S315080040C80146B0B9B8F1000F06D02846414622463F +S315080040D8FFF724FF014660B9EE602A69B2F1FF3F8F +S315080040E816D002F1FF3028614FF0010169712346A5 +S315080040F80FE0012914BF01234FF0FF3309E04FF001 +S31508004108010306E04FF0000303E04FF0000300E068 +S3150800411823461846BDE8F0812DE9F84304460E46BD +S31508004128C58805F10105ADB2002D70D00369002BCD +S3150800413871D015F00F075FD103F101030361C16858 +S3150800414821B903681989A94269D955E000688278AE +S3150800415802F1FF3313EA15134ED1FFF701FE804625 +S31508004168012860D9B0F1FF3F61D020688169884588 +S315080041783BD3002E5FD0E168FFF76AFF8046002828 +S315080041885DD001285FD0B0F1FF3F60D02068FFF707 +S31508004198E3FC00285FD1206800F134004FF00001E5 +S315080041A84FF40072FFF7A8F8266830464146FFF72D +S315080041B8C7FD30634FF000064FF001090EE080F89E +S315080041C804902068FFF7C8FC002848D12068026BCD +S315080041D802F10102026306F10106F6B22068827846 +S315080041E8B242ECD8036B991B0163C4F80C802068AB +S315080041F84146FFF7A5FD2061E580206800EB4712D8 +S3150800420802F1340262614FF00000BDE8F8834FF00E +S315080042180400BDE8F8834FF00400BDE8F8834FF0C2 +S315080042280400BDE8F8834FF00200BDE8F8834FF0B4 +S315080042380100BDE8F8834FF00400BDE8F8834FF0A5 +S315080042480700BDE8F8834FF00200BDE8F8834FF091 +S315080042580100BDE8F8834FF00100BDE8F8834FF088 +S315080042680100BDE8F88300BF2DE9F04F83B0044686 +S315080042784FF00001FFF7FCFD0746002840F02C82A6 +S315080042884FF0FF0BD846DA464FF000092068216937 +S31508004298FFF7CEFC0746002840F01E8265692E788F +S315080042A8002E00F00B82EB7A03F03F02E52E00F0B1 +S315080042B8E18103F00800C1B219B10F2A40F0DC8188 +S315080042C802E00F2A40F09881E769002F00F0ED8197 +S315080042D806F04003DAB232B195F80DB006F0BF061B +S315080042E8E188218404E0B04518BFD04640F0DD8156 +S315080042F8687B0090584540F0C1812B7823F040022E +S3150800430802F1FF3101EB410001EB80030193AA7822 +S31508004318697841EA022001F0EDFC80460198FE28FA +S3150800432800F2D68100F1010B37F8100001F0E2FC23 +S31508004338804540F0CD812A79EB7843EA0220B8F126 +S31508004348000F04D14FF6FF71884211D0C0E101F081 +S31508004358D1FC8046BBF1FE0F00F2BA8137F81B0084 +S31508004368019A02F1020B01F0C5FC804540F0B081C4 +S31508004378A8796B7943EA0020B8F1000F04D14FF603 +S31508004388FF71884210D0A3E101F0B4FC8046BBF166 +S31508004398FE0F00F29D8137F81B000BF1010B01F0A7 +S315080043A8A9FC804540F094812A7AE87940EA0220F7 +S315080043B8B8F1000F04D14FF6FF73984210D087E181 +S315080043C801F098FC8046BBF1FE0F00F2818137F8B0 +S315080043D81B000BF1010B01F08DFC804540F078813C +S315080043E8A97A6A7A42EA0120B8F1000F04D14FF691 +S315080043F8FF73984210D06BE101F07CFC8046BBF154 +S31508004408FE0F00F2658137F81B000BF1010B01F06E +S3150800441871FC804540F05C81E87BA97B41EA002075 +S31508004428B8F1000F04D14FF6FF72904210D04FE151 +S3150800443801F060FC8046BBF1FE0F00F2498137F8AF +S315080044481B000BF1010B01F055FC804540F040813B +S31508004458687C2B7C43EA0020B8F1000F04D14FF69C +S31508004468FF71884210D033E101F044FC8046BBF165 +S31508004478FE0F00F22D8137F81B000BF1010B01F036 +S3150800448839FC804540F02481EA7CA87C40EA022071 +S31508004498B8F1000F04D14FF6FF73984210D017E110 +S315080044A801F028FC8046BBF1FE0F00F2118137F8AF +S315080044B81B000BF1010B01F01DFC804540F008813B +S315080044C8697D2A7D42EA0120B8F1000F04D14FF62A +S315080044D8FF73984210D0FBE001F00CFC8046BBF154 +S315080044E8FE0F00F2F58037F81B000BF1010B01F0FF +S315080044F801FC804540F0EC80E87DA97D41EA002072 +S31508004508B8F1000F04D14FF6FF72904210D0DFE0E1 +S3150800451801F0F0FB8046BBF1FE0F00F2D98037F8B0 +S315080045281B000BF1010B01F0E5FB804540F0D0803C +S31508004538687E2B7E43EA0020B8F1000F04D14FF6B7 +S31508004548FF71884210D0C3E001F0D4FB8046BBF166 +S31508004558FE0F00F2BD8037F81B000BF1010B01F0C6 +S31508004568C9FB804540F0B4806A7F287F40EA02206C +S31508004578B8F1000F04D14FF6FF73984210D0A7E0A0 +S3150800458801F0B8FB8046BBF1FE0F00F2A18037F8B0 +S315080045981B000BF1010B01F0ADFB804540F098803C +S315080045A8E97FAA7F42EA0120B8F1000F10D001F08E +S315080045B8A1FB8046BBF1FE0F00F28A800BF10100D1 +S315080045C8019037F81B0001F095FB804505D07FE080 +S315080045D84FF6FF77B84274D07AE02B7803F040019B +S315080045E8CAB2002A6DD0B8F1000F6AD0019837F818 +S315080045F81070002F65D06BE0B8F1000F04D128467B +S31508004608FEF7BEFE584567D04FF0FF332384A069EE +S31508004618C27A12F0010F33D129780378994231D139 +S315080046286978427891422FD1AB7881788B422DD11F +S31508004638EB78C27893422BD129790379994229D103 +S3150800464869794279914227D1AB7981798B4225D10B +S31508004658EB79C279934223D1297A037A994221D1EF +S31508004668697A427A91421FD1A97A807A814233D0EF +S31508004678D0461AE0D04618E0D04616E0D04614E0F0 +S31508004688D04612E0D04610E0D0460EE0D0460CE000 +S31508004698D0460AE0D04608E0D04606E0D04604E010 +S315080046A8D04602E0D04600E0D04620464946FFF705 +S315080046B833FD074600283FF4E9AD0DE04FF004073F +S315080046C80AE006F1FF365FFA86F8DDF800B0ECE78F +S315080046D8DDF800B0D046E8E7384603B0BDE8F08F05 +S315080046E82DE9F04F87B001908B460B782F2B01D018 +S315080046F85C2B01D10BF1010B4FF000000199886082 +S315080047089BF800201F2A0AD808464FF00001FFF731 +S31508004718AFFB02464FF0000301994B6198E146F654 +S315080047285404C0F60004039446F66006C0F600066C +S31508004738049646F66803C0F6000305935E461BF81A +S31508004748010B2F28FAD05C28F8D00199CA69029279 +S3150800475830781F2840F256812F2800F045815C28BA +S3150800476800F047811746A7F1020735464FF00104BE +S31508004778A34613E02F2B00F040815C2B00F03D8107 +S31508004788B2F5807F00F0598192461446594601F0E1 +S3150800479875FA8046002840F08D814EE1594601F0A9 +S315080047A86DFA8046002800F048817F2806D80398C5 +S315080047B84146FEF7BDFD002840F03F8107F1020992 +S315080047C8A7F8028015F8013F184604F101021F2BC5 +S315080047D8D0D81BE1002C00F0308104F1FF3000F03E +S315080047E80101029B03EB440232F8020D202840F02F +S315080047F8478148E132F8023D202B01D02E2B08D1FB +S3150800480804F1FF30041E32F8021D202940F04B81BE +S315080048184CE12746002C00F01081029A02EB440866 +S315080048284FF0000522F81450019B98694FF02001B3 +S315080048384FF00B02FEF760FD029AA2F1020201E0B0 +S3150800484805F1010532F8020F2028F9D02E28F7D0ED +S31508004858002D00F0E08046F00306DCE004F1FF30A6 +S31508004868044628B94FF008094FF00008C24607E081 +S31508004878A8F1020737F8021C2E2940F0F780F1E75D +S31508004888029B33F8157005F10105002F5AD0202F21 +S3150800489804D02E2F05D1AC4200F0D28046F003068C +S315080048A8EEE7C84502D2AC4217D1C1E0B9F10B0F01 +S315080048B803D146F00306504647E0AC4203D046F01B +S315080048C80306A54240D84FEA8A0A5FFA8AFA2546B5 +S315080048D84FF00B094FF00808D2E77F2F0FD9384653 +S315080048E84FF0000101F0CAF90746002800F0AD802C +S315080048F80598C11911F8807C46F0020627B1049874 +S315080049083946FEF715FD20B146F003064FF05F0756 +S3150800491811E0A7F1410293B2192B02D84AF0020A0C +S3150800492809E0A7F1610081B2192904D84AF0010AF9 +S31508004938A7F12007BFB2019A936903F8087008F12E +S3150800494801089DE7504600E0504601998B691A7898 +S31508004958E52A04BF05221A70B9F1080F04BF8000BA +S315080049685FFA80FA0AF00C000C2803D00AF0030153 +S31508004978032901D146F0020606F00203DAB252B953 +S315080049880AF0030ABAF1010F08BF46F01006042810 +S3150800499808BF46F0080601988169CE72FFF764FCDD +S315080049A8019B9A69D37A024640B1042850D103F08C +S315080049B80403D8B2002808BF052249E003F004001A +S315080049C8C1B2002944D1019A5169CB7A03F0100083 +S315080049D8C2B232B1019C2068FEF7B6FC019EB060EF +S315080049E8ACE64FF0050233E04FF000044FF0010241 +S315080049F803E04FF000044FF0010206EB020B4FF0FC +S31508004A080006E7E64FF000044FF0010206EB020B3A +S31508004A184FF00406DEE607F1FF37029931F817204A +S31508004A282E2A3FF41FAF14F0010F7FF417AF13E0D7 +S31508004A38B9F10B0F7FF447AF3BE74FF0060207E0E3 +S31508004A48B9F10B0F7FF43FAF33E746F002065BE791 +S31508004A58104607B0BDE8F08F04F1FF34A8F1020844 +S31508004A6838F8023C2E2B7FF4F9AEFBE600F1FF344A +S31508004A78A7F1020838F8022C2E2A7FF4EFAEF1E6E1 +S31508004A882E287FF4C6AE013CD7D000293FF4B2AE33 +S31508004A9832F8021D202902D02E297FF4BAAE013C2D +S31508004AA87FF4A8AEC9E72E297FF4B3AE441E7FF477 +S31508004AB8A1AEC2E77F2805D803984146FEF738FC19 +S31508004AC80028BAD109F10207A9F8028015F8011FCA +S31508004AD8084604F101021F2998D92F298DD05C2987 +S31508004AE88BD00AF1010459E62DE9F0410446C58838 +S31508004AF8018C4FF6FF73994208BF2946FFF7B8F9A4 +S31508004B080346E0B94FF0E5074FF001064FF00008F5 +S31508004B1820682169FFF78CF8034668B96269177037 +S31508004B2820680671E188A94209D220464146FFF75E +S31508004B38F3FA03460028EBD0042B08BF02231846CD +S31508004B48BDE8F0812DE9F84F044689464FF0FF0A7B +S31508004B5856464FF00405D0464FF000074FF6FF7B40 +S31508004B683AE12068FFF764F80546002840F03981DD +S31508004B7860690378002B00F04081C27AE52B00F0C3 +S31508004B881E812E2B00F01D8102F03F02082A14BF51 +S31508004B9800210121494540F016810F2A40F0068177 +S31508004BA803F04001CDB235B190F80DA003F0BF036C +S31508004BB8E688268404E09E4218BF464640F00681E9 +S31508004BC8417B514540F00181E669027802F03F05CC +S31508004BD805F1FF3202EB420E02EB8E0E857842781B +S31508004BE842EA0525BEF1FE0F00F2048126F81E509A +S31508004BF80EF1010290F804A090F803C04CEA0A2ABC +S31508004C0815B9DA4508D0F5E0FE2A00F2F38026F849 +S31508004C1812A00EF10202554690F806C090F805E073 +S31508004C284EEA0C2A15B9DA4508D0E3E0FE2A00F25E +S31508004C38E18026F812A002F10102554690F808C04C +S31508004C4890F807E04EEA0C2A15B9DA4508D0D1E0FB +S31508004C58FE2A00F2CF8026F812A002F10102554674 +S31508004C6890F80AC090F809E04EEA0C2A15B9DA4510 +S31508004C7808D0BFE0FE2A00F2BD8026F812A002F18D +S31508004C880102554690F80FC090F80EE04EEA0C2A35 +S31508004C9815B9DA4508D0ADE0FE2A00F2AB8026F849 +S31508004CA812A002F10102554690F811C090F810E0DA +S31508004CB84EEA0C2A15B9DA4508D09BE0FE2A00F216 +S31508004CC8998026F812A002F10102554690F813C0F9 +S31508004CD890F812E04EEA0C2A15B9DA4508D089E0A8 +S31508004CE8FE2A00F2878026F812A002F1010255462C +S31508004CF890F815C090F814E04EEA0C2A15B9DA456A +S31508004D0807D077E0FE2A75D826F812A002F1010224 +S31508004D18554690F817C090F816E04EEA0C2A15B9C9 +S31508004D28DA4507D066E0FE2A64D826F812A002F10A +S31508004D380102554690F819C090F818E04EEA0C2A70 +S31508004D4815B9DA4507D055E0FE2A53D826F812A031 +S31508004D5802F10102554690F81DC090F81CE04EEA8B +S31508004D680C2A15B9DA4507D044E0FE2A42D826F8AF +S31508004D7812A002F10102554690F81FC090F81EE0ED +S31508004D884EEA0C2A35B1FE2A34D826F812A002F1C2 +S31508004D98010201E0DA452DD1007800F04005E8B2B5 +S31508004DA818B3FE2A26D826F812701EE01EB9FEF792 +S31508004DB8E7FA504524D04FF6FF70208420E046468F +S31508004DC804E0464602E0464600E04646204639469E +S31508004DD8FFF7A2F9054620B9216900297FF4C1AE73 +S31508004DE875B14FF0000121610AE003F1FF33DEB225 +S31508004DF88A46EBE78A464646E8E74FF00405F0E7B1 +S31508004E082846BDE8F88F00BF2DE9F04104460E464E +S31508004E18012926D98369994226D24FF000074FF00F +S31508004E28010820463146FEF79BFF0546F8B10128DA +S31508004E3820D0B0F1FF3F20D0204631463A46FFF74A +S31508004E486DF80146D8B92069B0F1FF3F04D000F1E2 +S31508004E580100206184F805802E46A269AA42E0D896 +S31508004E680DE04FF002010AE04FF0020107E04FF0AB +S31508004E78000104E04FF0020101E04FF00101084685 +S31508004E88BDE8F08170B582B0054616461C464FF057 +S31508004E980B02FEF707FA052C0DD9A6F102024FEA0E +S31508004EA8540343EAC43432F8020F10FA84F18CB278 +S31508004EB85688002EF3D14FF0070204F00F0000F1D0 +S31508004EC83003392B88BF00F137030DF8023002F199 +S31508004ED8FF322409F1D1164602A988184FF07E0335 +S31508004EE800F8083C92B12C78202C12D029464FF0AD +S31508004EF8000312F0010F56D003F101000346B04231 +S31508004F0809D011F8014F202C54D104E04FF00003C2 +S31508004F1801E04FF000034FF02000C3F1070101F04C +S31508004F280104072A19D811E0072A06D802ACA118DD +S31508004F3811F8081C02F1010200E00146E95403F1E0 +S31508004F480103072A28D820E002B070BD02AEB118BE +S31508004F5811F8081C02F1010200E00146E95403F1C0 +S31508004F680103072BF0D8002CDED0072A06D802AC96 +S31508004F78A11811F8081C02F1010200E00146E954DB +S31508004F8803F10103072BCFD9DEE702AEB11811F8F2 +S31508004F98081C02F1010200E00146E95403F1010385 +S31508004FA8072BC1D9D0E703F1010311F8010F20280F +S31508004FB8A2D1B0E700F1010311F8010F20289BD10F +S31508004FC8A9E700BF2DE9F04F87B004468769C66987 +S31508004FD803A839464FF00C02FEF764F99DF8173016 +S31508004FE813F0010F2FD04FF00000F872E0614FF070 +S31508004FF80105384603A932462B46FFF743FF2046E4 +S31508005008FFF732F9814698B905F10105ADB2384678 +S3150800501803A932462B46FFF735FF2046FFF724F942 +S315080050288146002800F0038102E04FF00709FAE0FC +S31508005038642D00F0DB80B9F1040F40F0F4809DF888 +S315080050481710F972E6619DF8172002F00207FBB2FD +S31508005058DBB1308848B14FF0000303F101039BB276 +S3150800506836F813100029F8D101E04FF0000303F1D0 +S3150800507819034EF64F42C4F6C46282FB03174FEA79 +S31508005088E370C0EBA7039FB201E04FF00107204683 +S315080050984FF00001FEF7ECFE8146002840F0C38079 +S315080050A84FF00005A8464FF0010620682169FEF76B +S315080050B8BFFD8146002840F0B68061690A78E52A6E +S315080050C800D022B905F10105AF4201D191E0454664 +S315080050D820463146FFF720F881460028E5D0A2E0A9 +S315080050E8E088C31B204699B2FEF7C2FE814600280F +S315080050F840F09980A069FEF743F901904FF000083F +S315080051084FF6FF7546F6E806C0F6000620682169D8 +S31508005118FEF78EFD8146002840F08580D4F81C905D +S3150800512861695FFA87FB019A4A734FF00F00C872E4 +S3150800513881F80C8081F81A8081F81B800BF1FF33FF +S3150800514803EB430203EB82004FF0010243464FF09C +S31508005158FF0A02E02B4602F10102AB424ED039F8AB +S31508005168103000F1010006EB020C1CF801EC01F8FE +S315080051780E308E444FEA132C8EF801C0002B48D007 +S315080051880C2AE8D9AB4202D039F8100018B947F00A +S31508005198400B5FFA8BFB81F800B022684FF00101DB +S315080051A8117120464146FEF7B7FF814600283AD1D5 +S315080051B807F1FF37BFB2002FA8D12DE060694FF07D +S315080051C800014FF02002FEF797F86069A1694FF0D1 +S315080051D80B02FEF767F86369A069C27A02F018013C +S315080051E8197323684FF0010018711CE04FF007097E +S315080051F819E007F1FF37BFB277B171E706EB020E80 +S315080052081EF801CC01F80CA001EB0C0E8EF801A0D3 +S31508005218B6E70C2A9ED9BAE720682169FEF708FD81 +S3150800522881460028CAD0484607B0BDE8F08F05F180 +S315080052380105ADB2384603A932462B46FFF722FECA +S315080052482046FFF711F8814600287FF4F1AE05F1EC +S315080052580105ADB2642D7FF4CCAEE6E6A0B940F6FA +S315080052680C23C2F20003186810B14FF0000202704E +S3150800527811B14FF000030B7040F60C20C2F2000083 +S3150800528801604FF0000070474FF00B00704700BFF1 +S315080052982DE9F0438FB0019116460546002800F01F +S315080052A8A5804FF00003036001A805A902F01E02B5 +S315080052B8FEF72EF90446002840F0B78006F01F08C6 +S315080052C802A80B9040F60801C2F200010C9105A845 +S315080052D80199FFF705FA0A9F0146002840F08F80D2 +S315080052E8002F40F0868088E059B1042940F0928062 +S315080052F805A8FFF767FE48F008080A9F50B1044654 +S3150800530893E0FB7A13F0110F7ED106F00402D6B2A9 +S31508005318002E7CD108F00800C6B2002E41D0FCF752 +S31508005328C7FAB873C0F30723FB734FEA10423A74F7 +S315080053384FEA106179744FF00006FE723E777E7761 +S31508005348BE77FE7705983946FDF7FEFF814638464B +S315080053583146FEF709F805984FF001030371B9F1CC +S31508005368000F1ED0066B4946FFF74EFD002853D19D +S31508005378059809F1FF31C1603146FEF759FC014627 +S315080053880DE0FB7A03F01002D0B2002846D106F0E9 +S315080053980206F6B22EB113F0010F42D101E0002938 +S315080053A842D108F00800C6B20EB148F02008059E9A +S315080053B8336BEB612F6285F8068030463946FDF770 +S315080053C8C3FF2861FA7FB97F4FEA014040EA0263C2 +S315080053D83A7F1343797F43EA0120E8604FF00003D8 +S315080053E8AB60AB612E60F288AA801EE04FF0090414 +S315080053F81BE016F01C0F84D1C3E74FF0060116F020 +S315080054081C0F7FF471AFCAE74FF007040DE04FF0A1 +S3150800541808040AE00C4608E0044606E04FF00404CF +S3150800542803E04FF0070400E00C4620460FB0BDE83D +S31508005438F08300BF2DE9F04F83B0044688469146AD +S315080054481E464FF000033360FDF7ECFF07460028B9 +S3150800545840F0D080A07910F0800F40F0C68010F098 +S31508005468010F00F0C580E568A1686D1AA94538BF1F +S315080054784D46002D00F0BE8004F1240200920197E3 +S31508005488A7684FEAC7534FEAD350002840F08D80E3 +S31508005498206890F802A00AF1FF3101EA572212F0B3 +S315080054A8FF0A19D10FB9206902E06169FEF758FCAD +S315080054B8012806D8A77967F07F00A0714FF0020780 +S315080054C898E0B0F1FF3F06D1A37963F07F02A27195 +S315080054D84FF001078EE06061276838466169FEF774 +S315080054E82FFC814630B9A07960F07F01A1714FF091 +S315080054F802077FE000EB0A095FEA552B29D0BB783B +S315080055080BEB0A029A4288BFCAEB030B7878414626 +S315080055184A465FFA8BF3FCF719F930B1A27962F0BB +S315080055287F07A7714FF0010764E0A77907F04000E5 +S31508005538C1B259B1A369C9EB0302934506D908EB69 +S31508005548422000994FF40072FDF7ACFE4FEA4B2B48 +S315080055583CE0A2694A4526D0A37903F04000C1B2C7 +S3150800556889B1787800994FF00103FCF729F930B129 +S31508005578A07960F07F01A1714FF001073AE0A2799E +S3150800558822F04007A7712368587800994A464FF0D1 +S315080055980103FCF7DBF830B1A77967F07F03A3713D +S315080055A84FF0010726E0C4F81890A0684FEAC051E2 +S315080055B84FEAD152C2F5007B5D4538BFAB46A11804 +S315080055C8404601F124015A46FDF76CFED844A768FF +S315080055D807EB0B00A060316801EB0B033360B5EBF2 +S315080055E80B057FF44DAF019F04E04FF0020701E079 +S315080055F84FF00707384603B0BDE8F08F2DE9F04F9E +S3150800560883B00446884615461E464FF000033360A5 +S31508005618FDF708FF0746002840F0EE80A07910F04D +S31508005628800F40F0E48000F00201CAB2002A00F0B8 +S31508005638E180E368DD4280F0D080002D00F0CD805F +S3150800564804F1240000900197A7684FEAC7514FEA6A +S31508005658D152002A40F09C80206890F802B00BF1DD +S31508005668FF3303EA572111F0FF0B24D147B92769FD +S315080056786FB94FF00001FEF7EBFC0746206103E01F +S315080056886169FEF7E5FC0746002F00F0A580012FA3 +S3150800569806D1A77967F07F00A0714FF00207ABE043 +S315080056A8B7F1FF3F06D1A27962F07F03A3714FF0E5 +S315080056B80107A1E06761A07900F04002D3B29BB167 +S315080056C8216848780099A2694FF00103FCF778F831 +S315080056D830B1A07960F07F01A1714FF001078BE026 +S315080056E8A77927F04000A071276838466169FEF750 +S315080056F827FB814630B9A37963F07F07A7714FF076 +S31508005708020779E000EB0B095FEA552A28D0B97831 +S315080057180AEB0B028A4288BFCBEB010A7878414626 +S315080057284A465FFA8AF3FCF74BF830B1A17961F07B +S315080057387F02A2714FF001075EE0A369C9EB030770 +S31508005748BA450AD9009808EB47214FF40072FDF7C5 +S31508005758A9FDA07920F04001A1714FEA4A2A2CE058 +S31508005768A2694A4512D0A168E36899420ED27878A8 +S3150800577800994A464FF00103FBF7E8FF30B1A079D4 +S3150800578860F07F07A7714FF0010735E0C4F8189055 +S31508005798A0684FEAC0574FEAD752C2F5007A55456E +S315080057A838BFAA46A01800F1240041465246FDF71C +S315080057B879FDA17941F04003A371D044A26802EBB0 +S315080057C80A03A360376807EB0A003060B5EB0A05D9 +S315080057D87FF43AAF019F00E0019FA168E268914211 +S315080057E888BFE160A37943F02000A07104E04FF078 +S315080057F8020701E04FF00707384603B0BDE8F08F07 +S3150800580838B50446FDF70EFE0346002850D1A2799E +S3150800581802F02001C8B200284AD002F04003DAB2E2 +S3150800582872B1214651F8240B4078A2694FF001035A +S31508005838FBF7C6FF002839D1A17921F04003A371E7 +S315080058482068E169FEF7F4F9034688BB256AEA7A0F +S3150800585842F02000E872E1682977A3894FEA132203 +S315080058686A77E089A877E17BE97728462169FDF711 +S315080058787BFDFCF71DF8A875C0F30723EB754FEAFF +S3150800588810422A764FEA106068764FF00001A9742C +S31508005898E974A37923F02002A27120684FF0010168 +S315080058A801712068FEF7E2F9034601E04FF00103AB +S315080058B8184638BD10B50446FFF7A2FF034610B9C7 +S315080058C84FF000022260184610BD00BFF8B504461E +S315080058D80D46FDF7A7FD0746002840F0D380A379B3 +S315080058E813F0800F40F0CC80E268AA4205D203F094 +S315080058F80200C1B2002908BF1546A2684FF0000386 +S31508005908A360002D00F0BE80206886784FEA4626F8 +S3150800591882B102F1FF3205F1FF31B1FBF6F1B2FBB4 +S31508005928F6F3994206D3C6F100031A40A260AD1AE7 +S31508005938616919E02169B1B9FEF78AFB01460128B0 +S3150800594806D1A27962F07F01A1714FF0020799E0AA +S31508005958B0F1FF3F06D1A77967F07F00A0714FF035 +S3150800596801078FE020616161002946D0B5422ED92A +S31508005978A07900F00202D3B22BB12068FEF768FBC3 +S31508005988014620B922E02068FEF7EAF90146B1F196 +S31508005998FF3F06D1A27962F07F03A3714FF0010792 +S315080059A870E0012903D920688269914206D3A7794C +S315080059B867F07F01A1714FF0020763E06161A36890 +S315080059C89819A060AD1BAE42D2D300E03546A06850 +S315080059D84219A2604FEAC5534FEAD35080B12068EE +S315080059E8FEF7AEF930B9A07960F07F07A7714FF0D6 +S315080059F8020747E000EB552504E04FF0000501E0F3 +S31508005A084FF00005A2684FEAC2534FEAD35068B36D +S31508005A18A269AA422AD0A17901F04003D8B298B15E +S31508005A28214651F8243B58784FF00103FBF7C8FE86 +S31508005A3830B1A27962F07F01A1714FF0010721E028 +S31508005A48A27922F04001A171214651F8240B407829 +S31508005A582A464FF00103FBF779FE30B1A77967F0BC +S31508005A687F03A3714FF001070CE0A561A368E268FC +S31508005A78934207D9E360A17941F02000A07101E0BB +S31508005A884FF002073846F8BD30B58FB00EAB43F86D +S31508005A98340D0D46184605A94FF00002FDF738FDE6 +S31508005AA80446A8B902A80B9040F60801C2F20001FC +S31508005AB80C9105A80199FEF713FE044640B90A9AFF +S31508005AC822B105A82946FDF723FF01E04FF0060491 +S31508005AD820460FB030BD00BF30B599B018AB43F8B3 +S31508005AE85C0D18460FA94FF00102FDF711FD024695 +S31508005AF8002857D103A8159040F60801C2F20001FC +S31508005B0816910FA80199FEF7EBFD0246002849D120 +S31508005B18149959B3CC7A14F0010F2AD12CE0012D27 +S31508005B2834D906A80FA94FF02402FDF7BBFB089540 +S31508005B3806A84FF00201FEF79BF90246002831D164 +S31508005B4806A84FF00001FEF7FDFF024640B30428F9 +S31508005B581FD027E02DB10F982946FFF755F90246B9 +S31508005B6800BB0F98FEF782F802461BE04FF00602C4 +S31508005B7818E04FF0070215E00F98FDF7E5FB054614 +S31508005B8804F01004E4B2002CC9D102E04FF0020276 +S31508005B9808E00FA8FEF7A8FF02460028DAD001E0B9 +S31508005BA84FF00702104619B030BD00BF2DE9F0477F +S31508005BB882B08246914604464FF0000501F1FF3748 +S31508005BC84FF0010814E0484601A942466B46FFF71C +S31508005BD831FC009B012B0ED19DF804000D2808D036 +S31508005BE8307004F10104264605F101050A2802D099 +S31508005BF82646AF42E7DC4FF0000131708D4214BFEC +S31508005C085046084602B0BDE8F08700BF30B583B0F5 +S31508005C1804460D460A2803D14FF00D00FFF7F6FF94 +S31508005C2802A901F8084D284669464FF0010201AB5A +S31508005C38FFF7E4FC0198012814BF4FF0FF30012054 +S31508005C4803B030BD70B505460E46007870B14FF002 +S31508005C5800043146FFF7DAFFB0F1FF3F09D004F137 +S31508005C68010415F8010F0028F3D104E04FF00004E9 +S31508005C7801E04FF0FF34204670BD00BF7F282DD9BC +S31508005C8811B9C7280BD121E0FF2825D8A0F1800033 +S31508005C9846F6D822C0F6000232F8100070474FF0D0 +S31508005CA8010346F6D822C0F6000232F8021F8142DE +S31508005CB815D10DE032F8021F814209D003F101031C +S31508005CC89BB232F8021F81420DD101E04FF0000362 +S31508005CD803F18000C0B270474FF00000704703F127 +S31508005CE801039BB2E6E703F101039BB2802BE1D1DE +S31508005CF8EEE700BF61280ED046F6F801C0F60001A7 +S31508005D084FF0000202F1010231F8023F5BB183420B +S31508005D18F8D113B970474FF0000246F6D830C0F6E6 +S31508005D28000030F81200704730B402464CF6CD44ED +S31508005D38CCF6CC4401F10101A4FB0223DA08F9D117 +S31508005D484FF0000501F8015902464CF6CD45CCF648 +S31508005D58CC450846A5FB02434FEAD30303EB830465 +S31508005D68A2EB440202F1300201F801291A46002B77 +S31508005D78EFD130BC704700BF38B50546007800F04B +S31508005D8821FCC0B2A0F13004E4B2162C20D8A0F148 +S31508005D983A02D1B206291ED9092C84BFA0F13704C4 +S31508005DA8E4B2687800F00EFCC0B2A0F13003D9B2AC +S31508005DB8162913D8A0F13A02D3B2062B11D9092904 +S31508005DC884BFA0F13701C9B201EB0414E0B238BDAB +S31508005DD84FF0000038BD4FF0000038BD4FF0000006 +S31508005DE838BD4FF0000038BD08B500F00F03092884 +S31508005DF802D903F1370008BD03F1300000F0E2FBD1 +S31508005E08C0B208BD38B505460C464FEA1010FFF76C +S31508005E18EBFF207005F00F00FFF7E6FF60704FF004 +S31508005E280003A370204638BD2DE9F04F85B080469B +S31508005E381646894601B138B946F6B850C0F6000084 +S31508005E484FF41671FCF752FF98F8000000F0BAFBF9 +S31508005E58532840F0DA8098F8010000F0ABFB0028D8 +S31508005E6800F0D38098F80130312B00F0D180322B1E +S31508005E7800F0D180332B40F0C880CFE02046FFF7EA +S31508005E887BFF3918CFB205F1FF3204F1020495B247 +S31508005E982046FFF771FF3B18DFB205F1FF3085B2E0 +S31508005EA804F10204012DE9D82046FFF765FF6FEAD9 +S31508005EB80701CFB2874240F0A180BAF1010F32D06C +S31508005EC8BAF1000F04D0BAF1020F40F09A805CE0EC +S31508005ED80198FFF751FF05460298FFF74DFF4FEA6D +S31508005EE80024C9F8004008F10600FFF745FF231803 +S31508005EF8C9F8003008F10808A5F10305ADB2002E67 +S31508005F0800F081802FB2002F7DDD4FF00004404657 +S31508005F18FFF732FF305508F1020804F10104A4B26C +S31508005F28BC42F4DB6FE00198FFF726FF05460298A6 +S31508005F38FFF722FF4FEA0044C9F8004008F10600B7 +S31508005F48FFF71AFF04EB0024C9F8004008F1080017 +S31508005F58FFF712FF2018C9F8000008F10A08A5F18A +S31508005F680405ADB2002E4ED02FB2002F4BDD4FF0F0 +S31508005F7800044046FFF700FF305508F1020804F10F +S31508005F880104A4B2BC42F4DB3DE00198FFF7F4FE35 +S31508005F9805460298FFF7F0FE4FEA0064C9F8004084 +S31508005FA808F10600FFF7E8FE04EB0044C9F80040CC +S31508005FB808F10800FFF7E0FE04EB0024C9F80040E2 +S31508005FC808F10A00FFF7D8FE2218C9F8002008F1D8 +S31508005FD80C08A5F10505ADB2AEB12FB2002F12DD3A +S31508005FE84FF000044046FFF7C7FE305508F102088F +S31508005FF804F10104A4B2BC42F4DB04E04FF6FF75D1 +S3150800600801E04FF0000528B224E04FF00005FAE752 +S315080060184FF0000A04E04FF0010A01E04FF0020AC7 +S3150800602808F102000190FFF7A7FE044608F10401EB +S315080060380291039100F0010B0846FFF79DFE22180E +S31508006048D7B204F1FF339DB2039C04F10204012D73 +S3150800605803D829E705B0BDE8F08F0FFA8BF00028BA +S315080060683FF40CAF2046FFF787FE3F18FFB205F14D +S31508006078FF35ADB204F10204012D3FF6FFAE13E772 +S3150800608808B54FF0000040F65023C2F20003187016 +S3150800609840F65C21C2F20001FFF7E0F838B146F68F +S315080060A8B850C0F600004FF09E01FCF71FFE08BD69 +S315080060B840F65023C2F200031878D0F1010038BF21 +S315080060C80020704708B5FCF7AFFE01280FD040F648 +S315080060D85023C2F20003187860B9FCF703F80128C0 +S315080060E80BD140F65021C2F20001087008BD4FF0E6 +S315080060F8000008BD4FF0000008BD4FF0000008BDBD +S3150800610870B540F65023C2F200031878002800F04C +S315080061184D82012843D1FCF70FF846F62C60C0F6E5 +S315080061280000FCF757F846F65060C0F60000FCF782 +S3150800613851F8FBF7FBFF0146C6484FF00102FFF787 +S31508006148A7F850B146F67860C0F60000FCF742F8A2 +S315080061584FF00100FCF72EF870BD46F68060C0F6D1 +S315080061680000FCF737F846F68860C0F60000FCF72A +S3150800617831F846F6AC60C0F60000FCF72BF840F696 +S315080061885423C2F200034FF000021A605A6040F620 +S315080061985020C2F200004FF00201017070BD0228BB +S315080061A840F0088140F65C24C2F2000440F6B46068 +S315080061B8C2F200004FF4807104F50D72FFF7F6FC81 +S315080061C894F93A12002915DA46F67860C0F60000FE +S315080061D8FCF700F84FF00200FBF7ECFF04F50D702A +S315080061E8FFF768FB40F65020C2F200004FF00001A6 +S315080061F8017070BD18B340F6B466C2F200063046A0 +S3150800620806F5C0714FF00002FFF70EFE0646B0F11C +S31508006218FF3F14D146F67860C0F60000FBF7DAFFB0 +S315080062284FF00300FBF7C6FF8A48FFF743FB40F623 +S315080062385023C2F200034FF000021A7070BD32B242 +S31508006248002A2CDD40F65423C2F20003586868B9C0 +S3150800625840F65421C2F2000140F6B463C2F20003C4 +S31508006268D3F88001086036B24E6018E040F6B4618B +S31508006278C2F20001D1F8802140F65423C2F2000385 +S3150800628819688A4204D240F65423C2F200031A60F7 +S3150800629800FA86F040F65422C2F20002506040F630 +S315080062A85C21C2F20001D1F83C22D1F840329A4268 +S315080062B840F07C8167484FF00001FFF707FBA0B163 +S315080062C846F67860C0F60000FBF784FF4FF0040036 +S315080062D8FBF770FF5F48FFF7EDFA40F65020C2F269 +S315080062E800004FF00001017070BD46F68060C0F6E8 +S315080062F80000FBF76FFF46F6DC60C0F60000FBF708 +S3150800630869FF40F65424C2F2000440F61025C2F28A +S31508006318000560682946FFF707FD2846FBF75AFF78 +S3150800632846F6E860C0F60000FBF754FFE078294611 +S31508006338FFF768FDA07805F10201FFF763FD6078AD +S3150800634805F10401FFF75EFD207805F10601FFF760 +S3150800635859FD2846FBF73EFF46F68C70C0F6000046 +S31508006368FBF738FF20686168FCF748FBA0B946F6D2 +S315080063787860C0F60000FBF72DFF4FF00500FBF725 +S3150800638819FF3448FFF796FA40F65023C2F200037D +S315080063984FF000021A7070BD46F68060C0F600001D +S315080063A8FBF718FF40F65020C2F200004FF0030131 +S315080063B8017070BD032840F0F98040F65C24C2F2EB +S315080063C8000440F6B460C2F200004FF4807104F588 +S315080063D80D72FFF7EBFB94F93A12002915DA46F61F +S315080063E80470C0F60000FBF7F5FE4FF00200FBF755 +S315080063F8E1FE04F50D70FFF75DFA40F65023C2F288 +S3150800640800034FF00000187070BD28B340F6B46258 +S31508006418C2F20002104602F5C07102F58072FFF753 +S3150800642803FD0546B0F1FF3F16D146F62870C0F6BB +S315080064380000FBF7CFFE4FF00300FBF7BBFE05484D +S31508006448FFF738FA40F65021C2F200014FF0000271 +S315080064580A7070BD900C00202BB2002B5EDD46F644 +S315080064684C70C0F60000FBF7B5FE2EB240F61024B5 +S31508006478C2F2000430462146FFF756FC2046FBF7D1 +S31508006488A9FE46F65C70C0F60000FBF7A3FE40F6C8 +S31508006498B465C2F2000595F883012146FFF7B2FCF8 +S315080064A895F8820104F10201FFF7ACFC95F8810121 +S315080064B804F10401FFF7A6FC95F8800104F106012A +S315080064C8FFF7A0FC2046FBF785FE46F68C70C0F65B +S315080064D80000FBF77FFED5F88001314605F5807286 +S315080064E8FCF788FAA0B946F67860C0F60000FBF70C +S315080064F871FE4FF00600FBF75DFE2D48FFF7DAF947 +S3150800650840F65023C2F200034FF00000187070BD21 +S3150800651846F68060C0F60000FBF75CFE40F65C2095 +S31508006528C2F20000D0F83C12D0F8402291423DD180 +S3150800653846F67470C0F60000FBF74CFEFCF766FAE0 +S31508006548A0B946F67860C0F60000FBF743FE4FF0A0 +S315080065580700FBF72FFE1648FFF7ACF940F650215F +S31508006568C2F200014FF000020A7070BD46F680605C +S31508006578C0F60000FBF72EFE46F69070C0F600003F +S31508006588FBF728FE0A48FFF795F946F6A870C0F6FD +S315080065980000FBF71FFE40F65023C2F200034FF037 +S315080065A800001870FBF7E4FDFBF798FE70BD00BF06 +S315080065B8900C0020A0F1300009288CBF002001208B +S315080065C8704700BFA0F16103D9B2192998BF2038CE +S315080065D8704700BF844640EA010313F0030F40F0F2 +S315080065E81080242AC0F00D802DE9F00FB1E8F80FC5 +S315080065F8A0E8F80FA2F12402242ABFF4F7AFBDE8F1 +S31508006608F00F002A00F0078011F8013B00F8013B5B +S31508006618013A7FF4F9AF6046704700BF38B50446BB +S315080066280D4600F019F841F23803C2F200031D605E +S3150800663844F0800441F23C00C2F2000004600246BD +S3150800664811680029FCD100F009F841F23803C2F2B2 +S315080066580003186838BD00BF704700BF704700BF01 +S315080066682F64656D6F70726F675F6F6C696D65789B +S315080066785F73746D3332653430372E737265630011 +S315080066882F626F6F746C6F672E7478740000000041 +S31508006698433A2F576F726B2F736F667477617265FB +S315080066A82F4F70656E424C542F5461726765742F6C +S315080066B844656D6F2F41524D434D345F53544D33E6 +S315080066C8325F4F6C696D65785F53544D3332453484 +S315080066D830375F43726F7373776F726B732F426FBE +S315080066E86F742F6964652F2E2E2F2E2E2F2E2E2F80 +S315080066F82E2E2F536F757263652F41524D434D34B5 +S315080067085F53544D33322F43726F7373776F726BBF +S31508006718732F766563746F72732E63000000080022 +S3150800672810001800200028003000380040004800F3 +S31508006738500058008000880090009800A000A80023 +S31508006748B000B800C000C800D000D8000080000813 +S31508006758004000000200000000C0000800400000D9 +S315080067680300000000000108000001000400000002 +S3150800677800000208000002000500000000000408E6 +S3150800678800000200060000000000060800000200DB +S3150800679807000000000008080000020008000000C2 +S315080067A800000A08000002000900000000000C08A2 +S315080067B8000002000A00000000000E08000002009F +S315080067C80B000000433A2F576F726B2F736F66746E +S315080067D8776172652F4F70656E424C542F546172FB +S315080067E86765742F44656D6F2F41524D434D345F6D +S315080067F853544D33325F4F6C696D65785F53544D0A +S315080068083332453430375F43726F7373776F726B01 +S31508006818732F426F6F742F6964652F2E2E2F2E2EB5 +S315080068282F2E2E2F2E2E2F536F757263652F4152DA +S315080068384D434D345F53544D33322F756172742E60 +S31508006848630000004F70656E424C5400222A3A3C99 +S315080068583E3F7C7F000000002B2C3B3D5B5D000023 +S31508006868809A90418E418F804545454949498E8F82 +S315080068789092924F994F555559999A9B9C9D9E9FD0 +S3150800688841494F55A5A5A6A7A8A9AAABAC21AEAF5D +S31508006898B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF6A +S315080068A8C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF5A +S315080068B8D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF4A +S315080068C8E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF3A +S315080068D8F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF2A +S315080068E801030507090E10121416181C1E000000CD +S315080068F8610062006300640065006600670068005E +S3150800690869006A006B006C006D006E006F0070000D +S3150800691871007200730074007500760077007800BD +S3150800692879007A00A100A200A300A500AC00AF0078 +S31508006938E000E100E200E300E400E500E600E70025 +S31508006948E800E900EA00EB00EC00ED00EE00EF00D5 +S31508006958F000F100F200F300F400F500F600F80084 +S31508006968F900FA00FB00FC00FD00FE00FF0001012B +S3150800697803010501070109010B010D010F011101A9 +S3150800698813011501170119011B011D011F01210119 +S3150800699823012501270129012B012D012F01310189 +S315080069A83301350137013A013C013E0140014201F4 +S315080069B84401460148014B014D014F01510153015C +S315080069C85501570159015B015D015F0161016301C9 +S315080069D86501670169016B016D016F017101730139 +S315080069E8750177017A017C017E019201B103B20330 +S315080069F8B303B403B503B603B703B803B903BA03B5 +S31508006A08BB03BC03BD03BE03BF03C003C103C30363 +S31508006A18C403C503C603C703C803C903CA033004A6 +S31508006A28310432043304340435043604370438048C +S31508006A3839043A043B043C043D043E043F0440043C +S31508006A4841044204430444044504460447044804EC +S31508006A5849044A044B044C044D044E044F0451049B +S31508006A685204530454045504560457045804590444 +S31508006A785A045B045C045E045F0470217121722168 +S31508006A8873217421752176217721782179217A2134 +S31508006A987B217C217D217E217F2141FF42FF43FF07 +S31508006AA844FF45FF46FF47FF48FF49FF4AFF4BFF9C +S31508006AB84CFF4DFF4EFF4FFF50FF51FF52FF53FF4C +S31508006AC854FF55FF56FF57FF58FF59FF5AFF000056 +S31508006AD8C700FC00E900E200E400E000E500E70082 +S31508006AE8EA00EB00E800EF00EE00EC00C400C50081 +S31508006AF8C900E600C600F400F600F200FB00F9003B +S31508006B08FF00D600DC00A200A300A500A72092017A +S31508006B18E100ED00F300FA00F100D100AA00BA007E +S31508006B28BF001023AC00BD00BC00A100AB00BB0031 +S31508006B389125922593250225242561256225562522 +S31508006B4855256325512557255D255C255B25102583 +S31508006B58142534252C251C2500253C255E255F256E +S31508006B685A25542569256625602550256C256725E7 +S31508006B7868256425652559255825522553256B25E5 +S31508006B886A2518250C25882584258C259025802591 +S31508006B98B103DF009303C003A303C303B500C4030B +S31508006BA8A6039803A903B4031E22C603B50329221C +S31508006BB86122B1006522642220232123F700482296 +S31508006BC8B0001922B7001A227F20B200A025A0001B +S31508006BD8410042004300440045004600470048007B +S31508006BE849004A004B004C004D004E004F0050002B +S31508006BF851005200530054005500560057005800DB +S31508006C0859005A002100E0FFE1FFE5FFE2FFE3FF34 +S31508006C18C000C100C200C300C400C500C600C70042 +S31508006C28C800C900CA00CB00CC00CD00CE00CF00F2 +S31508006C38D000D100D200D300D400D500D600D800A1 +S31508006C48D900DA00DB00DC00DD00DE00780100018F +S31508006C5802010401060108010A010C010E011001CE +S31508006C6812011401160118011A011C011E0120013E +S31508006C7822012401260128012A012C012E013001AE +S31508006C8832013401360139013B013D013F01410119 +S31508006C984301450147014A014C014E015001520181 +S31508006CA85401560158015A015C015E0160016201EE +S31508006CB86401660168016A016C016E01700172015E +S31508006CC87401760179017B017D0191019103920393 +S31508006CD893039403950396039703980399039A03D2 +S31508006CE89B039C039D039E039F03A003A103A30381 +S31508006CF8A403A503A603A703A803A903AA031004C4 +S31508006D0811041204130414041504160417041804A9 +S31508006D1819041A041B041C041D041E041F04200459 +S31508006D282104220423042404250426042704280409 +S31508006D3829042A042B042C042D042E042F040104E8 +S31508006D4802040304040405040604070408040904E1 +S31508006D580A040B040C040E040F0460216121622145 +S31508006D6863216421652166216721682169216A21D1 +S31508006D786B216C216D216E216F2121FF22FF23FFD4 +S31508006D8824FF25FF26FF27FF28FF29FF2AFF2BFFB9 +S31508006D982CFF2DFF2EFF2FFF30FF31FF32FF33FF69 +S31508006DA834FF35FF36FF37FF38FF39FF3AFF000053 +S31508006DB8433A2F576F726B2F736F667477617265D4 +S31508006DC82F4F70656E424C542F5461726765742F45 +S31508006DD844656D6F2F41524D434D345F53544D33BF +S31508006DE8325F4F6C696D65785F53544D333245345D +S31508006DF830375F43726F7373776F726B732F426F97 +S31508006E086F742F6964652F2E2E2F2E2E2F2E2E2F58 +S31508006E182E2E2F536F757263652F66696C652E6300 +S31508006E28000000004669726D7761726520757064A6 +S31508006E386174652072657175657374206465746517 +S31508006E48637465640A0D00004F70656E696E672085 +S31508006E586669726D776172652066696C6520666F0A +S31508006E68722072656164696E672E2E2E0000000016 +S31508006E784552524F520A0D004F4B0A0D00000000AA +S31508006E885374617274696E67207468652070726FCE +S31508006E986772616D6D696E672073657175656E6376 +S31508006EA8650A0D0050617273696E67206669726DAE +S31508006EB8776172652066696C6520746F206F6274E5 +S31508006EC861696E2065726173652073697A652E2E0D +S31508006ED82E00000045726173696E67200000000085 +S31508006EE82062797465732066726F6D206D656D6FA3 +S31508006EF87279206174203078000000005265616458 +S31508006F08696E67206C696E652066726F6D206669A2 +S31508006F186C652E2E2E4552524F520A0D000000005F +S31508006F28496E76616C696420636865636B73756D11 +S31508006F3820666F756E642E2E2E4552524F520A0DD4 +S31508006F480000000050726F6772616D6D696E672088 +S31508006F580000000020627974657320746F206D65DF +S31508006F686D6F7279206174203078000057726974E1 +S31508006F78696E672070726F6772616D2063686563F2 +S31508006F886B73756D2E2E2E00436C6F73696E6720B2 +S31508006F986669726D776172652066696C650A0D00A7 +S31508006FA84669726D776172652075706461746520CB +S31508006FB87375636365737366756C6C7920636F6D37 +S31108006FC8706C657465640A0D000000001A +S31508006FD40100000001000000000000000102030493 +S30D08006FE401020304060708096F S70508000217D9 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/boot.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/boot.dox new file mode 100644 index 00000000..07430378 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM4_STM32_Olimex_STM32E407_Crossworks Bootloader +\brief Bootloader. +\ingroup ARMCM4_STM32_Olimex_STM32E407_Crossworks +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/config.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/config.h index fdf91972..eec20f60 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/config.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 (12000) +/** \brief Desired system speed. */ #define BOOT_CPU_SYSTEM_SPEED_KHZ (168000) +/** \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 (5) @@ -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 (1024) @@ -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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c index b25f0c17..3f4f2025 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/hooks.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 "boot.h" /* bootloader generic header */ @@ -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) @@ -53,11 +53,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) @@ -73,15 +71,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) @@ -97,12 +93,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) @@ -110,20 +104,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) @@ -132,18 +124,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) @@ -152,11 +143,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) @@ -171,13 +160,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) @@ -185,14 +172,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) @@ -210,6 +195,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.srec"; @@ -217,22 +203,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.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) @@ -260,14 +245,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) @@ -277,12 +260,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) @@ -300,12 +281,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) @@ -326,12 +305,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) @@ -348,12 +325,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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs index c163a928..b98f61d2 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/ide/stm32f407_crossworks.hzs @@ -48,9 +48,9 @@ - - + + @@ -63,8 +63,8 @@ - - + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c index ace92ac9..6f40c218 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,12 +45,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,12 +67,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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/bin/demoprog_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/bin/demoprog_olimex_stm32e407.elf index 46f33a40..29b716f9 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/bin/demoprog_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/bin/demoprog_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c index b282161a..6c6be2f0 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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) @@ -116,12 +109,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) @@ -169,11 +160,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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.h index c2719512..b3e3f8c1 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/boot.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/header.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/header.h index 9ac3f046..5e5f8b48 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/header.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs index e3dd723e..6e6c29b1 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/ide/stm32f407_crossworks.hzs @@ -50,9 +50,9 @@ - - + + @@ -65,8 +65,8 @@ - - + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.c index 30557df6..a3e62d07 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.h index fd165b65..77a9c816 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/irq.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.c index 369a1a0f..2f207d23 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -65,11 +67,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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.h index d44b591d..80e0d2aa 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/led.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/main.c index 4b793bfc..9658bea4 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/prog.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/prog.dox new file mode 100644 index 00000000..59f3293f --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks User Program +\brief User Program. +\ingroup ARMCM4_STM32_Olimex_STM32E407_Crossworks +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.c index 8e485d45..8f8209d6 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.h index 3ca6c1c9..b76d4f05 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/timer.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/vectors.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/vectors.c index 6c297a03..eab8f5f9 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/Prog/vectors.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_Crossworks\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_Crossworks +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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[] = { diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/demo.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/demo.dox new file mode 100644 index 00000000..02d700c2 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_Crossworks/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM4_STM32_Olimex_STM32E407_Crossworks Demo for Olimex STM32-E407/Crossworks +\brief Preconfigured programs for the Olimex STM32-E407 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf index 914dcb5e..aee23914 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map index 288c814f..126fb254 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.map @@ -7,40 +7,38 @@ start address 0x08000000 Program Header: LOAD off 0x00008000 vaddr 0x08000000 paddr 0x08000000 align 2**15 - filesz 0x00005d4c memsz 0x00005d4c flags r-x - LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005d4c align 2**15 - filesz 0x0000001c memsz 0x0000001c flags rw- - LOAD off 0x00010020 vaddr 0x20000020 paddr 0x08005d70 align 2**15 - filesz 0x00000000 memsz 0x0000181c flags rw- + filesz 0x00005d40 memsz 0x00005d40 flags r-x + LOAD off 0x00010000 vaddr 0x20000000 paddr 0x08005d40 align 2**15 + filesz 0x0000001c memsz 0x0000183c flags rw- private flags = 5000002: [Version5 EABI] [has entry point] Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00005d4c 08000000 08000000 00008000 2**2 + 0 .text 00005d40 08000000 08000000 00008000 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 0000001c 20000000 08005d4c 00010000 2**2 + 1 .data 0000001c 20000000 08005d40 00010000 2**2 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 0000181c 20000020 08005d70 00010020 2**3 + 2 .bss 0000181c 20000020 08005d60 0001001c 2**3 ALLOC - 3 .debug_info 0000e4c6 00000000 00000000 0001001c 2**0 + 3 .debug_info 0000e4c1 00000000 00000000 0001001c 2**0 CONTENTS, READONLY, DEBUGGING - 4 .debug_abbrev 000027fa 00000000 00000000 0001e4e2 2**0 + 4 .debug_abbrev 000027e9 00000000 00000000 0001e4dd 2**0 CONTENTS, READONLY, DEBUGGING - 5 .debug_loc 0000ac19 00000000 00000000 00020cdc 2**0 + 5 .debug_loc 0000ac20 00000000 00000000 00020cc6 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_aranges 00000be8 00000000 00000000 0002b8f5 2**0 + 6 .debug_aranges 00000be8 00000000 00000000 0002b8e6 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_ranges 00000cb0 00000000 00000000 0002c4dd 2**0 + 7 .debug_ranges 00000cb0 00000000 00000000 0002c4ce 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00004699 00000000 00000000 0002d18d 2**0 + 8 .debug_line 00004696 00000000 00000000 0002d17e 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_str 0000380f 00000000 00000000 00031826 2**0 + 9 .debug_str 0000380f 00000000 00000000 00031814 2**0 CONTENTS, READONLY, DEBUGGING - 10 .comment 00000030 00000000 00000000 00035035 2**0 + 10 .comment 00000030 00000000 00000000 00035023 2**0 CONTENTS, READONLY - 11 .ARM.attributes 00000033 00000000 00000000 00035065 2**0 + 11 .ARM.attributes 00000033 00000000 00000000 00035053 2**0 CONTENTS, READONLY - 12 .debug_frame 00001f1c 00000000 00000000 00035098 2**2 + 12 .debug_frame 00001f1c 00000000 00000000 00035088 2**2 CONTENTS, READONLY, DEBUGGING SYMBOL TABLE: 08000000 l d .text 00000000 .text @@ -59,9 +57,9 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 cstart.c 080001ca l F .text 00000000 zero_loop2 -08005254 l F .text 00000000 zero_loop +08005248 l F .text 00000000 zero_loop 00000000 l df *ABS* 00000000 hooks.c -080053f4 l O .text 00000020 firmwareFilename +080053e8 l O .text 00000020 firmwareFilename 20000020 l O .bss 00000228 logfile 00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 mmc.c @@ -113,13 +111,13 @@ SYMBOL TABLE: 080032b4 l F .text 00000258 dir_register 20000318 l O .bss 00000200 LfnBuf 20000518 l O .bss 00000002 Fsid -08005438 l O .text 00000080 ExCvt -080054b8 l O .text 0000000d LfnOfs +0800542c l O .text 00000080 ExCvt +080054ac l O .text 0000000d LfnOfs 2000051c l O .bss 00000004 FatFs 00000000 l df *ABS* 00000000 unicode.c -080054c8 l O .text 000001e0 tbl_lower.4261 -080056a8 l O .text 00000100 Tbl -080057a8 l O .text 000001e0 tbl_upper.4262 +080054bc l O .text 000001e0 tbl_lower.4261 +0800569c l O .text 00000100 Tbl +0800579c l O .text 000001e0 tbl_upper.4262 00000000 l df *ABS* 00000000 boot.c 00000000 l df *ABS* 00000000 com.c 20000520 l O .bss 00000001 comEntryStateConnect @@ -127,7 +125,7 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 xcp.c 08004038 l F .text 00000010 XcpProtectResources 08004048 l F .text 00000018 XcpSetCtoError -08005988 l O .text 00000008 xcpStationId +0800597c l O .text 00000008 xcpStationId 20000564 l O .bss 0000004c xcpInfo 00000000 l df *ABS* 00000000 backdoor.c 200005b0 l O .bss 00000001 backdoorOpen @@ -153,33 +151,33 @@ SYMBOL TABLE: 08004c4c l F .text 0000007c FlashWriteBlock 08004cc8 l F .text 00000030 FlashInitBlock 08004cf8 l F .text 00000044 FlashSwitchBlock -08004d3c l F .text 000000a0 FlashAddToBlock -08005b50 l O .text 00000030 flashSectorNumToMask -08005b80 l O .text 00000078 flashLayout +08004d3c l F .text 00000092 FlashAddToBlock +08005b44 l O .text 00000030 flashSectorNumToMask +08005b74 l O .text 00000078 flashLayout 20000be8 l O .bss 00000204 bootBlockInfo 20000dec l O .bss 00000204 blockInfo 00000000 l df *ABS* 00000000 uart.c -08004fd4 l F .text 0000002c UartReceiveByte -08005000 l F .text 0000003c UartTransmitByte +08004fc8 l F .text 0000002c UartReceiveByte +08004ff4 l F .text 0000003c UartTransmitByte 20000ff0 l O .bss 00000001 xcpCtoRxLength.7754 20000ff1 l O .bss 00000001 xcpCtoRxInProgress.7755 20000ff4 l O .bss 00000041 xcpCtoReqPacket.7753 00000000 l df *ABS* 00000000 nvm.c 00000000 l df *ABS* 00000000 timer.c -20001038 l O .bss 00000002 millisecond_counter +20001038 l O .bss 00000004 millisecond_counter 00000000 l df *ABS* 00000000 memcpy.c 00000000 l df *ABS* 00000000 ctype_.c 00000000 l df *ABS* 00000000 00000800 l *ABS* 00000000 __STACKSIZE__ 08003fc0 g F .text 00000034 ComInit -08004df4 g F .text 00000054 FlashWrite +08004de8 g F .text 00000054 FlashWrite 08003e40 g F .text 0000005e f_gets 080016fc g F .text 00000020 FLASH_Unlock 08004b9c g F .text 00000018 AssertFailure 0800260c g F .text 0000010a get_fat -0800521c g F .text 0000005c reset_handler +08005210 g F .text 0000005c reset_handler 08001910 g F .text 00000038 GPIO_PinAFConfig -080051d8 g F .text 00000020 TimerUpdate +080051cc g F .text 00000020 TimerUpdate 0800408c g F .text 00000010 XcpPacketTransmitted 08003ff4 g F .text 00000018 ComTask 08001b70 g F .text 0000000c SDIO_ClearFlag @@ -191,19 +189,19 @@ SYMBOL TABLE: 0800442c g F .text 00000020 BackDoorInit 08001ca8 g F .text 0000000c USART_GetFlagStatus 08004450 g F .text 00000002 CopService -08005d4c g .text 00000000 _etext +08005d40 g .text 00000000 _etext 080012e0 g F .text 000001b8 SD_WriteBlock 08003f5c g F .text 00000030 ff_wtoupper -08005280 g F .text 00000174 memcpy +08005274 g F .text 00000174 memcpy 080047d0 g F .text 000003cc FileTask -0800519c g F .text 00000010 TimerReset +08005190 g F .text 00000010 TimerReset 08001534 g F .text 00000034 disk_initialize 08000c1c g F .text 000002e0 SD_GetCardInfo 08001b5c g F .text 00000014 SDIO_GetFlagStatus 08001c9c g F .text 0000000c USART_ReceiveData 08003fa8 g F .text 00000018 BootTask 080014e8 g F .text 0000002e SD_GetState -08004eec g F .text 00000050 FlashWriteChecksum +08004ee0 g F .text 00000050 FlashWriteChecksum 08000efc g F .text 00000084 SD_EnableWideBusOperation 08001a18 g F .text 0000001c RCC_APB2PeriphClockCmd 08001af0 g F .text 0000000c SDIO_GetCommandResponse @@ -217,19 +215,19 @@ SYMBOL TABLE: 08000280 g F .text 00000038 FileFirmwareUpdateCompletedHook 0800407c g F .text 00000010 XcpIsConnected 08003d70 g F .text 000000d0 f_unlink -08005168 g F .text 00000008 NvmInit -08004ddc g F .text 00000018 FlashInit +0800515c g F .text 00000008 NvmInit +08004dd0 g F .text 00000018 FlashInit 0800171c g F .text 00000010 FLASH_Lock -2000103a g .bss 00000000 _ebss +2000103c g .bss 00000000 _ebss 08003ea0 g F .text 00000038 f_putc 08003ed8 g F .text 00000036 f_puts -08005208 g F .text 00000014 UnusedISR +080051fc g F .text 00000014 UnusedISR 08001a9c g F .text 0000000c SDIO_ClockCmd 0800400c g F .text 00000002 ComFree 08001b18 g F .text 0000002c SDIO_DataConfig -0800503c g F .text 00000044 UartInit +08005030 g F .text 00000044 UartInit 08001948 g F .text 000000b4 RCC_GetClocksFreq -08005178 g F .text 00000008 NvmErase +0800516c g F .text 00000008 NvmErase 08001b7c g F .text 000000f4 USART_Init 20000020 g .bss 00000000 _bss 08003b50 g F .text 00000016 f_close @@ -238,7 +236,7 @@ SYMBOL TABLE: 0800172c g F .text 0000000c FLASH_ClearFlag 08001780 g F .text 00000034 FLASH_WaitForLastOperation 080036d8 g F .text 000001c4 f_read -08004f94 g F .text 00000040 FlashDone +08004f88 g F .text 00000040 FlashDone 08000fb0 g F .text 00000174 SD_Init 08000188 g F .text 00000068 EntryFromProg 08000f80 g F .text 00000030 SD_SelectDeselect @@ -247,22 +245,22 @@ SYMBOL TABLE: 08004060 g F .text 0000001c XcpInit 0800475c g F .text 0000002c FileInit 08001b44 g F .text 0000000c SDIO_ReadData -08004e48 g F .text 000000a4 FlashErase +08004e3c g F .text 000000a4 FlashErase 080002b8 g F .text 00000018 FileFirmwareUpdateErrorHook 08000324 g F .text 0000008c main 080017f0 g F .text 00000070 FLASH_EraseSector 08003a9c g F .text 000000b4 f_sync 08001498 g F .text 00000050 SD_SendStatus -08005188 g F .text 00000014 NvmDone +0800517c g F .text 00000014 NvmDone 0800350c g F .text 0000002c f_mount -08005080 g F .text 00000064 UartTransmitPacket -08005180 g F .text 00000008 NvmVerifyChecksum +08005074 g F .text 00000064 UartTransmitPacket +08005174 g F .text 00000008 NvmVerifyChecksum 08004bdc g F .text 00000024 CpuMemCopy 08001afc g F .text 0000001c SDIO_GetResponse 08001cb4 g F .text 000000f8 SystemInit 080027c4 g F .text 0000012e put_fat 08003b68 g F .text 000001bc f_lseek -080050e4 g F .text 00000084 UartReceivePacket +080050d8 g F .text 00000084 UartReceivePacket 0800024c g F .text 00000008 FileGetFirmwareFilenameHook 08001124 g F .text 000001bc SD_ReadBlock 20000000 g .data 00000000 _data @@ -270,12 +268,12 @@ SYMBOL TABLE: 0800444c g F .text 00000002 CopInit 08004c00 g F .text 00000008 CpuReset 080007d0 g F .text 0000002c SD_Detect -08005170 g F .text 00000008 NvmWrite +08005164 g F .text 00000008 NvmWrite 08004bb4 g F .text 00000028 CpuStartUserProgram 080025ec g F .text 0000001e clust2sect 2000183c g .bss 00000000 _estack 08001c90 g F .text 0000000c USART_SendData -08004f3c g F .text 00000058 FlashVerifyChecksum +08004f30 g F .text 00000058 FlashVerifyChecksum 2000001c g .data 00000000 _edata 08004788 g F .text 00000014 FileIsIdle 0800389c g F .text 00000200 f_write @@ -285,21 +283,21 @@ SYMBOL TABLE: 080002d0 g F .text 00000054 FileFirmwareUpdateLogHook 20000018 g O .data 00000004 __ctype_ptr__ 08004030 g F .text 00000008 ComIsConnected -08005c48 g O .text 00000101 _ctype_ +08005c3c g O .text 00000101 _ctype_ 08001a6c g F .text 00000030 SDIO_Init 08000204 g F .text 00000048 FileIsFirmwareUpdateRequestedHook 080007fc g F .text 00000270 SD_PowerON 080019fc g F .text 0000001c RCC_AHB1PeriphClockCmd 08001590 g F .text 00000074 disk_read 080043e8 g F .text 00000044 BackDoorCheck -2000103a g .bss 00000000 _stack +2000103c g .bss 00000000 _stack 08001a34 g F .text 0000001c RCC_APB2PeriphResetCmd 08003f10 g F .text 0000004c ff_convert -080051f8 g F .text 00000010 TimerGet +080051ec g F .text 00000010 TimerGet 08001ab4 g F .text 00000010 SDIO_GetPowerState 08000a6c g F .text 000001b0 SD_InitializeCards 08001904 g F .text 0000000c GPIO_ReadInputDataBit -080051ac g F .text 0000002c TimerInit +080051a0 g F .text 0000002c TimerInit 08001b50 g F .text 0000000c SDIO_WriteData 08000254 g F .text 0000002c FileFirmwareUpdateStartedHook 08001a50 g F .text 0000001c SDIO_DeInit diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec index 7f7c7e0a..424b6153 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1,48 +1,48 @@ S024000062696E2F6F70656E62746C5F6F6C696D65785F73746D3332653430372E737265639F -S315080000003C1800201D520008095200080952000831 -S315080000100952000809520008095200080952000846 -S315080000200952000809520008095200080952000836 -S315080000300952000809520008095200080952000826 -S315080000400952000809520008095200080952000816 -S315080000500952000809520008095200080952000806 -S3150800006009520008095200080952000809520008F6 -S3150800007009520008095200080952000809520008E6 -S3150800008009520008095200080952000809520008D6 -S3150800009009520008095200080952000809520008C6 -S315080000A009520008095200080952000809520008B6 -S315080000B009520008095200080952000809520008A6 -S315080000C00952000809520008095200080952000896 -S315080000D00952000809520008095200080952000886 -S315080000E00952000809520008095200080952000876 -S315080000F00952000809520008095200080952000866 -S315080001000952000809520008095200080952000855 -S315080001100952000809520008095200080952000845 -S315080001200952000809520008095200080952000835 -S315080001300952000809520008095200080952000825 -S315080001400952000809520008095200080952000815 -S315080001500952000809520008095200080952000805 -S3150800016009520008095200080952000809520008F5 -S3150800017009520008095200080952000809520008E5 -S31508000180095200080952000810B572B618481949EC +S315080000003C18002011520008FD510008FD51000857 +S31508000010FD510008FD510008FD510008FD5100087A +S31508000020FD510008FD510008FD510008FD5100086A +S31508000030FD510008FD510008FD510008FD5100085A +S31508000040FD510008FD510008FD510008FD5100084A +S31508000050FD510008FD510008FD510008FD5100083A +S31508000060FD510008FD510008FD510008FD5100082A +S31508000070FD510008FD510008FD510008FD5100081A +S31508000080FD510008FD510008FD510008FD5100080A +S31508000090FD510008FD510008FD510008FD510008FA +S315080000A0FD510008FD510008FD510008FD510008EA +S315080000B0FD510008FD510008FD510008FD510008DA +S315080000C0FD510008FD510008FD510008FD510008CA +S315080000D0FD510008FD510008FD510008FD510008BA +S315080000E0FD510008FD510008FD510008FD510008AA +S315080000F0FD510008FD510008FD510008FD5100089A +S31508000100FD510008FD510008FD510008FD51000889 +S31508000110FD510008FD510008FD510008FD51000879 +S31508000120FD510008FD510008FD510008FD51000869 +S31508000130FD510008FD510008FD510008FD51000859 +S31508000140FD510008FD510008FD510008FD51000849 +S31508000150FD510008FD510008FD510008FD51000839 +S31508000160FD510008FD510008FD510008FD51000829 +S31508000170FD510008FD510008FD510008FD51000819 +S31508000180FD510008FD51000810B572B61848194906 S31508000190016019498D46124B124A9A4211D202F150 S315080001A00403114CE41A24F0030404F104044FF088 S315080001B0000310460D495A581A5003F10403A34286 S315080001C0F9D10E480E494FF000028842B8BF40F8F0 S315080001D0042BFFF6FAAF03F023FF00F0A3F810BDD7 -S315080001E01C000020000000201F0000204C5D0008B5 +S315080001E01C000020000000201F000020405D0008C1 S315080001F008ED00E0000000083C1800202000002060 -S315080002003A10002000B589B04FF00003009301931F +S315080002003C10002000B589B04FF00003009301931D S315080002100293039304930593069307930A48694642 S3150800022003F080FD40B9009B4BB19DF8080080F0B3 S315080002301000C0F3001004E04FF0000001E04FF09A -S31508000240000009B000BD00BFF4530008004870471D -S31508000250F453000808B508484FF0000380F8243224 +S31508000240000009B000BD00BFE85300080048704729 +S31508000250E853000808B508484FF0000380F8243230 S3150800026006494FF00A0203F067F920B94FF0010278 -S31508000270014B83F8242208BD2000002014540008EE +S31508000270014B83F8242208BD2000002008540008FA S3150800028038B50A4B93F82432012B02D1074803F0FC S315080002905FFC074D4FF040042846214601F004FD57 S315080002A00028F9D0034803F063FD38BD200000207C -S315080002B000140140F453000808B5044B93F824329F +S315080002B000140140E853000808B5044B93F82432AB S315080002C0012B02D1014803F043FC08BD20000020A1 S315080002D070B50646114B93F82432012B0BD10F4902 S315080002E003F0FAFD002806DA0C484FF0000380F800 @@ -347,13 +347,13 @@ S31508001580FE021A70014B187808BD00BF040000203F S315080015902DE9F043ADF5037D88461746C8B120E02E S315080015A04FF000094FF40075E619009502A84FEAB6 S315080015B046224B46FFF7B6FDB0B9FFF7ADFF012847 -S315080015C0FBD008EB442002A92A4603F059FE8CB941 +S315080015C0FBD008EB442002A92A4603F053FE8CB947 S315080015D00DE003F1FF34E4B2002BE1D14FF0010036 S315080015E00CE04FF0010009E04FF0010006E04FF073 S315080015F0000003E004F1FF34E4B2D5E70DF5037DFE S31508001600BDE8F0832DE9F043ADF5037D0F4690461E S31508001610E0B123E04FF400754FF0000902A807EB8C -S3150800162044212A4603F02CFE04EB0806009502A87E +S3150800162044212A4603F026FE04EB0806009502A884 S315080016304FEA46224B46FFF753FE08B1052810D15C S31508001640FFF76AFF0128FBD08CB90DE003F1FF34E0 S31508001650E4B2002BDED14FF001000CE04FF00100A0 @@ -714,7 +714,7 @@ S31508002C70D04620465946FFF7A1FE074600283FF4EE S31508002C805BAF10E04FF004070DE006F1FF365FFA80 S31508002C9086F8DDF80890ECE7049C00E0049CDDF873 S31508002CA00890D046E5E7384607B0BDE8F08F00BF84 -S31508002CB0B85400082DE9F04F85B0824688460B784F +S31508002CB0AC5400082DE9F04F85B0824688460B785B S31508002CC02F2B01D05C2B01D108F101084FF000032E S31508002CD0CAF8083098F800301F2B0AD850464FF02B S31508002CE00001FFF719FD02464FF00003CAF8143039 @@ -764,8 +764,8 @@ S31508002F90EEE64FF00004D846A8444FF00407E7E6EB S31508002FA009F1FF3936F819302E2B3FF417AF019B7C S31508002FB012E7019A0B2A7FF445AF39E74FF006026C S31508002FC007E0019B0B2B7FF43DAF31E747F0020783 -S31508002FD05BE7104605B0BDE8F08F00BF2454000833 -S31508002FE038540008305400082DE9F0410446C588D5 +S31508002FD05BE7104605B0BDE8F08F00BF185400083F +S31508002FE02C540008245400082DE9F0410446C588ED S31508002FF0018C4FF6FF73994208BF2946FFF78CFBF1 S315080030000346E0B94FF0E5074FF001064FF0000818 S3150800301020682169FFF762FA034668B96269177082 @@ -791,7 +791,7 @@ S31508003140464602E0464600E0464620463946FFF730 S3150800315035FC054618B92169002986D175B14FF0A5 S31508003160000323610AE003F1FF33DEB2F246ECE71F S31508003170F2464646E9E74FF00405F0E7284603B06D -S31508003180BDE8F08FB85400082DE9F04104460E4614 +S31508003180BDE8F08FAC5400082DE9F04104460E4620 S31508003190012926D98369994226D24FF000074FF0B4 S315080031A0010820463146FFF731FA0546F8B10128ED S315080031B020D0B0F1FF3F20D0204631463A46FFF7EF @@ -847,7 +847,7 @@ S315080034C01BE007F1FF371FFA87F8B8F1000F0DD098 S315080034D06EE706EB020E1EF801EC01F80E708E443C S315080034E08EF80170B2E70C2A9AD9B6E720682169E6 S315080034F0FEF7F4FF82460028C8D0504607B0BDE85C -S31508003500F08F00BF4FECC44EB854000870B9094B91 +S31508003500F08F00BF4FECC44EAC54000870B9094B9D S315080035101B6813B14FF000021A7011B14FF0000387 S315080035200B70044B19604FF0000070474FF00B000A S31508003530704700BF1C0500202DE9F0438FB00191AC @@ -1012,19 +1012,19 @@ S31508003F107F2820D911B9C72808D114E0FF2818D856 S31508003F20A0F180000C4B33F8100070470A4A4FF096 S31508003F30010332F8021F814207D003F101039BB245 S31508003F40802BF6D101E04FF0000303F18000C0B2E8 -S31508003F5070474FF000007047A856000861280BD03C +S31508003F5070474FF0000070479C56000861280BD048 S31508003F6008494FF0000202F1010231F8023F43B15D S31508003F708342F8D113B970474FF00002024B33F869 -S31508003F8012007047C8540008A857000808B500F082 -S31508003F905DFA01F00BF901F0E7F800F0DFFB00F03D +S31508003F8012007047BC5400089C57000808B500F09A +S31508003F905DFA01F005F901F0E1F800F0DFFB00F049 S31508003FA00FF800F043FA08BD08B500F051FA01F021 -S31508003FB013F900F00DFC00F01DF800F015FA08BD25 +S31508003FB00DF900F00DFC00F01DF800F015FA08BD2B S31508003FC000B583B04FF0FF038DF804304FF00003BF -S31508003FD08DF8053000F044F801F030F8044B1B78F2 +S31508003FD08DF8053000F044F801F02AF8044B1B78F8 S31508003FE0012B02D101A800F059F803B000BD00BFAB -S31508003FF02005002008B5044801F074F8012802D10C +S31508003FF02005002008B5044801F06EF8012802D112 S31508004000014800F04BF808BD24050020704700BFA2 -S3150800401008B5C9B201F034F800F038F808BD00BF99 +S3150800401008B5C9B201F02EF800F038F808BD00BF9F S315080040204FF00102014B1A70704700BF20050020AF S3150800403008B500F023F808BD4FF00002014B5A708E S31508004040704700BF64050020044B4FF0FE02DA708B @@ -1066,19 +1066,19 @@ S31508004270FF02DA704FF000021A71597859719A7173 S31508004280DA711A724FF00602A3F8442095E03A4C08 S315080042904FF000032370FFF7CFFE4FF0FF03E370E4 S315080042A04FF00103A4F8443087E0334B986C4FF085 -S315080042B03F0104F1010200F05BFF20B94FF0310025 +S315080042B03F0104F1010200F055FF20B94FF031002B S315080042C0FFF7C2FE79E02C4B4FF0FF02DA709A6CCA S315080042D002F13F029A644FF00102A3F844206CE011 S315080042E043783E2B04D94FF02200FFF7ADFE64E079 S315080042F0214B4FF0FF02DA704FF00102A3F8442079 -S31508004300417841B900F040FF002856D14FF03100FE +S31508004300417841B900F03AFF002856D14FF0310004 S31508004310FFF79AFE51E0184B986C04F1020200F080 -S3150800432027FF20B94FF03100FFF78EFE45E0124B0C +S3150800432021FF20B94FF03100FFF78EFE45E0124B12 S3150800433061789A6C8A189A643FE00F4B4FF0FF0237 S31508004340DA704FF000021A715A714FF040019971F4 S31508004350DA711A725A724FF00702A3F844202CE059 -S31508004360054B986C616800F007FF48B94FF03100BB -S31508004370FFF76AFE21E000BF64050020885900089F +S31508004360054B986C616800F001FF48B94FF03100C1 +S31508004370FFF76AFE21E000BF640500207C590008AB S31508004380184B4FF0FF02DA704FF00102A3F84420F1 S3150800439013E000F035FC134B4FF0FF02DA704FF0D4 S315080043A00102A3F8442008E04FF03100FFF74CFE65 @@ -1087,10 +1087,10 @@ S315080043C0012B03D14FF01000FFF73EFE054B4FF0CF S315080043D0010283F8432003F10300B3F84410FFF702 S315080043E017FE38BD6405002008B5FFF721FE012831 S315080043F017D000F0C9F9A0B10A4B1B78012B10D1D0 -S3150800440000F0FAFE084B1B6803F13203984208D302 +S3150800440000F0F4FE084B1B6803F13203984208D308 S315080044104FF00002034B1A7000F0C0F908B900F01B S31508004420C9FB08BDB0050020B405002008B54FF04B -S315080044300102044B1A7000F0DFFE034B1860FFF709 +S315080044300102044B1A7000F0D9FE034B1860FFF70F S31508004440D3FF08BDB0050020B4050020704700BFA3 S31508004450704700BF00F00F03092802D903F137009F S31508004460704703F13000054B1B681B185B7803F097 @@ -1109,7 +1109,7 @@ S31508004520092A84BFA1F13702D2B202EB001000F0CB S31508004530FF0003F10103022BDFD104E04FF0000076 S3150800454001E04FF0000070BC704700BF1800002063 S315080045502DE9F04F83B080461746894601B120B948 -S315080045607C484FF4157100F019FB98F800307A4A28 +S315080045607C484FF4167100F019FB98F800307A4A27 S315080045701268D118497801F00301022908BF203BC7 S31508004580532B40F0C38098F80130D218527802F0C5 S315080045900402D2B2002A00F0BC80312B00F0C3809E @@ -1140,10 +1140,10 @@ S3150800471007E04FF0000504E04FF6FF7501E04FF0A3 S31508004720000528B212E04FF0000A04E04FF0010A33 S3150800473001E04FF0020A08F10200FFF7D7FE06462D S31508004740019008F1040B05465C4632E703B0BDE864 -S31508004750F08F00BF905900081800002008B54FF0E8 +S31508004750F08F00BF845900081800002008B54FF0F4 S315080047600000064B18700649FEF7D0FE20B1054832 -S315080047704FF0910100F012FA08BD00BFF8050020BD -S315080047800406002090590008034B1878D0F1010060 +S315080047704FF09E0100F012FA08BD00BFF8050020B0 +S315080047800406002084590008034B1878D0F101006C S3150800479038BF0020704700BFF805002008B5FFF7AE S315080047A047FC012809D0094B1B784BB9FBF72AFDB2 S315080047B0012808D1054B187008BD4FF0000008BD48 @@ -1175,7 +1175,7 @@ S31508004940C7FC2E684FEA16602146FFF799FDC6F3A5 S31508004950074004F10201FFF793FDC6F3072004F1AF S315080049600401FFF78DFDF0B204F10601FFF788FD9B S315080049702046FBF7ADFC3B48FBF7AAFC28686968AC -S3150800498000F0FAFB70B92D48FBF7A2FC4FF00500C2 +S3150800498000F0F4FB70B92D48FBF7A2FC4FF00500C8 S31508004990FBF792FC2848FFF7DBF84FF00002234BA1 S315080049A01A7070BD2648FBF793FC4FF003021F4BA5 S315080049B01A7070BD032B40F0D580254D25484FF45D @@ -1186,40 +1186,40 @@ S315080049F070BD00283CD0174A104602F5C07102F572 S31508004A008072FFF7A5FD0446B0F1FF3F30D1174885 S31508004A10FBF75EFC4FF00300FBF74EFC0648FFF77A S31508004A2097F84FF00002014B1A7070BDF805002088 -S31508004A30A8590008CC59000838080020F45900087D -S31508004A40FC590008045A0008285A0008FC050020EA -S31508004A50040600205C0A0020585A0008B805002001 -S31508004A60645A0008085B0008805A0008A45A00081F +S31508004A309C590008C059000838080020E8590008A1 +S31508004A40F0590008F85900081C5A0008FC0500200F +S31508004A50040600205C0A00204C5A0008B80500200D +S31508004A60585A0008FC5A0008745A0008985A000850 S31508004A7023B2002B46DD3C48FBF72AFC24B23B4D0B S31508004A8020462946FFF70EFD2846FBF721FC384845 S31508004A90FBF71EFC374E96F883012946FFF7F0FC14 S31508004AA096F8820105F10201FFF7EAFC96F8810102 S31508004AB005F10401FFF7E4FC96F8800105F106010B S31508004AC0FFF7DEFC2846FBF703FC2B48FBF700FC48 -S31508004AD0D6F88001214606F5807200F049FB70B9C8 +S31508004AD0D6F88001214606F5807200F043FB70B9CE S31508004AE02648FBF7F5FB4FF00600FBF7E5FB2448E5 S31508004AF0FFF72EF84FF00002224B1A7070BD2248BD S31508004B00FBF7E6FB214BD3F83C22D3F840329A4216 -S31508004B1028D11F48FBF7DCFB00F036FB70B91748B5 +S31508004B1028D11F48FBF7DCFB00F030FB70B91748BB S31508004B20FBF7D6FB4FF00700FBF7C6FB1448FFF769 S31508004B300FF84FF00002134B1A7070BD1248FBF7BE S31508004B40C7FB1448FBF7C4FB0D48FFF701F81248EA S31508004B50FBF7BEFB4FF000020A4B1A70FBF790FBFF -S31508004B6000F028F870BD00BFC85A0008B805002034 -S31508004B70D85A00085C0A0020085B0008F4590008A7 -S31508004B8038080020F8050020FC5900080406002013 -S31508004B90F05A00080C5B0008245B000808B5034BB4 +S31508004B6000F028F870BD00BFBC5A0008B805002040 +S31508004B70CC5A00085C0A0020FC5A0008E8590008CC +S31508004B8038080020F8050020F0590008040600201F +S31508004B90E45A0008005B0008185B000808B5034BD8 S31508004BA01860034B1960FFF753FCFCE7E00B002085 -S31508004BB0E40B002008B500F0E3FA50B1FFF726FA37 -S31508004BC000F0ECFA4FF40042024B1A60024B1B68E5 +S31508004BB0E40B002008B500F0DDFA50B1FFF726FA3D +S31508004BC000F0E6FA4FF40042024B1A60024B1B68EB S31508004BD0984708BD08ED00E00480000870B5044653 S31508004BE002F1FF36B6B252B100F101039E190D1A51 S31508004BF0635D04F8013BFFF72BFCB442F8D170BDA6 -S31508004C0008B500F00BFB08BDF8B507464FF00004E1 +S31508004C0008B500F005FB08BDF8B507464FF00004E7 S31508004C1025460D4EFFF71CFCA359BB420BD831198C S31508004C2049685B189F4206D205EB4502064B03EB23 S31508004C308202107AF8BD05F1010504F10C04782CFE -S31508004C40E8D14FF0FF00F8BD805B00082DE9F04180 +S31508004C40E8D14FF0FF00F8BD745B00082DE9F0418C S31508004C5007460068FFF7D8FFFF2830D0FCF74EFD5F S31508004C604FF0F300FCF762FDFCF766FD012818BF5C S31508004C70002404D1FCF752FD4FF0000421E03E6801 @@ -1235,255 +1235,255 @@ S31508004D00984206D00B4B994205D0FFF79FFF18B97A S31508004D100AE0094C00E0064C20462946FFF7D4FF76 S31508004D20002808BF002401E04FF00004204638BDE3 S31508004D30E80B002000800008EC0D00202DE9F84360 -S31508004D4006460C4615461F464FEA51294FEA492999 -S31508004D500268B2F1FF3F03D14946FFF7B5FF88B3B2 +S31508004D4006460C4617461D464FEA51294FEA492999 +S31508004D500368B3F1FF3F03D14946FFF7B5FF50B3E8 S31508004D6033684B4505D030464946FFF7C5FF06462A -S31508004D7060B33368E41A341904F1040407F1FF3800 -S31508004D801FFA88F808F10108A84440F2FF1709F548 -S31508004D900079FFF75DFB06F10403E31ABB4207D966 -S31508004DA030464946FFF7A8FF064698B100F10404C5 -S31508004DB015F8013B04F8013B4545EAD14FF00100DF -S31508004DC0BDE8F8834FF00000BDE8F8834FF0000017 -S31508004DD0BDE8F8834FF00000BDE8F8834FF0FF33D5 -S31508004DE0024A1360024A1360704700BFEC0D0020A8 -S31508004DF0E80B002070B504460D461646FFF704FF7B -S31508004E00FF2814D004F1FF304019FFF7FDFEFF28F4 -S31508004E1010D04FEA5422094BB3EB422F0CBF084877 -S31508004E20084821463246ABB2FFF788FF70BD4FF0FF -S31508004E30000070BD4FF0000070BD00BF0080000884 -S31508004E40E80B0020EC0D0020F8B506460D46FFF7E6 -S31508004E50DBFE044606F1FF304019FFF7D5FE05468E -S31508004E60FF2C3AD0FF283BD084422DD8012C2ED9CE -S31508004E700B282FD8FCF742FC4FF0F300FCF756FC42 -S31508004E80FCF75AFC012804D1FCF748FC4FF0000057 -S31508004E90F8BD154F4FF00206FFF7DAFA37F8140097 -S31508004EA03146FCF7A5FC082804D0FCF737FC4FF080 -S31508004EB00000F8BD04F10104E4B2A542ECD2FCF707 -S31508004EC02DFC4FF00100F8BD4FF00000F8BD4FF083 -S31508004ED00000F8BD4FF00000F8BD4FF00000F8BD27 -S31508004EE04FF00000F8BD00BF505B000800B583B066 -S31508004EF0104B1B68B3F1FF3F18D00E4B99685A68E0 -S31508004F008918DA6889181A6989185A6989189A6984 -S31508004F108A18D9695318C3F1000302AA42F8043D56 -S31508004F2005484FF00401FFF765FF01E04FF0010067 -S31508004F3003B000BDE80B0020888100080E4B1868F6 -S31508004F40A3F104031B68C0180C4B1B68C0180C4B54 -S31508004F501B68C0180B4B1B68C0180B4B1B68C01886 -S31508004F600A4B1B68C0180A4B1B68C018D0F1010011 -S31508004F7038BF0020704700BF04800008088000087A -S31508004F800C800008108000081480000818800008AB -S31508004F908881000808B50D4B1B68B3F1FF3F03D0A5 -S31508004FA00A48FFF753FE58B1094B1B68B3F1FF3F98 -S31508004FB009D00748FFF74AFE003018BF012008BD90 -S31508004FC04FF0000008BD4FF0010008BDE80B0020B7 -S31508004FD0EC0D002010B5044608484FF02001FCF7F8 -S31508004FE063FE012806D10548FCF758FE20704FF0ED -S31508004FF0010010BD4FF0000010BD00BF00140140B5 -S3150800500038B504460C484FF08001FCF74DFE78B1E0 -S3150800501009482146FCF73CFE074D4FF08004284618 -S315080050202146FCF741FE0028F9D04FF0010038BDB3 -S315080050304FF0000038BD00BF0014014010B584B021 -S315080050404FF4614300934FF00003ADF80430ADF818 -S315080050500630ADF80830ADF80C304FF00C03ADF85B -S315080050600A30064C20466946FCF788FD20464FF074 -S315080050700101FCF7FDFD04B010BD00BF001401409E -S315080050802DE9F04106460C46402904D914484FF04C -S315080050907101FFF783FD2046FFF7B2FF012804D010 -S315080050A00F484FF07401FFF779FD2546ACB14FF074 -S315080050B00004DFF82C804FF07C07FFF7C9F9305D54 -S315080050C0FFF79EFF012803D040463946FFF766FDE5 -S315080050D004F10104A3B2AB42EFD3BDE8F08100BFEF -S315080050E0F85B000810B504461B4B1B786BB91B48C8 -S315080050F0FFF770FF012825D14FF00102164B1A70F1 -S315080051004FF00000164B187010BD154B1878154B4C -S31508005110C018FFF75FFF012817D1114B1A7802F163 -S315080051200102D2B21A700D4B1B78934210D1204659 -S315080051300C49FFF753FD4FF00002074B1A704FF06A -S31508005140010010BD4FF0000010BD4FF0000010BD6B -S315080051504FF0000010BD00BFF10F0020F40F002033 -S31508005160F00F0020F50F002008B5FFF737FE08BD41 -S3150800517008B5FFF73FFE08BD08B5FFF765FE08BD91 -S3150800518008B5FFF7DBFE08BD08B5FFF7AFFE10B19F -S31508005190FFF700FF08BD4FF0000008BD4FF0000202 -S315080051A0014B1A60704700BF10E000E008B5FFF732 -S315080051B0F5FF064B064A5A604FF000029A604FF018 -S315080051C005011960034B1A8008BD00BF10E000E016 -S315080051D03F90020038100020054B1B6813F4803FEF -S315080051E004D0044B1A8802F101021A80704700BFE6 -S315080051F010E000E03810002008B5FFF7EDFF014B7E -S31508005200188808BD3810002008B503484FF0360145 -S31508005210FFF7C4FC08BD00BF1C5C000810B572B6D9 -S31508005220114B124A9A4211D202F10403104CE41AA5 -S3150800523024F0030404F104044FF0000310460D495A -S315080052405A581A5003F10403A342F9D10A480B49E4 -S315080052504FF000028842B8BF40F8042BFFF6FAAFB9 -S31508005260FBF760F810BD00BF1C00002000000020FE -S315080052701F0000204C5D0008200000203A10002086 -S31508005280032A2DE9F00F09D82AB10023CC5CC454AF -S3150800529001339342FAD1BDE8F00F70478307024401 -S315080052A00ED0441C4D1C15F8017C04F00306234659 -S315080052B001342946013504F8027C002EF3D100E0BA -S315080052C0034611F003046DD0D71A0D1B032F2E6861 -S315080052D019DDC4F1040C4FEAC4081C1D4FEACC0CB6 -S315080052E055F8047FC4EB0209234604310434B9F1A6 -S315080052F0030F26FA08FA07FA0CFB3E464BEA0A079A -S3150800530044F8087CECDC9A42C5D9013301310132F4 -S3150800531011F8014C01330131934203F8024CF7D1DD -S31508005320B9E70C684033403143F8404C51F83C4CDF -S3150800533043F83C4C51F8384C43F8384C51F8344C47 -S3150800534043F8344C51F8304C43F8304C51F82C4C57 -S3150800535043F82C4C51F8284C43F8284C51F8244C67 -S3150800536043F8244C51F8204C43F8204C51F81C4C77 -S3150800537043F81C4C51F8184C43F8184C51F8144C87 -S3150800538043F8144C51F8104C43F8104C51F80C4C97 -S3150800539043F80C4C51F8084C43F8084C51F8044CA7 -S315080053A043F8044CD41A3F2CBBDC11E00C681033CC -S315080053B0103143F8104C51F80C4C43F80C4C51F88A -S315080053C0084C43F8084C51F8044C43F8044CD41ADA -S315080053D00F2CEBDC032C96DD1C1D0D1D55F8047CEB -S315080053E0161B2346294604340435032E44F8087C44 -S315080053F0F4DC88E72F64656D6F70726F675F6F6C9A -S31508005400696D65785F73746D3332653430372E7322 -S31508005410726563002F626F6F746C6F672E74787491 -S3150800542000000000222A3A3C3E3F7C7F0000000034 -S315080054302B2C3B3D5B5D0000809A90418E418F800E -S315080054404545454949498E8F9092924F994F5555F2 -S3150800545059999A9B9C9D9E9F41494F55A5A5A6A7DC -S31508005460A8A9AAABAC21AEAFB0B1B2B3B4B5B6B7C2 -S31508005470B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C726 -S31508005480C8C9CACBCCCDCECFD0D1D2D3D4D5D6D716 -S31508005490D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E706 -S315080054A0E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F6 -S315080054B0F8F9FAFBFCFDFEFF01030507090E1012B9 -S315080054C01416181C1E0000006100620063006400C8 -S315080054D0650066006700680069006A006B006C007A -S315080054E06D006E006F00700071007200730074002A -S315080054F0750076007700780079007A00A100A2008E -S31508005500A300A500AC00AF00E000E100E200E30064 -S31508005510E400E500E600E700E800E900EA00EB0041 -S31508005520EC00ED00EE00EF00F000F100F200F300F1 -S31508005530F400F500F600F800F900FA00FB00FC009C -S31508005540FD00FE00FF000101030105010701090135 -S315080055500B010D010F0111011301150117011901A5 -S315080055601B011D011F012101230125012701290115 -S315080055702B012D012F0131013301350137013A0184 -S315080055803C013E01400142014401460148014B01EC -S315080055904D014F01510153015501570159015B0155 -S315080055A05D015F01610163016501670169016B01C5 -S315080055B06D016F0171017301750177017A017C0133 -S315080055C07E019201B103B203B303B403B503B60374 -S315080055D0B703B803B903BA03BB03BC03BD03BE03D1 -S315080055E0BF03C003C103C303C403C503C603C7037C -S315080055F0C803C903CA03300431043204330434042B -S31508005600350436043704380439043A043B043C04A8 -S315080056103D043E043F044004410442044304440458 -S31508005620450446044704480449044A044B044C0408 -S315080056304D044E044F0451045204530454045504B3 -S3150800564056045704580459045A045B045C045E045F -S315080056505F047021712172217321742175217621CD -S315080056607721782179217A217B217C217D217E2150 -S315080056707F2141FF42FF43FF44FF45FF46FF47FFA7 -S3150800568048FF49FF4AFF4BFF4CFF4DFF4EFF4FFFB8 -S3150800569050FF51FF52FF53FF54FF55FF56FF57FF68 -S315080056A058FF59FF5AFF0000C700FC00E900E20056 -S315080056B0E400E000E500E700EA00EB00E800EF00A0 -S315080056C0EE00EC00C400C500C900E600C600F40000 -S315080056D0F600F200FB00F900FF00D600DC00A2008D -S315080056E0A300A500A7209201E100ED00F300FA004F -S315080056F0F100D100AA00BA00BF001023AC00BD001B -S31508005700BC00A100AB00BB0091259225932502257C -S3150800571024256125622556255525632551255725B6 -S315080057205D255C255B251025142534252C251C258F -S3150800573000253C255E255F255A25542569256625BD -S31508005740602550256C256725682564256525592516 -S315080057505825522553256B256A2518250C25882595 -S3150800576084258C2590258025B103DF009303C0038B -S31508005770A303C303B500C403A6039803A903B4038C -S315080057801E22C603B50329226122B10065226422BE -S3150800579020232123F7004822B0001922B7001A2235 -S315080057A07F20B200A025A00041004200430044002B -S315080057B0450046004700480049004A004B004C0097 -S315080057C04D004E004F005000510052005300540047 -S315080057D0550056005700580059005A002100E0FFAE -S315080057E0E1FFE5FFE2FFE3FFC000C100C200C3001E -S315080057F0C400C500C600C700C800C900CA00CB005F -S31508005800CC00CD00CE00CF00D000D100D200D3000E -S31508005810D400D500D600D800D900DA00DB00DC00B9 -S31508005820DD00DE007801000102010401060108011D -S315080058300A010C010E0110011201140116011801CA -S315080058401A011C011E01200122012401260128013A -S315080058502A012C012E0130013201340136013901A9 -S315080058603B013D013F0141014301450147014A0111 -S315080058704C014E01500152015401560158015A017A -S315080058805C015E01600162016401660168016A01EA -S315080058906C016E01700172017401760179017B0158 -S315080058A07D01910191039203930394039503960353 -S315080058B09703980399039A039B039C039D039E03EE -S315080058C09F03A003A103A303A403A503A603A70399 -S315080058D0A803A903AA031004110412041304140448 -S315080058E0150416041704180419041A041B041C04C6 -S315080058F01D041E041F042004210422042304240476 -S31508005900250426042704280429042A042B042C0425 -S315080059102D042E042F0401040204030404040504C0 -S3150800592006040704080409040A040B040C040E04FC -S315080059300F046021612162216321642165216621AA -S315080059406721682169216A216B216C216D216E21ED -S315080059506F2121FF22FF23FF24FF25FF26FF27FFB4 -S3150800596028FF29FF2AFF2BFF2CFF2DFF2EFF2FFFD5 -S3150800597030FF31FF32FF33FF34FF35FF36FF37FF85 -S3150800598038FF39FF3AFF00004F70656E424C5400ED -S315080059902E2E2F2E2E2F2E2E2F536F757263652FB8 -S315080059A066696C652E6300004669726D776172657B -S315080059B020757064617465207265717565737420ED -S315080059C064657465637465640A0D00004F70656EDE -S315080059D0696E67206669726D776172652066696CA3 -S315080059E06520666F722072656164696E672E2E2E59 -S315080059F0000000004552524F520A0D004F4B0A0D47 -S31508005A00000000005374617274696E6720746865DB -S31508005A102070726F6772616D6D696E67207365714C -S31508005A2075656E63650A0D0050617273696E67204D -S31508005A306669726D776172652066696C6520746F38 -S31508005A40206F627461696E2065726173652073697F -S31508005A507A652E2E2E00000045726173696E6720E6 -S31508005A60000000002062797465732066726F6D20ED -S31508005A706D656D6F727920617420307800000000C2 -S31508005A8052656164696E67206C696E652066726F1F -S31508005A906D2066696C652E2E2E4552524F520A0DA0 -S31508005AA000000000496E76616C696420636865636E -S31508005AB06B73756D20666F756E642E2E2E45525269 -S31508005AC04F520A0D0000000050726F6772616D6DCB -S31508005AD0696E67200000000020627974657320747F -S31508005AE06F206D656D6F72792061742030780000C3 -S31508005AF057726974696E672070726F6772616D207C -S31508005B00636865636B73756D2E2E2E00436C6F7319 -S31508005B10696E67206669726D776172652066696C61 -S31508005B20650A0D004669726D776172652075706445 -S31508005B30617465207375636365737366756C6C79D8 -S31508005B4020636F6D706C657465640A0D0000000053 -S31508005B500000080010001800200028003000380057 -S31508005B6040004800500058008000880090009800C7 -S31508005B70A000A800B000B800C000C800D000D80037 -S31508005B8000800008004000000200000000C0000875 -S31508005B9000400000030000000000010800000100AA -S31508005BA004000000000002080000020005000000D2 -S31508005BB000000408000002000600000000000608B5 -S31508005BC000000200070000000000080800000200AC -S31508005BD00800000000000A08000002000900000092 -S31508005BE000000C08000002000A00000000000E0871 -S31508005BF0000002000B0000002E2E2F2E2E2F2E2E18 -S31508005C002F536F757263652F41524D434D345F5361 -S31508005C10544D33322F756172742E63002E2E2F2E3B -S31508005C202E2F2E2E2F536F757263652F41524D43BB -S31508005C304D345F53544D33322F4743432F766563B4 -S31508005C40746F72732E63000000202020202020200D -S31508005C50202028282828282020202020202020200E -S31508005C60202020202020202020881010101010101E -S31508005C70101010101010101010040404040404046A -S31508005C800404041010101010101041414141414104 -S31508005C9001010101010101010101010101010101E6 -S31508005CA001010101101010101010424242424242F6 -S31508005CB002020202020202020202020202020202B6 -S31508005CC0020202021010101020000000000000005E +S31508004D7028B33368E41A341904F1040440F2FF181E +S31508004D8009F50079FFF764FB06F10403E31A4345C6 +S31508004D9007D930464946FFF7AFFF064698B100F1F6 +S31508004DA0040417F8013B04F8013B013DEAD14FF032 +S31508004DB00100BDE8F8834FF00000BDE8F8834FF026 +S31508004DC00000BDE8F8834FF00000BDE8F88300BF97 +S31508004DD04FF0FF33024A1360024A1360704700BF60 +S31508004DE0EC0D0020E80B002070B504460D4616466B +S31508004DF0FFF70AFFFF2814D004F1FF304019FFF728 +S31508004E0003FFFF2810D04FEA5422094BB3EB422F79 +S31508004E100CBF08480848214632462B46FFF78EFF46 +S31508004E2070BD4FF0000070BD4FF0000070BD00BFB0 +S31508004E3000800008E80B0020EC0D0020F8B50646B7 +S31508004E400D46FFF7E1FE044606F1FF304019FFF76D +S31508004E50DBFE0546FF2C3AD0FF283BD084422DD8EE +S31508004E60012C2ED90B282FD8FCF748FC4FF0F3005D +S31508004E70FCF75CFCFCF760FC012804D1FCF74EFC4F +S31508004E804FF00000F8BD154F4FF00206FFF7E0FAA5 +S31508004E9037F814003146FCF7ABFC082804D0FCF7B9 +S31508004EA03DFC4FF00000F8BD04F10104E4B2A54250 +S31508004EB0ECD2FCF733FC4FF00100F8BD4FF00000D0 +S31508004EC0F8BD4FF00000F8BD4FF00000F8BD4FF0F8 +S31508004ED00000F8BD4FF00000F8BD00BF445B0008B5 +S31508004EE000B583B0104B1B68B3F1FF3F18D00E4BCB +S31508004EF099685A688918DA6889181A6989185A6976 +S31508004F0089189A698A18D9695318C3F1000302AA3D +S31508004F1042F8043D05484FF00401FFF765FF01E03C +S31508004F204FF0010003B000BDE80B0020888100089F +S31508004F300E4B1868A3F104031B68C0180C4B1B68BA +S31508004F40C0180C4B1B68C0180B4B1B68C0180B4BC2 +S31508004F501B68C0180A4B1B68C0180A4B1B68C01888 +S31508004F60D0F1010038BF0020704700BF0480000858 +S31508004F70088000080C8000081080000814800008CB +S31508004F80188000088881000808B50D4B1B68B3F126 +S31508004F90FF3F03D00A48FFF759FE58B1094B1B6873 +S31508004FA0B3F1FF3F09D00748FFF750FE003018BF9E +S31508004FB0012008BD4FF0000008BD4FF0010008BDF4 +S31508004FC0E80B0020EC0D002010B5044608484FF009 +S31508004FD02001FCF769FE012806D10548FCF75EFEAC +S31508004FE020704FF0010010BD4FF0000010BD00BF4B +S31508004FF00014014038B504460C484FF08001FCF710 +S3150800500053FE78B109482146FCF742FE074D4FF09A +S31508005010800428462146FCF747FE0028F9D04FF0C1 +S31508005020010038BD4FF0000038BD00BF0014014034 +S3150800503010B584B04FF4614300934FF00003ADF808 +S315080050400430ADF80630ADF80830ADF80C304FF046 +S315080050500C03ADF80A30064C20466946FCF78EFD6F +S3150800506020464FF00101FCF703FE04B010BD00BF57 +S31508005070001401402DE9F04106460C46402904D9A2 +S3150800508014484FF07601FFF789FD2046FFF7B2FF77 +S31508005090012804D00F484FF07901FFF77FFD254618 +S315080050A0ACB14FF00004DFF82C804FF08107FFF712 +S315080050B0CFF9305DFFF79EFF012803D040463946F9 +S315080050C0FFF76CFD04F10104A3B2AB42EFD3BDE8D0 +S315080050D0F08100BFEC5B000810B504461B4B1B783B +S315080050E06BB91B48FFF770FF012825D14FF0010265 +S315080050F0164B1A704FF00000164B187010BD154B62 +S315080051001878154BC018FFF75FFF012817D1114B08 +S315080051101A7802F10102D2B21A700D4B1B7893422B +S3150800512010D120460C49FFF759FD4FF00002074BF6 +S315080051301A704FF0010010BD4FF0000010BD4FF07F +S31508005140000010BD4FF0000010BD00BFF10F002099 +S31508005150F40F0020F00F0020F50F002008B5FFF728 +S3150800516037FE08BD08B5FFF73FFE08BD08B5FFF7CF +S3150800517065FE08BD08B5FFF7DBFE08BD08B5FFF7F5 +S31508005180AFFE10B1FFF700FF08BD4FF0000008BDE5 +S315080051904FF00002014B1A60704700BF10E000E0B4 +S315080051A008B5FFF7F5FF064B064A5A604FF00002AE +S315080051B09A604FF005011960034B1A6008BD00BFDD +S315080051C010E000E03F90020038100020054B1B68F5 +S315080051D013F4803F04D0044B1A6802F101021A60E6 +S315080051E0704700BF10E000E03810002008B5FFF750 +S315080051F0EDFF014B186808BD3810002008B50348B4 +S315080052004FF03601FFF7CAFC08BD00BF105C000866 +S3150800521010B572B6114B124A9A4211D202F1040322 +S31508005220104CE41A24F0030404F104044FF00003BC +S3150800523010460D495A581A5003F10403A342F9D1EE +S315080052400A480B494FF000028842B8BF40F8042BC1 +S31508005250FFF6FAAFFBF766F810BD00BF1C0000208A +S31508005260000000201F000020405D000820000020EC +S315080052703C100020032A2DE9F00F09D82AB1002393 +S31508005280CC5CC45401339342FAD1BDE8F00F7047A1 +S31508005290830702440ED0441C4D1C15F8017C04F00B +S315080052A00306234601342946013504F8027C002EFC +S315080052B0F3D100E0034611F003046DD0D71A0D1B95 +S315080052C0032F2E6819DDC4F1040C4FEAC4081C1D0F +S315080052D04FEACC0C55F8047FC4EB02092346043187 +S315080052E00434B9F1030F26FA08FA07FA0CFB3E460E +S315080052F04BEA0A0744F8087CECDC9A42C5D9013324 +S315080053000131013211F8014C01330131934203F89E +S31508005310024CF7D1B9E70C684033403143F8404CAA +S3150800532051F83C4C43F83C4C51F8384C43F8384C4F +S3150800533051F8344C43F8344C51F8304C43F8304C5F +S3150800534051F82C4C43F82C4C51F8284C43F8284C6F +S3150800535051F8244C43F8244C51F8204C43F8204C7F +S3150800536051F81C4C43F81C4C51F8184C43F8184C8F +S3150800537051F8144C43F8144C51F8104C43F8104C9F +S3150800538051F80C4C43F80C4C51F8084C43F8084CAF +S3150800539051F8044C43F8044CD41A3F2CBBDC11E0FA +S315080053A00C681033103143F8104C51F80C4C43F884 +S315080053B00C4C51F8084C43F8084C51F8044C43F887 +S315080053C0044CD41A0F2CEBDC032C96DD1C1D0D1D8A +S315080053D055F8047C161B2346294604340435032E47 +S315080053E044F8087CF4DC88E72F64656D6F70726F8B +S315080053F0675F6F6C696D65785F73746D333265349A +S3150800540030372E73726563002F626F6F746C6F6727 +S315080054102E74787400000000222A3A3C3E3F7C7FB6 +S31508005420000000002B2C3B3D5B5D0000809A9041FC +S315080054308E418F804545454949498E8F9092924FB6 +S31508005440994F555559999A9B9C9D9E9F41494F55F1 +S31508005450A5A5A6A7A8A9AAABAC21AEAFB0B1B2B311 +S31508005460B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C376 +S31508005470C4C5C6C7C8C9CACBCCCDCECFD0D1D2D366 +S31508005480D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E356 +S31508005490E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F346 +S315080054A0F4F5F6F7F8F9FAFBFCFDFEFF010305072C +S315080054B0090E10121416181C1E0000006100620066 +S315080054C063006400650066006700680069006A009A +S315080054D06B006C006D006E006F007000710072004A +S315080054E073007400750076007700780079007A00FA +S315080054F0A100A200A300A500AC00AF00E000E100F7 +S31508005500E200E300E400E500E600E700E800E90061 +S31508005510EA00EB00EC00ED00EE00EF00F000F10011 +S31508005520F200F300F400F500F600F800F900FA00BE +S31508005530FB00FC00FD00FE00FF0001010301050160 +S31508005540070109010B010D010F01110113011501D5 +S31508005550170119011B011D011F0121012301250145 +S31508005560270129012B012D012F01310133013501B5 +S3150800557037013A013C013E0140014201440146011E +S3150800558048014B014D014F01510153015501570186 +S3150800559059015B015D015F016101630165016701F5 +S315080055A069016B016D016F01710173017501770165 +S315080055B07A017C017E019201B103B203B303B403FD +S315080055C0B503B603B703B803B903BA03BB03BC03F1 +S315080055D0BD03BE03BF03C003C103C303C403C5039E +S315080055E0C603C703C803C903CA0330043104320417 +S315080055F033043404350436043704380439043A04C9 +S315080056003B043C043D043E043F0440044104420478 +S3150800561043044404450446044704480449044A0428 +S315080056204B044C044D044E044F04510452045304D5 +S315080056305404550456045704580459045A045B0480 +S315080056405C045E045F047021712172217321742148 +S31508005650752176217721782179217A217B217C2170 +S315080056607D217E217F2141FF42FF43FF44FF45FF05 +S3150800567046FF47FF48FF49FF4AFF4BFF4CFF4DFFD8 +S315080056804EFF4FFF50FF51FF52FF53FF54FF55FF88 +S3150800569056FF57FF58FF59FF5AFF0000C700FC0086 +S315080056A0E900E200E400E000E500E700EA00EB00BC +S315080056B0E800EF00EE00EC00C400C500C900E600F3 +S315080056C0C600F400F600F200FB00F900FF00D60061 +S315080056D0DC00A200A300A500A7209201E100ED00CE +S315080056E0F300FA00F100D100AA00BA00BF001023A7 +S315080056F0AC00BD00BC00A100AB00BB009125922503 +S3150800570093250225242561256225562555256325D9 +S31508005710512557255D255C255B251025142534253F +S315080057202C251C2500253C255E255F255A25542554 +S3150800573069256625602550256C2567256825642515 +S31508005740652559255825522553256B256A2518257B +S315080057500C25882584258C2590258025B103DF0016 +S315080057609303C003A303C303B500C403A6039803A6 +S31508005770A903B4031E22C603B50329226122B10078 +S315080057806522642220232123F7004822B00019222B +S31508005790B7001A227F20B200A025A00041004200CF +S315080057A043004400450046004700480049004A00B7 +S315080057B04B004C004D004E004F0050005100520067 +S315080057C053005400550056005700580059005A0017 +S315080057D02100E0FFE1FFE5FFE2FFE3FFC000C100B3 +S315080057E0C200C300C400C500C600C700C800C9007F +S315080057F0CA00CB00CC00CD00CE00CF00D000D1002F +S31508005800D200D300D400D500D600D800D900DA00DB +S31508005810DB00DC00DD00DE00780100010201040186 +S31508005820060108010A010C010E01100112011401FA +S31508005830160118011A011C011E012001220124016A +S31508005840260128012A012C012E01300132013401DA +S31508005850360139013B013D013F0141014301450143 +S3150800586047014A014C014E015001520154015601AB +S3150800587058015A015C015E0160016201640166011A +S3150800588068016A016C016E0170017201740176018A +S3150800589079017B017D01910191039203930394039E +S315080058A0950396039703980399039A039B039C030E +S315080058B09D039E039F03A003A103A303A403A503BB +S315080058C0A603A703A803A903AA0310041104120434 +S315080058D013041404150416041704180419041A04E6 +S315080058E01B041C041D041E041F0420042104220496 +S315080058F023042404250426042704280429042A0446 +S315080059002B042C042D042E042F0401040204030482 +S315080059100404050406040704080409040A040B041D +S315080059200C040E040F0460216121622163216421A5 +S31508005930652166216721682169216A216B216C210D +S315080059406D216E216F2121FF22FF23FF24FF25FFF2 +S3150800595026FF27FF28FF29FF2AFF2BFF2CFF2DFFF5 +S315080059602EFF2FFF30FF31FF32FF33FF34FF35FFA5 +S3150800597036FF37FF38FF39FF3AFF00004F70656E74 +S31508005980424C54002E2E2F2E2E2F2E2E2F536F754F +S315080059907263652F66696C652E6300004669726DD1 +S315080059A077617265207570646174652072657175BA +S315080059B06573742064657465637465640A0D000014 +S315080059C04F70656E696E67206669726D776172657C +S315080059D02066696C6520666F722072656164696EFF +S315080059E0672E2E2E000000004552524F520A0D0017 +S315080059F04F4B0A0D000000005374617274696E679C +S31508005A00207468652070726F6772616D6D696E6764 +S31508005A102073657175656E63650A0D005061727352 +S31508005A20696E67206669726D776172652066696C52 +S31508005A306520746F206F627461696E206572617388 +S31508005A40652073697A652E2E2E00000045726173F3 +S31508005A50696E67200000000020627974657320660D +S31508005A60726F6D206D656D6F727920617420307864 +S31508005A700000000052656164696E67206C696E6596 +S31508005A802066726F6D2066696C652E2E2E45525201 +S31508005A904F520A0D00000000496E76616C69642059 +S31508005AA0636865636B73756D20666F756E642E2EFD +S31508005AB02E4552524F520A0D0000000050726F6771 +S31508005AC072616D6D696E672000000000206279744E +S31508005AD0657320746F206D656D6F7279206174200F +S31508005AE03078000057726974696E672070726F6744 +S31508005AF072616D20636865636B73756D2E2E2E005B +S31508005B00436C6F73696E67206669726D776172653B +S31508005B102066696C650A0D004669726D7761726563 +S31508005B202075706461746520737563636573736645 +S31508005B30756C6C7920636F6D706C657465640A0D9D +S31508005B4000000000000008001000180020002800CF +S31508005B503000380040004800500058008000880097 +S31508005B6090009800A000A800B000B800C000C800C7 +S31508005B70D000D800008000080040000002000000A5 +S31508005B8000C00008004000000300000000000108F3 +S31508005B9000000100040000000000020800000200E6 +S31508005BA005000000000004080000020006000000CE +S31508005BB000000608000002000700000000000808B0 +S31508005BC0000002000800000000000A0800000200A9 +S31508005BD00900000000000C08000002000A0000008E +S31508005BE000000E08000002000B0000002E2E2F2ECB +S31508005BF02E2F2E2E2F536F757263652F41524D43EC +S31508005C004D345F53544D33322F756172742E6300D1 +S31508005C102E2E2F2E2E2F2E2E2F536F757263652F35 +S31508005C2041524D434D345F53544D33322F4743430E +S31508005C302F766563746F72732E6300000020202030 +S31508005C40202020202020282828282820202020201E +S31508005C5020202020202020202020202020881010EE +S31508005C60101010101010101010101010100404044A +S31508005C700404040404040410101010101010414108 +S31508005C8041414141010101010101010101010101F6 +S31508005C90010101010101010110101010101042420A +S31508005CA042424242020202020202020202020202C6 +S31508005CB00202020202020202101010102000000066 +S31508005CC000000000000000000000000000000000C6 S31508005CD000000000000000000000000000000000B6 S31508005CE000000000000000000000000000000000A6 S31508005CF00000000000000000000000000000000096 @@ -1491,7 +1491,6 @@ S31508005D000000000000000000000000000000000085 S31508005D100000000000000000000000000000000075 S31508005D200000000000000000000000000000000065 S31508005D300000000000000000000000000000000055 -S31108005D4000000000000000000000000049 -S31508005D4C010000000100000000000000010203042D -S31108005D5C0102030406070809485C000859 +S31508005D400100000001000000000000000102030439 +S31108005D5001020304060708093C5C000871 S70508000000F2 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/boot.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/boot.dox new file mode 100644 index 00000000..bedf3c54 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM4_STM32_Olimex_STM32E407_GCC Bootloader +\brief Bootloader. +\ingroup ARMCM4_STM32_Olimex_STM32E407_GCC +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/config.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/config.h index fdf91972..67d0c60f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/config.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 (12000) +/** \brief Desired system speed. */ #define BOOT_CPU_SYSTEM_SPEED_KHZ (168000) +/** \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 (5) @@ -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 (1024) @@ -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/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c index b25f0c17..bb4b86e7 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/hooks.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 "boot.h" /* bootloader generic header */ @@ -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) @@ -53,11 +53,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) @@ -73,15 +71,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) @@ -97,12 +93,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) @@ -110,20 +104,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) @@ -132,18 +124,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) @@ -152,11 +143,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) @@ -171,13 +160,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) @@ -185,14 +172,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) @@ -210,6 +195,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.srec"; @@ -217,22 +203,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.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) @@ -260,14 +245,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) @@ -277,12 +260,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) @@ -300,12 +281,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) @@ -326,12 +305,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) @@ -348,12 +325,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/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c index ace92ac9..74e3697e 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,12 +45,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,12 +67,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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/bin/demoprog_olimex_stm32e407.elf b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/bin/demoprog_olimex_stm32e407.elf index 4ec26694..2957df55 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/bin/demoprog_olimex_stm32e407.elf and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/bin/demoprog_olimex_stm32e407.elf differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c index b282161a..edaa0fbd 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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) @@ -116,12 +109,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) @@ -169,11 +160,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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.h index c2719512..1e5edab7 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/boot.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/cstart.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/cstart.c index 4e697032..826cb64b 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/cstart.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\cstart.c +* \brief Demo program C startup source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/header.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/header.h index 9ac3f046..e8738542 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/header.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.c index 30557df6..8889843d 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.h index fd165b65..4a5f6b8f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/irq.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.c index 369a1a0f..f317385d 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -65,11 +67,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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.h index d44b591d..abf8ffed 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/led.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/main.c index 4b793bfc..6c16174f 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/prog.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/prog.dox new file mode 100644 index 00000000..c21e9d32 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC User Program +\brief User Program. +\ingroup ARMCM4_STM32_Olimex_STM32E407_GCC +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.c index 8e485d45..75485260 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.h index 3ca6c1c9..6eafb838 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/timer.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/vectors.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/vectors.c index ac1e12fd..ca6a1ec6 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/Prog/vectors.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_GCC\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_GCC +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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[] = { diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/demo.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/demo.dox new file mode 100644 index 00000000..7ce97bee --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_GCC/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM4_STM32_Olimex_STM32E407_GCC Demo for Olimex STM32-E407/GCC +\brief Preconfigured programs for the Olimex STM32-E407 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out index f9f7566d..61f91f06 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.out differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec index cb240dbb..a1c6f9f5 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/bin/openbtl_olimex_stm32e407.srec @@ -1,31 +1,31 @@ S02000006F70656E62746C5F6F6C696D65785F73746D3332653430372E737265630B -S3150800000028180020F957000879650008796500085E -S31508000010796500087965000879650008796500083A -S31508000020796500087965000879650008796500082A -S31508000030796500087965000879650008796500081A -S31508000040796500087965000879650008796500080A -S3150800005079650008796500087965000879650008FA -S3150800006079650008796500087965000879650008EA -S3150800007079650008796500087965000879650008DA -S3150800008079650008796500087965000879650008CA -S3150800009079650008796500087965000879650008BA -S315080000A079650008796500087965000879650008AA -S315080000B0796500087965000879650008796500089A -S315080000C0796500087965000879650008796500088A -S315080000D0796500087965000879650008796500087A -S315080000E0796500087965000879650008796500086A -S315080000F0796500087965000879650008796500085A -S315080001007965000879650008796500087965000849 -S315080001107965000879650008796500087965000839 -S315080001207965000879650008796500087965000829 -S315080001307965000879650008796500087965000819 -S315080001407965000879650008796500087965000809 -S3150800015079650008796500087965000879650008F9 -S3150800016079650008796500087965000879650008E9 -S3150800017079650008796500087965000879650008D9 -S30D0800018079650008796500089D +S3150800000028180020F557000875650008756500086A +S31508000010756500087565000875650008756500084A +S31508000020756500087565000875650008756500083A +S31508000030756500087565000875650008756500082A +S31508000040756500087565000875650008756500081A +S31508000050756500087565000875650008756500080A +S3150800006075650008756500087565000875650008FA +S3150800007075650008756500087565000875650008EA +S3150800008075650008756500087565000875650008DA +S3150800009075650008756500087565000875650008CA +S315080000A075650008756500087565000875650008BA +S315080000B075650008756500087565000875650008AA +S315080000C0756500087565000875650008756500089A +S315080000D0756500087565000875650008756500088A +S315080000E0756500087565000875650008756500087A +S315080000F0756500087565000875650008756500086A +S315080001007565000875650008756500087565000859 +S315080001107565000875650008756500087565000849 +S315080001207565000875650008756500087565000839 +S315080001307565000875650008756500087565000829 +S315080001407565000875650008756500087565000819 +S315080001507565000875650008756500087565000809 +S3150800016075650008756500087565000875650008F9 +S3150800017075650008756500087565000875650008E9 +S30D080001807565000875650008A5 S31508000188044B9D46C046C046C046C04604F061FCBE -S3150800019805F046FC2818002030B403000C001500AA +S3150800019805F044FC2818002030B403000C001500AC S315080001A86A1E002D04D025781D70641C5B1CF6E7B2 S315080001B830BC704710B403001400621E002C02D02D S315080001C819705B1CF8E710BC704770B403001C0074 @@ -338,7 +338,7 @@ S315080014E86B10090251EA004094F86A100843DFF8BD S315080014F88416884201D1002010E094F8880094F8F0 S315080015088710090251EA004094F886100843DFF864 S315080015186416884201D1002000E0012032BD00008F -S31508001528486500082DE9F74F86B00698D0F8009068 +S31508001528446500082DE9F74F86B00698D0F800906C S3150800153899F800003038019001980A2809D299F8D4 S3150800154801003A2805D119F102090698C0F8009051 S3150800155801E0002001900798002101600198002801 @@ -438,8 +438,8 @@ S31508001B28E0612762F6B2002E19D1A571390000982E S31508001B38FEF726FF2061F87FB97F090451EA00609D S31508001B48797F50EA0120397F0843E0600020A060C9 S31508001B580020A061009820600098C088A080300006 -S31508001B68C0B20DB0BDE8F08388650008B06100080A -S31508001B78AC650008464154002DE9FA4F83B00400C5 +S31508001B68C0B20DB0BDE8F08384650008AC61000812 +S31508001B78A8650008464154002DE9FA4F83B00400C9 S31508001B881500DDF80CB00498002101602000FFF765 S31508001B98ECFE8DF804009DF80400002802D09DF894 S31508001BA80400E8E0A079000601D50220E3E0A07960 @@ -569,7 +569,7 @@ S31508002358E4B2002C14D100A8FEF727FE0400E4B264 S31508002368002C0DD1002E04D031000098FEF73AF95A S315080023780400E4B2002C03D10098FDF78AFF040094 S315080023882000C0B216B070BD00000000525261416C -S315080023987272416118100020A00A00202DE9F04346 +S31508002398727241611C100020A00A00202DE9F04342 S315080023A883B004000D0016000027A146681E874260 S315080023B81ADA00AB012201A93000FFF7DDFB009805 S315080023C8012811D19DF8040080465FFA88F8B8F10B @@ -817,7 +817,7 @@ S315080032D8A00240218160DFF898020021C160DFF86A S315080032E890024FF480610161DFF8840200F049FD1D S315080032F80D2000F065F80500EDB2002D02D0280073 S31508003308C0B205E0002000F054FD20602800C0B2D5 -S3150800331832BD00001E1000201410002010100020D6 +S3150800331832BD0000201000201410002010100020D4 S315080033282C2C0140A40F0020342C014038B5002469 S315080033385FF480300500002D06D0802000F061FD7E S31508003348002801D16D1EF6E7002D04D103200400DC @@ -977,8 +977,8 @@ S31508003CD833F8103092B29A4201D0401CF3E780308C S31508003CE8C0B280B27047002211000D4A32F811207E S31508003CF8002A07D00A4A32F8112080B2904201D029 S31508003D08491CF2E7064A32F81120002A03D005486A -S31508003D1830F81100FFE780B270470000B06000086D -S31508003D28F05C0008D05E000880B501214FF40060F9 +S31508003D1830F81100FFE780B270470000AC60000871 +S31508003D28EC5C0008CC5E000880B501214FF4006001 S31508003D3800F0D8F900214FF4006000F0D3F901BD6E S31508003D480021384A12681100374A1140027D8368F3 S31508003D581A4343681A43C3681A4303681A4303692C @@ -1055,7 +1055,7 @@ S315080041B8022B44BF0B7803707047083A07D3B1E857 S315080041C80810083A40F8043B40F804CBF7D25307DE S315080041D8E4E7FF0010B5DFF8D00600210170DFF824 S315080041E8CC160020FDF7DEFB0400E4B2002C04D050 -S315080041F89121DFF8BC0600F0F7FB10BDDFF8A8062A +S315080041F89E21DFF8BC0600F0F7FB10BDDFF8A8061D S315080042080078002801D1012000E00020704780B519 S3150800421800F02EFC012801D1002011E0DFF88806FD S315080042280078002801D000200AE000F025FC0128C3 @@ -1135,7 +1135,7 @@ S315080046B800F070F90500AE19A41C200000F06AF98C S315080046C8801906006D1EA41CADB2022DF5DAF6B2E5 S315080046D8F643200000F05EF9F6B2864201D00020C3 S315080046E800E0012070BD2DE9F84F82460C00150040 -S315080046F80027002C02D0BAF1000F04D14FF4157127 +S315080046F80027002C02D0BAF1000F04D14FF4167126 S315080047086B4800F071F95046FFF7AEFF0600F6B29F S31508004718032E01D10020C4E05046FFF7C4FF002845 S3150800472802D15FF0FF30BCE0F6B2002E03D0022EAD @@ -1162,14 +1162,14 @@ S3150800486899F85BFA80F020601AF1020AB8F1050097 S315080048780700002D12D0002081461FFA89F93FB299 S31508004888B9450BDA504600F085F81FFA89F909F890 S3150800489805001AF1020A19F10109EEE7FFE73800DF -S315080048A800B2BDE8F28F00001D1000201800002095 -S315080048B8286300080C640008E46300084C0200201A -S315080048C8B4650008BC650008306400085863000829 -S315080048D8F00F0020A00C0020200E00209465000888 -S315080048E84C0F0020E06400084E0F0020500F0020EF -S315080048F8520F002054640008A00D002078640008B0 -S315080049085865000818650008FC6400083065000842 -S31508004918B863000838B5040014F00F0030300500F5 +S315080048A800B2BDE8F28F00001F1000201800002093 +S315080048B82463000808640008E06300084C02002026 +S315080048C8B0650008B86500082C6400085463000839 +S315080048D8F00F0020A00C0020200E0020906500088C +S315080048E84C0F0020DC6400084E0F0020500F0020F3 +S315080048F8520F002050640008A00D002074640008B8 +S315080049085465000814650008F86400082C65000852 +S31508004918B463000838B5040014F00F0030300500F9 S31508004928E4B20A2C01DBED1D04E0EDB2280000F024 S315080049386EF905002800C0B232BD38B504000D006E S31508004948E4B22009FFF7E6FF287014F00F00FFF716 @@ -1205,19 +1205,19 @@ S31508004B1890F8240201280CD10F492000FDF789FCDA S31508004B28002806D50C48002180F824120A48FDF703 S31508004B389CFA207800280CD0217889B2084800F019 S31508004B48FDFB8021064800F001FC0028F9D0641C0A -S31508004B58EFE710BDC0640008700400206865000807 +S31508004B58EFE710BDBC64000870040020646500080F S31508004B680014014080B500F001FC01BD70B50400D1 S31508004B780D00160032002900200000F002FC70BD66 -S31508004B8838B504000D002900200000F027FC32BDC6 -S31508004B9880B500F07FFC02BD80B500F03AFC00281D -S31508004BA801D1002001E000F09EFC02BD10B5FFF718 -S31508004BB8EFFF00280BD0FFF740FF00F0FBFD044885 +S31508004B8838B504000D002900200000F025FC32BDC8 +S31508004B9880B500F07DFC02BD80B500F038FC002821 +S31508004BA801D1002001E000F09CFC02BD10B5FFF71A +S31508004BB8EFFF00280BD0FFF740FF00F0F9FD044887 S31508004BC84FF400410160034800680400A04710BD7F S31508004BD808ED00E0048000082DE9F04104000D0006 S31508004BE816002F00A0463000461E80B2002808D0BE S31508004BF8387888F800007F1C18F1010800F017F8C3 -S31508004C08F1E7BDE8F08180B500F0F2FD01BD10B509 -S31508004C180400200000F0F8FD10BD302803DB3A2810 +S31508004C08F1E7BDE8F08180B500F0F0FD01BD10B50B +S31508004C180400200000F0F6FD10BD302803DB3A2812 S31508004C2801DA012000E00020C0B2704770477047DB S31508004C38DFF8640400210170DFF85C040021816450 S31508004C48DFF85404002180F84310DFF84C040021EB @@ -1290,16 +1290,16 @@ S31508005068FFF78EFD002803D13120FFF7A8FE06E0DA S315080050780948FF21C17008480121A0F8441010BD4D S3150800508810B50400FFF7BFFD0348FF21C1700248A9 S315080050980121A0F8441010BD240E0020270E002078 -S315080050A8C4650008280E00202B0E002010B5040041 +S315080050A8C0650008280E00202B0E002010B5040045 S315080050B83120FFF784FE10BD00B585B04FF4614076 S315080050C800900020ADF804000020ADF80600002086 S315080050D8ADF808000020ADF80C000C20ADF80A0061 S315080050E800A9484800F09EF80121464800F018F93A S315080050F805B000BD70B504000D00EDB2412D03DB07 -S3150800510871214148FFF770FC2800C0B200F061F829 -S31508005118012803D074213C48FFF766FC00200600E6 +S3150800510876214148FFF770FC2800C0B200F061F824 +S31508005118012803D079213C48FFF766FC00200600E1 S315080051282800C0B2B6B280B286420DD2FFF77FFD1C -S31508005138B6B2305D00F04DF8012803D07C2132481C +S31508005138B6B2305D00F04DF8012803D08121324817 S31508005148FFF752FC761CEBE770BD10B504002F4834 S31508005158007800280BD12E4800F02BF8012826D114 S315080051682A48012101702B48002101701FE02948AF @@ -1312,9 +1312,9 @@ S315080051C805D1104800F0BEF82070012000E0002044 S315080051D810BD10B5040080210A4800F0B7F8002869 S315080051E801D100200CE0E4B2210089B2054800F09C S315080051F8A5F88021034800F0A9F80028F9D001206D -S3150800520810BD000000140140EC62000820100020C0 -S31508005218C80E00201F100020C90E0020002200F02A -S31508005228FFBA00002DE9F04385B004000D005FF0D1 +S3150800520810BD000000140140E862000822100020C2 +S31508005218C80E002021100020C90E0020002200F028 +S31508005228FDBA00002DE9F04385B004000D005FF0D3 S315080052380009002600275FF00008A8890028208AA8 S31508005248814639F44059E88850EA0909A4F81090C3 S31508005258A0898146314810EA0909A8882989084396 @@ -1334,300 +1334,300 @@ S31508005328C9B2002904D0828952F40052828104E065 S3150800533882894DF6FF731A4082817047CA05D20DD5 S31508005348828070478088C005C00D7047020000201B S3150800535889B2B1F5007F13880B4202D001231800E1 -S3150800536801E000231800C0B270470000DFF81404F3 -S315080053785FF0FF310160DFF810045FF0FF3101606C -S315080053887047F8B504000D001600200000F0CFF9A4 -S31508005398FF2805D02819401E00F0C9F9FF2801D1B1 -S315080053A800201AE0600A4FF4007148430700DFF846 -S315080053B8DC030068874208D12B009BB23200210023 -S315080053C8DFF8C40300F0E9F807E02B009BB23200C7 -S315080053D82100DFF8B00300F0E0F8F2BDF8B50400E4 -S315080053E80D00200000F0A3F906002819401E00F059 -S315080053F89EF90700F6B2FF2E02D0FFB2FF2F01D1A1 -S31508005408002005E03900C9B23000C0B200F052F9F0 -S31508005418F2BD80B500200090DFF86C03006810F133 -S31508005428010F01D1012034E00098DFF85C134968C0 -S31508005438081800900098DFF8501389680818009033 -S315080054480098DFF84413C968081800900098DFF830 -S3150800545838130969081800900098CB49496908184B -S3150800546800900098C8498969081800900098C649A4 -S31508005478C969081800900098C04300900098401C15 -S31508005488009000AA0421C148006810F5C470FFF707 -S3150800549878FF02BD0021BD48006800684118BB486E -S315080054A8006840684118B948006880684118B748D4 -S315080054B80068C0684118B548006800694118B348CB -S315080054C8006840694118B148006880694118AF48C2 -S315080054D8006810F5C47000684118002901D1012038 -S315080054E800E00020704780B5A748006810F1010F52 -S315080054F806D0A54800F09DF8002801D100200CE048 -S31508005508A048006810F1010F06D09E4800F091F8EF -S31508005518002801D1002000E0012002BD38B50400AA -S315080055280D004FF40070B5FBF0F101FB105100298E -S3150800553801D000200CE02068A84201D1012007E02C -S3150800554825604FF400722900201DFFF745FB01204E -S3150800555832BD38B504000D008B48844202D189480B -S31508005568040010E089480068854205D18648040089 -S3150800557886480068050006E0200000F05AF800286A -S3150800558801D1002008E029002000FFF7C7FF0028FE -S3150800559801D1002000E0200032BD2DE9F0470400C3 -S315080055A80D0016001F00680A4FF40071484380462C -S315080055B8206810F1010F07D141462000FFF7AEFF1A -S315080055C8002801D1002032E02068404508D041462D -S315080055D82000FFF7BEFF0400002C01D1002026E0BA -S315080055E82068281A0019001D8146B246FFF71FFBD6 -S315080055F8201DB9EB0000B0F5007F0BD318F5007134 -S315080056082000FFF7A6FF0400002C01D100200EE0B9 -S31508005618201D81469AF8000089F8000019F1010949 -S315080056281AF1010A7F1EBFB2002FDFD10120BDE89B -S31508005638F0872DE9F84304000126206800F077F87A -S315080056480500EDB2FF2D01D1002031E000F002F986 -S31508005658F32000F0A1F900F0A2F9012803D100F01F -S3150800566809F9002024E000208146B9F1800F1BD2F1 -S31508005678206810EB8900070014EB8900406880460B -S31508005688FFF7D5FA4146380000F05DF9082802D038 -S315080056980020060008E03868404502D000200600C9 -S315080056A802E019F10109E0E700F0E4F83000C0B2B9 -S315080056B8BDE8F28370B504000D00EDB2E4B2A54268 -S315080056C801D2002032E03148007AE4B2844205D398 -S315080056D82E4890F87400EDB2A84201D2002025E0C1 -S315080056E800F0B8F8F32000F057F900F058F9012847 -S315080056F803D100F0BFF8002018E02600EDB2F6B294 -S31508005708B54210D3FFF793FA0221F6B2204830F8CB -S31508005718160000F0B8F8082803D000F0ABF8002007 -S3150800572804E0761CEAE700F0A5F8012070BD38B554 -S31508005738040000200500EDB20A2D21D2FFF777FAFA -S31508005748EDB20C20114900FB05100068844215D3F8 -S31508005758EDB20C200D4900FB05100068EDB20C21CE -S315080057680A4A01FB052149680818844206D2EDB29F -S315080057780C20064900FB0510007A02E06D1CDAE7E2 -S31508005788FF2032BD980600209C08002030620008D9 -S315080057988863000880B500F00DF8104810490160C4 -S315080057A81048002101601048052101600F480021B2 -S315080057B8018001BD0C480021016070470A4800684D -S315080057C8C00304D509480088401C08490880704762 -S315080057D880B5FFF7F3FF0548008802BD14E000E02E -S315080057E83F90020018E000E010E000E01A100020E0 -S315080057F8044B9D46C046C046C046C046FFF72DF92D -S3150800580800F00EF92818002010B50400200000F052 -S3150800581812F9002801D0203CFFE7200010BD00003F -S3150800582800B500BF130096469446103928BFA0E86D -S315080058380C50FAD85FEA417C28BF0CC048BF40F82C -S31508005848042BC90728BF20F8022B48BF00F8012BEC -S3150800585800BD0000DFF88C010068002809D5DFF8CC -S315080058688801DFF888110160DFF87C01DFF880110C -S3150800587801607047DFF86C01006850F00040DFF8F7 -S31508005888641108607047F8B504000D00002608275B -S31508005898EDB2002D02D10020060010E0EDB2012D70 -S315080058A803D14FF48070060009E0EDB2022D03D14A -S315080058B84FF40070060002E04FF44070060000F04E -S315080058C89BF80700FFB2082F3AD1DFF818010068DD -S315080058D830F44070DFF80C110860DFF8080100683A -S315080058E83043DFF800110860DFF8F800006830F088 -S315080058F8F800DFF8F0100860DFF8E800006854F0F0 -S3150800590802010843DFF8DC100860DFF8D8000068F1 -S3150800591850F48030DFF8CC10086000F06DF8070006 -S31508005928DFF8C000006830F00200DFF8B810086039 -S31508005938DFF8B000006830F0F800DFF8A810086053 -S315080059483800C0B2F2BD70B504000D00082600F094 -S3150800595853F80600F6B2082E1BD12248006830F420 -S315080059684070204908601F48006850F400701D49B7 -S3150800597808601C48006850F001001A49086025604C -S3150800598800F03AF80600174800684008400015492C -S3150800599808603000C0B270BD164908607047082014 -S315080059A814490968C90302D50121080017E01149F5 -S315080059B80968C90602D50521080010E00D490968D5 -S315080059C811F0EF0F02D00621080008E00949096816 -S315080059D8890702D50721080001E008210800C0B296 -S315080059E870470000103C0240043C0240230167450A -S315080059F8AB89EFCD0C3C024080B508208DF8000035 -S31508005A08FFF7CDFF8DF800009DF80000012804D1A6 -S31508005A18FFF7C5FF8DF80000F6E79DF8000002BD00 -S31508005A2800F012F8002801D000F010F8002000F065 -S31508005A3821F800F05DF8612803DB7B2801DA0120EC -S31508005A4800E00020C0B270470120704710B507492A -S31508005A5879441831064C7C44163404E00A68081D53 -S31508005A68511888470146A142F8D110BD280A0000F6 -S31508005A78480A000080B500F005F800F03BF800F089 -S31508005A8847F8FCE700B583B072B600F04DF8012177 -S31508005A982020FEF718FB01210420FEF705FB082243 -S31508005AA806211248FEF73CFA082207210F48FEF796 -S31508005AB837FA00208DF8060001208DF80700022025 -S31508005AC88DF804004020009002208DF8050000A9F2 -S31508005AD80648FEF7C3F902208DF8040080200090D6 -S31508005AE800A90248FEF7BAF907BD000000080240F7 -S31508005AF800F0BCB880B5FFF799F8FFF74BFEFFF73B -S31508005B0831F8FEF767FBFEF77DFF00F0B5F801BD33 -S31508005B1880B5FFF78CF8FFF751FEFEF792FBFEF704 -S31508005B2882FF00F0B4F801BD80B54548006850F01A -S31508005B38010043490860434800210160404800685D -S31508005B48414908403E4908604048414901603C4887 -S31508005B58006830F480203A4908603E480021016010 -S31508005B6800F005F83C485FF00061016001BD82B0AD -S31508005B7800200190002000903148006850F48030D9 -S31508005B882F4908602E48006810F4003000900198E4 -S31508005B98401C01900098002803D10198B0F5A06F21 -S31508005BA8F0D127480068800302D50120009001E05B -S31508005BB800200090009801283ED12848006850F037 -S31508005BC88050264908602648006850F44040244911 -S31508005BD808601C481B49096801601A48006850F49F -S31508005BE80040184908601748006850F4A05015493D -S31508005BF8086016481B4901601148006850F0807013 -S31508005C080F4908600E4800688001FBD5164840F21F -S31508005C18056101600B48006880088000094908602A -S31508005C280848006850F002000649086005480068F8 -S31508005C3810F00C000828F9D102B0704700000000DF -S31508005C480038024008380240FFFFF6FE04380240D2 -S31508005C58103000240C38024008ED00E040380240B5 -S31508005C68007000400C544007003C0240074638467E -S31508005C7800F030F8FBE7000080B5144801210170F0 -S31508005C88FFF7A6FD1249086000F001F801BD80B5C6 -S31508005C98FEF7EEFE012817D0FEF7B0FA002813D053 -S31508005CA80A48007801280FD1FFF792FD08490968C4 -S31508005CB83231884208D3054800210170FEF7A7FA51 -S31508005CC8002801D1FEF772FF01BD00001C10002054 -S31508005CD80010002080B5C046C046024A11001820A8 -S31508005CE8ABBEFBE7260002006100620063006400A1 -S31508005CF8650066006700680069006A006B006C004A -S31508005D086D006E006F0070007100720073007400F9 -S31508005D18750076007700780079007A00A100A2005D -S31508005D28A300A500AC00AF00E000E100E200E30034 -S31508005D38E400E500E600E700E800E900EA00EB0011 -S31508005D48EC00ED00EE00EF00F000F100F200F300C1 -S31508005D58F400F500F600F800F900FA00FB00FC006C -S31508005D68FD00FE00FF000101030105010701090105 -S31508005D780B010D010F011101130115011701190175 -S31508005D881B011D011F0121012301250127012901E5 -S31508005D982B012D012F0131013301350137013A0154 -S31508005DA83C013E01400142014401460148014B01BC -S31508005DB84D014F01510153015501570159015B0125 -S31508005DC85D015F01610163016501670169016B0195 -S31508005DD86D016F0171017301750177017A017C0103 -S31508005DE87E019201B103B203B303B403B503B60344 -S31508005DF8B703B803B903BA03BB03BC03BD03BE03A1 -S31508005E08BF03C003C103C303C403C503C603C7034B -S31508005E18C803C903CA0330043104320433043404FA -S31508005E28350436043704380439043A043B043C0478 -S31508005E383D043E043F044004410442044304440428 -S31508005E48450446044704480449044A044B044C04D8 -S31508005E584D044E044F045104520453045404550483 -S31508005E6856045704580459045A045B045C045E042F -S31508005E785F0470217121722173217421752176219D -S31508005E887721782179217A217B217C217D217E2120 -S31508005E987F2141FF42FF43FF44FF45FF46FF47FF77 -S31508005EA848FF49FF4AFF4BFF4CFF4DFF4EFF4FFF88 -S31508005EB850FF51FF52FF53FF54FF55FF56FF57FF38 -S31508005EC858FF59FF5AFF00004100420043004400AA -S31508005ED8450046004700480049004A004B004C0068 -S31508005EE84D004E004F005000510052005300540018 -S31508005EF8550056005700580059005A002100E0FF7F -S31508005F08E1FFE5FFE2FFE3FFC000C100C200C300EE -S31508005F18C400C500C600C700C800C900CA00CB002F -S31508005F28CC00CD00CE00CF00D000D100D200D300DF -S31508005F38D400D500D600D800D900DA00DB00DC008A -S31508005F48DD00DE00780100010201040106010801EE -S31508005F580A010C010E01100112011401160118019B -S31508005F681A011C011E01200122012401260128010B -S31508005F782A012C012E01300132013401360139017A -S31508005F883B013D013F0141014301450147014A01E2 -S31508005F984C014E01500152015401560158015A014B -S31508005FA85C015E01600162016401660168016A01BB -S31508005FB86C016E01700172017401760179017B0129 -S31508005FC87D01910191039203930394039503960324 -S31508005FD89703980399039A039B039C039D039E03BF -S31508005FE89F03A003A103A303A403A503A603A7036A -S31508005FF8A803A903AA031004110412041304140419 -S31508006008150416041704180419041A041B041C0496 -S315080060181D041E041F042004210422042304240446 -S31508006028250426042704280429042A042B042C04F6 -S315080060382D042E042F040104020403040404050491 -S3150800604806040704080409040A040B040C040E04CD -S315080060580F0460216121622163216421652166217B -S315080060686721682169216A216B216C216D216E21BE -S315080060786F2121FF22FF23FF24FF25FF26FF27FF85 -S3150800608828FF29FF2AFF2BFF2CFF2DFF2EFF2FFFA6 -S3150800609830FF31FF32FF33FF34FF35FF36FF37FF56 -S315080060A838FF39FF3AFF0000C700FC00E900E200A4 -S315080060B8E400E000E500E700EA00EB00E800EF008E -S315080060C8EE00EC00C400C500C900E600C600F400EE -S315080060D8F600F200FB00F900FF00D600DC00A2007B -S315080060E8A300A500A7209201E100ED00F300FA003D -S315080060F8F100D100AA00BA00BF001023AC00BD0009 -S31508006108BC00A100AB00BB0091259225932502256A -S3150800611824256125622556255525632551255725A4 -S315080061285D255C255B251025142534252C251C257D -S3150800613800253C255E255F255A25542569256625AB -S31508006148602550256C256725682564256525592504 -S315080061585825522553256B256A2518250C25882583 -S3150800616884258C2590258025B103DF009303C00379 -S31508006178A303C303B500C403A6039803A903B4037A -S315080061881E22C603B50329226122B10065226422AC -S3150800619820232123F7004822B0001922B7001A2223 -S315080061A87F20B200A025A000809A90418E418F805A -S315080061B84545454949498E8F9092924F994F55556D -S315080061C859999A9B9C9D9E9F41494F55A5A5A6A757 -S315080061D8A8A9AAABAC21AEAFB0B1B2B3B4B5B6B73D -S315080061E8B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7A1 -S315080061F8C8C9CACBCCCDCECFD0D1D2D3D4D5D6D791 -S31508006208D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E780 -S31508006218E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F770 -S31508006228F8F9FAFBFCFDFEFF0080000800400000B4 -S315080062380200000000C0000800400000030000003B -S315080062480000010800000100040000000000020820 -S315080062580000020005000000000004080000020013 -S3150800626806000000000006080000020007000000FB -S3150800627800000808000002000800000000000A08DC -S31508006288000002000900000000000C0800000200D7 -S315080062980A00000000000E08000002000B000000BB -S315080062A8433A5C576F726B5C736F66747761726595 -S315080062B85C4F70656E424C545C5461726765745CD9 -S315080062C8536F757263655C41524D434D345F535441 -S315080062D84D33325C4941525C766563746F72732E2E -S315080062E863000000433A5C576F726B5C736F6674A1 -S315080062F8776172655C4F70656E424C545C54617286 -S315080063086765745C536F757263655C41524D434D9E -S31508006318345F53544D33325C756172742E630000D2 -S31508006328433A5C576F726B5C736F66747761726514 -S315080063385C4F70656E424C545C5461726765745C58 -S31508006348536F757263655C66696C652E6300000039 -S3150800635850617273696E67206669726D77617265D6 -S315080063682066696C6520746F206F627461696E2097 -S3150800637865726173652073697A652E2E2E00000092 -S315080063880000080010001800200028003000380017 -S315080063984000480050005800800088009000980087 -S315080063A8A000A800B000B800C000C800D000D800F7 -S315080063B84669726D776172652075706461746520C7 -S315080063C87375636365737366756C6C7920636F6D33 -S315080063D8706C657465640A0D000000004F70656E80 -S315080063E8696E67206669726D776172652066696C81 -S315080063F86520666F722072656164696E672E2E2E37 -S31508006408000000004669726D7761726520757064D0 -S315080064186174652072657175657374206465746541 -S31508006428637465640A0D00005374617274696E6753 -S31508006438207468652070726F6772616D6D696E6722 -S315080064482073657175656E63650A0D00526561642A -S31508006458696E67206C696E652066726F6D2066695D -S315080064686C652E2E2E4552524F520A0D000000001A -S31508006478496E76616C696420636865636B73756DCC -S3150800648820666F756E642E2E2E4552524F520A0D8F -S3150800649800000000A7DCFFFF0C1000001800002011 -S315080064A800000000D7DAFFFF1800000018010000F6 -S315080064B800000020000000002F64656D6F70726F81 -S315080064C8675F6F6C696D65785F73746D33326534B1 -S315080064D830372E7372656300206279746573206697 -S315080064E8726F6D206D656D6F7279206174203078D2 -S315080064F80000000057726974696E672070726F67CA -S3150800650872616D20636865636B73756D2E2E2E0038 -S3150800651820627974657320746F206D656D6F727962 -S315080065282061742030780000436C6F73696E6720A9 -S315080065386669726D776172652066696C650A0D0011 -S3150800654801030507090E10121416181C1E00000070 -S3150800655850726F6772616D6D696E67200000000082 -S315080065682F626F6F746C6F672E7478740000000062 -S3150800657880B540210148FEF737FA01BDA862000830 -S31508006588222A3A3C3E3F7C7F000000004572617330 -S31508006598696E672000000000C046C046C046C0466F -S315080065A8FFF73EFA2B2C3B3D5B5D00004552524FE8 -S315080065B8520A0D004F4B0A0D000000004F70656E19 -S315080065C8424C5400000000000102030401020304BF -S311080065D806070809010000000100000089 -S705080065A1EC +S3150800536801E000231800C0B270470000DFF81004F7 +S315080053785FF0FF310160DFF80C045FF0FF31016070 +S315080053887047F8B504000D001600200000F0CCF9A7 +S31508005398FF2805D02819401E00F0C6F9FF2801D1B4 +S315080053A8002018E0600A4FF4007148430700DFF848 +S315080053B8D8030068874207D12B0032002100DFF89E +S315080053C8C40300F0E8F806E02B0032002100DFF8F5 +S315080053D8B00300F0E0F8F2BDF8B504000D002000AF +S315080053E800F0A2F906002819401E00F09DF90700EA +S315080053F8F6B2FF2E02D0FFB2FF2F01D1002005E03A +S315080054083900C9B23000C0B200F051F9F2BD80B512 +S3150800541800200090DFF86C03006810F1010F01D135 +S31508005428012034E00098DFF85C13496808180090F2 +S315080054380098DFF850138968081800900098DFF874 +S315080054484413C968081800900098DFF838130969E2 +S31508005458081800900098CB494969081800900098E0 +S31508005468C8498969081800900098C649C96908187A +S3150800547800900098C04300900098401C009000AA2D +S315080054880421C148006810F5C470FFF77AFF02BD09 +S315080054980021BD48006800684118BB480068406894 +S315080054A84118B948006880684118B7480068C06854 +S315080054B84118B548006800694118B348006840694A +S315080054C84118B148006880694118AF48006810F566 +S315080054D8C47000684118002901D1012000E00020A5 +S315080054E8704780B5A748006810F1010F06D0A5488F +S315080054F800F09CF8002801D100200CE0A0480068BC +S3150800550810F1010F06D09E4800F090F8002801D146 +S31508005518002000E0012002BD38B504000D004FF454 +S315080055280070B5FBF0F101FB1051002901D00020ED +S315080055380CE02068A84201D1012007E025604FF455 +S3150800554800722900201DFFF747FB012032BD38B538 +S3150800555804000D008B48844202D18948040010E0F3 +S3150800556889480068854205D1864804008648006847 +S31508005578050006E0200000F059F8002801D10020AF +S3150800558808E029002000FFF7C7FF002801D10020FE +S3150800559800E0200032BD2DE9F04704000D00160092 +S315080055A81F00680A4FF4007148438046206810F1C6 +S315080055B8010F07D141462000FFF7AEFF002801D1A9 +S315080055C8002031E02068404508D041462000FFF712 +S315080055D8BEFF0400002C01D1002025E02068281A07 +S315080055E80019001D8146B246FFF721FB201DB9EBBD +S315080055F80000B0F5007F0BD318F500712000FFF7FF +S31508005608A6FF0400002C01D100200DE0201D8146CC +S315080056189AF8000089F8000019F101091AF1010A37 +S315080056287F1E002FE0D10120BDE8F0872DE9F84359 +S3150800563804000126206800F077F80500EDB2FF2D72 +S3150800564801D1002031E000F003F9F32000F0A2F9B7 +S3150800565800F0A3F9012803D100F00AF9002024E094 +S3150800566800208146B9F1800F1BD2206810EB89000B +S31508005678070014EB890040688046FFF7D8FA4146C8 +S31508005688380000F05EF9082802D00020060008E075 +S315080056983868404502D00020060002E019F10109E1 +S315080056A8E0E700F0E5F83000C0B2BDE8F28370B56F +S315080056B804000D00EDB2E4B2A54201D2002032E0A2 +S315080056C83148007AE4B2844205D32F4890F874002A +S315080056D8EDB2A84201D2002025E000F0B9F8F3207F +S315080056E800F058F900F059F9012803D100F0C0F87C +S315080056F8002018E02600EDB2F6B2B54210D3FFF73F +S3150800570896FA0221F6B2214830F8160000F0B9F8E0 +S31508005718082803D000F0ACF8002004E0761CEAE775 +S3150800572800F0A6F8012070BD38B504000020050071 +S31508005738EDB20A2D21D2FFF77AFAEDB20C201249FA +S3150800574800FB05100068844215D3EDB20C200E49FB +S3150800575800FB05100068EDB20C210B4A01FB052178 +S3150800576849680818844206D2EDB20C20064900FB9F +S315080057780510007A02E06D1CDAE7FF2032BD00004A +S31508005788980600209C0800202C62000884630008FC +S3150800579880B500F00DF8104810490160104800213E +S315080057A801601048052101600F480021016001BD0C +S315080057B80C480021016070470A480068C00304D5F0 +S315080057C809480068401C08490860704780B5FFF713 +S315080057D8F3FF0548006802BD14E000E03F900200A8 +S315080057E818E000E010E000E018100020044B9D4681 +S315080057F8C046C046C046C046FFF72FF900F00EF966 +S315080058082818002010B50400200000F012F9002816 +S3150800581801D0203CFFE7200010BD000000B500BFFE +S31508005828130096469446103928BFA0E80C50FAD8B3 +S315080058385FEA417C28BF0CC048BF40F8042BC9075B +S3150800584828BF20F8022B48BF00F8012B00BD00002E +S31508005858DFF88C010068002809D5DFF88801DFF829 +S3150800586888110160DFF87C01DFF880110160704754 +S31508005878DFF86C01006850F00040DFF86411086032 +S315080058887047F8B504000D0000260827EDB2002D6C +S3150800589802D10020060010E0EDB2012D03D14FF425 +S315080058A88070060009E0EDB2022D03D14FF40070AE +S315080058B8060002E04FF44070060000F09BF8070067 +S315080058C8FFB2082F3AD1DFF81801006830F44070A3 +S315080058D8DFF80C110860DFF8080100683043DFF8C4 +S315080058E800110860DFF8F800006830F0F800DFF803 +S315080058F8F0100860DFF8E800006854F00201084371 +S31508005908DFF8DC100860DFF8D800006850F480304B +S31508005918DFF8CC10086000F06DF80700DFF8C00063 +S31508005928006830F00200DFF8B8100860DFF8B00049 +S31508005938006830F0F800DFF8A81008603800C0B230 +S31508005948F2BD70B504000D00082600F053F80600ED +S31508005958F6B2082E1BD12248006830F44070204958 +S3150800596808601F48006850F400701D4908601C4804 +S31508005978006850F001001A490860256000F03AF8F6 +S3150800598806001748006840084000154908603000B6 +S31508005998C0B270BD164908607047082014490968DE +S315080059A8C90302D50121080017E011490968C90683 +S315080059B802D50521080010E00D49096811F0EF0F16 +S315080059C802D00621080008E009490968890702D5AE +S315080059D80721080001E008210800C0B27047000046 +S315080059E8103C0240043C024023016745AB89EFCDD1 +S315080059F80C3C024080B508208DF80000FFF7CDFF63 +S31508005A088DF800009DF80000012804D1FFF7C5FFAE +S31508005A188DF80000F6E79DF8000002BD00F012F8C0 +S31508005A28002801D000F010F8002000F021F800F056 +S31508005A385DF8612803DB7B2801DA012000E00020F5 +S31508005A48C0B270470120704710B507497944183124 +S31508005A58064C7C44163404E00A68081D5118884721 +S31508005A680146A142F8D110BD280A0000480A0000DC +S31508005A7880B500F005F800F03BF800F047F8FCE7B9 +S31508005A8800B583B072B600F04DF801212020FEF764 +S31508005A981AFB01210420FEF707FB082206211248F3 +S31508005AA8FEF73EFA082207210F48FEF739FA0020C2 +S31508005AB88DF8060001208DF8070002208DF80400ED +S31508005AC84020009002208DF8050000A90648FEF738 +S31508005AD8C5F902208DF804008020009000A9024824 +S31508005AE8FEF7BCF907BD00000008024000F0BCB884 +S31508005AF880B5FFF79BF8FFF74BFEFFF733F8FEF77D +S31508005B0869FBFEF77FFF00F0B5F801BD80B5FFF722 +S31508005B188EF8FFF751FEFEF794FBFEF784FF00F0B8 +S31508005B28B4F801BD80B54548006850F001004349FE +S31508005B380860434800210160404800684149084018 +S31508005B483E4908604048414901603C48006830F4CD +S31508005B5880203A4908603E480021016000F005F8AF +S31508005B683C485FF00061016001BD82B000200190E9 +S31508005B78002000903148006850F480302F490860AA +S31508005B882E48006810F4003000900198401C0190D7 +S31508005B980098002803D10198B0F5A06FF0D12748DE +S31508005BA80068800302D50120009001E000200090DB +S31508005BB8009801283ED12848006850F080502649A8 +S31508005BC808602648006850F44040244908601C4884 +S31508005BD81B49096801601A48006850F400401849CA +S31508005BE808601748006850F4A05015490860164818 +S31508005BF81B4901601148006850F080700F49086019 +S31508005C080E4800688001FBD5164840F20561016018 +S31508005C180B48006880088000094908600848006839 +S31508005C2850F00200064908600548006810F00C00A4 +S31508005C380828F9D102B07047000000000038024071 +S31508005C4808380240FFFFF6FE0438024010300024E8 +S31508005C580C38024008ED00E0403802400070004069 +S31508005C680C544007003C02400746384600F030F816 +S31508005C78FBE7000080B5144801210170FFF7A6FD6F +S31508005C881249086000F001F801BD80B5FEF7F0FE7C +S31508005C98012817D0FEF7B2FA002813D00A48007868 +S31508005CA801280FD1FFF792FD084909683231884261 +S31508005CB808D3054800210170FEF7A9FA002801D182 +S31508005CC8FEF774FF01BD00001E100020001000201A +S31508005CD880B5C046C046024A11001820ABBEFBE78D +S31508005CE82600020061006200630064006500660021 +S31508005CF86700680069006A006B006C006D006E003A +S31508005D086F007000710072007300740075007600E9 +S31508005D187700780079007A00A100A200A300A50000 +S31508005D28AC00AF00E000E100E200E300E400E500B3 +S31508005D38E600E700E800E900EA00EB00EC00ED0001 +S31508005D48EE00EF00F000F100F200F300F400F500B1 +S31508005D58F600F800F900FA00FB00FC00FD00FE005A +S31508005D68FF00010103010501070109010B010D01E6 +S31508005D780F01110113011501170119011B011D0155 +S31508005D881F01210123012501270129012B012D01C5 +S31508005D982F0131013301350137013A013C013E0132 +S31508005DA8400142014401460148014B014D014F019A +S31508005DB8510153015501570159015B015D015F0105 +S31508005DC8610163016501670169016B016D016F0175 +S31508005DD871017301750177017A017C017E019201CF +S31508005DE8B103B203B303B403B503B603B703B803E1 +S31508005DF8B903BA03BB03BC03BD03BE03BF03C00391 +S31508005E08C103C303C403C503C603C703C803C90339 +S31508005E18CA0330043104320433043404350436041E +S31508005E283704380439043A043B043C043D043E0468 +S31508005E383F04400441044204430444044504460418 +S31508005E484704480449044A044B044C044D044E04C8 +S31508005E584F04510452045304540455045604570471 +S31508005E68580459045A045B045C045E045F047021F0 +S31508005E787121722173217421752176217721782160 +S31508005E8879217A217B217C217D217E217F2141FF71 +S31508005E9842FF43FF44FF45FF46FF47FF48FF49FFC8 +S31508005EA84AFF4BFF4CFF4DFF4EFF4FFF50FF51FF78 +S31508005EB852FF53FF54FF55FF56FF57FF58FF59FF28 +S31508005EC85AFF0000410042004300440045004600CE +S31508005ED84700480049004A004B004C004D004E0058 +S31508005EE84F00500051005200530054005500560008 +S31508005EF85700580059005A002100E0FFE1FFE5FF66 +S31508005F08E2FFE3FFC000C100C200C300C400C50029 +S31508005F18C600C700C800C900CA00CB00CC00CD001F +S31508005F28CE00CF00D000D100D200D300D400D500CF +S31508005F38D600D800D900DA00DB00DC00DD00DE0078 +S31508005F487801000102010401060108010A010C0191 +S31508005F580E01100112011401160118011A011C017B +S31508005F681E01200122012401260128012A012C01EB +S31508005F782E01300132013401360139013B013D0158 +S31508005F883F0141014301450147014A014C014E01C0 +S31508005F98500152015401560158015A015C015E012B +S31508005FA8600162016401660168016A016C016E019B +S31508005FB8700172017401760179017B017D019101F5 +S31508005FC891039203930394039503960397039803FF +S31508005FD899039A039B039C039D039E039F03A003AF +S31508005FE8A103A303A403A503A603A703A803A90358 +S31508005FF8AA0310041104120413041404150416043D +S315080060081704180419041A041B041C041D041E0486 +S315080060181F04200421042204230424042504260436 +S315080060282704280429042A042B042C042D042E04E6 +S315080060382F040104020403040404050406040704DF +S31508006048080409040A040B040C040E040F0460214E +S3150800605861216221632164216521662167216821FE +S3150800606869216A216B216C216D216E216F2121FF1F +S3150800607822FF23FF24FF25FF26FF27FF28FF29FFE6 +S315080060882AFF2BFF2CFF2DFF2EFF2FFF30FF31FF96 +S3150800609832FF33FF34FF35FF36FF37FF38FF39FF46 +S315080060A83AFF0000C700FC00E900E200E400E0004F +S315080060B8E500E700EA00EB00E800EF00EE00EC0078 +S315080060C8C400C500C900E600C600F400F600F200E0 +S315080060D8FB00F900FF00D600DC00A200A300A5001B +S315080060E8A7209201E100ED00F300FA00F100D100C3 +S315080060F8AA00BA00BF001023AC00BD00BC00A1006E +S31508006108AB00BB00912592259325022524256125F8 +S315080061186225562555256325512557255D255C2570 +S315080061285B251025142534252C251C2500253C25FA +S315080061385E255F255A255425692566256025502537 +S315080061486C2567256825642565255925582552250A +S3150800615853256B256A2518250C25882584258C251D +S3150800616890258025B103DF009303C003A303C30367 +S31508006178B500C403A6039803A903B4031E22C603DD +S31508006188B50329226122B10065226422202321232E +S31508006198F7004822B0001922B7001A227F20B20059 +S315080061A8A025A000809A90418E418F804545454993 +S315080061B849498E8F9092924F994F555559999A9B5E +S315080061C89C9D9E9F41494F55A5A5A6A7A8A9AAABD8 +S315080061D8AC21AEAFB0B1B2B3B4B5B6B7B8B9BABBFD +S315080061E8BCBDBEBFC0C1C2C3C4C5C6C7C8C9CACB61 +S315080061F8CCCDCECFD0D1D2D3D4D5D6D7D8D9DADB51 +S31508006208DCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEB40 +S31508006218ECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFB30 +S31508006228FCFDFEFF00800008004000000200000098 +S3150800623800C0000800400000030000000000010834 +S315080062480000010004000000000002080000020027 +S31508006258050000000000040800000200060000000F +S3150800626800000608000002000700000000000808F1 +S31508006278000002000800000000000A0800000200EA +S315080062880900000000000C08000002000A000000CF +S3150800629800000E08000002000B000000433A5C5795 +S315080062A86F726B5C736F6674776172655C4F706545 +S315080062B86E424C545C5461726765745C536F7572B0 +S315080062C863655C41524D434D345F53544D33325CDC +S315080062D84941525C766563746F72732E63000000D9 +S315080062E8433A5C576F726B5C736F66747761726555 +S315080062F85C4F70656E424C545C5461726765745C99 +S31508006308536F757263655C41524D434D345F535400 +S315080063184D33325C756172742E630000433A5C57DC +S315080063286F726B5C736F6674776172655C4F7065C4 +S315080063386E424C545C5461726765745C536F75722F +S3150800634863655C66696C652E63000000506172734C +S31508006358696E67206669726D776172652066696C11 +S315080063686520746F206F627461696E206572617347 +S31508006378652073697A652E2E2E0000000000080035 +S315080063881000180020002800300038004000480097 +S31508006398500058008000880090009800A000A800C7 +S315080063A8B000B800C000C800D000D8004669726DB1 +S315080063B877617265207570646174652073756363A7 +S315080063C865737366756C6C7920636F6D706C65742C +S315080063D865640A0D000000004F70656E696E6720D7 +S315080063E86669726D776172652066696C6520666F85 +S315080063F8722072656164696E672E2E2E0000000091 +S315080064084669726D77617265207570646174652076 +S3150800641872657175657374206465746563746564FB +S315080064280A0D00005374617274696E672074686592 +S315080064382070726F6772616D6D696E67207365711A +S3150800644875656E63650A0D0052656164696E672035 +S315080064586C696E652066726F6D2066696C652E2E8E +S315080064682E4552524F520A0D00000000496E7661B9 +S315080064786C696420636865636B73756D20666F75F0 +S315080064886E642E2E2E4552524F520A0D00000000F9 +S31508006498ABDCFFFF0C10000018000020000000000D +S315080064A8DBDAFFFF180000001801000000000020D2 +S315080064B8000000002F64656D6F70726F675F6F6C00 +S315080064C8696D65785F73746D3332653430372E734A +S315080064D8726563002062797465732066726F6D2031 +S315080064E86D656D6F72792061742030780000000040 +S315080064F857726974696E672070726F6772616D206A +S31508006508636865636B73756D2E2E2E002062797429 +S31508006518657320746F206D656D6F727920617420BC +S3150800652830780000436C6F73696E67206669726D10 +S31508006538776172652066696C650A0D0001030507AF +S31508006548090E10121416181C1E00000050726F67E8 +S3150800655872616D6D696E6720000000002F626F6FAB +S31508006568746C6F672E7478740000000080B541213A +S315080065780148FEF739FA01BDA4620008222A3A3C06 +S315080065883E3F7C7F0000000045726173696E672094 +S3150800659800000000C046C046C046C046FFF73EFA9F +S315080065A82B2C3B3D5B5D00004552524F520A0D00AD +S315080065B84F4B0A0D000000004F70656E424C5400A0 +S315080065C80000000001020304010203040607080983 +S30D080065D80100000001000000AB +S7050800659DF0 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/boot.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/boot.dox new file mode 100644 index 00000000..f3264317 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/boot.dox @@ -0,0 +1,7 @@ +/** +\defgroup Boot_ARMCM4_STM32_Olimex_STM32E407_IAR Bootloader +\brief Bootloader. +\ingroup ARMCM4_STM32_Olimex_STM32E407_IAR +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/config.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/config.h index d15d3f4d..9365475c 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/config.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Boot\config.h +* \brief Bootloader configuration header file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 (12000) +/** \brief Desired system speed. */ #define BOOT_CPU_SYSTEM_SPEED_KHZ (168000) +/** \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 (5) @@ -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 (1024) @@ -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/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c index b25f0c17..4f8f81fb 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/hooks.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Boot\hooks.c +* \brief Bootloader callback source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 "boot.h" /* bootloader generic header */ @@ -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) @@ -53,11 +53,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) @@ -73,15 +71,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) @@ -97,12 +93,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) @@ -110,20 +104,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) @@ -132,18 +124,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) @@ -152,11 +143,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) @@ -171,13 +160,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) @@ -185,14 +172,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) @@ -210,6 +195,7 @@ void CopServiceHook(void) /**************************************************************************************** * Constant data declarations ****************************************************************************************/ +/** \brief Firmware filename. */ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.srec"; @@ -217,22 +203,21 @@ static const blt_char firmwareFilename[] = "/demoprog_olimex_stm32e407.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) @@ -260,14 +245,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) @@ -277,12 +260,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) @@ -300,12 +281,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) @@ -326,12 +305,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) @@ -348,12 +325,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/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt index 1128eef2..438e1b8c 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/settings/stm32f407.wsdt @@ -12,7 +12,7 @@ - 338272727 + 124272727 @@ -30,7 +30,7 @@ - + TabID-10231-8055 @@ -42,7 +42,7 @@ - 0 + 0 TabID-3456-10024 @@ -58,20 +58,20 @@ - 0 + 0 - TextEditor$WS_DIR$\..\main.c0000033290029000TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c000003151940619406TextEditor$WS_DIR$\..\config.h000005754055405TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c0000014564796479TextEditor$WS_DIR$\..\lib\fatfs\mmc.c000005972781627816TextEditor$WS_DIR$\..\..\..\..\Source\fatfs\src\ff.c000003114111111111111TextEditor$WS_DIR$\..\..\..\..\Source\xcp.c000002161156011560TextEditor$WS_DIR$\..\..\..\..\Source\boot.c000003327982798TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000008957995799TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c000009152115211TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c000006341864186TextEditor$WS_DIR$\..\..\..\..\Source\file.c0000010859936018TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c0000014474897489TextEditor$WS_DIR$\..\..\..\..\Source\com.c0000013370857085TextEditor$WS_DIR$\..\hooks.c0000033116576166010100000010000001 + TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\flash.c000003151940619406TextEditor$WS_DIR$\..\config.h000005754055405TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\nvm.c0000014564796479TextEditor$WS_DIR$\..\lib\fatfs\mmc.c000005972781627816TextEditor$WS_DIR$\..\..\..\..\Source\fatfs\src\ff.c000003114111111111111TextEditor$WS_DIR$\..\..\..\..\Source\xcp.c000002161156011560TextEditor$WS_DIR$\..\..\..\..\Source\boot.c000003327982798TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000008957995799TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c000009152115211TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\timer.c000006341864186TextEditor$WS_DIR$\..\..\..\..\Source\file.c0000010859936018TextEditor$WS_DIR$\..\..\..\..\Source\ARMCM4_STM32\uart.c0000014474897489TextEditor$WS_DIR$\..\..\..\..\Source\com.c0000013370857085TextEditor$WS_DIR$\..\hooks.c000003311625316253TextEditor$WS_DIR$\..\main.c000003329002900140100000010000001 - iaridepm.enu1-2-2963412-2-2200200104167198413215625957341-2-2963556-2-219242001002083198413290625957341 + iaridepm.enu1-2-2529215-2-2105114104167198606215278925087-2-2529291-2-210101141001984198606290675925087 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep index bbbc6fa6..2cbd1e45 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/ide/stm32f407.dep @@ -76,7 +76,7 @@ $PROJ_DIR$\..\config.h $PROJ_DIR$\..\hooks.c $PROJ_DIR$\..\main.c - $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\cstart.s $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\vectors.c $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\cpu.c @@ -110,17 +110,17 @@ $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\obj\stm32f4xx_pwr.o + $TOOLKIT_DIR$\inc\c\DLib_Threads.h $PROJ_DIR$\..\obj\uart.pbi - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\cmsis_iar.h - $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.srec + $PROJ_DIR$\..\obj\stm32f4xx_pwr.o $PROJ_DIR$\..\obj\stm32f4xx_rcc.pbi - $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi $PROJ_DIR$\..\obj\stm32f4xx_pwr.pbi + $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi + $PROJ_DIR$\..\bin\openbtl_olimex_stm32e407.srec $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi + $TOOLKIT_DIR$\inc\c\cmsis_iar.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h $TOOLKIT_DIR$\inc\c\string.h - $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi $PROJ_DIR$\..\obj\stm32f4xx_tim.o $PROJ_DIR$\..\obj\stm32f4xx_usart.o $PROJ_DIR$\..\obj\stm32f4xx_wwdg.o @@ -225,8 +225,8 @@ $PROJ_DIR$\..\obj\stm32f4xx_cryp_aes.lst $PROJ_DIR$\..\obj\stm32f4xx_can.lst $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.lst - $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\..\..\..\Source\ARMCM4_STM32\IAR\memory.x $PROJ_DIR$\..\obj\misc.lst $PROJ_DIR$\..\obj\stm32f4xx_syscfg.pbi $PROJ_DIR$\..\obj\stm32f4xx_hash_sha1.pbi @@ -278,8 +278,8 @@ $PROJ_DIR$\..\obj\stm32f4xx_rng.pbi $PROJ_DIR$\..\obj\stm32f4xx_spi.pbi $PROJ_DIR$\..\obj\stm32f4xx_rtc.pbi - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\stm32f4xx_i2c.o + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\stm32f4xx_syscfg.o $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.pbi $PROJ_DIR$\..\obj\stm32f4xx_cryp.pbi @@ -308,11 +308,11 @@ BICOMP - 113 125 151 121 136 126 152 70 130 106 85 88 8 4 122 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 114 125 151 121 136 126 152 104 130 113 85 88 8 4 122 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 113 125 151 121 136 126 152 70 130 106 85 88 8 4 122 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 114 125 151 121 136 126 152 104 130 113 85 88 8 4 122 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -331,11 +331,11 @@ BICOMP - 7 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 + 7 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 ICCARM - 7 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 + 7 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 @@ -354,7 +354,7 @@ ICCARM - 10 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 10 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -373,11 +373,11 @@ BICOMP - 12 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 12 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 12 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 12 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -396,11 +396,11 @@ BICOMP - 15 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 15 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 15 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 15 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -419,11 +419,11 @@ BICOMP - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -442,11 +442,11 @@ BICOMP - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -465,11 +465,11 @@ BICOMP - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -488,11 +488,11 @@ BICOMP - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 17 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 17 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -520,11 +520,11 @@ BICOMP - 22 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 22 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 22 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 22 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -543,11 +543,11 @@ BICOMP - 24 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 24 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 24 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 24 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -566,11 +566,11 @@ BICOMP - 26 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 26 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 26 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 26 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -589,11 +589,11 @@ BICOMP - 28 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 28 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 28 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 28 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -612,11 +612,11 @@ BICOMP - 30 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 30 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 30 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 30 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -635,11 +635,11 @@ BICOMP - 32 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 32 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 32 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 32 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -658,11 +658,11 @@ BICOMP - 34 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 34 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 34 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 34 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -681,11 +681,11 @@ BICOMP - 36 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 + 36 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 36 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 + 36 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -704,11 +704,11 @@ BICOMP - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -727,11 +727,11 @@ BICOMP - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -750,11 +750,11 @@ BICOMP - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 38 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 38 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -767,17 +767,17 @@ ICCARM - 241 273 + 241 272 BICOMP - 42 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 + 42 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 42 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 + 42 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 44 46 48 50 52 54 56 58 60 62 64 7 @@ -796,11 +796,11 @@ BICOMP - 44 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 + 44 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 44 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 + 44 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 46 48 50 52 54 56 58 60 62 64 7 @@ -809,21 +809,21 @@ BICOMP - 111 + 108 ICCARM - 248 104 + 248 106 BICOMP - 46 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 + 46 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 ICCARM - 46 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 + 46 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 48 50 52 54 56 58 60 62 64 7 @@ -832,7 +832,7 @@ BICOMP - 109 + 107 ICCARM @@ -842,11 +842,11 @@ BICOMP - 48 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 + 48 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 ICCARM - 48 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 + 48 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 50 52 54 56 58 60 62 64 7 @@ -865,11 +865,11 @@ BICOMP - 50 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 + 50 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 ICCARM - 50 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 + 50 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 52 54 56 58 60 62 64 7 @@ -888,11 +888,11 @@ BICOMP - 52 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 + 52 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 ICCARM - 52 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 + 52 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 54 56 58 60 62 64 7 @@ -901,7 +901,7 @@ BICOMP - 110 + 109 ICCARM @@ -911,11 +911,11 @@ BICOMP - 54 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 + 54 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 ICCARM - 54 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 + 54 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 56 58 60 62 64 7 @@ -934,11 +934,11 @@ BICOMP - 56 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 + 56 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 ICCARM - 56 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 + 56 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 58 60 62 64 7 @@ -957,11 +957,11 @@ BICOMP - 58 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 + 58 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 ICCARM - 58 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 + 58 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 60 62 64 7 @@ -980,11 +980,11 @@ BICOMP - 60 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 + 60 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 ICCARM - 60 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 + 60 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 62 64 7 @@ -993,7 +993,7 @@ BICOMP - 114 + 70 ICCARM @@ -1003,11 +1003,11 @@ BICOMP - 62 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 + 62 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 ICCARM - 62 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 + 62 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 64 7 @@ -1016,7 +1016,7 @@ BICOMP - 112 + 111 ICCARM @@ -1026,11 +1026,11 @@ BICOMP - 64 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 + 64 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 ICCARM - 64 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 + 64 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 7 @@ -1049,11 +1049,11 @@ BICOMP - 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1072,11 +1072,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1095,11 +1095,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1173,11 +1173,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1196,11 +1196,11 @@ BICOMP - 86 88 2 85 260 125 151 121 136 126 152 70 + 86 88 2 85 260 125 151 121 136 126 152 104 ICCARM - 86 88 2 85 260 125 151 121 136 126 152 70 + 86 88 2 85 260 125 151 121 136 126 152 104 @@ -1242,11 +1242,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1265,11 +1265,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 70 1 107 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 8 4 122 125 151 121 136 126 152 104 1 112 134 5 3 66 13 10 12 15 17 22 24 26 28 30 32 34 38 36 42 44 46 48 50 52 54 56 58 60 62 64 7 @@ -1311,11 +1311,11 @@ BICOMP - 86 88 2 272 + 86 88 2 273 ICCARM - 86 88 2 272 + 86 88 2 273 @@ -1426,11 +1426,11 @@ BICOMP - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 113 125 151 121 136 126 152 70 130 106 207 205 204 179 183 201 200 202 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 114 125 151 121 136 126 152 104 130 113 207 205 204 179 183 201 200 202 ICCARM - 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 113 125 151 121 136 126 152 70 130 106 207 205 204 179 183 201 200 202 + 94 82 90 67 101 74 98 79 76 81 92 100 86 88 2 96 103 114 125 151 121 136 126 152 104 130 113 207 205 204 179 183 201 200 202 @@ -1466,13 +1466,13 @@ OBJCOPY - 108 + 110 ILINK - 219 131 164 165 168 191 182 187 264 192 189 167 166 135 261 206 143 145 149 146 138 139 142 153 144 154 155 156 157 158 159 160 147 148 273 277 104 279 281 282 283 285 274 115 116 117 140 193 236 265 199 195 220 251 253 244 + 220 131 164 165 168 191 182 187 264 192 189 167 166 135 261 206 143 145 149 146 138 139 142 153 144 154 155 156 157 158 159 160 147 148 272 277 106 279 281 282 283 285 274 115 116 117 140 193 236 265 199 195 219 251 253 244 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c index ace92ac9..2cc8341b 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Boot/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Boot\main.c +* \brief Bootloader application source file. +* \ingroup Boot_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,12 +45,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,12 +67,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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out index 6f57b4bc..84d2f195 100644 Binary files a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out and b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/bin/demoprog_olimex_stm32e407.out differ diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c index b282161a..5a3dc210 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\boot.c +* \brief Demo program bootloader interface source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -62,22 +62,15 @@ static void BootActivate(void) * U N I V E R S A L A S Y N C H R O N O U S R X T X I N T E R F A C E ****************************************************************************************/ -/**************************************************************************************** -* Macro definitions -****************************************************************************************/ - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ 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) @@ -116,12 +109,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) @@ -169,11 +160,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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.h index c2719512..94724e0e 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/boot.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\boot.h +* \brief Demo program bootloader interface header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/header.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/header.h index 9ac3f046..a0808014 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/header.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\header.h +* \brief Generic header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt index f13664f4..29d871c9 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/settings/stm32f407.wsdt @@ -12,12 +12,12 @@ - 305272727 + 124272727 20139537293 - + TabID-29163-19963 @@ -29,7 +29,7 @@ - 0TabID-19063-20767BuildBuild0 + 0TabID-19063-20767BuildBuild0 @@ -42,7 +42,7 @@ - iaridepm.enu1-2-2765379-2-2200200104167198413198438760913-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1-2-2417198-2-2105114104167198606198413729965-2-21121010-2-210121141003968198606104167198606 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep index ef03a3d7..7b94bb24 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/ide/stm32f407.dep @@ -6,35 +6,85 @@ Debug - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4_simd.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cmInstr.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cmFunc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\misc.h + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_can.h + $PROJ_DIR$\..\lib\stdperiphlib\stm32f4xx_conf.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_crc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_cryp.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dac.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dcmi.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_hash.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h $PROJ_DIR$\..\boot.c $PROJ_DIR$\..\boot.h $PROJ_DIR$\..\cstart.s - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c - $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi + $PROJ_DIR$\..\header.h + $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\irq.h + $PROJ_DIR$\..\led.c + $PROJ_DIR$\..\led.h + $PROJ_DIR$\..\main.c + $PROJ_DIR$\..\timer.c + $PROJ_DIR$\..\timer.h + $PROJ_DIR$\..\vectors.c $PROJ_DIR$\..\obj\stm32f4xx_rtc.pbi + $PROJ_DIR$\..\obj\stm32f4xx_usart.pbi $TOOLKIT_DIR$\inc\c\DLib_Threads.h $PROJ_DIR$\..\obj\stm32f4xx_rng.pbi $PROJ_DIR$\..\obj\stm32f4xx_dbgmcu.pbi @@ -42,21 +92,12 @@ $PROJ_DIR$\..\obj\stm32f4xx_wwdg.pbi $TOOLKIT_DIR$\inc\c\cmsis_iar.h $PROJ_DIR$\..\obj\stm32f4xx_spi.pbi - $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\header.h - $PROJ_DIR$\..\timer.h $PROJ_DIR$\..\obj\stm32f4xx_i2c.o $PROJ_DIR$\..\obj\stm32f4xx_syscfg.o $PROJ_DIR$\..\obj\stm32f4xx_cryp_des.pbi $PROJ_DIR$\..\obj\stm32f4xx_cryp.pbi $PROJ_DIR$\..\obj\stm32f4xx_sdio.pbi - $PROJ_DIR$\..\led.c - $PROJ_DIR$\..\timer.c - $PROJ_DIR$\..\main.c - $PROJ_DIR$\..\led.h - $PROJ_DIR$\..\irq.h $PROJ_DIR$\..\obj\stm32f4xx_rng.o - $PROJ_DIR$\..\irq.c $PROJ_DIR$\..\obj\stm32f4xx_iwdg.o $PROJ_DIR$\..\obj\stm32f4xx_rcc.o $PROJ_DIR$\..\obj\stm32f4xx_flash.pbi @@ -147,50 +188,9 @@ $PROJ_DIR$\..\bin\demoprog_olimex_stm32e407.out $PROJ_DIR$\..\bin\demoprog_olimex_stm32e407.srec $PROJ_DIR$\..\obj\irq.o - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c - $PROJ_DIR$\..\lib\stdperiphlib\stm32f4xx_conf.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\misc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_can.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cmFunc.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4.h - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cmInstr.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Include\core_cm4_simd.h - $PROJ_DIR$\..\obj\led.pbi $PROJ_DIR$\..\obj\led.o + $PROJ_DIR$\..\obj\led.pbi $PROJ_DIR$\..\obj\irq.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dcmi.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dac.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_cryp.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_crc.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_hash.h $PROJ_DIR$\..\obj\system_stm32f4xx.pbi $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h $PROJ_DIR$\..\obj\stm32f4xx_cryp_aes.o @@ -220,452 +220,28 @@ $PROJ_DIR$\..\obj\stm32f4xx_crc.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c BICOMP - 27 + 194 ICCARM - 120 203 + 111 199 BICOMP - 3 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 5 147 + 5 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 ICCARM - 3 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 5 147 + 5 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c - - - BICOMP - 28 - - - ICCARM - 127 201 - - - - - BICOMP - 7 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 11 15 13 9 3 5 147 - - - ICCARM - 7 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c - - - BICOMP - 35 - - - ICCARM - 129 202 - - - - - BICOMP - 15 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 13 9 3 5 147 - - - ICCARM - 15 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c - - - BICOMP - 33 - - - ICCARM - 117 196 - - - - - BICOMP - 5 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 147 - - - ICCARM - 5 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c - - - BICOMP - 185 - - - ICCARM - 119 189 - - - - - BICOMP - 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c - - - BICOMP - 43 - - - ICCARM - 123 207 - - - - - BICOMP - 11 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 15 13 9 3 5 147 - - - ICCARM - 11 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c - - - BICOMP - 32 - - - ICCARM - 131 204 - - - - - BICOMP - 9 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 3 5 147 - - - ICCARM - 9 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c - - - BICOMP - 71 - - - ICCARM - 122 40 - - - - - BICOMP - 13 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 9 3 5 147 - - - ICCARM - 13 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c - - - BICOMP - 206 - - - ICCARM - 116 51 - - - - - BICOMP - 25 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 25 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c - - - BICOMP - 30 - - - ICCARM - 124 49 - - - - - BICOMP - 8 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 7 11 15 13 9 3 5 147 - - - ICCARM - 8 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\boot.c - - - BICOMP - 58 - - - ICCARM - 109 107 - - - - - BICOMP - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\cstart.s - - - AARM - 56 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c - - - BICOMP - 100 - - - ICCARM - 126 52 - - - - - BICOMP - 17 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 8 7 11 15 13 9 3 5 147 - - - ICCARM - 17 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c - - - BICOMP - 101 - - - ICCARM - 125 99 - - - - - BICOMP - 23 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 23 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\vectors.c - - - BICOMP - 54 - - - ICCARM - 60 59 - - - - - BICOMP - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\led.c - - - BICOMP - 154 - - - ICCARM - 134 155 - - - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\timer.c - - - BICOMP - 111 - - - ICCARM - 61 57 - - - - - BICOMP - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\main.c - - - BICOMP - 55 - - - ICCARM - 110 108 - - - - - BICOMP - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\irq.c - - - BICOMP - 156 - - - ICCARM - 135 140 - - - - - BICOMP - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - ICCARM - 37 133 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 21 48 47 38 - - - - - $PROJ_DIR$\..\bin\demoprog_olimex_stm32e407.out - - - ILINK - 136 - - - OBJCOPY - 139 - - - - - ILINK - 137 107 56 140 155 108 199 83 85 89 86 187 188 190 93 84 94 95 96 97 102 103 104 87 88 39 51 99 52 49 201 207 202 40 204 203 196 189 57 59 69 128 130 121 - - - - - [ROOT_NODE] - - - ILINK - 138 136 - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c @@ -675,40 +251,17 @@ ICCARM - 75 83 + 116 124 BICOMP - 146 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 8 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 146 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c - - - BICOMP - 211 - - - ICCARM - 78 89 - - - - - BICOMP - 179 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 179 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 8 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -721,201 +274,105 @@ ICCARM - 67 85 + 108 126 - - BICOMP - 148 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - ICCARM - 148 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 10 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c BICOMP - 194 + 211 ICCARM - 70 199 + 119 130 BICOMP - 147 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 + 13 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 147 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 + 13 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c BICOMP - 191 + 89 ICCARM - 76 96 + 114 127 BICOMP - 159 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 159 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c BICOMP - 53 + 139 ICCARM - 80 97 + 107 187 BICOMP - 157 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 157 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c BICOMP - 90 + 88 ICCARM - 79 94 + 109 188 BICOMP - 162 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 162 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c - - - BICOMP - 105 - - - ICCARM - 115 95 - - - - - BICOMP - 165 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 165 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c - - - BICOMP - 65 - - - ICCARM - 62 87 - - - - - BICOMP - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c - - - BICOMP - 200 - - - ICCARM - 81 102 - - - - - BICOMP - 170 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 170 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c - - - BICOMP - 63 - - - ICCARM - 82 103 - - - - - BICOMP - 172 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 172 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -928,86 +385,17 @@ ICCARM - 74 190 + 115 190 BICOMP - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c - - - BICOMP - 41 - - - ICCARM - 68 188 - - - - - BICOMP - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c - - - BICOMP - 31 - - - ICCARM - 77 84 - - - - - BICOMP - 161 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 161 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c - - - BICOMP - 42 - - - ICCARM - 73 86 - - - - - BICOMP - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 - - - ICCARM - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 15 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -1020,86 +408,187 @@ ICCARM - 112 93 + 153 134 BICOMP - 166 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 20 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 166 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 20 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + [ROOT_NODE] + + + ILINK + 179 177 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c BICOMP - 72 + 81 ICCARM - 114 88 + 118 125 BICOMP - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 22 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 22 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c BICOMP - 106 + 131 ICCARM - 118 39 + 120 135 BICOMP - 168 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 25 23 17 8 7 11 15 13 9 3 5 147 + 24 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 168 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 184 172 25 23 17 8 7 11 15 13 9 3 5 147 + 24 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 - $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c BICOMP - 98 + 146 ICCARM - 66 187 + 156 136 BICOMP - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 26 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 176 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 166 161 162 165 159 157 170 184 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 26 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c + + + BICOMP + 191 + + + ICCARM + 117 137 + + + + + BICOMP + 28 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 28 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c + + + BICOMP + 94 + + + ICCARM + 121 138 + + + + + BICOMP + 30 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 30 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c + + + BICOMP + 200 + + + ICCARM + 122 143 + + + + + BICOMP + 32 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 32 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c + + + BICOMP + 104 + + + ICCARM + 123 144 + + + + + BICOMP + 34 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 34 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 40 42 44 46 48 50 52 54 56 58 60 62 5 @@ -1108,21 +597,528 @@ BICOMP - 64 + 105 ICCARM - 113 104 + 154 145 BICOMP - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 ICCARM - 184 145 150 209 193 91 198 186 192 92 29 151 34 208 149 153 19 144 146 148 179 176 166 161 162 165 159 157 170 172 168 25 23 17 8 7 11 15 13 9 3 5 147 + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c + + + BICOMP + 106 + + + ICCARM + 103 128 + + + + + BICOMP + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c + + + BICOMP + 113 + + + ICCARM + 155 129 + + + + + BICOMP + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 36 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c + + + BICOMP + 147 + + + ICCARM + 159 86 + + + + + BICOMP + 40 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 40 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c + + + BICOMP + 206 + + + ICCARM + 157 92 + + + + + BICOMP + 42 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 42 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c + + + BICOMP + 142 + + + ICCARM + 166 140 + + + + + BICOMP + 44 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 44 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c + + + BICOMP + 141 + + + ICCARM + 167 93 + + + + + BICOMP + 46 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 + + + ICCARM + 46 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c + + + BICOMP + 80 + + + ICCARM + 165 91 + + + + + BICOMP + 48 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 + + + ICCARM + 48 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c + + + BICOMP + 77 + + + ICCARM + 168 201 + + + + + BICOMP + 50 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 + + + ICCARM + 50 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c + + + BICOMP + 90 + + + ICCARM + 164 207 + + + + + BICOMP + 52 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 + + + ICCARM + 52 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c + + + BICOMP + 85 + + + ICCARM + 170 202 + + + + + BICOMP + 54 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 + + + ICCARM + 54 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 56 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c + + + BICOMP + 112 + + + ICCARM + 163 87 + + + + + BICOMP + 56 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 + + + ICCARM + 56 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 58 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c + + + BICOMP + 82 + + + ICCARM + 172 204 + + + + + BICOMP + 58 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 + + + ICCARM + 58 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 60 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c + + + BICOMP + 78 + + + ICCARM + 161 203 + + + + + BICOMP + 60 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 + + + ICCARM + 60 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 62 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c + + + BICOMP + 83 + + + ICCARM + 158 196 + + + + + BICOMP + 62 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 + + + ICCARM + 62 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 5 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\Device\ST\STM32F4xx\Source\system_stm32f4xx.c + + + BICOMP + 185 + + + ICCARM + 160 189 + + + + + BICOMP + 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + ICCARM + 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 + + + + + $PROJ_DIR$\..\boot.c + + + BICOMP + 99 + + + ICCARM + 150 148 + + + + + BICOMP + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\cstart.s + + + AARM + 97 + + + + + $PROJ_DIR$\..\irq.c + + + BICOMP + 184 + + + ICCARM + 176 181 + + + + + BICOMP + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\led.c + + + BICOMP + 183 + + + ICCARM + 175 182 + + + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\main.c + + + BICOMP + 96 + + + ICCARM + 151 149 + + + + + BICOMP + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\timer.c + + + BICOMP + 152 + + + ICCARM + 102 98 + + + + + BICOMP + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\vectors.c + + + BICOMP + 95 + + + ICCARM + 101 100 + + + + + BICOMP + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + ICCARM + 68 174 6 0 209 193 132 198 186 192 133 79 3 84 208 4 2 64 11 8 10 13 15 20 22 24 26 28 30 32 36 34 40 42 44 46 48 50 52 54 56 58 60 62 5 66 70 72 75 + + + + + $PROJ_DIR$\..\bin\demoprog_olimex_stm32e407.out + + + ILINK + 177 + + + OBJCOPY + 180 + + + + + ILINK + 178 148 97 181 182 149 199 124 126 130 127 187 188 190 134 125 135 136 137 138 143 144 145 128 129 86 92 140 93 91 201 207 202 87 204 203 196 189 98 100 110 169 171 162 diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.c index 30557df6..7179e3ed 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\irq.c +* \brief IRQ driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.h index fd165b65..67491df8 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/irq.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\irq.h +* \brief IRQ driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.c index e9316797..e57298d2 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\led.c +* \brief LED driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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) @@ -65,11 +67,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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.h index d44b591d..f983cedd 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/led.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\led.h +* \brief LED driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/main.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/main.c index 4b793bfc..3486b71e 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/main.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\main.c +* \brief Demo program application source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/prog.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/prog.dox new file mode 100644 index 00000000..2156b762 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/prog.dox @@ -0,0 +1,7 @@ +/** +\defgroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR User Program +\brief User Program. +\ingroup ARMCM4_STM32_Olimex_STM32E407_IAR +*/ + + diff --git a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.c index 8e485d45..e78ce73a 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\timer.c +* \brief Timer driver source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.h b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.h index 3ca6c1c9..cc4baa41 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/timer.h +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\timer.h +* \brief Timer driver header file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/vectors.c b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/vectors.c index 2c9a155a..a9019a6b 100644 --- a/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/Prog/vectors.c +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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\ARMCM4_STM32_Olimex_STM32E407_IAR\Prog\vectors.c +* \brief Demo program interrupt vectors source file. +* \ingroup Prog_ARMCM4_STM32_Olimex_STM32E407_IAR +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/ARMCM4_STM32_Olimex_STM32E407_IAR/demo.dox b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/demo.dox new file mode 100644 index 00000000..9ace2a24 --- /dev/null +++ b/Target/Demo/ARMCM4_STM32_Olimex_STM32E407_IAR/demo.dox @@ -0,0 +1,8 @@ +/** +\defgroup ARMCM4_STM32_Olimex_STM32E407_IAR Demo for Olimex STM32-E407/IAR +\brief Preconfigured programs for the Olimex STM32-E407 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/Source/ARM7_LPC2000/Crossworks/cstart.s b/Target/Source/ARM7_LPC2000/Crossworks/cstart.s index 2b4dd7b6..a041abb5 100644 --- a/Target/Source/ARM7_LPC2000/Crossworks/cstart.s +++ b/Target/Source/ARM7_LPC2000/Crossworks/cstart.s @@ -83,15 +83,12 @@ fiq_handler_address: .set MEMMAP, 0xE01FC040 /* MEMMAP register */ .global EntryFromProg -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code between this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x00000040. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. Do not place +** any assembly code between this function and the end of the vector +** table. This guarantees that this function is located at address +** 0x00000040. The user program can call this function from C in the +** following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); @@ -99,6 +96,7 @@ fiq_handler_address: ** pEntryFromProgFnc = (void*)0x00000040; ** pEntryFromProgFnc(); ** } +** \return none. ** ****************************************************************************************/ EntryFromProg: @@ -132,13 +130,11 @@ EntryFromProg: .extern APP_ENTRY_POINT .global exit -/**************************************************************************************** -** NAME: Reset_Handler -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset interrupt service routine. Configures the stack for each mode, -** disables the IRQ and FIQ interrupts, initializes RAM and jumps to -** function main. +/************************************************************************************//** +** \brief Reset interrupt service routine. Configures the stack for each mode, +** disables the IRQ and FIQ interrupts, initializes RAM and jumps to +** function main. +** \return none. ** ****************************************************************************************/ Reset_Handler: @@ -377,22 +373,20 @@ exit_loop: .extern ComSetConnectEntryState -/**************************************************************************************** -** NAME: Reset_Handler_SWI -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset handler for a software reset after the user program activated -** the bootloader. Configures the stack for each mode, disables the IRQ -** and FIQ interrupts, initializes RAM. Most importantly, before jumping -** to function main to start the bootloader program, the COM interface -** is configured to start in a connected state. Here is why: -** At the start of a new programming session, the host sends the XCP -** CONNECT command. Upon reception, the user program activates the -** bootloader by jumping to function EntryFromProg(), which triggers the -** SWI instruction that gets the program to this point. When the -** bootloader is started, it now needs to send the response to the XCP -** CONNECT command, because the host is waiting for this before it can -** continue. +/************************************************************************************//** +** \brief Reset handler for a software reset after the user program activated +** the bootloader. Configures the stack for each mode, disables the IRQ +** and FIQ interrupts, initializes RAM. Most importantly, before jumping +** to function main to start the bootloader program, the COM interface +** is configured to start in a connected state. Here is why: +** At the start of a new programming session, the host sends the XCP +** CONNECT command. Upon reception, the user program activates the +** bootloader by jumping to function EntryFromProg(), which triggers the +** SWI instruction that gets the program to this point. When the +** bootloader is started, it now needs to send the response to the XCP +** CONNECT command, because the host is waiting for this before it can +** continue. +** \return none. ** ****************************************************************************************/ Reset_Handler_SWI: diff --git a/Target/Source/ARM7_LPC2000/Crossworks/flash.c b/Target/Source/ARM7_LPC2000/Crossworks/flash.c index dc311ba2..2c9d2d6f 100644 --- a/Target/Source/ARM7_LPC2000/Crossworks/flash.c +++ b/Target/Source/ARM7_LPC2000/Crossworks/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.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 Source\ARM7_LPC2000\Crossworks\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARM7_LPC2000 +* \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,47 +40,59 @@ /**************************************************************************************** * 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])) -/* entry address for the IAP algorithms, enabling a switch to thumb mode */ +/** \brief Entry address for the IAP algorithms, enabling a switch to thumb mode. */ #define IAP_ENTRY_ADDRESS (0x7ffffff1) -/* command codes */ +/** \brief IAP prepare sectos command code. */ #define IAP_CMD_PREPARE_SECTORS (50) +/** \brief IAP copy ram to flash command code. */ #define IAP_CMD_COPY_RAM_TO_FLASH (51) +/** \brief IAP erase sectors command code. */ #define IAP_CMD_ERASE_SECTORS (52) +/** \brief IAP black check sectors command code. */ #define IAP_CMD_BLANK_CHECK_SECTORS (53) +/** \brief IAP compare command code. */ #define IAP_CMD_COMPARE (56) -/* result codes */ +/** \brief IAP result code for success. */ #define IAP_CMD_SUCCESS (0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -/* function pointer type that is needed to call IAP functions of the NXP LPC2xxx */ +/** \brief Function pointer type that is needed to call IAP functions of the + * NXP LPC2xxx. + */ typedef void (*pIapHandler)(blt_int32u command[], blt_int32u result[]); -/* 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. Note that the .data member must - * be 32-bit aligned by the linker. the .base_addr must be a multiple of - * FLASH_WRITE_BLOCK_SIZE. + +/** \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. Note that the .data member must be 32-bit aligned by the linker. + * the .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { - blt_addr base_addr; - blt_int8u data[FLASH_WRITE_BLOCK_SIZE] __attribute__ ((aligned (4))); + blt_addr base_addr; /**< Base address for the flash operation.*/ + blt_int8u data[FLASH_WRITE_BLOCK_SIZE] __attribute__ ((aligned (4))); /**< Data array. */ } tFlashBlockInfo; @@ -88,7 +102,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static blt_int8u FlashGetSector(blt_addr address); @@ -97,8 +111,13 @@ static blt_int8u FlashGetSector(blt_addr address); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* The current flash layout supports the NXP LPC21xx and LPC22xx targets. LPC23xx have - * a slightly different layout. To support the LPC23xx, simply update this flash layout. +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + * The current flash layout supports the NXP LPC21xx and LPC22xx targets. + * LPC23xx has a slightly different layout. To support the LPC23xx, simply + * update this flash layout. */ static const tFlashSector flashLayout[] = { @@ -156,38 +175,41 @@ 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; + static tFlashBlockInfo blockInfo; -/* The first block of the user program holds the vector table, which on the LPC2000 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on the LPC2000. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequency. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * LPC2000 is also the where the checksum is written to. Is it likely that the + * vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed and + * the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * the LPC2000. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once at + * the end of the programming sequency. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -204,15 +226,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -238,14 +259,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -266,15 +286,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -325,12 +343,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -358,12 +374,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -390,13 +404,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -419,14 +432,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -469,21 +481,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -546,12 +557,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -612,12 +622,11 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -679,11 +688,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) diff --git a/Target/Source/ARM7_LPC2000/Crossworks/flash.h b/Target/Source/ARM7_LPC2000/Crossworks/flash.h index 9cae116f..f2106377 100644 --- a/Target/Source/ARM7_LPC2000/Crossworks/flash.h +++ b/Target/Source/ARM7_LPC2000/Crossworks/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.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 Source\ARM7_LPC2000\Crossworks\flash.h +* \brief Bootloader flash driver header file. +* \ingroup Target_ARM7_LPC2000 +* \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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARM7_LPC2000/GCC/cstart.s b/Target/Source/ARM7_LPC2000/GCC/cstart.s index 8888deea..61c06ab7 100644 --- a/Target/Source/ARM7_LPC2000/GCC/cstart.s +++ b/Target/Source/ARM7_LPC2000/GCC/cstart.s @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader C-startup assembly file -| File Name: cstart.s -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2011 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 ARM7_LPC2000\GCC\cstart.s +* \brief Bootloader C-startup assembly file. +* \ingroup Target_ARM7_LPC2000 +* \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 ****************************************************************************************/ @@ -34,11 +36,11 @@ * Macro definitions ****************************************************************************************/ /* stack Sizes */ -.set UND_STACK_SIZE, 0x00000004 /* stack for "undef" interrupts is 4 bytes */ -.set ABT_STACK_SIZE, 0x00000004 /* stack for "abort" interrupts is 4 bytes */ -.set FIQ_STACK_SIZE, 0x00000004 /* stack for "FIQ" interrupts is 4 bytes */ -.set IRQ_STACK_SIZE, 0X00000004 /* stack for "IRQ" normal interrupts is 4 bytes */ -.set SVC_STACK_SIZE, 0x00000004 /* stack for "SVC" supervisor mode is 4 bytes */ +.set UND_STACK_SIZE, 0x00000004 /* stack for "undef" interrupts is 4 bytes */ +.set ABT_STACK_SIZE, 0x00000004 /* stack for "abort" interrupts is 4 bytes */ +.set FIQ_STACK_SIZE, 0x00000004 /* stack for "FIQ" interrupts is 4 bytes */ +.set IRQ_STACK_SIZE, 0X00000004 /* stack for "IRQ" normal interrupts is 4 bytes */ +.set SVC_STACK_SIZE, 0x00000004 /* stack for "SVC" supervisor mode is 4 bytes */ /* mode bits and Interrupt (I & F) flags in program status registers (PSRs) */ .set MODE_USR, 0x10 /* Normal User Mode */ @@ -73,30 +75,27 @@ _vectors: ldr PC, Reset_Addr /* point to Reset_Handler address ldr PC, SWI_Addr /* point to SWI_ISR address */ ldr PC, PAbt_Addr /* point to UNDEF_ISR address */ ldr PC, DAbt_Addr /* point to UNDEF_ISR address */ - nop /* reserved for Philips ISP checksum */ + nop /* reserved for Philips ISP checksum */ ldr PC, IRQ_Addr /* point to IRQ_ISR address */ ldr PC, FIQ_Addr /* point to FIQ_ISR address */ -Reset_Addr: .word Reset_Handler /* defined in this module below */ -Undef_Addr: .word UNDEF_ISR /* defined in vectors.c */ +Reset_Addr: .word Reset_Handler /* defined in this module below */ +Undef_Addr: .word UNDEF_ISR /* defined in vectors.c */ SWI_Addr: .word Reset_Handler_SWI /* defined in this module below */ -PAbt_Addr: .word UNDEF_ISR /* defined in vectors.c */ -DAbt_Addr: .word UNDEF_ISR /* defined in vectors.c */ -FIQ_Addr: .word FIQ_ISR /* defined in vectors.c */ -IRQ_Addr: .word IRQ_ISR /* defined in vectors.c */ - .word 0 /* rounds vectors and ISR addresses to */ +PAbt_Addr: .word UNDEF_ISR /* defined in vectors.c */ +DAbt_Addr: .word UNDEF_ISR /* defined in vectors.c */ +FIQ_Addr: .word FIQ_ISR /* defined in vectors.c */ +IRQ_Addr: .word IRQ_ISR /* defined in vectors.c */ + .word 0 /* rounds vectors and ISR addresses to */ /* 64 bytes */ -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code between this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x00000040. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. Do not place +** any assembly code between this function and the end of the vector +** table. This guarantees that this function is located at address +** 0x00000040. The user program can call this function from C in the +** following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); @@ -104,6 +103,7 @@ IRQ_Addr: .word IRQ_ISR /* defined in vectors.c ** pEntryFromProgFnc = (void*)0x00000040; ** pEntryFromProgFnc(); ** } +** \return none. ** ****************************************************************************************/ EntryFromProg: @@ -119,35 +119,33 @@ EntryFromProg: /*** end of EntryFromProg ***/ -/**************************************************************************************** -** NAME: Reset_Handler -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset interrupt service routine. Configures the stack for each mode, -** disables the IRQ and FIQ interrupts, initializes RAM and jumps to -** function main. +/************************************************************************************//** +** \brief Reset interrupt service routine. Configures the stack for each mode, +** disables the IRQ and FIQ interrupts, initializes RAM and jumps to +** function main. +** \return none. ** ****************************************************************************************/ Reset_Handler: - /* setup a stack and disable interrupts for each mode */ - ldr r0, =_stack_end - msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ - mov sp, r0 - sub r0, r0, #UND_STACK_SIZE - msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ - mov sp, r0 - sub r0, r0, #ABT_STACK_SIZE - msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ - mov sp, r0 - sub r0, r0, #FIQ_STACK_SIZE - msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ - mov sp, r0 - sub r0, r0, #IRQ_STACK_SIZE - msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ - mov sp, r0 - sub r0, r0, #SVC_STACK_SIZE - msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ - mov sp, r0 + /* setup a stack and disable interrupts for each mode */ + ldr r0, =_stack_end + msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ + mov sp, r0 + sub r0, r0, #UND_STACK_SIZE + msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ + mov sp, r0 + sub r0, r0, #ABT_STACK_SIZE + msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ + mov sp, r0 + sub r0, r0, #FIQ_STACK_SIZE + msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ + mov sp, r0 + sub r0, r0, #IRQ_STACK_SIZE + msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ + mov sp, r0 + sub r0, r0, #SVC_STACK_SIZE + msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ + mov sp, r0 /* copy .data section from ROM to RAM and zero out .bss section */ bl SetupRAM /* start bootloader program by jumping to main() */ @@ -155,44 +153,42 @@ Reset_Handler: /*** end of Reset_Handler ***/ -/**************************************************************************************** -** NAME: Reset_Handler_SWI -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset handler for a software reset after the user program activated -** the bootloader. Configures the stack for each mode, disables the IRQ -** and FIQ interrupts, initializes RAM. Most importantly, before jumping -** to function main to start the bootloader program, the COM interface -** is configured to start in a connected state. Here is why: -** At the start of a new programming session, the host sends the XCP -** CONNECT command. Upon reception, the user program activates the -** bootloader by jumping to function EntryFromProg(), which triggers the -** SWI instruction that gets the program to this point. When the -** bootloader is started, it now needs to send the response to the XCP -** CONNECT command, because the host is waiting for this before it can -** continue. +/************************************************************************************//** +** \brief Reset handler for a software reset after the user program activated +** the bootloader. Configures the stack for each mode, disables the IRQ +** and FIQ interrupts, initializes RAM. Most importantly, before jumping +** to function main to start the bootloader program, the COM interface +** is configured to start in a connected state. Here is why: +** At the start of a new programming session, the host sends the XCP +** CONNECT command. Upon reception, the user program activates the +** bootloader by jumping to function EntryFromProg(), which triggers the +** SWI instruction that gets the program to this point. When the +** bootloader is started, it now needs to send the response to the XCP +** CONNECT command, because the host is waiting for this before it can +** continue. +** \return none. ** ****************************************************************************************/ Reset_Handler_SWI: - /* setup a stack and disable interrupts for each mode */ - ldr r0, =_stack_end - msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ - mov sp, r0 - sub r0, r0, #UND_STACK_SIZE - msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ - mov sp, r0 - sub r0, r0, #ABT_STACK_SIZE - msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ - mov sp, r0 - sub r0, r0, #FIQ_STACK_SIZE - msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ - mov sp, r0 - sub r0, r0, #IRQ_STACK_SIZE - msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ - mov sp, r0 - sub r0, r0, #SVC_STACK_SIZE - msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ - mov sp, r0 + /* setup a stack and disable interrupts for each mode */ + ldr r0, =_stack_end + msr CPSR_c, #MODE_UND|I_BIT|F_BIT /* Undefined Instruction Mode */ + mov sp, r0 + sub r0, r0, #UND_STACK_SIZE + msr CPSR_c, #MODE_ABT|I_BIT|F_BIT /* Abort Mode */ + mov sp, r0 + sub r0, r0, #ABT_STACK_SIZE + msr CPSR_c, #MODE_FIQ|I_BIT|F_BIT /* FIQ Mode */ + mov sp, r0 + sub r0, r0, #FIQ_STACK_SIZE + msr CPSR_c, #MODE_IRQ|I_BIT|F_BIT /* IRQ Mode */ + mov sp, r0 + sub r0, r0, #IRQ_STACK_SIZE + msr CPSR_c, #MODE_SVC|I_BIT|F_BIT /* Supervisor Mode */ + mov sp, r0 + sub r0, r0, #SVC_STACK_SIZE + msr CPSR_c, #MODE_SYS|I_BIT|F_BIT /* User Mode */ + mov sp, r0 /* copy .data section from ROM to RAM and zero out .bss section */ bl SetupRAM /* this part makes the difference with the normal Reset_Handler */ @@ -202,12 +198,10 @@ Reset_Handler_SWI: /*** end of Reset_Handler_SWI ***/ -/**************************************************************************************** -** NAME: SetupRAM -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes RAM by copying .data section from ROM to RAM and zero-ing -** out .bss section. +/************************************************************************************//** +** \brief Initializes RAM by copying .data section from ROM to RAM and zero-ing +** out .bss section. +** \return none. ** ****************************************************************************************/ SetupRAM: diff --git a/Target/Source/ARM7_LPC2000/GCC/flash.c b/Target/Source/ARM7_LPC2000/GCC/flash.c index dc311ba2..5a7e2d56 100644 --- a/Target/Source/ARM7_LPC2000/GCC/flash.c +++ b/Target/Source/ARM7_LPC2000/GCC/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.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 Source\ARM7_LPC2000\GCC\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARM7_LPC2000 +* \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,47 +40,59 @@ /**************************************************************************************** * 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])) -/* entry address for the IAP algorithms, enabling a switch to thumb mode */ +/** \brief Entry address for the IAP algorithms, enabling a switch to thumb mode. */ #define IAP_ENTRY_ADDRESS (0x7ffffff1) -/* command codes */ +/** \brief IAP prepare sectos command code. */ #define IAP_CMD_PREPARE_SECTORS (50) +/** \brief IAP copy ram to flash command code. */ #define IAP_CMD_COPY_RAM_TO_FLASH (51) +/** \brief IAP erase sectors command code. */ #define IAP_CMD_ERASE_SECTORS (52) +/** \brief IAP black check sectors command code. */ #define IAP_CMD_BLANK_CHECK_SECTORS (53) +/** \brief IAP compare command code. */ #define IAP_CMD_COMPARE (56) -/* result codes */ +/** \brief IAP result code for success. */ #define IAP_CMD_SUCCESS (0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -/* function pointer type that is needed to call IAP functions of the NXP LPC2xxx */ +/** \brief Function pointer type that is needed to call IAP functions of the + * NXP LPC2xxx. + */ typedef void (*pIapHandler)(blt_int32u command[], blt_int32u result[]); -/* 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. Note that the .data member must - * be 32-bit aligned by the linker. the .base_addr must be a multiple of - * FLASH_WRITE_BLOCK_SIZE. + +/** \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. Note that the .data member must be 32-bit aligned by the linker. + * the .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { - blt_addr base_addr; - blt_int8u data[FLASH_WRITE_BLOCK_SIZE] __attribute__ ((aligned (4))); + blt_addr base_addr; /**< Base address for the flash operation.*/ + blt_int8u data[FLASH_WRITE_BLOCK_SIZE] __attribute__ ((aligned (4))); /**< Data array. */ } tFlashBlockInfo; @@ -88,7 +102,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static blt_int8u FlashGetSector(blt_addr address); @@ -97,8 +111,13 @@ static blt_int8u FlashGetSector(blt_addr address); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* The current flash layout supports the NXP LPC21xx and LPC22xx targets. LPC23xx have - * a slightly different layout. To support the LPC23xx, simply update this flash layout. +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + * The current flash layout supports the NXP LPC21xx and LPC22xx targets. + * LPC23xx has a slightly different layout. To support the LPC23xx, simply + * update this flash layout. */ static const tFlashSector flashLayout[] = { @@ -156,38 +175,41 @@ 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; + static tFlashBlockInfo blockInfo; -/* The first block of the user program holds the vector table, which on the LPC2000 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on the LPC2000. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequency. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * LPC2000 is also the where the checksum is written to. Is it likely that the + * vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed and + * the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * the LPC2000. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once at + * the end of the programming sequence. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -204,15 +226,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -238,14 +259,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -266,15 +286,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -325,12 +343,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -358,12 +374,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -390,13 +404,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -419,14 +432,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -469,21 +481,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -546,12 +557,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -612,12 +622,11 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -679,11 +688,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) diff --git a/Target/Source/ARM7_LPC2000/GCC/flash.h b/Target/Source/ARM7_LPC2000/GCC/flash.h index 9cae116f..a1460d9c 100644 --- a/Target/Source/ARM7_LPC2000/GCC/flash.h +++ b/Target/Source/ARM7_LPC2000/GCC/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.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 Source\ARM7_LPC2000\GCC\flash.h +* \brief Bootloader flash driver header file. +* \ingroup Target_ARM7_LPC2000 +* \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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARM7_LPC2000/GCC/vectors.c b/Target/Source/ARM7_LPC2000/GCC/vectors.c index 7ea10d06..615e3ff0 100644 --- a/Target/Source/ARM7_LPC2000/GCC/vectors.c +++ b/Target/Source/ARM7_LPC2000/GCC/vectors.c @@ -1,34 +1,37 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARM7_LPC2000\GCC\vectors.c +* \brief Bootloader interrupt vectors source file. +* \ingroup Target_ARM7_LPC2000 +* \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 ****************************************************************************************/ + /**************************************************************************************** * Include files ****************************************************************************************/ @@ -43,11 +46,9 @@ void __attribute__ ((interrupt("IRQ"))) IRQ_ISR(void); void __attribute__ ((interrupt("UNDEF"))) UNDEF_ISR(void); -/**************************************************************************************** -** NAME: FIQ_ISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: FIQ exception routine. +/************************************************************************************//** +** \brief FIQ exception routine. +** \return none. ** ****************************************************************************************/ void FIQ_ISR(void) @@ -57,11 +58,9 @@ void FIQ_ISR(void) } /*** end of FIQ_ISR ***/ -/**************************************************************************************** -** NAME: IRQ_ISR -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: IRQ exception routine. +/************************************************************************************//** +** \brief IRQ exception routine. +** \return none. ** ****************************************************************************************/ void IRQ_ISR(void) @@ -71,11 +70,9 @@ void IRQ_ISR(void) } /*** end of IRQ_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/Source/ARM7_LPC2000/can.c b/Target/Source/ARM7_LPC2000/can.c index 91e07874..560bbad1 100644 --- a/Target/Source/ARM7_LPC2000/can.c +++ b/Target/Source/ARM7_LPC2000/can.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface source file -| File Name: can.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 Source\ARM7_LPC2000\can.c +* \brief Bootloader CAN communication interface source file. +* \ingroup Target_ARM7_LPC2000 +* \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 ****************************************************************************************/ @@ -40,50 +42,73 @@ /**************************************************************************************** * 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 bit. */ +#define CAN_TBS1 (0x00000004) +/** \brief Transmit buffer 1 complete bit. */ +#define CAN_TCS1 (0x00000008) +/** \brief Receive buffer release bit. */ +#define CAN_RRB (0x04) +/** \brief Receive buffer status bit. */ +#define CAN_RBS (0x01) +/** \brief Transmission request bit. */ +#define CAN_TR (0x01) +/** \brief Select tx buffer 1 for transmit bit. */ +#define CAN_STB1 (0x20) /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief CANAFMR CAN controller register. */ #define CANAFMR (*((volatile blt_int8u *) 0xE003C000)) +/** \brief CAN1MOD CAN controller register. */ #define CAN1MOD (*((volatile blt_int32u *) 0xE0044000)) +/** \brief CAN1IER CAN controller register. */ #define CAN1IER (*((volatile blt_int32u *) 0xE0044010)) +/** \brief CAN1GSR CAN controller register. */ #define CAN1GSR (*((volatile blt_int32u *) 0xE0044008)) +/** \brief CAN1BTR CAN controller register. */ #define CAN1BTR (*((volatile blt_int32u *) 0xE0044014)) +/** \brief CAN1TFI1 CAN controller register. */ #define CAN1TFI1 (*((volatile blt_int32u *) 0xE0044030)) +/** \brief CAN1TID1 CAN controller register. */ #define CAN1TID1 (*((volatile blt_int32u *) 0xE0044034)) +/** \brief CAN1TDA1 CAN controller register. */ #define CAN1TDA1 (*((volatile blt_int32u *) 0xE0044038)) +/** \brief CAN1TDB1 CAN controller register. */ #define CAN1TDB1 (*((volatile blt_int32u *) 0xE004403C)) +/** \brief CAN1CMR CAN controller register. */ #define CAN1CMR (*((volatile blt_int32u *) 0xE0044004)) +/** \brief CAN1SR CAN controller register. */ #define CAN1SR (*((volatile blt_int32u *) 0xE004401C)) +/** \brief CAN1RID CAN controller register. */ #define CAN1RID (*((volatile blt_int32u *) 0xE0044024)) +/** \brief CAN1RDA CAN controller register. */ #define CAN1RDA (*((volatile blt_int32u *) 0xE0044028)) +/** \brief CAN1RDB CAN controller register. */ #define CAN1RDB (*((volatile blt_int32u *) 0xE004402C)) /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ typedef struct t_can_bus_timing { - blt_int8u tseg1; /* CAN time segment 1 */ - blt_int8u tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ + blt_int8u tseg1; /**< CAN time segment 1 */ + blt_int8u 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 */ @@ -109,14 +134,13 @@ 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: BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE -** 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 BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE +** otherwise. ** ****************************************************************************************/ static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int32u *btr) @@ -148,11 +172,9 @@ static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int32u *btr) } /*** end of CanGetSpeedConfig ***/ -/**************************************************************************************** -** NAME: CanInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN controller and synchronizes it to the CAN bus. +/************************************************************************************//** +** \brief Initializes the CAN controller and synchronizes it to the CAN bus. +** \return none. ** ****************************************************************************************/ void CanInit(void) @@ -183,12 +205,11 @@ void CanInit(void) } /*** end of CanInit ***/ -/**************************************************************************************** -** NAME: CanTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void CanTransmitPacket(blt_int8u *data, blt_int8u len) @@ -214,11 +235,10 @@ void CanTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of CanTransmitPacket ***/ -/**************************************************************************************** -** NAME: CanReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE is a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool CanReceivePacket(blt_int8u *data) diff --git a/Target/Source/ARM7_LPC2000/can.h b/Target/Source/ARM7_LPC2000/can.h index 2a60a6f9..a665a633 100644 --- a/Target/Source/ARM7_LPC2000/can.h +++ b/Target/Source/ARM7_LPC2000/can.h @@ -1,33 +1,36 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface header file -| File Name: can.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 Source\ARM7_LPC2000\can.h +* \brief Bootloader CAN communication interface header file. +* \ingroup Target_ARM7_LPC2000 +* \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 CAN_H #define CAN_H diff --git a/Target/Source/ARM7_LPC2000/cpu.c b/Target/Source/ARM7_LPC2000/cpu.c index b9e6dbcf..84425bf6 100644 --- a/Target/Source/ARM7_LPC2000/cpu.c +++ b/Target/Source/ARM7_LPC2000/cpu.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module source file -| File Name: cpu.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 Source\ARM7_LPC2000\cpu.c +* \brief Bootloader cpu module source file. +* \ingroup Target_ARM7_LPC2000 +* \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,18 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Start address of the user program vector table. */ #define CPU_USER_PROG_VECTORS_START_ADDR ((blt_addr)0x00002000) +/** \brief Start address of the RAM vector table. */ #define CPU_RAM_VECTORS_START_ADDR ((blt_addr)0x40000000) +/** \brief Size of the vector table in bytes. */ #define CPU_VECTORS_TABLE_SIZE (64) /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief MEMMAP microcontroller register. */ #define MEMMAP (*((volatile blt_int32u *) 0xE01FC040)) @@ -63,12 +69,10 @@ extern blt_bool CpuUserProgramStartHook(void); extern void Reset_Handler(void); /* reset service routine in cstart.s */ -/**************************************************************************************** -** NAME: CpuStartUserProgram -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Starts the user program, if one is present. In this case this function -** does not return. +/************************************************************************************//** +** \brief Starts the user program, if one is present. In this case this function +** does not return. +** \return none. ** ****************************************************************************************/ void CpuStartUserProgram(void) @@ -110,13 +114,12 @@ void CpuStartUserProgram(void) } /*** end of CpuStartUserProgram ***/ -/**************************************************************************************** -** NAME: CpuMemCopy -** PARAMETER: dest destination address for the data. -** src source address of the data. -** len length of the data in bytes. -** RETURN VALUE: none -** DESCRIPTION: Copies data from the source to the destination address. +/************************************************************************************//** +** \brief Copies data from the source to the destination address. +** \param dest Destination address for the data. +** \param src Source address of the data. +** \param len length of the data in bytes. +** \return none. ** ****************************************************************************************/ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) @@ -138,12 +141,9 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) } /*** end of CpuMemCopy ***/ -/**************************************************************************************** -** NAME: CpuReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Perform a soft reset of the microcontroller by starting from the reset -** ISR. +/************************************************************************************//** +** \brief Perform a soft reset of the microcontroller by starting from the reset ISR. +** \return none. ** ****************************************************************************************/ void CpuReset(void) diff --git a/Target/Source/ARM7_LPC2000/cpu.h b/Target/Source/ARM7_LPC2000/cpu.h index 3b558162..fc7cec57 100644 --- a/Target/Source/ARM7_LPC2000/cpu.h +++ b/Target/Source/ARM7_LPC2000/cpu.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module header file -| File Name: cpu.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 Source\ARM7_LPC2000\cpu.h +* \brief Bootloader cpu module header file. +* \ingroup Target_ARM7_LPC2000 +* \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 CPU_H #define CPU_H diff --git a/Target/Source/ARM7_LPC2000/nvm.c b/Target/Source/ARM7_LPC2000/nvm.c index 7aaea39c..67c0f187 100644 --- a/Target/Source/ARM7_LPC2000/nvm.c +++ b/Target/Source/ARM7_LPC2000/nvm.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver source file -| File Name: nvm.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 Source\ARM7_LPC2000\nvm.c +* \brief Bootloader non-volatile memory driver source file. +* \ingroup Target_ARM7_LPC2000 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -46,11 +48,9 @@ extern blt_bool NvmDoneHook(void); #endif -/**************************************************************************************** -** NAME: NvmInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the NVM driver. +/************************************************************************************//** +** \brief Initializes the NVM driver. +** \return none. ** ****************************************************************************************/ void NvmInit(void) @@ -67,13 +67,12 @@ void NvmInit(void) } /*** end of NvmInit ***/ -/**************************************************************************************** -** NAME: NvmWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Programs the non-volatile memory. +/************************************************************************************//** +** \brief Programs the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -110,12 +109,11 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of NvmWrite ***/ -/**************************************************************************************** -** NAME: NvmErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the non-volatile memory. +/************************************************************************************//** +** \brief Erases the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmErase(blt_addr addr, blt_int32u len) @@ -152,12 +150,10 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len) } /*** end of NvmErase ***/ -/**************************************************************************************** -** NAME: NvmVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmVerifyChecksum(void) @@ -167,15 +163,13 @@ blt_bool NvmVerifyChecksum(void) } /*** end of NvmVerifyChecksum ***/ -/**************************************************************************************** -** NAME: NvmDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Once all erase and programming operations are completed, this -** function is called, so at the end of the programming session and -** right before a software reset is performed. It is used to calculate -** a checksum and program this into flash. This checksum is later used -** to determine if a valid user program is present in flash. +/************************************************************************************//** +** \brief Once all erase and programming operations are completed, this +** function is called, so at the end of the programming session and +** right before a software reset is performed. It is used to calculate +** a checksum and program this into flash. This checksum is later used +** to determine if a valid user program is present in flash. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmDone(void) diff --git a/Target/Source/ARM7_LPC2000/nvm.h b/Target/Source/ARM7_LPC2000/nvm.h index c143d71a..9774cfc2 100644 --- a/Target/Source/ARM7_LPC2000/nvm.h +++ b/Target/Source/ARM7_LPC2000/nvm.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver header file -| File Name: nvm.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 Source\ARM7_LPC2000\nvm.h +* \brief Bootloader non-volatile memory driver header file. +* \ingroup Target_ARM7_LPC2000 +* \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 NVM_H #define NVM_H @@ -51,9 +53,12 @@ blt_bool NvmDone(void); * Macro definitions ****************************************************************************************/ /* return codes for hook function NvmWrite/Erase */ -#define BLT_NVM_ERROR (0x00) /* return code for success */ -#define BLT_NVM_OKAY (0x01) /* return code for error */ -#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */ +/** \brief Return code for success. */ +#define BLT_NVM_ERROR (0x00) +/** \brief Return code for error. */ +#define BLT_NVM_OKAY (0x01) +/** \brief Return code for not in range. */ +#define BLT_NVM_NOT_IN_RANGE (0x02) #endif /* NVM_H */ diff --git a/Target/Source/ARM7_LPC2000/target.dox b/Target/Source/ARM7_LPC2000/target.dox new file mode 100644 index 00000000..7bda23ea --- /dev/null +++ b/Target/Source/ARM7_LPC2000/target.dox @@ -0,0 +1,8 @@ +/** +\defgroup Target_ARM7_LPC2000 Target ARM7 LPC2000 +\brief Target dependent code for the ARM7 LPC2000 microcontroller family. +\details This module implements the bootloader's target dependent part for the + ARM7 LPC2000 microcontroller family. +*/ + + diff --git a/Target/Source/ARM7_LPC2000/timer.c b/Target/Source/ARM7_LPC2000/timer.c index 91982254..39146d8c 100644 --- a/Target/Source/ARM7_LPC2000/timer.c +++ b/Target/Source/ARM7_LPC2000/timer.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARM7_LPC2000\timer.c +* \brief Bootloader timer driver source file. +* \ingroup Target_ARM7_LPC2000 +* \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,26 +40,34 @@ /**************************************************************************************** * Local data declarations ****************************************************************************************/ +/** \brief Local variable that holds the last value of the free running counter. */ static blt_int32u free_running_counter_last; +/** \brief Local variable for storing the number of milliseconds that have elapsed since + * startup. + */ static blt_int32u millisecond_counter; /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief T0MCR timer register. */ #define T0MCR (*((volatile blt_int32u *) 0xE0004014)) +/** \brief T0CCR timer register. */ #define T0CCR (*((volatile blt_int32u *) 0xE0004028)) +/** \brief T0PR timer register. */ #define T0PR (*((volatile blt_int32u *) 0xE000400C)) +/** \brief T0PC timer register. */ #define T0PC (*((volatile blt_int32u *) 0xE0004010)) +/** \brief T0TCR timer register. */ #define T0TCR (*((volatile blt_int32u *) 0xE0004004)) +/** \brief T0TC timer register. */ #define T0TC (*((volatile blt_int32u *) 0xE0004008)) -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the polling based millisecond timer driver. +/************************************************************************************//** +** \brief Initializes the polling based millisecond timer driver. +** \return none. ** ****************************************************************************************/ void TimerInit(void) @@ -76,12 +86,10 @@ void TimerInit(void) } /*** end of TimerInit ***/ -/**************************************************************************************** -** NAME: TimerReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset the timer by placing the timer back into it's default reset -** configuration. +/************************************************************************************//** +** \brief Reset the timer by placing the timer back into it's default reset +** configuration. +** \return none. ** ****************************************************************************************/ void TimerReset(void) @@ -97,11 +105,9 @@ void TimerReset(void) } /* TimerReset */ -/**************************************************************************************** -** NAME: TimerUpdate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the millisecond timer. +/************************************************************************************//** +** \brief Updates the millisecond timer. +** \return none. ** ****************************************************************************************/ void TimerUpdate(void) @@ -116,11 +122,9 @@ void TimerUpdate(void) } /*** end of TimerUpdate ***/ -/**************************************************************************************** -** 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. ** ****************************************************************************************/ blt_int32u TimerGet(void) diff --git a/Target/Source/ARM7_LPC2000/timer.h b/Target/Source/ARM7_LPC2000/timer.h index d138a3fc..9cf8296d 100644 --- a/Target/Source/ARM7_LPC2000/timer.h +++ b/Target/Source/ARM7_LPC2000/timer.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARM7_LPC2000\timer.h +* \brief Bootloader timer driver header file. +* \ingroup Target_ARM7_LPC2000 +* \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/Source/ARM7_LPC2000/types.h b/Target/Source/ARM7_LPC2000/types.h index 339a0f20..9d4261e2 100644 --- a/Target/Source/ARM7_LPC2000/types.h +++ b/Target/Source/ARM7_LPC2000/types.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader types header file -| File Name: types.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 Source\ARM7_LPC2000\types.h +* \brief Bootloader types header file. +* \ingroup Target_ARM7_LPC2000 +* \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 TYPES_H #define TYPES_H @@ -35,23 +37,26 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Boolean true value. */ #define BLT_TRUE (1) +/** \brief Boolean false value. */ #define BLT_FALSE (0) +/** \brief NULL pointer value. */ #define BLT_NULL ((void *)0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -typedef unsigned char blt_bool; /* boolean type */ -typedef char blt_char; /* character type */ -typedef unsigned long blt_addr; /* memory address type */ -typedef unsigned char blt_int8u; /* 8-bit unsigned integer */ -typedef signed char blt_int8s; /* 8-bit signed integer */ -typedef unsigned short blt_int16u; /* 16-bit unsigned integer */ -typedef signed short blt_int16s; /* 16-bit signed integer */ -typedef unsigned int blt_int32u; /* 32-bit unsigned integer */ -typedef signed int blt_int32s; /* 32-bit signed integer */ +typedef unsigned char blt_bool; /**< boolean type */ +typedef char blt_char; /**< character type */ +typedef unsigned long blt_addr; /**< memory address type */ +typedef unsigned char blt_int8u; /**< 8-bit unsigned integer */ +typedef signed char blt_int8s; /**< 8-bit signed integer */ +typedef unsigned short blt_int16u; /**< 16-bit unsigned integer */ +typedef signed short blt_int16s; /**< 16-bit signed integer */ +typedef unsigned int blt_int32u; /**< 32-bit unsigned integer */ +typedef signed int blt_int32s; /**< 32-bit signed integer */ #endif /* TYPES_H */ diff --git a/Target/Source/ARM7_LPC2000/uart.c b/Target/Source/ARM7_LPC2000/uart.c index 716edfe2..591cede3 100644 --- a/Target/Source/ARM7_LPC2000/uart.c +++ b/Target/Source/ARM7_LPC2000/uart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface source file -| File Name: uart.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 Source\ARM7_LPC2000\uart.c +* \brief Bootloader UART communication interface source file. +* \ingroup Target_ARM7_LPC2000 +* \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 ****************************************************************************************/ @@ -40,25 +42,40 @@ /**************************************************************************************** * 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 */ -#define UART_THRE (0x20) /* transmitter holding register empty */ +/** \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) +/** \brief Transmitter holding register empty. */ +#define UART_THRE (0x20) /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief U0RBR UART register. */ #define U0RBR (*((volatile blt_int8u *) 0xE000C000)) +/** \brief U0THR UART register. */ #define U0THR (*((volatile blt_int8u *) 0xE000C000)) +/** \brief U0IER UART register. */ #define U0IER (*((volatile blt_int8u *) 0xE000C004)) +/** \brief U0IIR UART register. */ #define U0IIR (*((volatile blt_int8u *) 0xE000C008)) +/** \brief U0FCR UART register. */ #define U0FCR (*((volatile blt_int8u *) 0xE000C008)) +/** \brief U0LCR UART register. */ #define U0LCR (*((volatile blt_int8u *) 0xE000C00C)) +/** \brief U0LSR UART register. */ #define U0LSR (*((volatile blt_int8u *) 0xE000C014)) +/** \brief U0SCR UART register. */ #define U0SCR (*((volatile blt_int8u *) 0xE000C01C)) +/** \brief U0DLL UART register. */ #define U0DLL (*((volatile blt_int8u *) 0xE000C000)) +/** \brief U0DLM UART register. */ #define U0DLM (*((volatile blt_int8u *) 0xE000C004)) @@ -69,11 +86,9 @@ static blt_bool UartReceiveByte(blt_int8u *data); static blt_bool UartTransmitByte(blt_int8u data); -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface +/************************************************************************************//** +** \brief Initializes the UART communication interface. +** \return none. ** ****************************************************************************************/ void UartInit(void) @@ -115,12 +130,11 @@ void UartInit(void) } /*** end of UartInit ***/ -/**************************************************************************************** -** NAME: UartTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UartTransmitPacket(blt_int8u *data, blt_int8u len) @@ -144,11 +158,10 @@ void UartTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UartTransmitPacket ***/ -/**************************************************************************************** -** NAME: UartReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UartReceivePacket(blt_int8u *data) @@ -197,11 +210,10 @@ blt_bool UartReceivePacket(blt_int8u *data) } /*** end of UartReceivePacket ***/ -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartReceiveByte(blt_int8u *data) @@ -219,11 +231,10 @@ static blt_bool UartReceiveByte(blt_int8u *data) } /*** end of UartReceiveByte ***/ -/**************************************************************************************** -** NAME: UartTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartTransmitByte(blt_int8u data) diff --git a/Target/Source/ARM7_LPC2000/uart.h b/Target/Source/ARM7_LPC2000/uart.h index 9121ac81..5edaddb3 100644 --- a/Target/Source/ARM7_LPC2000/uart.h +++ b/Target/Source/ARM7_LPC2000/uart.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface header file -| File Name: uart.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 Source\ARM7_LPC2000\uart.h +* \brief Bootloader UART communication interface header file. +* \ingroup Target_ARM7_LPC2000 +* \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 UART_H #define UART_H diff --git a/Target/Source/ARMCM3_EFM32/Crossworks/cstart.s b/Target/Source/ARMCM3_EFM32/Crossworks/cstart.s index 107ddc33..1e151bfe 100644 --- a/Target/Source/ARMCM3_EFM32/Crossworks/cstart.s +++ b/Target/Source/ARMCM3_EFM32/Crossworks/cstart.s @@ -68,7 +68,7 @@ ** DESCRIPTION: Called by the user program to activate the bootloader. Do not place ** any assembly code before this function and the end of the vector ** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the +** 0x000000B8. The user program can call this function from C in the ** following way: ** void ActivateBootloader(void) ** { diff --git a/Target/Source/ARMCM3_EFM32/Crossworks/vectors.c b/Target/Source/ARMCM3_EFM32/Crossworks/vectors.c index 1ba6633a..a4d0fb6a 100644 --- a/Target/Source/ARMCM3_EFM32/Crossworks/vectors.c +++ b/Target/Source/ARMCM3_EFM32/Crossworks/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 Source\ARMCM3_EFM32\Crossworks\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 blt_int32u __stack_end__; /* stack end address (memory.x) */ +/** \brief Stack end address (memory.x) */ +extern blt_int32u __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 */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".vectors"))) const tIsrFunc _vectors[] = { diff --git a/Target/Source/ARMCM3_EFM32/GCC/cstart.c b/Target/Source/ARMCM3_EFM32/GCC/cstart.c index 1748a899..496252bb 100644 --- a/Target/Source/ARMCM3_EFM32/GCC/cstart.c +++ b/Target/Source/ARMCM3_EFM32/GCC/cstart.c @@ -1,34 +1,37 @@ -/**************************************************************************************** -| Description: bootloader C startup source file -| File Name: cstart.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 ARMCM3_EFM32\GCC\cstart.c +* \brief Bootloader C startup source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 ****************************************************************************************/ @@ -54,22 +57,22 @@ extern blt_int32u _ebss; extern blt_int32u _estack; -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code before this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. Do not place +** any assembly code before this function and the end of the vector +** table. This guarantees that this function is located at address +** 0x000000B8. The user program can call this function from C in the +** following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); ** -** pEntryFromProgFnc = (void*)0x000000F0; +** pEntryFromProgFnc = (void*)0x000000B8 + 1; ** pEntryFromProgFnc(); ** } +** Note that the + 1 added to the function address is neccassary to +** enable a switch from Thumb2 to Thumb mode. +** \return none. ** ****************************************************************************************/ __attribute__ ((section (".entry"))) @@ -111,12 +114,10 @@ void EntryFromProg(void) } /*** end of EntryFromProg ***/ -/**************************************************************************************** -** 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/Source/ARMCM3_EFM32/GCC/vectors.c b/Target/Source/ARMCM3_EFM32/GCC/vectors.c index 062728f4..de3183dd 100644 --- a/Target/Source/ARMCM3_EFM32/GCC/vectors.c +++ b/Target/Source/ARMCM3_EFM32/GCC/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 Source\ARMCM3_EFM32\GCC\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_EFM32 +* \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,11 +43,9 @@ extern blt_int32u _estack; /* stack end address (memory.x) */ -/**************************************************************************************** -** 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) @@ -59,13 +59,14 @@ void UnusedISR(void) * I N T E R R U P T V E C T O R T A B L E ****************************************************************************************/ extern void reset_handler(void); /* implemented in cstart.c */ - +/** \brief Structure type for vector table entries. */ typedef union { - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".isr_vector"))) const tIsrFunc _vectab[] = { diff --git a/Target/Source/ARMCM3_EFM32/IAR/vectors.c b/Target/Source/ARMCM3_EFM32/IAR/vectors.c index 033c2c08..4965c851 100644 --- a/Target/Source/ARMCM3_EFM32/IAR/vectors.c +++ b/Target/Source/ARMCM3_EFM32/IAR/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 Source\ARMCM3_EFM32\IAR\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 reset_handler( 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/Source/ARMCM3_EFM32/cpu.c b/Target/Source/ARMCM3_EFM32/cpu.c index 5f04c1e3..b67a1fdc 100644 --- a/Target/Source/ARMCM3_EFM32/cpu.c +++ b/Target/Source/ARMCM3_EFM32/cpu.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module source file -| File Name: cpu.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 Source\ARMCM3_EFM32\cpu.c +* \brief Bootloader cpu module source file. +* \ingroup Target_ARMCM3_EFM32 +* \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,20 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x00002004) +/** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00002000) /**************************************************************************************** * Register definitions ****************************************************************************************/ -/* vector table offset register */ +/** \brief Vector table offset register. */ #define SCB_VTOR (*((volatile blt_int32u *) 0xE000ED08)) @@ -63,12 +71,10 @@ extern blt_bool CpuUserProgramStartHook(void); extern void reset_handler(void); /* implemented in cstart.s */ -/**************************************************************************************** -** NAME: CpuStartUserProgram -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Starts the user program, if one is present. In this case this function -** does not return. +/************************************************************************************//** +** \brief Starts the user program, if one is present. In this case this function +** does not return. +** \return none. ** ****************************************************************************************/ void CpuStartUserProgram(void) @@ -107,13 +113,12 @@ void CpuStartUserProgram(void) } /*** end of CpuStartUserProgram ***/ -/**************************************************************************************** -** NAME: CpuMemCopy -** PARAMETER: dest destination address for the data. -** src source address of the data. -** len length of the data in bytes. -** RETURN VALUE: none -** DESCRIPTION: Copies data from the source to the destination address. +/************************************************************************************//** +** \brief Copies data from the source to the destination address. +** \param dest Destination address for the data. +** \param src Source address of the data. +** \param len length of the data in bytes. +** \return none. ** ****************************************************************************************/ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) @@ -135,12 +140,9 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) } /*** end of CpuMemCopy ***/ -/**************************************************************************************** -** NAME: CpuReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Perform a soft reset of the microcontroller by starting from the reset -** ISR. +/************************************************************************************//** +** \brief Perform a soft reset of the microcontroller by starting from the reset ISR. +** \return none. ** ****************************************************************************************/ void CpuReset(void) diff --git a/Target/Source/ARMCM3_EFM32/cpu.h b/Target/Source/ARMCM3_EFM32/cpu.h index e8722991..e57042fc 100644 --- a/Target/Source/ARMCM3_EFM32/cpu.h +++ b/Target/Source/ARMCM3_EFM32/cpu.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module header file -| File Name: cpu.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 Source\ARMCM3_EFM32\cpu.h +* \brief Bootloader cpu module header file. +* \ingroup Target_ARMCM3_EFM32 +* \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 CPU_H #define CPU_H diff --git a/Target/Source/ARMCM3_EFM32/flash.c b/Target/Source/ARMCM3_EFM32/flash.c index 1a559cfa..a97ef73f 100644 --- a/Target/Source/ARMCM3_EFM32/flash.c +++ b/Target/Source/ARMCM3_EFM32/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.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 Source\ARMCM3_EFM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -39,29 +41,35 @@ /**************************************************************************************** * 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])) +/** \brief Offset into the user program's vector table where the checksum is located. */ #define FLASH_VECTOR_TABLE_CS_OFFSET (0x0B8) /**************************************************************************************** * 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. The .base_addr must be a multiple - * of FLASH_WRITE_BLOCK_SIZE. +/** \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. The .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { @@ -76,7 +84,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static blt_int8u FlashGetSector(blt_addr address); @@ -88,10 +96,15 @@ static blt_int32u FlashCalcPageSize(void); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* The current flash layout does not reflect the minimum sector size of the physical - * flash (1 - 2kb), because this would make the table quit long and a waste of ROM. The - * minimum sector size is only really needed when erasing the flash. This can still be - * done in combination with macro FLASH_ERASE_BLOCK_SIZE. +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + * The current flash layout does not reflect the minimum sector size of the + * physical flash (1 - 2kb), because this would make the table quit long and + * a waste of ROM. The minimum sector size is only really needed when erasing + * the flash. This can still be done in combination with macro + * FLASH_ERASE_BLOCK_SIZE. */ static const tFlashSector flashLayout[] = { @@ -140,38 +153,41 @@ 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; -/* The first block of the user program holds the vector table, which on the STM32 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on all micros. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequency. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * STM32 is also the where the checksum is written to. Is it likely that + * the vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed + * and the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * all micros. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once + * at the end of the programming sequence. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -184,15 +200,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -218,14 +233,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -246,15 +260,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -309,12 +321,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -341,12 +351,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -375,13 +383,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -404,14 +411,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -454,21 +460,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -531,12 +536,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -580,12 +584,10 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashCalcPageSize -** PARAMETER: none -** RETURN VALUE: The flash page size -** DESCRIPTION: Determines the flash page size for the specific EFM32 derivative. This -** is the minimum erase size. +/************************************************************************************//** +** \brief Determines the flash page size for the specific EFM32 derivative. This +** is the minimum erase size. +** \return The flash page size. ** ****************************************************************************************/ static blt_int32u FlashCalcPageSize(void) @@ -610,12 +612,11 @@ static blt_int32u FlashCalcPageSize(void) } /*** end of FlashCalcPageSize ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -660,11 +661,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) @@ -690,11 +690,10 @@ static blt_int8u FlashGetSector(blt_addr address) } /*** end of FlashGetSector ***/ -/**************************************************************************************** -** NAME: FlashGetSectorBaseAddr -** PARAMETER: sector sector to get the base address of. -** RETURN VALUE: flash sector base address or FLASH_INVALID_ADDRESS -** DESCRIPTION: Determines the flash sector base address. +/************************************************************************************//** +** \brief Determines the flash sector base address. +** \param sector Sector to get the base address of. +** \return Flash sector base address or FLASH_INVALID_ADDRESS. ** ****************************************************************************************/ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) @@ -716,11 +715,10 @@ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) } /*** end of FlashGetSectorBaseAddr ***/ -/**************************************************************************************** -** NAME: FlashGetSectorSize -** PARAMETER: sector sector to get the size of. -** RETURN VALUE: flash sector size or 0 -** DESCRIPTION: Determines the flash sector size. +/************************************************************************************//** +** \brief Determines the flash sector size. +** \param sector Sector to get the size of. +** \return Flash sector size or 0. ** ****************************************************************************************/ static blt_addr FlashGetSectorSize(blt_int8u sector) diff --git a/Target/Source/ARMCM3_EFM32/flash.h b/Target/Source/ARMCM3_EFM32/flash.h index ea81acfa..49af796f 100644 --- a/Target/Source/ARMCM3_EFM32/flash.h +++ b/Target/Source/ARMCM3_EFM32/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.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 Source\ARMCM3_EFM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARMCM3_EFM32/nvm.c b/Target/Source/ARMCM3_EFM32/nvm.c index a84a5107..03a358a3 100644 --- a/Target/Source/ARMCM3_EFM32/nvm.c +++ b/Target/Source/ARMCM3_EFM32/nvm.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver source file -| File Name: nvm.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 Source\ARMCM3_EFM32\nvm.c +* \brief Bootloader non-volatile memory driver source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -46,11 +48,9 @@ extern blt_bool NvmDoneHook(void); #endif -/**************************************************************************************** -** NAME: NvmInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the NVM driver. +/************************************************************************************//** +** \brief Initializes the NVM driver. +** \return none. ** ****************************************************************************************/ void NvmInit(void) @@ -67,13 +67,12 @@ void NvmInit(void) } /*** end of NvmInit ***/ -/**************************************************************************************** -** NAME: NvmWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Programs the non-volatile memory. +/************************************************************************************//** +** \brief Programs the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -110,12 +109,11 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of NvmWrite ***/ -/**************************************************************************************** -** NAME: NvmErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the non-volatile memory. +/************************************************************************************//** +** \brief Erases the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmErase(blt_addr addr, blt_int32u len) @@ -152,12 +150,10 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len) } /*** end of NvmErase ***/ -/**************************************************************************************** -** NAME: NvmVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmVerifyChecksum(void) @@ -167,15 +163,13 @@ blt_bool NvmVerifyChecksum(void) } /*** end of NvmVerifyChecksum ***/ -/**************************************************************************************** -** NAME: NvmDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Once all erase and programming operations are completed, this -** function is called, so at the end of the programming session and -** right before a software reset is performed. It is used to calculate -** a checksum and program this into flash. This checksum is later used -** to determine if a valid user program is present in flash. +/************************************************************************************//** +** \brief Once all erase and programming operations are completed, this +** function is called, so at the end of the programming session and +** right before a software reset is performed. It is used to calculate +** a checksum and program this into flash. This checksum is later used +** to determine if a valid user program is present in flash. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmDone(void) diff --git a/Target/Source/ARMCM3_EFM32/nvm.h b/Target/Source/ARMCM3_EFM32/nvm.h index 4b58cd8c..b5933412 100644 --- a/Target/Source/ARMCM3_EFM32/nvm.h +++ b/Target/Source/ARMCM3_EFM32/nvm.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver header file -| File Name: nvm.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 Source\ARMCM3_EFM32\nvm.h +* \brief Bootloader non-volatile memory driver header file. +* \ingroup Target_ARMCM3_EFM32 +* \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 NVM_H #define NVM_H @@ -51,9 +53,12 @@ blt_bool NvmDone(void); * Macro definitions ****************************************************************************************/ /* return codes for hook function NvmWrite/Erase */ -#define BLT_NVM_ERROR (0x00) /* return code for success */ -#define BLT_NVM_OKAY (0x01) /* return code for error */ -#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */ +/** \brief Return code for success. */ +#define BLT_NVM_ERROR (0x00) +/** \brief Return code for error. */ +#define BLT_NVM_OKAY (0x01) +/** \brief Return code for not in range. */ +#define BLT_NVM_NOT_IN_RANGE (0x02) #endif /* NVM_H */ diff --git a/Target/Source/ARMCM3_EFM32/target.dox b/Target/Source/ARMCM3_EFM32/target.dox new file mode 100644 index 00000000..9acd608e --- /dev/null +++ b/Target/Source/ARMCM3_EFM32/target.dox @@ -0,0 +1,8 @@ +/** +\defgroup Target_ARMCM3_EFM32 Target ARMCM3 EFM32 +\brief Target dependent code for the ARMCM3 EFM32 microcontroller family. +\details This module implements the bootloader's target dependent part for the + ARMCM3 EFM32 microcontroller family. +*/ + + diff --git a/Target/Source/ARMCM3_EFM32/timer.c b/Target/Source/ARMCM3_EFM32/timer.c index fc9c77cc..2b7c474c 100644 --- a/Target/Source/ARMCM3_EFM32/timer.c +++ b/Target/Source/ARMCM3_EFM32/timer.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_EFM32\timer.c +* \brief Bootloader timer driver source file. +* \ingroup Target_ARMCM3_EFM32 +* \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,39 +40,45 @@ /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Systick registers. */ typedef struct { - volatile blt_int32u CTRL; /* SysTick Control and Status Register */ - volatile blt_int32u LOAD; /* SysTick Reload Value Register */ - volatile blt_int32u VAL; /* SysTick Current Value Register */ + volatile blt_int32u CTRL; /**< SysTick Control and Status Register */ + volatile blt_int32u LOAD; /**< SysTick Reload Value Register */ + volatile blt_int32u VAL; /**< SysTick Current Value Register */ } tSysTickRegs; /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief CLKSOURCE bit of the system tick. */ #define SYSTICK_BIT_CLKSOURCE ((blt_int32u)0x00000004) +/** \brief ENABLE bit of the system tick. */ #define SYSTICK_BIT_ENABLE ((blt_int32u)0x00000001) +/** \brief COUNTERFLAG bit of the system tick. */ #define SYSTICK_BIT_COUNTERFLAG ((blt_int32u)0x00010000) /**************************************************************************************** * Local data declarations ****************************************************************************************/ -static blt_int16u millisecond_counter; +/** \brief Local variable for storing the number of milliseconds that have elapsed since + * startup. + */ +static blt_int32u millisecond_counter; /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief Macro to access the system tick registers. */ #define SYSTICK ((tSysTickRegs *) (blt_int32u)0xE000E010) -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the polling based millisecond timer driver. +/************************************************************************************//** +** \brief Initializes the polling based millisecond timer driver. +** \return none. ** ****************************************************************************************/ void TimerInit(void) @@ -88,12 +96,10 @@ void TimerInit(void) } /*** end of TimerInit ***/ -/**************************************************************************************** -** NAME: TimerReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset the timer by placing the timer back into it's default reset -** configuration. +/************************************************************************************//** +** \brief Reset the timer by placing the timer back into it's default reset +** configuration. +** \return none. ** ****************************************************************************************/ void TimerReset(void) @@ -103,11 +109,9 @@ void TimerReset(void) } /* end of TimerReset */ -/**************************************************************************************** -** NAME: TimerUpdate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the millisecond timer. +/************************************************************************************//** +** \brief Updates the millisecond timer. +** \return none. ** ****************************************************************************************/ void TimerUpdate(void) @@ -121,11 +125,9 @@ void TimerUpdate(void) } /*** end of TimerUpdate ***/ -/**************************************************************************************** -** 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. ** ****************************************************************************************/ blt_int32u TimerGet(void) diff --git a/Target/Source/ARMCM3_EFM32/timer.h b/Target/Source/ARMCM3_EFM32/timer.h index 9e1c148d..f44c283d 100644 --- a/Target/Source/ARMCM3_EFM32/timer.h +++ b/Target/Source/ARMCM3_EFM32/timer.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_EFM32\timer.h +* \brief Bootloader timer driver header file. +* \ingroup Target_ARMCM3_EFM32 +* \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/Source/ARMCM3_EFM32/types.h b/Target/Source/ARMCM3_EFM32/types.h index 97f7bcf5..cc3dd865 100644 --- a/Target/Source/ARMCM3_EFM32/types.h +++ b/Target/Source/ARMCM3_EFM32/types.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader types header file -| File Name: types.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 Source\ARMCM3_EFM32\types.h +* \brief Bootloader types header file. +* \ingroup Target_ARMCM3_EFM32 +* \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 TYPES_H #define TYPES_H @@ -35,23 +37,26 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Boolean true value. */ #define BLT_TRUE (1) +/** \brief Boolean false value. */ #define BLT_FALSE (0) +/** \brief NULL pointer value. */ #define BLT_NULL ((void *)0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -typedef unsigned char blt_bool; /* boolean type */ -typedef char blt_char; /* character type */ -typedef unsigned long blt_addr; /* memory address type */ -typedef unsigned char blt_int8u; /* 8-bit unsigned integer */ -typedef signed char blt_int8s; /* 8-bit signed integer */ -typedef unsigned short blt_int16u; /* 16-bit unsigned integer */ -typedef signed short blt_int16s; /* 16-bit signed integer */ -typedef unsigned int blt_int32u; /* 32-bit unsigned integer */ -typedef signed int blt_int32s; /* 32-bit signed integer */ +typedef unsigned char blt_bool; /**< boolean type */ +typedef char blt_char; /**< character type */ +typedef unsigned long blt_addr; /**< memory address type */ +typedef unsigned char blt_int8u; /**< 8-bit unsigned integer */ +typedef signed char blt_int8s; /**< 8-bit signed integer */ +typedef unsigned short blt_int16u; /**< 16-bit unsigned integer */ +typedef signed short blt_int16s; /**< 16-bit signed integer */ +typedef unsigned int blt_int32u; /**< 32-bit unsigned integer */ +typedef signed int blt_int32s; /**< 32-bit signed integer */ #endif /* TYPES_H */ diff --git a/Target/Source/ARMCM3_EFM32/uart.c b/Target/Source/ARMCM3_EFM32/uart.c index e3007577..edc2046c 100644 --- a/Target/Source/ARMCM3_EFM32/uart.c +++ b/Target/Source/ARMCM3_EFM32/uart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface source file -| File Name: uart.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 Source\ARMCM3_EFM32\uart.c +* \brief Bootloader UART communication interface source file. +* \ingroup Target_ARMCM3_EFM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -47,11 +49,9 @@ static blt_bool UartReceiveByte(blt_int8u *data); static blt_bool UartTransmitByte(blt_int8u data); -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface +/************************************************************************************//** +** \brief Initializes the UART communication interface. +** \return none. ** ****************************************************************************************/ void UartInit(void) @@ -88,12 +88,11 @@ void UartInit(void) } /*** end of UartInit ***/ -/**************************************************************************************** -** NAME: UartTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UartTransmitPacket(blt_int8u *data, blt_int8u len) @@ -117,11 +116,10 @@ void UartTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UartTransmitPacket ***/ -/**************************************************************************************** -** NAME: UartReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UartReceivePacket(blt_int8u *data) @@ -169,11 +167,10 @@ blt_bool UartReceivePacket(blt_int8u *data) } /*** end of UartReceivePacket ***/ -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartReceiveByte(blt_int8u *data) @@ -192,11 +189,10 @@ static blt_bool UartReceiveByte(blt_int8u *data) } /*** end of UartReceiveByte ***/ -/**************************************************************************************** -** NAME: UartTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartTransmitByte(blt_int8u data) diff --git a/Target/Source/ARMCM3_EFM32/uart.h b/Target/Source/ARMCM3_EFM32/uart.h index f4b9b5d9..4a088b5d 100644 --- a/Target/Source/ARMCM3_EFM32/uart.h +++ b/Target/Source/ARMCM3_EFM32/uart.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface header file -| File Name: uart.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 Source\ARMCM3_EFM32\uart.h +* \brief Bootloader UART communication interface header file. +* \ingroup Target_ARMCM3_EFM32 +* \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 UART_H #define UART_H diff --git a/Target/Source/ARMCM3_LM3S/Crossworks/cstart.s b/Target/Source/ARMCM3_LM3S/Crossworks/cstart.s index 313cab50..53dfde7c 100644 --- a/Target/Source/ARMCM3_LM3S/Crossworks/cstart.s +++ b/Target/Source/ARMCM3_LM3S/Crossworks/cstart.s @@ -68,7 +68,7 @@ ** DESCRIPTION: Called by the user program to activate the bootloader. Do not place ** any assembly code before this function and the end of the vector ** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the +** 0x000000F0. The user program can call this function from C in the ** following way: ** void ActivateBootloader(void) ** { diff --git a/Target/Source/ARMCM3_LM3S/Crossworks/vectors.c b/Target/Source/ARMCM3_LM3S/Crossworks/vectors.c index 08ab66a0..063d363f 100644 --- a/Target/Source/ARMCM3_LM3S/Crossworks/vectors.c +++ b/Target/Source/ARMCM3_LM3S/Crossworks/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 Source\ARMCM3_LM3S\Crossworks\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_LM3S +* \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 blt_int32u __stack_end__; /* stack end address (memory.x) */ +/** \brief Stack end address (memory.x) */ +extern blt_int32u __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 */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".vectors"))) const tIsrFunc _vectors[] = { diff --git a/Target/Source/ARMCM3_LM3S/GCC/cstart.c b/Target/Source/ARMCM3_LM3S/GCC/cstart.c index 1748a899..37a64be1 100644 --- a/Target/Source/ARMCM3_LM3S/GCC/cstart.c +++ b/Target/Source/ARMCM3_LM3S/GCC/cstart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader C startup source file -| File Name: cstart.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 Source\ARMCM3_LM3S\GCC\cstart.c +* \brief Bootloader C startup source file. +* \ingroup Target_ARMCM3_LM3S +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -54,15 +56,9 @@ extern blt_int32u _ebss; extern blt_int32u _estack; -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code before this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. The user program +** can call this function from C in the following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); @@ -70,6 +66,7 @@ extern blt_int32u _estack; ** pEntryFromProgFnc = (void*)0x000000F0; ** pEntryFromProgFnc(); ** } +** \return none. ** ****************************************************************************************/ __attribute__ ((section (".entry"))) @@ -111,12 +108,10 @@ void EntryFromProg(void) } /*** end of EntryFromProg ***/ -/**************************************************************************************** -** 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/Source/ARMCM3_LM3S/GCC/vectors.c b/Target/Source/ARMCM3_LM3S/GCC/vectors.c index 1e7785ec..c00cdb25 100644 --- a/Target/Source/ARMCM3_LM3S/GCC/vectors.c +++ b/Target/Source/ARMCM3_LM3S/GCC/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 Source\ARMCM3_LM3S\GCC\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_LM3S +* \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,11 +43,9 @@ extern blt_int32u _estack; /* stack end address (memory.x) */ -/**************************************************************************************** -** 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) @@ -59,13 +59,14 @@ void UnusedISR(void) * I N T E R R U P T V E C T O R T A B L E ****************************************************************************************/ extern void reset_handler(void); /* implemented in cstart.c */ - +/** \brief Structure type for vector table entries. */ typedef union { - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".isr_vector"))) const tIsrFunc _vectab[] = { diff --git a/Target/Source/ARMCM3_LM3S/IAR/vectors.c b/Target/Source/ARMCM3_LM3S/IAR/vectors.c index e553fd1a..a2de66aa 100644 --- a/Target/Source/ARMCM3_LM3S/IAR/vectors.c +++ b/Target/Source/ARMCM3_LM3S/IAR/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 Source\ARMCM3_LM3S\IAR\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_LM3S +* \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 reset_handler( 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/Source/ARMCM3_LM3S/can.c b/Target/Source/ARMCM3_LM3S/can.c index 0628184c..a53fa01d 100644 --- a/Target/Source/ARMCM3_LM3S/can.c +++ b/Target/Source/ARMCM3_LM3S/can.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface source file -| File Name: can.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 Source\ARMCM3_LM3S\can.c +* \brief Bootloader CAN communication interface source file. +* \ingroup Target_ARMCM3_LM3S +* \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 ****************************************************************************************/ @@ -46,15 +48,16 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ -/* index of the used transmission and reception message objects */ +/** \brief Index of the used reception message object. */ #define CAN_RX_MSGOBJECT_IDX (0) +/** \brief Index of the used transmission message object. */ #define CAN_TX_MSGOBJECT_IDX (1) /**************************************************************************************** * 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 blt_int16u canBitNum2Mask[] = { 0x0001, /* bit 0 */ @@ -62,15 +65,13 @@ static const blt_int16u canBitNum2Mask[] = }; -/**************************************************************************************** -** NAME: CanSetBittiming -** PARAMETER: none -** RETURN VALUE: BLT_TRUE if a valid bittiming configuration was found and set. -** BLT_FALSE 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 BLT_TRUE if a valid bittiming configuration was found and set. BLT_FALSE +** otherwise. ** ****************************************************************************************/ static blt_int8u CanSetBittiming(void) @@ -120,11 +121,9 @@ static blt_int8u CanSetBittiming(void) } /*** end of CanSetBittiming ***/ -/**************************************************************************************** -** NAME: CanInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN controller and synchronizes it to the CAN bus. +/************************************************************************************//** +** \brief Initializes the CAN controller and synchronizes it to the CAN bus. +** \return none. ** ****************************************************************************************/ void CanInit(void) @@ -154,12 +153,11 @@ void CanInit(void) } /*** end of CanInit ***/ -/**************************************************************************************** -** NAME: CanTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void CanTransmitPacket(blt_int8u *data, blt_int8u len) @@ -188,11 +186,10 @@ void CanTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of CanTransmitPacket ***/ -/**************************************************************************************** -** NAME: CanReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE is a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool CanReceivePacket(blt_int8u *data) diff --git a/Target/Source/ARMCM3_LM3S/can.h b/Target/Source/ARMCM3_LM3S/can.h index fd02f10e..e150e5d6 100644 --- a/Target/Source/ARMCM3_LM3S/can.h +++ b/Target/Source/ARMCM3_LM3S/can.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface header file -| File Name: can.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 Source\ARMCM3_LM3S\can.h +* \brief Bootloader CAN communication interface header file. +* \ingroup Target_ARMCM3_LM3S +* \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 CAN_H #define CAN_H diff --git a/Target/Source/ARMCM3_LM3S/cpu.c b/Target/Source/ARMCM3_LM3S/cpu.c index a2e3d0b4..a51396f1 100644 --- a/Target/Source/ARMCM3_LM3S/cpu.c +++ b/Target/Source/ARMCM3_LM3S/cpu.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module source file -| File Name: cpu.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 Source\ARMCM3_LM3S\cpu.c +* \brief Bootloader cpu module source file. +* \ingroup Target_ARMCM3_LM3S +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -39,14 +41,22 @@ * Macro definitions ****************************************************************************************/ #if (BOOT_FILE_SYS_ENABLE > 0) - /* the size of the bootloader with support for firmware update from a locally attached - * storage disk is larger so the start address of the user program is at a different - * location. + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x6000. */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x00006004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x6000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00006000) #else + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x00002004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00002000) #endif @@ -54,7 +64,7 @@ /**************************************************************************************** * Register definitions ****************************************************************************************/ -/* vector table offset register */ +/** \brief Vector table offset register. */ #define SCB_VTOR (*((volatile blt_int32u *) 0xE000ED08)) @@ -72,12 +82,10 @@ extern blt_bool CpuUserProgramStartHook(void); extern void reset_handler(void); /* implemented in cstart.s */ -/**************************************************************************************** -** NAME: CpuStartUserProgram -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Starts the user program, if one is present. In this case this function -** does not return. +/************************************************************************************//** +** \brief Starts the user program, if one is present. In this case this function +** does not return. +** \return none. ** ****************************************************************************************/ void CpuStartUserProgram(void) @@ -116,13 +124,12 @@ void CpuStartUserProgram(void) } /*** end of CpuStartUserProgram ***/ -/**************************************************************************************** -** NAME: CpuMemCopy -** PARAMETER: dest destination address for the data. -** src source address of the data. -** len length of the data in bytes. -** RETURN VALUE: none -** DESCRIPTION: Copies data from the source to the destination address. +/************************************************************************************//** +** \brief Copies data from the source to the destination address. +** \param dest Destination address for the data. +** \param src Source address of the data. +** \param len length of the data in bytes. +** \return none. ** ****************************************************************************************/ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) @@ -144,12 +151,9 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) } /*** end of CpuMemCopy ***/ -/**************************************************************************************** -** NAME: CpuReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Perform a soft reset of the microcontroller by starting from the reset -** ISR. +/************************************************************************************//** +** \brief Perform a soft reset of the microcontroller by starting from the reset ISR. +** \return none. ** ****************************************************************************************/ void CpuReset(void) diff --git a/Target/Source/ARMCM3_LM3S/cpu.h b/Target/Source/ARMCM3_LM3S/cpu.h index e8722991..3a474d82 100644 --- a/Target/Source/ARMCM3_LM3S/cpu.h +++ b/Target/Source/ARMCM3_LM3S/cpu.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module header file -| File Name: cpu.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 Source\ARMCM3_LM3S\cpu.h +* \brief Bootloader cpu module header file. +* \ingroup Target_ARMCM3_LM3S +* \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 CPU_H #define CPU_H diff --git a/Target/Source/ARMCM3_LM3S/flash.c b/Target/Source/ARMCM3_LM3S/flash.c index 792f7541..c471bd2b 100644 --- a/Target/Source/ARMCM3_LM3S/flash.c +++ b/Target/Source/ARMCM3_LM3S/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.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 Source\ARMCM3_LM3S\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_LM3S +* \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,30 +43,37 @@ /**************************************************************************************** * 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])) +/** \brief Number of bytes to erase per erase operation. */ #define FLASH_ERASE_BLOCK_SIZE (0x400) +/** \brief Offset into the user program's vector table where the checksum is located. */ #define FLASH_VECTOR_TABLE_CS_OFFSET (0xF0) /**************************************************************************************** * 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. The .base_addr must be a multiple - * of FLASH_WRITE_BLOCK_SIZE. +/** \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. The .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { @@ -79,7 +88,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static blt_int8u FlashGetSector(blt_addr address); @@ -90,10 +99,15 @@ static blt_addr FlashGetSectorSize(blt_int8u sector); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* The current flash layout does not reflect the minimum sector size of the physical - * flash (1 - 2kb), because this would make the table quit long and a waste of ROM. The - * minumum sector size is only really needed when erasing the flash. This can still be - * done in combination with macro FLASH_ERASE_BLOCK_SIZE. +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + * The current flash layout does not reflect the minimum sector size of the + * physical flash (1 - 2kb), because this would make the table quit long and + * a waste of ROM. The minimum sector size is only really needed when erasing + * the flash. This can still be done in combination with macro + * FLASH_ERASE_BLOCK_SIZE. */ static const tFlashSector flashLayout[] = { @@ -152,38 +166,41 @@ 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; -/* The first block of the user program holds the vector table, which on the STM32 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on all micros. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequence. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * STM32 is also the where the checksum is written to. Is it likely that + * the vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed + * and the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * all micros. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once + * at the end of the programming sequence. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -194,15 +211,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -228,14 +244,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -256,15 +271,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -319,12 +332,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -351,12 +362,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -383,13 +392,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -412,14 +420,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -462,21 +469,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -539,12 +545,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -586,12 +591,11 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -632,11 +636,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) @@ -662,11 +665,10 @@ static blt_int8u FlashGetSector(blt_addr address) } /*** end of FlashGetSector ***/ -/**************************************************************************************** -** NAME: FlashGetSectorBaseAddr -** PARAMETER: sector sector to get the base address of. -** RETURN VALUE: flash sector base address or FLASH_INVALID_ADDRESS -** DESCRIPTION: Determines the flash sector base address. +/************************************************************************************//** +** \brief Determines the flash sector base address. +** \param sector Sector to get the base address of. +** \return Flash sector base address or FLASH_INVALID_ADDRESS. ** ****************************************************************************************/ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) @@ -688,11 +690,10 @@ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) } /*** end of FlashGetSectorBaseAddr ***/ -/**************************************************************************************** -** NAME: FlashGetSectorSize -** PARAMETER: sector sector to get the size of. -** RETURN VALUE: flash sector size or 0 -** DESCRIPTION: Determines the flash sector size. +/************************************************************************************//** +** \brief Determines the flash sector size. +** \param sector Sector to get the size of. +** \return Flash sector size or 0. ** ****************************************************************************************/ static blt_addr FlashGetSectorSize(blt_int8u sector) diff --git a/Target/Source/ARMCM3_LM3S/flash.h b/Target/Source/ARMCM3_LM3S/flash.h index ea81acfa..2642a0eb 100644 --- a/Target/Source/ARMCM3_LM3S/flash.h +++ b/Target/Source/ARMCM3_LM3S/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.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 Source\ARMCM3_LM3S\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_LM3S +* \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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARMCM3_LM3S/nvm.c b/Target/Source/ARMCM3_LM3S/nvm.c index a84a5107..bff5bc28 100644 --- a/Target/Source/ARMCM3_LM3S/nvm.c +++ b/Target/Source/ARMCM3_LM3S/nvm.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver source file -| File Name: nvm.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 Source\ARMCM3_LM3S\nvm.c +* \brief Bootloader non-volatile memory driver source file. +* \ingroup Target_ARMCM3_LM3S +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -46,11 +48,9 @@ extern blt_bool NvmDoneHook(void); #endif -/**************************************************************************************** -** NAME: NvmInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the NVM driver. +/************************************************************************************//** +** \brief Initializes the NVM driver. +** \return none. ** ****************************************************************************************/ void NvmInit(void) @@ -67,13 +67,12 @@ void NvmInit(void) } /*** end of NvmInit ***/ -/**************************************************************************************** -** NAME: NvmWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Programs the non-volatile memory. +/************************************************************************************//** +** \brief Programs the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -110,12 +109,11 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of NvmWrite ***/ -/**************************************************************************************** -** NAME: NvmErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the non-volatile memory. +/************************************************************************************//** +** \brief Erases the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmErase(blt_addr addr, blt_int32u len) @@ -152,12 +150,10 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len) } /*** end of NvmErase ***/ -/**************************************************************************************** -** NAME: NvmVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmVerifyChecksum(void) @@ -167,15 +163,13 @@ blt_bool NvmVerifyChecksum(void) } /*** end of NvmVerifyChecksum ***/ -/**************************************************************************************** -** NAME: NvmDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Once all erase and programming operations are completed, this -** function is called, so at the end of the programming session and -** right before a software reset is performed. It is used to calculate -** a checksum and program this into flash. This checksum is later used -** to determine if a valid user program is present in flash. +/************************************************************************************//** +** \brief Once all erase and programming operations are completed, this +** function is called, so at the end of the programming session and +** right before a software reset is performed. It is used to calculate +** a checksum and program this into flash. This checksum is later used +** to determine if a valid user program is present in flash. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmDone(void) diff --git a/Target/Source/ARMCM3_LM3S/nvm.h b/Target/Source/ARMCM3_LM3S/nvm.h index 4b58cd8c..8df254fb 100644 --- a/Target/Source/ARMCM3_LM3S/nvm.h +++ b/Target/Source/ARMCM3_LM3S/nvm.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver header file -| File Name: nvm.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 Source\ARMCM3_LM3S\nvm.h +* \brief Bootloader non-volatile memory driver header file. +* \ingroup Target_ARMCM3_LM3S +* \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 NVM_H #define NVM_H @@ -51,9 +53,12 @@ blt_bool NvmDone(void); * Macro definitions ****************************************************************************************/ /* return codes for hook function NvmWrite/Erase */ -#define BLT_NVM_ERROR (0x00) /* return code for success */ -#define BLT_NVM_OKAY (0x01) /* return code for error */ -#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */ +/** \brief Return code for success. */ +#define BLT_NVM_ERROR (0x00) +/** \brief Return code for error. */ +#define BLT_NVM_OKAY (0x01) +/** \brief Return code for not in range. */ +#define BLT_NVM_NOT_IN_RANGE (0x02) #endif /* NVM_H */ diff --git a/Target/Source/ARMCM3_LM3S/target.dox b/Target/Source/ARMCM3_LM3S/target.dox new file mode 100644 index 00000000..24965ea5 --- /dev/null +++ b/Target/Source/ARMCM3_LM3S/target.dox @@ -0,0 +1,8 @@ +/** +\defgroup Target_ARMCM3_LM3S Target ARMCM3 LM3S +\brief Target dependent code for the ARMCM3 LM3S microcontroller family. +\details This module implements the bootloader's target dependent part for the + ARMCM3 LM3S microcontroller family. +*/ + + diff --git a/Target/Source/ARMCM3_LM3S/timer.c b/Target/Source/ARMCM3_LM3S/timer.c index fc9c77cc..acbaba26 100644 --- a/Target/Source/ARMCM3_LM3S/timer.c +++ b/Target/Source/ARMCM3_LM3S/timer.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_LM3S\timer.c +* \brief Bootloader timer driver source file. +* \ingroup Target_ARMCM3_LM3S +* \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,39 +40,45 @@ /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Systick registers. */ typedef struct { - volatile blt_int32u CTRL; /* SysTick Control and Status Register */ - volatile blt_int32u LOAD; /* SysTick Reload Value Register */ - volatile blt_int32u VAL; /* SysTick Current Value Register */ + volatile blt_int32u CTRL; /**< SysTick Control and Status Register */ + volatile blt_int32u LOAD; /**< SysTick Reload Value Register */ + volatile blt_int32u VAL; /**< SysTick Current Value Register */ } tSysTickRegs; /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief CLKSOURCE bit of the system tick. */ #define SYSTICK_BIT_CLKSOURCE ((blt_int32u)0x00000004) +/** \brief ENABLE bit of the system tick. */ #define SYSTICK_BIT_ENABLE ((blt_int32u)0x00000001) +/** \brief COUNTERFLAG bit of the system tick. */ #define SYSTICK_BIT_COUNTERFLAG ((blt_int32u)0x00010000) /**************************************************************************************** * Local data declarations ****************************************************************************************/ -static blt_int16u millisecond_counter; +/** \brief Local variable for storing the number of milliseconds that have elapsed since + * startup. + */ +static blt_int32u millisecond_counter; /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief Macro to access the system tick registers. */ #define SYSTICK ((tSysTickRegs *) (blt_int32u)0xE000E010) -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the polling based millisecond timer driver. +/************************************************************************************//** +** \brief Initializes the polling based millisecond timer driver. +** \return none. ** ****************************************************************************************/ void TimerInit(void) @@ -88,12 +96,10 @@ void TimerInit(void) } /*** end of TimerInit ***/ -/**************************************************************************************** -** NAME: TimerReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset the timer by placing the timer back into it's default reset -** configuration. +/************************************************************************************//** +** \brief Reset the timer by placing the timer back into it's default reset +** configuration. +** \return none. ** ****************************************************************************************/ void TimerReset(void) @@ -103,11 +109,9 @@ void TimerReset(void) } /* end of TimerReset */ -/**************************************************************************************** -** NAME: TimerUpdate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the millisecond timer. +/************************************************************************************//** +** \brief Updates the millisecond timer. +** \return none. ** ****************************************************************************************/ void TimerUpdate(void) @@ -121,11 +125,9 @@ void TimerUpdate(void) } /*** end of TimerUpdate ***/ -/**************************************************************************************** -** 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. ** ****************************************************************************************/ blt_int32u TimerGet(void) diff --git a/Target/Source/ARMCM3_LM3S/timer.h b/Target/Source/ARMCM3_LM3S/timer.h index 9e1c148d..90db6692 100644 --- a/Target/Source/ARMCM3_LM3S/timer.h +++ b/Target/Source/ARMCM3_LM3S/timer.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_LM3S\timer.h +* \brief Bootloader timer driver header file. +* \ingroup Target_ARMCM3_LM3S +* \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/Source/ARMCM3_LM3S/types.h b/Target/Source/ARMCM3_LM3S/types.h index 97f7bcf5..b90fe2a2 100644 --- a/Target/Source/ARMCM3_LM3S/types.h +++ b/Target/Source/ARMCM3_LM3S/types.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader types header file -| File Name: types.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 Source\ARMCM3_LM3S\types.h +* \brief Bootloader types header file. +* \ingroup Target_ARMCM3_LM3S +* \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 TYPES_H #define TYPES_H @@ -35,23 +37,26 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Boolean true value. */ #define BLT_TRUE (1) +/** \brief Boolean false value. */ #define BLT_FALSE (0) +/** \brief NULL pointer value. */ #define BLT_NULL ((void *)0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -typedef unsigned char blt_bool; /* boolean type */ -typedef char blt_char; /* character type */ -typedef unsigned long blt_addr; /* memory address type */ -typedef unsigned char blt_int8u; /* 8-bit unsigned integer */ -typedef signed char blt_int8s; /* 8-bit signed integer */ -typedef unsigned short blt_int16u; /* 16-bit unsigned integer */ -typedef signed short blt_int16s; /* 16-bit signed integer */ -typedef unsigned int blt_int32u; /* 32-bit unsigned integer */ -typedef signed int blt_int32s; /* 32-bit signed integer */ +typedef unsigned char blt_bool; /**< boolean type */ +typedef char blt_char; /**< character type */ +typedef unsigned long blt_addr; /**< memory address type */ +typedef unsigned char blt_int8u; /**< 8-bit unsigned integer */ +typedef signed char blt_int8s; /**< 8-bit signed integer */ +typedef unsigned short blt_int16u; /**< 16-bit unsigned integer */ +typedef signed short blt_int16s; /**< 16-bit signed integer */ +typedef unsigned int blt_int32u; /**< 32-bit unsigned integer */ +typedef signed int blt_int32s; /**< 32-bit signed integer */ #endif /* TYPES_H */ diff --git a/Target/Source/ARMCM3_LM3S/uart.c b/Target/Source/ARMCM3_LM3S/uart.c index 1d938df5..a86a8247 100644 --- a/Target/Source/ARMCM3_LM3S/uart.c +++ b/Target/Source/ARMCM3_LM3S/uart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface source file -| File Name: uart.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 Source\ARMCM3_LM3S\uart.c +* \brief Bootloader UART communication interface source file. +* \ingroup Target_ARMCM3_LM3S +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -49,11 +51,9 @@ static blt_bool UartReceiveByte(blt_int8u *data); static blt_bool UartTransmitByte(blt_int8u data); -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface +/************************************************************************************//** +** \brief Initializes the UART communication interface. +** \return none. ** ****************************************************************************************/ void UartInit(void) @@ -71,12 +71,11 @@ void UartInit(void) } /*** end of UartInit ***/ -/**************************************************************************************** -** NAME: UartTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UartTransmitPacket(blt_int8u *data, blt_int8u len) @@ -100,11 +99,10 @@ void UartTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UartTransmitPacket ***/ -/**************************************************************************************** -** NAME: UartReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UartReceivePacket(blt_int8u *data) @@ -152,11 +150,10 @@ blt_bool UartReceivePacket(blt_int8u *data) } /*** end of UartReceivePacket ***/ -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartReceiveByte(blt_int8u *data) @@ -178,11 +175,10 @@ static blt_bool UartReceiveByte(blt_int8u *data) } /*** end of UartReceiveByte ***/ -/**************************************************************************************** -** NAME: UartTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartTransmitByte(blt_int8u data) diff --git a/Target/Source/ARMCM3_LM3S/uart.h b/Target/Source/ARMCM3_LM3S/uart.h index f4b9b5d9..210b79a5 100644 --- a/Target/Source/ARMCM3_LM3S/uart.h +++ b/Target/Source/ARMCM3_LM3S/uart.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface header file -| File Name: uart.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 Source\ARMCM3_LM3S\uart.h +* \brief Bootloader UART communication interface header file. +* \ingroup Target_ARMCM3_LM3S +* \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 UART_H #define UART_H diff --git a/Target/Source/ARMCM3_STM32/Crossworks/vectors.c b/Target/Source/ARMCM3_STM32/Crossworks/vectors.c index 7ea7367b..b8bfa98a 100644 --- a/Target/Source/ARMCM3_STM32/Crossworks/vectors.c +++ b/Target/Source/ARMCM3_STM32/Crossworks/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 Source\ARMCM3_STM32\Crossworks\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_STM32 +* \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,14 +46,13 @@ extern void reset_handler(void); /* implemented in cstart.s /**************************************************************************************** * External data declarations ****************************************************************************************/ -extern blt_int32u __stack_end__; /* stack end address (memory.x) */ +/** \brief Stack end address (memory.x) */ +extern blt_int32u __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 */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".vectors"))) const tIsrFunc _vectors[] = { diff --git a/Target/Source/ARMCM3_STM32/GCC/cstart.c b/Target/Source/ARMCM3_STM32/GCC/cstart.c index b3346196..6a52df74 100644 --- a/Target/Source/ARMCM3_STM32/GCC/cstart.c +++ b/Target/Source/ARMCM3_STM32/GCC/cstart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_STM32\GCC\cstart.c +* \brief Bootloader C startup source file. +* \ingroup Target_ARMCM3_STM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -54,15 +56,9 @@ extern blt_int32u _ebss; extern blt_int32u _estack; -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code before this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. The user program +** can call this function from C in the following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); @@ -70,6 +66,7 @@ extern blt_int32u _estack; ** pEntryFromProgFnc = (void*)0x08000150; ** pEntryFromProgFnc(); ** } +** \return none. ** ****************************************************************************************/ __attribute__ ((section (".entry"))) @@ -111,12 +108,10 @@ void EntryFromProg(void) } /*** end of EntryFromProg ***/ -/**************************************************************************************** -** 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/Source/ARMCM3_STM32/GCC/vectors.c b/Target/Source/ARMCM3_STM32/GCC/vectors.c index 311e20d1..3febd885 100644 --- a/Target/Source/ARMCM3_STM32/GCC/vectors.c +++ b/Target/Source/ARMCM3_STM32/GCC/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 Source\ARMCM3_STM32\GCC\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_STM32 +* \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 @@ extern blt_int32u _estack; /* stack end address (memory.x) */ -/**************************************************************************************** -** 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) @@ -59,13 +59,14 @@ void UnusedISR(void) * I N T E R R U P T V E C T O R T A B L E ****************************************************************************************/ extern void reset_handler(void); /* implemented in cstart.c */ - +/** \brief Structure type for vector table entries. */ typedef union { - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".isr_vector"))) const tIsrFunc _vectab[] = { diff --git a/Target/Source/ARMCM3_STM32/IAR/vectors.c b/Target/Source/ARMCM3_STM32/IAR/vectors.c index f1d64220..59d22b58 100644 --- a/Target/Source/ARMCM3_STM32/IAR/vectors.c +++ b/Target/Source/ARMCM3_STM32/IAR/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 Source\ARMCM3_STM32\IAR\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM3_STM32 +* \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,18 +46,17 @@ extern void reset_handler( 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/Source/ARMCM3_STM32/can.c b/Target/Source/ARMCM3_STM32/can.c index 14f1f5d7..1bdd697f 100644 --- a/Target/Source/ARMCM3_STM32/can.c +++ b/Target/Source/ARMCM3_STM32/can.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface source file -| File Name: can.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 Source\ARMCM3_STM32\can.c +* \brief Bootloader CAN communication interface source file. +* \ingroup Target_ARMCM3_STM32 +* \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 ****************************************************************************************/ @@ -40,7 +42,7 @@ /**************************************************************************************** * Type definitions ****************************************************************************************/ -/* CAN transmission mailbox */ +/** \brief CAN transmission mailbox layout. */ typedef struct { volatile blt_int32u TIR; @@ -49,7 +51,7 @@ typedef struct volatile blt_int32u TDHR; } tCanTxMailBox; -/* CAN reception FIFO mailbox */ +/** \brief CAN reception FIFO mailbox layout. */ typedef struct { volatile blt_int32u RIR; @@ -58,14 +60,14 @@ typedef struct volatile blt_int32u RDHR; } tCanRxFIFOMailBox; -/* CAN filter register layout */ +/** \brief CAN filter register layout. */ typedef struct { volatile blt_int32u FR1; volatile blt_int32u FR2; } tCanFilter; -/* CAN controller register layout */ +/** \brief CAN controller register layout. */ typedef struct { volatile blt_int32u MCR; @@ -96,40 +98,53 @@ typedef struct /**************************************************************************************** * Macro definitions ****************************************************************************************/ -#define CAN_BIT_RESET ((blt_int32u)0x00008000) /* reset request bit */ -#define CAN_BIT_INRQ ((blt_int32u)0x00000001) /* initialization request bit */ -#define CAN_BIT_INAK ((blt_int32u)0x00000001) /* initialization acknowledge bit*/ -#define CAN_BIT_SLEEP ((blt_int32u)0x00000002) /* sleep mode request bit */ -#define CAN_BIT_FILTER0 ((blt_int32u)0x00000001) /* filter 0 selection bit */ -#define CAN_BIT_FINIT ((blt_int32u)0x00000001) /* filter init mode bit */ -#define CAN_BIT_TME0 ((blt_int32u)0x04000000) /* transmit mailbox 0 empty bit */ -#define CAN_BIT_TXRQ ((blt_int32u)0x00000001) /* transmit mailbox request bit */ -#define CAN_BIT_RFOM0 ((blt_int32u)0x00000020) /* release FIFO 0 mailbox bit */ +/** \brief Reset request bit. */ +#define CAN_BIT_RESET ((blt_int32u)0x00008000) +/** \brief Initialization request bit. */ +#define CAN_BIT_INRQ ((blt_int32u)0x00000001) +/** \brief Initialization acknowledge bit. */ +#define CAN_BIT_INAK ((blt_int32u)0x00000001) +/** \brief Sleep mode request bit. */ +#define CAN_BIT_SLEEP ((blt_int32u)0x00000002) +/** \brief Filter 0 selection bit. */ +#define CAN_BIT_FILTER0 ((blt_int32u)0x00000001) +/** \brief Filter init mode bit. */ +#define CAN_BIT_FINIT ((blt_int32u)0x00000001) +/** \brief Transmit mailbox 0 empty bit. */ +#define CAN_BIT_TME0 ((blt_int32u)0x04000000) +/** \brief Transmit mailbox request bit. */ +#define CAN_BIT_TXRQ ((blt_int32u)0x00000001) +/** \brief Release FIFO 0 mailbox bit. */ +#define CAN_BIT_RFOM0 ((blt_int32u)0x00000020) /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief Macro for accessing CAN controller registers. */ #define CANx ((tCanRegs *) (blt_int32u)0x40006400) /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Structure type for grouping CAN bus timing related information. */ typedef struct t_can_bus_timing { - blt_int8u tseg1; /* CAN time segment 1 */ - blt_int8u tseg2; /* CAN time segment 2 */ -} tCanBusTiming; /* bus timing structure type */ + blt_int8u tseg1; /**< CAN time segment 1 */ + blt_int8u 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 */ @@ -155,16 +170,15 @@ static const tCanBusTiming canTiming[] = }; -/**************************************************************************************** -** NAME: CanGetSpeedConfig -** PARAMETER: baud The desired baudrate in kbps. Valid values are 10..1000. -** prescaler Pointer to where the value for the prescaler will be stored. -** tseg1 Pointer to where the value for TSEG2 will be stored. -** tseg2 Pointer to where the value for TSEG2 will be stored. -** RETURN VALUE: BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE -** 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 prescaler Pointer to where the value for the prescaler will be stored. +** \param tseg1 Pointer to where the value for TSEG2 will be stored. +** \param tseg2 Pointer to where the value for TSEG2 will be stored. +** \return BLT_TRUE if the CAN bustiming register values were found, BLT_FALSE +** otherwise. ** ****************************************************************************************/ static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int16u *prescaler, @@ -196,11 +210,9 @@ static blt_bool CanGetSpeedConfig(blt_int16u baud, blt_int16u *prescaler, } /*** end of CanGetSpeedConfig ***/ -/**************************************************************************************** -** NAME: CanInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the CAN controller and synchronizes it to the CAN bus. +/************************************************************************************//** +** \brief Initializes the CAN controller and synchronizes it to the CAN bus. +** \return none. ** ****************************************************************************************/ void CanInit(void) @@ -268,12 +280,11 @@ void CanInit(void) } /*** end of CanInit ***/ -/**************************************************************************************** -** NAME: CanTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void CanTransmitPacket(blt_int8u *data, blt_int8u len) @@ -308,11 +319,10 @@ void CanTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of CanTransmitPacket ***/ -/**************************************************************************************** -** NAME: CanReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE is a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool CanReceivePacket(blt_int8u *data) diff --git a/Target/Source/ARMCM3_STM32/can.h b/Target/Source/ARMCM3_STM32/can.h index 2a60a6f9..5a31026d 100644 --- a/Target/Source/ARMCM3_STM32/can.h +++ b/Target/Source/ARMCM3_STM32/can.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader CAN communication interface header file -| File Name: can.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 Source\ARMCM3_STM32\can.h +* \brief Bootloader CAN communication interface header file. +* \ingroup Target_ARMCM3_STM32 +* \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 CAN_H #define CAN_H diff --git a/Target/Source/ARMCM3_STM32/cpu.c b/Target/Source/ARMCM3_STM32/cpu.c index 3fb99f0c..842bedd8 100644 --- a/Target/Source/ARMCM3_STM32/cpu.c +++ b/Target/Source/ARMCM3_STM32/cpu.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module source file -| File Name: cpu.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 Source\ARMCM3_STM32\cpu.c +* \brief Bootloader cpu module source file. +* \ingroup Target_ARMCM3_STM32 +* \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,20 +41,31 @@ * Macro definitions ****************************************************************************************/ #if (BOOT_COM_USB_ENABLE > 0) -/* the size of the bootloader with support for USB is larger so the start address of the - * user program is at a different location. - */ + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x4000. + */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x08004004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x4000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00004000) #elif (BOOT_FILE_SYS_ENABLE > 0) - /* the size of the bootloader with support for firmware update from a locally attached - * storage disk is larger so the start address of the user program is at a different - * location. + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x6000. */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x08006004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x6000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00006000) #else + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x08002004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x2000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00002000) #endif @@ -60,7 +73,7 @@ /**************************************************************************************** * Register definitions ****************************************************************************************/ -/* vector table offset register */ +/** \brief Vector table offset register. */ #define SCB_VTOR (*((volatile blt_int32u *) 0xE000ED08)) @@ -78,12 +91,10 @@ extern blt_bool CpuUserProgramStartHook(void); extern void reset_handler(void); /* implemented in cstart.s */ -/**************************************************************************************** -** NAME: CpuStartUserProgram -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Starts the user program, if one is present. In this case this function -** does not return. +/************************************************************************************//** +** \brief Starts the user program, if one is present. In this case this function +** does not return. +** \return none. ** ****************************************************************************************/ void CpuStartUserProgram(void) @@ -122,13 +133,12 @@ void CpuStartUserProgram(void) } /*** end of CpuStartUserProgram ***/ -/**************************************************************************************** -** NAME: CpuMemCopy -** PARAMETER: dest destination address for the data. -** src source address of the data. -** len length of the data in bytes. -** RETURN VALUE: none -** DESCRIPTION: Copies data from the source to the destination address. +/************************************************************************************//** +** \brief Copies data from the source to the destination address. +** \param dest Destination address for the data. +** \param src Source address of the data. +** \param len length of the data in bytes. +** \return none. ** ****************************************************************************************/ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) @@ -150,12 +160,9 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) } /*** end of CpuMemCopy ***/ -/**************************************************************************************** -** NAME: CpuReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Perform a soft reset of the microcontroller by starting from the reset -** ISR. +/************************************************************************************//** +** \brief Perform a soft reset of the microcontroller by starting from the reset ISR. +** \return none. ** ****************************************************************************************/ void CpuReset(void) diff --git a/Target/Source/ARMCM3_STM32/cpu.h b/Target/Source/ARMCM3_STM32/cpu.h index 3b558162..6ad36a90 100644 --- a/Target/Source/ARMCM3_STM32/cpu.h +++ b/Target/Source/ARMCM3_STM32/cpu.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module header file -| File Name: cpu.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 Source\ARMCM3_STM32\cpu.h +* \brief Bootloader cpu module header file. +* \ingroup Target_ARMCM3_STM32 +* \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 CPU_H #define CPU_H diff --git a/Target/Source/ARMCM3_STM32/flash.c b/Target/Source/ARMCM3_STM32/flash.c index de51dfd8..b5bf74cb 100644 --- a/Target/Source/ARMCM3_STM32/flash.c +++ b/Target/Source/ARMCM3_STM32/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.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 Source\ARMCM3_STM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_STM32 +* \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,16 +40,25 @@ /**************************************************************************************** * 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])) #if (BOOT_NVM_SIZE_KB > 128) +/** \brief Number of bytes to erase per erase operation. */ #define FLASH_ERASE_BLOCK_SIZE (0x800) #else +/** \brief Number of bytes to erase per erase operation. */ #define FLASH_ERASE_BLOCK_SIZE (0x400) #endif +/** \brief Macro for accessing the flash control registers. */ #define FLASH ((tFlashRegs *) (blt_int32u)0x40022000) +/** \brief Offset into the user program's vector table where the checksum is located. */ +#define FLASH_VECTOR_TABLE_CS_OFFSET (0x150) #define FLASH_KEY1 ((blt_int32u)0x45670123) #define FLASH_KEY2 ((blt_int32u)0xCDEF89AB) #define FLASH_LOCK_BIT ((blt_int32u)0x00000080) @@ -58,25 +69,25 @@ #define FLASH_PER_BIT ((blt_int32u)0x00000002) #define FLASH_STRT_BIT ((blt_int32u)0x00000040) #define FLASH_PG_BIT ((blt_int32u)0x00000001) -#define FLASH_VECTOR_TABLE_CS_OFFSET (0x150) /**************************************************************************************** * 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. The .base_addr must be a multiple - * of FLASH_WRITE_BLOCK_SIZE. +/** \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. The .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { @@ -84,18 +95,18 @@ typedef struct blt_int8u data[FLASH_WRITE_BLOCK_SIZE]; } tFlashBlockInfo; -/* FLASH register layout type */ +/** \brief Flash controller register layout type. */ typedef struct { - volatile blt_int32u ACR; /* flash access control register */ - volatile blt_int32u KEYR; /* FPEC key register */ - volatile blt_int32u OPTKEYR; /* flash OPTKEY register */ - volatile blt_int32u SR; /* flash status register */ - volatile blt_int32u CR; /* flash control register */ - volatile blt_int32u AR; /* flash address register */ + volatile blt_int32u ACR; /**< flash access control register */ + volatile blt_int32u KEYR; /**< FPEC key register */ + volatile blt_int32u OPTKEYR; /**< flash OPTKEY register */ + volatile blt_int32u SR; /**< flash status register */ + volatile blt_int32u CR; /**< flash control register */ + volatile blt_int32u AR; /**< flash address register */ volatile blt_int32u RESERVED; - volatile blt_int32u OBR; /* option byte register */ - volatile blt_int32u WRPR; /* write protection register */ + volatile blt_int32u OBR; /**< option byte register */ + volatile blt_int32u WRPR; /**< write protection register */ } tFlashRegs; @@ -105,7 +116,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static void FlashUnlock(void); @@ -118,10 +129,15 @@ static blt_addr FlashGetSectorSize(blt_int8u sector); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* The current flash layout does not reflect the minimum sector size of the physical - * flash (1 - 2kb), because this would make the table quit long and a waste of ROM. The - * minumum sector size is only really needed when erasing the flash. This can still be - * done in combination with macro FLASH_ERASE_BLOCK_SIZE. +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + * The current flash layout does not reflect the minimum sector size of the + * physical flash (1 - 2kb), because this would make the table quit long and + * a waste of ROM. The minimum sector size is only really needed when erasing + * the flash. This can still be done in combination with macro + * FLASH_ERASE_BLOCK_SIZE. */ static const tFlashSector flashLayout[] = { @@ -188,38 +204,41 @@ 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; -/* The first block of the user program holds the vector table, which on the STM32 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on all micros. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequency. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * STM32 is also the where the checksum is written to. Is it likely that + * the vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed + * and the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * all micros. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once + * at the end of the programming sequence. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -230,15 +249,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -264,14 +282,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -292,15 +309,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -355,12 +370,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -387,12 +400,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -419,13 +430,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -448,14 +458,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -498,21 +507,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -575,12 +583,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -646,12 +653,11 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -712,12 +718,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashUnlock -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Unlocks the flash array so that erase and program operations can be -** performed. +/************************************************************************************//** +** \brief Unlocks the flash array so that erase and program operations can be +** performed. +** \return none. ** ****************************************************************************************/ static void FlashUnlock(void) @@ -730,12 +734,10 @@ static void FlashUnlock(void) } /*** end of FlashUnlock ***/ -/**************************************************************************************** -** NAME: FlashLock -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Locks the flash array so that erase and program operations can no -** longer be performed. +/************************************************************************************//** +** \brief Locks the flash array so that erase and program operations can no +** longer be performed. +** \return none. ** ****************************************************************************************/ static void FlashLock(void) @@ -745,11 +747,10 @@ static void FlashLock(void) } /*** end of FlashLock ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) @@ -775,11 +776,10 @@ static blt_int8u FlashGetSector(blt_addr address) } /*** end of FlashGetSector ***/ -/**************************************************************************************** -** NAME: FlashGetSectorBaseAddr -** PARAMETER: sector sector to get the base address of. -** RETURN VALUE: flash sector base address or FLASH_INVALID_ADDRESS -** DESCRIPTION: Determines the flash sector base address. +/************************************************************************************//** +** \brief Determines the flash sector base address. +** \param sector Sector to get the base address of. +** \return Flash sector base address or FLASH_INVALID_ADDRESS. ** ****************************************************************************************/ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) @@ -801,11 +801,10 @@ static blt_addr FlashGetSectorBaseAddr(blt_int8u sector) } /*** end of FlashGetSectorBaseAddr ***/ -/**************************************************************************************** -** NAME: FlashGetSectorSize -** PARAMETER: sector sector to get the size of. -** RETURN VALUE: flash sector size or 0 -** DESCRIPTION: Determines the flash sector size. +/************************************************************************************//** +** \brief Determines the flash sector size. +** \param sector Sector to get the size of. +** \return Flash sector size or 0. ** ****************************************************************************************/ static blt_addr FlashGetSectorSize(blt_int8u sector) diff --git a/Target/Source/ARMCM3_STM32/flash.h b/Target/Source/ARMCM3_STM32/flash.h index 9cae116f..d692051f 100644 --- a/Target/Source/ARMCM3_STM32/flash.h +++ b/Target/Source/ARMCM3_STM32/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.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 Source\ARMCM3_STM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM3_STM32 +* \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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARMCM3_STM32/nvm.c b/Target/Source/ARMCM3_STM32/nvm.c index 7aaea39c..184a9079 100644 --- a/Target/Source/ARMCM3_STM32/nvm.c +++ b/Target/Source/ARMCM3_STM32/nvm.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver source file -| File Name: nvm.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 Source\ARMCM3_STM32\nvm.c +* \brief Bootloader non-volatile memory driver source file. +* \ingroup Target_ARMCM3_STM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -46,11 +48,9 @@ extern blt_bool NvmDoneHook(void); #endif -/**************************************************************************************** -** NAME: NvmInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the NVM driver. +/************************************************************************************//** +** \brief Initializes the NVM driver. +** \return none. ** ****************************************************************************************/ void NvmInit(void) @@ -67,13 +67,12 @@ void NvmInit(void) } /*** end of NvmInit ***/ -/**************************************************************************************** -** NAME: NvmWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Programs the non-volatile memory. +/************************************************************************************//** +** \brief Programs the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -110,12 +109,11 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of NvmWrite ***/ -/**************************************************************************************** -** NAME: NvmErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the non-volatile memory. +/************************************************************************************//** +** \brief Erases the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmErase(blt_addr addr, blt_int32u len) @@ -152,12 +150,10 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len) } /*** end of NvmErase ***/ -/**************************************************************************************** -** NAME: NvmVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmVerifyChecksum(void) @@ -167,15 +163,13 @@ blt_bool NvmVerifyChecksum(void) } /*** end of NvmVerifyChecksum ***/ -/**************************************************************************************** -** NAME: NvmDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Once all erase and programming operations are completed, this -** function is called, so at the end of the programming session and -** right before a software reset is performed. It is used to calculate -** a checksum and program this into flash. This checksum is later used -** to determine if a valid user program is present in flash. +/************************************************************************************//** +** \brief Once all erase and programming operations are completed, this +** function is called, so at the end of the programming session and +** right before a software reset is performed. It is used to calculate +** a checksum and program this into flash. This checksum is later used +** to determine if a valid user program is present in flash. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmDone(void) diff --git a/Target/Source/ARMCM3_STM32/nvm.h b/Target/Source/ARMCM3_STM32/nvm.h index c143d71a..b334804f 100644 --- a/Target/Source/ARMCM3_STM32/nvm.h +++ b/Target/Source/ARMCM3_STM32/nvm.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver header file -| File Name: nvm.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 Source\ARMCM3_STM32\nvm.h +* \brief Bootloader non-volatile memory driver header file. +* \ingroup Target_ARMCM3_STM32 +* \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 NVM_H #define NVM_H @@ -51,9 +53,12 @@ blt_bool NvmDone(void); * Macro definitions ****************************************************************************************/ /* return codes for hook function NvmWrite/Erase */ -#define BLT_NVM_ERROR (0x00) /* return code for success */ -#define BLT_NVM_OKAY (0x01) /* return code for error */ -#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */ +/** \brief Return code for success. */ +#define BLT_NVM_ERROR (0x00) +/** \brief Return code for error. */ +#define BLT_NVM_OKAY (0x01) +/** \brief Return code for not in range. */ +#define BLT_NVM_NOT_IN_RANGE (0x02) #endif /* NVM_H */ diff --git a/Target/Source/ARMCM3_STM32/target.dox b/Target/Source/ARMCM3_STM32/target.dox new file mode 100644 index 00000000..77d999bb --- /dev/null +++ b/Target/Source/ARMCM3_STM32/target.dox @@ -0,0 +1,8 @@ +/** +\defgroup Target_ARMCM3_STM32 Target ARMCM3 STM32 +\brief Target dependent code for the ARMCM3 STM32 microcontroller family. +\details This module implements the bootloader's target dependent part for the + ARMCM3 STM32 microcontroller family. +*/ + + diff --git a/Target/Source/ARMCM3_STM32/timer.c b/Target/Source/ARMCM3_STM32/timer.c index 47ce3772..6eb4dd1b 100644 --- a/Target/Source/ARMCM3_STM32/timer.c +++ b/Target/Source/ARMCM3_STM32/timer.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_STM32\timer.c +* \brief Bootloader timer driver source file. +* \ingroup Target_ARMCM3_STM32 +* \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,39 +40,45 @@ /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Systick registers. */ typedef struct { - volatile blt_int32u CTRL; /* SysTick Control and Status Register */ - volatile blt_int32u LOAD; /* SysTick Reload Value Register */ - volatile blt_int32u VAL; /* SysTick Current Value Register */ + volatile blt_int32u CTRL; /**< SysTick Control and Status Register */ + volatile blt_int32u LOAD; /**< SysTick Reload Value Register */ + volatile blt_int32u VAL; /**< SysTick Current Value Register */ } tSysTickRegs; /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief CLKSOURCE bit of the system tick. */ #define SYSTICK_BIT_CLKSOURCE ((blt_int32u)0x00000004) +/** \brief ENABLE bit of the system tick. */ #define SYSTICK_BIT_ENABLE ((blt_int32u)0x00000001) +/** \brief COUNTERFLAG bit of the system tick. */ #define SYSTICK_BIT_COUNTERFLAG ((blt_int32u)0x00010000) /**************************************************************************************** * Local data declarations ****************************************************************************************/ -static blt_int16u millisecond_counter; +/** \brief Local variable for storing the number of milliseconds that have elapsed since + * startup. + */ +static blt_int32u millisecond_counter; /**************************************************************************************** * Register definitions ****************************************************************************************/ +/** \brief Macro to access the system tick registers. */ #define SYSTICK ((tSysTickRegs *) (blt_int32u)0xE000E010) -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the polling based millisecond timer driver. +/************************************************************************************//** +** \brief Initializes the polling based millisecond timer driver. +** \return none. ** ****************************************************************************************/ void TimerInit(void) @@ -88,12 +96,10 @@ void TimerInit(void) } /*** end of TimerInit ***/ -/**************************************************************************************** -** NAME: TimerReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset the timer by placing the timer back into it's default reset -** configuration. +/************************************************************************************//** +** \brief Reset the timer by placing the timer back into it's default reset +** configuration. +** \return none. ** ****************************************************************************************/ void TimerReset(void) @@ -103,11 +109,9 @@ void TimerReset(void) } /* end of TimerReset */ -/**************************************************************************************** -** NAME: TimerUpdate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the millisecond timer. +/************************************************************************************//** +** \brief Updates the millisecond timer. +** \return none. ** ****************************************************************************************/ void TimerUpdate(void) @@ -121,11 +125,9 @@ void TimerUpdate(void) } /*** end of TimerUpdate ***/ -/**************************************************************************************** -** 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. ** ****************************************************************************************/ blt_int32u TimerGet(void) diff --git a/Target/Source/ARMCM3_STM32/timer.h b/Target/Source/ARMCM3_STM32/timer.h index d138a3fc..4f9236f8 100644 --- a/Target/Source/ARMCM3_STM32/timer.h +++ b/Target/Source/ARMCM3_STM32/timer.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader 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 Source\ARMCM3_STM32\timer.h +* \brief Bootloader timer driver header file. +* \ingroup Target_ARMCM3_STM32 +* \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/Source/ARMCM3_STM32/types.h b/Target/Source/ARMCM3_STM32/types.h index 339a0f20..91e10256 100644 --- a/Target/Source/ARMCM3_STM32/types.h +++ b/Target/Source/ARMCM3_STM32/types.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader types header file -| File Name: types.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 Source\ARMCM3_STM32\types.h +* \brief Bootloader types header file. +* \ingroup Target_ARMCM3_STM32 +* \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 TYPES_H #define TYPES_H @@ -35,23 +37,26 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Boolean true value. */ #define BLT_TRUE (1) +/** \brief Boolean false value. */ #define BLT_FALSE (0) +/** \brief NULL pointer value. */ #define BLT_NULL ((void *)0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -typedef unsigned char blt_bool; /* boolean type */ -typedef char blt_char; /* character type */ -typedef unsigned long blt_addr; /* memory address type */ -typedef unsigned char blt_int8u; /* 8-bit unsigned integer */ -typedef signed char blt_int8s; /* 8-bit signed integer */ -typedef unsigned short blt_int16u; /* 16-bit unsigned integer */ -typedef signed short blt_int16s; /* 16-bit signed integer */ -typedef unsigned int blt_int32u; /* 32-bit unsigned integer */ -typedef signed int blt_int32s; /* 32-bit signed integer */ +typedef unsigned char blt_bool; /**< boolean type */ +typedef char blt_char; /**< character type */ +typedef unsigned long blt_addr; /**< memory address type */ +typedef unsigned char blt_int8u; /**< 8-bit unsigned integer */ +typedef signed char blt_int8s; /**< 8-bit signed integer */ +typedef unsigned short blt_int16u; /**< 16-bit unsigned integer */ +typedef signed short blt_int16s; /**< 16-bit signed integer */ +typedef unsigned int blt_int32u; /**< 32-bit unsigned integer */ +typedef signed int blt_int32s; /**< 32-bit signed integer */ #endif /* TYPES_H */ diff --git a/Target/Source/ARMCM3_STM32/uart.c b/Target/Source/ARMCM3_STM32/uart.c index 99a034d6..7667b35c 100644 --- a/Target/Source/ARMCM3_STM32/uart.c +++ b/Target/Source/ARMCM3_STM32/uart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface source file -| File Name: uart.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 Source\ARMCM3_STM32\uart.c +* \brief Bootloader UART communication interface source file. +* \ingroup Target_ARMCM3_STM32 +* \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,46 +41,52 @@ /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief UART register layout. */ typedef struct { - volatile blt_int16u SR; /* status register */ + volatile blt_int16u SR; /**< status register */ blt_int16u RESERVED0; - volatile blt_int16u DR; /* data register */ + volatile blt_int16u DR; /**< data register */ blt_int16u RESERVED1; - volatile blt_int16u BRR; /* baudrate register */ + volatile blt_int16u BRR; /**< baudrate register */ blt_int16u RESERVED2; - volatile blt_int16u CR1; /* control register 1 */ + volatile blt_int16u CR1; /**< control register 1 */ blt_int16u RESERVED3; - volatile blt_int16u CR2; /* control register 2 */ + volatile blt_int16u CR2; /**< control register 2 */ blt_int16u RESERVED4; - volatile blt_int16u CR3; /* control register 3 */ + volatile blt_int16u CR3; /**< control register 3 */ blt_int16u RESERVED5; - volatile blt_int16u GTPR; /* guard time and prescale reg. */ + volatile blt_int16u GTPR; /**< guard time and prescale reg. */ blt_int16u RESERVED6; -} tUartRegs; /* UART register layout type */ +} tUartRegs; /**< UART register layout type */ /**************************************************************************************** * Macro definitions ****************************************************************************************/ -#define UART_BIT_UE ((blt_int16u)0x2000) /* USART enable bit */ -#define UART_BIT_TE ((blt_int16u)0x0008) /* transmitter enable bit */ -#define UART_BIT_RE ((blt_int16u)0x0004) /* receiver enable bit */ -#define UART_BIT_TXE ((blt_int16u)0x0080) /* transmit data reg. empty bit */ -#define UART_BIT_RXNE ((blt_int16u)0x0020) /* read data reg. not empty bit */ +/** \brief USART enable bit. */ +#define UART_BIT_UE ((blt_int16u)0x2000) +/** \brief Transmitter enable bit. */ +#define UART_BIT_TE ((blt_int16u)0x0008) +/** \brief Receiver enable bit. */ +#define UART_BIT_RE ((blt_int16u)0x0004) +/** \brief Transmit data reg. empty bit. */ +#define UART_BIT_TXE ((blt_int16u)0x0080) +/** \brief Read data reg. not empty bit. */ +#define UART_BIT_RXNE ((blt_int16u)0x0020) /**************************************************************************************** * Register definitions ****************************************************************************************/ #if (BOOT_COM_UART_CHANNEL_INDEX == 0) -/* set UART base address to USART1 */ +/** \brief Set UART base address to USART1. */ #define UARTx ((tUartRegs *) (blt_int32u)0x40013800) #elif (BOOT_COM_UART_CHANNEL_INDEX == 1) -/* set UART base address to USART2 */ +/** \brief Set UART base address to USART2. */ #define UARTx ((tUartRegs *) (blt_int32u)0x40004400) #else -/* set UART base address to USART1 by default */ +/** \brief Set UART base address to USART1 by default. */ #define UARTx ((tUartRegs *) (blt_int32u)0x40013800) #endif @@ -90,11 +98,9 @@ static blt_bool UartReceiveByte(blt_int8u *data); static blt_bool UartTransmitByte(blt_int8u data); -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface +/************************************************************************************//** +** \brief Initializes the UART communication interface. +** \return none. ** ****************************************************************************************/ void UartInit(void) @@ -120,12 +126,11 @@ void UartInit(void) } /*** end of UartInit ***/ -/**************************************************************************************** -** NAME: UartTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UartTransmitPacket(blt_int8u *data, blt_int8u len) @@ -149,11 +154,10 @@ void UartTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UartTransmitPacket ***/ -/**************************************************************************************** -** NAME: UartReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UartReceivePacket(blt_int8u *data) @@ -201,11 +205,10 @@ blt_bool UartReceivePacket(blt_int8u *data) } /*** end of UartReceivePacket ***/ -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartReceiveByte(blt_int8u *data) @@ -223,11 +226,10 @@ static blt_bool UartReceiveByte(blt_int8u *data) } /*** end of UartReceiveByte ***/ -/**************************************************************************************** -** NAME: UartTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartTransmitByte(blt_int8u data) diff --git a/Target/Source/ARMCM3_STM32/uart.h b/Target/Source/ARMCM3_STM32/uart.h index 9121ac81..d6dc0394 100644 --- a/Target/Source/ARMCM3_STM32/uart.h +++ b/Target/Source/ARMCM3_STM32/uart.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface header file -| File Name: uart.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 Source\ARMCM3_STM32\uart.h +* \brief Bootloader UART communication interface header file. +* \ingroup Target_ARMCM3_STM32 +* \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 UART_H #define UART_H diff --git a/Target/Source/ARMCM3_STM32/usb.c b/Target/Source/ARMCM3_STM32/usb.c index 32c981cf..eb5d698d 100644 --- a/Target/Source/ARMCM3_STM32/usb.c +++ b/Target/Source/ARMCM3_STM32/usb.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader USB communication interface source file -| File Name: usb.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 Source\ARMCM3_STM32\usb.c +* \brief Bootloader USB communication interface source file. +* \ingroup Target_ARMCM3_STM32 +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -43,31 +45,36 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Total number of fifo buffers. */ #define FIFO_MAX_BUFFERS (2) +/** \brief Invalid value for a fifo buffer handle. */ #define FIFO_ERR_INVALID_HANDLE (255) +/** \brief Number of bytes that fit in the fifo pipe. */ #define FIFO_PIPE_SIZE (64) /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Structure type for fifo control. */ typedef struct t_fifo_ctrl { - blt_int8u *startptr; /* pointer to start of buffer */ - blt_int8u *endptr; /* pointer to end of buffer */ - blt_int8u *readptr; /* pointer to next read location */ - blt_int8u *writeptr; /* pointer to next free location */ - blt_int8u length; /* number of buffer elements */ - blt_int8u entries; /* # of full buffer elements */ - blt_int8u handle; /* handle of the buffer */ - struct t_fifo_ctrl *fifoctrlptr; /* pointer to free buffer control */ + blt_int8u *startptr; /**< pointer to start of buffer */ + blt_int8u *endptr; /**< pointer to end of buffer */ + blt_int8u *readptr; /**< pointer to next read location */ + blt_int8u *writeptr; /**< pointer to next free location */ + blt_int8u length; /**< number of buffer elements */ + blt_int8u entries; /**< # of full buffer elements */ + blt_int8u handle; /**< handle of the buffer */ + struct t_fifo_ctrl *fifoctrlptr; /**< pointer to free buffer control */ } tFifoCtrl; +/** \brief Structure type for a fifo pipe. */ typedef struct { - blt_int8u handle; /* fifo handle */ - blt_int8u data[FIFO_PIPE_SIZE]; /* fifo data buffer */ -} tFifoPipe; /* USB pipe fifo type */ + blt_int8u handle; /**< fifo handle */ + blt_int8u data[FIFO_PIPE_SIZE]; /**< fifo data buffer */ +} tFifoPipe; /**< USB pipe fifo type */ /**************************************************************************************** @@ -93,17 +100,19 @@ static blt_int8u UsbFifoMgrScan(blt_int8u handle); /**************************************************************************************** * Local data declarations ****************************************************************************************/ +/** \brief Local variable that holds the fifo control structures. */ static tFifoCtrl fifoCtrl[FIFO_MAX_BUFFERS]; +/** \brief Local pointer that points to the next free fifo control structure. */ static tFifoCtrl *fifoCtrlFree; +/** \brief Fifo pipe used for the bulk in endpoint. */ static tFifoPipe fifoPipeBulkIN; +/** \brief Fifo pipe used for the bulk out endpoint. */ static tFifoPipe fifoPipeBulkOUT; -/**************************************************************************************** -** NAME: UsbInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the USB communication interface +/************************************************************************************//** +** \brief Initializes the USB communication interface. +** \return none. ** ****************************************************************************************/ void UsbInit(void) @@ -121,11 +130,9 @@ void UsbInit(void) } /*** end of UsbInit ***/ -/**************************************************************************************** -** NAME: UsbFree -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Releases the USB communication interface. +/************************************************************************************//** +** \brief Releases the USB communication interface. +** \return none. ** ****************************************************************************************/ void UsbFree(void) @@ -135,12 +142,11 @@ void UsbFree(void) } /*** end of UsbFree ***/ -/**************************************************************************************** -** NAME: UsbTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UsbTransmitPacket(blt_int8u *data, blt_int8u len) @@ -164,11 +170,10 @@ void UsbTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UsbTransmitPacket ***/ -/**************************************************************************************** -** NAME: UsbReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UsbReceivePacket(blt_int8u *data) @@ -219,11 +224,10 @@ blt_bool UsbReceivePacket(blt_int8u *data) } /*** end of UsbReceivePacket ***/ -/**************************************************************************************** -** NAME: UsbReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UsbReceiveByte(blt_int8u *data) @@ -236,11 +240,10 @@ static blt_bool UsbReceiveByte(blt_int8u *data) } /*** end of UsbReceiveByte ***/ -/**************************************************************************************** -** NAME: UsbTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UsbTransmitByte(blt_int8u data) @@ -253,11 +256,9 @@ static blt_bool UsbTransmitByte(blt_int8u data) } /*** end of UsbTransmitByte ***/ -/**************************************************************************************** -** NAME: UsbEnterLowPowerMode -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Power-off system clocks and power while entering suspend mode. +/************************************************************************************//** +** \brief Power-off system clocks and power while entering suspend mode. +** \return none. ** ****************************************************************************************/ void UsbEnterLowPowerMode(void) @@ -269,11 +270,9 @@ void UsbEnterLowPowerMode(void) } /*** end of UsbEnterLowPowerMode ***/ -/**************************************************************************************** -** NAME: UsbLeaveLowPowerMode -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Restores system clocks and power while exiting suspend mode. +/************************************************************************************//** +** \brief Restores system clocks and power while exiting suspend mode. +** \return none. ** ****************************************************************************************/ void UsbLeaveLowPowerMode(void) @@ -295,12 +294,10 @@ void UsbLeaveLowPowerMode(void) } /*** end of UsbLeaveLowPowerMode ***/ -/**************************************************************************************** -** NAME: UsbTransmitPipeBulkIN -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Checks if there is still data left to transmit and if so submits it -** for transmission with the USB endpoint. +/************************************************************************************//** +** \brief Checks if there is still data left to transmit and if so submits it +** for transmission with the USB endpoint. +** \return none. ** ****************************************************************************************/ void UsbTransmitPipeBulkIN(void) @@ -342,11 +339,9 @@ void UsbTransmitPipeBulkIN(void) } /*** end of UsbTransmitPipeBulkIN ***/ -/**************************************************************************************** -** NAME: UsbReceivePipeBulkOUT -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Stores data that was received on the Bulk OUT pipe in the fifo. +/************************************************************************************//** +** \brief Stores data that was received on the Bulk OUT pipe in the fifo. +** \return none. ** ****************************************************************************************/ void UsbReceivePipeBulkOUT(void) @@ -375,13 +370,12 @@ void UsbReceivePipeBulkOUT(void) } /*** end of UsbReceivePipeBulkOUT ***/ -/**************************************************************************************** -** NAME: IntToUnicode -** PARAMETER: value the hexadecimal value to convert -** pbuf pointer to where the resulting string should be stored -** len number of characters to convert -** RETURN VALUE: none -** DESCRIPTION: Converts Hex 32Bits value into char. +/************************************************************************************//** +** \brief Converts Hex 32Bits value into char. +** \param value The hexadecimal value to convert. +** \param pbuf Pointer to where the resulting string should be stored. +** \param len Number of characters to convert. +** \return none. ** ****************************************************************************************/ static void IntToUnicode (blt_int32u value , blt_int8u *pbuf , blt_int8u len) @@ -406,11 +400,9 @@ static void IntToUnicode (blt_int32u value , blt_int8u *pbuf , blt_int8u len) } /*** end of IntToUnicode ***/ -/**************************************************************************************** -** NAME: UsbGetSerialNum -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Creates the serial number string descriptor. +/************************************************************************************//** +** \brief Creates the serial number string descriptor. +** \return none. ** ****************************************************************************************/ void UsbGetSerialNum(void) @@ -431,16 +423,14 @@ void UsbGetSerialNum(void) } /*** end of UsbGetSerialNum ***/ -/**************************************************************************************** -** NAME: UsbFifoMgrInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the fifo manager. Each controlled fifo is assigned a -** unique handle, which is the same as its index into fifoCtrl[]. Each -** controlled fifo holds a pointer to the next free fifo control. -** For the last fifo in fifoCtrl[] this one is set to a null-pointer as -** an out of fifo control indicator. Function should be called once -** before any of the other fifo management functions are called. +/************************************************************************************//** +** \brief Initializes the fifo manager. Each controlled fifo is assigned a +** unique handle, which is the same as its index into fifoCtrl[]. Each +** controlled fifo holds a pointer to the next free fifo control. +** For the last fifo in fifoCtrl[] this one is set to a null-pointer as +** an out of fifo control indicator. Function should be called once +** before any of the other fifo management functions are called. +** \return none. ** ****************************************************************************************/ static void UsbFifoMgrInit(void) @@ -465,14 +455,13 @@ static void UsbFifoMgrInit(void) } /*** end of UsbFifoMgrInit ***/ -/**************************************************************************************** -** NAME: UsbFifoMgrCreate -** PARAMETER: buffer pointer to the first element in the data storage fifo. -** length maximum number of data elements that can be stored in the fifo. -** RETURN VALUE: Fifo handle if successfull, or FIFO_ERR_INVALID_HANDLE. -** DESCRIPTION: Places a data storage array under fifo management control. A handle -** for identifying the fifo in subsequent fifo management function -** calls is returned, if successful. +/************************************************************************************//** +** \brief Places a data storage array under fifo management control. A handle +** for identifying the fifo in subsequent fifo management function +** calls is returned, if successful. +** \param buffer Pointer to the first element in the data storage fifo. +** \param length Maximum number of data elements that can be stored in the fifo. +** \return Fifo handle if successfull, or FIFO_ERR_INVALID_HANDLE. ** ****************************************************************************************/ static blt_int8u UsbFifoMgrCreate(blt_int8u *buffer, blt_int8u length) @@ -501,13 +490,12 @@ static blt_int8u UsbFifoMgrCreate(blt_int8u *buffer, blt_int8u length) } /*** end of UsbFifoMgrCreate ***/ -/**************************************************************************************** -** NAME: UsbFifoMgrWrite -** PARAMETER: handle identifies the fifo to write data to. -** data pointer to the data that is to be written to the fifo. -** RETURN VALUE: BLT_TRUE if the data was successfully stored in the fifo, BLT_FALSE -** otherwise. -** DESCRIPTION: Stores data in the fifo. +/************************************************************************************//** +** \brief Stores data in the fifo. +** \param handle Identifies the fifo to write data to. +** \param data Pointer to the data that is to be written to the fifo. +** \return BLT_TRUE if the data was successfully stored in the fifo, BLT_FALSE +** otherwise. ** ****************************************************************************************/ static blt_bool UsbFifoMgrWrite(blt_int8u handle, blt_int8u data) @@ -536,13 +524,12 @@ static blt_bool UsbFifoMgrWrite(blt_int8u handle, blt_int8u data) } /*** end of UsbFifoMgrWrite ***/ -/**************************************************************************************** -** NAME: UsbFifoMgrRead -** PARAMETER: handle identifies the fifo to read data from. -** data pointer to where the read data is to be stored. -** RETURN VALUE: BLT_TRUE if the data was successfully read from the fifo, BLT_FALSE -** otherwise. -** DESCRIPTION: Retrieves data from the fifo. +/************************************************************************************//** +** \brief Retrieves data from the fifo. +** \param handle Identifies the fifo to read data from. +** \param data Pointer to where the read data is to be stored. +** \return BLT_TRUE if the data was successfully read from the fifo, BLT_FALSE +** otherwise. ** ****************************************************************************************/ static blt_bool UsbFifoMgrRead(blt_int8u handle, blt_int8u *data) @@ -571,11 +558,10 @@ static blt_bool UsbFifoMgrRead(blt_int8u handle, blt_int8u *data) } /*** end of UsbFifoMgrRead ***/ -/**************************************************************************************** -** NAME: UsbFifoMgrScan -** PARAMETER: handle identifies the fifo that is to be scanned. -** RETURN VALUE: Number of data entries in the fifo if successful, otherwise 0. -** DESCRIPTION: Returns the number of data entries currently present in the fifo. +/************************************************************************************//** +** \brief Returns the number of data entries currently present in the fifo. +** \param handle Identifies the fifo that is to be scanned. +** \return Number of data entries in the fifo if successful, otherwise 0. ** ****************************************************************************************/ static blt_int8u UsbFifoMgrScan(blt_int8u handle) diff --git a/Target/Source/ARMCM3_STM32/usb.h b/Target/Source/ARMCM3_STM32/usb.h index 0aa47d79..b818c1d9 100644 --- a/Target/Source/ARMCM3_STM32/usb.h +++ b/Target/Source/ARMCM3_STM32/usb.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader USB communication interface header file -| File Name: usb.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 Source\ARMCM3_STM32\usb.h +* \brief Bootloader USB communication interface header file. +* \ingroup Target_ARMCM3_STM32 +* \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 USB_H #define USB_H diff --git a/Target/Source/ARMCM4_STM32/Crossworks/vectors.c b/Target/Source/ARMCM4_STM32/Crossworks/vectors.c index 89932000..9c9b54e8 100644 --- a/Target/Source/ARMCM4_STM32/Crossworks/vectors.c +++ b/Target/Source/ARMCM4_STM32/Crossworks/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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\Crossworks\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 blt_int32u __stack_end__; /* stack end address (memory.x) */ +/** \brief Stack end address (memory.x) */ +extern blt_int32u __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 */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".vectors"))) const tIsrFunc _vectors[] = { diff --git a/Target/Source/ARMCM4_STM32/GCC/cstart.c b/Target/Source/ARMCM4_STM32/GCC/cstart.c index e638d928..ac45128b 100644 --- a/Target/Source/ARMCM4_STM32/GCC/cstart.c +++ b/Target/Source/ARMCM4_STM32/GCC/cstart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader C startup source file -| File Name: cstart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\GCC\cstart.c +* \brief Bootloader C startup source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 ****************************************************************************************/ /**************************************************************************************** @@ -54,22 +56,19 @@ extern blt_int32u _ebss; extern blt_int32u _estack; -/**************************************************************************************** -** NAME: EntryFromProg -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Called by the user program to activate the bootloader. Do not place -** any assembly code before this function and the end of the vector -** table. This guarantees that this function is located at address -** 0x08000150. The user program can call this function from C in the -** following way: +/************************************************************************************//** +** \brief Called by the user program to activate the bootloader. The user program +** can call this function from C in the following way: ** void ActivateBootloader(void) ** { ** void (*pEntryFromProgFnc)(void); ** -** pEntryFromProgFnc = (void*)0x08000150; +** pEntryFromProgFnc = (void*)0x08000188 + 1; ** pEntryFromProgFnc(); ** } +** Note that the + 1 added to the function address is neccassary to +** enable a switch from Thumb2 to Thumb mode. +** \return none. ** ****************************************************************************************/ __attribute__ ((section (".entry"))) @@ -111,12 +110,10 @@ void EntryFromProg(void) } /*** end of EntryFromProg ***/ -/**************************************************************************************** -** 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/Source/ARMCM4_STM32/GCC/vectors.c b/Target/Source/ARMCM4_STM32/GCC/vectors.c index 3a321249..5f3d5278 100644 --- a/Target/Source/ARMCM4_STM32/GCC/vectors.c +++ b/Target/Source/ARMCM4_STM32/GCC/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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\GCC\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 @@ extern blt_int32u _estack; /* stack end address (memory.x) */ -/**************************************************************************************** -** 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) @@ -59,13 +59,14 @@ void UnusedISR(void) * I N T E R R U P T V E C T O R T A B L E ****************************************************************************************/ extern void reset_handler(void); /* implemented in cstart.c */ - +/** \brief Structure type for vector table entries. */ typedef union { - void (*func)(void); /* for ISR function pointers */ - blt_int32u ptr; /* for stack pointer entry */ -}tIsrFunc; /* type for vector table entries */ + void (*func)(void); /**< for ISR function pointers */ + blt_int32u ptr; /**< for stack pointer entry */ +}tIsrFunc; +/** \brief Interrupt vector table. */ __attribute__ ((section(".isr_vector"))) const tIsrFunc _vectab[] = { diff --git a/Target/Source/ARMCM4_STM32/IAR/vectors.c b/Target/Source/ARMCM4_STM32/IAR/vectors.c index 5c5893de..72d21efd 100644 --- a/Target/Source/ARMCM4_STM32/IAR/vectors.c +++ b/Target/Source/ARMCM4_STM32/IAR/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) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\IAR\vectors.c +* \brief Bootloader interrupt vector table source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 reset_handler( 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/Source/ARMCM4_STM32/cpu.c b/Target/Source/ARMCM4_STM32/cpu.c index 566c4d09..79fb2320 100644 --- a/Target/Source/ARMCM4_STM32/cpu.c +++ b/Target/Source/ARMCM4_STM32/cpu.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module source file -| File Name: cpu.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\cpu.c +* \brief Bootloader cpu module source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,14 +41,22 @@ * Macro definitions ****************************************************************************************/ #if (BOOT_FILE_SYS_ENABLE > 0) - /* the size of the bootloader with support for firmware update from a locally attached - * storage disk is larger so the start address of the user program is at a different - * location. + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x8000. */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x08008004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x8000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00008000) #else + /** \brief Pointer to the user program's reset vector. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x4000. + */ #define CPU_USER_PROGRAM_STARTADDR_PTR ((blt_addr) 0x08004004) + /** \brief Pointer to the user program's vector table. Note that this needs to be + * changed in case the reserved memory for the bootloader is more than 0x4000. + */ #define CPU_USER_PROGRAM_VECTABLE_OFFSET ((blt_int32u)0x00004000) #endif @@ -54,7 +64,7 @@ /**************************************************************************************** * Register definitions ****************************************************************************************/ -/* vector table offset register */ +/** \brief Vector table offset register. */ #define SCB_VTOR (*((volatile blt_int32u *) 0xE000ED08)) @@ -72,12 +82,10 @@ extern blt_bool CpuUserProgramStartHook(void); extern void reset_handler(void); /* implemented in cstart.s */ -/**************************************************************************************** -** NAME: CpuStartUserProgram -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Starts the user program, if one is present. In this case this function -** does not return. +/************************************************************************************//** +** \brief Starts the user program, if one is present. In this case this function +** does not return. +** \return none. ** ****************************************************************************************/ void CpuStartUserProgram(void) @@ -116,13 +124,12 @@ void CpuStartUserProgram(void) } /*** end of CpuStartUserProgram ***/ -/**************************************************************************************** -** NAME: CpuMemCopy -** PARAMETER: dest destination address for the data. -** src source address of the data. -** len length of the data in bytes. -** RETURN VALUE: none -** DESCRIPTION: Copies data from the source to the destination address. +/************************************************************************************//** +** \brief Copies data from the source to the destination address. +** \param dest Destination address for the data. +** \param src Source address of the data. +** \param len length of the data in bytes. +** \return none. ** ****************************************************************************************/ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) @@ -144,12 +151,9 @@ void CpuMemCopy(blt_addr dest, blt_addr src, blt_int16u len) } /*** end of CpuMemCopy ***/ -/**************************************************************************************** -** NAME: CpuReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Perform a soft reset of the microcontroller by starting from the reset -** ISR. +/************************************************************************************//** +** \brief Perform a soft reset of the microcontroller by starting from the reset ISR. +** \return none. ** ****************************************************************************************/ void CpuReset(void) diff --git a/Target/Source/ARMCM4_STM32/cpu.h b/Target/Source/ARMCM4_STM32/cpu.h index 764f0908..b6121585 100644 --- a/Target/Source/ARMCM4_STM32/cpu.h +++ b/Target/Source/ARMCM4_STM32/cpu.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader cpu module header file -| File Name: cpu.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\cpu.h +* \brief Bootloader cpu module header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 CPU_H #define CPU_H diff --git a/Target/Source/ARMCM4_STM32/flash.c b/Target/Source/ARMCM4_STM32/flash.c index b967e185..697c0f38 100644 --- a/Target/Source/ARMCM4_STM32/flash.c +++ b/Target/Source/ARMCM4_STM32/flash.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver source file -| File Name: flash.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,29 +42,35 @@ /**************************************************************************************** * 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])) +/** \brief Offset into the user program's vector table where the checksum is located. */ #define FLASH_VECTOR_TABLE_CS_OFFSET (0x188) /**************************************************************************************** * 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. The .base_addr must be a multiple - * of FLASH_WRITE_BLOCK_SIZE. +/** \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. The .base_addr must be a multiple of FLASH_WRITE_BLOCK_SIZE. */ typedef struct { @@ -77,7 +85,7 @@ typedef struct static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address); static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr); static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, - blt_int8u *data, blt_int16u len); + blt_int8u *data, blt_int32u len); static blt_bool FlashWriteBlock(tFlashBlockInfo *block); static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector); static blt_int8u FlashGetSector(blt_addr address); @@ -86,7 +94,11 @@ static blt_int8u FlashGetSector(blt_addr address); /**************************************************************************************** * Local constant declarations ****************************************************************************************/ -/* layout of the physical flash memory */ +/** \brief Array wit the layout of the flash memory. + * \details Also controls what part of the flash memory is reserved for the bootloader. + * If the bootloader size changes, the reserved sectors for the bootloader + * might need adjustment to make sure the bootloader doesn't get overwritten. + */ static const tFlashSector flashLayout[] = { #if (BOOT_FILE_SYS_ENABLE > 0) @@ -131,9 +143,10 @@ static const tFlashSector flashLayout[] = #endif }; -/* the STM32F4x Standard Peripheral Library driver needs a sector mask instead of the - * sector number. this ROM lookup table can quickly convert the sector number to its - * mask. +/** \brief Lookup table to quickly convert sector number to mask. + * \details The STM32F4x Standard Peripheral Library driver needs a sector mask instead + * of the sector number. this ROM lookup table can quickly convert the sector + * number to its mask. */ static const blt_int16u flashSectorNumToMask[] = { @@ -167,38 +180,41 @@ static const blt_int16u flashSectorNumToMask[] = /**************************************************************************************** * 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; -/* The first block of the user program holds the vector table, which on the STM32 is - * also the where the checksum is written to. Is it likely that the vector table is - * first flashed and then, at the end of the programming sequence, the checksum. This - * means that this flash block need to be written to twice. Normally this is not a - * problem with flash memory, as long as you write the same values to those bytes that - * are not supposed to be changed and the locations where you do write to are still in - * the erased 0xFF state. Unfortunately, writing twice to flash this way, does not work - * reliably on all micros. This is why we need to have an extra block, the bootblock, - * placed under the management of the block manager. This way is it possible to implement - * functionality so that the bootblock is only written to once at the end of the - * programming sequency. +/** \brief Local variable with information about the flash boot block. + * \details The first block of the user program holds the vector table, which on the + * STM32 is also the where the checksum is written to. Is it likely that + * the vector table is first flashed and then, at the end of the programming + * sequence, the checksum. This means that this flash block need to be written + * to twice. Normally this is not a problem with flash memory, as long as you + * write the same values to those bytes that are not supposed to be changed + * and the locations where you do write to are still in the erased 0xFF state. + * Unfortunately, writing twice to flash this way, does not work reliably on + * all micros. This is why we need to have an extra block, the bootblock, + * placed under the management of the block manager. This way is it possible + * to implement functionality so that the bootblock is only written to once + * at the end of the programming sequence. */ static tFlashBlockInfo bootBlockInfo; -/**************************************************************************************** -** NAME: FlashInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the flash driver. +/************************************************************************************//** +** \brief Initializes the flash driver. +** \return none. ** ****************************************************************************************/ void FlashInit(void) @@ -209,15 +225,14 @@ void FlashInit(void) } /*** end of FlashInit ***/ -/**************************************************************************************** -** NAME: FlashWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Writes the data to flash through a flash block manager. Note that this -** function also checks that no data is programmed outside the flash -** memory region, so the bootloader can never be overwritten. +/************************************************************************************//** +** \brief Writes the data to flash through a flash block manager. Note that this +** function also checks that no data is programmed outside the flash +** memory region, so the bootloader can never be overwritten. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -243,14 +258,13 @@ blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of FlashWrite ***/ -/**************************************************************************************** -** NAME: FlashErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash memory. Note that this function also checks that no -** data is erased outside the flash memory region, so the bootloader can -** never be erased. +/************************************************************************************//** +** \brief Erases the flash memory. Note that this function also checks that no +** data is erased outside the flash memory region, so the bootloader can +** never be erased. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashErase(blt_addr addr, blt_int32u len) @@ -271,15 +285,13 @@ blt_bool FlashErase(blt_addr addr, blt_int32u len) } /*** end of FlashErase ***/ -/**************************************************************************************** -** NAME: FlashWriteChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Writes a checksum of the user program to non-volatile memory. This is -** performed once the entire user program has been programmed. Through -** the checksum, the bootloader can check if the programming session -** was completed, which indicates that a valid user programming is -** present and can be started. +/************************************************************************************//** +** \brief Writes a checksum of the user program to non-volatile memory. This is +** performed once the entire user program has been programmed. Through +** the checksum, the bootloader can check if the programming session +** was completed, which indicates that a valid user programming is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashWriteChecksum(void) @@ -334,12 +346,10 @@ blt_bool FlashWriteChecksum(void) } /*** end of FlashWriteChecksum ***/ -/**************************************************************************************** -** NAME: FlashVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashVerifyChecksum(void) @@ -366,12 +376,10 @@ blt_bool FlashVerifyChecksum(void) } /*** end of FlashVerifyChecksum ***/ -/**************************************************************************************** -** NAME: FlashDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is succesful, BLT_FALSE otherwise. -** DESCRIPTION: Finilizes the flash driver operations. There could still be data in -** the currently active block that needs to be flashed. +/************************************************************************************//** +** \brief Finalizes the flash driver operations. There could still be data in +** the currently active block that needs to be flashed. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FlashDone(void) @@ -398,13 +406,12 @@ blt_bool FlashDone(void) } /*** end of FlashDone ***/ -/**************************************************************************************** -** NAME: FlashInitBlock -** 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 if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) @@ -427,14 +434,13 @@ static blt_bool FlashInitBlock(tFlashBlockInfo *block, blt_addr address) } /*** end of FlashInitBlock ***/ -/**************************************************************************************** -** NAME: FlashSwitchBlock -** 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 of 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 *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_addr) @@ -477,21 +483,20 @@ static tFlashBlockInfo *FlashSwitchBlock(tFlashBlockInfo *block, blt_addr base_a } /*** end of FlashSwitchBlock ***/ -/**************************************************************************************** -** NAME: FlashAddToBlock -** 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 FlashAddToBlock(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; @@ -554,12 +559,11 @@ static blt_bool FlashAddToBlock(tFlashBlockInfo *block, blt_addr address, } /*** end of FlashAddToBlock ***/ -/**************************************************************************************** -** NAME: FlashWriteBlock -** 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 FlashWriteBlock(tFlashBlockInfo *block) @@ -616,12 +620,11 @@ static blt_bool FlashWriteBlock(tFlashBlockInfo *block) } /*** end of FlashWriteBlock ***/ -/**************************************************************************************** -** NAME: FlashEraseSectors -** PARAMETER: first_sector first flash sector number -** last_sector last flash sector number -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the flash sectors from first_sector up until last_sector +/************************************************************************************//** +** \brief Erases the flash sectors from first_sector up until last_sector. +** \param first_sector First flash sector number. +** \param last_sector Last flash sector number. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) @@ -672,11 +675,10 @@ static blt_bool FlashEraseSectors(blt_int8u first_sector, blt_int8u last_sector) } /*** end of FlashEraseSectors ***/ -/**************************************************************************************** -** NAME: FlashGetSector -** 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 FlashGetSector(blt_addr address) diff --git a/Target/Source/ARMCM4_STM32/flash.h b/Target/Source/ARMCM4_STM32/flash.h index d5d87794..055fcac4 100644 --- a/Target/Source/ARMCM4_STM32/flash.h +++ b/Target/Source/ARMCM4_STM32/flash.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader flash driver header file -| File Name: flash.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\flash.c +* \brief Bootloader flash driver source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 FLASH_H #define FLASH_H diff --git a/Target/Source/ARMCM4_STM32/nvm.c b/Target/Source/ARMCM4_STM32/nvm.c index 23020732..ceeec7db 100644 --- a/Target/Source/ARMCM4_STM32/nvm.c +++ b/Target/Source/ARMCM4_STM32/nvm.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver source file -| File Name: nvm.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\nvm.c +* \brief Bootloader non-volatile memory driver source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 ****************************************************************************************/ /**************************************************************************************** @@ -46,11 +48,9 @@ extern blt_bool NvmDoneHook(void); #endif -/**************************************************************************************** -** NAME: NvmInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the NVM driver. +/************************************************************************************//** +** \brief Initializes the NVM driver. +** \return none. ** ****************************************************************************************/ void NvmInit(void) @@ -67,13 +67,12 @@ void NvmInit(void) } /*** end of NvmInit ***/ -/**************************************************************************************** -** NAME: NvmWrite -** PARAMETER: addr start address -** len length in bytes -** data pointer to the data buffer. -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Programs the non-volatile memory. +/************************************************************************************//** +** \brief Programs the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \param data Pointer to the data buffer. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) @@ -110,12 +109,11 @@ blt_bool NvmWrite(blt_addr addr, blt_int32u len, blt_int8u *data) } /*** end of NvmWrite ***/ -/**************************************************************************************** -** NAME: NvmErase -** PARAMETER: addr start address -** len length in bytes -** RETURN VALUE: BLT_TRUE if successful, BLT_FALSE otherwise. -** DESCRIPTION: Erases the non-volatile memory. +/************************************************************************************//** +** \brief Erases the non-volatile memory. +** \param addr Start address. +** \param len Length in bytes. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmErase(blt_addr addr, blt_int32u len) @@ -152,12 +150,10 @@ blt_bool NvmErase(blt_addr addr, blt_int32u len) } /*** end of NvmErase ***/ -/**************************************************************************************** -** NAME: NvmVerifyChecksum -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BTL_FALSE otherwise. -** DESCRIPTION: Verifies the checksum, which indicates that a valid user program is -** present and can be started. +/************************************************************************************//** +** \brief Verifies the checksum, which indicates that a valid user program is +** present and can be started. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmVerifyChecksum(void) @@ -167,15 +163,13 @@ blt_bool NvmVerifyChecksum(void) } /*** end of NvmVerifyChecksum ***/ -/**************************************************************************************** -** NAME: NvmDone -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is successful, BLT_FALSE otherwise. -** DESCRIPTION: Once all erase and programming operations are completed, this -** function is called, so at the end of the programming session and -** right before a software reset is performed. It is used to calculate -** a checksum and program this into flash. This checksum is later used -** to determine if a valid user program is present in flash. +/************************************************************************************//** +** \brief Once all erase and programming operations are completed, this +** function is called, so at the end of the programming session and +** right before a software reset is performed. It is used to calculate +** a checksum and program this into flash. This checksum is later used +** to determine if a valid user program is present in flash. +** \return BLT_TRUE if successful, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool NvmDone(void) diff --git a/Target/Source/ARMCM4_STM32/nvm.h b/Target/Source/ARMCM4_STM32/nvm.h index 1d2adde3..5c17b9e2 100644 --- a/Target/Source/ARMCM4_STM32/nvm.h +++ b/Target/Source/ARMCM4_STM32/nvm.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader non-volatile memory driver header file -| File Name: nvm.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\nvm.h +* \brief Bootloader non-volatile memory driver header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 NVM_H #define NVM_H @@ -51,9 +53,12 @@ blt_bool NvmDone(void); * Macro definitions ****************************************************************************************/ /* return codes for hook function NvmWrite/Erase */ -#define BLT_NVM_ERROR (0x00) /* return code for success */ -#define BLT_NVM_OKAY (0x01) /* return code for error */ -#define BLT_NVM_NOT_IN_RANGE (0x02) /* return code for not in range */ +/** \brief Return code for success. */ +#define BLT_NVM_ERROR (0x00) +/** \brief Return code for error. */ +#define BLT_NVM_OKAY (0x01) +/** \brief Return code for not in range. */ +#define BLT_NVM_NOT_IN_RANGE (0x02) #endif /* NVM_H */ diff --git a/Target/Source/ARMCM4_STM32/target.dox b/Target/Source/ARMCM4_STM32/target.dox new file mode 100644 index 00000000..e69adc6c --- /dev/null +++ b/Target/Source/ARMCM4_STM32/target.dox @@ -0,0 +1,8 @@ +/** +\defgroup Target_ARMCM4_STM32 Target ARMCM4 STM32 +\brief Target dependent code for the ARMCM4 STM32 microcontroller family. +\details This module implements the bootloader's target dependent part for the + ARMCM4 STM32 microcontroller family. +*/ + + diff --git a/Target/Source/ARMCM4_STM32/timer.c b/Target/Source/ARMCM4_STM32/timer.c index b6c6dc8e..f736d996 100644 --- a/Target/Source/ARMCM4_STM32/timer.c +++ b/Target/Source/ARMCM4_STM32/timer.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader timer driver source file -| File Name: timer.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\timer.c +* \brief Bootloader timer driver source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,14 +41,15 @@ /**************************************************************************************** * Local data declarations ****************************************************************************************/ -static blt_int16u millisecond_counter; +/** \brief Local variable for storing the number of milliseconds that have elapsed since + * startup. + */ +static blt_int32u millisecond_counter; -/**************************************************************************************** -** NAME: TimerInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the polling based millisecond timer driver. +/************************************************************************************//** +** \brief Initializes the polling based millisecond timer driver. +** \return none. ** ****************************************************************************************/ void TimerInit(void) @@ -65,12 +68,10 @@ void TimerInit(void) } /*** end of TimerInit ***/ -/**************************************************************************************** -** NAME: TimerReset -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Reset the timer by placing the timer back into it's default reset -** configuration. +/************************************************************************************//** +** \brief Reset the timer by placing the timer back into it's default reset +** configuration. +** \return none. ** ****************************************************************************************/ void TimerReset(void) @@ -80,11 +81,9 @@ void TimerReset(void) } /* end of TimerReset */ -/**************************************************************************************** -** NAME: TimerUpdate -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the millisecond timer. +/************************************************************************************//** +** \brief Updates the millisecond timer. +** \return none. ** ****************************************************************************************/ void TimerUpdate(void) @@ -98,11 +97,9 @@ void TimerUpdate(void) } /*** end of TimerUpdate ***/ -/**************************************************************************************** -** 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. ** ****************************************************************************************/ blt_int32u TimerGet(void) diff --git a/Target/Source/ARMCM4_STM32/timer.h b/Target/Source/ARMCM4_STM32/timer.h index e77dbfe3..6a4dfa58 100644 --- a/Target/Source/ARMCM4_STM32/timer.h +++ b/Target/Source/ARMCM4_STM32/timer.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader timer driver header file -| File Name: timer.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\timer.h +* \brief Bootloader timer driver header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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/Source/ARMCM4_STM32/types.h b/Target/Source/ARMCM4_STM32/types.h index 53a325d5..683c405c 100644 --- a/Target/Source/ARMCM4_STM32/types.h +++ b/Target/Source/ARMCM4_STM32/types.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader types header file -| File Name: types.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\types.h +* \brief Bootloader types header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 TYPES_H #define TYPES_H @@ -35,23 +37,26 @@ /**************************************************************************************** * Macro definitions ****************************************************************************************/ +/** \brief Boolean true value. */ #define BLT_TRUE (1) +/** \brief Boolean false value. */ #define BLT_FALSE (0) +/** \brief NULL pointer value. */ #define BLT_NULL ((void *)0) /**************************************************************************************** * Type definitions ****************************************************************************************/ -typedef unsigned char blt_bool; /* boolean type */ -typedef char blt_char; /* character type */ -typedef unsigned long blt_addr; /* memory address type */ -typedef unsigned char blt_int8u; /* 8-bit unsigned integer */ -typedef signed char blt_int8s; /* 8-bit signed integer */ -typedef unsigned short blt_int16u; /* 16-bit unsigned integer */ -typedef signed short blt_int16s; /* 16-bit signed integer */ -typedef unsigned int blt_int32u; /* 32-bit unsigned integer */ -typedef signed int blt_int32s; /* 32-bit signed integer */ +typedef unsigned char blt_bool; /**< boolean type */ +typedef char blt_char; /**< character type */ +typedef unsigned long blt_addr; /**< memory address type */ +typedef unsigned char blt_int8u; /**< 8-bit unsigned integer */ +typedef signed char blt_int8s; /**< 8-bit signed integer */ +typedef unsigned short blt_int16u; /**< 16-bit unsigned integer */ +typedef signed short blt_int16s; /**< 16-bit signed integer */ +typedef unsigned int blt_int32u; /**< 32-bit unsigned integer */ +typedef signed int blt_int32s; /**< 32-bit signed integer */ #endif /* TYPES_H */ diff --git a/Target/Source/ARMCM4_STM32/uart.c b/Target/Source/ARMCM4_STM32/uart.c index 409a9700..ca6f5dfc 100644 --- a/Target/Source/ARMCM4_STM32/uart.c +++ b/Target/Source/ARMCM4_STM32/uart.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface source file -| File Name: uart.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\uart.c +* \brief Bootloader UART communication interface source file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,16 +45,22 @@ ****************************************************************************************/ /* map the configured UART channel index to the STM32's USART peripheral */ #if (BOOT_COM_UART_CHANNEL_INDEX == 0) +/** \brief Set UART base address to USART1. */ #define USART_CHANNEL USART1 #elif (BOOT_COM_UART_CHANNEL_INDEX == 1) +/** \brief Set UART base address to USART2. */ #define USART_CHANNEL USART2 #elif (BOOT_COM_UART_CHANNEL_INDEX == 2) +/** \brief Set UART base address to USART3. */ #define USART_CHANNEL USART3 #elif (BOOT_COM_UART_CHANNEL_INDEX == 3) +/** \brief Set UART base address to USART4. */ #define USART_CHANNEL USART4 #elif (BOOT_COM_UART_CHANNEL_INDEX == 4) +/** \brief Set UART base address to USART5. */ #define USART_CHANNEL USART5 #elif (BOOT_COM_UART_CHANNEL_INDEX == 5) +/** \brief Set UART base address to USART6. */ #define USART_CHANNEL USART6 #endif @@ -64,11 +72,9 @@ static blt_bool UartReceiveByte(blt_int8u *data); static blt_bool UartTransmitByte(blt_int8u data); -/**************************************************************************************** -** NAME: UartInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the UART communication interface +/************************************************************************************//** +** \brief Initializes the UART communication interface. +** \return none. ** ****************************************************************************************/ void UartInit(void) @@ -97,12 +103,11 @@ void UartInit(void) } /*** end of UartInit ***/ -/**************************************************************************************** -** NAME: UartTransmitPacket -** PARAMETER: data pointer to byte array with data that it to be transmitted. -** len number of bytes that are to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits a packet formatted for the communication interface. +/************************************************************************************//** +** \brief Transmits a packet formatted for the communication interface. +** \param data Pointer to byte array with data that it to be transmitted. +** \param len Number of bytes that are to be transmitted. +** \return none. ** ****************************************************************************************/ void UartTransmitPacket(blt_int8u *data, blt_int8u len) @@ -126,11 +131,10 @@ void UartTransmitPacket(blt_int8u *data, blt_int8u len) } /*** end of UartTransmitPacket ***/ -/**************************************************************************************** -** NAME: UartReceivePacket -** PARAMETER: data pointer to byte array where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a packet was received, BLT_FALSE otherwise. -** DESCRIPTION: Receives a communication interface packet if one is present. +/************************************************************************************//** +** \brief Receives a communication interface packet if one is present. +** \param data Pointer to byte array where the data is to be stored. +** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool UartReceivePacket(blt_int8u *data) @@ -178,11 +182,10 @@ blt_bool UartReceivePacket(blt_int8u *data) } /*** end of UartReceivePacket ***/ -/**************************************************************************************** -** NAME: UartReceiveByte -** PARAMETER: data pointer to byte where the data is to be stored. -** RETURN VALUE: BLT_TRUE if a byte was received, BLT_FALSE 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 BLT_TRUE if a byte was received, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartReceiveByte(blt_int8u *data) @@ -200,11 +203,10 @@ static blt_bool UartReceiveByte(blt_int8u *data) } /*** end of UartReceiveByte ***/ -/**************************************************************************************** -** NAME: UartTransmitByte -** PARAMETER: data value of byte that is to be transmitted. -** RETURN VALUE: BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. -** DESCRIPTION: Transmits a communication interface byte. +/************************************************************************************//** +** \brief Transmits a communication interface byte. +** \param data Value of byte that is to be transmitted. +** \return BLT_TRUE if the byte was transmitted, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool UartTransmitByte(blt_int8u data) diff --git a/Target/Source/ARMCM4_STM32/uart.h b/Target/Source/ARMCM4_STM32/uart.h index 93becf03..6105e26b 100644 --- a/Target/Source/ARMCM4_STM32/uart.h +++ b/Target/Source/ARMCM4_STM32/uart.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader UART communication interface header file -| File Name: uart.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\ARMCM4_STM32\uart.h +* \brief Bootloader UART communication interface header file. +* \ingroup Target_ARMCM4_STM32 +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 UART_H #define UART_H diff --git a/Target/Source/assert.c b/Target/Source/assert.c index 1a56d4ec..84da7717 100644 --- a/Target/Source/assert.c +++ b/Target/Source/assert.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader assertion module source file -| File Name: assert.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 Source\assert.c +* \brief Bootloader assertion module source file. +* \ingroup Core +* \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,17 +41,18 @@ /**************************************************************************************** * Local data declarations ****************************************************************************************/ +/** \brief Holds the filename in which the assertion occurred. */ static volatile blt_char *assert_failure_file; +/** \brief Holds the linenumber where the assertion occurred. */ static volatile blt_int32u assert_failure_line; -/**************************************************************************************** -** NAME: AssertFailure -** PARAMETER: file name of the source file where the assertion occurred. -** line 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. +/************************************************************************************//** +** \brief Called when a runtime assertion failed. It stores information about where +** the assertion occurred and halts the software program. +** \param file Name of the source file where the assertion occurred. +** \param line Linenumber in the source file where the assertion occurred. +** \return none ** ****************************************************************************************/ void AssertFailure(blt_char *file, blt_int32u line) diff --git a/Target/Source/assert.h b/Target/Source/assert.h index e366c445..760fa5ba 100644 --- a/Target/Source/assert.h +++ b/Target/Source/assert.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader assertion module header file -| File Name: assert.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 Source\assert.h +* \brief Bootloader assertion module header file. +* \ingroup Core +* \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 ASSERT_H #define ASSERT_H @@ -43,7 +45,9 @@ #else #define ASSERT_CONCAT_(a, b) a##b #define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b) + /** \brief Macro for assertions that can be performed at compile time. */ #define ASSERT_CT(cond) enum { ASSERT_CONCAT(assert_error_on_line_, __LINE__) = 1/(!!(cond)) } + /** \brief Macro for assertions that can only be performed at run time. */ #define ASSERT_RT(cond) \ if (cond) \ { ; } \ diff --git a/Target/Source/backdoor.c b/Target/Source/backdoor.c index a33a7d5b..dad1e70e 100644 --- a/Target/Source/backdoor.c +++ b/Target/Source/backdoor.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader backdoor entry source file -| File Name: backdoor.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 Source\backdoor.c +* \brief Bootloader backdoor entry source file. +* \ingroup Core +* \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,8 +41,12 @@ * Macro definitions ****************************************************************************************/ #if (BOOT_BACKDOOR_HOOKS_ENABLE == 0) - /* set the time in milliseconds that the backdoor is open */ + #ifndef BACKDOOR_ENTRY_TIMEOUT_MS + /** \brief Sets the time in milliseconds that the backdoor is open, but allow an + * override for this time. + */ #define BACKDOOR_ENTRY_TIMEOUT_MS (50) + #endif #endif /**************************************************************************************** @@ -56,16 +62,16 @@ extern blt_bool BackDoorEntryHook(void); * Local data declarations ****************************************************************************************/ #if (BOOT_BACKDOOR_HOOKS_ENABLE == 0) +/** \brief To determine if the backdoor is open or closed. */ static blt_bool backdoorOpen; +/** \brief To determine how long the backdoor has been open in milliseconds. */ static blt_int32u backdoorOpenTime; #endif -/**************************************************************************************** -** NAME: BackDoorInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the backdoor entry option. +/************************************************************************************//** +** \brief Initializes the backdoor entry option. +** \return none ** ****************************************************************************************/ void BackDoorInit(void) @@ -105,14 +111,12 @@ void BackDoorInit(void) } /*** end of BackDoorInit ***/ -/**************************************************************************************** -** NAME: BackDoorCheck -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: The default backdoor entry feature keeps the bootloader active for a -** predetermined time after reset, allowing the host application to -** establish a connection and start a programming sequence. This function -** controls the opening/closing of the backdoor. +/************************************************************************************//** +** \brief The default backdoor entry feature keeps the bootloader active for a +** predetermined time after reset, allowing the host application to +** establish a connection and start a programming sequence. This function +** controls the opening/closing of the backdoor. +** \return none ** ****************************************************************************************/ void BackDoorCheck(void) diff --git a/Target/Source/backdoor.h b/Target/Source/backdoor.h index 007cb48b..500428de 100644 --- a/Target/Source/backdoor.h +++ b/Target/Source/backdoor.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader backdoor entry header file -| File Name: backdoor.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 Source\backdoor.h +* \brief Bootloader backdoor entry header file. +* \ingroup Core +* \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 BACKDOOR_H #define BACKDOOR_H diff --git a/Target/Source/boot.c b/Target/Source/boot.c index 3c55dd19..a9fa3229 100644 --- a/Target/Source/boot.c +++ b/Target/Source/boot.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader core module 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 Source\boot.c +* \brief Bootloader core module source file. +* \ingroup Core +* \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 "boot.h" /* bootloader generic header */ -/**************************************************************************************** -** NAME: BootInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the bootloader core. +/************************************************************************************//** +** \brief Initializes the bootloader core. +** \return none ** ****************************************************************************************/ void BootInit(void) @@ -63,11 +63,9 @@ void BootInit(void) } /*** end of BootInit ***/ -/**************************************************************************************** -** NAME: BootTask -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Task function of the bootloader core that drives the program. +/************************************************************************************//** +** \brief Task function of the bootloader core that drives the program. +** \return none ** ****************************************************************************************/ void BootTask(void) diff --git a/Target/Source/boot.h b/Target/Source/boot.h index b83b97b4..6df90cb6 100644 --- a/Target/Source/boot.h +++ b/Target/Source/boot.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader core module 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 Source\boot.h +* \brief Bootloader core module header file. +* \ingroup Core +* \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/Source/com.c b/Target/Source/com.c index 313ad5f5..c29a6560 100644 --- a/Target/Source/com.c +++ b/Target/Source/com.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader communication interface source file -| File Name: com.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 Source\com.c +* \brief Bootloader communication interface source file. +* \ingroup Core +* \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 ****************************************************************************************/ /**************************************************************************************** @@ -48,33 +50,38 @@ /**************************************************************************************** * Local data declarations ****************************************************************************************/ -/* This variable holds state information about the bootloader being started by a reset - * event or by an activation from a running user program. In the latter case, the COM - * interface should proceed after initialization as if it already received a connection - * request, which the running user program did before it activated the bootloader. It's - * volatile because some targets might call functions that access this variable from - * assembly, which might cause the C compiler to incorrectly remove this variable during - * an optimization step. - */ - -/* after a normal reset event, variable comEntryStateConnect must be set to BLT_FALSE - * right before function main() is called. After an entry from the user program, the - * variable must be set to BLT_TRUE right before function main() is called. There are - * typically two methods to correctly implement this functionality: +/** + * \brief This variable holds state information about the bootloader being started + * by a reset event or by an activation from a running user program. + * \details In case the bootloader is started from a running user progam, the COM + * interface should proceed after initialization as if it already received a + * connection request, which the running user program did before it activated + * the bootloader. It's volatile because some targets might call functions that + * access this variable from assembly, which might cause the C compiler to + * incorrectly remove this variable during an optimization step. + * + * After a normal reset event, variable comEntryStateConnect must be set to + * BLT_FALSE right before function main() is called. After an entry from the + * user program, the variable must be set to BLT_TRUE right before function + * main() is called. There are typically two methods to correctly implement + * this functionality: * - * (1) Initialize comEntryStateConnect to BLT_FALSE upon declaration. After a regular - * reset, the C-startup will then set it when initializing the .data and .bss - * sections. When the bootloader is re-entered from the user program, function - * ComSetConnectEntryState() must be called AFTER the .data and .bss sections - * are initialized, but BEFORE function main is called. - * (2) Don't give comEntryStateConnect an initialize value and add a compiler specific - * keyword that results in this variable being skipped during the .data and .bss - * section initialization. In this case function ComSetDisconnectEntryState() must - * be called before main() when starting from a regular reset. When re-entering from - * the user program, function ComSetConnectEntryState() must be called before main(). + * -# Initialize comEntryStateConnect to BLT_FALSE upon declaration. After a + * regular reset, the C-startup will then set it when initializing the + * .data and .bss sections. When the bootloader is re-entered from the user + * program, function ComSetConnectEntryState() must be called AFTER the + * .data and .bss sections are initialized, but BEFORE function main is + * called. + * -# Don't give comEntryStateConnect an initialize value and add a compiler + * specific keyword that results in this variable being skipped during the + * .data and .bss section initialization. In this case function + * ComSetDisconnectEntryState() must be called before main() when starting + * from a regular reset. When re-entering from the user program, function + * ComSetConnectEntryState() must be called before main(). * - * The compiler specific keyword for method 2 can be defined through preprocessor macro - * BOOT_CPU_CONNECT_STATE_PREFIX or BOOT_CPU_CONNECT_STATE_POSTFIX. + * The compiler specific keyword for method 2 can be defined through + * preprocessor macro BOOT_CPU_CONNECT_STATE_PREFIX or + * BOOT_CPU_CONNECT_STATE_POSTFIX. */ #if defined (BOOT_CPU_CONNECT_STATE_PREFIX) BOOT_CPU_CONNECT_STATE_PREFIX static volatile blt_bool comEntryStateConnect; @@ -85,12 +92,10 @@ static volatile blt_bool comEntryStateConnect = BLT_FALSE; #endif -/**************************************************************************************** -** NAME: ComInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the communication module including the hardware needed for -** the communication. +/************************************************************************************//** +** \brief Initializes the communication module including the hardware needed for +** the communication. +** \return none ** ****************************************************************************************/ void ComInit(void) @@ -119,12 +124,10 @@ void ComInit(void) } /*** end of ComInit ***/ -/**************************************************************************************** -** NAME: ComTask -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Updates the communication module by checking if new data was received -** and submitting the request to process newly received data. +/************************************************************************************//** +** \brief Updates the communication module by checking if new data was received +** and submitting the request to process newly received data. +** \return none ** ****************************************************************************************/ void ComTask(void) @@ -164,11 +167,9 @@ void ComTask(void) } /*** end of ComTask ***/ -/**************************************************************************************** -** NAME: ComFree -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Releases the communication module. +/************************************************************************************//** +** \brief Releases the communication module. +** \return none ** ****************************************************************************************/ void ComFree(void) @@ -180,23 +181,26 @@ void ComFree(void) } /*** end of ComFree ***/ -/**************************************************************************************** -** NAME: ComTransmitPacket -** PARAMETER: data pointer to the byte buffer with packet data. -** len number of data bytes that need to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits the packet using the xcp transport layer. +/************************************************************************************//** +** \brief Transmits the packet using the xcp transport layer. +** \param data Pointer to the byte buffer with packet data. +** \param len Number of data bytes that need to be transmitted. +** \return none ** ****************************************************************************************/ void ComTransmitPacket(blt_int8u *data, blt_int16u len) { #if (BOOT_COM_CAN_ENABLE > 0) - /* transmit the packet. note that len can only be 8 on CAN, so cast is okay */ + /* transmit the packet. note that len is limited to 8 in the plausibility check, + * so cast is okay. + */ CanTransmitPacket(data, (blt_int8u)len); #endif #if (BOOT_COM_UART_ENABLE > 0) - /* transmit the packet */ - UartTransmitPacket(data, len); + /* transmit the packet. note that len is limited to 255 in the plausibility check, + * so cast is okay. + */ + UartTransmitPacket(data, (blt_int8u)len); #endif #if (BOOT_COM_USB_ENABLE > 0) /* transmit the packet */ @@ -208,15 +212,13 @@ void ComTransmitPacket(blt_int8u *data, blt_int16u len) } /*** end of ComTransmitPacket ***/ -/**************************************************************************************** -** NAME: ComSetConnectEntryState -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: This function should be called by the function that is called to -** enter the bootloader from a running user program after the stack -** pointer, data section and bss section are initialized, but before -** function main is called. It stores state information that indicates -** that the COM module must be initialized in a connected state. +/************************************************************************************//** +** \brief This function should be called by the function that is called to +** enter the bootloader from a running user program after the stack +** pointer, data section and bss section are initialized, but before +** function main is called. It stores state information that indicates +** that the COM module must be initialized in a connected state. +** \return none ** ****************************************************************************************/ void ComSetConnectEntryState(void) @@ -225,14 +227,12 @@ void ComSetConnectEntryState(void) } /*** end of ComSetConnectEntryState ***/ -/**************************************************************************************** -** NAME: ComSetDisconnectEntryState -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: This function should be called by the reset handler after the stack -** pointer, data section and bss section are initialized, but before -** function main is called. It stores state information that indicates -** that the COM module must be initialized in a disconnected state. +/************************************************************************************//** +** \brief This function should be called by the reset handler after the stack +** pointer, data section and bss section are initialized, but before +** function main is called. It stores state information that indicates +** that the COM module must be initialized in a disconnected state. +** \return none ** ****************************************************************************************/ void ComSetDisconnectEntryState(void) @@ -241,12 +241,10 @@ void ComSetDisconnectEntryState(void) } /*** end of ComSetDisconnectEntryState ***/ -/**************************************************************************************** -** NAME: ComIsConnectEntryState -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is there is a pending connection request, BLT_FALSE otherwise -** DESCRIPTION: This function checks if there is a pending request for a connection -** upon COM module initialization. +/************************************************************************************//** +** \brief This function checks if there is a pending request for a connection +** upon COM module initialization. +** \return BLT_TRUE is there is a pending connection request, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool ComIsConnectEntryState(void) @@ -255,11 +253,9 @@ blt_bool ComIsConnectEntryState(void) } /*** end of ComIsConnectEntryState ***/ -/**************************************************************************************** -** NAME: ComIsConnected -** PARAMETER: none -** RETURN VALUE: BLT_TRUE when an XCP connection is established, BLT_FALSE otherwise. -** DESCRIPTION: This function obtains the XCP connection state. +/************************************************************************************//** +** \brief This function obtains the XCP connection state. +** \return BLT_TRUE when an XCP connection is established, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool ComIsConnected(void) @@ -268,15 +264,13 @@ blt_bool ComIsConnected(void) } /*** end of ComIsConnected ***/ #else -/**************************************************************************************** -** NAME: ComSetConnectEntryState -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: This function should be called by the function that is called to -** enter the bootloader from a running user program after the stack -** pointer, data section and bss section are initialized, but before -** function main is called. It stores state information that indicates -** that the COM module must be initialized in a connected state. +/************************************************************************************//** +** \brief This function should be called by the function that is called to +** enter the bootloader from a running user program after the stack +** pointer, data section and bss section are initialized, but before +** function main is called. It stores state information that indicates +** that the COM module must be initialized in a connected state. +** \return none ** ****************************************************************************************/ void ComSetConnectEntryState(void) @@ -288,14 +282,12 @@ void ComSetConnectEntryState(void) } /*** end of ComSetConnectEntryState ***/ -/**************************************************************************************** -** NAME: ComSetDisconnectEntryState -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: This function should be called by the reset handler after the stack -** pointer, data section and bss section are initialized, but before -** function main is called. It stores state information that indicates -** that the COM module must be initialized in a disconnected state. +/************************************************************************************//** +** \brief This function should be called by the reset handler after the stack +** pointer, data section and bss section are initialized, but before +** function main is called. It stores state information that indicates +** that the COM module must be initialized in a disconnected state. +** \return none ** ****************************************************************************************/ void ComSetDisconnectEntryState(void) diff --git a/Target/Source/com.h b/Target/Source/com.h index 42d036b5..e6e8ef6d 100644 --- a/Target/Source/com.h +++ b/Target/Source/com.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader communication interface header file -| File Name: com.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 Source\com.h +* \brief Bootloader communication interface header file. +* \ingroup Core +* \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 COM_H #define COM_H @@ -37,21 +39,25 @@ * Macro definitions ****************************************************************************************/ #if (BOOT_COM_CAN_ENABLE > 0) + /** \brief Defines the maximum number of bytes for transport transmission on CAN. */ #define BOOT_COM_TX_MAX_DATA (BOOT_COM_CAN_TX_MAX_DATA) + /** \brief Defines the maximum number of bytes for transport reception on CAN. */ #define BOOT_COM_RX_MAX_DATA (BOOT_COM_CAN_RX_MAX_DATA) #endif #if (BOOT_COM_UART_ENABLE > 0) + /** \brief Defines the maximum number of bytes for transport transmission on UART. */ #define BOOT_COM_TX_MAX_DATA (BOOT_COM_UART_TX_MAX_DATA) + /** \brief Defines the maximum number of bytes for transport reception on UART. */ #define BOOT_COM_RX_MAX_DATA (BOOT_COM_UART_RX_MAX_DATA) #endif #if (BOOT_COM_USB_ENABLE > 0) + /** \brief Defines the maximum number of bytes for transport transmission on USB. */ #define BOOT_COM_TX_MAX_DATA (BOOT_COM_USB_TX_MAX_DATA) + /** \brief Defines the maximum number of bytes for transport reception on USB. */ #define BOOT_COM_RX_MAX_DATA (BOOT_COM_USB_RX_MAX_DATA) #endif - - /**************************************************************************************** * Function prototypes ****************************************************************************************/ diff --git a/Target/Source/cop.c b/Target/Source/cop.c index f5c2904f..e9fac59b 100644 --- a/Target/Source/cop.c +++ b/Target/Source/cop.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader watchdog module source file -| File Name: cop.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 Source\cop.c +* \brief Bootloader watchdog module source file. +* \ingroup Core +* \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 @@ extern void CopServiceHook(void); #endif -/**************************************************************************************** -** NAME: CopInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Watchdog initialization function +/************************************************************************************//** +** \brief Watchdog initialization function. +** \return none ** ****************************************************************************************/ void CopInit(void) @@ -59,11 +59,9 @@ void CopInit(void) } /*** end of CopInit ***/ -/**************************************************************************************** -** NAME: CopService -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Watchdog service function to prevent the watchdog from timing out. +/************************************************************************************//** +** \brief Watchdog service function to prevent the watchdog from timing out. +** \return none ** ****************************************************************************************/ void CopService(void) diff --git a/Target/Source/cop.h b/Target/Source/cop.h index b70a8af4..f50fc251 100644 --- a/Target/Source/cop.h +++ b/Target/Source/cop.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader watchdog module header file -| File Name: cop.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 Source\cop.h +* \brief Bootloader watchdog module header file. +* \ingroup Core +* \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 COP_H #define COP_H diff --git a/Target/Source/core.dox b/Target/Source/core.dox new file mode 100644 index 00000000..894e6d9b --- /dev/null +++ b/Target/Source/core.dox @@ -0,0 +1,23 @@ +/** +\defgroup Core Bootloader Core +\brief Target independent code. +\details The bootloader core contains the main functionality of the bootloader, + independent of the microcontroller/compiler and independent of your + specific application. There in generally no need for you to make changes + here, unless you are adding new functionality such as the support for a + new communication interface or a different communication protocol. + + By default the XCP version 1.0 is used as the communication transport layer + for remote firmware updates, for example via UART or CAN. Its official name + is ASAM MCD-1 XCP V1.0.0 and it is a universal measurement and calibration + protocol that defines a bus-independent, master-slave communication protocol + to connect ECU's with calibration systems. More information can be found at + http://www.asam.net/. + + For local firmware updates, for example from a locally attached SD-card, + the FATFS file system is used as a target independent interface to access + files. More information can be found at + http://elm-chan.org/fsw/ff/00index_e.html +*/ + + diff --git a/Target/Source/file.c b/Target/Source/file.c index edb1c71a..0c4f7906 100644 --- a/Target/Source/file.c +++ b/Target/Source/file.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader file system interface source file -| File Name: file.c -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\file.c +* \brief Bootloader file system interface source file. +* \ingroup Core +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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,49 +43,57 @@ /**************************************************************************************** * Defines ****************************************************************************************/ -/* array size configurators */ +/** \brief Maximum number of characters that can be on a line in the firmware file. */ #define MAX_CHARS_PER_LINE (256) +/** \brief Maximum number of data bytes that can be on a line in the firmware file + * (S-record). + */ #define MAX_DATA_BYTES_PER_LINE (MAX_CHARS_PER_LINE/2) -/* error codes */ +/** \brief Return code in case an invalid checksum was detected on an S-record line. */ #define ERROR_SREC_INVALID_CHECKSUM (-1) /**************************************************************************************** * Type definitions ****************************************************************************************/ +/** \brief Enumeration for the different internal module states. */ typedef enum { - FIRMWARE_UPDATE_STATE_IDLE, /* idle state */ - FIRMWARE_UPDATE_STATE_STARTING, /* starting state */ - FIRMWARE_UPDATE_STATE_ERASING, /* erasing state */ - FIRMWARE_UPDATE_STATE_PROGRAMMING /* programming state */ -} tFirmwareUpdateState; /* state identifier type */ + FIRMWARE_UPDATE_STATE_IDLE, /**< idle state */ + FIRMWARE_UPDATE_STATE_STARTING, /**< starting state */ + FIRMWARE_UPDATE_STATE_ERASING, /**< erasing state */ + FIRMWARE_UPDATE_STATE_PROGRAMMING /**< programming state */ +} tFirmwareUpdateState; +/** \brief Enumeration for the different S-record line types. */ typedef enum { - LINE_TYPE_S1, /* 16-bit address line */ - LINE_TYPE_S2, /* 24-bit address line */ - LINE_TYPE_S3, /* 32-bit address line */ - LINE_TYPE_UNSUPPORTED /* unsupported line */ -} tSrecLineType; /* S-Record line type */ + LINE_TYPE_S1, /**< 16-bit address line */ + LINE_TYPE_S2, /**< 24-bit address line */ + LINE_TYPE_S3, /**< 32-bit address line */ + LINE_TYPE_UNSUPPORTED /**< unsupported line */ +} tSrecLineType; +/** \brief Structure type with information for the memory erase opeartion. */ typedef struct { - blt_addr start_address; /* erase start address */ - blt_int32u total_size; /* total number of bytes to erase */ -} tFileEraseInfo; /* erase info structure */ + blt_addr start_address; /**< erase start address */ + blt_int32u total_size; /**< total number of bytes to erase */ +} tFileEraseInfo; +/** \brief Structure type for grouping FATFS related objects used by this module. */ typedef struct { - FATFS fs; /* file system object for mouting */ - FIL file; /* file object for firmware file */ -} tFatFsObjects; /* grouped FATFS objects */ + FATFS fs; /**< file system object for mouting */ + FIL file; /**< file object for firmware file */ +} tFatFsObjects; +/** \brief Structure type for grouping the parsing results of an S-record line. */ typedef struct { - blt_char line[MAX_CHARS_PER_LINE]; /* string buffer for the line chars */ - blt_int8u data[MAX_DATA_BYTES_PER_LINE]; /* array for S1, S2 or S3 data bytes */ - blt_addr address; /* address found on S1, S2 or S3 line */ + blt_char line[MAX_CHARS_PER_LINE]; /**< string buffer for the line chars */ + blt_int8u data[MAX_DATA_BYTES_PER_LINE]; /**< array for S1, S2 or S3 data bytes*/ + blt_addr address; /**< address on S1, S2 or S3 line */ } tSrecLineParseObject; @@ -115,22 +125,25 @@ extern void FileFirmwareUpdateLogHook(blt_char *info_string); /**************************************************************************************** * Local data declarations ****************************************************************************************/ +/** \brief Local variable that holds the internal module state. */ static tFirmwareUpdateState firmwareUpdateState; +/** \brief Local variable for the used FATFS objects in this module. */ static tFatFsObjects fatFsObjects; +/** \brief Local variable for storing S-record line parsing results. */ static tSrecLineParseObject lineParseObject; +/** \brief Local variable for storing information regarding the memory erase operation.*/ static tFileEraseInfo eraseInfo; #if (BOOT_FILE_LOGGING_ENABLE > 0) +/** \brief Local character buffer for storing the string with log information. */ static blt_char loggingStr[64]; #endif -/**************************************************************************************** -** NAME: FileInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the file system interface module. The initial firmware -** update state is set to idle and the file system is mounted as -** logical disk 0. +/***********************************************************************************//** +** \brief Initializes the file system interface module. The initial firmware +** update state is set to idle and the file system is mounted as +** logical disk 0. +** \return none ** ****************************************************************************************/ void FileInit(void) @@ -146,12 +159,10 @@ void FileInit(void) } /*** end of FileInit ***/ -/**************************************************************************************** -** NAME: FileIsIdle -** PARAMETER: none -** RETURN VALUE: BLT_TRUE when in idle state, BLT_FALSE otherwise. -** DESCRIPTION: This function checks if a firmware update through the locally attached -** storage is in progress or not (idle). +/***********************************************************************************//** +** \brief This function checks if a firmware update through the locally attached +** storage is in progress or not (idle). +** \return BLT_TRUE when in idle state, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FileIsIdle(void) @@ -164,13 +175,11 @@ blt_bool FileIsIdle(void) } /*** end of FileIsIdle ***/ -/**************************************************************************************** -** NAME: FileHandleFirmwareUpdateRequest -** PARAMETER: none -** RETURN VALUE: BLT_TRUE when a firmware update is requested, BLT_FALSE otherwise. -** DESCRIPTION: This function checks if a firmware update through the locally attached -** storage is requested to be started and if so processes this request -** by transitioning from the IDLE to the STARTING state. +/***********************************************************************************//** +** \brief This function checks if a firmware update through the locally attached +** storage is requested to be started and if so processes this request +** by transitioning from the IDLE to the STARTING state. +** \return BLT_TRUE when a firmware update is requested, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool FileHandleFirmwareUpdateRequest(void) @@ -201,12 +210,10 @@ blt_bool FileHandleFirmwareUpdateRequest(void) } /*** end of FileHandleFirmwareUpdateRequest ***/ -/**************************************************************************************** -** NAME: FileTask -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: File system task function for managing the firmware updates from +/***********************************************************************************//** +** \brief File system task function for managing the firmware updates from ** locally attached storage. +** \return none. ** ****************************************************************************************/ void FileTask(void) @@ -492,11 +499,10 @@ void FileTask(void) } /*** end of FileTask ***/ -/**************************************************************************************** -** NAME: SrecGetLineType -** PARAMETER: line a line from the S-Record -** RETURN VALUE: the S-Record line type. -** DESCRIPTION: Inspects a line from a Motorola S-Record file to determine its type. +/************************************************************************************//** +** \brief Inspects a line from a Motorola S-Record file to determine its type. +** \param line A line from the S-Record. +** \return the S-Record line type. ** ****************************************************************************************/ static tSrecLineType SrecGetLineType(const blt_char *line) @@ -525,12 +531,11 @@ static tSrecLineType SrecGetLineType(const blt_char *line) } /*** end of SrecGetLineType ***/ -/**************************************************************************************** -** NAME: SrecVerifyChecksum -** PARAMETER: line an S1, S2 or S3 line from the S-Record -** RETURN VALUE: BLT_TRUE if the checksum is correct, BLT_FALSE otherwise. -** DESCRIPTION: Inspects an S1, S2 or S3 line from a Motorola S-Record file to -** determine if the checksum at the end is corrrect. +/************************************************************************************//** +** \brief Inspects an S1, S2 or S3 line from a Motorola S-Record file to +** determine if the checksum at the end is corrrect. +** \param line An S1, S2 or S3 line from the S-Record. +** \return BLT_TRUE if the checksum is correct, BLT_FALSE otherwise. ** ****************************************************************************************/ static blt_bool SrecVerifyChecksum(const blt_char *line) @@ -571,18 +576,17 @@ static blt_bool SrecVerifyChecksum(const blt_char *line) } /*** end of SrecVerifyChecksum ***/ -/**************************************************************************************** -** NAME: SrecParseLine -** PARAMETER: line a line from the S-Record -** address address found in the S-Record data line -** data byte array where the data bytes from the S-Record data line -** are stored. -** RETURN VALUE: the number of data bytes found on the S-record data line, 0 in case -** the line is not an S1, S2 or S3 line or ERROR_SREC_INVALID_CHECKSUM -** in case the checksum validation failed. -** DESCRIPTION: Parses a line from a Motorola S-Record file and looks for S1, S2 or S3 -** lines with data. Note that if a null pointer is passed as the data -** parameter, then no data is extracted from the line. +/************************************************************************************//** +** \brief Parses a line from a Motorola S-Record file and looks for S1, S2 or S3 +** lines with data. Note that if a null pointer is passed as the data +** parameter, then no data is extracted from the line. +** \param line A line from the S-Record. +** \param address Address found in the S-Record data line. +** \param data Byte array where the data bytes from the S-Record data line +** are stored. +** \return The number of data bytes found on the S-record data line, 0 in case +** the line is not an S1, S2 or S3 line or ERROR_SREC_INVALID_CHECKSUM +** in case the checksum validation failed. ** ****************************************************************************************/ static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int8u *data) @@ -704,13 +708,12 @@ static blt_int16s SrecParseLine(const blt_char *line, blt_addr *address, blt_int #if (BOOT_FILE_LOGGING_ENABLE > 0) -/**************************************************************************************** -** NAME: FileLibByteNibbleToChar -** PARAMETER: nibble 4-bit value to convert -** RETURN VALUE: The resulting byte value -** DESCRIPTION: Helper function to convert a 4-bit value to a character that repre- -** sents its value in hexadecimal format. -** Example: FileLibByteNibbleToChar(11) --> returns 'B'. +/************************************************************************************//** +** \brief Helper function to convert a 4-bit value to a character that represents its +** value in hexadecimal format. +** Example: FileLibByteNibbleToChar(11) --> returns 'B'. +** \param nibble 4-bit value to convert. +** \return The resulting byte value. ** ****************************************************************************************/ static blt_char FileLibByteNibbleToChar(blt_int8u nibble) @@ -732,14 +735,13 @@ static blt_char FileLibByteNibbleToChar(blt_int8u nibble) } /*** end of FileLibByteNibbleToChar ***/ -/**************************************************************************************** -** NAME: FileLibByteToHexString -** PARAMETER: byte_val 8-bit value to convert -** destination pointer to character buffer for storing the results. -** RETURN VALUE: The resulting string -** DESCRIPTION: Helper function to convert a byte value to a string representing the -** value in hexadecimal format. -** Example: FileLibByteToHexString(28, strBuffer) --> returns "1C". +/************************************************************************************//** +** \brief Helper function to convert a byte value to a string representing the +** value in hexadecimal format. +** Example: FileLibByteToHexString(28, strBuffer) --> returns "1C". +** \param byte_val 8-bit value to convert. +** \param destination Pointer to character buffer for storing the results. +** \return The resulting string. ** ****************************************************************************************/ static blt_char *FileLibByteToHexString(blt_int8u byte_val, blt_char *destination) @@ -755,14 +757,13 @@ static blt_char *FileLibByteToHexString(blt_int8u byte_val, blt_char *destinatio } /*** end of FileLibByteToHexString ***/ -/**************************************************************************************** -** NAME: FileLibLongToIntString -** PARAMETER: hexstring string beginning with 2 characters that represent a hexa- -** decimal value -** RETURN VALUE: The resulting string -** DESCRIPTION: Helper function to convert a 32-bit unsigned number to a string that -** represents its decimal value. -** Example: FileLibLongToIntString(1234, strBuffer) --> returns "1234". +/************************************************************************************//** +** \brief Helper function to convert a 32-bit unsigned number to a string that +** represents its decimal value. +** Example: FileLibLongToIntString(1234, strBuffer) --> returns "1234". +** \param long_val 32-bit value to convert. +** \param destination Pointer to character buffer for storing the results. +** \return The resulting string. ** ****************************************************************************************/ static blt_char *FileLibLongToIntString(blt_int32u long_val, blt_char *destination) @@ -796,14 +797,13 @@ static blt_char *FileLibLongToIntString(blt_int32u long_val, blt_char *destinati #endif /* (BOOT_FILE_LOGGING_ENABLE > 0) */ -/**************************************************************************************** -** NAME: FileLibHexStringToByte -** PARAMETER: hexstring string beginning with 2 characters that represent a hexa- -** decimal value -** RETURN VALUE: The resulting byte value -** DESCRIPTION: Helper function to convert a sequence of 2 characters that represent -** a hexadecimal value to the actual byte value. -** Example: FileLibHexStringToByte("2f") --> returns 47. +/************************************************************************************//** +** \brief Helper function to convert a sequence of 2 characters that represent +** a hexadecimal value to the actual byte value. +** Example: FileLibHexStringToByte("2f") --> returns 47. +** \param hexstring String beginning with 2 characters that represent a hexa- +** decimal value. +** \return The resulting byte value. ** ****************************************************************************************/ static blt_int8u FileLibHexStringToByte(const blt_char *hexstring) diff --git a/Target/Source/file.h b/Target/Source/file.h index 19995b65..1f5e8303 100644 --- a/Target/Source/file.h +++ b/Target/Source/file.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: bootloader file system interface header file -| File Name: file.h -| -|---------------------------------------------------------------------------------------- -| C O P Y R I G H T -|---------------------------------------------------------------------------------------- -| Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved -| -|---------------------------------------------------------------------------------------- -| L I C E N S E -|---------------------------------------------------------------------------------------- -| This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or -| modify it under the terms of the GNU General Public License as published by the Free -| Software Foundation, either version 3 of the License, or (at your option) any later -| version. -| -| OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; -| without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -| PURPOSE. See the GNU General Public License for more details. -| -| You should have received a copy of the GNU General Public License along with OpenBLT. -| If not, see . -| -| A special exception to the GPL is included to allow you to distribute a combined work -| that includes OpenBLT 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 Source\file.h +* \brief Bootloader file system interface header file. +* \ingroup Core +* \internal +*---------------------------------------------------------------------------------------- +* C O P Y R I G H T +*---------------------------------------------------------------------------------------- +* Copyright (c) 2013 by Feaser http://www.feaser.com All rights reserved +* +*---------------------------------------------------------------------------------------- +* L I C E N S E +*---------------------------------------------------------------------------------------- +* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or +* modify it under the terms of the GNU General Public License as published by the Free +* Software Foundation, either version 3 of the License, or (at your option) any later +* version. +* +* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +* PURPOSE. See the GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License along with OpenBLT. +* If not, see . +* +* A special exception to the GPL is included to allow you to distribute a combined work +* that includes OpenBLT 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 FILE_H #define FILE_H @@ -41,12 +43,19 @@ /**************************************************************************************** * Defines ****************************************************************************************/ +/** \brief Error code for not being able to open the firmware file. */ #define FILE_ERROR_CANNOT_OPEN_FIRMWARE_FILE (1) +/** \brief Error code for not being able to read from the firmware file. */ #define FILE_ERROR_CANNOT_READ_FROM_FILE (2) +/** \brief Error code because in incorrect checksum was found in the firmware file. */ #define FILE_ERROR_INVALID_CHECKSUM_IN_FILE (3) +/** \brief Error code because the file pointers read pointer could not be rewinded. */ #define FILE_ERROR_REWINDING_FILE_READ_POINTER (4) +/** \brief Error code because an error occurred during the memory erase operation. */ #define FILE_ERROR_CANNOT_ERASE_MEMORY (5) +/** \brief Error code because an error occurred during the memory write operation. */ #define FILE_ERROR_CANNOT_PROGRAM_MEMORY (6) +/** \brief Error code because the program's checksum could not be written to memory. */ #define FILE_ERROR_CANNOT_WRITE_CHECKSUM (7) diff --git a/Target/Source/plausibility.h b/Target/Source/plausibility.h index c6a02976..e375a712 100644 --- a/Target/Source/plausibility.h +++ b/Target/Source/plausibility.h @@ -1,32 +1,35 @@ -/**************************************************************************************** -| Description: bootloader plausibility check header file -| File Name: plausibility.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 Source\plausibility.h +* \brief Bootloader plausibility check header file, for checking the configuration +* at compile time. +* \ingroup Core +* \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 PLAUSIBILITY_H #define PLAUSIBILITY_H @@ -99,6 +102,10 @@ #error "BOOT_COM_CAN_TX_MAX_DATA must be > 0" #endif + #if (BOOT_COM_CAN_TX_MAX_DATA > 8) + #error "BOOT_COM_CAN_TX_MAX_DATA must be <= 8" + #endif + #ifndef BOOT_COM_CAN_RX_MSG_ID #error "BOOT_COM_CAN_RX_MSG_ID is missing in config.h" #endif @@ -115,6 +122,10 @@ #error "BOOT_COM_CAN_RX_MAX_DATA must be > 0" #endif + #if (BOOT_COM_CAN_RX_MAX_DATA > 8) + #error "BOOT_COM_CAN_RX_MAX_DATA must be <= 8" + #endif + #ifndef BOOT_COM_CAN_CHANNEL_INDEX #error "BOOT_COM_CAN_CHANNEL_INDEX is missing in config.h" #endif @@ -145,6 +156,10 @@ #error "BOOT_COM_UART_TX_MAX_DATA must be > 0" #endif + #if (BOOT_COM_UART_TX_MAX_DATA > 255) + #error "BOOT_COM_UART_TX_MAX_DATA must be <= 255" + #endif + #ifndef BOOT_COM_UART_RX_MAX_DATA #error "BOOT_COM_UART_RX_MAX_DATA is missing in config.h" #endif @@ -153,6 +168,10 @@ #error "BOOT_COM_UART_RX_MAX_DATA must be > 0" #endif + #if (BOOT_COM_UART_RX_MAX_DATA > 255) + #error "BOOT_COM_UART_RX_MAX_DATA must be <= 255" + #endif + #ifndef BOOT_COM_UART_CHANNEL_INDEX #error "BOOT_COM_UART_CHANNEL_INDEX is missing in config.h" #endif diff --git a/Target/Source/readme.dox b/Target/Source/readme.dox new file mode 100644 index 00000000..d3252bf1 --- /dev/null +++ b/Target/Source/readme.dox @@ -0,0 +1,49 @@ +/** +\mainpage OpenBLT Firmware Documentation +\details +\section into Introduction +This documentation covers the OpenBLT (Open source BootLoader Tool) firmware. With +OpenBLT you can make software updates through an on-chip communication interface +(UART, CAN, USB etc.), without the need of specialized debugger hardware. + +\section arch Software Architecture +The software program's architecture is divided into 4 major categories, namely the +application code (App), target independent code (Core), target dependent code +(Target), and compiler specific code (Comp). + +To configure and fine-tune the bootloader for integration in your product, all you have +to do is take the demo bootloader project for the microcontroller and compiler you are +using, and (optionally) modify just the application code (App) to fit your needs. This +typically involves changing the configuration header file (blt_conf.h) and the +implementation of the hook functions (hooks.c). + +\section copy Copyright and Licensing +\verbatim +---------------------------------------------------------------------------------------- + C O P Y R I G H T +---------------------------------------------------------------------------------------- + Copyright (c) by Feaser 2011-2013 http://www.feaser.com All rights reserved + +---------------------------------------------------------------------------------------- + L I C E N S E +---------------------------------------------------------------------------------------- + This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) any later + version. + + OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with OpenBLT. + If not, see . + + A special exception to the GPL is included to allow you to distribute a combined work + that includes OpenBLT without being obliged to provide the source code for any + proprietary components. The exception text is included at the bottom of the license + file . +---------------------------------------------------------------------------------------- +\endverbatim + +*/ diff --git a/Target/Source/xcp.c b/Target/Source/xcp.c index 64301fd0..24649515 100644 --- a/Target/Source/xcp.c +++ b/Target/Source/xcp.c @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: XCP 1.0 protocol core source file -| File Name: xcp.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 Source\xcp.c +* \brief XCP 1.0 protocol core source file. +* \ingroup Core +* \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,63 +41,94 @@ /**************************************************************************************** * Defines ****************************************************************************************/ -/* XCP protocol layer version number (16-bit) */ +/** \brief XCP protocol layer version number (16-bit). */ #define XCP_VERSION_PROTOCOL_LAYER (0x0100) -/* XCP transport layer version number (16-bit) */ +/** \brief XCP transport layer version number (16-bit). */ #define XCP_VERSION_TRANSPORT_LAYER (0x0100) /* XCP packet identifiers */ -#define XCP_PID_RES (0xff) /* command response packet */ -#define XCP_PID_ERR (0xfe) /* error packet */ +/** \brief Command response packet identifier. */ +#define XCP_PID_RES (0xff) +/** \brief Error packet identifier. */ +#define XCP_PID_ERR (0xfe) /* XCP error codes */ -#define XCP_ERR_CMD_SYNCH (0x00) /* cmd processor synchronization */ -#define XCP_ERR_CMD_BUSY (0x10) /* command was not executed */ -#define XCP_ERR_CMD_UNKNOWN (0x20) /* unknown or unsupported command*/ -#define XCP_ERR_OUT_OF_RANGE (0x22) /* parameter out of range */ -#define XCP_ERR_ACCESS_LOCKED (0x25) /* protected. seed/key required */ -#define XCP_ERR_PAGE_NOT_VALID (0x26) /* cal page not valid */ -#define XCP_ERR_SEQUENCE (0x29) /* sequence error */ -#define XCP_ERR_GENERIC (0x31) /* generic error */ +/** \brief Cmd processor synchronization error code. */ +#define XCP_ERR_CMD_SYNCH (0x00) +/** \brief Command was not executed error code. */ +#define XCP_ERR_CMD_BUSY (0x10) +/** \brief Unknown or unsupported command error code. */ +#define XCP_ERR_CMD_UNKNOWN (0x20) +/** \brief Parameter out of range error code. */ +#define XCP_ERR_OUT_OF_RANGE (0x22) +/** \brief Protected error code. Seed/key required. */ +#define XCP_ERR_ACCESS_LOCKED (0x25) +/** \brief Cal page not valid error code. */ +#define XCP_ERR_PAGE_NOT_VALID (0x26) +/** \brief Sequence error code. */ +#define XCP_ERR_SEQUENCE (0x29) +/** \brief Generic error code. */ +#define XCP_ERR_GENERIC (0x31) /* XCP command codes */ -#define XCP_CMD_CONNECT (0xff) /* CONNECT command code */ -#define XCP_CMD_DISCONNECT (0xfe) /* DISCONNECT command code */ -#define XCP_CMD_GET_STATUS (0xfd) /* GET_STATUS command code */ -#define XCP_CMD_SYNCH (0xfc) /* SYNCH command code */ -#define XCP_CMD_GET_ID (0xfa) /* GET_ID command code */ -#define XCP_CMD_GET_SEED (0xf8) /* GET_SEED command code */ -#define XCP_CMD_UNLOCK (0xf7) /* UNLOCK command code */ -#define XCP_CMD_SET_MTA (0xf6) /* SET_MTA command code */ -#define XCP_CMD_UPLOAD (0xf5) /* UPLOAD command code */ -#define XCP_CMD_SHORT_UPLOAD (0xf4) /* SHORT_UPLOAD command code */ -#define XCP_CMD_BUILD_CHECKSUM (0xf3) /* BUILD_CHECKSUM command code */ -#define XCP_CMD_DOWNLOAD (0xf0) /* DOWNLOAD command code */ -#define XCP_CMD_DOWLOAD_MAX (0xee) /* DOWNLOAD_MAX command code */ -#define XCP_CMD_SET_CAL_PAGE (0xeb) /* SET_CALPAGE command code */ -#define XCP_CMD_GET_CAL_PAGE (0xea) /* GET_CALPAGE command code */ -#define XCP_CMD_PROGRAM_START (0xd2) /* PROGRAM_START command code */ -#define XCP_CMD_PROGRAM_CLEAR (0xd1) /* PROGRAM_CLEAR command code */ -#define XCP_CMD_PROGRAM (0xd0) /* PROGRAM command code */ -#define XCP_CMD_PROGRAM_RESET (0xcf) /* PROGRAM_RESET command code */ -#define XCP_CMD_PROGRAM_PREPARE (0xcc) /* PROGRAM_PREPARE command code */ -#define XCP_CMD_PROGRAM_MAX (0xc9) /* PROGRAM_MAX command code */ +/** \brief CONNECT command code. */ +#define XCP_CMD_CONNECT (0xff) +/** \brief DISCONNECT command code. */ +#define XCP_CMD_DISCONNECT (0xfe) +/** \brief GET_STATUS command code. */ +#define XCP_CMD_GET_STATUS (0xfd) +/** \brief SYNCH command code. */ +#define XCP_CMD_SYNCH (0xfc) +/** \brief GET_ID command code. */ +#define XCP_CMD_GET_ID (0xfa) +/** \brief GET_SEED command code. */ +#define XCP_CMD_GET_SEED (0xf8) +/** \brief UNLOCK command code. */ +#define XCP_CMD_UNLOCK (0xf7) +/** \brief SET_MTA command code. */ +#define XCP_CMD_SET_MTA (0xf6) +/** \brief UPLOAD command code. */ +#define XCP_CMD_UPLOAD (0xf5) +/** \brief SHORT_UPLOAD command code. */ +#define XCP_CMD_SHORT_UPLOAD (0xf4) +/** \brief BUILD_CHECKSUM command code. */ +#define XCP_CMD_BUILD_CHECKSUM (0xf3) +/** \brief DOWNLOAD command code. */ +#define XCP_CMD_DOWNLOAD (0xf0) +/** \brief DOWNLOAD_MAX command code. */ +#define XCP_CMD_DOWLOAD_MAX (0xee) +/** \brief SET_CALPAGE command code. */ +#define XCP_CMD_SET_CAL_PAGE (0xeb) +/** \brief GET_CALPAGE command code. */ +#define XCP_CMD_GET_CAL_PAGE (0xea) +/** \brief PROGRAM_START command code. */ +#define XCP_CMD_PROGRAM_START (0xd2) +/** \brief PROGRAM_CLEAR command code. */ +#define XCP_CMD_PROGRAM_CLEAR (0xd1) +/** \brief PROGRAM command code. */ +#define XCP_CMD_PROGRAM (0xd0) +/** \brief PROGRAM_RESET command code. */ +#define XCP_CMD_PROGRAM_RESET (0xcf) +/** \brief PROGRAM_PREPARE command code. */ +#define XCP_CMD_PROGRAM_PREPARE (0xcc) +/** \brief PROGRAM_MAX command code. */ +#define XCP_CMD_PROGRAM_MAX (0xc9) /**************************************************************************************** * Type definitions ****************************************************************************************/ -/* XCP internal module information type */ +/** \brief Struture type for grouping XCP internal module information. */ typedef struct { - blt_int8u connected; /* connection established */ - blt_int8u protection; /* protection state */ - blt_int8u s_n_k_resource; /* for seed/key sequence */ - blt_int8u ctoData[XCP_CTO_PACKET_LEN]; /* cto packet data buffer */ - blt_int8u ctoPending; /* cto transmission pending flag */ - blt_int16s ctoLen; /* cto current packet length */ - blt_int32u mta; /* memory transfer address */ + blt_int8u connected; /**< connection established */ + blt_int8u protection; /**< protection state */ + blt_int8u s_n_k_resource; /**< for seed/key sequence */ + blt_int8u ctoData[XCP_CTO_PACKET_LEN]; /**< cto packet data buffer */ + blt_int8u ctoPending; /**< cto transmission pending flag */ + blt_int16s ctoLen; /**< cto current packet length */ + blt_int32u mta; /**< memory transfer address */ } tXcpInfo; @@ -162,21 +195,20 @@ blt_int8u AppCalGetPage(blt_int8u segment); /**************************************************************************************** * Local constants ****************************************************************************************/ -/* string buffer with station id */ +/** \brief String buffer with station id. */ static const blt_int8s xcpStationId[] = XCP_STATION_ID_STRING; /**************************************************************************************** * Local data definitions ****************************************************************************************/ -static tXcpInfo xcpInfo; /* XCP internal module info */ +/** \brief Local variable for storing XCP internal module info. */ +static tXcpInfo xcpInfo; -/**************************************************************************************** -** NAME: XcpInit -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Initializes the XCP driver. Should be called once upon system startup. +/************************************************************************************//** +** \brief Initializes the XCP driver. Should be called once upon system startup. +** \return none ** ****************************************************************************************/ void XcpInit(void) @@ -191,11 +223,9 @@ void XcpInit(void) } /*** end of XcpInit ***/ -/**************************************************************************************** -** NAME: XcpIsConnected -** PARAMETER: none -** RETURN VALUE: BLT_TRUE is an XCP connection is established, BLT_FALSE otherwise. -** DESCRIPTION: Obtains information about the XCP connection state. +/************************************************************************************//** +** \brief Obtains information about the XCP connection state. +** \return BLT_TRUE is an XCP connection is established, BLT_FALSE otherwise. ** ****************************************************************************************/ blt_bool XcpIsConnected(void) @@ -208,12 +238,10 @@ blt_bool XcpIsConnected(void) } /*** end of XcpIsConnected ***/ -/**************************************************************************************** -** NAME: XcpPacketTransmitted -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Informs the core that a pending packet transmission was completed by -** the transport layer. +/************************************************************************************//** +** \brief Informs the core that a pending packet transmission was completed by +** the transport layer. +** \return none ** ****************************************************************************************/ void XcpPacketTransmitted(void) @@ -223,12 +251,10 @@ void XcpPacketTransmitted(void) } /*** end of XcpPacketTransmitted ***/ -/**************************************************************************************** -** NAME: XcpPacketReceived -** PARAMETER: data pointer to byte buffer with packet data -** RETURN VALUE: none -** DESCRIPTION: Informs the core that a new packet was received by the transport -** layer. +/************************************************************************************//** +** \brief Informs the core that a new packet was received by the transport layer. +** \param data Pointer to byte buffer with packet data. +** \return none ** ****************************************************************************************/ void XcpPacketReceived(blt_int8u *data) @@ -338,12 +364,11 @@ void XcpPacketReceived(blt_int8u *data) } /*** end of XcpPacketReceived ***/ -/**************************************************************************************** -** NAME: XcpTransmitPacket -** PARAMETER: data pointer to the byte buffer with packet data. -** len number of data bytes that need to be transmitted. -** RETURN VALUE: none -** DESCRIPTION: Transmits the packet using the xcp transport layer. +/************************************************************************************//** +** \brief Transmits the packet using the xcp transport layer. +** \param data Pointer to the byte buffer with packet data. +** \param len Number of data bytes that need to be transmitted. +** \return none ** ****************************************************************************************/ static void XcpTransmitPacket(blt_int8u *data, blt_int16s len) @@ -353,14 +378,13 @@ static void XcpTransmitPacket(blt_int8u *data, blt_int16s len) } /*** end of XcpTransmitPacket ***/ -/**************************************************************************************** -** NAME: XcpComputeChecksum -** PARAMETER: address the start address of the memory region. -** length length of the memory region in bytes. -** checksum pointer to where the calculated checksum is to be stored. -** RETURN VALUE: none -** DESCRIPTION: Called by the BUILD_CHECKSUM command to perform a checksum calculation -** over the specified memory region. +/************************************************************************************//** +** \brief Called by the BUILD_CHECKSUM command to perform a checksum calculation +** over the specified memory region. +** \param address The start address of the memory region. +** \param length Length of the memory region in bytes. +** \param checksum Pointer to where the calculated checksum is to be stored. +** \return Checksum type that was used during the checksum calculation. ** ****************************************************************************************/ static blt_int8u XcpComputeChecksum(blt_int32u address, blt_int32u length, @@ -382,14 +406,13 @@ static blt_int8u XcpComputeChecksum(blt_int32u address, blt_int32u length, #if (XCP_SEED_KEY_PROTECTION_EN == 1) -/**************************************************************************************** -** NAME: XcpGetSeed -** PARAMETER: resource resource that the seed if requested for (XCP_RES_XXX). -** seed pointer to byte buffer wher the seed will be stored. -** RETURN VALUE: none -** DESCRIPTION: Provides a seed to the XCP master that will be used for the key -** generation when the master attempts to unlock the specified resource. -** Called by the GET_SEED command. +/************************************************************************************//** +** \brief Provides a seed to the XCP master that will be used for the key +** generation when the master attempts to unlock the specified resource. +** Called by the GET_SEED command. +** \param resource Resource that the seed if requested for (XCP_RES_XXX). +** \param seed Pointer to byte buffer wher the seed will be stored. +** \return Length of the seed in bytes. ** ****************************************************************************************/ static blt_int8u XcpGetSeed(blt_int8u resource, blt_int8u *seed) @@ -411,15 +434,14 @@ static blt_int8u XcpGetSeed(blt_int8u resource, blt_int8u *seed) } /*** end of XcpGetSeed ***/ -/**************************************************************************************** -** NAME: XcpVerifyKey -** PARAMETER: resource resource to unlock (XCP_RES_XXX). -** key pointer to the byte buffer holding the key. -** len length of the key in bytes. -** RETURN VALUE: none -** DESCRIPTION: Called by the UNLOCK command and checks if the key to unlock the -** specified resource was correct. If so, then the resource protection -** will be removed. +/************************************************************************************//** +** \brief Called by the UNLOCK command and checks if the key to unlock the +** specified resource was correct. If so, then the resource protection +** will be removed. +** \param resource resource to unlock (XCP_RES_XXX). +** \param key pointer to the byte buffer holding the key. +** \param len length of the key in bytes. +** \return 1 if the key was correct, 0 otherwise. ** ****************************************************************************************/ static blt_int8u XcpVerifyKey(blt_int8u resource, blt_int8u *key, blt_int8u len) @@ -452,11 +474,9 @@ static blt_int8u XcpVerifyKey(blt_int8u resource, blt_int8u *key, blt_int8u len) #endif /* XCP_SEED_KEY_PROTECTION_EN == 1 */ -/**************************************************************************************** -** NAME: XcpProtectResources -** PARAMETER: none -** RETURN VALUE: none -** DESCRIPTION: Utility function to protects all the available resources. +/************************************************************************************//** +** \brief Utility function to protects all the available resources. +** \return none ** ****************************************************************************************/ static void XcpProtectResources(void) @@ -487,11 +507,10 @@ static void XcpProtectResources(void) } /*** end of XcpProtectResources ***/ -/**************************************************************************************** -** NAME: XcpSetCtoError -** PARAMETER: error xcp error code (XCP_ERR_XXX) -** RETURN VALUE: none -** DESCRIPTION: Prepares the cto packet data for the specified error. +/************************************************************************************//** +** \brief Prepares the cto packet data for the specified error. +** \param error XCP error code (XCP_ERR_XXX). +** \return none ** ****************************************************************************************/ static void XcpSetCtoError(blt_int8u error) @@ -503,12 +522,11 @@ static void XcpSetCtoError(blt_int8u error) } /*** end of XcpSetCtoError ***/ -/**************************************************************************************** -** NAME: XcpCmdConnect -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the CONNECT command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the CONNECT command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdConnect(blt_int8u *data) @@ -588,12 +606,11 @@ static void XcpCmdConnect(blt_int8u *data) } /*** end of XcpCmdConnect ***/ -/**************************************************************************************** -** NAME: XcpCmdDisconnect -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the DISCONNECT command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the DISCONNECT command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdDisconnect(blt_int8u *data) @@ -615,12 +632,11 @@ static void XcpCmdDisconnect(blt_int8u *data) } /*** end of XcpCmdDisconnect ***/ -/**************************************************************************************** -** NAME: XcpCmdGetStatus -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the GET_STATUS command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the GET_STATUS command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdGetStatus(blt_int8u *data) @@ -647,12 +663,11 @@ static void XcpCmdGetStatus(blt_int8u *data) } /*** end of XcpCmdGetStatus ***/ -/**************************************************************************************** -** NAME: XcpCmdSynch -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the SYNCH command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the SYNCH command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdSynch(blt_int8u *data) @@ -665,12 +680,11 @@ static void XcpCmdSynch(blt_int8u *data) } /*** end of XcpCmdSynch ***/ -/**************************************************************************************** -** NAME: XcpCmdGetId -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the GET_ID command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the GET_ID command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdGetId(blt_int8u *data) @@ -699,12 +713,11 @@ static void XcpCmdGetId(blt_int8u *data) } /*** end of XcpCmdGetId ***/ -/**************************************************************************************** -** NAME: XcpCmdSetMta -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the SET_MTA command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the SET_MTA command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdSetMta(blt_int8u *data) @@ -720,12 +733,11 @@ static void XcpCmdSetMta(blt_int8u *data) } /*** end of XcpCmdSetMta ***/ -/**************************************************************************************** -** NAME: XcpCmdUpload -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the UPLOAD command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the UPLOAD command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdUpload(blt_int8u *data) @@ -752,12 +764,11 @@ static void XcpCmdUpload(blt_int8u *data) } /*** end of XcpCmdUpload ***/ -/**************************************************************************************** -** NAME: XcpCmdShortUpload -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the SHORT_UPLOAD command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the SHORT_UPLOAD command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdShortUpload(blt_int8u *data) @@ -787,12 +798,11 @@ static void XcpCmdShortUpload(blt_int8u *data) #if (XCP_RES_CALIBRATION_EN == 1) -/**************************************************************************************** -** NAME: XcpCmdDownload -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the DOWNLOAD command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the DOWNLOAD command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdDownload(blt_int8u *data) @@ -828,12 +838,11 @@ static void XcpCmdDownload(blt_int8u *data) } /*** end of XcpCmdDownload ***/ -/**************************************************************************************** -** NAME: XcpCmdDownloadMax -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the DOWNLOAD_MAX command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the DOWNLOAD_MAX command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdDownloadMax(blt_int8u *data) @@ -864,12 +873,11 @@ static void XcpCmdDownloadMax(blt_int8u *data) #endif /* XCP_RES_CALIBRATION_EN == 1 */ -/**************************************************************************************** -** NAME: XcpCmdBuildCheckSum -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the BUILD_CHECKSUM -** command as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the BUILD_CHECKSUM command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdBuildCheckSum(blt_int8u *data) @@ -891,12 +899,11 @@ static void XcpCmdBuildCheckSum(blt_int8u *data) #if (XCP_SEED_KEY_PROTECTION_EN == 1) -/**************************************************************************************** -** NAME: XcpCmdGetSeed -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the GET_SEED command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the GET_SEED command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdGetSeed(blt_int8u *data) @@ -967,12 +974,11 @@ static void XcpCmdGetSeed(blt_int8u *data) } /*** end of XcpCmdGetSeed ***/ -/**************************************************************************************** -** NAME: XcpCmdUnlock -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the UNLOCK command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the UNLOCK command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdUnlock(blt_int8u *data) @@ -1019,12 +1025,11 @@ static void XcpCmdUnlock(blt_int8u *data) #if (XCP_RES_PAGING_EN == 1) -/**************************************************************************************** -** NAME: XcpCmdSetCalPage -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the SET_CAL_PAGE command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the SET_CAL_PAGE command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdSetCalPage(blt_int8u *data) @@ -1055,12 +1060,11 @@ static void XcpCmdSetCalPage(blt_int8u *data) } /*** end of XcpCmdSetCalPage ***/ -/**************************************************************************************** -** NAME: XcpCmdGetCalPage -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the GET_CAL_PAGE command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the GET_CAL_PAGE command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdGetCalPage(blt_int8u *data) @@ -1092,12 +1096,11 @@ static void XcpCmdGetCalPage(blt_int8u *data) #if (XCP_RES_PROGRAMMING_EN == 1) -/**************************************************************************************** -** NAME: XcpCmdProgramStart -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM_START command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM_START command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgramStart(blt_int8u *data) @@ -1137,12 +1140,11 @@ static void XcpCmdProgramStart(blt_int8u *data) } /*** end of XcpCmdProgramStart ***/ -/**************************************************************************************** -** NAME: XcpCmdProgramMax -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM_MAX command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM_MAX command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgramMax(blt_int8u *data) @@ -1176,12 +1178,11 @@ static void XcpCmdProgramMax(blt_int8u *data) } /*** end of XcpCmdProgramMax ***/ -/**************************************************************************************** -** NAME: XcpCmdProgram -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM command as -** defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgram(blt_int8u *data) @@ -1234,12 +1235,11 @@ static void XcpCmdProgram(blt_int8u *data) } /*** end of XcpCmdProgram ***/ -/**************************************************************************************** -** NAME: XcpCmdProgramClear -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM_CLEAR command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM_CLEAR command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgramClear(blt_int8u *data) @@ -1270,12 +1270,11 @@ static void XcpCmdProgramClear(blt_int8u *data) } /*** end of XcpCmdProgramClear ***/ -/**************************************************************************************** -** NAME: XcpCmdProgramReset -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM_RESET command -** as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM_RESET command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgramReset(blt_int8u *data) @@ -1304,12 +1303,11 @@ static void XcpCmdProgramReset(blt_int8u *data) } /*** end of XcpCmdProgramReset ***/ -/**************************************************************************************** -** NAME: XcpCmdProgramPrepare -** PARAMETER: data pointer to a byte buffer with the packet data. -** RETURN VALUE: none -** DESCRIPTION: XCP command processor function which handles the PROGRAM_PREPARE -** command as defined by the protocol. +/************************************************************************************//** +** \brief XCP command processor function which handles the PROGRAM_PREPARE command as +** defined by the protocol. +** \param data Pointer to a byte buffer with the packet data. +** \return none ** ****************************************************************************************/ static void XcpCmdProgramPrepare(blt_int8u *data) diff --git a/Target/Source/xcp.h b/Target/Source/xcp.h index 96b5f8ed..78b81593 100644 --- a/Target/Source/xcp.h +++ b/Target/Source/xcp.h @@ -1,32 +1,34 @@ -/**************************************************************************************** -| Description: XCP 1.0 protocol core header file -| File Name: xcp.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 Source\xcp.h +* \brief XCP 1.0 protocol core header file. +* \ingroup Core +* \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 XCP_H #define XCP_H @@ -35,61 +37,59 @@ /**************************************************************************************** * Configuration ****************************************************************************************/ -/* Maximum length of the transport layer's command transmit object packet. - */ +/** \brief Maximum length of the transport layer's command transmit object packet. */ #define XCP_CTO_PACKET_LEN (BOOT_COM_RX_MAX_DATA) -/* Maximum length of the transport layer's data transmit object packet. - */ +/** \brief Maximum length of the transport layer's data transmit object packet. */ #define XCP_DTO_PACKET_LEN (BOOT_COM_TX_MAX_DATA) -/* Name in string format that is used to identify the ECU to the XCP master - * using the GET_ID command. +/** \brief Name in string format that is used to identify the ECU to the XCP master + * using the GET_ID command. */ #define XCP_STATION_ID_STRING "OpenBLT" -/* XCP byte ordering - */ #if (BOOT_CPU_BYTE_ORDER_MOTOROLA > 0) + /** \brief XCP byte ordering according to the Motorola (little-endian). */ #define XCP_MOTOROLA_FORMAT (0x01) #else + /** \brief XCP byte ordering according to the Intel (big-endian). */ #define XCP_MOTOROLA_FORMAT (0x00) #endif -/* Enable (=1) or disable (=0) support for the calibration resource. This is - * required when data is written to RAM during the XCP session. +/** \brief Enable (=1) or disable (=0) support for the calibration resource. This is + * required when data is written to RAM during the XCP session. */ #define XCP_RES_CALIBRATION_EN (0) -/* Enable (=1) or disable (=0) support for the paging resource. This is - * required when switching between application specific calibration pages - * should be supported. In this case the application specific external - * functions AppCalSetPage and AppCalGetPage must be provided. +/** \brief Enable (=1) or disable (=0) support for the paging resource. This is + * required when switching between application specific calibration pages + * should be supported. In this case the application specific external + * functions AppCalSetPage and AppCalGetPage must be provided. */ #define XCP_RES_PAGING_EN (0) -/* Enable (=1) or disable (=0) support for the programming resource. This is - * required when non-volatile memory will be erased or programmed during an - * XCP session. In this case the following external hardware specific - * functions must be provided: HwNvmWriteMemory, HwNvmEraseMemory and - * HwCpuReset. +/** \brief Enable (=1) or disable (=0) support for the programming resource. This is + * required when non-volatile memory will be erased or programmed during an + * XCP session. In this case the following external hardware specific + * functions must be provided: HwNvmWriteMemory, HwNvmEraseMemory and + * HwCpuReset. */ #define XCP_RES_PROGRAMMING_EN (1) -/* Enable (=1) or disable (=0) support for the data acquisition resource. This - * note that this feature is currently not supported by the XCP driver. +/** \brief Enable (=1) or disable (=0) support for the data acquisition resource. This + * note that this feature is currently not supported by the XCP driver. */ #define XCP_RES_DATA_ACQUISITION_EN (0) -/* Enable (=1) or disable (=0) support for the data stimulation resource. This - * note that this feature is currently not supported by the XCP driver. +/** \brief Enable (=1) or disable (=0) support for the data stimulation resource. This + * note that this feature is currently not supported by the XCP driver. */ #define XCP_RES_DATA_STIMULATION_EN (0) -/* Enable (=1) or disable (=0) support for the seed/key protection feature. - * If enabled, the XCP master has to perform a GET_SEED/UNLOCK sequence to - * obtain access to a resource. The protection algorithm is implemented in - * XcpGetSeed and XcpVerifyKey. +/** \brief Enable (=1) or disable (=0) support for the seed/key protection feature. + * If enabled, the XCP master has to perform a GET_SEED/UNLOCK sequence to + * obtain access to a resource. The protection algorithm is implemented in + * XcpGetSeed and XcpVerifyKey. */ #define XCP_SEED_KEY_PROTECTION_EN (0) @@ -98,22 +98,36 @@ * Defines ****************************************************************************************/ /* xcp supported resources */ -#define XCP_RES_PGM (0x10) /* ProGraMming */ -#define XCP_RES_STIM (0x08) /* data STIMulation */ -#define XCP_RES_DAQ (0x04) /* Data AcQuisition */ -#define XCP_RES_CALPAG (0x01) /* CALibration and PAGing */ +/** \brief ProGraMming resource. */ +#define XCP_RES_PGM (0x10) +/** \brief data STIMulation resource. */ +#define XCP_RES_STIM (0x08) +/** \brief Data AcQuisition resource. */ +#define XCP_RES_DAQ (0x04) +/** \brief CALibration and PAGing resource. */ +#define XCP_RES_CALPAG (0x01) /* xcp checksum types */ -#define XCP_CS_ADD11 (0x01) /* add byte into byte checksum */ -#define XCP_CS_ADD12 (0x02) /* add byte into word checksum */ -#define XCP_CS_ADD14 (0x03) /* add byte into dword checksum */ -#define XCP_CS_ADD22 (0x04) /* add word into word checksum */ -#define XCP_CS_ADD24 (0x05) /* add word into dword checksum */ -#define XCP_CS_ADD44 (0x06) /* add dword into dword checksum */ -#define XCP_CS_CRC16 (0x07) /* use 16-bit CRC algorithm */ -#define XCP_CS_CRC16CITT (0x08) /* use 16-bit CRC CITT algorithm */ -#define XCP_CS_CRC32 (0x09) /* use 32-bit CRC algorithm */ -#define XCP_CS_USER (0xff) /* use user defined algorithm */ +/** \brief Add byte into byte checksum. */ +#define XCP_CS_ADD11 (0x01) +/** \brief Add byte into word checksum. */ +#define XCP_CS_ADD12 (0x02) +/** \brief Add byte into dword checksum. */ +#define XCP_CS_ADD14 (0x03) +/** \brief Add word into word checksum. */ +#define XCP_CS_ADD22 (0x04) +/** \brief Add word into dword checksum. */ +#define XCP_CS_ADD24 (0x05) +/** \brief Add dword into dword checksum. */ +#define XCP_CS_ADD44 (0x06) +/** \brief Use 16-bit CRC algorithm. */ +#define XCP_CS_CRC16 (0x07) +/** \brief Use 16-bit CRC CITT algorithm. */ +#define XCP_CS_CRC16CITT (0x08) +/** \brief Use 32-bit CRC algorithm. */ +#define XCP_CS_CRC32 (0x09) +/** \brief Use user defined algorithm. */ +#define XCP_CS_USER (0xff) /****************************************************************************************