ethercat foe字节对齐解决方案

发现ecat从站的代码没实现字节对齐,头是3字节,在转换foe数据会丢数数据

修改前

/**
 * \brief Mailbox header
 */
typedef struct MBX_STRUCT_PACKED_START
{
    UINT16                          Length; /**< \brief Length*/
    UINT16                          Address; /**< \brief Address*/

    UINT16                          Flags[1]; /**< \brief Flags*/
    #define    MBX_OFFS_TYPE        0 /**< \brief Protocol type offset*/
    #define    MBX_MASK_TYPE        0x0F00 /**< \brief Protocol type mask*/
    #define    MBX_SHIFT_TYPE       8 /**< \brief Protocol type shift*/
    #define    MBX_OFFS_COUNTER     0 /**< \brief Protocol counter offset*/
    #define    MBX_MASK_COUNTER     0xF000 /**< \brief Protocol counter mask*/
    #define    MBX_SHIFT_COUNTER    12 /**< \brief Protocol counter shift*/
}MBX_STRUCT_PACKED_END
TMBXHEADER;
修改后,加入#pragma pack(1) 不对齐

#pragma pack


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部