revert to 32-bit objd values

The size of the objd->value member was previously increased to 64-bit
to allow setting 64-bit default values. This may waste some (ROM)
memory as 64-bit values are somewhat uncommon, and the value can be
set from an application hook instead. Revert to 32-bit values.

Fix #59
pull/62/head
Hans-Erik Floryd 2019-07-10 11:19:11 +02:00
parent 75a5514430
commit f61e77a5d1
2 changed files with 2 additions and 3 deletions

View File

@ -1121,9 +1121,8 @@ void COE_initDefaultValues (void)
i = 0;
do
{
if (objd[i].data != NULL)
if (objd[i].data != NULL && objd[i].bitlength <= sizeof(objd[i].value))
{
/* TODO: bitlength > 64 */
COE_setValue (&objd[i], objd[i].value);
DPRINT ("%04x:%02x = %x\n", SDOobjects[n].index, objd[i].subindex, objd[i].value);
}

View File

@ -21,7 +21,7 @@ typedef struct CC_PACKED
uint16_t bitlength;
uint16_t flags;
const char *name;
uint64_t value;
uint32_t value;
void *data;
} _objd;
CC_PACKED_END