请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CODECOMPOSER 工具/软件:Code Composer Studio
你好。 我想在项目中使用 mavlink。 代码生成器生成下一个代码
… #define MAVPACKED (__Declaration__)__pragma (pack (push,1))__Declaration____pragma (pack (pop)) ...... MAVPACKED ( typedef struct __mavlink_message{ uint16_t CHECKSUM; ///<在 uint8_t magic 数据包末尾发送; //<协议魔术标记 uint8_t len; //<有效载荷长度 uint8_t INCOMPAT_FLAGS;//<必须理解的标志 uint8_t COMPAT_FLAGS;//<如果不理解 uint8_t SEQ、可忽略的标志; ///<数据包 uint8_t sysid 的序列; //<消息发送人系统/飞机 uint8_t COMPID 的 ID; //<消息发件人组件 uint32_t msgid:24的 ID; //<有效载荷 uint64_t payload64[(MAVLINK_MAX_PAYLOAD_LEN+MAVLINK_NUM_CHECKSUM_Bytes+7)/8]; uint8_t ck[2]; //<传入校验和字节 uint8_t signature[MAVLINK_signature_BLOCK_LEN]; }) mavlink_message_t;
宏 MAVPACKED 用于更改结构对齐。 TI 编译器不编译此代码。 我尝试像这样更改它
#define MAVPACKED (__Declaration__)#pragma pack (PUSH,1)__Declaration__#pragma pack (POP)
但它也不会编译。 谁知道如何解决? 对我来说、在每个使用的地方替换这些宏是不好的变体。