删除 标准版4.0/prot_digital_v30_Core1.c
This commit is contained in:
parent
fb647f0b84
commit
591a646ccb
@ -1,227 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* PROT_digital_v30_Core1.c
|
|
||||||
*****************************************************************************/
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <ccblkfn.h>
|
|
||||||
#include "adi_initialize.h"
|
|
||||||
#include "PROT_digital_v30_Core1.h"
|
|
||||||
#include "sys/drivers.h"
|
|
||||||
//#include "cgu.h"
|
|
||||||
#include "rtdb.h"
|
|
||||||
#include "digit_protect\inc\digit_commonapi.h"
|
|
||||||
#include "adi_osal.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Place program arguments in the following string.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern void timer_interrupt(void);
|
|
||||||
extern void pulseAjustClock(); //秒脉冲中断处理函数
|
|
||||||
extern int progStart(int ErrCode);
|
|
||||||
extern void KaiChuChannelReset(); //开出通道复位
|
|
||||||
extern void maintask(void);
|
|
||||||
extern int spi_flash_init(void);
|
|
||||||
extern void gse_handle( void );
|
|
||||||
extern int goosesmv_init( void );
|
|
||||||
//int inf_shm_printf_write( const char *forms, ... );
|
|
||||||
extern void adi_gpio_init();
|
|
||||||
double sGetMsTime ( void );
|
|
||||||
extern void adi_qpio_wd_set();
|
|
||||||
extern void adi_qpio_wd_clear();
|
|
||||||
extern int driver_can_adi_open_can0( int baudRate );
|
|
||||||
extern int driver_can_adi_handle( void );
|
|
||||||
|
|
||||||
static double restartTime=0;
|
|
||||||
/* 设定过多少毫秒后,重启系统(停止喂狗) **/
|
|
||||||
int set_boottime( int millSecs )
|
|
||||||
{
|
|
||||||
restartTime = sGetMsTime() + millSecs + 10.0;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
static int feed_watch_dog( void )
|
|
||||||
{
|
|
||||||
if( restartTime < 10 || sGetMsTime()<restartTime )
|
|
||||||
{
|
|
||||||
WD_FEED();
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
unsigned int *ptr;
|
|
||||||
double kk1,kk2,kk3;
|
|
||||||
/* Initialize managed drivers and/or services */
|
|
||||||
|
|
||||||
adi_initComponents();
|
|
||||||
i = 1;
|
|
||||||
|
|
||||||
//cgu_init();
|
|
||||||
ptr =(unsigned int *)(RTDB_BUFFER_PROTECT_INIT);
|
|
||||||
*ptr = 1;
|
|
||||||
rtdb_init();
|
|
||||||
//printf("%d",i);
|
|
||||||
//printf("time = %d,time1 = %d\n",k,*((int *)(RTDB_BUFFER_INIT_TIME)));
|
|
||||||
SYS_TRACE("protect system init start \n");
|
|
||||||
|
|
||||||
//spiflash初始化
|
|
||||||
spi_flash_init();
|
|
||||||
(*ptr)++;
|
|
||||||
SYS_TRACE("spi_flash_init finished \n");
|
|
||||||
|
|
||||||
adi_gpio_init();
|
|
||||||
|
|
||||||
//int *pddd;
|
|
||||||
//inf_shm_get_addr_printf( &pddd );
|
|
||||||
//SYS_TRACE("addr = %X\n",pddd);
|
|
||||||
//保护初始化
|
|
||||||
progStart(0);
|
|
||||||
|
|
||||||
(*ptr)++;
|
|
||||||
SYS_TRACE("progStart finished \n");
|
|
||||||
|
|
||||||
//goose sv初始化
|
|
||||||
goosesmv_init( );
|
|
||||||
(*ptr)++;
|
|
||||||
|
|
||||||
//打开can
|
|
||||||
|
|
||||||
driver_can_adi_open_can0( 500 );
|
|
||||||
//driver_can_adi_open_can0( 1000 );
|
|
||||||
(*ptr)++;
|
|
||||||
|
|
||||||
//开出通道复位
|
|
||||||
KaiChuChannelReset();
|
|
||||||
(*ptr)++;
|
|
||||||
//打开定时器
|
|
||||||
//gpio初始化(毫秒中断、秒脉冲中断、看门狗)
|
|
||||||
#ifdef MS_INT_EXTERNAL //毫秒中断为外部中断
|
|
||||||
drv_gpio_init(timer_interrupt,pulseAjustClock);
|
|
||||||
#else //毫秒中断采用内部定时器
|
|
||||||
//打开定时器
|
|
||||||
drv_tmr_open(timer_interrupt);
|
|
||||||
//gpio初始化(秒脉冲中断、看门狗)
|
|
||||||
drv_gpio_init(NULL,pulseAjustClock);
|
|
||||||
#endif
|
|
||||||
SYS_TRACE("drv_tmr_open() finished \n");
|
|
||||||
|
|
||||||
ptr =(unsigned int *)(RTDB_BUFFER_PROTECT_INIT);
|
|
||||||
*ptr = SHM_BUFF_INIT_FLAG;
|
|
||||||
|
|
||||||
ptr =(unsigned int *)(RTDB_BUFFER_PROTECT_COUNT);
|
|
||||||
*ptr = 0;
|
|
||||||
//printf("v = %X\n",*(unsigned int *)(RTDB_BUFFER_PROTECT_INIT));
|
|
||||||
|
|
||||||
//为了使网口发送成功第一帧GOOSE,必须如下延迟
|
|
||||||
//sMsSleep(3500);
|
|
||||||
|
|
||||||
//gsemv_goose_check_send();
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
//continue;
|
|
||||||
#ifdef CCES_ADI
|
|
||||||
//execute_as_subscriber();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
//kk1 = sGetMsTime();
|
|
||||||
feed_watch_dog( ); //20180426
|
|
||||||
(*ptr) ++;
|
|
||||||
//can收发
|
|
||||||
driver_can_adi_handle();
|
|
||||||
//WD_FEED();
|
|
||||||
gse_handle();
|
|
||||||
//driver_can_adi_handle();
|
|
||||||
//喂狗
|
|
||||||
//WD_FEED();
|
|
||||||
maintask();
|
|
||||||
|
|
||||||
//adi_gpio_wd_feed();
|
|
||||||
//D_OUT(0, 2);
|
|
||||||
if( *ptr%200000 == 0 )
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
static int subNum=0;
|
|
||||||
|
|
||||||
subNum++;
|
|
||||||
if( subNum > 0 )
|
|
||||||
{
|
|
||||||
int gsv_clnp_recv_submit_buffer( int eth_index );
|
|
||||||
|
|
||||||
|
|
||||||
subNum = gsv_clnp_recv_submit_buffer( 2 );
|
|
||||||
if( 0 != subNum )
|
|
||||||
{
|
|
||||||
inf_shm_printf_write("gsv_clnp_recv_submit_buffer failed.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
subNum = 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
int gsv_clnp_send( int eth_index, unsigned char *msg, int msg_len );
|
|
||||||
unsigned char buff[128]={00,00,00,00,00,00,11,22,33,44,55,66,0x81,00,00,00,
|
|
||||||
0x88,0xb8,0x30,0x08,0x00,0x37,0x00,0x00,0x00,0x00,0x61,0x2d,0x80,0x01,0x62,0x81,
|
|
||||||
};
|
|
||||||
static unsigned char dd=0,iLoop;
|
|
||||||
|
|
||||||
for( iLoop=48; iLoop<49; iLoop++ )
|
|
||||||
buff[iLoop]=(unsigned char)(iLoop+dd);
|
|
||||||
dd++;
|
|
||||||
|
|
||||||
gsv_clnp_send(3, buff, sizeof(buff) );
|
|
||||||
buff[iLoop]=(unsigned char)(iLoop+dd);
|
|
||||||
gsv_clnp_send(3, buff, sizeof(buff) );
|
|
||||||
//gsv_clnp_send(3, buff, sizeof(buff) );
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
static unsigned char status=0;
|
|
||||||
|
|
||||||
status = !status;
|
|
||||||
gw61850gse_data_value_change(1,NULL,2041, (void *)&status);
|
|
||||||
gw61850gse_data_value_change(1,NULL,2054, (void *)&status);
|
|
||||||
gw61850gse_check_and_send();
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
int addr;
|
|
||||||
unsigned char buf[1024]={0x55};
|
|
||||||
addr = 64*1024 * (3 + 2);
|
|
||||||
|
|
||||||
//在spi_flash_write中已经将该快擦除
|
|
||||||
memset(buf, 0x55, 1024 );
|
|
||||||
spi_flash_write(addr, buf, 1024 );
|
|
||||||
#endif
|
|
||||||
#if 0
|
|
||||||
static int tmp=0;
|
|
||||||
tmp++;
|
|
||||||
if( tmp > 4 )
|
|
||||||
{
|
|
||||||
tmp = 0;
|
|
||||||
|
|
||||||
gsv_clnp_linkport_reable_rx(2);
|
|
||||||
SYS_TRACE("\n \t>>Now reset LinkPort.\n" );
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
//SYS_TRACE(">>Now protect circle is %d, time is %0.3f.\n",
|
|
||||||
// *ptr/1000, sGetMsTime()/1000 );
|
|
||||||
|
|
||||||
}
|
|
||||||
//kk2 = sGetMsTime();
|
|
||||||
/*
|
|
||||||
if((kk3 = kk2 - kk1)>= 8)
|
|
||||||
{
|
|
||||||
SYS_TRACE("the circle %d time is longer than 8ms and the circle time is %f\n",*ptr,kk3);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
/* Begin adding your custom code here */
|
|
||||||
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user