Hi,
i send the source files with the initialization.
In the file apgs.c there is the main procedure that call the function
InitRTEnv() that initialize all.
Thanks a lot
Best regards
Il 01/08/2011 16:42, Gilles Chanteperdrix ha scritto:
Could you show us the code which initializes the rtDesc member of the
structure, in order to allow us reproducing your scenario?
--
++
Roberto Bielli
Sviluppo Software
Axel S.r.l.
Via Del Cannino, 3
21020 Crosio Della Valle
Varese - Italy
Telefono: +39 0332 949600
Fax: +39 0332 969315
E-mail: roberto.bie...@axelsw.it
Web Site: www.axelsw.it
++
Si precisa che le informazioni contenute in questo messaggio sono riservate e
ad uso esclusivo del destinatario.
Qualora il messaggio in parola Le fosse pervenuto per errore, La preghiamo di
eliminarlo senza copiarlo e di non inoltrarlo a terzi,
dandocene gentilmente comunicazione. Grazie.
Informativa sul trattamento dei dati personali (D. Lgs. 196/2003).
I dati utilizzati per la spedizione del presente messaggio sono utilizzati da
Axel S.r.l., titolare del trattamento,
per l'invio delle comunicazioni dei diversi settori aziendali, non essendo
autorizzata la divulgazione a terzi.
Potrete rivolgere alla seguente mail richieste di verifica, rettifica o
cancellazione dei Vostri dati: i...@axelsw.it
This e-mail and any attachments is confidential and may contain privileged
information
intended for the addressee(s) only. Dissemination, copying, printing or use by
anybody
else is unauthorised. If you are not the intended recipient,
please delete this message and any attachments and advise the sender
by return e-mail.Thank you.
++
/** \file APgs.c
* Applicazione per eseguire PLC in tempo reale. Axel S.r.l. 2008
*
*/
#include
#include
#include
#include
#include "cext.h"
#include "fujitsu.h"
#include "pc.h"
#include "rttasks.h"
#include "sysgen.h"
#include "version.h"
#include "alplc/communication.h"
#include "alplc/plcmanager.h"
#include "TraceInput.h"
#include "TraceLog.h"
/** versione Real time */
#define RT_VERSION "AXEL S.R.L - " NAME_ARM_APGS " - v. "
VERS_ARM_APGS " - " DATE_ARM_APGS
/** opzioni da linea di comando */
#define CMD_OPT "p:hc:DM:"
static boolean stopApplication;
/** gestore dei segnali di processo */
void sigHandler( int sig, siginfo_t *info,void *context )
{
ucontext_t *uc = (ucontext_t *)context;
int i = 0;
RT_TASK_INFO dstTaskSig;
if (! stopApplication)
{
for( i = 0; i < NUMTASKS; i++ )
{
if( rt_task_inquire( tabRtTask[i].rtDesc, &dstTaskSig )
== 0 && ( dstTaskSig.status & 0x380 ) == 0x380 )
{
AltTraceInN( ALTRACE_LEV_BASE, "Il Task RT %s
ha generato un segnale: 0x%08X", dstTaskSig.name, dstTaskSig.status );
break;
}
}
switch( sig )
{
case SIGTERM:
AltTraceIn0( ALTRACE_LEV_BASE, "Arrivato
segnale di SIGTERM" );
break;
// case SIGINT:
// PrintTimeMex( TRUE,"Arrivato segnale di SIGINT\n" );
// break;
case SIGPIPE:
AltTraceIn0( ALTRACE_LEV_BASE,"Arrivato segnale
di SIGPIPE" );
break;
case SIGFPE:
AltTraceInN( ALTRACE_LEV_BASE,"Arrivato segnale
di SIGFPE all'indirizzo: 0x%08x", uc->uc_mcontext.fault_address );
break;
case SIGSEGV:
AltTraceInN( ALTRACE_LEV_BASE,"Arrivato segnale
di SIGSEGV all'indirizzo: 0x%08x", uc->uc_mcontext.fault_address );
signal( SIGSEGV, SIG_DFL );
break;
case SIGBUS:
AltTraceInN( ALTRACE_LEV_BASE, "Arrivato segnale di SIGBUS
all'indirizzo: 0x%08x", uc->uc_mcontext.arm_pc);
signal( SIGBUS, SIG_DFL );