examples/AVR/Slave/ObjDict.h
author fbeaulier
Mon, 29 Aug 2011 17:44:49 +0200
changeset 666 9febdd6fdc71
parent 413 57c7a451c671
permissions -rw-r--r--
patch from Stefan Kratochwil <entwicklung@inovel.de> : canfestival-3-fm3_698.patch
Bug:
If an object dictionary entry was requested whose size exceeds
SDO_MAX_LENGTH_TRANSFERT, the memcpy() call at line 139 of objacces.c overwrites
the memory after *pDestData which causes stack corruption.
-> Bugfix:
The bug was corrected by size checking the requested data. An 'Out of
memory' error message will be generated if the requested data exceeds
SDO_MAX_LENGTH_TRANSFERT.

Additional changes:
Added dynamic buffer allocation for the SDO transfer. This feature can be used
if SDO_DYNAMIC_BUFFER_ALLOCATION is defined in config.h. The size of the
dynamically allocated buffer is controlled with
SDO_DYNAMIC_BUFFER_ALLOCATION_SIZE.
-> Note:
This change removes the detection of OD_LENGTH_DATA_INVALID errors!
413
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     1
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     2
/* File generated by gen_cfile.py. Should not be modified. */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     3
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     4
#ifndef OBJDICT_H
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     5
#define OBJDICT_H
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     6
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     7
#include "data.h"
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     8
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
     9
/* Prototypes of function provided by object dictionnary */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    10
UNS32 ObjDict_valueRangeTest (UNS8 typeValue, void * value);
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    11
const indextable * ObjDict_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks);
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    12
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    13
/* Master node data struct */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    14
extern CO_Data ObjDict_Data;
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    15
extern ODCallback_t Transmit_PDO_1_Parameter_callbacks[];		/* Callbacks of index0x1800 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    16
extern UNS8 Read_Inputs_8_Bit[1];		/* Mapped at index 0x6000, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    17
extern UNS8 Polarity_Input_8_Bit[1];		/* Mapped at index 0x6002, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    18
extern UNS8 Filter_Constant_Input_8_Bit[1];		/* Mapped at index 0x6003, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    19
extern UNS8 Global_Interrupt_Enable_Digital;		/* Mapped at index 0x6005, subindex 0x00*/
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    20
extern UNS8 Interrupt_Mask_Any_Change_8_Bit[1];		/* Mapped at index 0x6006, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    21
extern UNS8 Interrupt_Mask_Low_to_High_8_Bit[1];		/* Mapped at index 0x6007, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    22
extern UNS8 Interrupt_Mask_High_to_Low_8_Bit[1];		/* Mapped at index 0x6008, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    23
extern UNS8 Write_Outputs_8_Bit[1];		/* Mapped at index 0x6200, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    24
extern UNS8 Change_Polarity_Outputs_8_Bit[1];		/* Mapped at index 0x6202, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    25
extern UNS8 Error_Mode_Outputs_8_Bit[1];		/* Mapped at index 0x6206, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    26
extern UNS8 Error_Value_Outputs_8_Bit[1];		/* Mapped at index 0x6207, subindex 0x01 - 0x01 */
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    27
57c7a451c671 New named folder, first DS401 profile module, Makefile
peter
parents:
diff changeset
    28
#endif // OBJDICT_H