diff --git a/.cproject b/.cproject
index 6cae23d..7687970 100644
--- a/.cproject
+++ b/.cproject
@@ -54,6 +54,9 @@
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -146,8 +149,8 @@
-
-
+
+
@@ -157,8 +160,8 @@
-
-
+
+
diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs
new file mode 100644
index 0000000..153a46c
--- /dev/null
+++ b/.settings/org.eclipse.cdt.core.prefs
@@ -0,0 +1,162 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.cdt.core.formatter.alignment_for_assignment=16
+org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80
+org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.cdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34
+org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18
+org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0
+org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16
+org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48
+org.eclipse.cdt.core.formatter.alignment_for_expression_list=0
+org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.cdt.core.formatter.alignment_for_member_access=0
+org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16
+org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1
+org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.cdt.core.formatter.compact_else_if=true
+org.eclipse.cdt.core.formatter.continuation_indentation=2
+org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false
+org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0
+org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true
+org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false
+org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false
+org.eclipse.cdt.core.formatter.indent_empty_lines=false
+org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.cdt.core.formatter.indentation.size=4
+org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert
+org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.cdt.core.formatter.join_wrapped_lines=true
+org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.cdt.core.formatter.lineSplit=80
+org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.cdt.core.formatter.tabulation.char=tab
+org.eclipse.cdt.core.formatter.tabulation.size=4
+org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false
diff --git a/.settings/org.eclipse.cdt.ui.prefs b/.settings/org.eclipse.cdt.ui.prefs
new file mode 100644
index 0000000..e5d5fb9
--- /dev/null
+++ b/.settings/org.eclipse.cdt.ui.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+formatter_profile=org.eclipse.cdt.ui.default.allman_profile
+formatter_settings_version=1
diff --git a/APP/inc/UserModbusSlaver.h b/APP/inc/UserModbusSlaver.h
new file mode 100644
index 0000000..898ba46
--- /dev/null
+++ b/APP/inc/UserModbusSlaver.h
@@ -0,0 +1,34 @@
+#ifndef USER_MODBUS_SLAVER_H
+#define USER_MODBUS_SLAVER_H
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbport.h"
+/* ----------------------- Defines ------------------------------------------*/
+#define DISCRETE_INPUT_START 1
+#define DISCRETE_INPUT_NDISCRETES 16
+#define COIL_START 1
+#define COIL_NCOILS 64
+#define REG_INPUT_START 1
+#define REG_INPUT_NREGS 100
+#define REG_HOLDING_START 1
+#define REG_HOLDING_NREGS 100
+
+//===========================在保持寄存器中,各个地址对应的功能定义========================
+#define HD_RESERVE 0 //保留
+#define HD_CPU_USAGE_MAJOR 1 //当前CPU利用率的整数位
+#define HD_CPU_USAGE_MINOR 2 //当前CPU利用率的小数位
+
+//===========================在输入寄存器中,各个地址对应的功能定义========================
+#define IN_RESERVE 0 //保留
+
+//===========================在线圈中,各个地址对应的功能定义============================
+#define CO_RESERVE 2 //保留
+
+//===========================在离散输入中,各个地址对应的功能定义=========================
+#define DI_RESERVE 1 //保留
+
+/*--------------------------Extern Functions------------------------------------*/
+extern UCHAR xMBUtilGetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits );
+extern void xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits,UCHAR ucValue );
+
+#endif
diff --git a/APP/inc/app_task.h b/APP/inc/app_task.h
index fcf2503..634b2bc 100644
--- a/APP/inc/app_task.h
+++ b/APP/inc/app_task.h
@@ -12,6 +12,7 @@
#include "bsp.h"
#include "delay_conf.h"
#include "cpuusage.h"
+#include "UserModbusSlaver.h"
/*******************************************************************************************************/
// DEFINES
@@ -25,7 +26,10 @@
#define true 1
-
+extern uint16_t usDiscreteInputBuf[] ;
+extern uint16_t usCoilBuf[] ;
+extern uint16_t usRegInputBuf[] ;
+extern uint16_t usRegHoldingBuf[] ;
diff --git a/APP/inc/delay_conf.h b/APP/inc/delay_conf.h
index 1600a18..7ceb323 100644
--- a/APP/inc/delay_conf.h
+++ b/APP/inc/delay_conf.h
@@ -38,6 +38,7 @@
#define DELAY_SYS_RUN_LED DELAY_MS(500) //系统指示灯延时500ms
#define DELAY_SYS_SLEEP_LED DELAY_MS(1000) //系统指示灯延时1s
+#define DELAY_MB_SLAVER_POLL DELAY_MS(10) //Modbus从机轮训时间
#endif
diff --git a/APP/inc/stm32f10x_it.h b/APP/inc/stm32f10x_it.h
index 1a4a0fe..bcd1ca4 100644
--- a/APP/inc/stm32f10x_it.h
+++ b/APP/inc/stm32f10x_it.h
@@ -44,8 +44,6 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
-void USART1_IRQHandler(void);
-
#ifdef __cplusplus
}
diff --git a/APP/src/UserModbusSlaver.c b/APP/src/UserModbusSlaver.c
new file mode 100644
index 0000000..ff4adf3
--- /dev/null
+++ b/APP/src/UserModbusSlaver.c
@@ -0,0 +1,192 @@
+#include "UserModbusSlaver.h"
+/* ----------------------- Variables ---------------------------------*/
+USHORT usDiscreteInputStart = DISCRETE_INPUT_START;
+UCHAR usDiscreteInputBuf[DISCRETE_INPUT_NDISCRETES/8] ;
+USHORT usCoilStart = COIL_START;
+UCHAR usCoilBuf[COIL_NCOILS/8] ;
+USHORT usRegInputStart = REG_INPUT_START;
+USHORT usRegInputBuf[REG_INPUT_NREGS] ;
+USHORT usRegHoldingStart = REG_HOLDING_START;
+USHORT usRegHoldingBuf[REG_HOLDING_NREGS] ;
+
+//******************************输入寄存器回调函数**********************************
+//函数定义: eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs )
+//描 述:输入寄存器相关的功能(读、连续读)
+//入口参数:pucRegBuffer : 回调函数将Modbus寄存器的当前值写入的缓冲区
+// usAddress : 寄存器的起始地址,输入寄存器的地址范围是1-65535。
+// usNRegs : 寄存器数量
+//出口参数:eMBErrorCode : 这个函数将返回的错误码
+//备 注:Editor:Armink 2010-10-31 Company: BXXJS
+//**********************************************************************************
+eMBErrorCode
+eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ int iRegIndex;
+ if( ( usAddress >= REG_INPUT_START )
+ && ( usAddress + usNRegs <= REG_INPUT_START + REG_INPUT_NREGS ) )
+ {
+ iRegIndex = ( int )( usAddress - usRegInputStart );
+ while( usNRegs > 0 )
+ {
+ *pucRegBuffer++ = ( unsigned char )( usRegInputBuf[iRegIndex] >> 8 );
+ *pucRegBuffer++ = ( unsigned char )( usRegInputBuf[iRegIndex] & 0xFF );
+ iRegIndex++;
+ usNRegs--;
+ }
+ }
+ else
+ {
+ eStatus = MB_ENOREG;
+ }
+
+ return eStatus;
+}
+//******************************保持寄存器回调函数**********************************
+//函数定义: eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode )
+//描 述:保持寄存器相关的功能(读、连续读、写、连续写)
+//入口参数:pucRegBuffer : 如果需要更新用户寄存器数值,这个缓冲区必须指向新的寄存器数值。
+// 如果协议栈想知道当前的数值,回调函数必须将当前值写入这个缓冲区
+// usAddress : 寄存器的起始地址。
+// usNRegs : 寄存器数量
+// eMode : 如果该参数为eMBRegisterMode::MB_REG_WRITE,用户的应用数值将从pucRegBuffer中得到更新。
+// 如果该参数为eMBRegisterMode::MB_REG_READ,用户需要将当前的应用数据存储在pucRegBuffer中
+//出口参数:eMBErrorCode : 这个函数将返回的错误码
+//备 注:Editor:Armink 2010-10-31 Company: BXXJS
+//**********************************************************************************
+eMBErrorCode
+eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ int iRegIndex;
+ if( ( usAddress >= REG_HOLDING_START ) &&
+ ( usAddress + usNRegs <= REG_HOLDING_START + REG_HOLDING_NREGS ) )
+ {
+ iRegIndex = ( int )( usAddress - usRegHoldingStart );
+ switch ( eMode )
+ {
+ /* Pass current register values to the protocol stack. */
+ case MB_REG_READ:
+ while( usNRegs > 0 )
+ {
+ *pucRegBuffer++ = ( unsigned char )( usRegHoldingBuf[iRegIndex] >> 8 );
+ *pucRegBuffer++ = ( unsigned char )( usRegHoldingBuf[iRegIndex] & 0xFF );
+ iRegIndex++;
+ usNRegs--;
+ }
+ break;
+
+ /* Update current register values with new values from the
+ * protocol stack. */
+ case MB_REG_WRITE:
+ while( usNRegs > 0 )
+ {
+ usRegHoldingBuf[iRegIndex] = *pucRegBuffer++ << 8;
+ usRegHoldingBuf[iRegIndex] |= *pucRegBuffer++;
+ iRegIndex++;
+ usNRegs--;
+ }
+ break;
+ }
+ }
+ else
+ {
+ eStatus = MB_ENOREG;
+ }
+ return eStatus;
+}
+//****************************线圈状态寄存器回调函数********************************
+//函数定义: eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode )
+//描 述:线圈状态寄存器相关的功能(读、连续读、写、连续写)
+//入口参数:pucRegBuffer : 位组成一个字节,起始寄存器对应的位处于该字节pucRegBuffer的最低位LSB。
+// 如果回调函数要写这个缓冲区,没有用到的线圈(例如不是8个一组的线圈状态)对应的位的数值必须设置位0。
+// usAddress : 第一个线圈地址。
+// usNCoils : 请求的线圈个数
+// eMode ;如果该参数为eMBRegisterMode::MB_REG_WRITE,用户的应用数值将从pucRegBuffer中得到更新。
+// 如果该参数为eMBRegisterMode::MB_REG_READ,用户需要将当前的应用数据存储在pucRegBuffer中
+//出口参数:eMBErrorCode : 这个函数将返回的错误码
+//备 注:Editor:Armink 2010-10-31 Company: BXXJS
+//**********************************************************************************
+eMBErrorCode
+eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNCoils, eMBRegisterMode eMode )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ int iRegIndex , iRegBitIndex , iNReg;
+ iNReg = usNCoils / 8 + 1; //占用寄存器数量
+ if( ( usAddress >= COIL_START ) &&
+ ( usAddress + usNCoils <= COIL_START + COIL_NCOILS ) )
+ {
+ iRegIndex = ( int )( usAddress - usCoilStart ) / 8 ; //每个寄存器存8个
+ iRegBitIndex = ( int )( usAddress - usCoilStart ) % 8 ; //相对于寄存器内部的位地址
+ switch ( eMode )
+ {
+ /* Pass current coil values to the protocol stack. */
+ case MB_REG_READ:
+ while( iNReg > 0 )
+ {
+ *pucRegBuffer++ = xMBUtilGetBits(&usCoilBuf[iRegIndex++] , iRegBitIndex , 8);
+ iNReg --;
+ }
+ pucRegBuffer --;
+ usNCoils = usNCoils % 8; //余下的线圈数
+ *pucRegBuffer = *pucRegBuffer <<(8 - usNCoils); //高位补零
+ *pucRegBuffer = *pucRegBuffer >>(8 - usNCoils);
+ break;
+
+ /* Update current coil values with new values from the
+ * protocol stack. */
+ case MB_REG_WRITE:
+ while(iNReg > 1) //最后面余下来的数单独算
+ {
+ xMBUtilSetBits(&usCoilBuf[iRegIndex++] , iRegBitIndex , 8 , *pucRegBuffer++);
+ iNReg--;
+ }
+ usNCoils = usNCoils % 8; //余下的线圈数
+ xMBUtilSetBits(&usCoilBuf[iRegIndex++] , iRegBitIndex , usNCoils , *pucRegBuffer++);
+ break;
+ }
+ }
+ else
+ {
+ eStatus = MB_ENOREG;
+ }
+ return eStatus;
+}
+//****************************离散输入寄存器回调函数********************************
+//函数定义: eMBErrorCode eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNDiscrete )
+//描 述:离散输入寄存器相关的功能(读、连续读)
+//入口参数:pucRegBuffer : 用当前的线圈数据更新这个寄存器,起始寄存器对应的位处于该字节pucRegBuffer的最低位LSB。
+// 如果回调函数要写这个缓冲区,没有用到的线圈(例如不是8个一组的线圈状态)对应的位的数值必须设置为0。
+// usAddress : 离散输入的起始地址
+// usNDiscrete : 离散输入点数量
+//出口参数:eMBErrorCode : 这个函数将返回的错误码
+//备 注:Editor:Armink 2010-10-31 Company: BXXJS
+//**********************************************************************************
+eMBErrorCode
+eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress, USHORT usNDiscrete )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ int iRegIndex , iRegBitIndex , iNReg;
+ iNReg = usNDiscrete / 8 + 1; //占用寄存器数量
+ if( ( usAddress >= DISCRETE_INPUT_START )
+ && ( usAddress + usNDiscrete <= DISCRETE_INPUT_START + DISCRETE_INPUT_NDISCRETES ) )
+ {
+ iRegIndex = ( int )( usAddress - usDiscreteInputStart ) / 8 ; //每个寄存器存8个
+ iRegBitIndex = ( int )( usAddress - usDiscreteInputStart ) % 8 ; //相对于寄存器内部的位地址
+ while( iNReg > 0 )
+ {
+ *pucRegBuffer++ = xMBUtilGetBits(&usDiscreteInputBuf[iRegIndex++] , iRegBitIndex , 8);
+ iNReg --;
+ }
+ pucRegBuffer --;
+ usNDiscrete = usNDiscrete % 8; //余下的线圈数
+ *pucRegBuffer = *pucRegBuffer <<(8 - usNDiscrete); //高位补零
+ *pucRegBuffer = *pucRegBuffer >>(8 - usNDiscrete);
+ }
+ else
+ {
+ eStatus = MB_ENOREG;
+ }
+
+ return eStatus;
+}
diff --git a/APP/src/app_task.c b/APP/src/app_task.c
index cec67b9..a77195e 100644
--- a/APP/src/app_task.c
+++ b/APP/src/app_task.c
@@ -1,131 +1,151 @@
-#include "app_task.h"
-
-#ifdef __CC_ARM
- extern int Image$$RW_IRAM1$$ZI$$Limit;
-#elif __ICCARM__
-#pragma section="HEAP"
-#else
- extern int __bss_end;
-#endif
-
-uint8_t CpuUsageMajor , CpuUsageMinor;//CPU使用率
+#include "app_task.h"
-
-//====================操作系统各线程优先级==================================
-#define thread_SysMonitor_Prio 3
-
+#ifdef __CC_ARM
+extern int Image$$RW_IRAM1$$ZI$$Limit;
+#elif __ICCARM__
+#pragma section="HEAP"
+#else
+extern int __bss_end;
+#endif
+
+uint8_t CpuUsageMajor, CpuUsageMinor; //CPU使用率
+
+//====================操作系统各线程优先级==================================
+#define thread_SysMonitor_Prio 11
+#define thread_ModbusSlaverPoll_Prio 10
ALIGN(RT_ALIGN_SIZE)
-//====================操作系统各线程堆栈====================================
-static rt_uint8_t thread_SysMonitor_stack[512];
-
-struct rt_thread thread_SysMonitor;
-
-//***************************系统监控线程***************************
-//函数定义: void thread_entry_SysRunLed(void* parameter)
-//入口参数:无
-//出口参数:无
-//备 注:Editor:Liuqiuhu 2013-1-30 Company: BXXJS
-//******************************************************************
-void thread_entry_SysMonitor(void* parameter)
+//====================操作系统各线程堆栈====================================
+static rt_uint8_t thread_SysMonitor_stack[256];
+static rt_uint8_t thread_ModbusSlaverPoll_stack[512];
+
+struct rt_thread thread_SysMonitor;
+struct rt_thread thread_ModbusSlaverPoll;
+
+//***************************系统监控线程***************************
+//函数定义: void thread_entry_SysRunLed(void* parameter)
+//入口参数:无
+//出口参数:无
+//备 注:Editor:Liuqiuhu 2013-1-30 Company: BXXJS
+//******************************************************************
+void thread_entry_SysMonitor(void* parameter)
{
- while(1)
- {
- cpu_usage_get(&CpuUsageMajor , &CpuUsageMinor);
- LED_LED1_ON;
- LED_LED2_ON;
- rt_thread_delay(DELAY_SYS_RUN_LED);
- LED_LED1_OFF;
- LED_LED2_OFF;
- rt_thread_delay(DELAY_SYS_RUN_LED);
- IWDG_Feed();//喂狗
- }
-}
-
-
-//**********************系统初始化函数********************************
-//函数定义: int rt_application_init(void)
-//入口参数:无
-//出口参数:无
-//备 注:Editor:Liuqiuhu 2013-1-31 Company: BXXJS
-//********************************************************************
-int rt_application_init(void)
-{
- rt_thread_init(&thread_SysMonitor,
- "SysMonitor",
- thread_entry_SysMonitor,
- RT_NULL,
- thread_SysMonitor_stack,
- sizeof(thread_SysMonitor_stack),
- thread_SysMonitor_Prio,20);
- rt_thread_startup(&thread_SysMonitor);
-
-
- return 0;
-}
-
-
-//**************************初始化RT-Thread函数*************************************
-//函数定义: void rtthread_startup(void)
-//入口参数:无
-//出口参数:无
-//备 注:Editor:Armink 2011-04-04 Company: BXXJS
-//**********************************************************************************
-void rtthread_startup(void)
-{
- /* init board */
- rt_hw_board_init();
-
- /* show version */
- rt_show_version();
-
- /* init tick */
- rt_system_tick_init();
-
- /* init kernel object */
- rt_system_object_init();
-
- /* init timer system */
- rt_system_timer_init();
-
-#ifdef RT_USING_HEAP
- #ifdef __CC_ARM
- rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)STM32_SRAM_END);
- #elif __ICCARM__
- rt_system_heap_init(__segment_end("HEAP"), (void*)STM32_SRAM_END);
- #else
- /* init memory system */
- rt_system_heap_init((void*)&__bss_end, (void*)STM32_SRAM_END);
- #endif
-#endif
-
- /* init scheduler system */
- rt_system_scheduler_init();
-
- /* init all device */
- rt_device_init_all();
-
- /* init application */
- rt_application_init();
-
-#ifdef RT_USING_FINSH
- /* init finsh */
- finsh_system_init();
- finsh_set_device("uart1");
-#endif
-
- /* init timer thread */
- rt_system_timer_thread_init();
-
- /* init idle thread */
- rt_thread_idle_init();
-
- /* Add CPU usage to system */
- cpu_usage_init();
-
- /* start scheduler */
- rt_system_scheduler_start();
-
- /* never reach here */
- return ;
-}
-
+ while (1)
+ {
+ cpu_usage_get(&CpuUsageMajor, &CpuUsageMinor);
+ usRegHoldingBuf[HD_CPU_USAGE_MAJOR] = CpuUsageMajor;
+ usRegHoldingBuf[HD_CPU_USAGE_MINOR] = CpuUsageMinor;
+ LED_LED1_ON;
+ LED_LED2_ON;
+ rt_thread_delay(DELAY_SYS_RUN_LED);
+ LED_LED1_OFF;
+ LED_LED2_OFF;
+ rt_thread_delay(DELAY_SYS_RUN_LED);
+ IWDG_Feed(); //喂狗
+ }
+}
+
+//*************************** Modbus从机线程***************************
+//函数定义: void thread_entry_ModbusSlaverPoll(void* parameter)
+//入口参数:无
+//出口参数:无
+//备 注:Editor:Armink 2013-08-02 Company: BXXJS
+//******************************************************************
+void thread_entry_ModbusSlaverPoll(void* parameter)
+{
+ eMBInit(MB_RTU, 0x01, 1, 115200, MB_PAR_NONE);
+ eMBEnable();
+ while (1)
+ {
+ eMBPoll();
+ rt_thread_delay(DELAY_MB_SLAVER_POLL);
+ }
+}
+
+//**********************系统初始化函数********************************
+//函数定义: int rt_application_init(void)
+//入口参数:无
+//出口参数:无
+//备 注:Editor:Liuqiuhu 2013-1-31 Company: BXXJS
+//********************************************************************
+int rt_application_init(void)
+{
+ rt_thread_init(&thread_SysMonitor, "SysMonitor", thread_entry_SysMonitor,
+ RT_NULL, thread_SysMonitor_stack, sizeof(thread_SysMonitor_stack),
+ thread_SysMonitor_Prio, 5);
+ rt_thread_startup(&thread_SysMonitor);
+
+ rt_thread_init(&thread_ModbusSlaverPoll, "MBSlaverPoll",
+ thread_entry_ModbusSlaverPoll, RT_NULL,
+ thread_ModbusSlaverPoll_stack,
+ sizeof(thread_ModbusSlaverPoll_stack), thread_ModbusSlaverPoll_Prio,
+ 5);
+ rt_thread_startup(&thread_ModbusSlaverPoll);
+
+ return 0;
+}
+
+//**************************初始化RT-Thread函数*************************************
+//函数定义: void rtthread_startup(void)
+//入口参数:无
+//出口参数:无
+//备 注:Editor:Armink 2011-04-04 Company: BXXJS
+//**********************************************************************************
+void rtthread_startup(void)
+{
+ /* init board */
+ rt_hw_board_init();
+
+ /* show version */
+ rt_show_version();
+
+ /* init tick */
+ rt_system_tick_init();
+
+ /* init kernel object */
+ rt_system_object_init();
+
+ /* init timer system */
+ rt_system_timer_init();
+
+#ifdef RT_USING_HEAP
+#ifdef __CC_ARM
+ rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)STM32_SRAM_END);
+#elif __ICCARM__
+ rt_system_heap_init(__segment_end("HEAP"), (void*)STM32_SRAM_END);
+#else
+ /* init memory system */
+ rt_system_heap_init((void*)&__bss_end, (void*)STM32_SRAM_END);
+#endif
+#endif
+
+ /* init scheduler system */
+ rt_system_scheduler_init();
+
+ /* init all device */
+ rt_device_init_all();
+
+ /* init application */
+ rt_application_init();
+
+#ifdef RT_USING_FINSH
+ /* init finsh */
+ finsh_system_init();
+ finsh_set_device("uart1");
+#endif
+
+ /* init timer thread */
+ rt_system_timer_thread_init();
+
+ /* init idle thread */
+ rt_thread_idle_init();
+
+ /* Add CPU usage to system */
+ cpu_usage_init();
+
+ /* start scheduler */
+ rt_system_scheduler_start();
+
+ /* never reach here */
+ return;
+}
+
diff --git a/APP/src/stm32f10x_it.c b/APP/src/stm32f10x_it.c
index e46d1cd..e0f9e5d 100644
--- a/APP/src/stm32f10x_it.c
+++ b/APP/src/stm32f10x_it.c
@@ -120,27 +120,6 @@ void DebugMon_Handler(void)
rt_hw_timer_handler();
}
-/*******************************************************************************
-* Function Name : USART1_IRQHandler
-* Description : This function handles USART1 global interrupt request.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-void USART1_IRQHandler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) != RESET)
- {
- USART_ClearITPendingBit(USART1,USART_IT_RXNE);
- }
-
- rt_interrupt_leave();
-}
-
-
/******************************************************************************/
/* STM32F10x Peripherals Interrupt Handlers */
/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
diff --git a/BSP/src/bsp.c b/BSP/src/bsp.c
index 604b988..9557c22 100644
--- a/BSP/src/bsp.c
+++ b/BSP/src/bsp.c
@@ -1,320 +1,295 @@
-/*
-*********************************************************************************************************
-*
-* BOARD SUPPORT PACKAGE
-*
-* ST Microelectronics STM32
-* with the
-* STM3210B-EVAL Evaluation Board
-*
-* Filename : bsp.c
-* Version : V1.00
-* Programmer(s) : STM32F103X RT-Thread 0.3.1 USB-CDC
-*********************************************************************************************************
-*/
-
-/*
-*********************************************************************************************************
-* INCLUDE FILES
-*********************************************************************************************************
-*/
-#define BSP_MODULE
-
-#include
-#include
-#include
-/*
-*********************************************************************************************************
-* LOCAL TABLES
-*********************************************************************************************************
-*/
-
-
-/*
-*********************************************************************************************************
-* LOCAL GLOBAL VARIABLES
-*********************************************************************************************************
-*/
-
-/*
-*********************************************************************************************************
-* LOCAL FUNCTION PROTOTYPES
-*********************************************************************************************************
-*/
-
-/** This function will initial STM32 board**/
-void rt_hw_board_init()
-{
- BSP_Init();
-}
-
-/*******************************************************************************
-* Function Name : RCC_Configuration
-* Description : Configures the RCC.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-static void RCC_Configuration(void)
-{
- //下面是给各模块开启时钟
- //启动GPIO
+/*
+*********************************************************************************************************
+*
+* BOARD SUPPORT PACKAGE
+*
+* ST Microelectronics STM32
+* with the
+* STM3210B-EVAL Evaluation Board
+*
+* Filename : bsp.c
+* Version : V1.00
+* Programmer(s) : STM32F103X RT-Thread 0.3.1 USB-CDC
+*********************************************************************************************************
+*/
+
+/*
+*********************************************************************************************************
+* INCLUDE FILES
+*********************************************************************************************************
+*/
+#define BSP_MODULE
+
+#include
+#include
+#include
+#include "UserModbusSlaver.h"
+/*
+*********************************************************************************************************
+* LOCAL TABLES
+*********************************************************************************************************
+*/
+
+
+/*
+*********************************************************************************************************
+* LOCAL GLOBAL VARIABLES
+*********************************************************************************************************
+*/
+
+/*
+*********************************************************************************************************
+* LOCAL FUNCTION PROTOTYPES
+*********************************************************************************************************
+*/
+
+/** This function will initial STM32 board**/
+void rt_hw_board_init()
+{
+ BSP_Init();
+}
+
+/*******************************************************************************
+* Function Name : RCC_Configuration
+* Description : Configures the RCC.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+static void RCC_Configuration(void)
+{
+ //下面是给各模块开启时钟
+ //启动GPIO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | \
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | \
RCC_APB2Periph_GPIOE ,
- ENABLE);
- //启动AFIO
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
- //配置ADC转换时钟
- RCC_ADCCLKConfig(RCC_PCLK2_Div8); //9M
- //启动USART1 USART4
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
- //启动DMA时钟
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA时钟
- /* Enable ADC1 and GPIOC clock */
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
-}
-
-/*******************************************************************************
-* Function Name : NVIC_Configuration
-* Description : Configer NVIC
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-static void NVIC_Configuration(void)
-{
- NVIC_InitTypeDef NVIC_InitStructure;
-
-#ifdef VECT_TAB_RAM
- // Set the Vector Table base location at 0x20000000
- NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
-#else // VECT_TAB_FLASH
- // Set the Vector Table base location at 0x08000000
- NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
-#endif
-
- //设置NVIC优先级分组为Group2:0-3抢占式优先级,0-3的响应式优先级
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- //串口1接收中断打开
- NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
-}
-/*******************************************************************************
-* Function Name : GPIO_Configuration
-* Description : Configures the different GPIO ports.
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-static void GPIO_Configuration(void)
-{
- GPIO_InitTypeDef GPIO_InitStructure;
-
- /***************数字输出IO初始化*********************/
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12; //蜂鸣器 LED1 LED2
+ ENABLE);
+ //启动AFIO
+ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
+ //配置ADC转换时钟
+ RCC_ADCCLKConfig(RCC_PCLK2_Div8); //9M
+ //启动USART1 USART4
+ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
+ //启动DMA时钟
+ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA时钟
+ /* Enable ADC1 and GPIOC clock */
+ RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
+}
+
+/*******************************************************************************
+* Function Name : NVIC_Configuration
+* Description : Configer NVIC
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+static void NVIC_Configuration(void)
+{
+ NVIC_InitTypeDef NVIC_InitStructure;
+
+#ifdef VECT_TAB_RAM
+ // Set the Vector Table base location at 0x20000000
+ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
+#else // VECT_TAB_FLASH
+ // Set the Vector Table base location at 0x08000000
+ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
+#endif
+
+
+}
+/*******************************************************************************
+* Function Name : GPIO_Configuration
+* Description : Configures the different GPIO ports.
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+static void GPIO_Configuration(void)
+{
+ GPIO_InitTypeDef GPIO_InitStructure;
+
+ /***************数字输出IO初始化*********************/
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
+ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
+
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12; //继电器1 LED1 LED2
GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //蜂鸣器
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_14 | GPIO_Pin_15; //蜂鸣器 继电器3 继电器2
GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- /*************数字输入IO初始化*********************/
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
+
+ /*************数字输入IO初始化*********************/
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_6;
- GPIO_Init(GPIOG, &GPIO_InitStructure);
-
-
- /****************USART1初始化************************/
- //USART1_TX
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
-
- //USART1_RX
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
-}
-
-
-
-
-/*******************************************************************************
-* Function Name : USART1_Configuration
-* Description : NUSART1设置
-* Input : None
-* Output : None
-* Return : None
-*******************************************************************************/
-static void USART1_Configuration(void)
-{
- USART_InitTypeDef USART_InitStructure;
-
- USART_InitStructure.USART_BaudRate = 115200;
- USART_InitStructure.USART_WordLength = USART_WordLength_8b;
- USART_InitStructure.USART_StopBits = USART_StopBits_1;
- USART_InitStructure.USART_Parity = USART_Parity_No;
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
- USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
- USART_Init(USART1, &USART_InitStructure);
-
- USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//使能串口1的接收中断
-
- USART_Cmd(USART1, ENABLE);
-}
-
-
-//*******************初始化独立看门狗*************************************
-//函数定义: void IWDG_Configuration(void)
-//描 述:初始化独立看门狗
-//入口参数:无
-//出口参数:无
-//备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值 2S超时
-//Editor:liuqh 2013-1-16 Company: BXXJS
-//*******************************************************************
-static void IWDG_Configuration(void)
-{
- IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能对IWDG->PR和IWDG->RLR的写
- IWDG_SetPrescaler(IWDG_Prescaler_64);//64分频
- IWDG_SetReload(1300);
- IWDG_ReloadCounter();
- IWDG_Enable();
-}
-//*******************喂独立看门狗*************************************
-//函数定义: void IWDG_Feed(void)
-//描 述:初始化独立看门狗
-//入口参数:无
-//出口参数:prer:分频数:0~7(只有低3位有效!),rlr:重装载寄存器值:低11位有效.
-//备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值
-//Editor:liuqh 2013-1-16 Company: BXXJS
-//*******************************************************************
-
-void IWDG_Feed(void)
-{
- IWDG_ReloadCounter();//reload
-}
-
-
-/*******************************************************************************
- * Function Name : SysTick_Configuration
- * Description : Configures the SysTick for OS tick.
- * Input : None
- * Output : None
- * Return : None
- *******************************************************************************/
-void SysTick_Configuration(void)
-{
- RCC_ClocksTypeDef rcc_clocks;
- rt_uint32_t cnts;
-
- RCC_GetClocksFreq(&rcc_clocks);
-
- cnts = (rt_uint32_t)rcc_clocks.HCLK_Frequency / RT_TICK_PER_SECOND;
-
- SysTick_Config(cnts);
- SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
-}
-/**
- * This is the timer interrupt service routine.
- *
- */
-void rt_hw_timer_handler(void)
-{
- /* enter interrupt */
- rt_interrupt_enter();
-
- rt_tick_increase();
-
- /* leave interrupt */
- rt_interrupt_leave();
-}
-
-/*
-*********************************************************************************************************
-* LOCAL CONFIGURATION ERRORS
-*********************************************************************************************************
-*/
-
-
-/*
-*********************************************************************************************************
-* BSP_Init()
-*
-* Description : Initialize the Board Support Package (BSP).
-*
-* Argument(s) : none.
-*
-* Return(s) : none.
-*
-* Caller(s) : Application.
-*
-* Note(s) : (1) This function SHOULD be called before any other BSP function is called.
-*********************************************************************************************************
-*/
-
-void BSP_Init (void)
-{
- RCC_Configuration();
- NVIC_Configuration();
- SysTick_Configuration();
- GPIO_Configuration();
- USART1_Configuration();
-// IWDG_Configuration();
-}
-//****************************防超时程序********************************
-//函数定义: uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)())
-//描 述:在TimeOfTimeout时间内,每Period时间检测一次DetectCondition()返回的值是否有效
-//入口参数:TimeOfTimeout:防超时总时间(单位:systick)
-// Period :每Period时间检测一次,即时间因子(单位:systick)
-// (*DetectCondition)():检测条件,等于ConditionValue则条件满足,检测结束,否则延时Period时间继续检测
-// ConditionValue ;条件成立的值
-//出口参数:0:在TimeOfTimeout时间内,检测到条件成立
-// 1:在TimeOfTimeout时间内,没有检测到条件成立
-//备 注:Editor:Armink 2012-03-09 Company: BXXJS
-//**********************************************************************
-uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)(),uint8_t ConditionValue)
-{
- uint32_t LastTimeLocal, CurTimeLocal;
- uint8_t ConditionValueLocal;
- LastTimeLocal = rt_tick_get();
- CurTimeLocal = LastTimeLocal;
- while(CurTimeLocal - LastTimeLocal < TimeOfTimeout)
- {
- CurTimeLocal = rt_tick_get();
- ConditionValueLocal = DetectCondition();
- if (ConditionValueLocal == ConditionValue) return 0;
- rt_thread_delay(Period);
- }
- return 1;
-}
-
-
-//************************************延时函数**************************************
-//函数定义: void Delay(vu32 nCount)
-//入口参数:nCount :延时函数中,循环的次数
-//出口参数:无
-//备 注:Editor:Armink 2011-03-18 Company: BXXJS
-//**********************************************************************************
-void Delay(vu32 nCount)
-{
- for(; nCount!= 0;nCount--);
-}
-
+
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_6;
+ GPIO_Init(GPIOG, &GPIO_InitStructure);
+
+
+
+}
+
+
+
+
+/*******************************************************************************
+* Function Name : USART1_Configuration
+* Description : NUSART1设置
+* Input : None
+* Output : None
+* Return : None
+*******************************************************************************/
+static void USART1_Configuration(void)
+{
+ USART_InitTypeDef USART_InitStructure;
+
+ USART_InitStructure.USART_BaudRate = 115200;
+ USART_InitStructure.USART_WordLength = USART_WordLength_8b;
+ USART_InitStructure.USART_StopBits = USART_StopBits_1;
+ USART_InitStructure.USART_Parity = USART_Parity_No;
+ USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
+ USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;
+ USART_Init(USART1, &USART_InitStructure);
+
+ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//使能串口1的接收中断
+
+ USART_Cmd(USART1, ENABLE);
+}
+
+
+//*******************初始化独立看门狗*************************************
+//函数定义: void IWDG_Configuration(void)
+//描 述:初始化独立看门狗
+//入口参数:无
+//出口参数:无
+//备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值 2S超时
+//Editor:liuqh 2013-1-16 Company: BXXJS
+//*******************************************************************
+static void IWDG_Configuration(void)
+{
+ IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//使能对IWDG->PR和IWDG->RLR的写
+ IWDG_SetPrescaler(IWDG_Prescaler_64);//64分频
+ IWDG_SetReload(1300);
+ IWDG_ReloadCounter();
+ IWDG_Enable();
+}
+//*******************喂独立看门狗*************************************
+//函数定义: void IWDG_Feed(void)
+//描 述:初始化独立看门狗
+//入口参数:无
+//出口参数:prer:分频数:0~7(只有低3位有效!),rlr:重装载寄存器值:低11位有效.
+//备 注:分频因子=4*2^prer.但最大值只能是256!时间计算(大概):Tout=40K/((4*2^prer)*rlr)值
+//Editor:liuqh 2013-1-16 Company: BXXJS
+//*******************************************************************
+
+void IWDG_Feed(void)
+{
+ IWDG_ReloadCounter();//reload
+}
+
+
+/*******************************************************************************
+ * Function Name : SysTick_Configuration
+ * Description : Configures the SysTick for OS tick.
+ * Input : None
+ * Output : None
+ * Return : None
+ *******************************************************************************/
+void SysTick_Configuration(void)
+{
+ RCC_ClocksTypeDef rcc_clocks;
+ rt_uint32_t cnts;
+
+ RCC_GetClocksFreq(&rcc_clocks);
+
+ cnts = (rt_uint32_t)rcc_clocks.HCLK_Frequency / RT_TICK_PER_SECOND;
+
+ SysTick_Config(cnts);
+ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
+}
+/**
+ * This is the timer interrupt service routine.
+ *
+ */
+void rt_hw_timer_handler(void)
+{
+ /* enter interrupt */
+ rt_interrupt_enter();
+
+ rt_tick_increase();
+
+ /* leave interrupt */
+ rt_interrupt_leave();
+}
+
+/*
+*********************************************************************************************************
+* LOCAL CONFIGURATION ERRORS
+*********************************************************************************************************
+*/
+
+
+/*
+*********************************************************************************************************
+* BSP_Init()
+*
+* Description : Initialize the Board Support Package (BSP).
+*
+* Argument(s) : none.
+*
+* Return(s) : none.
+*
+* Caller(s) : Application.
+*
+* Note(s) : (1) This function SHOULD be called before any other BSP function is called.
+*********************************************************************************************************
+*/
+
+void BSP_Init (void)
+{
+ RCC_Configuration();
+ NVIC_Configuration();
+ SysTick_Configuration();
+ GPIO_Configuration();
+// TODO 方便调试,暂时注释看门狗,正式发布时需要打开
+// IWDG_Configuration();
+}
+//****************************防超时程序********************************
+//函数定义: uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)())
+//描 述:在TimeOfTimeout时间内,每Period时间检测一次DetectCondition()返回的值是否有效
+//入口参数:TimeOfTimeout:防超时总时间(单位:systick)
+// Period :每Period时间检测一次,即时间因子(单位:systick)
+// (*DetectCondition)():检测条件,等于ConditionValue则条件满足,检测结束,否则延时Period时间继续检测
+// ConditionValue ;条件成立的值
+//出口参数:0:在TimeOfTimeout时间内,检测到条件成立
+// 1:在TimeOfTimeout时间内,没有检测到条件成立
+//备 注:Editor:Armink 2012-03-09 Company: BXXJS
+//**********************************************************************
+uint8_t AvoidTimeout(uint32_t TimeOfTimeout,uint32_t Period,uint8_t (*DetectCondition)(),uint8_t ConditionValue)
+{
+ uint32_t LastTimeLocal, CurTimeLocal;
+ uint8_t ConditionValueLocal;
+ LastTimeLocal = rt_tick_get();
+ CurTimeLocal = LastTimeLocal;
+ while(CurTimeLocal - LastTimeLocal < TimeOfTimeout)
+ {
+ CurTimeLocal = rt_tick_get();
+ ConditionValueLocal = DetectCondition();
+ if (ConditionValueLocal == ConditionValue) return 0;
+ rt_thread_delay(Period);
+ }
+ return 1;
+}
+
+
+//************************************延时函数**************************************
+//函数定义: void Delay(vu32 nCount)
+//入口参数:nCount :延时函数中,循环的次数
+//出口参数:无
+//备 注:Editor:Armink 2011-03-18 Company: BXXJS
+//**********************************************************************************
+void Delay(vu32 nCount)
+{
+ for(; nCount!= 0;nCount--);
+}
+
diff --git a/EWARM/FreeModbus_Slaver&Master+RTT+STM32.dep b/EWARM/FreeModbus_Slaver&Master+RTT+STM32.dep
index e18295f..59261ea 100644
--- a/EWARM/FreeModbus_Slaver&Master+RTT+STM32.dep
+++ b/EWARM/FreeModbus_Slaver&Master+RTT+STM32.dep
@@ -2,20 +2,39 @@
2
- 2754068163
+ 554293620
Debug
$PROJ_DIR$\..\APP\inc\stm32f10x_conf.h
$PROJ_DIR$\..\APP\src\app.c
$PROJ_DIR$\..\APP\src\app_task.c
+ $PROJ_DIR$\..\RT-Thread-0.3.2\include\rtthread.h
$PROJ_DIR$\..\APP\src\cpuusage.c
$PROJ_DIR$\..\APP\src\stm32f10x_it.c
- $PROJ_DIR$\..\BSP\src\bsp.c
+ $PROJ_DIR$\..\APP\src\UserModbusSlaver.c
+ $PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\common\backtrace.c
$PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\context_iar.S
+ $PROJ_DIR$\..\BSP\src\bsp.c
$PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\cpuport.c
- $PROJ_DIR$\..\RT-Thread-1.1.1\src\clock.c
+ $PROJ_DIR$\..\FreeModbus\modbus\mb.c
+ $PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\common\showmem.c
$PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbcrc.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfunccoils.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncdiag.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncdisc.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncholding.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncother.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncinput.c
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbrtu.c
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbutils.c
+ $PROJ_DIR$\..\FreeModbus\port\port.c
+ $PROJ_DIR$\..\FreeModbus\port\port.h
+ $PROJ_DIR$\..\FreeModbus\port\portevent.c
+ $PROJ_DIR$\..\FreeModbus\port\portserial.c
+ $PROJ_DIR$\..\FreeModbus\port\porttimer.c
+ $PROJ_DIR$\..\RT-Thread-1.1.1\src\clock.c
$PROJ_DIR$\..\RT-Thread-1.1.1\src\device.c
$PROJ_DIR$\..\RT-Thread-1.1.1\src\idle.c
$PROJ_DIR$\..\RT-Thread-1.1.1\src\ipc.c
@@ -31,102 +50,13 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\thread.c
$PROJ_DIR$\..\RT-Thread-1.1.1\src\timer.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\misc.c
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_md.s
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
- $PROJ_DIR$\Debug\Obj\stm32f10x_adc.pbi
- $PROJ_DIR$\Debug\Obj\misc.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_wwdg.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_usart.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_tim.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_spi.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_sdio.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_rtc.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_rcc.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_pwr.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_dbgmcu.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_flash.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_exti.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_dma.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_dac.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_can.o
- $PROJ_DIR$\Debug\Obj\scheduler.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_crc.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_cec.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_adc.o
- $PROJ_DIR$\Debug\Obj\misc.o
- $PROJ_DIR$\Debug\Obj\timer.pbi
- $PROJ_DIR$\Debug\Obj\thread.pbi
- $PROJ_DIR$\Debug\Obj\slab.pbi
- $PROJ_DIR$\Debug\Obj\scheduler.pbi
- $PROJ_DIR$\Debug\Obj\module.pbi
- $PROJ_DIR$\Debug\Obj\module.o
- $PROJ_DIR$\Debug\Obj\object.pbi
- $PROJ_DIR$\Debug\Obj\mempool.pbi
- $PROJ_DIR$\Debug\Obj\mem.pbi
- $PROJ_DIR$\Debug\Obj\kservice.pbi
- $PROJ_DIR$\Debug\Obj\irq.pbi
- $PROJ_DIR$\Debug\Obj\ipc.pbi
- $PROJ_DIR$\Debug\Obj\idle.pbi
- $PROJ_DIR$\Debug\Obj\device.pbi
- $PROJ_DIR$\Debug\Obj\clock.pbi
- $PROJ_DIR$\Debug\Obj\timer.o
- $PROJ_DIR$\Debug\Obj\thread.o
- $PROJ_DIR$\Debug\Obj\slab.o
- $PROJ_DIR$\Debug\Obj\object.o
- $PROJ_DIR$\Debug\Obj\kservice.o
- $PROJ_DIR$\Debug\Obj\mem.o
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h
- $PROJ_DIR$\Debug\Obj\app.o
- $PROJ_DIR$\Debug\Obj\app_task.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_it.o
- $PROJ_DIR$\Debug\Obj\app.pbi
- $PROJ_DIR$\Debug\Obj\app_task.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_it.pbi
- $PROJ_DIR$\Debug\Obj\bsp.o
- $PROJ_DIR$\Debug\Obj\bsp.pbi
- $PROJ_DIR$\Debug\Obj\context_iar.o
- $TOOLKIT_DIR$\inc\c\DLib_Product.h
- $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
- $TOOLKIT_DIR$\inc\c\xencoding_limits.h
- $PROJ_DIR$\Debug\Obj\irq.o
- $PROJ_DIR$\Debug\Obj\ipc.o
- $TOOLKIT_DIR$\inc\c\DLib_Threads.h
- $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
- $PROJ_DIR$\..\APP\inc\app_task.h
- $PROJ_DIR$\Debug\Obj\system_stm32f10x.pbi
- $PROJ_DIR$\Debug\Obj\system_stm32f10x.o
- $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h
- $PROJ_DIR$\Debug\Obj\idle.o
- $PROJ_DIR$\Debug\Obj\device.o
- $PROJ_DIR$\Debug\Obj\clock.o
- $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h
- $TOOLKIT_DIR$\inc\c\yvals.h
- $TOOLKIT_DIR$\inc\c\ycheck.h
- $TOOLKIT_DIR$\inc\c\stdint.h
- $TOOLKIT_DIR$\inc\c\stdio.h
- $PROJ_DIR$\Debug\Obj\cpuusage.pbi
- $PROJ_DIR$\..\APP\inc\delay_conf.h
- $TOOLKIT_DIR$\inc\c\ystdio.h
- $PROJ_DIR$\..\APP\inc\cpuusage.h
- $PROJ_DIR$\Debug\Obj\cpuusage.o
- $PROJ_DIR$\Debug\Obj\cpuport.pbi
- $PROJ_DIR$\Debug\Obj\cpuport.o
- $PROJ_DIR$\Debug\Obj\memheap.o
- $PROJ_DIR$\Debug\Obj\FreeModbus_Slaver&Master+RTT+STM32.pbd
- $PROJ_DIR$\Debug\Obj\memheap.pbi
- $PROJ_DIR$\Debug\Exe\FreeModbus_Slaver&Master+RTT+STM32.out
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtservice.h
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtm.h
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtdef.h
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtthread.h
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rthw.h
- $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtdebug.h
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
@@ -143,47 +73,94 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h
- $TOOLKIT_DIR$\inc\c\stdarg.h
- $PROJ_DIR$\..\BSP\inc\bsp.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h
- $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cmInstr.h
- $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cm3.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h
- $TOOLKIT_DIR$\inc\c\intrinsics.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h
- $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cmFunc.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h
- $TOOLKIT_DIR$\inc\c\cmsis_iar.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h
- $TOOLKIT_DIR$\inc\c\stdlib.h
- $TOOLKIT_DIR$\inc\c\ysizet.h
- $PROJ_DIR$\Debug\Obj\stm32f10x_pwr.pbi
- $PROJ_DIR$\..\APP\inc\rtconfig.h
- $PROJ_DIR$\Debug\Obj\stm32f10x_flash.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_rcc.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_wwdg.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_usart.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_spi.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_sdio.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_rtc.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_bkp.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_exti.pbi
- $PROJ_DIR$\Debug\Obj\stm32f10x_dma.pbi
- $PROJ_DIR$\Debug\Obj\mempool.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o
- $PROJ_DIR$\Debug\Obj\stm32f10x_dbgmcu.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_cec.o
+ $PROJ_DIR$\Debug\Obj\module.o
+ $PROJ_DIR$\Debug\Obj\scheduler.o
+ $PROJ_DIR$\Debug\Obj\kservice.pbi
+ $PROJ_DIR$\Debug\Obj\module.pbi
+ $PROJ_DIR$\Debug\Obj\mempool.pbi
+ $PROJ_DIR$\Debug\Obj\mem.pbi
+ $PROJ_DIR$\Debug\Obj\object.pbi
+ $PROJ_DIR$\Debug\Obj\slab.pbi
+ $PROJ_DIR$\Debug\Obj\scheduler.pbi
+ $PROJ_DIR$\Debug\Obj\timer.pbi
+ $PROJ_DIR$\Debug\Obj\thread.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_adc.o
+ $PROJ_DIR$\Debug\Obj\misc.o
+ $PROJ_DIR$\Debug\Obj\irq.pbi
+ $PROJ_DIR$\Debug\Obj\idle.pbi
+ $PROJ_DIR$\Debug\Obj\ipc.pbi
+ $PROJ_DIR$\Debug\Obj\device.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_crc.o
+ $PROJ_DIR$\Debug\Obj\clock.pbi
+ $PROJ_DIR$\Debug\Obj\timer.o
+ $PROJ_DIR$\Debug\Obj\thread.o
+ $PROJ_DIR$\Debug\Obj\slab.o
+ $PROJ_DIR$\Debug\Obj\object.o
+ $PROJ_DIR$\Debug\Obj\mem.o
+ $PROJ_DIR$\Debug\Obj\kservice.o
+ $PROJ_DIR$\Debug\Obj\device.o
+ $PROJ_DIR$\Debug\Obj\clock.o
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h
+ $PROJ_DIR$\Debug\Obj\idle.o
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h
+ $PROJ_DIR$\Debug\Obj\bsp.pbi
+ $PROJ_DIR$\Debug\Obj\app.pbi
+ $PROJ_DIR$\Debug\Obj\system_stm32f10x.o
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h
+ $PROJ_DIR$\Debug\Obj\app.o
+ $PROJ_DIR$\Debug\Obj\context_iar.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_it.o
+ $PROJ_DIR$\Debug\Obj\app_task.o
+ $TOOLKIT_DIR$\inc\c\xencoding_limits.h
+ $TOOLKIT_DIR$\inc\c\DLib_Defaults.h
+ $PROJ_DIR$\..\APP\inc\app_task.h
+ $TOOLKIT_DIR$\inc\c\DLib_Product.h
+ $PROJ_DIR$\Debug\Obj\irq.o
+ $PROJ_DIR$\Debug\Obj\ipc.o
+ $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h
+ $TOOLKIT_DIR$\inc\c\DLib_Threads.h
+ $PROJ_DIR$\Debug\Obj\app_task.pbi
+ $PROJ_DIR$\Debug\Obj\system_stm32f10x.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_it.pbi
+ $PROJ_DIR$\Debug\Obj\bsp.o
$PROJ_DIR$\Debug\Obj\stm32f10x_dac.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dbgmcu.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_sdio.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.o
+ $PROJ_DIR$\Debug\Obj\mempool.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dma.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_exti.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_bkp.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_i2c.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_fsmc.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_rtc.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_spi.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_tim.pbi
+ $PROJ_DIR$\..\APP\inc\UserModbusSlaver.h
+ $PROJ_DIR$\Debug\Obj\stm32f10x_rtc.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_rcc.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_sdio.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_wwdg.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_gpio.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_adc.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dbgmcu.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_flash.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_exti.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dma.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_dac.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_can.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_tim.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_pwr.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_usart.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_iwdg.o
+ $PROJ_DIR$\Debug\Obj\stm32f10x_spi.o
+ $PROJ_DIR$\Debug\Obj\misc.pbi
$PROJ_DIR$\Debug\Obj\stm32f10x_crc.pbi
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h
$PROJ_DIR$\Debug\Obj\stm32f10x_cec.pbi
$PROJ_DIR$\Debug\Obj\stm32f10x_can.pbi
$PROJ_DIR$\Debug\Obj\stm32f10x_bkp.pbi
@@ -194,38 +171,130 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h
+ $TOOLKIT_DIR$\inc\c\intrinsics.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cmInstr.h
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cmFunc.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include\core_cm3.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h
+ $TOOLKIT_DIR$\inc\c\stdlib.h
+ $TOOLKIT_DIR$\inc\c\cmsis_iar.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h
+ $TOOLKIT_DIR$\inc\c\ysizet.h
+ $PROJ_DIR$\Debug\Obj\stm32f10x_pwr.pbi
+ $PROJ_DIR$\..\APP\inc\rtconfig.h
+ $PROJ_DIR$\Debug\Obj\stm32f10x_flash.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_wwdg.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_rcc.pbi
+ $PROJ_DIR$\Debug\Obj\stm32f10x_usart.pbi
+ $TOOLKIT_DIR$\inc\c\stdio.h
+ $TOOLKIT_DIR$\inc\c\yvals.h
+ $TOOLKIT_DIR$\inc\c\ystdio.h
+ $PROJ_DIR$\Debug\Obj\cpuusage.pbi
+ $PROJ_DIR$\Debug\Obj\cpuusage.o
+ $PROJ_DIR$\..\APP\inc\cpuusage.h
+ $PROJ_DIR$\..\APP\inc\delay_conf.h
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtdebug.h
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rthw.h
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtservice.h
+ $PROJ_DIR$\Debug\Obj\cpuport.o
+ $PROJ_DIR$\Debug\Exe\FreeModbus_Slaver&Master+RTT+STM32.out
+ $PROJ_DIR$\Debug\Obj\memheap.o
+ $PROJ_DIR$\Debug\Obj\memheap.pbi
+ $PROJ_DIR$\Debug\Obj\cpuport.pbi
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h
+ $PROJ_DIR$\Debug\Obj\FreeModbus_Slaver&Master+RTT+STM32.pbd
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtm.h
+ $PROJ_DIR$\..\BSP\inc\bsp.h
+ $TOOLKIT_DIR$\inc\c\ycheck.h
+ $TOOLKIT_DIR$\inc\c\stdarg.h
+ $TOOLKIT_DIR$\inc\c\stdint.h
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtdef.h
+ $PROJ_DIR$\..\RT-Thread-1.1.1\include\rtthread.h
+ $PROJ_DIR$\Debug\Obj\showmem.o
+ $PROJ_DIR$\Debug\Obj\showmem.pbi
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_cec.h
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h
+ $PROJ_DIR$\Debug\Obj\backtrace.o
+ $PROJ_DIR$\Debug\Obj\backtrace.pbi
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h
+ $PROJ_DIR$\..\APP\inc\stm32f10x_it.h
+ $PROJ_DIR$\Debug\Obj\UserModbusSlaver.pbi
+ $PROJ_DIR$\Debug\Obj\UserModbusSlaver.o
+ $PROJ_DIR$\Debug\Obj\mbfuncdiag.pbi
+ $PROJ_DIR$\Debug\Obj\mbfunccoils.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncinput.o
+ $PROJ_DIR$\Debug\Obj\mbfuncother.o
+ $PROJ_DIR$\Debug\Obj\mbutils.o
+ $PROJ_DIR$\Debug\Obj\mbfuncdiag.o
+ $PROJ_DIR$\Debug\Obj\startup_stm32f10x_md.o
+ $PROJ_DIR$\Debug\Obj\mbfunccoils.o
+ $PROJ_DIR$\Debug\Obj\mbfuncdisc.o
+ $PROJ_DIR$\Debug\Obj\mbutils.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncholding.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncinput.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncdisc.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncother.pbi
+ $PROJ_DIR$\Debug\Obj\mbfuncholding.o
+ $PROJ_DIR$\Debug\Obj\mb.pbi
+ $PROJ_DIR$\Debug\Obj\mb.o
+ $TOOLKIT_DIR$\inc\c\assert.h
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mbfunc.h
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mbconfig.h
+ $TOOLKIT_DIR$\config\linker\ST\stm32f103xB.icf
+ $TOOLKIT_DIR$\lib\rt7M_tl.a
+ $TOOLKIT_DIR$\lib\shb_l.a
+ $TOOLKIT_DIR$\lib\m7M_tl.a
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mbframe.h
+ $TOOLKIT_DIR$\lib\dl7M_tln.a
+ $PROJ_DIR$\Debug\Obj\porttimer.pbi
+ $PROJ_DIR$\Debug\Obj\portserial.pbi
+ $PROJ_DIR$\Debug\Obj\portevent.pbi
+ $PROJ_DIR$\Debug\Obj\porttimer.o
+ $TOOLKIT_DIR$\inc\c\inttypes.h
+ $PROJ_DIR$\Debug\Obj\port.pbi
+ $PROJ_DIR$\Debug\Obj\portevent.o
+ $PROJ_DIR$\Debug\Obj\portserial.o
+ $PROJ_DIR$\Debug\Obj\port.o
+ $TOOLKIT_DIR$\inc\c\string.h
+ $TOOLKIT_DIR$\inc\c\DLib_Product_string.h
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbcrc.h
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mbproto.h
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbrtu.h
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mb.h
+ $PROJ_DIR$\..\FreeModbus\modbus\include\mbport.h
+ $PROJ_DIR$\Debug\Obj\mbrtu.pbi
+ $PROJ_DIR$\Debug\Obj\mbrtu.o
+ $PROJ_DIR$\Debug\Obj\mbcrc.pbi
+ $PROJ_DIR$\Debug\Obj\mbcrc.o
-
- [ROOT_NODE]
-
-
- ILINK
- 114
-
-
-
$PROJ_DIR$\..\APP\src\app.c
- ICCARM
- 76
+ BICOMP
+ 99
- BICOMP
- 79
+ ICCARM
+ 102
BICOMP
- 92 153 101 100 86 91 85 87 90 154 103 106 119 118 117 156 138 120 115 116 0 143 99 142 102 141 150 144 146 95 148 151 147 149 75 152 140 137 145 139 105 107
+ 108 176 205 187 107 112 109 106 113 179 186 188 194 209 208 181 206 193 195 203 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 204 192 191 134 262 24 239 252 263 260
+
+
+ ICCARM
+ 108 176 205 187 107 112 109 106 113 179 186 188 194 209 208 181 206 193 195 203 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 204 192 191 134 262 24 239 252 263 260
@@ -233,18 +302,22 @@
$PROJ_DIR$\..\APP\src\app_task.c
- ICCARM
- 77
+ BICOMP
+ 114
- BICOMP
- 80
+ ICCARM
+ 105
BICOMP
- 92 153 101 100 86 91 85 87 90 154 103 106 119 118 117 156 138 120 115 116 0 143 99 142 102 141 150 144 146 95 148 151 147 149 75 152 140 137 145 139 105 107
+ 108 176 205 187 107 112 109 106 113 179 186 188 194 209 208 181 206 193 195 203 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 204 192 191 134 262 24 239 252 263 260
+
+
+ ICCARM
+ 108 176 205 187 107 112 109 106 113 179 186 188 194 209 208 181 206 193 195 203 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 204 192 191 134 262 24 239 252 263 260
@@ -252,50 +325,91 @@
$PROJ_DIR$\..\APP\src\cpuusage.c
- ICCARM
- 108
+ BICOMP
+ 189
- BICOMP
- 104
+ ICCARM
+ 190
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119 107
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194 191
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194 191
$PROJ_DIR$\..\APP\src\stm32f10x_it.c
-
- ICCARM
- 78
-
BICOMP
- 81
+ 116
-
-
-
- $PROJ_DIR$\..\BSP\src\bsp.c
-
ICCARM
- 82
-
-
- BICOMP
- 83
+ 104
BICOMP
- 139 0 143 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 148 151 147 149 75 152 140 137 145 119 118 117 156 138 120 115 116
+ 219 204 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 209 208 181 206 193 195 203 192
+
+
+ ICCARM
+ 219 204 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 209 208 181 206 193 195 203 192
+
+
+
+
+ $PROJ_DIR$\..\APP\src\UserModbusSlaver.c
+
+
+ BICOMP
+ 220
+
+
+ ICCARM
+ 221
+
+
+
+
+ BICOMP
+ 134 262 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 263 260
+
+
+ ICCARM
+ 134 262 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 263 260
+
+
+
+
+ $PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\common\backtrace.c
+
+
+ BICOMP
+ 217
+
+
+ ICCARM
+ 216
+
+
+
+
+ BICOMP
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -304,45 +418,99 @@
AARM
- 84
+ 103
+
+ $PROJ_DIR$\..\BSP\src\bsp.c
+
+
+ BICOMP
+ 98
+
+
+ ICCARM
+ 117
+
+
+
+
+ BICOMP
+ 204 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 134 262 24 239 252 263 260
+
+
+ ICCARM
+ 204 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 134 262 24 239 252 263 260
+
+
+
$PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\cpuport.c
- ICCARM
- 110
+ BICOMP
+ 200
- BICOMP
- 109
+ ICCARM
+ 196
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
- $PROJ_DIR$\..\RT-Thread-1.1.1\src\clock.c
+ $PROJ_DIR$\..\FreeModbus\modbus\mb.c
- ICCARM
- 98
+ BICOMP
+ 237
- BICOMP
- 68
+ ICCARM
+ 238
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 241 246 240 261
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 241 246 240 261
+
+
+
+
+ $PROJ_DIR$\..\RT-Thread-1.1.1\libcpu\arm\common\showmem.c
+
+
+ BICOMP
+ 211
+
+
+ ICCARM
+ 210
+
+
+
+
+ BICOMP
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -350,18 +518,334 @@
$PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c
- ICCARM
- 94
+ BICOMP
+ 115
- BICOMP
- 93
+ ICCARM
+ 100
BICOMP
- 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbcrc.c
+
+
+ BICOMP
+ 266
+
+
+ ICCARM
+ 267
+
+
+
+
+ BICOMP
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252
+
+
+ ICCARM
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfunccoils.c
+
+
+ BICOMP
+ 223
+
+
+ ICCARM
+ 229
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncdiag.c
+
+
+ BICOMP
+ 222
+
+
+ ICCARM
+ 227
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncdisc.c
+
+
+ BICOMP
+ 234
+
+
+ ICCARM
+ 230
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncholding.c
+
+
+ BICOMP
+ 232
+
+
+ ICCARM
+ 236
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncother.c
+
+
+ BICOMP
+ 235
+
+
+ ICCARM
+ 225
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbfuncinput.c
+
+
+ BICOMP
+ 233
+
+
+ ICCARM
+ 224
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 246 241
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu\mbrtu.c
+
+
+ BICOMP
+ 264
+
+
+ ICCARM
+ 265
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 261 246 259
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260 261 246 259
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\modbus\functions\mbutils.c
+
+
+ BICOMP
+ 231
+
+
+ ICCARM
+ 226
+
+
+
+
+ BICOMP
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+ ICCARM
+ 176 205 187 107 112 109 106 113 179 257 258 24 0 166 95 174 207 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\port\port.c
+
+
+ BICOMP
+ 253
+
+
+ ICCARM
+ 256
+
+
+
+
+ BICOMP
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252
+
+
+ ICCARM
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\port\portevent.c
+
+
+ BICOMP
+ 250
+
+
+ ICCARM
+ 254
+
+
+
+
+ BICOMP
+ 262 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 263 260
+
+
+ ICCARM
+ 262 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 263 260
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\port\portserial.c
+
+
+ BICOMP
+ 249
+
+
+ ICCARM
+ 255
+
+
+
+
+ BICOMP
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+ ICCARM
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+
+
+ $PROJ_DIR$\..\FreeModbus\port\porttimer.c
+
+
+ BICOMP
+ 248
+
+
+ ICCARM
+ 251
+
+
+
+
+ BICOMP
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+ ICCARM
+ 24 0 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 167 178 169 173 101 175 165 201 172 194 209 208 181 206 193 195 203 239 252 262 263 260
+
+
+
+
+ $PROJ_DIR$\..\RT-Thread-1.1.1\src\clock.c
+
+
+ BICOMP
+ 86
+
+
+ ICCARM
+ 94
+
+
+
+
+ BICOMP
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -369,18 +853,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\device.c
- ICCARM
- 97
+ BICOMP
+ 84
- BICOMP
- 67
+ ICCARM
+ 93
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -388,18 +876,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\idle.c
- ICCARM
- 96
+ BICOMP
+ 82
- BICOMP
- 66
+ ICCARM
+ 96
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -407,18 +899,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\ipc.c
- ICCARM
- 89
+ BICOMP
+ 83
- BICOMP
- 65
+ ICCARM
+ 111
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -426,37 +922,54 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\irq.c
- ICCARM
- 88
+ BICOMP
+ 81
- BICOMP
- 64
+ ICCARM
+ 110
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+ [ROOT_NODE]
+
+
+ ILINK
+ 197
+
+
+
$PROJ_DIR$\..\RT-Thread-1.1.1\src\kservice.c
- ICCARM
- 73
+ BICOMP
+ 70
- BICOMP
- 63
+ ICCARM
+ 92
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -464,18 +977,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\mem.c
- ICCARM
- 74
+ BICOMP
+ 73
- BICOMP
- 62
+ ICCARM
+ 91
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -483,18 +1000,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\memheap.c
- ICCARM
- 111
+ BICOMP
+ 199
- BICOMP
- 113
+ ICCARM
+ 198
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -502,18 +1023,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\mempool.c
- ICCARM
- 173
+ BICOMP
+ 72
- BICOMP
- 61
+ ICCARM
+ 122
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -521,18 +1046,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\module.c
- ICCARM
- 59
+ BICOMP
+ 71
- BICOMP
- 58
+ ICCARM
+ 68
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -540,18 +1069,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\object.c
- ICCARM
- 72
+ BICOMP
+ 74
- BICOMP
- 60
+ ICCARM
+ 90
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -559,18 +1092,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\scheduler.c
- ICCARM
- 49
+ BICOMP
+ 76
- BICOMP
- 57
+ ICCARM
+ 69
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -578,18 +1115,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\slab.c
- ICCARM
- 71
+ BICOMP
+ 75
- BICOMP
- 56
+ ICCARM
+ 89
BICOMP
- 119 118 117 156 138 101 100 86 91 85 87 90 120 115 116
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
+
+
+ ICCARM
+ 194 209 208 181 206 205 187 107 112 109 106 113 193 195 203
@@ -597,18 +1138,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\thread.c
- ICCARM
- 70
+ BICOMP
+ 78
- BICOMP
- 55
+ ICCARM
+ 88
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -616,18 +1161,22 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\src\timer.c
- ICCARM
- 69
+ BICOMP
+ 77
- BICOMP
- 54
+ ICCARM
+ 87
BICOMP
- 118 117 156 138 101 100 86 91 85 87 90 120 115 116 119
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
+
+
+ ICCARM
+ 209 208 181 206 205 187 107 112 109 106 113 193 195 203 194
@@ -635,37 +1184,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\misc.c
- ICCARM
- 53
+ BICOMP
+ 152
- BICOMP
- 32
+ ICCARM
+ 80
BICOMP
- 145 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137
+ 172 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201
-
-
-
- $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
-
ICCARM
- 168
-
-
- BICOMP
- 180
-
-
-
-
- BICOMP
- 184 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 172 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201
@@ -673,18 +1207,54 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c
- ICCARM
- 52
+ BICOMP
+ 140
- BICOMP
- 31
+ ICCARM
+ 79
BICOMP
- 143 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 148 151 147 149 75 152 140 137 145
+ 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 166 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 167 178 169 173 101 175 165 201 172
+
+
+
+
+ $PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_md.s
+
+
+ AARM
+ 228
+
+
+
+
+ $PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c
+
+
+ BICOMP
+ 157
+
+
+ ICCARM
+ 127
+
+
+
+
+ BICOMP
+ 161 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 161 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -692,18 +1262,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c
- ICCARM
- 48
+ BICOMP
+ 156
- BICOMP
- 179
+ ICCARM
+ 146
BICOMP
- 182 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 159 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 159 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -711,18 +1285,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c
- ICCARM
- 51
+ BICOMP
+ 155
- BICOMP
- 178
+ ICCARM
+ 67
BICOMP
- 191 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 215 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 215 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -730,18 +1308,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c
- ICCARM
- 50
+ BICOMP
+ 153
- BICOMP
- 177
+ ICCARM
+ 85
BICOMP
- 193 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 218 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 218 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -749,18 +1331,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c
- ICCARM
- 47
+ BICOMP
+ 118
- BICOMP
- 176
+ ICCARM
+ 145
BICOMP
- 192 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 213 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 213 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -768,18 +1354,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c
- ICCARM
- 43
+ BICOMP
+ 119
- BICOMP
- 175
+ ICCARM
+ 141
BICOMP
- 185 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 162 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 162 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -787,18 +1377,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c
- ICCARM
- 46
+ BICOMP
+ 123
- BICOMP
- 172
+ ICCARM
+ 144
BICOMP
- 148 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 151 147 149 75 152 140 137 145
+ 167 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 167 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 178 169 173 101 175 165 201 172
@@ -806,18 +1400,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c
- ICCARM
- 45
+ BICOMP
+ 124
- BICOMP
- 171
+ ICCARM
+ 143
BICOMP
- 151 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 147 149 75 152 140 137 145
+ 178 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 178 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 169 173 101 175 165 201 172
@@ -825,18 +1423,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c
- ICCARM
- 44
+ BICOMP
+ 182
- BICOMP
- 157
+ ICCARM
+ 142
BICOMP
- 147 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 149 75 152 140 137 145
+ 169 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 173 101 175 165 201 172
+
+
+ ICCARM
+ 169 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 173 101 175 165 201 172
@@ -844,18 +1446,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c
- ICCARM
- 165
+ BICOMP
+ 126
- BICOMP
- 169
+ ICCARM
+ 129
BICOMP
- 186 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 163 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 163 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -863,18 +1469,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
- ICCARM
- 42
+ BICOMP
+ 125
- BICOMP
- 170
+ ICCARM
+ 139
BICOMP
- 149 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 75 152 140 137 145
+ 173 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 101 175 165 201 172
+
+
+ ICCARM
+ 173 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 101 175 165 201 172
@@ -882,18 +1492,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c
- ICCARM
- 174
+ BICOMP
+ 128
- BICOMP
- 167
+ ICCARM
+ 121
BICOMP
- 187 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 164 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 164 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -901,18 +1515,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c
- ICCARM
- 41
+ BICOMP
+ 131
- BICOMP
- 166
+ ICCARM
+ 150
BICOMP
- 75 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 152 140 137 145
+ 101 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 175 165 201 172
+
+
+ ICCARM
+ 101 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 175 165 201 172
@@ -920,18 +1538,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c
- ICCARM
- 40
+ BICOMP
+ 180
- BICOMP
- 155
+ ICCARM
+ 148
BICOMP
- 181 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 158 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 158 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -939,18 +1561,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c
- ICCARM
- 39
+ BICOMP
+ 184
- BICOMP
- 158
+ ICCARM
+ 136
BICOMP
- 152 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 140 137 145
+ 175 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 165 201 172
+
+
+ ICCARM
+ 175 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 165 201 172
@@ -958,18 +1584,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c
- ICCARM
- 38
+ BICOMP
+ 130
- BICOMP
- 164
+ ICCARM
+ 135
BICOMP
- 189 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 212 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 212 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -977,18 +1607,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c
- ICCARM
- 37
+ BICOMP
+ 120
- BICOMP
- 163
+ ICCARM
+ 137
BICOMP
- 188 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 154 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 154 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -996,18 +1630,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c
- ICCARM
- 36
+ BICOMP
+ 132
- BICOMP
- 162
+ ICCARM
+ 151
BICOMP
- 183 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 160 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 160 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
@@ -1015,18 +1653,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c
- ICCARM
- 35
+ BICOMP
+ 133
- BICOMP
- 161
+ ICCARM
+ 147
BICOMP
- 140 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 137 145
+ 165 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 201 172
+
+
+ ICCARM
+ 165 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 201 172
@@ -1034,18 +1676,22 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
- ICCARM
- 34
+ BICOMP
+ 185
- BICOMP
- 160
+ ICCARM
+ 149
BICOMP
- 137 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 145
+ 201 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 172
+
+
+ ICCARM
+ 201 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 172
@@ -1053,18 +1699,31 @@
$PROJ_DIR$\..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
- ICCARM
- 33
+ BICOMP
+ 183
- BICOMP
- 159
+ ICCARM
+ 138
BICOMP
- 190 99 142 102 101 100 86 91 85 87 90 141 150 144 146 95 0 143 148 151 147 149 75 152 140 137 145
+ 214 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+ ICCARM
+ 214 95 174 207 205 187 107 112 109 106 113 170 177 168 171 97 0 166 167 178 169 173 101 175 165 201 172
+
+
+
+
+ $PROJ_DIR$\Debug\Exe\FreeModbus_Slaver&Master+RTT+STM32.out
+
+
+ ILINK
+ 242 221 102 105 216 117 94 103 196 190 93 96 111 110 92 238 267 229 227 230 236 224 225 265 226 91 198 122 80 68 90 256 254 255 251 69 210 89 228 79 127 146 67 85 145 141 144 143 142 129 139 121 104 150 148 136 135 137 151 147 149 138 100 88 87 244 243 245 247
diff --git a/EWARM/FreeModbus_Slaver&Master+RTT+STM32.ewp b/EWARM/FreeModbus_Slaver&Master+RTT+STM32.ewp
index 6dd9a5d..e39fd69 100644
--- a/EWARM/FreeModbus_Slaver&Master+RTT+STM32.ewp
+++ b/EWARM/FreeModbus_Slaver&Master+RTT+STM32.ewp
@@ -300,6 +300,9 @@
$PROJ_DIR$\..\RT-Thread-1.1.1\include
$PROJ_DIR$\..\Libaries\CMSIS_EWARM\Include
$PROJ_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x
+ $PROJ_DIR$\..\FreeModbus\modbus\include
+ $PROJ_DIR$\..\FreeModbus\modbus\rtu
+ $PROJ_DIR$\..\FreeModbus\port
diff --git a/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.dni b/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.dni
index 17b53fa..6e5b988 100644
--- a/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.dni
+++ b/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.dni
@@ -9,7 +9,7 @@ TriggerName=main
LimitSize=0
ByteLimit=50
[DebugChecksum]
-Checksum=74914984
+Checksum=2104484592
[Exceptions]
StopOnUncaught=_ 0
StopOnThrow=_ 0
diff --git a/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.wsdt b/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.wsdt
index 5f41d77..82bd080 100644
--- a/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.wsdt
+++ b/EWARM/settings/FreeModbus_Slaver&Master+RTT+STM32.wsdt
@@ -12,12 +12,12 @@
- 25213270
+ 23813270
20121532481191622
-
+
TabID-30370-1297
@@ -25,24 +25,24 @@
Workspace
- FreeModbus_Slaver&Master+RTT+STM32
+ FreeModbus_Slaver&Master+RTT+STM32FreeModbus_Slaver&Master+RTT+STM32/APPFreeModbus_Slaver&Master+RTT+STM32/CMSIS
- 0TabID-24390-6730BuildBuild0
+ 0TabID-24390-6730BuildBuild0
- TextEditor$WS_DIR$\..\APP\src\app_task.c00000974474400100000010000001
+ TextEditor$WS_DIR$\..\APP\src\app_task.c000001616661666TextEditor$WS_DIR$\..\APP\src\app.c0000001521521TextEditor$WS_DIR$\..\FreeModbus\port\portserial.c0000014454255425TextEditor$WS_DIR$\..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\cpuport.c000009840324032TextEditor$WS_DIR$\..\Libaries\CMSIS_EWARM\CM3\DeviceSupport\ST\STM32F10x\startup\iar\startup_stm32f10x_md.s000004233193334TextEditor$WS_DIR$\..\BSP\src\bsp.c0000022686528652TextEditor$WS_DIR$\..\APP\src\stm32f10x_it.c000007933173317TextEditor$WS_DIR$\..\APP\inc\stm32f10x_it.h0000028218210100000010000001
- iaridepm.enu1-2-2623312-2-2200200119048206612186905645661-2-23001682-2-216843021002381311983119048206612
+ iaridepm.enu1-2-2421298-2-2302142242765209131241158622975-2-22131246-2-212482151003215316642242765209131
diff --git a/FreeModbus/modbus/ascii/mbascii.c b/FreeModbus/modbus/ascii/mbascii.c
new file mode 100644
index 0000000..34fdf96
--- /dev/null
+++ b/FreeModbus/modbus/ascii/mbascii.c
@@ -0,0 +1,485 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbascii.c,v 1.15 2007/02/18 23:46:48 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbconfig.h"
+#include "mbascii.h"
+#include "mbframe.h"
+
+#include "mbcrc.h"
+#include "mbport.h"
+
+#if MB_ASCII_ENABLED > 0
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_ASCII_DEFAULT_CR '\r' /*!< Default CR character for Modbus ASCII. */
+#define MB_ASCII_DEFAULT_LF '\n' /*!< Default LF character for Modbus ASCII. */
+#define MB_SER_PDU_SIZE_MIN 3 /*!< Minimum size of a Modbus ASCII frame. */
+#define MB_SER_PDU_SIZE_MAX 256 /*!< Maximum size of a Modbus ASCII frame. */
+#define MB_SER_PDU_SIZE_LRC 1 /*!< Size of LRC field in PDU. */
+#define MB_SER_PDU_ADDR_OFF 0 /*!< Offset of slave address in Ser-PDU. */
+#define MB_SER_PDU_PDU_OFF 1 /*!< Offset of Modbus-PDU in Ser-PDU. */
+
+/* ----------------------- Type definitions ---------------------------------*/
+typedef enum
+{
+ STATE_RX_IDLE, /*!< Receiver is in idle state. */
+ STATE_RX_RCV, /*!< Frame is beeing received. */
+ STATE_RX_WAIT_EOF /*!< Wait for End of Frame. */
+} eMBRcvState;
+
+typedef enum
+{
+ STATE_TX_IDLE, /*!< Transmitter is in idle state. */
+ STATE_TX_START, /*!< Starting transmission (':' sent). */
+ STATE_TX_DATA, /*!< Sending of data (Address, Data, LRC). */
+ STATE_TX_END, /*!< End of transmission. */
+ STATE_TX_NOTIFY /*!< Notify sender that the frame has been sent. */
+} eMBSndState;
+
+typedef enum
+{
+ BYTE_HIGH_NIBBLE, /*!< Character for high nibble of byte. */
+ BYTE_LOW_NIBBLE /*!< Character for low nibble of byte. */
+} eMBBytePos;
+
+/* ----------------------- Static functions ---------------------------------*/
+static UCHAR prvucMBCHAR2BIN( UCHAR ucCharacter );
+
+static UCHAR prvucMBBIN2CHAR( UCHAR ucByte );
+
+static UCHAR prvucMBLRC( UCHAR * pucFrame, USHORT usLen );
+
+/* ----------------------- Static variables ---------------------------------*/
+static volatile eMBSndState eSndState;
+static volatile eMBRcvState eRcvState;
+
+/* We reuse the Modbus RTU buffer because only one buffer is needed and the
+ * RTU buffer is bigger. */
+extern volatile UCHAR ucRTUBuf[];
+static volatile UCHAR *ucASCIIBuf = ucRTUBuf;
+
+static volatile USHORT usRcvBufferPos;
+static volatile eMBBytePos eBytePos;
+
+static volatile UCHAR *pucSndBufferCur;
+static volatile USHORT usSndBufferCount;
+
+static volatile UCHAR ucLRC;
+static volatile UCHAR ucMBLFCharacter;
+
+/* ----------------------- Start implementation -----------------------------*/
+eMBErrorCode
+eMBASCIIInit( UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ ( void )ucSlaveAddress;
+
+ ENTER_CRITICAL_SECTION( );
+ ucMBLFCharacter = MB_ASCII_DEFAULT_LF;
+
+ if( xMBPortSerialInit( ucPort, ulBaudRate, 7, eParity ) != TRUE )
+ {
+ eStatus = MB_EPORTERR;
+ }
+ else if( xMBPortTimersInit( MB_ASCII_TIMEOUT_SEC * 20000UL ) != TRUE )
+ {
+ eStatus = MB_EPORTERR;
+ }
+
+ EXIT_CRITICAL_SECTION( );
+
+ return eStatus;
+}
+
+void
+eMBASCIIStart( void )
+{
+ ENTER_CRITICAL_SECTION( );
+ vMBPortSerialEnable( TRUE, FALSE );
+ eRcvState = STATE_RX_IDLE;
+ EXIT_CRITICAL_SECTION( );
+
+ /* No special startup required for ASCII. */
+ ( void )xMBPortEventPost( EV_READY );
+}
+
+void
+eMBASCIIStop( void )
+{
+ ENTER_CRITICAL_SECTION( );
+ vMBPortSerialEnable( FALSE, FALSE );
+ vMBPortTimersDisable( );
+ EXIT_CRITICAL_SECTION( );
+}
+
+eMBErrorCode
+eMBASCIIReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ ENTER_CRITICAL_SECTION( );
+ assert( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
+
+ /* Length and CRC check */
+ if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
+ && ( prvucMBLRC( ( UCHAR * ) ucASCIIBuf, usRcvBufferPos ) == 0 ) )
+ {
+ /* Save the address field. All frames are passed to the upper layed
+ * and the decision if a frame is used is done there.
+ */
+ *pucRcvAddress = ucASCIIBuf[MB_SER_PDU_ADDR_OFF];
+
+ /* Total length of Modbus-PDU is Modbus-Serial-Line-PDU minus
+ * size of address field and CRC checksum.
+ */
+ *pusLength = ( USHORT )( usRcvBufferPos - MB_SER_PDU_PDU_OFF - MB_SER_PDU_SIZE_LRC );
+
+ /* Return the start of the Modbus PDU to the caller. */
+ *pucFrame = ( UCHAR * ) & ucASCIIBuf[MB_SER_PDU_PDU_OFF];
+ }
+ else
+ {
+ eStatus = MB_EIO;
+ }
+ EXIT_CRITICAL_SECTION( );
+ return eStatus;
+}
+
+eMBErrorCode
+eMBASCIISend( UCHAR ucSlaveAddress, const UCHAR * pucFrame, USHORT usLength )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ UCHAR usLRC;
+
+ ENTER_CRITICAL_SECTION( );
+ /* Check if the receiver is still in idle state. If not we where to
+ * slow with processing the received frame and the master sent another
+ * frame on the network. We have to abort sending the frame.
+ */
+ if( eRcvState == STATE_RX_IDLE )
+ {
+ /* First byte before the Modbus-PDU is the slave address. */
+ pucSndBufferCur = ( UCHAR * ) pucFrame - 1;
+ usSndBufferCount = 1;
+
+ /* Now copy the Modbus-PDU into the Modbus-Serial-Line-PDU. */
+ pucSndBufferCur[MB_SER_PDU_ADDR_OFF] = ucSlaveAddress;
+ usSndBufferCount += usLength;
+
+ /* Calculate LRC checksum for Modbus-Serial-Line-PDU. */
+ usLRC = prvucMBLRC( ( UCHAR * ) pucSndBufferCur, usSndBufferCount );
+ ucASCIIBuf[usSndBufferCount++] = usLRC;
+
+ /* Activate the transmitter. */
+ eSndState = STATE_TX_START;
+ vMBPortSerialEnable( FALSE, TRUE );
+ }
+ else
+ {
+ eStatus = MB_EIO;
+ }
+ EXIT_CRITICAL_SECTION( );
+ return eStatus;
+}
+
+BOOL
+xMBASCIIReceiveFSM( void )
+{
+ BOOL xNeedPoll = FALSE;
+ UCHAR ucByte;
+ UCHAR ucResult;
+
+ assert( eSndState == STATE_TX_IDLE );
+
+ ( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
+ switch ( eRcvState )
+ {
+ /* A new character is received. If the character is a ':' the input
+ * buffer is cleared. A CR-character signals the end of the data
+ * block. Other characters are part of the data block and their
+ * ASCII value is converted back to a binary representation.
+ */
+ case STATE_RX_RCV:
+ /* Enable timer for character timeout. */
+ vMBPortTimersEnable( );
+ if( ucByte == ':' )
+ {
+ /* Empty receive buffer. */
+ eBytePos = BYTE_HIGH_NIBBLE;
+ usRcvBufferPos = 0;
+ }
+ else if( ucByte == MB_ASCII_DEFAULT_CR )
+ {
+ eRcvState = STATE_RX_WAIT_EOF;
+ }
+ else
+ {
+ ucResult = prvucMBCHAR2BIN( ucByte );
+ switch ( eBytePos )
+ {
+ /* High nibble of the byte comes first. We check for
+ * a buffer overflow here. */
+ case BYTE_HIGH_NIBBLE:
+ if( usRcvBufferPos < MB_SER_PDU_SIZE_MAX )
+ {
+ ucASCIIBuf[usRcvBufferPos] = ( UCHAR )( ucResult << 4 );
+ eBytePos = BYTE_LOW_NIBBLE;
+ break;
+ }
+ else
+ {
+ /* not handled in Modbus specification but seems
+ * a resonable implementation. */
+ eRcvState = STATE_RX_IDLE;
+ /* Disable previously activated timer because of error state. */
+ vMBPortTimersDisable( );
+ }
+ break;
+
+ case BYTE_LOW_NIBBLE:
+ ucASCIIBuf[usRcvBufferPos++] |= ucResult;
+ eBytePos = BYTE_HIGH_NIBBLE;
+ break;
+ }
+ }
+ break;
+
+ case STATE_RX_WAIT_EOF:
+ if( ucByte == ucMBLFCharacter )
+ {
+ /* Disable character timeout timer because all characters are
+ * received. */
+ vMBPortTimersDisable( );
+ /* Receiver is again in idle state. */
+ eRcvState = STATE_RX_IDLE;
+
+ /* Notify the caller of eMBASCIIReceive that a new frame
+ * was received. */
+ xNeedPoll = xMBPortEventPost( EV_FRAME_RECEIVED );
+ }
+ else if( ucByte == ':' )
+ {
+ /* Empty receive buffer and back to receive state. */
+ eBytePos = BYTE_HIGH_NIBBLE;
+ usRcvBufferPos = 0;
+ eRcvState = STATE_RX_RCV;
+
+ /* Enable timer for character timeout. */
+ vMBPortTimersEnable( );
+ }
+ else
+ {
+ /* Frame is not okay. Delete entire frame. */
+ eRcvState = STATE_RX_IDLE;
+ }
+ break;
+
+ case STATE_RX_IDLE:
+ if( ucByte == ':' )
+ {
+ /* Enable timer for character timeout. */
+ vMBPortTimersEnable( );
+ /* Reset the input buffers to store the frame. */
+ usRcvBufferPos = 0;;
+ eBytePos = BYTE_HIGH_NIBBLE;
+ eRcvState = STATE_RX_RCV;
+ }
+ break;
+ }
+
+ return xNeedPoll;
+}
+
+BOOL
+xMBASCIITransmitFSM( void )
+{
+ BOOL xNeedPoll = FALSE;
+ UCHAR ucByte;
+
+ assert( eRcvState == STATE_RX_IDLE );
+ switch ( eSndState )
+ {
+ /* Start of transmission. The start of a frame is defined by sending
+ * the character ':'. */
+ case STATE_TX_START:
+ ucByte = ':';
+ xMBPortSerialPutByte( ( CHAR )ucByte );
+ eSndState = STATE_TX_DATA;
+ eBytePos = BYTE_HIGH_NIBBLE;
+ break;
+
+ /* Send the data block. Each data byte is encoded as a character hex
+ * stream with the high nibble sent first and the low nibble sent
+ * last. If all data bytes are exhausted we send a '\r' character
+ * to end the transmission. */
+ case STATE_TX_DATA:
+ if( usSndBufferCount > 0 )
+ {
+ switch ( eBytePos )
+ {
+ case BYTE_HIGH_NIBBLE:
+ ucByte = prvucMBBIN2CHAR( ( UCHAR )( *pucSndBufferCur >> 4 ) );
+ xMBPortSerialPutByte( ( CHAR ) ucByte );
+ eBytePos = BYTE_LOW_NIBBLE;
+ break;
+
+ case BYTE_LOW_NIBBLE:
+ ucByte = prvucMBBIN2CHAR( ( UCHAR )( *pucSndBufferCur & 0x0F ) );
+ xMBPortSerialPutByte( ( CHAR )ucByte );
+ pucSndBufferCur++;
+ eBytePos = BYTE_HIGH_NIBBLE;
+ usSndBufferCount--;
+ break;
+ }
+ }
+ else
+ {
+ xMBPortSerialPutByte( MB_ASCII_DEFAULT_CR );
+ eSndState = STATE_TX_END;
+ }
+ break;
+
+ /* Finish the frame by sending a LF character. */
+ case STATE_TX_END:
+ xMBPortSerialPutByte( ( CHAR )ucMBLFCharacter );
+ /* We need another state to make sure that the CR character has
+ * been sent. */
+ eSndState = STATE_TX_NOTIFY;
+ break;
+
+ /* Notify the task which called eMBASCIISend that the frame has
+ * been sent. */
+ case STATE_TX_NOTIFY:
+ eSndState = STATE_TX_IDLE;
+ xNeedPoll = xMBPortEventPost( EV_FRAME_SENT );
+
+ /* Disable transmitter. This prevents another transmit buffer
+ * empty interrupt. */
+ vMBPortSerialEnable( TRUE, FALSE );
+ eSndState = STATE_TX_IDLE;
+ break;
+
+ /* We should not get a transmitter event if the transmitter is in
+ * idle state. */
+ case STATE_TX_IDLE:
+ /* enable receiver/disable transmitter. */
+ vMBPortSerialEnable( TRUE, FALSE );
+ break;
+ }
+
+ return xNeedPoll;
+}
+
+BOOL
+xMBASCIITimerT1SExpired( void )
+{
+ switch ( eRcvState )
+ {
+ /* If we have a timeout we go back to the idle state and wait for
+ * the next frame.
+ */
+ case STATE_RX_RCV:
+ case STATE_RX_WAIT_EOF:
+ eRcvState = STATE_RX_IDLE;
+ break;
+
+ default:
+ assert( ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_WAIT_EOF ) );
+ break;
+ }
+ vMBPortTimersDisable( );
+
+ /* no context switch required. */
+ return FALSE;
+}
+
+
+static UCHAR
+prvucMBCHAR2BIN( UCHAR ucCharacter )
+{
+ if( ( ucCharacter >= '0' ) && ( ucCharacter <= '9' ) )
+ {
+ return ( UCHAR )( ucCharacter - '0' );
+ }
+ else if( ( ucCharacter >= 'A' ) && ( ucCharacter <= 'F' ) )
+ {
+ return ( UCHAR )( ucCharacter - 'A' + 0x0A );
+ }
+ else
+ {
+ return 0xFF;
+ }
+}
+
+static UCHAR
+prvucMBBIN2CHAR( UCHAR ucByte )
+{
+ if( ucByte <= 0x09 )
+ {
+ return ( UCHAR )( '0' + ucByte );
+ }
+ else if( ( ucByte >= 0x0A ) && ( ucByte <= 0x0F ) )
+ {
+ return ( UCHAR )( ucByte - 0x0A + 'A' );
+ }
+ else
+ {
+ /* Programming error. */
+ assert( 0 );
+ }
+ return '0';
+}
+
+
+static UCHAR
+prvucMBLRC( UCHAR * pucFrame, USHORT usLen )
+{
+ UCHAR ucLRC = 0; /* LRC char initialized */
+
+ while( usLen-- )
+ {
+ ucLRC += *pucFrame++; /* Add buffer byte without carry */
+ }
+
+ /* Return twos complement */
+ ucLRC = ( UCHAR ) ( -( ( CHAR ) ucLRC ) );
+ return ucLRC;
+}
+
+#endif
diff --git a/FreeModbus/modbus/ascii/mbascii.h b/FreeModbus/modbus/ascii/mbascii.h
new file mode 100644
index 0000000..d2500f7
--- /dev/null
+++ b/FreeModbus/modbus/ascii/mbascii.h
@@ -0,0 +1,56 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbascii.h,v 1.8 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_ASCII_H
+#define _MB_ASCII_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+
+#if MB_ASCII_ENABLED > 0
+eMBErrorCode eMBASCIIInit( UCHAR slaveAddress, UCHAR ucPort,
+ ULONG ulBaudRate, eMBParity eParity );
+void eMBASCIIStart( void );
+void eMBASCIIStop( void );
+
+eMBErrorCode eMBASCIIReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame,
+ USHORT * pusLength );
+eMBErrorCode eMBASCIISend( UCHAR slaveAddress, const UCHAR * pucFrame,
+ USHORT usLength );
+BOOL xMBASCIIReceiveFSM( void );
+BOOL xMBASCIITransmitFSM( void );
+BOOL xMBASCIITimerT1SExpired( void );
+#endif
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/functions/mbfunccoils.c b/FreeModbus/modbus/functions/mbfunccoils.c
new file mode 100644
index 0000000..8019d42
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfunccoils.c
@@ -0,0 +1,270 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfunccoils.c,v 1.8 2007/02/18 23:47:16 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbconfig.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
+#define MB_PDU_FUNC_READ_COILCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_READ_SIZE ( 4 )
+#define MB_PDU_FUNC_READ_COILCNT_MAX ( 0x07D0 )
+
+#define MB_PDU_FUNC_WRITE_ADDR_OFF ( MB_PDU_DATA_OFF )
+#define MB_PDU_FUNC_WRITE_VALUE_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_WRITE_SIZE ( 4 )
+
+#define MB_PDU_FUNC_WRITE_MUL_ADDR_OFF ( MB_PDU_DATA_OFF )
+#define MB_PDU_FUNC_WRITE_MUL_COILCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF ( MB_PDU_DATA_OFF + 4 )
+#define MB_PDU_FUNC_WRITE_MUL_VALUES_OFF ( MB_PDU_DATA_OFF + 5 )
+#define MB_PDU_FUNC_WRITE_MUL_SIZE_MIN ( 5 )
+#define MB_PDU_FUNC_WRITE_MUL_COILCNT_MAX ( 0x07B0 )
+
+/* ----------------------- Static functions ---------------------------------*/
+eMBException prveMBError2Exception( eMBErrorCode eErrorCode );
+
+/* ----------------------- Start implementation -----------------------------*/
+
+#if MB_FUNC_READ_COILS_ENABLED > 0
+
+eMBException
+eMBFuncReadCoils( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usCoilCount;
+ UCHAR ucNBytes;
+ UCHAR *pucFrameCur;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usCoilCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_COILCNT_OFF] << 8 );
+ usCoilCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_COILCNT_OFF + 1] );
+
+ /* Check if the number of registers to read is valid. If not
+ * return Modbus illegal data value exception.
+ */
+ if( ( usCoilCount >= 1 ) &&
+ ( usCoilCount < MB_PDU_FUNC_READ_COILCNT_MAX ) )
+ {
+ /* Set the current PDU data pointer to the beginning. */
+ pucFrameCur = &pucFrame[MB_PDU_FUNC_OFF];
+ *usLen = MB_PDU_FUNC_OFF;
+
+ /* First byte contains the function code. */
+ *pucFrameCur++ = MB_FUNC_READ_COILS;
+ *usLen += 1;
+
+ /* Test if the quantity of coils is a multiple of 8. If not last
+ * byte is only partially field with unused coils set to zero. */
+ if( ( usCoilCount & 0x0007 ) != 0 )
+ {
+ ucNBytes = ( UCHAR )( usCoilCount / 8 + 1 );
+ }
+ else
+ {
+ ucNBytes = ( UCHAR )( usCoilCount / 8 );
+ }
+ *pucFrameCur++ = ucNBytes;
+ *usLen += 1;
+
+ eRegStatus =
+ eMBRegCoilsCB( pucFrameCur, usRegAddress, usCoilCount,
+ MB_REG_READ );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ /* The response contains the function code, the starting address
+ * and the quantity of registers. We reuse the old values in the
+ * buffer because they are still valid. */
+ *usLen += ucNBytes;;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid read coil register request because the length
+ * is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#if MB_FUNC_WRITE_COIL_ENABLED > 0
+eMBException
+eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ UCHAR ucBuf[2];
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_WRITE_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ if( ( pucFrame[MB_PDU_FUNC_WRITE_VALUE_OFF + 1] == 0x00 ) &&
+ ( ( pucFrame[MB_PDU_FUNC_WRITE_VALUE_OFF] == 0xFF ) ||
+ ( pucFrame[MB_PDU_FUNC_WRITE_VALUE_OFF] == 0x00 ) ) )
+ {
+ ucBuf[1] = 0;
+ if( pucFrame[MB_PDU_FUNC_WRITE_VALUE_OFF] == 0xFF )
+ {
+ ucBuf[0] = 1;
+ }
+ else
+ {
+ ucBuf[0] = 0;
+ }
+ eRegStatus =
+ eMBRegCoilsCB( &ucBuf[0], usRegAddress, 1, MB_REG_WRITE );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid write coil register request because the length
+ * is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#endif
+
+#if MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED > 0
+eMBException
+eMBFuncWriteMultipleCoils( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usCoilCnt;
+ UCHAR ucByteCount;
+ UCHAR ucByteCountVerify;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen > ( MB_PDU_FUNC_WRITE_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usCoilCnt = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_COILCNT_OFF] << 8 );
+ usCoilCnt |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_COILCNT_OFF + 1] );
+
+ ucByteCount = pucFrame[MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF];
+
+ /* Compute the number of expected bytes in the request. */
+ if( ( usCoilCnt & 0x0007 ) != 0 )
+ {
+ ucByteCountVerify = ( UCHAR )( usCoilCnt / 8 + 1 );
+ }
+ else
+ {
+ ucByteCountVerify = ( UCHAR )( usCoilCnt / 8 );
+ }
+
+ if( ( usCoilCnt >= 1 ) &&
+ ( usCoilCnt <= MB_PDU_FUNC_WRITE_MUL_COILCNT_MAX ) &&
+ ( ucByteCountVerify == ucByteCount ) )
+ {
+ eRegStatus =
+ eMBRegCoilsCB( &pucFrame[MB_PDU_FUNC_WRITE_MUL_VALUES_OFF],
+ usRegAddress, usCoilCnt, MB_REG_WRITE );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ /* The response contains the function code, the starting address
+ * and the quantity of registers. We reuse the old values in the
+ * buffer because they are still valid. */
+ *usLen = MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid write coil register request because the length
+ * is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#endif
+
+#endif
diff --git a/FreeModbus/modbus/functions/mbfuncdiag.c b/FreeModbus/modbus/functions/mbfuncdiag.c
new file mode 100644
index 0000000..d961f8e
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfuncdiag.c
@@ -0,0 +1,29 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfuncdiag.c,v 1.3 2006/12/07 22:10:34 wolti Exp $
+ */
diff --git a/FreeModbus/modbus/functions/mbfuncdisc.c b/FreeModbus/modbus/functions/mbfuncdisc.c
new file mode 100644
index 0000000..7f17227
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfuncdisc.c
@@ -0,0 +1,125 @@
+ /*
+ * FreeRTOS Modbus Libary: A Modbus serial implementation for FreeRTOS
+ * Copyright (C) 2006 Christian Walter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbconfig.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
+#define MB_PDU_FUNC_READ_DISCCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_READ_SIZE ( 4 )
+#define MB_PDU_FUNC_READ_DISCCNT_MAX ( 0x07D0 )
+
+/* ----------------------- Static functions ---------------------------------*/
+eMBException prveMBError2Exception( eMBErrorCode eErrorCode );
+
+/* ----------------------- Start implementation -----------------------------*/
+
+#if MB_FUNC_READ_COILS_ENABLED > 0
+
+eMBException
+eMBFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usDiscreteCnt;
+ UCHAR ucNBytes;
+ UCHAR *pucFrameCur;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usDiscreteCnt = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_DISCCNT_OFF] << 8 );
+ usDiscreteCnt |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_DISCCNT_OFF + 1] );
+
+ /* Check if the number of registers to read is valid. If not
+ * return Modbus illegal data value exception.
+ */
+ if( ( usDiscreteCnt >= 1 ) &&
+ ( usDiscreteCnt < MB_PDU_FUNC_READ_DISCCNT_MAX ) )
+ {
+ /* Set the current PDU data pointer to the beginning. */
+ pucFrameCur = &pucFrame[MB_PDU_FUNC_OFF];
+ *usLen = MB_PDU_FUNC_OFF;
+
+ /* First byte contains the function code. */
+ *pucFrameCur++ = MB_FUNC_READ_DISCRETE_INPUTS;
+ *usLen += 1;
+
+ /* Test if the quantity of coils is a multiple of 8. If not last
+ * byte is only partially field with unused coils set to zero. */
+ if( ( usDiscreteCnt & 0x0007 ) != 0 )
+ {
+ ucNBytes = ( UCHAR ) ( usDiscreteCnt / 8 + 1 );
+ }
+ else
+ {
+ ucNBytes = ( UCHAR ) ( usDiscreteCnt / 8 );
+ }
+ *pucFrameCur++ = ucNBytes;
+ *usLen += 1;
+
+ eRegStatus =
+ eMBRegDiscreteCB( pucFrameCur, usRegAddress, usDiscreteCnt );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ /* The response contains the function code, the starting address
+ * and the quantity of registers. We reuse the old values in the
+ * buffer because they are still valid. */
+ *usLen += ucNBytes;;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid read coil register request because the length
+ * is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#endif
diff --git a/FreeModbus/modbus/functions/mbfuncholding.c b/FreeModbus/modbus/functions/mbfuncholding.c
new file mode 100644
index 0000000..8a12398
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfuncholding.c
@@ -0,0 +1,308 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfuncholding.c,v 1.12 2007/02/18 23:48:22 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbconfig.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF + 0)
+#define MB_PDU_FUNC_READ_REGCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_READ_SIZE ( 4 )
+#define MB_PDU_FUNC_READ_REGCNT_MAX ( 0x007D )
+
+#define MB_PDU_FUNC_WRITE_ADDR_OFF ( MB_PDU_DATA_OFF + 0)
+#define MB_PDU_FUNC_WRITE_VALUE_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_WRITE_SIZE ( 4 )
+
+#define MB_PDU_FUNC_WRITE_MUL_ADDR_OFF ( MB_PDU_DATA_OFF + 0 )
+#define MB_PDU_FUNC_WRITE_MUL_REGCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF ( MB_PDU_DATA_OFF + 4 )
+#define MB_PDU_FUNC_WRITE_MUL_VALUES_OFF ( MB_PDU_DATA_OFF + 5 )
+#define MB_PDU_FUNC_WRITE_MUL_SIZE_MIN ( 5 )
+#define MB_PDU_FUNC_WRITE_MUL_REGCNT_MAX ( 0x0078 )
+
+#define MB_PDU_FUNC_READWRITE_READ_ADDR_OFF ( MB_PDU_DATA_OFF + 0 )
+#define MB_PDU_FUNC_READWRITE_READ_REGCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_READWRITE_WRITE_ADDR_OFF ( MB_PDU_DATA_OFF + 4 )
+#define MB_PDU_FUNC_READWRITE_WRITE_REGCNT_OFF ( MB_PDU_DATA_OFF + 6 )
+#define MB_PDU_FUNC_READWRITE_BYTECNT_OFF ( MB_PDU_DATA_OFF + 8 )
+#define MB_PDU_FUNC_READWRITE_WRITE_VALUES_OFF ( MB_PDU_DATA_OFF + 9 )
+#define MB_PDU_FUNC_READWRITE_SIZE_MIN ( 9 )
+
+/* ----------------------- Static functions ---------------------------------*/
+eMBException prveMBError2Exception( eMBErrorCode eErrorCode );
+
+/* ----------------------- Start implementation -----------------------------*/
+
+#if MB_FUNC_WRITE_HOLDING_ENABLED > 0
+
+eMBException
+eMBFuncWriteHoldingRegister( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_WRITE_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ /* Make callback to update the value. */
+ eRegStatus = eMBRegHoldingCB( &pucFrame[MB_PDU_FUNC_WRITE_VALUE_OFF],
+ usRegAddress, 1, MB_REG_WRITE );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ }
+ else
+ {
+ /* Can't be a valid request because the length is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+#endif
+
+#if MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED > 0
+eMBException
+eMBFuncWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usRegCount;
+ UCHAR ucRegByteCount;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen >= ( MB_PDU_FUNC_WRITE_MUL_SIZE_MIN + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_REGCNT_OFF] << 8 );
+ usRegCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_WRITE_MUL_REGCNT_OFF + 1] );
+
+ ucRegByteCount = pucFrame[MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF];
+
+ if( ( usRegCount >= 1 ) &&
+ ( usRegCount <= MB_PDU_FUNC_WRITE_MUL_REGCNT_MAX ) &&
+ ( ucRegByteCount == ( UCHAR ) ( 2 * usRegCount ) ) )
+ {
+ /* Make callback to update the register values. */
+ eRegStatus =
+ eMBRegHoldingCB( &pucFrame[MB_PDU_FUNC_WRITE_MUL_VALUES_OFF],
+ usRegAddress, usRegCount, MB_REG_WRITE );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ /* The response contains the function code, the starting
+ * address and the quantity of registers. We reuse the
+ * old values in the buffer because they are still valid.
+ */
+ *usLen = MB_PDU_FUNC_WRITE_MUL_BYTECNT_OFF;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid request because the length is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+#endif
+
+#if MB_FUNC_READ_HOLDING_ENABLED > 0
+
+eMBException
+eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usRegCount;
+ UCHAR *pucFrameCur;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF] << 8 );
+ usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] );
+
+ /* Check if the number of registers to read is valid. If not
+ * return Modbus illegal data value exception.
+ */
+ if( ( usRegCount >= 1 ) && ( usRegCount <= MB_PDU_FUNC_READ_REGCNT_MAX ) )
+ {
+ /* Set the current PDU data pointer to the beginning. */
+ pucFrameCur = &pucFrame[MB_PDU_FUNC_OFF];
+ *usLen = MB_PDU_FUNC_OFF;
+
+ /* First byte contains the function code. */
+ *pucFrameCur++ = MB_FUNC_READ_HOLDING_REGISTER;
+ *usLen += 1;
+
+ /* Second byte in the response contain the number of bytes. */
+ *pucFrameCur++ = ( UCHAR ) ( usRegCount * 2 );
+ *usLen += 1;
+
+ /* Make callback to fill the buffer. */
+ eRegStatus = eMBRegHoldingCB( pucFrameCur, usRegAddress, usRegCount, MB_REG_READ );
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ *usLen += usRegCount * 2;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid request because the length is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#endif
+
+#if MB_FUNC_READWRITE_HOLDING_ENABLED > 0
+
+eMBException
+eMBFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegReadAddress;
+ USHORT usRegReadCount;
+ USHORT usRegWriteAddress;
+ USHORT usRegWriteCount;
+ UCHAR ucRegWriteByteCount;
+ UCHAR *pucFrameCur;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen >= ( MB_PDU_FUNC_READWRITE_SIZE_MIN + MB_PDU_SIZE_MIN ) )
+ {
+ usRegReadAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_READ_ADDR_OFF] << 8U );
+ usRegReadAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_READ_ADDR_OFF + 1] );
+ usRegReadAddress++;
+
+ usRegReadCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_READ_REGCNT_OFF] << 8U );
+ usRegReadCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_READ_REGCNT_OFF + 1] );
+
+ usRegWriteAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_WRITE_ADDR_OFF] << 8U );
+ usRegWriteAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_WRITE_ADDR_OFF + 1] );
+ usRegWriteAddress++;
+
+ usRegWriteCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_WRITE_REGCNT_OFF] << 8U );
+ usRegWriteCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READWRITE_WRITE_REGCNT_OFF + 1] );
+
+ ucRegWriteByteCount = pucFrame[MB_PDU_FUNC_READWRITE_BYTECNT_OFF];
+
+ if( ( usRegReadCount >= 1 ) && ( usRegReadCount <= 0x7D ) &&
+ ( usRegWriteCount >= 1 ) && ( usRegWriteCount <= 0x79 ) &&
+ ( ( 2 * usRegWriteCount ) == ucRegWriteByteCount ) )
+ {
+ /* Make callback to update the register values. */
+ eRegStatus = eMBRegHoldingCB( &pucFrame[MB_PDU_FUNC_READWRITE_WRITE_VALUES_OFF],
+ usRegWriteAddress, usRegWriteCount, MB_REG_WRITE );
+
+ if( eRegStatus == MB_ENOERR )
+ {
+ /* Set the current PDU data pointer to the beginning. */
+ pucFrameCur = &pucFrame[MB_PDU_FUNC_OFF];
+ *usLen = MB_PDU_FUNC_OFF;
+
+ /* First byte contains the function code. */
+ *pucFrameCur++ = MB_FUNC_READWRITE_MULTIPLE_REGISTERS;
+ *usLen += 1;
+
+ /* Second byte in the response contain the number of bytes. */
+ *pucFrameCur++ = ( UCHAR ) ( usRegReadCount * 2 );
+ *usLen += 1;
+
+ /* Make the read callback. */
+ eRegStatus =
+ eMBRegHoldingCB( pucFrameCur, usRegReadAddress, usRegReadCount, MB_REG_READ );
+ if( eRegStatus == MB_ENOERR )
+ {
+ *usLen += 2 * usRegReadCount;
+ }
+ }
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ return eStatus;
+}
+
+#endif
diff --git a/FreeModbus/modbus/functions/mbfuncinput.c b/FreeModbus/modbus/functions/mbfuncinput.c
new file mode 100644
index 0000000..3766a3f
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfuncinput.c
@@ -0,0 +1,122 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfuncinput.c,v 1.10 2007/09/12 10:15:56 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbconfig.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_PDU_FUNC_READ_ADDR_OFF ( MB_PDU_DATA_OFF )
+#define MB_PDU_FUNC_READ_REGCNT_OFF ( MB_PDU_DATA_OFF + 2 )
+#define MB_PDU_FUNC_READ_SIZE ( 4 )
+#define MB_PDU_FUNC_READ_REGCNT_MAX ( 0x007D )
+
+#define MB_PDU_FUNC_READ_RSP_BYTECNT_OFF ( MB_PDU_DATA_OFF )
+
+/* ----------------------- Static functions ---------------------------------*/
+eMBException prveMBError2Exception( eMBErrorCode eErrorCode );
+
+/* ----------------------- Start implementation -----------------------------*/
+#if MB_FUNC_READ_INPUT_ENABLED > 0
+
+eMBException
+eMBFuncReadInputRegister( UCHAR * pucFrame, USHORT * usLen )
+{
+ USHORT usRegAddress;
+ USHORT usRegCount;
+ UCHAR *pucFrameCur;
+
+ eMBException eStatus = MB_EX_NONE;
+ eMBErrorCode eRegStatus;
+
+ if( *usLen == ( MB_PDU_FUNC_READ_SIZE + MB_PDU_SIZE_MIN ) )
+ {
+ usRegAddress = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF] << 8 );
+ usRegAddress |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_ADDR_OFF + 1] );
+ usRegAddress++;
+
+ usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF] << 8 );
+ usRegCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] );
+
+ /* Check if the number of registers to read is valid. If not
+ * return Modbus illegal data value exception.
+ */
+ if( ( usRegCount >= 1 )
+ && ( usRegCount < MB_PDU_FUNC_READ_REGCNT_MAX ) )
+ {
+ /* Set the current PDU data pointer to the beginning. */
+ pucFrameCur = &pucFrame[MB_PDU_FUNC_OFF];
+ *usLen = MB_PDU_FUNC_OFF;
+
+ /* First byte contains the function code. */
+ *pucFrameCur++ = MB_FUNC_READ_INPUT_REGISTER;
+ *usLen += 1;
+
+ /* Second byte in the response contain the number of bytes. */
+ *pucFrameCur++ = ( UCHAR )( usRegCount * 2 );
+ *usLen += 1;
+
+ eRegStatus =
+ eMBRegInputCB( pucFrameCur, usRegAddress, usRegCount );
+
+ /* If an error occured convert it into a Modbus exception. */
+ if( eRegStatus != MB_ENOERR )
+ {
+ eStatus = prveMBError2Exception( eRegStatus );
+ }
+ else
+ {
+ *usLen += usRegCount * 2;
+ }
+ }
+ else
+ {
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ }
+ else
+ {
+ /* Can't be a valid read input register request because the length
+ * is incorrect. */
+ eStatus = MB_EX_ILLEGAL_DATA_VALUE;
+ }
+ return eStatus;
+}
+
+#endif
diff --git a/FreeModbus/modbus/functions/mbfuncother.c b/FreeModbus/modbus/functions/mbfuncother.c
new file mode 100644
index 0000000..95f9603
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbfuncother.c
@@ -0,0 +1,88 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfuncother.c,v 1.8 2006/12/07 22:10:34 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbconfig.h"
+
+#if MB_FUNC_OTHER_REP_SLAVEID_ENABLED > 0
+
+/* ----------------------- Static variables ---------------------------------*/
+static UCHAR ucMBSlaveID[MB_FUNC_OTHER_REP_SLAVEID_BUF];
+static USHORT usMBSlaveIDLen;
+
+/* ----------------------- Start implementation -----------------------------*/
+
+eMBErrorCode
+eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,
+ UCHAR const *pucAdditional, USHORT usAdditionalLen )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ /* the first byte and second byte in the buffer is reserved for
+ * the parameter ucSlaveID and the running flag. The rest of
+ * the buffer is available for additional data. */
+ if( usAdditionalLen + 2 < MB_FUNC_OTHER_REP_SLAVEID_BUF )
+ {
+ usMBSlaveIDLen = 0;
+ ucMBSlaveID[usMBSlaveIDLen++] = ucSlaveID;
+ ucMBSlaveID[usMBSlaveIDLen++] = ( UCHAR )( xIsRunning ? 0xFF : 0x00 );
+ if( usAdditionalLen > 0 )
+ {
+ memcpy( &ucMBSlaveID[usMBSlaveIDLen], pucAdditional,
+ ( size_t )usAdditionalLen );
+ usMBSlaveIDLen += usAdditionalLen;
+ }
+ }
+ else
+ {
+ eStatus = MB_ENORES;
+ }
+ return eStatus;
+}
+
+eMBException
+eMBFuncReportSlaveID( UCHAR * pucFrame, USHORT * usLen )
+{
+ memcpy( &pucFrame[MB_PDU_DATA_OFF], &ucMBSlaveID[0], ( size_t )usMBSlaveIDLen );
+ *usLen = ( USHORT )( MB_PDU_DATA_OFF + usMBSlaveIDLen );
+ return MB_EX_NONE;
+}
+
+#endif
diff --git a/FreeModbus/modbus/functions/mbutils.c b/FreeModbus/modbus/functions/mbutils.c
new file mode 100644
index 0000000..2d49ed3
--- /dev/null
+++ b/FreeModbus/modbus/functions/mbutils.c
@@ -0,0 +1,141 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbutils.c,v 1.6 2007/02/18 23:49:07 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbproto.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define BITS_UCHAR 8U
+
+/* ----------------------- Start implementation -----------------------------*/
+void
+xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits,
+ UCHAR ucValue )
+{
+ USHORT usWordBuf;
+ USHORT usMask;
+ USHORT usByteOffset;
+ USHORT usNPreBits;
+ USHORT usValue = ucValue;
+
+ assert_param( ucNBits <= 8 );
+ assert_param( ( size_t )BITS_UCHAR == sizeof( UCHAR ) * 8 );
+
+ /* Calculate byte offset for first byte containing the bit values starting
+ * at usBitOffset. */
+ usByteOffset = ( USHORT )( ( usBitOffset ) / BITS_UCHAR );
+
+ /* How many bits precede our bits to set. */
+ usNPreBits = ( USHORT )( usBitOffset - usByteOffset * BITS_UCHAR );
+
+ /* Move bit field into position over bits to set */
+ usValue <<= usNPreBits;
+
+ /* Prepare a mask for setting the new bits. */
+ usMask = ( USHORT )( ( 1 << ( USHORT ) ucNBits ) - 1 );
+ usMask <<= usBitOffset - usByteOffset * BITS_UCHAR;
+
+ /* copy bits into temporary storage. */
+ usWordBuf = ucByteBuf[usByteOffset];
+ usWordBuf |= ucByteBuf[usByteOffset + 1] << BITS_UCHAR;
+
+ /* Zero out bit field bits and then or value bits into them. */
+ usWordBuf = ( USHORT )( ( usWordBuf & ( ~usMask ) ) | usValue );
+
+ /* move bits back into storage */
+ ucByteBuf[usByteOffset] = ( UCHAR )( usWordBuf & 0xFF );
+ ucByteBuf[usByteOffset + 1] = ( UCHAR )( usWordBuf >> BITS_UCHAR );
+}
+
+UCHAR
+xMBUtilGetBits( UCHAR * ucByteBuf, USHORT usBitOffset, UCHAR ucNBits )
+{
+ USHORT usWordBuf;
+ USHORT usMask;
+ USHORT usByteOffset;
+ USHORT usNPreBits;
+
+ /* Calculate byte offset for first byte containing the bit values starting
+ * at usBitOffset. */
+ usByteOffset = ( USHORT )( ( usBitOffset ) / BITS_UCHAR );
+
+ /* How many bits precede our bits to set. */
+ usNPreBits = ( USHORT )( usBitOffset - usByteOffset * BITS_UCHAR );
+
+ /* Prepare a mask for setting the new bits. */
+ usMask = ( USHORT )( ( 1 << ( USHORT ) ucNBits ) - 1 );
+
+ /* copy bits into temporary storage. */
+ usWordBuf = ucByteBuf[usByteOffset];
+ usWordBuf |= ucByteBuf[usByteOffset + 1] << BITS_UCHAR;
+
+ /* throw away unneeded bits. */
+ usWordBuf >>= usNPreBits;
+
+ /* mask away bits above the requested bitfield. */
+ usWordBuf &= usMask;
+
+ return ( UCHAR ) usWordBuf;
+}
+
+eMBException
+prveMBError2Exception( eMBErrorCode eErrorCode )
+{
+ eMBException eStatus;
+
+ switch ( eErrorCode )
+ {
+ case MB_ENOERR:
+ eStatus = MB_EX_NONE;
+ break;
+
+ case MB_ENOREG:
+ eStatus = MB_EX_ILLEGAL_DATA_ADDRESS;
+ break;
+
+ case MB_ETIMEDOUT:
+ eStatus = MB_EX_SLAVE_BUSY;
+ break;
+
+ default:
+ eStatus = MB_EX_SLAVE_DEVICE_FAILURE;
+ break;
+ }
+
+ return eStatus;
+}
diff --git a/FreeModbus/modbus/include/mb.h b/FreeModbus/modbus/include/mb.h
new file mode 100644
index 0000000..14b6cb9
--- /dev/null
+++ b/FreeModbus/modbus/include/mb.h
@@ -0,0 +1,417 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mb.h,v 1.17 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_H
+#define _MB_H
+
+#include "port.h"
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+
+#include "mbport.h"
+#include "mbproto.h"
+
+/*! \defgroup modbus Modbus
+ * \code #include "mb.h" \endcode
+ *
+ * This module defines the interface for the application. It contains
+ * the basic functions and types required to use the Modbus protocol stack.
+ * A typical application will want to call eMBInit() first. If the device
+ * is ready to answer network requests it must then call eMBEnable() to activate
+ * the protocol stack. In the main loop the function eMBPoll() must be called
+ * periodically. The time interval between pooling depends on the configured
+ * Modbus timeout. If an RTOS is available a separate task should be created
+ * and the task should always call the function eMBPoll().
+ *
+ * \code
+ * // Initialize protocol stack in RTU mode for a slave with address 10 = 0x0A
+ * eMBInit( MB_RTU, 0x0A, 38400, MB_PAR_EVEN );
+ * // Enable the Modbus Protocol Stack.
+ * eMBEnable( );
+ * for( ;; )
+ * {
+ * // Call the main polling loop of the Modbus protocol stack.
+ * eMBPoll( );
+ * ...
+ * }
+ * \endcode
+ */
+
+/* ----------------------- Defines ------------------------------------------*/
+
+/*! \ingroup modbus
+ * \brief Use the default Modbus TCP port (502)
+ */
+#define MB_TCP_PORT_USE_DEFAULT 0
+
+/* ----------------------- Type definitions ---------------------------------*/
+
+/*! \ingroup modbus
+ * \brief Modbus serial transmission modes (RTU/ASCII).
+ *
+ * Modbus serial supports two transmission modes. Either ASCII or RTU. RTU
+ * is faster but has more hardware requirements and requires a network with
+ * a low jitter. ASCII is slower and more reliable on slower links (E.g. modems)
+ */
+ typedef enum
+{
+ MB_RTU, /*!< RTU transmission mode. */
+ MB_ASCII, /*!< ASCII transmission mode. */
+ MB_TCP /*!< TCP mode. */
+} eMBMode;
+
+/*! \ingroup modbus
+ * \brief If register should be written or read.
+ *
+ * This value is passed to the callback functions which support either
+ * reading or writing register values. Writing means that the application
+ * registers should be updated and reading means that the modbus protocol
+ * stack needs to know the current register values.
+ *
+ * \see eMBRegHoldingCB( ), eMBRegCoilsCB( ), eMBRegDiscreteCB( ) and
+ * eMBRegInputCB( ).
+ */
+typedef enum
+{
+ MB_REG_READ, /*!< Read register values and pass to protocol stack. */
+ MB_REG_WRITE /*!< Update register values. */
+} eMBRegisterMode;
+
+/*! \ingroup modbus
+ * \brief Errorcodes used by all function in the protocol stack.
+ */
+typedef enum
+{
+ MB_ENOERR, /*!< no error. */
+ MB_ENOREG, /*!< illegal register address. */
+ MB_EINVAL, /*!< illegal argument. */
+ MB_EPORTERR, /*!< porting layer error. */
+ MB_ENORES, /*!< insufficient resources. */
+ MB_EIO, /*!< I/O error. */
+ MB_EILLSTATE, /*!< protocol stack in illegal state. */
+ MB_ETIMEDOUT /*!< timeout error occurred. */
+} eMBErrorCode;
+
+
+/* ----------------------- Function prototypes ------------------------------*/
+/*! \ingroup modbus
+ * \brief Initialize the Modbus protocol stack.
+ *
+ * This functions initializes the ASCII or RTU module and calls the
+ * init functions of the porting layer to prepare the hardware. Please
+ * note that the receiver is still disabled and no Modbus frames are
+ * processed until eMBEnable( ) has been called.
+ *
+ * \param eMode If ASCII or RTU mode should be used.
+ * \param ucSlaveAddress The slave address. Only frames sent to this
+ * address or to the broadcast address are processed.
+ * \param ucPort The port to use. E.g. 1 for COM1 on windows. This value
+ * is platform dependent and some ports simply choose to ignore it.
+ * \param ulBaudRate The baudrate. E.g. 19200. Supported baudrates depend
+ * on the porting layer.
+ * \param eParity Parity used for serial transmission.
+ *
+ * \return If no error occurs the function returns eMBErrorCode::MB_ENOERR.
+ * The protocol is then in the disabled state and ready for activation
+ * by calling eMBEnable( ). Otherwise one of the following error codes
+ * is returned:
+ * - eMBErrorCode::MB_EINVAL If the slave address was not valid. Valid
+ * slave addresses are in the range 1 - 247.
+ * - eMBErrorCode::MB_EPORTERR IF the porting layer returned an error.
+ */
+eMBErrorCode eMBInit( eMBMode eMode, UCHAR ucSlaveAddress,
+ UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity );
+
+/*! \ingroup modbus
+ * \brief Initialize the Modbus protocol stack for Modbus TCP.
+ *
+ * This function initializes the Modbus TCP Module. Please note that
+ * frame processing is still disabled until eMBEnable( ) is called.
+ *
+ * \param usTCPPort The TCP port to listen on.
+ * \return If the protocol stack has been initialized correctly the function
+ * returns eMBErrorCode::MB_ENOERR. Otherwise one of the following error
+ * codes is returned:
+ * - eMBErrorCode::MB_EINVAL If the slave address was not valid. Valid
+ * slave addresses are in the range 1 - 247.
+ * - eMBErrorCode::MB_EPORTERR IF the porting layer returned an error.
+ */
+eMBErrorCode eMBTCPInit( USHORT usTCPPort );
+
+/*! \ingroup modbus
+ * \brief Release resources used by the protocol stack.
+ *
+ * This function disables the Modbus protocol stack and release all
+ * hardware resources. It must only be called when the protocol stack
+ * is disabled.
+ *
+ * \note Note all ports implement this function. A port which wants to
+ * get an callback must define the macro MB_PORT_HAS_CLOSE to 1.
+ *
+ * \return If the resources where released it return eMBErrorCode::MB_ENOERR.
+ * If the protocol stack is not in the disabled state it returns
+ * eMBErrorCode::MB_EILLSTATE.
+ */
+eMBErrorCode eMBClose( void );
+
+/*! \ingroup modbus
+ * \brief Enable the Modbus protocol stack.
+ *
+ * This function enables processing of Modbus frames. Enabling the protocol
+ * stack is only possible if it is in the disabled state.
+ *
+ * \return If the protocol stack is now in the state enabled it returns
+ * eMBErrorCode::MB_ENOERR. If it was not in the disabled state it
+ * return eMBErrorCode::MB_EILLSTATE.
+ */
+eMBErrorCode eMBEnable( void );
+
+/*! \ingroup modbus
+ * \brief Disable the Modbus protocol stack.
+ *
+ * This function disables processing of Modbus frames.
+ *
+ * \return If the protocol stack has been disabled it returns
+ * eMBErrorCode::MB_ENOERR. If it was not in the enabled state it returns
+ * eMBErrorCode::MB_EILLSTATE.
+ */
+eMBErrorCode eMBDisable( void );
+
+/*! \ingroup modbus
+ * \brief The main pooling loop of the Modbus protocol stack.
+ *
+ * This function must be called periodically. The timer interval required
+ * is given by the application dependent Modbus slave timeout. Internally the
+ * function calls xMBPortEventGet() and waits for an event from the receiver or
+ * transmitter state machines.
+ *
+ * \return If the protocol stack is not in the enabled state the function
+ * returns eMBErrorCode::MB_EILLSTATE. Otherwise it returns
+ * eMBErrorCode::MB_ENOERR.
+ */
+eMBErrorCode eMBPoll( void );
+
+/*! \ingroup modbus
+ * \brief Configure the slave id of the device.
+ *
+ * This function should be called when the Modbus function Report Slave ID
+ * is enabled ( By defining MB_FUNC_OTHER_REP_SLAVEID_ENABLED in mbconfig.h ).
+ *
+ * \param ucSlaveID Values is returned in the Slave ID byte of the
+ * Report Slave ID response.
+ * \param xIsRunning If TRUE the Run Indicator Status byte is set to 0xFF.
+ * otherwise the Run Indicator Status is 0x00.
+ * \param pucAdditional Values which should be returned in the Additional
+ * bytes of the Report Slave ID response.
+ * \param usAdditionalLen Length of the buffer pucAdditonal
.
+ *
+ * \return If the static buffer defined by MB_FUNC_OTHER_REP_SLAVEID_BUF in
+ * mbconfig.h is to small it returns eMBErrorCode::MB_ENORES. Otherwise
+ * it returns eMBErrorCode::MB_ENOERR.
+ */
+eMBErrorCode eMBSetSlaveID( UCHAR ucSlaveID, BOOL xIsRunning,
+ UCHAR const *pucAdditional,
+ USHORT usAdditionalLen );
+
+/*! \ingroup modbus
+ * \brief Registers a callback handler for a given function code.
+ *
+ * This function registers a new callback handler for a given function code.
+ * The callback handler supplied is responsible for interpreting the Modbus PDU and
+ * the creation of an appropriate response. In case of an error it should return
+ * one of the possible Modbus exceptions which results in a Modbus exception frame
+ * sent by the protocol stack.
+ *
+ * \param ucFunctionCode The Modbus function code for which this handler should
+ * be registers. Valid function codes are in the range 1 to 127.
+ * \param pxHandler The function handler which should be called in case
+ * such a frame is received. If \c NULL a previously registered function handler
+ * for this function code is removed.
+ *
+ * \return eMBErrorCode::MB_ENOERR if the handler has been installed. If no
+ * more resources are available it returns eMBErrorCode::MB_ENORES. In this
+ * case the values in mbconfig.h should be adjusted. If the argument was not
+ * valid it returns eMBErrorCode::MB_EINVAL.
+ */
+eMBErrorCode eMBRegisterCB( UCHAR ucFunctionCode,
+ pxMBFunctionHandler pxHandler );
+
+/* ----------------------- Callback -----------------------------------------*/
+
+/*! \defgroup modbus_registers Modbus Registers
+ * \code #include "mb.h" \endcode
+ * The protocol stack does not internally allocate any memory for the
+ * registers. This makes the protocol stack very small and also usable on
+ * low end targets. In addition the values don't have to be in the memory
+ * and could for example be stored in a flash.
+ * Whenever the protocol stack requires a value it calls one of the callback
+ * function with the register address and the number of registers to read
+ * as an argument. The application should then read the actual register values
+ * (for example the ADC voltage) and should store the result in the supplied
+ * buffer.
+ * If the protocol stack wants to update a register value because a write
+ * register function was received a buffer with the new register values is
+ * passed to the callback function. The function should then use these values
+ * to update the application register values.
+ */
+
+/*! \ingroup modbus_registers
+ * \brief Callback function used if the value of a Input Register
+ * is required by the protocol stack. The starting register address is given
+ * by \c usAddress and the last register is given by usAddress +
+ * usNRegs - 1.
+ *
+ * \param pucRegBuffer A buffer where the callback function should write
+ * the current value of the modbus registers to.
+ * \param usAddress The starting address of the register. Input registers
+ * are in the range 1 - 65535.
+ * \param usNRegs Number of registers the callback function must supply.
+ *
+ * \return The function must return one of the following error codes:
+ * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal
+ * Modbus response is sent.
+ * - eMBErrorCode::MB_ENOREG If the application can not supply values
+ * for registers within this range. In this case a
+ * ILLEGAL DATA ADDRESS exception frame is sent as a response.
+ * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is
+ * currently not available and the application dependent response
+ * timeout would be violated. In this case a SLAVE DEVICE BUSY
+ * exception is sent as a response.
+ * - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
+ * a SLAVE DEVICE FAILURE exception is sent as a response.
+ */
+eMBErrorCode eMBRegInputCB( UCHAR * pucRegBuffer, USHORT usAddress,
+ USHORT usNRegs );
+
+/*! \ingroup modbus_registers
+ * \brief Callback function used if a Holding Register value is
+ * read or written by the protocol stack. The starting register address
+ * is given by \c usAddress and the last register is given by
+ * usAddress + usNRegs - 1.
+ *
+ * \param pucRegBuffer If the application registers values should be updated the
+ * buffer points to the new registers values. If the protocol stack needs
+ * to now the current values the callback function should write them into
+ * this buffer.
+ * \param usAddress The starting address of the register.
+ * \param usNRegs Number of registers to read or write.
+ * \param eMode If eMBRegisterMode::MB_REG_WRITE the application register
+ * values should be updated from the values in the buffer. For example
+ * this would be the case when the Modbus master has issued an
+ * WRITE SINGLE REGISTER command.
+ * If the value eMBRegisterMode::MB_REG_READ the application should copy
+ * the current values into the buffer \c pucRegBuffer.
+ *
+ * \return The function must return one of the following error codes:
+ * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal
+ * Modbus response is sent.
+ * - eMBErrorCode::MB_ENOREG If the application can not supply values
+ * for registers within this range. In this case a
+ * ILLEGAL DATA ADDRESS exception frame is sent as a response.
+ * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is
+ * currently not available and the application dependent response
+ * timeout would be violated. In this case a SLAVE DEVICE BUSY
+ * exception is sent as a response.
+ * - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
+ * a SLAVE DEVICE FAILURE exception is sent as a response.
+ */
+eMBErrorCode eMBRegHoldingCB( UCHAR * pucRegBuffer, USHORT usAddress,
+ USHORT usNRegs, eMBRegisterMode eMode );
+
+/*! \ingroup modbus_registers
+ * \brief Callback function used if a Coil Register value is
+ * read or written by the protocol stack. If you are going to use
+ * this function you might use the functions xMBUtilSetBits( ) and
+ * xMBUtilGetBits( ) for working with bitfields.
+ *
+ * \param pucRegBuffer The bits are packed in bytes where the first coil
+ * starting at address \c usAddress is stored in the LSB of the
+ * first byte in the buffer pucRegBuffer
.
+ * If the buffer should be written by the callback function unused
+ * coil values (I.e. if not a multiple of eight coils is used) should be set
+ * to zero.
+ * \param usAddress The first coil number.
+ * \param usNCoils Number of coil values requested.
+ * \param eMode If eMBRegisterMode::MB_REG_WRITE the application values should
+ * be updated from the values supplied in the buffer \c pucRegBuffer.
+ * If eMBRegisterMode::MB_REG_READ the application should store the current
+ * values in the buffer \c pucRegBuffer.
+ *
+ * \return The function must return one of the following error codes:
+ * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal
+ * Modbus response is sent.
+ * - eMBErrorCode::MB_ENOREG If the application does not map an coils
+ * within the requested address range. In this case a
+ * ILLEGAL DATA ADDRESS is sent as a response.
+ * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is
+ * currently not available and the application dependent response
+ * timeout would be violated. In this case a SLAVE DEVICE BUSY
+ * exception is sent as a response.
+ * - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
+ * a SLAVE DEVICE FAILURE exception is sent as a response.
+ */
+eMBErrorCode eMBRegCoilsCB( UCHAR * pucRegBuffer, USHORT usAddress,
+ USHORT usNCoils, eMBRegisterMode eMode );
+
+/*! \ingroup modbus_registers
+ * \brief Callback function used if a Input Discrete Register value is
+ * read by the protocol stack.
+ *
+ * If you are going to use his function you might use the functions
+ * xMBUtilSetBits( ) and xMBUtilGetBits( ) for working with bitfields.
+ *
+ * \param pucRegBuffer The buffer should be updated with the current
+ * coil values. The first discrete input starting at \c usAddress must be
+ * stored at the LSB of the first byte in the buffer. If the requested number
+ * is not a multiple of eight the remaining bits should be set to zero.
+ * \param usAddress The starting address of the first discrete input.
+ * \param usNDiscrete Number of discrete input values.
+ * \return The function must return one of the following error codes:
+ * - eMBErrorCode::MB_ENOERR If no error occurred. In this case a normal
+ * Modbus response is sent.
+ * - eMBErrorCode::MB_ENOREG If no such discrete inputs exists.
+ * In this case a ILLEGAL DATA ADDRESS exception frame is sent
+ * as a response.
+ * - eMBErrorCode::MB_ETIMEDOUT If the requested register block is
+ * currently not available and the application dependent response
+ * timeout would be violated. In this case a SLAVE DEVICE BUSY
+ * exception is sent as a response.
+ * - eMBErrorCode::MB_EIO If an unrecoverable error occurred. In this case
+ * a SLAVE DEVICE FAILURE exception is sent as a response.
+ */
+eMBErrorCode eMBRegDiscreteCB( UCHAR * pucRegBuffer, USHORT usAddress,
+ USHORT usNDiscrete );
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbconfig.h b/FreeModbus/modbus/include/mbconfig.h
new file mode 100644
index 0000000..e46f7fc
--- /dev/null
+++ b/FreeModbus/modbus/include/mbconfig.h
@@ -0,0 +1,103 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbconfig.h,v 1.14 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_CONFIG_H
+#define _MB_CONFIG_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+/* ----------------------- Defines ------------------------------------------*/
+/*! \defgroup modbus_cfg Modbus Configuration
+ *
+ * Most modules in the protocol stack are completly optional and can be
+ * excluded. This is specially important if target resources are very small
+ * and program memory space should be saved.
+ *
+ * All of these settings are available in the file mbconfig.h
+ */
+/*! \addtogroup modbus_cfg
+ * @{
+ */
+/*! \brief If Modbus ASCII support is enabled. */
+#define MB_ASCII_ENABLED ( 0 )
+/*! \brief If Modbus RTU support is enabled. */
+#define MB_RTU_ENABLED ( 1 )
+/*! \brief If Modbus TCP support is enabled. */
+#define MB_TCP_ENABLED ( 0 )
+/*! \brief The character timeout value for Modbus ASCII.
+ *
+ * The character timeout value is not fixed for Modbus ASCII and is therefore
+ * a configuration option. It should be set to the maximum expected delay
+ * time of the network.
+ */
+#define MB_ASCII_TIMEOUT_SEC ( 1 )
+/*! \brief Maximum number of Modbus functions codes the protocol stack
+ * should support.
+ *
+ * The maximum number of supported Modbus functions must be greater than
+ * the sum of all enabled functions in this file and custom function
+ * handlers. If set to small adding more functions will fail.
+ */
+#define MB_FUNC_HANDLERS_MAX ( 16 )
+/*! \brief Number of bytes which should be allocated for the Report Slave ID
+ * command.
+ *
+ * This number limits the maximum size of the additional segment in the
+ * report slave id function. See eMBSetSlaveID( ) for more information on
+ * how to set this value. It is only used if MB_FUNC_OTHER_REP_SLAVEID_ENABLED
+ * is set to 1
.
+ */
+#define MB_FUNC_OTHER_REP_SLAVEID_BUF ( 32 )
+/*! \brief If the Report Slave ID function should be enabled. */
+#define MB_FUNC_OTHER_REP_SLAVEID_ENABLED ( 1 )
+/*! \brief If the Read Input Registers function should be enabled. */
+#define MB_FUNC_READ_INPUT_ENABLED ( 1 )
+/*! \brief If the Read Holding Registers function should be enabled. */
+#define MB_FUNC_READ_HOLDING_ENABLED ( 1 )
+/*! \brief If the Write Single Register function should be enabled. */
+#define MB_FUNC_WRITE_HOLDING_ENABLED ( 1 )
+/*! \brief If the Write Multiple registers function should be enabled. */
+#define MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED ( 1 )
+/*! \brief If the Read Coils function should be enabled. */
+#define MB_FUNC_READ_COILS_ENABLED ( 1 )
+/*! \brief If the Write Coils function should be enabled. */
+#define MB_FUNC_WRITE_COIL_ENABLED ( 1 )
+/*! \brief If the Write Multiple Coils function should be enabled. */
+#define MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED ( 1 )
+/*! \brief If the Read Discrete Inputs function should be enabled. */
+#define MB_FUNC_READ_DISCRETE_INPUTS_ENABLED ( 1 )
+/*! \brief If the Read/Write Multiple Registers function should be enabled. */
+#define MB_FUNC_READWRITE_HOLDING_ENABLED ( 1 )
+/*! @} */
+#ifdef __cplusplus
+ PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbframe.h b/FreeModbus/modbus/include/mbframe.h
new file mode 100644
index 0000000..f854da6
--- /dev/null
+++ b/FreeModbus/modbus/include/mbframe.h
@@ -0,0 +1,87 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbframe.h,v 1.9 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_FRAME_H
+#define _MB_FRAME_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+
+/*!
+ * Constants which defines the format of a modbus frame. The example is
+ * shown for a Modbus RTU/ASCII frame. Note that the Modbus PDU is not
+ * dependent on the underlying transport.
+ *
+ *
+ * <------------------------ MODBUS SERIAL LINE PDU (1) ------------------->
+ * <----------- MODBUS PDU (1') ---------------->
+ * +-----------+---------------+----------------------------+-------------+
+ * | Address | Function Code | Data | CRC/LRC |
+ * +-----------+---------------+----------------------------+-------------+
+ * | | | |
+ * (2) (3/2') (3') (4)
+ *
+ * (1) ... MB_SER_PDU_SIZE_MAX = 256
+ * (2) ... MB_SER_PDU_ADDR_OFF = 0
+ * (3) ... MB_SER_PDU_PDU_OFF = 1
+ * (4) ... MB_SER_PDU_SIZE_CRC = 2
+ *
+ * (1') ... MB_PDU_SIZE_MAX = 253
+ * (2') ... MB_PDU_FUNC_OFF = 0
+ * (3') ... MB_PDU_DATA_OFF = 1
+ *
+ */
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_PDU_SIZE_MAX 253 /*!< Maximum size of a PDU. */
+#define MB_PDU_SIZE_MIN 1 /*!< Function Code */
+#define MB_PDU_FUNC_OFF 0 /*!< Offset of function code in PDU. */
+#define MB_PDU_DATA_OFF 1 /*!< Offset for response data in PDU. */
+
+/* ----------------------- Prototypes 0-------------------------------------*/
+typedef void ( *pvMBFrameStart ) ( void );
+
+typedef void ( *pvMBFrameStop ) ( void );
+
+typedef eMBErrorCode( *peMBFrameReceive ) ( UCHAR * pucRcvAddress,
+ UCHAR ** pucFrame,
+ USHORT * pusLength );
+
+typedef eMBErrorCode( *peMBFrameSend ) ( UCHAR slaveAddress,
+ const UCHAR * pucFrame,
+ USHORT usLength );
+
+typedef void( *pvMBFrameClose ) ( void );
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbfunc.h b/FreeModbus/modbus/include/mbfunc.h
new file mode 100644
index 0000000..988b85e
--- /dev/null
+++ b/FreeModbus/modbus/include/mbfunc.h
@@ -0,0 +1,80 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbfunc.h,v 1.12 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_FUNC_H
+#define _MB_FUNC_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+#if MB_FUNC_OTHER_REP_SLAVEID_BUF > 0
+ eMBException eMBFuncReportSlaveID( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_READ_INPUT_ENABLED > 0
+eMBException eMBFuncReadInputRegister( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_READ_HOLDING_ENABLED > 0
+eMBException eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_WRITE_HOLDING_ENABLED > 0
+eMBException eMBFuncWriteHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED > 0
+eMBException eMBFuncWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_READ_COILS_ENABLED > 0
+eMBException eMBFuncReadCoils( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_WRITE_COIL_ENABLED > 0
+eMBException eMBFuncWriteCoil( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED > 0
+eMBException eMBFuncWriteMultipleCoils( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_READ_DISCRETE_INPUTS_ENABLED > 0
+eMBException eMBFuncReadDiscreteInputs( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#if MB_FUNC_READWRITE_HOLDING_ENABLED > 0
+eMBException eMBFuncReadWriteMultipleHoldingRegister( UCHAR * pucFrame, USHORT * usLen );
+#endif
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbport.h b/FreeModbus/modbus/include/mbport.h
new file mode 100644
index 0000000..7df2599
--- /dev/null
+++ b/FreeModbus/modbus/include/mbport.h
@@ -0,0 +1,127 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbport.h,v 1.17 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_PORT_H
+#define _MB_PORT_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+
+/* ----------------------- Type definitions ---------------------------------*/
+
+typedef enum
+{
+ EV_READY, /*!< Startup finished. */
+ EV_FRAME_RECEIVED, /*!< Frame received. */
+ EV_EXECUTE, /*!< Execute function. */
+ EV_FRAME_SENT /*!< Frame sent. */
+} eMBEventType;
+
+/*! \ingroup modbus
+ * \brief Parity used for characters in serial mode.
+ *
+ * The parity which should be applied to the characters sent over the serial
+ * link. Please note that this values are actually passed to the porting
+ * layer and therefore not all parity modes might be available.
+ */
+typedef enum
+{
+ MB_PAR_NONE, /*!< No parity. */
+ MB_PAR_ODD, /*!< Odd parity. */
+ MB_PAR_EVEN /*!< Even parity. */
+} eMBParity;
+
+/* ----------------------- Supporting functions -----------------------------*/
+BOOL xMBPortEventInit( void );
+
+BOOL xMBPortEventPost( eMBEventType eEvent );
+
+BOOL xMBPortEventGet( /*@out@ */ eMBEventType * eEvent );
+
+/* ----------------------- Serial port functions ----------------------------*/
+
+BOOL xMBPortSerialInit( UCHAR ucPort, ULONG ulBaudRate,
+ UCHAR ucDataBits, eMBParity eParity );
+
+void vMBPortClose( void );
+
+void xMBPortSerialClose( void );
+
+void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable );
+
+INLINE BOOL xMBPortSerialGetByte( CHAR * pucByte );
+
+INLINE BOOL xMBPortSerialPutByte( CHAR ucByte );
+
+/* ----------------------- Timers functions ---------------------------------*/
+BOOL xMBPortTimersInit( USHORT usTimeOut50us );
+
+void xMBPortTimersClose( void );
+
+INLINE void vMBPortTimersEnable( void );
+
+INLINE void vMBPortTimersDisable( void );
+
+/* ----------------------- Callback for the protocol stack ------------------*/
+
+/*!
+ * \brief Callback function for the porting layer when a new byte is
+ * available.
+ *
+ * Depending upon the mode this callback function is used by the RTU or
+ * ASCII transmission layers. In any case a call to xMBPortSerialGetByte()
+ * must immediately return a new character.
+ *
+ * \return TRUE
if a event was posted to the queue because
+ * a new byte was received. The port implementation should wake up the
+ * tasks which are currently blocked on the eventqueue.
+ */
+extern BOOL( *pxMBFrameCBByteReceived ) ( void );
+
+extern BOOL( *pxMBFrameCBTransmitterEmpty ) ( void );
+
+extern BOOL( *pxMBPortCBTimerExpired ) ( void );
+
+/* ----------------------- TCP port functions -------------------------------*/
+BOOL xMBTCPPortInit( USHORT usTCPPort );
+
+void vMBTCPPortClose( void );
+
+void vMBTCPPortDisable( void );
+
+BOOL xMBTCPPortGetRequest( UCHAR **ppucMBTCPFrame, USHORT * usTCPLength );
+
+BOOL xMBTCPPortSendResponse( const UCHAR *pucMBTCPFrame, USHORT usTCPLength );
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbproto.h b/FreeModbus/modbus/include/mbproto.h
new file mode 100644
index 0000000..fe16fb9
--- /dev/null
+++ b/FreeModbus/modbus/include/mbproto.h
@@ -0,0 +1,83 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbproto.h,v 1.14 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_PROTO_H
+#define _MB_PROTO_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_ADDRESS_BROADCAST ( 0 ) /*! Modbus broadcast address. */
+#define MB_ADDRESS_MIN ( 1 ) /*! Smallest possible slave address. */
+#define MB_ADDRESS_MAX ( 247 ) /*! Biggest possible slave address. */
+#define MB_FUNC_NONE ( 0 )
+#define MB_FUNC_READ_COILS ( 1 )
+#define MB_FUNC_READ_DISCRETE_INPUTS ( 2 )
+#define MB_FUNC_WRITE_SINGLE_COIL ( 5 )
+#define MB_FUNC_WRITE_MULTIPLE_COILS ( 15 )
+#define MB_FUNC_READ_HOLDING_REGISTER ( 3 )
+#define MB_FUNC_READ_INPUT_REGISTER ( 4 )
+#define MB_FUNC_WRITE_REGISTER ( 6 )
+#define MB_FUNC_WRITE_MULTIPLE_REGISTERS ( 16 )
+#define MB_FUNC_READWRITE_MULTIPLE_REGISTERS ( 23 )
+#define MB_FUNC_DIAG_READ_EXCEPTION ( 7 )
+#define MB_FUNC_DIAG_DIAGNOSTIC ( 8 )
+#define MB_FUNC_DIAG_GET_COM_EVENT_CNT ( 11 )
+#define MB_FUNC_DIAG_GET_COM_EVENT_LOG ( 12 )
+#define MB_FUNC_OTHER_REPORT_SLAVEID ( 17 )
+#define MB_FUNC_ERROR ( 128 )
+/* ----------------------- Type definitions ---------------------------------*/
+ typedef enum
+{
+ MB_EX_NONE = 0x00,
+ MB_EX_ILLEGAL_FUNCTION = 0x01,
+ MB_EX_ILLEGAL_DATA_ADDRESS = 0x02,
+ MB_EX_ILLEGAL_DATA_VALUE = 0x03,
+ MB_EX_SLAVE_DEVICE_FAILURE = 0x04,
+ MB_EX_ACKNOWLEDGE = 0x05,
+ MB_EX_SLAVE_BUSY = 0x06,
+ MB_EX_MEMORY_PARITY_ERROR = 0x08,
+ MB_EX_GATEWAY_PATH_FAILED = 0x0A,
+ MB_EX_GATEWAY_TGT_FAILED = 0x0B
+} eMBException;
+
+typedef eMBException( *pxMBFunctionHandler ) ( UCHAR * pucFrame, USHORT * pusLength );
+
+typedef struct
+{
+ UCHAR ucFunctionCode;
+ pxMBFunctionHandler pxHandler;
+} xMBFunctionHandler;
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/include/mbutils.h b/FreeModbus/modbus/include/mbutils.h
new file mode 100644
index 0000000..55f4334
--- /dev/null
+++ b/FreeModbus/modbus/include/mbutils.h
@@ -0,0 +1,108 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbutils.h,v 1.5 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_UTILS_H
+#define _MB_UTILS_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+/*! \defgroup modbus_utils Utilities
+ *
+ * This module contains some utility functions which can be used by
+ * the application. It includes some special functions for working with
+ * bitfields backed by a character array buffer.
+ *
+ */
+/*! \addtogroup modbus_utils
+ * @{
+ */
+/*! \brief Function to set bits in a byte buffer.
+ *
+ * This function allows the efficient use of an array to implement bitfields.
+ * The array used for storing the bits must always be a multiple of two
+ * bytes. Up to eight bits can be set or cleared in one operation.
+ *
+ * \param ucByteBuf A buffer where the bit values are stored. Must be a
+ * multiple of 2 bytes. No length checking is performed and if
+ * usBitOffset / 8 is greater than the size of the buffer memory contents
+ * is overwritten.
+ * \param usBitOffset The starting address of the bits to set. The first
+ * bit has the offset 0.
+ * \param ucNBits Number of bits to modify. The value must always be smaller
+ * than 8.
+ * \param ucValues Thew new values for the bits. The value for the first bit
+ * starting at usBitOffset
is the LSB of the value
+ * ucValues
+ *
+ * \code
+ * ucBits[2] = {0, 0};
+ *
+ * // Set bit 4 to 1 (read: set 1 bit starting at bit offset 4 to value 1)
+ * xMBUtilSetBits( ucBits, 4, 1, 1 );
+ *
+ * // Set bit 7 to 1 and bit 8 to 0.
+ * xMBUtilSetBits( ucBits, 7, 2, 0x01 );
+ *
+ * // Set bits 8 - 11 to 0x05 and bits 12 - 15 to 0x0A;
+ * xMBUtilSetBits( ucBits, 8, 8, 0x5A);
+ * \endcode
+ */
+void xMBUtilSetBits( UCHAR * ucByteBuf, USHORT usBitOffset,
+ UCHAR ucNBits, UCHAR ucValues );
+
+/*! \brief Function to read bits in a byte buffer.
+ *
+ * This function is used to extract up bit values from an array. Up to eight
+ * bit values can be extracted in one step.
+ *
+ * \param ucByteBuf A buffer where the bit values are stored.
+ * \param usBitOffset The starting address of the bits to set. The first
+ * bit has the offset 0.
+ * \param ucNBits Number of bits to modify. The value must always be smaller
+ * than 8.
+ *
+ * \code
+ * UCHAR ucBits[2] = {0, 0};
+ * UCHAR ucResult;
+ *
+ * // Extract the bits 3 - 10.
+ * ucResult = xMBUtilGetBits( ucBits, 3, 8 );
+ * \endcode
+ */
+UCHAR xMBUtilGetBits( UCHAR * ucByteBuf, USHORT usBitOffset,
+ UCHAR ucNBits );
+
+/*! @} */
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/mb.c b/FreeModbus/modbus/mb.c
new file mode 100644
index 0000000..6557813
--- /dev/null
+++ b/FreeModbus/modbus/mb.c
@@ -0,0 +1,408 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mb.c,v 1.27 2007/02/18 23:45:41 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+
+#include "mb.h"
+#include "mbconfig.h"
+#include "mbframe.h"
+#include "mbproto.h"
+#include "mbfunc.h"
+
+#include "mbport.h"
+#if MB_RTU_ENABLED == 1
+#include "mbrtu.h"
+#endif
+#if MB_ASCII_ENABLED == 1
+#include "mbascii.h"
+#endif
+#if MB_TCP_ENABLED == 1
+#include "mbtcp.h"
+#endif
+
+#ifndef MB_PORT_HAS_CLOSE
+#define MB_PORT_HAS_CLOSE 0
+#endif
+
+/* ----------------------- Static variables ---------------------------------*/
+
+static UCHAR ucMBAddress;
+static eMBMode eMBCurrentMode;
+
+static enum
+{
+ STATE_ENABLED,
+ STATE_DISABLED,
+ STATE_NOT_INITIALIZED
+} eMBState = STATE_NOT_INITIALIZED;
+
+/* Functions pointer which are initialized in eMBInit( ). Depending on the
+ * mode (RTU or ASCII) the are set to the correct implementations.
+ */
+static peMBFrameSend peMBFrameSendCur;
+static pvMBFrameStart pvMBFrameStartCur;
+static pvMBFrameStop pvMBFrameStopCur;
+static peMBFrameReceive peMBFrameReceiveCur;
+static pvMBFrameClose pvMBFrameCloseCur;
+
+/* Callback functions required by the porting layer. They are called when
+ * an external event has happend which includes a timeout or the reception
+ * or transmission of a character.
+ */
+BOOL( *pxMBFrameCBByteReceived ) ( void );
+BOOL( *pxMBFrameCBTransmitterEmpty ) ( void );
+BOOL( *pxMBPortCBTimerExpired ) ( void );
+
+BOOL( *pxMBFrameCBReceiveFSMCur ) ( void );
+BOOL( *pxMBFrameCBTransmitFSMCur ) ( void );
+
+/* An array of Modbus functions handlers which associates Modbus function
+ * codes with implementing functions.
+ */
+static xMBFunctionHandler xFuncHandlers[MB_FUNC_HANDLERS_MAX] = {
+#if MB_FUNC_OTHER_REP_SLAVEID_ENABLED > 0
+ {MB_FUNC_OTHER_REPORT_SLAVEID, eMBFuncReportSlaveID},
+#endif
+#if MB_FUNC_READ_INPUT_ENABLED > 0
+ {MB_FUNC_READ_INPUT_REGISTER, eMBFuncReadInputRegister},
+#endif
+#if MB_FUNC_READ_HOLDING_ENABLED > 0
+ {MB_FUNC_READ_HOLDING_REGISTER, eMBFuncReadHoldingRegister},
+#endif
+#if MB_FUNC_WRITE_MULTIPLE_HOLDING_ENABLED > 0
+ {MB_FUNC_WRITE_MULTIPLE_REGISTERS, eMBFuncWriteMultipleHoldingRegister},
+#endif
+#if MB_FUNC_WRITE_HOLDING_ENABLED > 0
+ {MB_FUNC_WRITE_REGISTER, eMBFuncWriteHoldingRegister},
+#endif
+#if MB_FUNC_READWRITE_HOLDING_ENABLED > 0
+ {MB_FUNC_READWRITE_MULTIPLE_REGISTERS, eMBFuncReadWriteMultipleHoldingRegister},
+#endif
+#if MB_FUNC_READ_COILS_ENABLED > 0
+ {MB_FUNC_READ_COILS, eMBFuncReadCoils},
+#endif
+#if MB_FUNC_WRITE_COIL_ENABLED > 0
+ {MB_FUNC_WRITE_SINGLE_COIL, eMBFuncWriteCoil},
+#endif
+#if MB_FUNC_WRITE_MULTIPLE_COILS_ENABLED > 0
+ {MB_FUNC_WRITE_MULTIPLE_COILS, eMBFuncWriteMultipleCoils},
+#endif
+#if MB_FUNC_READ_DISCRETE_INPUTS_ENABLED > 0
+ {MB_FUNC_READ_DISCRETE_INPUTS, eMBFuncReadDiscreteInputs},
+#endif
+};
+
+/* ----------------------- Start implementation -----------------------------*/
+eMBErrorCode
+eMBInit( eMBMode eMode, UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ /* check preconditions */
+ if( ( ucSlaveAddress == MB_ADDRESS_BROADCAST ) ||
+ ( ucSlaveAddress < MB_ADDRESS_MIN ) || ( ucSlaveAddress > MB_ADDRESS_MAX ) )
+ {
+ eStatus = MB_EINVAL;
+ }
+ else
+ {
+ ucMBAddress = ucSlaveAddress;
+
+ switch ( eMode )
+ {
+#if MB_RTU_ENABLED > 0
+ case MB_RTU:
+ pvMBFrameStartCur = eMBRTUStart;
+ pvMBFrameStopCur = eMBRTUStop;
+ peMBFrameSendCur = eMBRTUSend;
+ peMBFrameReceiveCur = eMBRTUReceive;
+ pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBPortClose : NULL;
+ pxMBFrameCBByteReceived = xMBRTUReceiveFSM;
+ pxMBFrameCBTransmitterEmpty = xMBRTUTransmitFSM;
+ pxMBPortCBTimerExpired = xMBRTUTimerT35Expired;
+
+ eStatus = eMBRTUInit( ucMBAddress, ucPort, ulBaudRate, eParity );
+ break;
+#endif
+#if MB_ASCII_ENABLED > 0
+ case MB_ASCII:
+ pvMBFrameStartCur = eMBASCIIStart;
+ pvMBFrameStopCur = eMBASCIIStop;
+ peMBFrameSendCur = eMBASCIISend;
+ peMBFrameReceiveCur = eMBASCIIReceive;
+ pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBPortClose : NULL;
+ pxMBFrameCBByteReceived = xMBASCIIReceiveFSM;
+ pxMBFrameCBTransmitterEmpty = xMBASCIITransmitFSM;
+ pxMBPortCBTimerExpired = xMBASCIITimerT1SExpired;
+
+ eStatus = eMBASCIIInit( ucMBAddress, ucPort, ulBaudRate, eParity );
+ break;
+#endif
+ default:
+ eStatus = MB_EINVAL;
+ }
+
+ if( eStatus == MB_ENOERR )
+ {
+ if( !xMBPortEventInit( ) )
+ {
+ /* port dependent event module initalization failed. */
+ eStatus = MB_EPORTERR;
+ }
+ else
+ {
+ eMBCurrentMode = eMode;
+ eMBState = STATE_DISABLED;
+ }
+ }
+ }
+ return eStatus;
+}
+
+#if MB_TCP_ENABLED > 0
+eMBErrorCode
+eMBTCPInit( USHORT ucTCPPort )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ if( ( eStatus = eMBTCPDoInit( ucTCPPort ) ) != MB_ENOERR )
+ {
+ eMBState = STATE_DISABLED;
+ }
+ else if( !xMBPortEventInit( ) )
+ {
+ /* Port dependent event module initalization failed. */
+ eStatus = MB_EPORTERR;
+ }
+ else
+ {
+ pvMBFrameStartCur = eMBTCPStart;
+ pvMBFrameStopCur = eMBTCPStop;
+ peMBFrameReceiveCur = eMBTCPReceive;
+ peMBFrameSendCur = eMBTCPSend;
+ pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBTCPPortClose : NULL;
+ ucMBAddress = MB_TCP_PSEUDO_ADDRESS;
+ eMBCurrentMode = MB_TCP;
+ eMBState = STATE_DISABLED;
+ }
+ return eStatus;
+}
+#endif
+
+eMBErrorCode
+eMBRegisterCB( UCHAR ucFunctionCode, pxMBFunctionHandler pxHandler )
+{
+ int i;
+ eMBErrorCode eStatus;
+
+ if( ( 0 < ucFunctionCode ) && ( ucFunctionCode <= 127 ) )
+ {
+ ENTER_CRITICAL_SECTION( );
+ if( pxHandler != NULL )
+ {
+ for( i = 0; i < MB_FUNC_HANDLERS_MAX; i++ )
+ {
+ if( ( xFuncHandlers[i].pxHandler == NULL ) ||
+ ( xFuncHandlers[i].pxHandler == pxHandler ) )
+ {
+ xFuncHandlers[i].ucFunctionCode = ucFunctionCode;
+ xFuncHandlers[i].pxHandler = pxHandler;
+ break;
+ }
+ }
+ eStatus = ( i != MB_FUNC_HANDLERS_MAX ) ? MB_ENOERR : MB_ENORES;
+ }
+ else
+ {
+ for( i = 0; i < MB_FUNC_HANDLERS_MAX; i++ )
+ {
+ if( xFuncHandlers[i].ucFunctionCode == ucFunctionCode )
+ {
+ xFuncHandlers[i].ucFunctionCode = 0;
+ xFuncHandlers[i].pxHandler = NULL;
+ break;
+ }
+ }
+ /* Remove can't fail. */
+ eStatus = MB_ENOERR;
+ }
+ EXIT_CRITICAL_SECTION( );
+ }
+ else
+ {
+ eStatus = MB_EINVAL;
+ }
+ return eStatus;
+}
+
+
+eMBErrorCode
+eMBClose( void )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ if( eMBState == STATE_DISABLED )
+ {
+ if( pvMBFrameCloseCur != NULL )
+ {
+ pvMBFrameCloseCur( );
+ }
+ }
+ else
+ {
+ eStatus = MB_EILLSTATE;
+ }
+ return eStatus;
+}
+
+eMBErrorCode
+eMBEnable( void )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ if( eMBState == STATE_DISABLED )
+ {
+ /* Activate the protocol stack. */
+ pvMBFrameStartCur( );
+ eMBState = STATE_ENABLED;
+ }
+ else
+ {
+ eStatus = MB_EILLSTATE;
+ }
+ return eStatus;
+}
+
+eMBErrorCode
+eMBDisable( void )
+{
+ eMBErrorCode eStatus;
+
+ if( eMBState == STATE_ENABLED )
+ {
+ pvMBFrameStopCur( );
+ eMBState = STATE_DISABLED;
+ eStatus = MB_ENOERR;
+ }
+ else if( eMBState == STATE_DISABLED )
+ {
+ eStatus = MB_ENOERR;
+ }
+ else
+ {
+ eStatus = MB_EILLSTATE;
+ }
+ return eStatus;
+}
+
+eMBErrorCode eMBPoll( void )
+{
+ static UCHAR *ucMBFrame;
+ static UCHAR ucRcvAddress;
+ static UCHAR ucFunctionCode;
+ static USHORT usLength;
+ static eMBException eException;
+
+ int i;
+ eMBErrorCode eStatus = MB_ENOERR;
+ eMBEventType eEvent;
+
+ /* Check if the protocol stack is ready. */
+ if( eMBState != STATE_ENABLED )
+ {
+ return MB_EILLSTATE;
+ }
+
+ /* Check if there is a event available. If not return control to caller.
+ * Otherwise we will handle the event. */
+ if( xMBPortEventGet( &eEvent ) == TRUE )
+ {
+ switch ( eEvent )
+ {
+ case EV_READY:
+ break;
+
+ case EV_FRAME_RECEIVED:
+ eStatus = peMBFrameReceiveCur( &ucRcvAddress, &ucMBFrame, &usLength );
+ if( eStatus == MB_ENOERR )
+ {
+ /* Check if the frame is for us. If not ignore the frame. */
+ if( ( ucRcvAddress == ucMBAddress ) || ( ucRcvAddress == MB_ADDRESS_BROADCAST ) )
+ {
+ ( void )xMBPortEventPost( EV_EXECUTE );
+ }
+ }
+ break;
+
+ case EV_EXECUTE:
+ ucFunctionCode = ucMBFrame[MB_PDU_FUNC_OFF];
+ eException = MB_EX_ILLEGAL_FUNCTION;
+ for( i = 0; i < MB_FUNC_HANDLERS_MAX; i++ )
+ {
+ /* No more function handlers registered. Abort. */
+ if( xFuncHandlers[i].ucFunctionCode == 0 )
+ {
+ break;
+ }
+ else if( xFuncHandlers[i].ucFunctionCode == ucFunctionCode )
+ {
+ eException = xFuncHandlers[i].pxHandler( ucMBFrame, &usLength );
+ break;
+ }
+ }
+
+ /* If the request was not sent to the broadcast address we
+ * return a reply. */
+ if( ucRcvAddress != MB_ADDRESS_BROADCAST )
+ {
+ if( eException != MB_EX_NONE )
+ {
+ /* An exception occured. Build an error frame. */
+ usLength = 0;
+ ucMBFrame[usLength++] = ( UCHAR )( ucFunctionCode | MB_FUNC_ERROR );
+ ucMBFrame[usLength++] = eException;
+ }
+ eStatus = peMBFrameSendCur( ucMBAddress, ucMBFrame, usLength );
+ }
+ break;
+
+ case EV_FRAME_SENT:
+ break;
+ }
+ }
+ return MB_ENOERR;
+}
diff --git a/FreeModbus/modbus/rtu/mbcrc.c b/FreeModbus/modbus/rtu/mbcrc.c
new file mode 100644
index 0000000..6b1a683
--- /dev/null
+++ b/FreeModbus/modbus/rtu/mbcrc.c
@@ -0,0 +1,98 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbcrc.c,v 1.7 2007/02/18 23:50:27 wolti Exp $
+ */
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+static const UCHAR aucCRCHi[] = {
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
+ 0x00, 0xC1, 0x81, 0x40
+};
+
+static const UCHAR aucCRCLo[] = {
+ 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
+ 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
+ 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9,
+ 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
+ 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
+ 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
+ 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,
+ 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38,
+ 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF,
+ 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
+ 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,
+ 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
+ 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB,
+ 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,
+ 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
+ 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
+ 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,
+ 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,
+ 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,
+ 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
+ 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,
+ 0x41, 0x81, 0x80, 0x40
+};
+
+USHORT
+usMBCRC16( UCHAR * pucFrame, USHORT usLen )
+{
+ UCHAR ucCRCHi = 0xFF;
+ UCHAR ucCRCLo = 0xFF;
+ int iIndex;
+
+ while( usLen-- )
+ {
+ iIndex = ucCRCLo ^ *( pucFrame++ );
+ ucCRCLo = ( UCHAR )( ucCRCHi ^ aucCRCHi[iIndex] );
+ ucCRCHi = aucCRCLo[iIndex];
+ }
+ return ( USHORT )( ucCRCHi << 8 | ucCRCLo );
+}
diff --git a/FreeModbus/modbus/rtu/mbcrc.h b/FreeModbus/modbus/rtu/mbcrc.h
new file mode 100644
index 0000000..733503a
--- /dev/null
+++ b/FreeModbus/modbus/rtu/mbcrc.h
@@ -0,0 +1,36 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbcrc.h,v 1.5 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_CRC_H
+#define _MB_CRC_H
+
+USHORT usMBCRC16( UCHAR * pucFrame, USHORT usLen );
+
+#endif
diff --git a/FreeModbus/modbus/rtu/mbrtu.c b/FreeModbus/modbus/rtu/mbrtu.c
new file mode 100644
index 0000000..2ee5129
--- /dev/null
+++ b/FreeModbus/modbus/rtu/mbrtu.c
@@ -0,0 +1,355 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbrtu.c,v 1.18 2007/09/12 10:15:56 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbrtu.h"
+#include "mbframe.h"
+
+#include "mbcrc.h"
+#include "mbport.h"
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_SER_PDU_SIZE_MIN 4 /*!< Minimum size of a Modbus RTU frame. */
+#define MB_SER_PDU_SIZE_MAX 256 /*!< Maximum size of a Modbus RTU frame. */
+#define MB_SER_PDU_SIZE_CRC 2 /*!< Size of CRC field in PDU. */
+#define MB_SER_PDU_ADDR_OFF 0 /*!< Offset of slave address in Ser-PDU. */
+#define MB_SER_PDU_PDU_OFF 1 /*!< Offset of Modbus-PDU in Ser-PDU. */
+
+/* ----------------------- Type definitions ---------------------------------*/
+typedef enum
+{
+ STATE_RX_INIT, /*!< Receiver is in initial state. */
+ STATE_RX_IDLE, /*!< Receiver is in idle state. */
+ STATE_RX_RCV, /*!< Frame is beeing received. */
+ STATE_RX_ERROR /*!< If the frame is invalid. */
+} eMBRcvState;
+
+typedef enum
+{
+ STATE_TX_IDLE, /*!< Transmitter is in idle state. */
+ STATE_TX_XMIT /*!< Transmitter is in transfer state. */
+} eMBSndState;
+
+/* ----------------------- Static variables ---------------------------------*/
+static volatile eMBSndState eSndState;
+static volatile eMBRcvState eRcvState;
+
+volatile UCHAR ucRTUBuf[MB_SER_PDU_SIZE_MAX];
+
+static volatile UCHAR *pucSndBufferCur;
+static volatile USHORT usSndBufferCount;
+
+static volatile USHORT usRcvBufferPos;
+
+/* ----------------------- Start implementation -----------------------------*/
+eMBErrorCode
+eMBRTUInit( UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ ULONG usTimerT35_50us;
+
+ ( void )ucSlaveAddress;
+ ENTER_CRITICAL_SECTION( );
+
+ /* Modbus RTU uses 8 Databits. */
+ if( xMBPortSerialInit( ucPort, ulBaudRate, 8, eParity ) != TRUE )
+ {
+ eStatus = MB_EPORTERR;
+ }
+ else
+ {
+ /* If baudrate > 19200 then we should use the fixed timer values
+ * t35 = 1750us. Otherwise t35 must be 3.5 times the character time.
+ */
+ if( ulBaudRate > 19200 )
+ {
+ usTimerT35_50us = 35; /* 1800us. */
+ }
+ else
+ {
+ /* The timer reload value for a character is given by:
+ *
+ * ChTimeValue = Ticks_per_1s / ( Baudrate / 11 )
+ * = 11 * Ticks_per_1s / Baudrate
+ * = 220000 / Baudrate
+ * The reload for t3.5 is 1.5 times this value and similary
+ * for t3.5.
+ */
+ usTimerT35_50us = ( 7UL * 220000UL ) / ( 2UL * ulBaudRate );
+ }
+ if( xMBPortTimersInit( ( USHORT ) usTimerT35_50us ) != TRUE )
+ {
+ eStatus = MB_EPORTERR;
+ }
+ }
+ EXIT_CRITICAL_SECTION( );
+
+ return eStatus;
+}
+
+void
+eMBRTUStart( void )
+{
+ ENTER_CRITICAL_SECTION( );
+ /* Initially the receiver is in the state STATE_RX_INIT. we start
+ * the timer and if no character is received within t3.5 we change
+ * to STATE_RX_IDLE. This makes sure that we delay startup of the
+ * modbus protocol stack until the bus is free.
+ */
+ eRcvState = STATE_RX_INIT;
+ vMBPortSerialEnable( TRUE, FALSE );
+ vMBPortTimersEnable( );
+
+ EXIT_CRITICAL_SECTION( );
+}
+
+void
+eMBRTUStop( void )
+{
+ ENTER_CRITICAL_SECTION( );
+ vMBPortSerialEnable( FALSE, FALSE );
+ vMBPortTimersDisable( );
+ EXIT_CRITICAL_SECTION( );
+}
+
+eMBErrorCode
+eMBRTUReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength )
+{
+ BOOL xFrameReceived = FALSE;
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ ENTER_CRITICAL_SECTION( );
+ assert_param( usRcvBufferPos < MB_SER_PDU_SIZE_MAX );
+
+ /* Length and CRC check */
+ if( ( usRcvBufferPos >= MB_SER_PDU_SIZE_MIN )
+ && ( usMBCRC16( ( UCHAR * ) ucRTUBuf, usRcvBufferPos ) == 0 ) )
+ {
+ /* Save the address field. All frames are passed to the upper layed
+ * and the decision if a frame is used is done there.
+ */
+ *pucRcvAddress = ucRTUBuf[MB_SER_PDU_ADDR_OFF];
+
+ /* Total length of Modbus-PDU is Modbus-Serial-Line-PDU minus
+ * size of address field and CRC checksum.
+ */
+ *pusLength = ( USHORT )( usRcvBufferPos - MB_SER_PDU_PDU_OFF - MB_SER_PDU_SIZE_CRC );
+
+ /* Return the start of the Modbus PDU to the caller. */
+ *pucFrame = ( UCHAR * ) & ucRTUBuf[MB_SER_PDU_PDU_OFF];
+ xFrameReceived = TRUE;
+ }
+ else
+ {
+ eStatus = MB_EIO;
+ }
+
+ EXIT_CRITICAL_SECTION( );
+ return eStatus;
+}
+
+eMBErrorCode
+eMBRTUSend( UCHAR ucSlaveAddress, const UCHAR * pucFrame, USHORT usLength )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ USHORT usCRC16;
+
+ ENTER_CRITICAL_SECTION( );
+
+ /* Check if the receiver is still in idle state. If not we where to
+ * slow with processing the received frame and the master sent another
+ * frame on the network. We have to abort sending the frame.
+ */
+ if( eRcvState == STATE_RX_IDLE )
+ {
+ /* First byte before the Modbus-PDU is the slave address. */
+ pucSndBufferCur = ( UCHAR * ) pucFrame - 1;
+ usSndBufferCount = 1;
+
+ /* Now copy the Modbus-PDU into the Modbus-Serial-Line-PDU. */
+ pucSndBufferCur[MB_SER_PDU_ADDR_OFF] = ucSlaveAddress;
+ usSndBufferCount += usLength;
+
+ /* Calculate CRC16 checksum for Modbus-Serial-Line-PDU. */
+ usCRC16 = usMBCRC16( ( UCHAR * ) pucSndBufferCur, usSndBufferCount );
+ ucRTUBuf[usSndBufferCount++] = ( UCHAR )( usCRC16 & 0xFF );
+ ucRTUBuf[usSndBufferCount++] = ( UCHAR )( usCRC16 >> 8 );
+
+ /* Activate the transmitter. */
+ eSndState = STATE_TX_XMIT;
+ vMBPortSerialEnable( FALSE, TRUE );
+ }
+ else
+ {
+ eStatus = MB_EIO;
+ }
+ EXIT_CRITICAL_SECTION( );
+ return eStatus;
+}
+
+BOOL
+xMBRTUReceiveFSM( void )
+{
+ BOOL xTaskNeedSwitch = FALSE;
+ UCHAR ucByte;
+
+ assert_param( eSndState == STATE_TX_IDLE );
+
+ /* Always read the character. */
+ ( void )xMBPortSerialGetByte( ( CHAR * ) & ucByte );
+
+ switch ( eRcvState )
+ {
+ /* If we have received a character in the init state we have to
+ * wait until the frame is finished.
+ */
+ case STATE_RX_INIT:
+ vMBPortTimersEnable( );
+ break;
+
+ /* In the error state we wait until all characters in the
+ * damaged frame are transmitted.
+ */
+ case STATE_RX_ERROR:
+ vMBPortTimersEnable( );
+ break;
+
+ /* In the idle state we wait for a new character. If a character
+ * is received the t1.5 and t3.5 timers are started and the
+ * receiver is in the state STATE_RX_RECEIVCE.
+ */
+ case STATE_RX_IDLE:
+ usRcvBufferPos = 0;
+ ucRTUBuf[usRcvBufferPos++] = ucByte;
+ eRcvState = STATE_RX_RCV;
+
+ /* Enable t3.5 timers. */
+ vMBPortTimersEnable( );
+ break;
+
+ /* We are currently receiving a frame. Reset the timer after
+ * every character received. If more than the maximum possible
+ * number of bytes in a modbus frame is received the frame is
+ * ignored.
+ */
+ case STATE_RX_RCV:
+ if( usRcvBufferPos < MB_SER_PDU_SIZE_MAX )
+ {
+ ucRTUBuf[usRcvBufferPos++] = ucByte;
+ }
+ else
+ {
+ eRcvState = STATE_RX_ERROR;
+ }
+ vMBPortTimersEnable();
+ break;
+ }
+ return xTaskNeedSwitch;
+}
+
+BOOL
+xMBRTUTransmitFSM( void )
+{
+ BOOL xNeedPoll = FALSE;
+
+ assert_param( eRcvState == STATE_RX_IDLE );
+
+ switch ( eSndState )
+ {
+ /* We should not get a transmitter event if the transmitter is in
+ * idle state. */
+ case STATE_TX_IDLE:
+ /* enable receiver/disable transmitter. */
+ vMBPortSerialEnable( TRUE, FALSE );
+ break;
+
+ case STATE_TX_XMIT:
+ /* check if we are finished. */
+ if( usSndBufferCount != 0 )
+ {
+ xMBPortSerialPutByte( ( CHAR )*pucSndBufferCur );
+ pucSndBufferCur++; /* next byte in sendbuffer. */
+ usSndBufferCount--;
+ }
+ else
+ {
+ xNeedPoll = xMBPortEventPost( EV_FRAME_SENT );
+ /* Disable transmitter. This prevents another transmit buffer
+ * empty interrupt. */
+ vMBPortSerialEnable( TRUE, FALSE );
+ eSndState = STATE_TX_IDLE;
+ }
+ break;
+ }
+
+ return xNeedPoll;
+}
+
+BOOL
+xMBRTUTimerT35Expired( void )
+{
+ BOOL xNeedPoll = FALSE;
+
+ switch ( eRcvState )
+ {
+ /* Timer t35 expired. Startup phase is finished. */
+ case STATE_RX_INIT:
+ xNeedPoll = xMBPortEventPost( EV_READY );
+ break;
+
+ /* A frame was received and t35 expired. Notify the listener that
+ * a new frame was received. */
+ case STATE_RX_RCV:
+ xNeedPoll = xMBPortEventPost( EV_FRAME_RECEIVED );
+ break;
+
+ /* An error occured while receiving the frame. */
+ case STATE_RX_ERROR:
+ break;
+
+ /* Function called in an illegal state. */
+ default:
+ assert_param( ( eRcvState == STATE_RX_INIT ) ||
+ ( eRcvState == STATE_RX_RCV ) || ( eRcvState == STATE_RX_ERROR ) );
+ }
+
+ vMBPortTimersDisable( );
+ eRcvState = STATE_RX_IDLE;
+
+ return xNeedPoll;
+}
diff --git a/FreeModbus/modbus/rtu/mbrtu.h b/FreeModbus/modbus/rtu/mbrtu.h
new file mode 100644
index 0000000..084b214
--- /dev/null
+++ b/FreeModbus/modbus/rtu/mbrtu.h
@@ -0,0 +1,51 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbrtu.h,v 1.9 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_RTU_H
+#define _MB_RTU_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+ eMBErrorCode eMBRTUInit( UCHAR slaveAddress, UCHAR ucPort, ULONG ulBaudRate,
+ eMBParity eParity );
+void eMBRTUStart( void );
+void eMBRTUStop( void );
+eMBErrorCode eMBRTUReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame, USHORT * pusLength );
+eMBErrorCode eMBRTUSend( UCHAR slaveAddress, const UCHAR * pucFrame, USHORT usLength );
+BOOL xMBRTUReceiveFSM( void );
+BOOL xMBRTUTransmitFSM( void );
+BOOL xMBRTUTimerT15Expired( void );
+BOOL xMBRTUTimerT35Expired( void );
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/modbus/tcp/mbtcp.c b/FreeModbus/modbus/tcp/mbtcp.c
new file mode 100644
index 0000000..eb79a32
--- /dev/null
+++ b/FreeModbus/modbus/tcp/mbtcp.c
@@ -0,0 +1,158 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbtcp.c,v 1.3 2006/12/07 22:10:34 wolti Exp $
+ */
+
+/* ----------------------- System includes ----------------------------------*/
+#include "stdlib.h"
+#include "string.h"
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbconfig.h"
+#include "mbtcp.h"
+#include "mbframe.h"
+#include "mbport.h"
+
+#if MB_TCP_ENABLED > 0
+
+/* ----------------------- Defines ------------------------------------------*/
+
+/* ----------------------- MBAP Header --------------------------------------*/
+/*
+ *
+ * <------------------------ MODBUS TCP/IP ADU(1) ------------------------->
+ * <----------- MODBUS PDU (1') ---------------->
+ * +-----------+---------------+------------------------------------------+
+ * | TID | PID | Length | UID |Code | Data |
+ * +-----------+---------------+------------------------------------------+
+ * | | | | |
+ * (2) (3) (4) (5) (6)
+ *
+ * (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte)
+ * (3) ... MB_TCP_PID = 2 (Protocol Identifier - 2 Byte)
+ * (4) ... MB_TCP_LEN = 4 (Number of bytes - 2 Byte)
+ * (5) ... MB_TCP_UID = 6 (Unit Identifier - 1 Byte)
+ * (6) ... MB_TCP_FUNC = 7 (Modbus Function Code)
+ *
+ * (1) ... Modbus TCP/IP Application Data Unit
+ * (1') ... Modbus Protocol Data Unit
+ */
+
+#define MB_TCP_TID 0
+#define MB_TCP_PID 2
+#define MB_TCP_LEN 4
+#define MB_TCP_UID 6
+#define MB_TCP_FUNC 7
+
+#define MB_TCP_PROTOCOL_ID 0 /* 0 = Modbus Protocol */
+
+
+/* ----------------------- Start implementation -----------------------------*/
+eMBErrorCode
+eMBTCPDoInit( USHORT ucTCPPort )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+
+ if( xMBTCPPortInit( ucTCPPort ) == FALSE )
+ {
+ eStatus = MB_EPORTERR;
+ }
+ return eStatus;
+}
+
+void
+eMBTCPStart( void )
+{
+}
+
+void
+eMBTCPStop( void )
+{
+ /* Make sure that no more clients are connected. */
+ vMBTCPPortDisable( );
+}
+
+eMBErrorCode
+eMBTCPReceive( UCHAR * pucRcvAddress, UCHAR ** ppucFrame, USHORT * pusLength )
+{
+ eMBErrorCode eStatus = MB_EIO;
+ UCHAR *pucMBTCPFrame;
+ USHORT usLength;
+ USHORT usPID;
+
+ if( xMBTCPPortGetRequest( &pucMBTCPFrame, &usLength ) != FALSE )
+ {
+ usPID = pucMBTCPFrame[MB_TCP_PID] << 8U;
+ usPID |= pucMBTCPFrame[MB_TCP_PID + 1];
+
+ if( usPID == MB_TCP_PROTOCOL_ID )
+ {
+ *ppucFrame = &pucMBTCPFrame[MB_TCP_FUNC];
+ *pusLength = usLength - MB_TCP_FUNC;
+ eStatus = MB_ENOERR;
+
+ /* Modbus TCP does not use any addresses. Fake the source address such
+ * that the processing part deals with this frame.
+ */
+ *pucRcvAddress = MB_TCP_PSEUDO_ADDRESS;
+ }
+ }
+ else
+ {
+ eStatus = MB_EIO;
+ }
+ return eStatus;
+}
+
+eMBErrorCode
+eMBTCPSend( UCHAR _unused, const UCHAR * pucFrame, USHORT usLength )
+{
+ eMBErrorCode eStatus = MB_ENOERR;
+ UCHAR *pucMBTCPFrame = ( UCHAR * ) pucFrame - MB_TCP_FUNC;
+ USHORT usTCPLength = usLength + MB_TCP_FUNC;
+
+ /* The MBAP header is already initialized because the caller calls this
+ * function with the buffer returned by the previous call. Therefore we
+ * only have to update the length in the header. Note that the length
+ * header includes the size of the Modbus PDU and the UID Byte. Therefore
+ * the length is usLength plus one.
+ */
+ pucMBTCPFrame[MB_TCP_LEN] = ( usLength + 1 ) >> 8U;
+ pucMBTCPFrame[MB_TCP_LEN + 1] = ( usLength + 1 ) & 0xFF;
+ if( xMBTCPPortSendResponse( pucMBTCPFrame, usTCPLength ) == FALSE )
+ {
+ eStatus = MB_EIO;
+ }
+ return eStatus;
+}
+
+#endif
diff --git a/FreeModbus/modbus/tcp/mbtcp.h b/FreeModbus/modbus/tcp/mbtcp.h
new file mode 100644
index 0000000..b4eb3fd
--- /dev/null
+++ b/FreeModbus/modbus/tcp/mbtcp.h
@@ -0,0 +1,53 @@
+/*
+ * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
+ * Copyright (c) 2006 Christian Walter
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * File: $Id: mbtcp.h,v 1.2 2006/12/07 22:10:34 wolti Exp $
+ */
+
+#ifndef _MB_TCP_H
+#define _MB_TCP_H
+
+#ifdef __cplusplus
+PR_BEGIN_EXTERN_C
+#endif
+
+/* ----------------------- Defines ------------------------------------------*/
+#define MB_TCP_PSEUDO_ADDRESS 255
+
+/* ----------------------- Function prototypes ------------------------------*/
+ eMBErrorCode eMBTCPDoInit( USHORT ucTCPPort );
+void eMBTCPStart( void );
+void eMBTCPStop( void );
+eMBErrorCode eMBTCPReceive( UCHAR * pucRcvAddress, UCHAR ** pucFrame,
+ USHORT * pusLength );
+eMBErrorCode eMBTCPSend( UCHAR _unused, const UCHAR * pucFrame,
+ USHORT usLength );
+
+#ifdef __cplusplus
+PR_END_EXTERN_C
+#endif
+#endif
diff --git a/FreeModbus/port/port.c b/FreeModbus/port/port.c
new file mode 100644
index 0000000..05cd7ed
--- /dev/null
+++ b/FreeModbus/port/port.c
@@ -0,0 +1,39 @@
+ /*
+ * FreeModbus Libary: LPC214X Port
+ * Copyright (C) 2007 Tiago Prado Lone
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * File: $Id: port.c,v 1.1 2007/04/24 23:15:18 wolti Exp $
+ */
+
+/* ----------------------- System includes --------------------------------*/
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "port.h"
+/* ----------------------- Variables ----------------------------------------*/
+
+/* ----------------------- Start implementation -----------------------------*/
+void EnterCriticalSection(void)
+{
+ //关闭全局中断
+ __disable_irq();
+}
+
+void ExitCriticalSection(void)
+{
+ //开启全局中断
+ __enable_irq();
+}
diff --git a/FreeModbus/port/port.h b/FreeModbus/port/port.h
new file mode 100644
index 0000000..1196f4d
--- /dev/null
+++ b/FreeModbus/port/port.h
@@ -0,0 +1,71 @@
+/*
+ * FreeModbus Libary: BARE Port
+ * Copyright (C) 2006 Christian Walter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * File: $Id: port.h,v 1.1 2007/04/24 23:15:18 wolti Exp $
+ */
+
+#ifndef _PORT_H
+#define _PORT_H
+
+#include
+#include
+#include
+
+#include
+#include
+
+#define INLINE
+#define PR_BEGIN_EXTERN_C extern "C" {
+#define PR_END_EXTERN_C }
+
+//TODO 暂时先写B13引脚,等组网测试时再确认
+#define RS485_SEND_MODE GPIO_SetBits(GPIOB,GPIO_Pin_13)
+#define RS485_RECEIVE_MODE GPIO_ResetBits(GPIOB,GPIO_Pin_13)
+
+//void USART1_IRQHandler(void);
+//void TIM3_IRQHandler(void);
+
+#define ENTER_CRITICAL_SECTION() EnterCriticalSection()
+#define EXIT_CRITICAL_SECTION() ExitCriticalSection()
+
+void EnterCriticalSection(void);
+void ExitCriticalSection(void);
+void prvvUARTTxReadyISR(void);
+void prvvUARTRxISR(void);
+void TIMERExpiredISR(void);
+
+typedef uint8_t BOOL;
+
+typedef unsigned char UCHAR;
+typedef char CHAR;
+
+typedef uint16_t USHORT;
+typedef int16_t SHORT;
+
+typedef uint32_t ULONG;
+typedef int32_t LONG;
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#endif
diff --git a/FreeModbus/port/portevent.c b/FreeModbus/port/portevent.c
new file mode 100644
index 0000000..3f2fb54
--- /dev/null
+++ b/FreeModbus/port/portevent.c
@@ -0,0 +1,58 @@
+/*
+ * FreeModbus Libary: LPC214X Port
+ * Copyright (C) 2007 Tiago Prado Lone
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * File: $Id: portevent.c,v 1.1 2007/04/24 23:15:18 wolti Exp $
+ */
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbport.h"
+
+/* ----------------------- Variables ----------------------------------------*/
+static eMBEventType eQueuedEvent;
+static BOOL xEventInQueue;
+
+/* ----------------------- Start implementation -----------------------------*/
+BOOL
+xMBPortEventInit( void )
+{
+ xEventInQueue = FALSE;
+ return TRUE;
+}
+
+BOOL
+xMBPortEventPost( eMBEventType eEvent )
+{
+ xEventInQueue = TRUE;
+ eQueuedEvent = eEvent;
+ return TRUE;
+}
+
+BOOL
+xMBPortEventGet( eMBEventType * eEvent )
+{
+ BOOL xEventHappened = FALSE;
+
+ if( xEventInQueue )
+ {
+ *eEvent = eQueuedEvent;
+ xEventInQueue = FALSE;
+ xEventHappened = TRUE;
+ }
+ return xEventHappened;
+}
diff --git a/FreeModbus/port/portserial.c b/FreeModbus/port/portserial.c
new file mode 100644
index 0000000..f7cce51
--- /dev/null
+++ b/FreeModbus/port/portserial.c
@@ -0,0 +1,190 @@
+/*
+ * FreeModbus Libary: LPC214X Port
+ * Copyright (C) 2007 Tiago Prado Lone
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * File: $Id: portserial.c,v 1.1 2007/04/24 23:15:18 wolti Exp $
+ */
+
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbport.h"
+/* ----------------------- static functions ---------------------------------*/
+static void prvvUARTTxReadyISR(void);
+static void prvvUARTRxISR(void);
+/* ----------------------- Start implementation -----------------------------*/
+
+void vMBPortSerialEnable(BOOL xRxEnable, BOOL xTxEnable)
+{
+ if (xRxEnable)
+ {
+ RS485_RECEIVE_MODE;
+ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
+ }
+ else
+ {
+ RS485_SEND_MODE;
+ USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
+ }
+ if (xTxEnable)
+ {
+ USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
+ }
+ else
+ {
+ USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
+ }
+}
+
+void vMBPortClose(void)
+{
+ USART_ITConfig(USART1, USART_IT_TXE | USART_IT_RXNE, DISABLE);
+ USART_Cmd(USART1, DISABLE);
+}
+//默认一个从机 串口1 波特率可设置 奇偶检验可设置
+BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits,
+ eMBParity eParity)
+{
+ GPIO_InitTypeDef GPIO_InitStructure;
+ USART_InitTypeDef USART_InitStructure;
+ NVIC_InitTypeDef NVIC_InitStructure;
+ //======================时钟初始化=======================================
+ RCC_APB2PeriphClockCmd(
+ RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_USART1,
+ ENABLE);
+ //======================IO初始化=======================================
+ //USART1_TX
+ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
+ GPIO_Init(GPIOA, &GPIO_InitStructure);
+ //USART1_RX
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
+ GPIO_Init(GPIOA, &GPIO_InitStructure);
+ //配置485发送和接收模式
+// TODO 暂时先写B13 等之后组网测试时再修改
+ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
+ GPIO_Init(GPIOB, &GPIO_InitStructure);
+ //======================串口初始化=======================================
+ USART_InitStructure.USART_BaudRate = ulBaudRate;
+ //设置校验模式
+ switch (eParity)
+ {
+ case MB_PAR_NONE: //无校验
+ USART_InitStructure.USART_Parity = USART_Parity_No;
+ USART_InitStructure.USART_WordLength = USART_WordLength_8b;
+ break;
+ case MB_PAR_ODD: //奇校验
+ USART_InitStructure.USART_Parity = USART_Parity_Odd;
+ USART_InitStructure.USART_WordLength = USART_WordLength_9b;
+ break;
+ case MB_PAR_EVEN: //偶校验
+ USART_InitStructure.USART_Parity = USART_Parity_Even;
+ USART_InitStructure.USART_WordLength = USART_WordLength_9b;
+ break;
+ default:
+ return FALSE;
+ }
+
+ USART_InitStructure.USART_StopBits = USART_StopBits_1;
+ USART_InitStructure.USART_HardwareFlowControl =
+ USART_HardwareFlowControl_None;
+ USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
+ if (ucPORT > 1)
+ return FALSE;
+
+ ENTER_CRITICAL_SECTION(); //关全局中断
+
+ USART_Init(USART1, &USART_InitStructure);
+ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
+ USART_Cmd(USART1, ENABLE);
+
+ //=====================中断初始化======================================
+ //设置NVIC优先级分组为Group2:0-3抢占式优先级,0-3的响应式优先级
+ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
+ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
+ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
+ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
+ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
+ NVIC_Init(&NVIC_InitStructure);
+
+ EXIT_CRITICAL_SECTION(); //开全局中断
+
+ return TRUE;
+}
+
+BOOL xMBPortSerialPutByte(CHAR ucByte)
+{
+ USART_SendData(USART1, ucByte);
+ return TRUE;
+}
+
+BOOL xMBPortSerialGetByte(CHAR * pucByte)
+{
+ *pucByte = USART_ReceiveData(USART1);
+ return TRUE;
+}
+
+/*
+ * Create an interrupt handler for the transmit buffer empty interrupt
+ * (or an equivalent) for your target processor. This function should then
+ * call pxMBFrameCBTransmitterEmpty( ) which tells the protocol stack that
+ * a new character can be sent. The protocol stack will then call
+ * xMBPortSerialPutByte( ) to send the character.
+ */
+void prvvUARTTxReadyISR(void)
+{
+ pxMBFrameCBTransmitterEmpty();
+}
+
+/*
+ * Create an interrupt handler for the receive interrupt for your target
+ * processor. This function should then call pxMBFrameCBByteReceived( ). The
+ * protocol stack will then call xMBPortSerialGetByte( ) to retrieve the
+ * character.
+ */
+void prvvUARTRxISR(void)
+{
+ pxMBFrameCBByteReceived();
+}
+/*******************************************************************************
+ * Function Name : USART1_IRQHandler
+ * Description : This function handles USART1 global interrupt request.
+ * Input : None
+ * Output : None
+ * Return : None
+ *******************************************************************************/
+void USART1_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ //接收中断
+ if (USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
+ {
+ USART_ClearITPendingBit(USART1, USART_IT_RXNE);
+ prvvUARTRxISR();
+ }
+ //发送中断
+ if (USART_GetITStatus(USART1, USART_IT_TXE) == SET)
+ {
+ USART_ClearITPendingBit(USART1, USART_IT_TC);
+ prvvUARTTxReadyISR();
+ }
+ rt_interrupt_leave();
+}
diff --git a/FreeModbus/port/porttimer.c b/FreeModbus/port/porttimer.c
new file mode 100644
index 0000000..c2f17a3
--- /dev/null
+++ b/FreeModbus/port/porttimer.c
@@ -0,0 +1,104 @@
+/*
+ * FreeModbus Libary: LPC214X Port
+ * Copyright (C) 2007 Tiago Prado Lone
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * File: $Id: porttimer.c,v 1.1 2007/04/24 23:15:18 wolti Exp $
+ */
+
+/* ----------------------- Platform includes --------------------------------*/
+#include "port.h"
+
+/* ----------------------- Modbus includes ----------------------------------*/
+#include "mb.h"
+#include "mbport.h"
+
+/* ----------------------- Start implementation -----------------------------*/
+BOOL xMBPortTimersInit(USHORT usTim1Timerout50us)
+{
+
+ uint16_t PrescalerValue = 0;
+ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
+ NVIC_InitTypeDef NVIC_InitStructure;
+ //====================================时钟初始化===========================
+ //使能定时器3时钟
+ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
+ //====================================定时器初始化===========================
+ //定时器时间基配置说明
+ //HCLK为72MHz,APB1经过2分频为36MHz
+ //TIM3的时钟倍频后为72MHz(硬件自动倍频,达到最大)
+ //TIM3的分频系数为3599,时间基频率为72 / (1 + Prescaler) = 20KHz,基准为50us
+ //TIM最大计数值为usTim1Timerout50u
+
+ PrescalerValue = (uint16_t) (SystemCoreClock / 20000) - 1;
+ //定时器1初始化
+ TIM_TimeBaseStructure.TIM_Period = (uint16_t) usTim1Timerout50us;
+ TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;
+ TIM_TimeBaseStructure.TIM_ClockDivision = 0;
+ TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
+ TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
+ //预装载使能
+ TIM_ARRPreloadConfig(TIM3, ENABLE);
+ //====================================中断初始化===========================
+ //设置NVIC优先级分组为Group2:0-3抢占式优先级,0-3的响应式优先级
+ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
+ NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
+ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
+ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
+ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
+ NVIC_Init(&NVIC_InitStructure);
+ //清除溢出中断标志位
+ TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
+ //定时器3溢出中断关闭
+ TIM_ITConfig(TIM3, TIM_IT_Update, DISABLE);
+ //定时器3禁能
+ TIM_Cmd(TIM3, DISABLE);
+ return TRUE;
+}
+
+void vMBPortTimersEnable()
+{
+ TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
+ TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
+ TIM_SetCounter(TIM3, 0);
+ TIM_Cmd(TIM3, ENABLE);
+}
+
+void vMBPortTimersDisable()
+{
+ TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
+ TIM_ITConfig(TIM3, TIM_IT_Update, DISABLE);
+ TIM_SetCounter(TIM3, 0);
+ TIM_Cmd(TIM3, DISABLE);
+}
+
+void prvvTIMERExpiredISR(void)
+{
+ (void) pxMBPortCBTimerExpired();
+}
+
+void TIM3_IRQHandler(void)
+{
+ rt_interrupt_enter();
+ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
+ {
+
+ TIM_ClearFlag(TIM3, TIM_FLAG_Update); //清中断标记
+ TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除定时器T3溢出中断标志位
+ prvvTIMERExpiredISR();
+ }
+ rt_interrupt_leave();
+}
diff --git a/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvopt b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvopt
index 954e967..714880a 100644
--- a/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvopt
+++ b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvopt
@@ -376,17 +376,12 @@
0
1
- CpuUsageMajor
+ CpuUsageMajor,0x0A
1
1
- CpuUsageMinor
-
-
- 2
- 1
- rt_current_thread
+ CpuUsageMinor,0x0A
@@ -434,7 +429,7 @@
APP
- 0
+ 1
0
0
@@ -457,10 +452,10 @@
1
0
0
- 31
+ 52
0
- 4
- 15
+ 13
+ 19
0
..\APP\src\app_task.c
app_task.c
@@ -471,10 +466,10 @@
1
0
0
- 33
+ 54
0
- 0
- 0
+ 99
+ 112
0
..\APP\src\stm32f10x_it.c
stm32f10x_it.c
@@ -485,27 +480,27 @@
1
0
0
- 0
+ 35
0
0
0
0
- ..\APP\src\cpuusage.c
- cpuusage.c
+ ..\APP\src\UserModbusSlaver.c
+ UserModbusSlaver.c
1
5
- 5
+ 1
0
0
- 0
+ 61
0
- 0
- 0
+ 1
+ 25
0
- ..\APP\inc\delay_conf.h
- delay_conf.h
+ ..\APP\src\cpuusage.c
+ cpuusage.c
1
@@ -513,7 +508,21 @@
5
0
0
- 14
+ 51
+ 0
+ 6
+ 30
+ 0
+ ..\APP\inc\delay_conf.h
+ delay_conf.h
+
+
+ 1
+ 7
+ 5
+ 0
+ 0
+ 0
0
0
0
@@ -523,14 +532,14 @@
1
- 7
+ 8
5
0
0
- 8
+ 35
0
- 0
- 0
+ 1
+ 15
0
..\APP\inc\rtconfig.h
rtconfig.h
@@ -539,26 +548,26 @@
BSP
- 0
+ 1
0
0
2
- 8
+ 9
1
0
0
- 37
+ 12
0
- 110
- 115
+ 185
+ 193
0
..\BSP\src\bsp.c
bsp.c
2
- 9
+ 10
1
0
0
@@ -572,7 +581,7 @@
2
- 10
+ 11
1
0
0
@@ -586,7 +595,7 @@
2
- 11
+ 12
1
0
0
@@ -600,7 +609,7 @@
2
- 12
+ 13
2
0
0
@@ -621,11 +630,11 @@
0
3
- 13
+ 14
1
0
0
- 30
+ 0
0
0
0
@@ -635,11 +644,11 @@
3
- 14
+ 15
1
0
0
- 5
+ 0
0
0
0
@@ -649,7 +658,7 @@
3
- 15
+ 16
1
0
0
@@ -663,7 +672,7 @@
3
- 16
+ 17
1
0
0
@@ -677,7 +686,7 @@
3
- 17
+ 18
1
0
0
@@ -691,7 +700,7 @@
3
- 18
+ 19
1
0
0
@@ -705,7 +714,7 @@
3
- 19
+ 20
1
0
0
@@ -719,7 +728,7 @@
3
- 20
+ 21
1
0
0
@@ -733,7 +742,7 @@
3
- 21
+ 22
1
0
0
@@ -747,7 +756,7 @@
3
- 22
+ 23
1
0
0
@@ -761,7 +770,7 @@
3
- 23
+ 24
1
0
0
@@ -775,7 +784,7 @@
3
- 24
+ 25
1
0
0
@@ -789,7 +798,7 @@
3
- 25
+ 26
1
0
0
@@ -803,7 +812,7 @@
3
- 26
+ 27
1
0
0
@@ -817,7 +826,7 @@
3
- 27
+ 28
1
0
0
@@ -831,11 +840,11 @@
3
- 28
+ 29
1
0
0
- 11
+ 0
0
0
0
@@ -845,7 +854,7 @@
3
- 29
+ 30
1
0
0
@@ -859,7 +868,7 @@
3
- 30
+ 31
1
0
0
@@ -873,7 +882,7 @@
3
- 31
+ 32
1
0
0
@@ -887,7 +896,7 @@
3
- 32
+ 33
1
0
0
@@ -901,11 +910,11 @@
3
- 33
+ 34
1
0
0
- 0
+ 1
0
0
0
@@ -915,7 +924,7 @@
3
- 34
+ 35
1
0
0
@@ -929,7 +938,7 @@
3
- 35
+ 36
2
0
0
@@ -938,8 +947,8 @@
0
0
0
- ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s
- startup_stm32f10x_hd.s
+ ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
+ startup_stm32f10x_md.s
@@ -950,11 +959,11 @@
0
4
- 36
+ 37
1
0
0
- 41
+ 0
0
0
0
@@ -964,7 +973,7 @@
4
- 37
+ 38
1
0
0
@@ -985,7 +994,7 @@
0
5
- 38
+ 39
1
0
0
@@ -999,7 +1008,7 @@
5
- 39
+ 40
1
0
0
@@ -1013,7 +1022,7 @@
5
- 40
+ 41
1
0
0
@@ -1027,7 +1036,7 @@
5
- 41
+ 42
1
0
0
@@ -1041,11 +1050,11 @@
5
- 42
+ 43
1
0
0
- 0
+ 15
0
0
0
@@ -1055,7 +1064,7 @@
5
- 43
+ 44
1
0
0
@@ -1069,7 +1078,7 @@
5
- 44
+ 45
1
0
0
@@ -1083,7 +1092,7 @@
5
- 45
+ 46
1
0
0
@@ -1097,7 +1106,7 @@
5
- 46
+ 47
1
0
0
@@ -1111,7 +1120,7 @@
5
- 47
+ 48
1
0
0
@@ -1125,7 +1134,7 @@
5
- 48
+ 49
1
0
0
@@ -1139,7 +1148,7 @@
5
- 49
+ 50
1
0
0
@@ -1153,7 +1162,7 @@
5
- 50
+ 51
1
0
0
@@ -1167,7 +1176,7 @@
5
- 51
+ 52
1
0
0
@@ -1181,7 +1190,7 @@
5
- 52
+ 53
1
0
0
@@ -1195,15 +1204,218 @@
+
+ FreeModbusSlaver
+ 0
+ 0
+ 0
+
+ 6
+ 54
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\mb.c
+ mb.c
+
+
+ 6
+ 55
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfunccoils.c
+ mbfunccoils.c
+
+
+ 6
+ 56
+ 1
+ 0
+ 0
+ 71
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfuncdiag.c
+ mbfuncdiag.c
+
+
+ 6
+ 57
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfuncdisc.c
+ mbfuncdisc.c
+
+
+ 6
+ 58
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfuncholding.c
+ mbfuncholding.c
+
+
+ 6
+ 59
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfuncinput.c
+ mbfuncinput.c
+
+
+ 6
+ 60
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbfuncother.c
+ mbfuncother.c
+
+
+ 6
+ 61
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\functions\mbutils.c
+ mbutils.c
+
+
+ 6
+ 62
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\rtu\mbcrc.c
+ mbcrc.c
+
+
+ 6
+ 63
+ 1
+ 0
+ 0
+ 24
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\modbus\rtu\mbrtu.c
+ mbrtu.c
+
+
+ 6
+ 64
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\port\port.c
+ port.c
+
+
+ 6
+ 65
+ 1
+ 0
+ 0
+ 26
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\port\portevent.c
+ portevent.c
+
+
+ 6
+ 66
+ 1
+ 0
+ 0
+ 15
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\port\portserial.c
+ portserial.c
+
+
+ 6
+ 67
+ 1
+ 0
+ 0
+ 28
+ 0
+ 0
+ 0
+ 0
+ ..\FreeModbus\port\porttimer.c
+ porttimer.c
+
+
+
44
- 2
- 3
+ 0
+ 1
- -32000
- -32000
+ -1
+ -1
-1
@@ -1219,8 +1431,8 @@
0
- 270
- 01000000040000000100000001000000010000000100000001000000FFFFFFFF0000000001000000010000000000000028000000280000000100000001000000000000000100000046453A5C50726F6772616D5C53544D33325C467265654D6F646275735F536C61766572264D61737465722B5254542B53544D33325C4150505C7372635C6170705F7461736B2E63000000000A6170705F7461736B2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000DB000000650000009006000016030000
+ 275
+ 01000000040000000100000001000000010000000100000001000000FFFFFFFF000000000100000001000000000000002800000028000000010000000100000000000000010000004B453A5C50726F6772616D5C5265706F7369746F72795C467265654D6F646275735F536C617665722D4D61737465722D5254542D53544D33325C4150505C7372635C6170705F7461736B2E63000000000A6170705F7461736B2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000100000002000000CA01000070010000C00500009E020000
@@ -1243,7 +1455,7 @@
16
- 9E0100004E01000010050000D9010000
+ 8501000035010000F7040000C0010000
@@ -1259,7 +1471,7 @@
0
16
- 0300000066000000D4000000E7020000
+ 0300000066000000DF00000064010000
16
@@ -1279,7 +1491,7 @@
0
16
- 0300000066000000D4000000E7020000
+ 0300000066000000DF00000064010000
16
@@ -1499,7 +1711,7 @@
0
16
- 030000001B0300008D060000B0030000
+ 03000000980100008D0600002D020000
16
@@ -1519,7 +1731,7 @@
0
16
- 030000001B0300008D060000B0030000
+ 03000000980100008D0600002D020000
16
@@ -1539,7 +1751,7 @@
0
16
- 030000001B0300008D060000B0030000
+ 03000000980100008D0600002D020000
16
@@ -1559,7 +1771,7 @@
0
16
- 030000001B0300008D060000B0030000
+ 03000000980100008D0600002D020000
16
@@ -1599,7 +1811,7 @@
0
16
- 0300000066000000D4000000E7020000
+ 0300000066000000DF00000064010000
16
@@ -1619,7 +1831,7 @@
0
16
- 0300000066000000D4000000E7020000
+ 0300000066000000DF00000064010000
16
@@ -1639,7 +1851,7 @@
0
16
- 000000001803000090060000C9030000
+ 0000000095010000DC04000046020000
16
@@ -1679,7 +1891,7 @@
0
16
- 030000001B0300008D060000B0030000
+ 03000000980100008D0600002D020000
16
@@ -2239,7 +2451,7 @@
0
16
- 0300000066000000D4000000E7020000
+ 0300000066000000DF000000E7020000
16
@@ -2559,7 +2771,7 @@
0
16
- 00000000C903000090060000DC030000
+ 0000000046020000DC04000059020000
16
@@ -2599,7 +2811,7 @@
0
16
- 00000000000000009106000017000000
+ 0000000000000000DD04000017000000
16
@@ -2668,7 +2880,7 @@
2569
- 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFFD60300004F000000DA030000680200000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000009E0100004E01000010050000D9010000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000140500004E010000C5050000A70300002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD70000004F000000DB000000000300000100000002000010040000000100000051FFFFFFD6050000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000E90000004E010000C0010000FF030000000000004F000000D7000000000300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC05000001800080000000000000E900000008030000C5050000A70300000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000000300009006000004030000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000E90000000304000079070000C8040000000000000403000090060000C90300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 000000000D000000000000000040000000000000FFFFFFFFFFFFFFFFD60300004F000000DA030000680200000000000002000000040000000100000000000000000000000000000000000000000000000100000077940000000000000000000000000000000000000000000001000000779400000100000077940000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA00000027040000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000008501000035010000F7040000C0010000B50000004F00000027040000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF270400004F0000002B040000A8020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000FB04000035010000AC0500008E0300002B0400004F000000DC040000A80200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFE20000004F000000E60000007D01000001000000020000100400000001000000E1FEFFFF0E020000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D000000035010000B2010000E6030000000000004F000000E20000007D0100000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000005020000DC0400000902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC05000001800080000000000000D0000000EF020000AC0500008E0300000000000009020000DC040000A80200000000000040820046090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF6E0200000902000072020000A802000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007D010000DC04000081010000010000000100001004000000010000005DFEFFFF36010000FFFFFFFF06000000C5000000C70000009307000094070000950700009607000001800080000001000000D0000000EA03000060070000AF0400000000000081010000DC040000460200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
@@ -2730,7 +2942,7 @@
-1
-1
- 0
+ 1
0
0
0
@@ -2740,11 +2952,11 @@
0
16
- B50000004F000000DB050000DA000000
+ 310400006B0000009006000021030000
16
- B50000006500000027040000F0000000
+ 31040000810000009006000037030000
@@ -2760,36 +2972,16 @@
0
16
- 0300000066000000AE0000000D030000
+ 0300000082000000A600000008030000
16
- 53000000690000000401000099020000
+ 5300000069000000FC0000003F020000
109
109
- 0
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 0300000066000000AE000000EC010000
-
-
- 16
- 53000000690000000401000099020000
-
-
-
- 1465
- 1465
1
0
0
@@ -2800,11 +2992,31 @@
0
16
- 4F030000410300008D060000B0030000
+ 0300000082000000A600000008030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000FC0000003F020000
+
+
+
+ 1465
+ 1465
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 34040000820000008D06000008030000
+
+
+ 16
+ 2303000079010000C307000002020000
@@ -2816,15 +3028,15 @@
0
32767
0
- 4096
+ 32768
0
16
- 4F03000041030000B3050000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
@@ -2836,15 +3048,15 @@
0
32767
0
- 4096
+ 32768
0
16
- 4F03000041030000B3050000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
@@ -2856,21 +3068,21 @@
0
32767
0
- 4096
+ 32768
0
16
- 4F03000041030000B3050000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
1506
1506
- 1
+ 0
0
0
0
@@ -2880,31 +3092,31 @@
0
16
- DF050000630000009006000026030000
+ FA030000660000009D0400001F020000
16
- 53000000690000000401000099020000
+ 1C05000065000000C5050000C1010000
1507
1507
- 1
+ 0
0
0
0
32767
0
- 4096
+ 32768
0
16
- 4F030000410300008D060000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
@@ -2920,51 +3132,51 @@
0
16
- B80000006600000024040000C1000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
1935
1935
- 1
- 0
- 0
- 0
- 32767
- 0
- 4096
- 0
-
- 16
- 4F030000410300008D060000B0030000
-
-
- 16
- 5300000069000000C1020000F4000000
-
-
-
- 1936
- 1936
0
0
0
0
32767
0
- 4096
+ 32768
0
16
- 4F03000041030000B3050000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
+
+
+
+ 1936
+ 1936
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 310400007F0000009006000021030000
+
+
+ 16
+ 2303000079010000C307000002020000
@@ -2976,15 +3188,15 @@
0
32767
0
- 4096
+ 32768
0
16
- 4F03000041030000B3050000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
@@ -3000,11 +3212,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3020,11 +3232,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3040,11 +3252,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3060,11 +3272,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3080,17 +3292,17 @@
0
16
- 4F030000410300008D060000B0030000
+ 34040000820000008D06000008030000
16
- 5300000069000000C1020000F4000000
+ 2303000079010000C307000002020000
195
195
- 0
+ 1
0
0
0
@@ -3100,17 +3312,17 @@
0
16
- 0300000066000000AE000000EC010000
+ 0300000082000000A600000008030000
16
- 53000000690000000401000099020000
+ 5300000069000000FC0000003F020000
196
196
- 0
+ 1
0
0
0
@@ -3120,36 +3332,16 @@
0
16
- 0300000066000000AE000000EC010000
+ 0300000082000000A600000008030000
16
- 53000000690000000401000099020000
+ 5300000069000000FC0000003F020000
197
197
- 0
- 0
- 0
- 0
- 32767
- 0
- 32768
- 0
-
- 16
- 0300000034020000D90400008F020000
-
-
- 16
- 5300000069000000C1020000F4000000
-
-
-
- 198
- 198
1
0
0
@@ -3160,11 +3352,31 @@
0
16
- 000000002A03000048030000C9030000
+ 000000003903000090060000C9030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
+
+
+
+ 198
+ 198
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 0000000002020000400600008B020000
+
+
+ 16
+ 5300000069000000A3020000DE000000
@@ -3180,11 +3392,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3200,11 +3412,11 @@
0
16
- B500000063000000DB050000DA000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3220,11 +3432,11 @@
0
16
- B80000006600000024040000C1000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3260,11 +3472,11 @@
0
16
- B80000006600000024040000C1000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3280,11 +3492,11 @@
0
16
- B80000006600000024040000C1000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3300,11 +3512,11 @@
0
16
- B80000006600000024040000C1000000
+ B000000066000000F0030000AB000000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -3316,15 +3528,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3336,15 +3548,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3356,15 +3568,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3376,15 +3588,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3396,15 +3608,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3416,15 +3628,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3436,15 +3648,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3456,15 +3668,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3476,15 +3688,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3496,15 +3708,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3516,15 +3728,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3536,15 +3748,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3556,15 +3768,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3576,15 +3788,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3596,15 +3808,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3616,15 +3828,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3636,15 +3848,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3656,15 +3868,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3676,15 +3888,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3696,15 +3908,15 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
@@ -3716,21 +3928,21 @@
0
32767
0
- 4096
+ 16384
0
16
- E2050000660000008D060000EC010000
+ FA030000660000009D0400001F020000
16
- 5300000069000000E3010000F9010000
+ 1C05000065000000C5050000C1010000
38003
38003
- 1
+ 0
0
0
0
@@ -3740,11 +3952,11 @@
0
16
- 0300000066000000AE0000000D030000
+ 0300000082000000A600000008030000
16
- 53000000690000000401000099020000
+ 5300000069000000FC0000003F020000
@@ -3760,11 +3972,11 @@
0
16
- 0300000034020000D90400008F020000
+ 030000003C0300008D060000B0030000
16
- 5300000069000000C1020000F4000000
+ 5300000069000000A3020000DE000000
@@ -4030,7 +4242,7 @@
59398
59398
- 0
+ 1
0
0
0
@@ -4080,7 +4292,7 @@
0
16
- 00000000000000009006000017000000
+ 00000000000000004006000017000000
16
@@ -4100,7 +4312,7 @@
0
16
- 00000000000000009006000017000000
+ 00000000000000004006000017000000
16
@@ -4120,7 +4332,7 @@
2
16
- 000000001C0000009C02000038000000
+ 00000000380000009C02000054000000
16
@@ -4128,15 +4340,15 @@
- 2484
- 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFB5000000DA000000DB050000DE000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E650020000000000000B50000006500000027040000F0000000B50000004F000000DB050000DA0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000001000000FFFFFFFFFFFFFFFFDB0500004F000000DF05000026030000010000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C0000018000400000010000002B04000065000000DC0400001B020000DF0500004F00000090060000260300000000000040410056160000000753796D626F6C7301000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFB10000004F000000B500000026030000010000000200000004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000065000000B10000001B020000000000004F000000B1000000260300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000026030000900600002A03000001000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC05000001800080000001000000720200001F020000DC040000BE0200004C0300002A03000090060000C90300000000000040820056090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B01000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF020000000000000001000000000000000100000001000000FFFFFFFF480300002A0300004C030000C903000001000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF9807000001000000FFFFFFFF9807000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000019020000DC0400001D020000000000000100000004000000010000000000000000000000FFFFFFFF07000000C5000000C70000007794000093070000940700009507000096070000018000800000000000000000000033020000DC040000BE020000000000001D020000DC040000A80200000000000040820046070000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+ 2589
+ 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFF2D0400006B000000310400002103000001000000020000100400000001000000000000000000000000000000000000000000000001000000FFFFFFFF0900000098070000E30500008F0700009007000091070000B9050000BA050000BB050000BC050000FFFF02000B004354616262656450616E65004000000100000031040000810000009006000037030000310400006B00000090060000210300000000000040820056090000000A43616C6C20537461636B000000009807000001000000FFFFFFFFFFFFFFFF0A43616C6C20537461636B00000000E305000001000000FFFFFFFFFFFFFFFF064C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF0300000000000000000000000000000000000000000000000000000001000000FFFFFFFF9807000001000000FFFFFFFF98070000000000000020000000000000FFFFFFFFFFFFFFFFAD000000C4000000F3030000C8000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A0100007907000001800020000000000000AD00000065000000F3030000DA000000AD0000004F000000F3030000C40000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFF30300004F000000F703000038020000000000000200000004000000010000000000000000000000FFFFFFFF16000000E20500002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000F703000065000000A00400004E020000F70300004F000000A0040000380200000000000040410046160000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFA90000006B000000AD00000021030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000081000000A900000037030000000000006B000000A9000000210300000000000040140056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000FE010000400600000202000000000000010000000400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF50020000AF010000540200003802000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000210300009006000025030000010000000100001004000000010000009AFDFFFF73000000FFFFFFFF07000000C5000000C7000000779400009307000094070000950700009607000001800080000001000000000000003B03000090060000DF030000000000002503000090060000C90300000000000040820056070000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
59392
File
- 2049
- 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000000460000000000000000000000000000000001000000010000000180FE880000000000004500000000000000000000000000000000010000000100000001800B810000000000001300000000000000000000000000000000010000000100000001800C810000000000001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE8030000000000000000000000000000000000000000000000010000000100000096000000020020500000000015436865636B557365724461746149734368616E67659600000000000000010015436865636B557365724461746149734368616E676500000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
+ 2002
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000020005001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020003001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000
1423
@@ -4151,8 +4363,8 @@
59398
Build
- 552
- 00200000000000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A0000000000002400000000000000000000000000000000010000000100000000000000054275696C6487010000
+ 613
+ 00200000010000000D00FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000004001D000000000000000000000000000000000100000001000000018030800000000004001E00000000000000000000000000000000010000000100000001809E8A0000000004001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000004002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000400000000000000000000000000000000000001000000010000009600000003002050010000001153544D33324631303756435F464C415348960000000000000002001153544D33324631303356425F464C4153481153544D33324631303756435F464C41534800000000000000000180EB880000000004002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000400230000000000000000000000000000000001000000010000000180B08A0000000004002400000000000000000000000000000000010000000100000000000000054275696C6487010000
478
@@ -4168,7 +4380,7 @@
Debug
2582
- 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020001003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000100320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000004004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000
+ 00200000010000001B00FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000004002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000004002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000004002800000000000000000000000000000000010000000100000001801B80000000000400290000000000000000000000000000000001000000010000000180E57F0000000004002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000004002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020000002D0000000000000000000000000000000001000000010000000180F07F0000020000002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020000002F0000000000000000000000000000000001000000010000000180BB8A00000200000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380DB8B00000000000031000000064C6F63616C73000000000000000000000000010000000100000000000000000000000100000000001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000002000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000020000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000020000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138046010000000004004900000013446562756720526573746F72652056696577730000000000000000000000000100000001000000000000000000000001000000030013802C8C000000000000FFFFFFFF1A446562756720526573746F726520566965777320416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013802B8C000000000000FFFFFFFF17265265736574205669657720746F2044656661756C7473000000000000000001000000000000000100000000000000000000000100000000000000000005446562756791020000
968
@@ -4196,9 +4408,9 @@
..\APP\src\app_task.c
- 31
- 4
- 15
+ 52
+ 13
+ 19
diff --git a/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvproj b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvproj
index bb51e80..1900936 100644
--- a/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvproj
+++ b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32.uvproj
@@ -400,6 +400,11 @@
1
..\APP\src\stm32f10x_it.c
+
+ UserModbusSlaver.c
+ 1
+ ..\APP\src\UserModbusSlaver.c
+
cpuusage.c
1
@@ -566,9 +571,9 @@
..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
- startup_stm32f10x_hd.s
+ startup_stm32f10x_md.s
2
- ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s
+ ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
@@ -667,6 +672,81 @@
+
+ FreeModbusSlaver
+
+
+ mb.c
+ 1
+ ..\FreeModbus\modbus\mb.c
+
+
+ mbfunccoils.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfunccoils.c
+
+
+ mbfuncdiag.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncdiag.c
+
+
+ mbfuncdisc.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncdisc.c
+
+
+ mbfuncholding.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncholding.c
+
+
+ mbfuncinput.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncinput.c
+
+
+ mbfuncother.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncother.c
+
+
+ mbutils.c
+ 1
+ ..\FreeModbus\modbus\functions\mbutils.c
+
+
+ mbcrc.c
+ 1
+ ..\FreeModbus\modbus\rtu\mbcrc.c
+
+
+ mbrtu.c
+ 1
+ ..\FreeModbus\modbus\rtu\mbrtu.c
+
+
+ port.c
+ 1
+ ..\FreeModbus\port\port.c
+
+
+ portevent.c
+ 1
+ ..\FreeModbus\port\portevent.c
+
+
+ portserial.c
+ 1
+ ..\FreeModbus\port\portserial.c
+
+
+ porttimer.c
+ 1
+ ..\FreeModbus\port\porttimer.c
+
+
+
@@ -1008,7 +1088,7 @@
USE_STDPERIPH_DRIVER,STM32F10X_MD
- ..\Libaries\CMSIS_MDK\CM3\CoreSupport;..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x;..\Libaries\STM32F10x_StdPeriph_Driver\inc;..\Libaries\USB-FS-Device_Driver\inc;..\BSP\inc;..\APP\inc;..\RT-Thread-1.1.1\include;..\RT-Thread-1.1.1\libcpu\arm\stm32
+ ..\Libaries\CMSIS_MDK\CM3\CoreSupport;..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x;..\Libaries\STM32F10x_StdPeriph_Driver\inc;..\Libaries\USB-FS-Device_Driver\inc;..\BSP\inc;..\APP\inc;..\RT-Thread-1.1.1\include;..\RT-Thread-1.1.1\libcpu\arm\stm32;..\FreeModbus\modbus\include;..\FreeModbus\modbus\rtu;..\FreeModbus\port
@@ -1063,6 +1143,11 @@
1
..\APP\src\stm32f10x_it.c
+
+ UserModbusSlaver.c
+ 1
+ ..\APP\src\UserModbusSlaver.c
+
cpuusage.c
1
@@ -1229,9 +1314,9 @@
..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c
- startup_stm32f10x_hd.s
+ startup_stm32f10x_md.s
2
- ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s
+ ..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s
@@ -1330,6 +1415,81 @@
+
+ FreeModbusSlaver
+
+
+ mb.c
+ 1
+ ..\FreeModbus\modbus\mb.c
+
+
+ mbfunccoils.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfunccoils.c
+
+
+ mbfuncdiag.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncdiag.c
+
+
+ mbfuncdisc.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncdisc.c
+
+
+ mbfuncholding.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncholding.c
+
+
+ mbfuncinput.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncinput.c
+
+
+ mbfuncother.c
+ 1
+ ..\FreeModbus\modbus\functions\mbfuncother.c
+
+
+ mbutils.c
+ 1
+ ..\FreeModbus\modbus\functions\mbutils.c
+
+
+ mbcrc.c
+ 1
+ ..\FreeModbus\modbus\rtu\mbcrc.c
+
+
+ mbrtu.c
+ 1
+ ..\FreeModbus\modbus\rtu\mbrtu.c
+
+
+ port.c
+ 1
+ ..\FreeModbus\port\port.c
+
+
+ portevent.c
+ 1
+ ..\FreeModbus\port\portevent.c
+
+
+ portserial.c
+ 1
+ ..\FreeModbus\port\portserial.c
+
+
+ porttimer.c
+ 1
+ ..\FreeModbus\port\porttimer.c
+
+
+
diff --git a/RVMDK/FreeModbus_Slaver&Master+RTT+STM32_STM32F103CBT6_FLASH.dep b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32_STM32F103CBT6_FLASH.dep
new file mode 100644
index 0000000..6cd2d83
--- /dev/null
+++ b/RVMDK/FreeModbus_Slaver&Master+RTT+STM32_STM32F103CBT6_FLASH.dep
@@ -0,0 +1,1137 @@
+Dependencies for Project 'FreeModbus_Slaver&Master+RTT+STM32', Target 'STM32F103CBT6_FLASH': (DO NOT MODIFY !)
+F (..\APP\src\app.c)(0x517B8A66)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\app.o" --omf_browse ".\Output\app.crf" --depend ".\Output\app.d")
+I (..\APP\inc\app_task.h)(0x51FC64C9)
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\stdio.h)(0x4BA13B96)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\BSP\inc\bsp.h)(0x51FA22B3)
+I (..\APP\inc\delay_conf.h)(0x51FB8D45)
+I (..\APP\inc\cpuusage.h)(0x517B8A66)
+I (..\APP\inc\UserModbusSlaver.h)(0x51FC6464)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\APP\src\app_task.c)(0x51FC74EB)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\app_task.o" --omf_browse ".\Output\app_task.crf" --depend ".\Output\app_task.d")
+I (..\APP\inc\app_task.h)(0x51FC64C9)
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\stdio.h)(0x4BA13B96)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\BSP\inc\bsp.h)(0x51FA22B3)
+I (..\APP\inc\delay_conf.h)(0x51FB8D45)
+I (..\APP\inc\cpuusage.h)(0x517B8A66)
+I (..\APP\inc\UserModbusSlaver.h)(0x51FC6464)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\APP\src\stm32f10x_it.c)(0x51FC66EA)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_it.o" --omf_browse ".\Output\stm32f10x_it.crf" --depend ".\Output\stm32f10x_it.d")
+I (..\APP\inc\stm32f10x_it.h)(0x51FB7507)
+I (..\BSP\inc\bsp.h)(0x51FA22B3)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\APP\inc\delay_conf.h)(0x51FB8D45)
+F (..\APP\src\UserModbusSlaver.c)(0x51FC6468)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\usermodbusslaver.o" --omf_browse ".\Output\usermodbusslaver.crf" --depend ".\Output\usermodbusslaver.d")
+I (..\APP\inc\UserModbusSlaver.h)(0x51FC6464)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\APP\src\cpuusage.c)(0x517B8A66)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\cpuusage.o" --omf_browse ".\Output\cpuusage.crf" --depend ".\Output\cpuusage.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\APP\inc\cpuusage.h)(0x517B8A66)
+F (..\APP\inc\delay_conf.h)(0x51FB8D45)()
+F (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)()
+F (..\APP\inc\rtconfig.h)(0x517B8A66)()
+F (..\BSP\src\bsp.c)(0x51FC54F8)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\bsp.o" --omf_browse ".\Output\bsp.crf" --depend ".\Output\bsp.d")
+I (..\BSP\inc\bsp.h)(0x51FA22B3)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\APP\inc\UserModbusSlaver.h)(0x51FC6464)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\RT-Thread-1.1.1\libcpu\arm\common\backtrace.c)(0x4ED0AD20)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\backtrace.o" --omf_browse ".\Output\backtrace.crf" --depend ".\Output\backtrace.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\libcpu\arm\common\showmem.c)(0x4ED0AD20)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\showmem.o" --omf_browse ".\Output\showmem.crf" --depend ".\Output\showmem.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\cpuport.c)(0x50DEBBFE)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\cpuport.o" --omf_browse ".\Output\cpuport.crf" --depend ".\Output\cpuport.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\libcpu\arm\cortex-m3\context_rvds.S)(0x4ED0AD20)(--cpu Cortex-M3 -g --apcs=interwork -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" --list ".\Output\list\context_rvds.lst" --xref -o ".\Output\context_rvds.o" --depend ".\Output\context_rvds.d")
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\misc.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\misc.o" --omf_browse ".\Output\misc.crf" --depend ".\Output\misc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_adc.o" --omf_browse ".\Output\stm32f10x_adc.crf" --depend ".\Output\stm32f10x_adc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c)(0x517A2EE1)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_bkp.o" --omf_browse ".\Output\stm32f10x_bkp.crf" --depend ".\Output\stm32f10x_bkp.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_bkp.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_can.o" --omf_browse ".\Output\stm32f10x_can.crf" --depend ".\Output\stm32f10x_can.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_can.h)(0x517A2EE0)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_crc.o" --omf_browse ".\Output\stm32f10x_crc.crf" --depend ".\Output\stm32f10x_crc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_crc.h)(0x517A2EDF)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c)(0x517A2EE1)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_dac.o" --omf_browse ".\Output\stm32f10x_dac.crf" --depend ".\Output\stm32f10x_dac.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dac.h)(0x517A2EE0)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_dbgmcu.o" --omf_browse ".\Output\stm32f10x_dbgmcu.crf" --depend ".\Output\stm32f10x_dbgmcu.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dbgmcu.h)(0x517A2EE2)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_dma.o" --omf_browse ".\Output\stm32f10x_dma.crf" --depend ".\Output\stm32f10x_dma.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_exti.o" --omf_browse ".\Output\stm32f10x_exti.crf" --depend ".\Output\stm32f10x_exti.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_flash.o" --omf_browse ".\Output\stm32f10x_flash.crf" --depend ".\Output\stm32f10x_flash.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_fsmc.o" --omf_browse ".\Output\stm32f10x_fsmc.crf" --depend ".\Output\stm32f10x_fsmc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_fsmc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_gpio.o" --omf_browse ".\Output\stm32f10x_gpio.crf" --depend ".\Output\stm32f10x_gpio.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c)(0x517A2EDF)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_i2c.o" --omf_browse ".\Output\stm32f10x_i2c.crf" --depend ".\Output\stm32f10x_i2c.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_i2c.h)(0x517A2EE0)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c)(0x517A2EE1)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_iwdg.o" --omf_browse ".\Output\stm32f10x_iwdg.crf" --depend ".\Output\stm32f10x_iwdg.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c)(0x517A2EE1)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_pwr.o" --omf_browse ".\Output\stm32f10x_pwr.crf" --depend ".\Output\stm32f10x_pwr.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_pwr.h)(0x517A2EE1)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_rcc.o" --omf_browse ".\Output\stm32f10x_rcc.crf" --depend ".\Output\stm32f10x_rcc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_rtc.o" --omf_browse ".\Output\stm32f10x_rtc.crf" --depend ".\Output\stm32f10x_rtc.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rtc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c)(0x517A2EE2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_sdio.o" --omf_browse ".\Output\stm32f10x_sdio.crf" --depend ".\Output\stm32f10x_sdio.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_sdio.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c)(0x517A2EE3)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_spi.o" --omf_browse ".\Output\stm32f10x_spi.crf" --depend ".\Output\stm32f10x_spi.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_spi.h)(0x517A2EE1)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c)(0x517A2EE3)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_tim.o" --omf_browse ".\Output\stm32f10x_tim.crf" --depend ".\Output\stm32f10x_tim.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_usart.o" --omf_browse ".\Output\stm32f10x_usart.crf" --depend ".\Output\stm32f10x_usart.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c)(0x517A2EE0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\stm32f10x_wwdg.o" --omf_browse ".\Output\stm32f10x_wwdg.crf" --depend ".\Output\stm32f10x_wwdg.d")
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_wwdg.h)(0x517A2EE1)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s)(0x5167C547)(--cpu Cortex-M3 -g --apcs=interwork -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" --list ".\Output\list\startup_stm32f10x_md.lst" --xref -o ".\Output\startup_stm32f10x_md.o" --depend ".\Output\startup_stm32f10x_md.d")
+F (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.c)(0x5167C547)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\core_cm3.o" --omf_browse ".\Output\core_cm3.crf" --depend ".\Output\core_cm3.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+F (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c)(0x5167C547)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\system_stm32f10x.o" --omf_browse ".\Output\system_stm32f10x.crf" --depend ".\Output\system_stm32f10x.d")
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+F (..\RT-Thread-1.1.1\src\clock.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\clock.o" --omf_browse ".\Output\clock.crf" --depend ".\Output\clock.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\device.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\device.o" --omf_browse ".\Output\device.crf" --depend ".\Output\device.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\idle.c)(0x5178CF4A)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\idle.o" --omf_browse ".\Output\idle.crf" --depend ".\Output\idle.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\ipc.c)(0x5178CF58)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\ipc.o" --omf_browse ".\Output\ipc.crf" --depend ".\Output\ipc.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\RT-Thread-1.1.1\src\irq.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\irq.o" --omf_browse ".\Output\irq.crf" --depend ".\Output\irq.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\kservice.c)(0x51D01F3C)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\kservice.o" --omf_browse ".\Output\kservice.crf" --depend ".\Output\kservice.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\RT-Thread-1.1.1\src\mem.c)(0x50DFE7EC)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mem.o" --omf_browse ".\Output\mem.crf" --depend ".\Output\mem.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\memheap.c)(0x519F23B4)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\memheap.o" --omf_browse ".\Output\memheap.crf" --depend ".\Output\memheap.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\mempool.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mempool.o" --omf_browse ".\Output\mempool.crf" --depend ".\Output\mempool.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\module.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\module.o" --omf_browse ".\Output\module.crf" --depend ".\Output\module.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\object.c)(0x5178CF6E)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\object.o" --omf_browse ".\Output\object.crf" --depend ".\Output\object.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\RT-Thread-1.1.1\src\scheduler.c)(0x519F23C6)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\scheduler.o" --omf_browse ".\Output\scheduler.crf" --depend ".\Output\scheduler.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\RT-Thread-1.1.1\src\slab.c)(0x50DD3D74)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\slab.o" --omf_browse ".\Output\slab.crf" --depend ".\Output\slab.d")
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+F (..\RT-Thread-1.1.1\src\thread.c)(0x5178CF7C)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\thread.o" --omf_browse ".\Output\thread.crf" --depend ".\Output\thread.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\RT-Thread-1.1.1\src\timer.c)(0x5178CF8A)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\timer.o" --omf_browse ".\Output\timer.crf" --depend ".\Output\timer.d")
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+F (..\FreeModbus\modbus\mb.c)(0x4CCAA23A)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mb.o" --omf_browse ".\Output\mb.crf" --depend ".\Output\mb.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbfunc.h)(0x45782EEA)
+I (..\FreeModbus\modbus\rtu\mbrtu.h)(0x45782EEA)
+F (..\FreeModbus\modbus\functions\mbfunccoils.c)(0x45D88314)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfunccoils.o" --omf_browse ".\Output\mbfunccoils.crf" --depend ".\Output\mbfunccoils.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+F (..\FreeModbus\modbus\functions\mbfuncdiag.c)(0x45782EEA)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfuncdiag.o" --omf_browse ".\Output\mbfuncdiag.crf" --depend ".\Output\mbfuncdiag.d")
+F (..\FreeModbus\modbus\functions\mbfuncdisc.c)(0x45D88342)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfuncdisc.o" --omf_browse ".\Output\mbfuncdisc.crf" --depend ".\Output\mbfuncdisc.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+F (..\FreeModbus\modbus\functions\mbfuncholding.c)(0x45D88356)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfuncholding.o" --omf_browse ".\Output\mbfuncholding.crf" --depend ".\Output\mbfuncholding.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+F (..\FreeModbus\modbus\functions\mbfuncinput.c)(0x46E759EC)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfuncinput.o" --omf_browse ".\Output\mbfuncinput.crf" --depend ".\Output\mbfuncinput.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+F (..\FreeModbus\modbus\functions\mbfuncother.c)(0x45782EEA)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbfuncother.o" --omf_browse ".\Output\mbfuncother.crf" --depend ".\Output\mbfuncother.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbconfig.h)(0x4B988B1E)
+F (..\FreeModbus\modbus\functions\mbutils.c)(0x4CC91370)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbutils.o" --omf_browse ".\Output\mbutils.crf" --depend ".\Output\mbutils.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\FreeModbus\modbus\rtu\mbcrc.c)(0x45D883D4)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbcrc.o" --omf_browse ".\Output\mbcrc.crf" --depend ".\Output\mbcrc.d")
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+F (..\FreeModbus\modbus\rtu\mbrtu.c)(0x4CC947C0)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\mbrtu.o" --omf_browse ".\Output\mbrtu.crf" --depend ".\Output\mbrtu.d")
+I (C:\Program Files\keil\ARM\RV31\INC\stdlib.h)(0x4BD5D7FE)
+I (C:\Program Files\keil\ARM\RV31\INC\string.h)(0x4BA13B9A)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+I (..\FreeModbus\modbus\rtu\mbrtu.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbframe.h)(0x45782EEA)
+I (..\FreeModbus\modbus\rtu\mbcrc.h)(0x45782EEA)
+F (..\FreeModbus\port\port.c)(0x51FB5CA2)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\port.o" --omf_browse ".\Output\port.crf" --depend ".\Output\port.d")
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+F (..\FreeModbus\port\portevent.c)(0x462E2D16)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\portevent.o" --omf_browse ".\Output\portevent.crf" --depend ".\Output\portevent.d")
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\FreeModbus\port\portserial.c)(0x51FC6514)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\portserial.o" --omf_browse ".\Output\portserial.crf" --depend ".\Output\portserial.d")
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
+F (..\FreeModbus\port\porttimer.c)(0x51FC650D)(-c --cpu Cortex-M3 -g -O0 -Otime --apcs=interwork --split_sections -I..\Libaries\CMSIS_MDK\CM3\CoreSupport -I..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x -I..\Libaries\STM32F10x_StdPeriph_Driver\inc -I..\Libaries\USB-FS-Device_Driver\inc -I..\BSP\inc -I..\APP\inc -I..\RT-Thread-1.1.1\include -I..\RT-Thread-1.1.1\libcpu\arm\stm32 -I..\FreeModbus\modbus\include -I..\FreeModbus\modbus\rtu -I..\FreeModbus\port -I "C:\Program Files\keil\ARM\INC" -I "C:\Program Files\keil\ARM\INC\ST\STM32F10x" -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD -o ".\Output\porttimer.o" --omf_browse ".\Output\porttimer.crf" --depend ".\Output\porttimer.d")
+I (..\FreeModbus\port\port.h)(0x51FC5C02)
+I (..\APP\inc\stm32f10x_conf.h)(0x517B8A66)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_adc.h)(0x517A2EE3)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h)(0x5167C547)
+I (..\Libaries\CMSIS_MDK\CM3\CoreSupport\core_cm3.h)(0x5167C547)
+I (C:\Program Files\keil\ARM\RV31\INC\stdint.h)(0x4BA13B96)
+I (..\Libaries\CMSIS_MDK\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h)(0x5167C547)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_dma.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_exti.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_flash.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_gpio.h)(0x517A2EDF)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_iwdg.h)(0x517A2EE0)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_rcc.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_tim.h)(0x517A2EE1)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\stm32f10x_usart.h)(0x517A2EE2)
+I (..\Libaries\STM32F10x_StdPeriph_Driver\inc\misc.h)(0x517A2EE2)
+I (..\RT-Thread-1.1.1\include\rthw.h)(0x50DEBD40)
+I (..\RT-Thread-1.1.1\include\rtthread.h)(0x51D02222)
+I (..\RT-Thread-1.1.1\include\rtdef.h)(0x519F2430)
+I (..\APP\inc\rtconfig.h)(0x517B8A66)
+I (C:\Program Files\keil\ARM\RV31\INC\stdarg.h)(0x4BD5D7FE)
+I (..\RT-Thread-1.1.1\include\rtdebug.h)(0x5072376A)
+I (..\RT-Thread-1.1.1\include\rtservice.h)(0x5078DF70)
+I (..\RT-Thread-1.1.1\include\rtm.h)(0x50CD8662)
+I (C:\Program Files\keil\ARM\RV31\INC\assert.h)(0x4BA13B9C)
+I (C:\Program Files\keil\ARM\RV31\INC\inttypes.h)(0x4BA25EFA)
+I (..\FreeModbus\modbus\include\mb.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbport.h)(0x45782EEA)
+I (..\FreeModbus\modbus\include\mbproto.h)(0x45782EEA)
diff --git a/RVMDK/JLinkLog.txt b/RVMDK/JLinkLog.txt
index 5b56e4d..0a2ce21 100644
--- a/RVMDK/JLinkLog.txt
+++ b/RVMDK/JLinkLog.txt
@@ -1,468 +1,635 @@
-T1E9C 001:034 SEGGER J-Link V4.15n (beta) Log File (0002ms, 1031ms total)
-T1E9C 001:034 DLL Compiled: Jun 18 2010 19:55:09 (0002ms, 1031ms total)
-T1E9C 001:034 Logging started @ 2013-08-02 12:46 (0002ms, 1031ms total)
-T1E9C 001:036 JLINK_SetWarnOutHandler(...) (0000ms, 1033ms total)
-T1E9C 001:036 JLINK_OpenEx(...)
+T1C38 000:979 SEGGER J-Link V4.15n (beta) Log File (0001ms, 0975ms total)
+T1C38 000:979 DLL Compiled: Jun 18 2010 19:55:09 (0001ms, 0975ms total)
+T1C38 000:979 Logging started @ 2013-08-03 11:35 (0001ms, 0975ms total)
+T1C38 000:980 JLINK_SetWarnOutHandler(...) (0000ms, 0976ms total)
+T1C38 000:980 JLINK_OpenEx(...)
Firmware: J-Link ARM V7 compiled Jun 20 2012 19:45:53
Hardware: V7.00
S/N: 19087980
-Feature(s): RDI, FlashDL, FlashBP, JFlash, GDBFull returns O.K. (0156ms, 1033ms total)
-T1E9C 001:192 JLINK_SetErrorOutHandler(...) (0000ms, 1189ms total)
-T1E9C 001:192 JLINK_ExecCommand("ProjectFile = "E:\Program\STM32\FreeModbus_Slaver&Master+RTT+STM32\RVMDK\JLinkSettings.ini"", ...) returns 0x00 (0000ms, 1189ms total)
-T1E9C 001:196 JLINK_ExecCommand("DisableConnectionTimeout", ...) returns 0x00 (0000ms, 1189ms total)
-T1E9C 001:199 JLINK_TIF_Select(JLINKARM_TIF_JTAG) returns 0x00 (0000ms, 1189ms total)
-T1E9C 001:199 JLINK_SetSpeed(2000) (0001ms, 1189ms total)
-T1E9C 001:200 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1190ms total)
-T1E9C 001:200 JLINK_GetDLLVersion() returns 41514 (0000ms, 1190ms total)
-T1E9C 001:200 JLINK_GetFirmwareString(...) (0000ms, 1190ms total)
-T1E9C 001:209 JLINK_GetDLLVersion() returns 41514 (0000ms, 1190ms total)
-T1E9C 001:209 JLINK_GetCompileDateTime() (0000ms, 1190ms total)
-T1E9C 001:212 JLINK_GetFirmwareString(...) (0000ms, 1190ms total)
-T1E9C 001:214 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1190ms total)
-T1E9C 001:223 JLINK_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x240 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> >0x250 JTAG> >0x240 JTAG> >0x280 JTAG> >0x198 JTAG> >0x198 JTAG> >0x198 JTAG>
- >0x240 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x198 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> (0130ms, 1190ms total)
-T1E9C 001:353 JLINK_GetIdData(...) ScanLen=9 NumDevices=2 aId[0]=0x3BA00477 aIrRead[0]=0 aScanLen[0]=0 aScanRead[0]=0 (0001ms, 1320ms total)
-T1E9C 001:354 JLINK_JTAG_GetDeviceID(DeviceIndex = 0) returns 0x3BA00477 (0000ms, 1321ms total)
-T1E9C 001:354 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 0) returns 0x00 (0000ms, 1321ms total)
-T1E9C 001:354 JLINK_JTAG_GetDeviceID(DeviceIndex = 1) returns 0x16410041 (0000ms, 1321ms total)
-T1E9C 001:354 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 1) returns 0x00 (0000ms, 1321ms total)
-T1E9C 001:354 JLINK_GetDebugInfo(0x100) -- Value=0xE00FF003 returns 0x00 (0000ms, 1321ms total)
-T1E9C 001:356 JLINK_ReadMem (0xE00FF000, 0x0018 Bytes, ...) >0x320 JTAG> -- Data: 03 F0 F0 FF 03 20 F0 FF 03 30 F0 FF 03 10 F0 FF ... returns 0x00 (0003ms, 1321ms total)
-T1E9C 001:359 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 31 C2 1F 41 returns 0x01 (0003ms, 1324ms total)
-T1E9C 001:362 JLINK_Halt() returns 0x00 (0000ms, 1327ms total)
-T1E9C 001:362 JLINK_IsHalted() returns TRUE (0000ms, 1327ms total)
-T1E9C 001:362 JLINK_ReadMemU32(0xE000EDF0, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 03 00 03 00 returns 0x01 (0003ms, 1327ms total)
-T1E9C 001:365 JLINK_WriteU32(0xE000EDF0, 0xA05F0003) >0x1F0 JTAG> returns 0x00 (0002ms, 1330ms total)
-T1E9C 001:367 JLINK_WriteU32(0xE000EDFC, 0x01000000) >0x1F0 JTAG> returns 0x00 (0002ms, 1332ms total)
-T1E9C 001:369 JLINK_ReadMemU32(0xE0002000, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 60 02 00 00 returns 0x01 (0002ms, 1334ms total)
-T1E9C 001:371 JLINK_ReadMemU32(0xE0001000, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 00 00 00 40 returns 0x01 (0002ms, 1336ms total)
-T1E9C 001:382 JLINK_ExecCommand("Device = STM32F103CB", ...)
+Feature(s): RDI, FlashDL, FlashBP, JFlash, GDBFull returns O.K. (0153ms, 0976ms total)
+T1C38 001:133 JLINK_SetErrorOutHandler(...) (0000ms, 1129ms total)
+T1C38 001:133 JLINK_ExecCommand("ProjectFile = "E:\Program\Repository\FreeModbus_Slaver-Master-RTT-STM32\RVMDK\JLinkSettings.ini"", ...) returns 0x00 (0000ms, 1129ms total)
+T1C38 001:156 JLINK_ExecCommand("DisableConnectionTimeout", ...) returns 0x00 (0000ms, 1129ms total)
+T1C38 001:156 JLINK_TIF_Select(JLINKARM_TIF_JTAG) returns 0x00 (0000ms, 1129ms total)
+T1C38 001:156 JLINK_SetSpeed(2000) (0000ms, 1129ms total)
+T1C38 001:156 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1129ms total)
+T1C38 001:156 JLINK_GetDLLVersion() returns 41514 (0000ms, 1129ms total)
+T1C38 001:156 JLINK_GetFirmwareString(...) (0000ms, 1129ms total)
+T1C38 001:162 JLINK_GetDLLVersion() returns 41514 (0000ms, 1129ms total)
+T1C38 001:162 JLINK_GetCompileDateTime() (0000ms, 1129ms total)
+T1C38 001:165 JLINK_GetFirmwareString(...) (0000ms, 1129ms total)
+T1C38 001:168 JLINK_GetHardwareVersion() returns 0x11170 (0000ms, 1129ms total)
+T1C38 001:185 JLINK_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> >0x250 JTAG> >0x240 JTAG> >0x280 JTAG> >0x198 JTAG> >0x198 JTAG> >0x240 JTAG> >0x240 JTAG>
+ >0x198 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x198 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> (0133ms, 1129ms total)
+T1C38 001:318 JLINK_GetIdData(...) ScanLen=9 NumDevices=2 aId[0]=0x3BA00477 aIrRead[0]=0 aScanLen[0]=0 aScanRead[0]=0 (0001ms, 1262ms total)
+T1C38 001:319 JLINK_JTAG_GetDeviceID(DeviceIndex = 0) returns 0x3BA00477 (0000ms, 1263ms total)
+T1C38 001:319 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 0) returns 0x00 (0000ms, 1263ms total)
+T1C38 001:319 JLINK_JTAG_GetDeviceID(DeviceIndex = 1) returns 0x16410041 (0000ms, 1263ms total)
+T1C38 001:319 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 1) returns 0x00 (0000ms, 1263ms total)
+T1C38 001:320 JLINK_GetDebugInfo(0x100) -- Value=0xE00FF003 returns 0x00 (0000ms, 1264ms total)
+T1C38 001:324 JLINK_ReadMem (0xE00FF000, 0x0018 Bytes, ...) >0x320 JTAG> -- Data: 03 F0 F0 FF 03 20 F0 FF 03 30 F0 FF 03 10 F0 FF ... returns 0x00 (0002ms, 1264ms total)
+T1C38 001:326 JLINK_ReadMemU32(0xE000ED00, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 31 C2 1F 41 returns 0x01 (0003ms, 1266ms total)
+T1C38 001:330 JLINK_Halt() returns 0x00 (0000ms, 1269ms total)
+T1C38 001:330 JLINK_IsHalted() returns TRUE (0000ms, 1269ms total)
+T1C38 001:330 JLINK_ReadMemU32(0xE000EDF0, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 03 00 03 00 returns 0x01 (0004ms, 1269ms total)
+T1C38 001:334 JLINK_WriteU32(0xE000EDF0, 0xA05F0003) >0x1F0 JTAG> returns 0x00 (0003ms, 1273ms total)
+T1C38 001:337 JLINK_WriteU32(0xE000EDFC, 0x01000000) >0x1F0 JTAG> returns 0x00 (0003ms, 1276ms total)
+T1C38 001:340 JLINK_ReadMemU32(0xE0002000, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 60 02 00 00 returns 0x01 (0003ms, 1279ms total)
+T1C38 001:343 JLINK_ReadMemU32(0xE0001000, 0x0001 Items, ...) >0x1F0 JTAG> -- Data: 01 00 00 40 returns 0x01 (0003ms, 1282ms total)
+T1C38 001:359 JLINK_ExecCommand("Device = STM32F103CB", ...)
JLINK_ExecCommand("map ram 0x20000000 - 0x20004FFF", ...) returns 0x00 (0000ms, 0000ms total)
JLINK_AddMirrorAreaEx(Addr = 0x00000000, Size = 0x00000000) (0000ms, 0000ms total)
- returns 0x00 (0001ms, 1338ms total)
-T1E9C 001:383 JLINK_GetHWStatus(...) returns 0x00 (0001ms, 1339ms total)
-T1E9C 001:390 JLINK_GetNumBPUnits(Type = 0xFFFFFF00) >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> returns 0x06 (0059ms, 1340ms total)
-T1E9C 001:449 JLINK_GetNumBPUnits(Type = 0xF0) returns 0x800 (0000ms, 1399ms total)
-T1E9C 001:449 JLINK_GetNumWPUnits() returns 0x04 (0000ms, 1399ms total)
-T1E9C 001:455 JLINK_GetSpeed() returns 0x7D0 (0000ms, 1399ms total)
-T1E9C 001:460 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) >0x200 JTAG> -- Data: 01 00 00 00 returns 0x01 (0003ms, 1399ms total)
-T1E9C 001:463 JLINK_WriteMem(0xE0001000, 0x001C Bytes, ...) -- Data: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... >0x310 JTAG> returns 0x1C (0003ms, 1402ms total)
-T1E9C 001:466 JLINK_ReadMem (0xE0001000, 0x001C Bytes, ...) >0x358 JTAG> -- Data: 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 ... returns 0x00 (0003ms, 1405ms total)
-T1E9C 001:469 JLINK_Halt() returns 0x00 (0000ms, 1408ms total)
-T1E9C 001:469 JLINK_IsHalted() returns TRUE (0000ms, 1408ms total)
-T1E9C 001:471 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0007ms, 1408ms total)
-T1E9C 001:478 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1415ms total)
-T1E9C 001:478 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x00000001 (0003ms, 1415ms total)
-T1E9C 001:481 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0038ms, 1418ms total)
-T1E9C 001:519 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 1456ms total)
-T1E9C 001:531 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_ClrBPEx(BPHandle = 0x00000001) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(R15, 0x2000007C) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1456ms total)
-T1E9C 001:531 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0001ms, 1456ms total)
-T1E9C 001:532 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1457ms total)
-T1E9C 001:532 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000002 (0000ms, 1457ms total)
-T1E9C 001:532 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0029ms, 1457ms total)
-T1E9C 001:561 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1486ms total)
-T1E9C 001:613 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0015ms, 1486ms total)
-T1E9C 001:628 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1486ms total)
-T1E9C 001:628 JLINK_ClrBPEx(BPHandle = 0x00000002) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:628 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R0, 0x00000001) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1486ms total)
-T1E9C 001:681 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0001ms, 1486ms total)
-T1E9C 001:682 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000003 (0000ms, 1487ms total)
-T1E9C 001:682 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0037ms, 1487ms total)
-T1E9C 001:719 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0014ms, 1524ms total)
-T1E9C 001:733 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1524ms total)
-T1E9C 001:733 JLINK_ClrBPEx(BPHandle = 0x00000003) returns 0x00 (0000ms, 1524ms total)
-T1E9C 001:733 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1524ms total)
-T1E9C 001:749 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0008ms, 1524ms total)
-T1E9C 001:757 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R2, 0x00000002) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1532ms total)
-T1E9C 001:757 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0001ms, 1532ms total)
-T1E9C 001:758 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1533ms total)
-T1E9C 001:758 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x00000004 (0004ms, 1533ms total)
-T1E9C 001:762 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0041ms, 1537ms total)
-T1E9C 001:804 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0014ms, 1579ms total)
-T1E9C 001:818 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1579ms total)
-T1E9C 001:818 JLINK_ClrBPEx(BPHandle = 0x00000004) returns 0x00 (0000ms, 1579ms total)
-T1E9C 001:818 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1579ms total)
-T1E9C 001:818 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 48 0C 00 20 95 02 00 08 51 05 00 08 6D 02 00 08 ... >0x31C0 JTAG> returns 0x400 (0013ms, 1579ms total)
-T1E9C 001:831 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000005 (0000ms, 1592ms total)
-T1E9C 001:831 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0033ms, 1592ms total)
-T1E9C 001:864 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1625ms total)
-T1E9C 001:916 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0014ms, 1625ms total)
-T1E9C 001:930 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1625ms total)
-T1E9C 001:930 JLINK_ClrBPEx(BPHandle = 0x00000005) returns 0x00 (0000ms, 1625ms total)
-T1E9C 001:930 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1625ms total)
-T1E9C 001:931 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 04 48 00 F0 09 F8 08 BD 00 08 01 40 00 0C 01 40 ... >0x31C0 JTAG> returns 0x400 (0015ms, 1625ms total)
-T1E9C 001:946 JLINK_WriteReg(R0, 0x08000400) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1640ms total)
-T1E9C 001:946 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0001ms, 1640ms total)
-T1E9C 001:947 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000006 (0000ms, 1641ms total)
-T1E9C 001:947 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0043ms, 1641ms total)
-T1E9C 001:990 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1684ms total)
-T1E9C 002:043 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0015ms, 1684ms total)
-T1E9C 002:058 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1684ms total)
-T1E9C 002:058 JLINK_ClrBPEx(BPHandle = 0x00000006) returns 0x00 (0000ms, 1684ms total)
-T1E9C 002:058 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1684ms total)
-T1E9C 002:059 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 5A 60 1A 46 52 68 42 F4 80 62 5A 60 1A 46 52 68 ... >0x31C0 JTAG> returns 0x400 (0015ms, 1684ms total)
-T1E9C 002:074 JLINK_WriteReg(R0, 0x08000800) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:074 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1699ms total)
-T1E9C 002:075 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000007 (0000ms, 1700ms total)
-T1E9C 002:075 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0043ms, 1700ms total)
-T1E9C 002:118 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1743ms total)
-T1E9C 002:171 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0016ms, 1743ms total)
-T1E9C 002:187 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1743ms total)
-T1E9C 002:187 JLINK_ClrBPEx(BPHandle = 0x00000007) returns 0x00 (0000ms, 1743ms total)
-T1E9C 002:187 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1743ms total)
-T1E9C 002:188 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 00 F0 FD FD 00 20 BD E8 FC 9F 00 00 5D 13 00 08 ... >0x31C0 JTAG> returns 0x400 (0016ms, 1743ms total)
-T1E9C 002:205 JLINK_WriteReg(R0, 0x08000C00) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000008 (0000ms, 1759ms total)
-T1E9C 002:205 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0042ms, 1759ms total)
-T1E9C 002:247 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1801ms total)
-T1E9C 002:300 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 1801ms total)
-T1E9C 002:314 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1801ms total)
-T1E9C 002:314 JLINK_ClrBPEx(BPHandle = 0x00000008) returns 0x00 (0000ms, 1801ms total)
-T1E9C 002:314 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1801ms total)
-T1E9C 002:315 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 2D E9 F0 41 04 46 0D 46 16 46 13 48 00 EB 05 17 ... >0x31C0 JTAG> returns 0x400 (0014ms, 1801ms total)
-T1E9C 002:329 JLINK_WriteReg(R0, 0x08001000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000009 (0000ms, 1815ms total)
-T1E9C 002:329 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0043ms, 1815ms total)
-T1E9C 002:372 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1858ms total)
-T1E9C 002:425 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0011ms, 1858ms total)
-T1E9C 002:436 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1858ms total)
-T1E9C 002:436 JLINK_ClrBPEx(BPHandle = 0x00000009) returns 0x00 (0001ms, 1858ms total)
-T1E9C 002:437 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1859ms total)
-T1E9C 002:437 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: E7 FE 05 46 16 48 FF F7 8E FD F8 B9 14 48 01 68 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1859ms total)
-T1E9C 002:449 JLINK_WriteReg(R0, 0x08001400) returns 0x00 (0000ms, 1871ms total)
-T1E9C 002:449 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1871ms total)
-T1E9C 002:449 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0001ms, 1871ms total)
-T1E9C 002:450 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000A (0000ms, 1872ms total)
-T1E9C 002:450 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0036ms, 1872ms total)
-T1E9C 002:486 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1908ms total)
-T1E9C 002:538 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0011ms, 1908ms total)
-T1E9C 002:549 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1908ms total)
-T1E9C 002:549 JLINK_ClrBPEx(BPHandle = 0x0000000A) returns 0x00 (0001ms, 1908ms total)
-T1E9C 002:550 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1909ms total)
-T1E9C 002:550 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: F8 43 04 46 0D 46 16 46 1F 46 DD E9 08 89 24 B9 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1909ms total)
-T1E9C 002:562 JLINK_WriteReg(R0, 0x08001800) returns 0x00 (0000ms, 1921ms total)
-T1E9C 002:562 JLINK_WriteReg(R1, 0x00000370) returns 0x00 (0001ms, 1921ms total)
-T1E9C 002:563 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000B (0000ms, 1922ms total)
-T1E9C 002:563 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0035ms, 1922ms total)
-T1E9C 002:598 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1957ms total)
-T1E9C 002:651 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0014ms, 1957ms total)
-T1E9C 002:665 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_ClrBPEx(BPHandle = 0x0000000B) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R0, 0x00000002) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R1, 0x00000370) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1957ms total)
-T1E9C 002:665 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0001ms, 1957ms total)
-T1E9C 002:666 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000C (0000ms, 1958ms total)
-T1E9C 002:666 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0055ms, 1958ms total)
-T1E9C 002:721 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0015ms, 2013ms total)
-T1E9C 002:736 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2013ms total)
-T1E9C 002:736 JLINK_ClrBPEx(BPHandle = 0x0000000C) returns 0x00 (0001ms, 2013ms total)
-T1E9C 002:737 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2014ms total)
-T1E9C 002:789 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0007ms, 2014ms total)
-T1E9C 002:796 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R2, 0x00000003) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:796 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2021ms total)
-T1E9C 002:797 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2022ms total)
-T1E9C 002:797 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x0000000D (0004ms, 2022ms total)
-T1E9C 002:801 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0043ms, 2026ms total)
-T1E9C 002:845 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 2069ms total)
-T1E9C 002:858 JLINK_ReadReg(R15) returns 0x20000000 (0001ms, 2069ms total)
-T1E9C 002:859 JLINK_ClrBPEx(BPHandle = 0x0000000D) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R0, 0xFFFFFFFF) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R1, 0x08000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R2, 0x00001B70) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R3, 0x04C11DB7) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(R15, 0x20000002) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000E (0000ms, 2070ms total)
-T1E9C 002:859 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0042ms, 2070ms total)
-T1E9C 002:901 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 2112ms total)
-T1E9C 002:954 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 2112ms total)
-T1E9C 003:007 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 2112ms total)
-T1E9C 003:020 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2112ms total)
-T1E9C 003:020 JLINK_ClrBPEx(BPHandle = 0x0000000E) returns 0x00 (0001ms, 2112ms total)
-T1E9C 003:021 JLINK_ReadReg(R0) returns 0x5B3BE300 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R0, 0x00000003) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R1, 0x08000000) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R2, 0x00001B70) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R3, 0x04C11DB7) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:021 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2113ms total)
-T1E9C 003:022 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000F (0000ms, 2114ms total)
-T1E9C 003:022 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0038ms, 2114ms total)
-T1E9C 003:060 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0014ms, 2152ms total)
-T1E9C 003:074 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2152ms total)
-T1E9C 003:074 JLINK_ClrBPEx(BPHandle = 0x0000000F) returns 0x00 (0001ms, 2152ms total)
-T1E9C 003:075 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2153ms total)
-T1E9C 003:128 JLINK_WriteU32(0xE000EDFC, 0x00000000) >0x1F0 JTAG> returns 0x00 (0004ms, 2153ms total)
-T1E9C 003:132 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL) returns JLINKARM_RESET_TYPE_NORMAL (0000ms, 2157ms total)
-T1E9C 003:132 JLINK_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> >0x250 JTAG> >0x240 JTAG> >0x280 JTAG> >0x198 JTAG> >0x198 JTAG> >0x198 JTAG> >0x240 JTAG>
- >0x240 JTAG> >0x198 JTAG> >0x198 JTAG> >0x240 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x198 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> (0123ms, 2157ms total)
-T1E9C 003:257 JLINK_Close() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x240 JTAG> >0x240 JTAG> >0x08 JTAG> (0056ms, 2280ms total)
+ returns 0x00 (0001ms, 1285ms total)
+T1C38 001:360 JLINK_GetHWStatus(...) returns 0x00 (0001ms, 1286ms total)
+T1C38 001:373 JLINK_GetNumBPUnits(Type = 0xFFFFFF00) >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> returns 0x06 (0063ms, 1287ms total)
+T1C38 001:436 JLINK_GetNumBPUnits(Type = 0xF0) returns 0x800 (0000ms, 1350ms total)
+T1C38 001:436 JLINK_GetNumWPUnits() returns 0x04 (0000ms, 1350ms total)
+T1C38 001:446 JLINK_GetSpeed() returns 0x7D0 (0000ms, 1350ms total)
+T1C38 001:451 JLINK_ReadMemU32(0xE000E004, 0x0001 Items, ...) >0x200 JTAG> -- Data: 01 00 00 00 returns 0x01 (0002ms, 1350ms total)
+T1C38 001:453 JLINK_WriteMem(0xE0001000, 0x001C Bytes, ...) -- Data: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... >0x310 JTAG> returns 0x1C (0003ms, 1352ms total)
+T1C38 001:456 JLINK_ReadMem (0xE0001000, 0x001C Bytes, ...) >0x358 JTAG> -- Data: 01 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 ... returns 0x00 (0003ms, 1355ms total)
+T1C38 001:459 JLINK_Halt() returns 0x00 (0000ms, 1358ms total)
+T1C38 001:459 JLINK_IsHalted() returns TRUE (0000ms, 1358ms total)
+T1C38 001:465 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0006ms, 1358ms total)
+T1C38 001:472 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1364ms total)
+T1C38 001:472 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x00000001 (0002ms, 1364ms total)
+T1C38 001:474 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0083ms, 1366ms total)
+T1C38 001:557 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 1449ms total)
+T1C38 001:570 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1449ms total)
+T1C38 001:570 JLINK_ClrBPEx(BPHandle = 0x00000001) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:570 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(R15, 0x2000007C) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000002 (0000ms, 1449ms total)
+T1C38 001:571 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0033ms, 1449ms total)
+T1C38 001:604 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1482ms total)
+T1C38 001:657 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 1482ms total)
+T1C38 001:670 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1482ms total)
+T1C38 001:670 JLINK_ClrBPEx(BPHandle = 0x00000002) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:670 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R0, 0x00000001) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R2, 0x00000001) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000003 (0000ms, 1482ms total)
+T1C38 001:722 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0028ms, 1482ms total)
+T1C38 001:750 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 1510ms total)
+T1C38 001:763 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1510ms total)
+T1C38 001:763 JLINK_ClrBPEx(BPHandle = 0x00000003) returns 0x00 (0000ms, 1510ms total)
+T1C38 001:763 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1510ms total)
+T1C38 001:770 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0006ms, 1510ms total)
+T1C38 001:776 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R2, 0x00000002) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1516ms total)
+T1C38 001:776 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0001ms, 1516ms total)
+T1C38 001:777 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1517ms total)
+T1C38 001:777 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x00000004 (0002ms, 1517ms total)
+T1C38 001:779 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0035ms, 1519ms total)
+T1C38 001:814 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0015ms, 1554ms total)
+T1C38 001:829 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1554ms total)
+T1C38 001:829 JLINK_ClrBPEx(BPHandle = 0x00000004) returns 0x00 (0000ms, 1554ms total)
+T1C38 001:829 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1554ms total)
+T1C38 001:830 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 80 11 00 20 91 02 00 08 F1 05 00 08 69 02 00 08 ... >0x31C0 JTAG> returns 0x400 (0014ms, 1554ms total)
+T1C38 001:844 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:844 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1568ms total)
+T1C38 001:845 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000005 (0000ms, 1569ms total)
+T1C38 001:845 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0034ms, 1569ms total)
+T1C38 001:880 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1603ms total)
+T1C38 001:933 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 1603ms total)
+T1C38 001:945 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1603ms total)
+T1C38 001:945 JLINK_ClrBPEx(BPHandle = 0x00000005) returns 0x00 (0000ms, 1603ms total)
+T1C38 001:945 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1603ms total)
+T1C38 001:946 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: C0 09 AC E8 C0 09 AC E8 C0 09 8D 46 70 47 04 46 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1603ms total)
+T1C38 001:958 JLINK_WriteReg(R0, 0x08000400) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1615ms total)
+T1C38 001:958 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0001ms, 1615ms total)
+T1C38 001:959 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000006 (0000ms, 1616ms total)
+T1C38 001:959 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0035ms, 1616ms total)
+T1C38 001:994 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 1651ms total)
+T1C38 002:047 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 1651ms total)
+T1C38 002:059 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1651ms total)
+T1C38 002:059 JLINK_ClrBPEx(BPHandle = 0x00000006) returns 0x00 (0000ms, 1651ms total)
+T1C38 002:059 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1651ms total)
+T1C38 002:069 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 05 4D 6D 68 05 F4 40 41 89 0B 07 4D 6B 5C C5 68 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1651ms total)
+T1C38 002:082 JLINK_WriteReg(R0, 0x08000800) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000007 (0000ms, 1664ms total)
+T1C38 002:082 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0035ms, 1664ms total)
+T1C38 002:117 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1699ms total)
+T1C38 002:169 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 1699ms total)
+T1C38 002:181 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1699ms total)
+T1C38 002:181 JLINK_ClrBPEx(BPHandle = 0x00000007) returns 0x00 (0000ms, 1699ms total)
+T1C38 002:181 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1699ms total)
+T1C38 002:182 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 01 E0 96 8A 33 40 0C 12 01 26 06 FA 04 F4 16 88 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1699ms total)
+T1C38 002:194 JLINK_WriteReg(R0, 0x08000C00) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:194 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1711ms total)
+T1C38 002:195 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000008 (0000ms, 1712ms total)
+T1C38 002:195 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0042ms, 1712ms total)
+T1C38 002:237 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1754ms total)
+T1C38 002:289 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0015ms, 1754ms total)
+T1C38 002:304 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1754ms total)
+T1C38 002:304 JLINK_ClrBPEx(BPHandle = 0x00000008) returns 0x00 (0000ms, 1754ms total)
+T1C38 002:304 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1754ms total)
+T1C38 002:305 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 08 E0 28 88 40 44 28 80 04 E0 4F F0 03 0B 01 E0 ... >0x31C0 JTAG> returns 0x400 (0013ms, 1754ms total)
+T1C38 002:318 JLINK_WriteReg(R0, 0x08001000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1767ms total)
+T1C38 002:318 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0001ms, 1767ms total)
+T1C38 002:319 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000009 (0000ms, 1768ms total)
+T1C38 002:319 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0046ms, 1768ms total)
+T1C38 002:365 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1814ms total)
+T1C38 002:417 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 1814ms total)
+T1C38 002:429 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1814ms total)
+T1C38 002:429 JLINK_ClrBPEx(BPHandle = 0x00000009) returns 0x00 (0000ms, 1814ms total)
+T1C38 002:429 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1814ms total)
+T1C38 002:430 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 00 F0 44 FB 83 46 07 E0 05 20 30 80 04 E0 4F F0 ... >0x31C0 JTAG> returns 0x400 (0012ms, 1814ms total)
+T1C38 002:442 JLINK_WriteReg(R0, 0x08001400) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:442 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1826ms total)
+T1C38 002:443 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1827ms total)
+T1C38 002:443 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000A (0000ms, 1827ms total)
+T1C38 002:443 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0033ms, 1827ms total)
+T1C38 002:476 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1860ms total)
+T1C38 002:528 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 1860ms total)
+T1C38 002:541 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1860ms total)
+T1C38 002:541 JLINK_ClrBPEx(BPHandle = 0x0000000A) returns 0x00 (0000ms, 1860ms total)
+T1C38 002:541 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1860ms total)
+T1C38 002:542 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 08 46 00 F0 E7 FF 01 F0 13 F8 FE F7 27 FE 10 BD ... >0x31C0 JTAG> returns 0x400 (0014ms, 1860ms total)
+T1C38 002:556 JLINK_WriteReg(R0, 0x08001800) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:556 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1874ms total)
+T1C38 002:557 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000B (0000ms, 1874ms total)
+T1C38 002:557 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0030ms, 1874ms total)
+T1C38 002:587 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 1904ms total)
+T1C38 002:642 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0042ms, 1904ms total)
+T1C38 002:684 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1904ms total)
+T1C38 002:684 JLINK_ClrBPEx(BPHandle = 0x0000000B) returns 0x00 (0000ms, 1904ms total)
+T1C38 002:684 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1904ms total)
+T1C38 002:774 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 10 B5 FE F7 1C FC 10 BD 70 B5 04 46 06 48 00 68 ... >0x31C0 JTAG> returns 0x400 (0016ms, 1904ms total)
+T1C38 002:790 JLINK_WriteReg(R0, 0x08001C00) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 1920ms total)
+T1C38 002:790 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000C (0000ms, 1920ms total)
+T1C38 002:790 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0065ms, 1920ms total)
+T1C38 002:855 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0004ms, 1985ms total)
+T1C38 002:916 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0025ms, 1985ms total)
+T1C38 002:941 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 1985ms total)
+T1C38 002:941 JLINK_ClrBPEx(BPHandle = 0x0000000C) returns 0x00 (0000ms, 1985ms total)
+T1C38 002:941 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 1985ms total)
+T1C38 002:941 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 28 46 FE F7 E7 F8 70 BD 00 09 00 20 C0 00 00 20 ... >0x31C0 JTAG> returns 0x400 (0015ms, 1985ms total)
+T1C38 002:956 JLINK_WriteReg(R0, 0x08002000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2000ms total)
+T1C38 002:956 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0035ms, 2000ms total)
+T1C38 002:991 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2035ms total)
+T1C38 002:991 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000D (0000ms, 2035ms total)
+T1C38 002:991 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0054ms, 2035ms total)
+T1C38 003:045 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 2089ms total)
+T1C38 003:099 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0013ms, 2089ms total)
+T1C38 003:112 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2089ms total)
+T1C38 003:112 JLINK_ClrBPEx(BPHandle = 0x0000000D) returns 0x00 (0000ms, 2089ms total)
+T1C38 003:112 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2089ms total)
+T1C38 003:112 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 02 20 84 F8 44 00 20 46 FF F7 D0 FD 28 46 FD F7 ... >0x31C0 JTAG> returns 0x400 (0022ms, 2089ms total)
+T1C38 003:134 JLINK_WriteReg(R0, 0x08002400) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2111ms total)
+T1C38 003:134 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000E (0000ms, 2111ms total)
+T1C38 003:134 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0159ms, 2111ms total)
+T1C38 003:294 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 2270ms total)
+T1C38 003:306 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2282ms total)
+T1C38 003:306 JLINK_ClrBPEx(BPHandle = 0x0000000E) returns 0x00 (0000ms, 2282ms total)
+T1C38 003:306 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2282ms total)
+T1C38 003:306 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 40 F2 25 51 09 48 FE F7 0A FA 34 B1 01 22 40 F2 ... >0x31C0 JTAG> returns 0x400 (0013ms, 2282ms total)
+T1C38 003:319 JLINK_WriteReg(R0, 0x08002800) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2295ms total)
+T1C38 003:319 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0001ms, 2295ms total)
+T1C38 003:320 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2296ms total)
+T1C38 003:320 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x0000000F (0000ms, 2296ms total)
+T1C38 003:320 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0040ms, 2296ms total)
+T1C38 003:360 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0014ms, 2336ms total)
+T1C38 003:425 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0022ms, 2336ms total)
+T1C38 003:447 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2336ms total)
+T1C38 003:447 JLINK_ClrBPEx(BPHandle = 0x0000000F) returns 0x00 (0000ms, 2336ms total)
+T1C38 003:447 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2336ms total)
+T1C38 003:451 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 15 46 1F 46 C8 08 A1 EB C0 08 1F FA 88 FC 07 FA ... >0x31C0 JTAG> returns 0x400 (0013ms, 2336ms total)
+T1C38 003:464 JLINK_WriteReg(R0, 0x08002C00) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R1, 0x00000400) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:464 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 2349ms total)
+T1C38 003:465 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2350ms total)
+T1C38 003:465 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2350ms total)
+T1C38 003:465 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2350ms total)
+T1C38 003:465 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2350ms total)
+T1C38 003:465 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000010 (0000ms, 2350ms total)
+T1C38 003:465 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0114ms, 2350ms total)
+T1C38 003:579 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 2464ms total)
+T1C38 003:632 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0031ms, 2464ms total)
+T1C38 003:663 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2464ms total)
+T1C38 003:663 JLINK_ClrBPEx(BPHandle = 0x00000010) returns 0x00 (0000ms, 2464ms total)
+T1C38 003:663 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2464ms total)
+T1C38 003:663 JLINK_WriteMem(0x20000164, 0x0400 Bytes, ...) -- Data: 32 0F 1A 8F 20 29 4C 1A 1B 38 01 78 FF FF FF FF ... >0x31C0 JTAG> returns 0x400 (0014ms, 2464ms total)
+T1C38 003:677 JLINK_WriteReg(R0, 0x08003000) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R1, 0x0000000C) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2478ms total)
+T1C38 003:677 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0001ms, 2478ms total)
+T1C38 003:678 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(R15, 0x200000F4) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000011 (0000ms, 2479ms total)
+T1C38 003:678 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0029ms, 2479ms total)
+T1C38 003:707 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 2508ms total)
+T1C38 003:719 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_ClrBPEx(BPHandle = 0x00000011) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R0, 0x00000002) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R1, 0x0000000C) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R2, 0x20000164) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2508ms total)
+T1C38 003:719 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0001ms, 2508ms total)
+T1C38 003:720 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2509ms total)
+T1C38 003:720 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2509ms total)
+T1C38 003:720 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000012 (0000ms, 2509ms total)
+T1C38 003:720 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0119ms, 2509ms total)
+T1C38 003:839 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0016ms, 2628ms total)
+T1C38 003:855 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2628ms total)
+T1C38 003:855 JLINK_ClrBPEx(BPHandle = 0x00000012) returns 0x00 (0000ms, 2628ms total)
+T1C38 003:855 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2628ms total)
+T1C38 003:908 JLINK_WriteMem(0x20000000, 0x0164 Bytes, ...) -- Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ... >0x1270 JTAG> returns 0x164 (0006ms, 2628ms total)
+T1C38 003:914 JLINK_WriteReg(R0, 0x08000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R1, 0x007A1200) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R2, 0x00000003) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R3, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2634ms total)
+T1C38 003:914 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0001ms, 2634ms total)
+T1C38 003:915 JLINK_WriteReg(R15, 0x20000038) returns 0x00 (0000ms, 2635ms total)
+T1C38 003:915 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2635ms total)
+T1C38 003:915 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2635ms total)
+T1C38 003:915 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2635ms total)
+T1C38 003:915 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2635ms total)
+T1C38 003:915 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) >0x1F0 JTAG> returns 0x00000013 (0008ms, 2635ms total)
+T1C38 003:923 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0081ms, 2643ms total)
+T1C38 004:004 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0020ms, 2724ms total)
+T1C38 004:024 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_ClrBPEx(BPHandle = 0x00000013) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R0, 0xFFFFFFFF) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R1, 0x08000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R2, 0x0000300C) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R3, 0x04C11DB7) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:024 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(R15, 0x20000002) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000014 (0000ms, 2724ms total)
+T1C38 004:025 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0100ms, 2724ms total)
+T1C38 004:125 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0003ms, 2824ms total)
+T1C38 004:178 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0007ms, 2824ms total)
+T1C38 004:239 JLINK_IsHalted() >0x198 JTAG> returns FALSE (0002ms, 2824ms total)
+T1C38 004:291 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0012ms, 2824ms total)
+T1C38 004:303 JLINK_ReadReg(R15) returns 0x20000000 (0001ms, 2824ms total)
+T1C38 004:304 JLINK_ClrBPEx(BPHandle = 0x00000014) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_ReadReg(R0) returns 0x0F5E5951 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R0, 0x00000003) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R1, 0x08000000) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R2, 0x0000300C) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R3, 0x04C11DB7) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R4, 0x00000000) returns 0x00 (0000ms, 2825ms total)
+T1C38 004:304 JLINK_WriteReg(R5, 0x00000000) returns 0x00 (0001ms, 2825ms total)
+T1C38 004:305 JLINK_WriteReg(R6, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R7, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R8, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R9, 0x20000160) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R10, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R11, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R12, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R13, 0x20000800) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R14, 0x20000001) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(R15, 0x2000006A) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(XPSR, 0x01000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(MSP, 0x20000800) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(PSP, 0x20000800) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_WriteReg(CFBP, 0x00000000) returns 0x00 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2) returns 0x00000015 (0000ms, 2826ms total)
+T1C38 004:305 JLINK_Go() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x310 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x218 JTAG> >0x240 JTAG> >0x240 JTAG> (0044ms, 2826ms total)
+T1C38 004:349 JLINK_IsHalted() >0x198 JTAG> >0x17A8 JTAG> >0x1F0 JTAG> returns TRUE (0020ms, 2870ms total)
+T1C38 004:369 JLINK_ReadReg(R15) returns 0x20000000 (0000ms, 2870ms total)
+T1C38 004:369 JLINK_ClrBPEx(BPHandle = 0x00000015) returns 0x00 (0000ms, 2870ms total)
+T1C38 004:369 JLINK_ReadReg(R0) returns 0x00000000 (0000ms, 2870ms total)
+T1C38 004:439 JLINK_WriteU32(0xE000EDFC, 0x00000000) >0x1F0 JTAG> returns 0x00 (0003ms, 2870ms total)
+T1C38 004:442 JLINK_SetResetType(JLINKARM_RESET_TYPE_NORMAL) returns JLINKARM_RESET_TYPE_NORMAL (0000ms, 2873ms total)
+T1C38 004:442 JLINK_Reset() >0x2F8 JTAG>TotalIRLen = 9, IRPrint = 0x0011 >0x30 JTAG> >0x210 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x198 JTAG> >0x38 JTAG> >0x118 JTAG> >0xD8 JTAG> >0x2F0 JTAG> >0x2F0 JTAG> >0x198 JTAG> >0x198 JTAG>Found Cortex-M3 r1p1, Little endian. >0xD8 JTAG> >0x240 JTAG> >0x198 JTAG> >0x198 JTAG>TPIU fitted. >0x198 JTAG> >0x198 JTAG> FPUnit: 6 code (BP) slots and 2 literal slots >0x198 JTAG> >0x250 JTAG> >0x240 JTAG> >0x280 JTAG> >0x198 JTAG> >0x198 JTAG> >0x240 JTAG> >0x240 JTAG>
+ >0x198 JTAG> >0x198 JTAG> >0x240 JTAG> >0x198 JTAG> >0x17A8 JTAG> >0x198 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> (0139ms, 2873ms total)
+T1C38 004:583 JLINK_Close() >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x1F0 JTAG> >0x240 JTAG> >0x240 JTAG> >0x08 JTAG> (0117ms, 3012ms total)