# HG changeset patch # User etisserant # Date 1194877069 -3600 # Node ID 1d3bf87b8658479be14d11dd02a15d3d6b621aff # Parent 68e83c3ffbb5a7263fd707869da0a5573c4d4709 Workaround for unsupported UNS64 on some compiler. diff -r 68e83c3ffbb5 -r 1d3bf87b8658 include/hcs12/applicfg.h --- a/include/hcs12/applicfg.h Mon Nov 12 14:38:34 2007 +0100 +++ b/include/hcs12/applicfg.h Mon Nov 12 15:17:49 2007 +0100 @@ -139,11 +139,13 @@ #define UNS8 unsigned char #define UNS16 unsigned short #define UNS32 unsigned long +/* #define UNS24 #define UNS40 #define UNS48 #define UNS56 -#define UNS64 +#define UNS64 +*/ // Whatever your microcontroller, the timer wont work if // TIMEVAL is not at least on 32 bits diff -r 68e83c3ffbb5 -r 1d3bf87b8658 src/pdo.c --- a/src/pdo.c Mon Nov 12 14:38:34 2007 +0100 +++ b/src/pdo.c Mon Nov 12 15:17:49 2007 +0100 @@ -521,7 +521,12 @@ /*Compare new and old PDO*/ if(d->PDO_status[pdoNum].last_message.cob_id.w == pdo.cob_id.w && d->PDO_status[pdoNum].last_message.len == pdo.len && +#ifdef UNS64 *(UNS64*)(&d->PDO_status[pdoNum].last_message.data[0]) == *(UNS64*)(&pdo.data[0])){ +#else /* don't ALLOW_64BIT_OPS*/ + *(UNS32*)(&d->PDO_status[pdoNum].last_message.data[0]) == *(UNS32*)(&pdo.data[0]) && + *(UNS32*)(&d->PDO_status[pdoNum].last_message.data[4]) == *(UNS32*)(&pdo.data[4])){ +#endif /* No changes -> go to next pdo*/ status = state11; }else{