📄 dp_debug.c
字号:
/********************** Filename: dp_debug.c *******************************/
/* ========================================================================= */
/* */
/* 0000 000 000 00000 0 000 0 0 0 0000 */
/* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 */
/* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Einsteinstra遝 6 */
/* 0000 000 0 0 000 0 0 00000 0 0000 91074 Herzogenaurach */
/* 0 00 0 0 0 0 0 0 0 0 0 */
/* 0 0 0 0 0 0 0 0 0 0 0 0 0 Tel: ++49-9132-744-200 */
/* 0 0 0 000 0 0 000 0 0 0 0 GmbH Fax: ++49-9132-744-204 */
/* */
/* ========================================================================= */
/* */
/* Description: Print routines for serio.c. */
/* */
/* ------------------------------------------------------------------------- */
/* */
/* Technical support: P. Fredehorst */
/* Tel. : ++49-9132/744-214 */
/* Fax. : -204 */
/* eMail: pfredehorst@profichip.com */
/* */
/*****************************************************************************/
/*****************************************************************************/
/* contents:
- function prototypes
- data structures
- internal functions
*/
/*****************************************************************************/
/* include hierarchy */
#include "..\..\dp_inc\platform.h"
#include "..\..\dp_inc\dp_inc.h"
#ifdef RS232_SERIO
/*---------------------------------------------------------------------------*/
/* function prototypes */
/*---------------------------------------------------------------------------*/
extern UBYTE user_demo_diagnostic( UBYTE diag_nr, UBYTE module_nr );
/*---------------------------------------------------------------------------*/
/* function: wait */
/*---------------------------------------------------------------------------*/
void wait( void )
{
do
{
// wait!
VPC3_RESET_USER_WD(); // toggle user watchdog
}
while( snd_counter > 50);
}
/*---------------------------------------------------------------------------*/
/* function: write_debug_buffer */
/*---------------------------------------------------------------------------*/
#ifdef DP_DEBUG_ENABLE
void PrintDebugBuffer( void )
{
UWORD wIndex;
UWORD i;
print_string("\r\nDebug_Buffer: ");
print_hexbyte( bDebugBufferIndex );
print_hexbyte( bDebugBufferOverlapped );
wait();
wIndex = 0;
if( bDebugBufferOverlapped == TRUE )
{
for( i = bDebugBufferIndex; i < (MAX_NR_OF_DEBUG-1); i++ )
{
if( (wIndex%4) == 0 )
{
wait();
print_string("\r\n");
print_hexbyte(wIndex);
print_string(" ");
}//if( (wIndex%4) == 0 )
print_hexbyte( asDebugBuffer[i].bDebugCode );
print_hexbyte( asDebugBuffer[i].bDetail1 );
print_hexbyte( asDebugBuffer[i].bDetail2 );
print_string(" - ");
wIndex++;
}//for( i = 0; i < bDebugBufferIndex; i++ )
}//if( bDebugBufferOverlapped == TRUE )
for( i = 0; i < bDebugBufferIndex; i++ )
{
if( (wIndex%4) == 0 )
{
wait();
print_string("\r\n");
print_hexbyte(wIndex);
print_string(" ");
}//if( (wIndex%4) == 0 )
print_hexbyte( asDebugBuffer[i].bDebugCode );
print_hexbyte( asDebugBuffer[i].bDetail1 );
print_hexbyte( asDebugBuffer[i].bDetail2 );
print_string(" - ");
wIndex++;
}//for( i = 0; i < bDebugBufferIndex; i++ )
}//void print_debug_buffer( void )
#endif//#ifdef DP_DEBUG_ENABLE
/*---------------------------------------------------------------------------*/
/* function: print_help */
/*---------------------------------------------------------------------------*/
void print_help( void )
{
print_string("\r\nHelp: ");
print_string("\r\na,A : Statusregister");
print_string("\r\nb,B : Moderegister");
print_string("\r\nc,C : Organizational Parameter");
#ifdef DP_FDL
print_string("\r\nd,D : FDL-SAP-List");
#endif//#ifdef DP_FDL
print_string("\r\ne,E : Diagnostic Data");
print_string("\r\nf,F : Parameter Data");
print_string("\r\ng,G : Check Config Data");
wait();
#ifdef DP_SUBSCRIBER
print_string("\r\nh,H : DXB Link Table");
print_string("\r\ni,I : DXB Link Status");
#endif//#ifdef DP_SUBSCRIBER
print_string("\r\nj,J : VPC3 Free Memory");
wait();
print_string("\r\n");
print_string("\r\n 1 : set diagnostic alarm (module 5)");
print_string("\r\n 2 : reset diagnostic alarm (module 5)");
print_string("\r\n 3 : set diagnostic alarm (module 6)");
wait();
print_string("\r\n 4 : reset diagnostic alarm (module 6)");
print_string("\r\n 5 : set process alarm (module 6)");
print_string("\r\n 6 : reset process alarm (module 6)");
print_string("\r\n");
}//void print_help( void )
/*---------------------------------------------------------------------------*/
/* function: show_buffer */
/*---------------------------------------------------------------------------*/
void show_buffer(char * msg_ptr, UBYTE * ptr, UWORD length)
{
UWORD i;
print_string("\r\n");
print_string( msg_ptr );
print_string("\r\nAdr: ");
print_hexword(ptr);
print_string(" length: ");
print_hexword(length);
print_string("\r\nAdr: 00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F");
for( i = 0; i < length; i++ )
{
if( i%16 == 0 )
{
wait();
print_string("\r\n");
print_hexword(i);
print_string(" ");
}//if( i%16 == 0 )
print_string(" ");
print_hexbyte(*(ptr+i));
}//for( i = 0; i < length; i++ )
print_string("\r\n");
}//void show_buffer(char * msg_ptr, UBYTE * ptr, UWORD length)
/*---------------------------------------------------------------------------*/
/* function: print organizational parameters */
/*---------------------------------------------------------------------------*/
void print_org_para( void )
{
show_buffer("Organizational Parameters:", &p_Vpc3->slave_addr, 42 );
}//void print_org_para( void )
/*---------------------------------------------------------------------------*/
/* function: print sap list */
/*---------------------------------------------------------------------------*/
void print_sap_list( void )
{
#ifdef DP_FDL
UBYTE i;
for( i = 0; i < SAP_LENGTH/7; i++ )
{
show_buffer("SAP-List:", &p_Vpc3->sap_ctrl_list[i*7], 7 );
show_buffer("Buffer:", (UBYTE *)((VPC3_ADR)(p_Vpc3->sap_ctrl_list[(i*7)+4] << SEG_MULDIV)+(VPC3_ADR)VPC3_ASIC_ADDRESS), 16 );
}//for( i = 0; i < SAP_LENGTH/7; i++ )
#endif//#ifdef DP_FDL
return;
}//void print_sap_list( void )
/*---------------------------------------------------------------------------*/
/* function: print_diag_buffer */
/*---------------------------------------------------------------------------*/
void print_diag_buffer( void )
{
print_string("\r\nDiag_SM:");
print_hexbyte(p_Vpc3->ctrl_reg.rd.diag_buffer_sm);
show_buffer("Diag Buffer1:", VPC3_GET_DIAG1_PTR(), p_Vpc3->len_diag_buf[0] );
show_buffer("Diag Buffer2:", VPC3_GET_DIAG2_PTR(), p_Vpc3->len_diag_buf[1] );
}//void print_diag_buffer( void )
/*---------------------------------------------------------------------------*/
/* function: print_prm_data */
/*---------------------------------------------------------------------------*/
void print_prm_data( void )
{
show_buffer("NEW_PRM_DATA:", VPC3_GET_PRM_BUF_PTR(), VPC3_GET_PRM_LEN() );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -