Я пытаюсь сделать модуль BLE121LR с внешним MCU (EFM32). Как я понимаю, этот фрагмент кода объявляет преобразование структуры в двоичные данные, верно? Может кто-нибудь объяснить мне, как добавить поддержку ARM (EFM32)? Спасибо большое!Условно используя упакованную структуру с armcc (PACKSTRUCT в BGLib)
Код:
/* Compability */
#ifndef PACKSTRUCT
#ifdef PACKED
#define PACKSTRUCT(a) a PACKED
#else
/*Default packed configuration*/
#ifdef __GNUC__
#ifdef _WIN32
#define PACKSTRUCT(decl) decl __attribute__((__packed__,gcc_struct))
#else
#define PACKSTRUCT(decl) decl __attribute__((__packed__))
#endif
#define ALIGNED __attribute__((aligned(0x4)))
#else //msvc
#define PACKSTRUCT(decl) __pragma(pack(push, 1)) decl __pragma(pack(pop))
#define ALIGNED
#endif
#endif
#endif
Что компилятор вы получаете, когда вы пытаетесь скомпилировать код, используя PACKSTRUCT макрос? Какой компилятор вы используете? – Pinetwig
Мой IDE является uKeil 5. Некоторые ошибки: .. \ bglib \ cmd_def.h (846): ошибка: # 20: идентификатор "пакет" не определен PACKSTRUCT (структура ble_msg_system_reset_cmd_t .. \ bglib \ cmd_def.h (846): ошибка: # 18: ожидается a ")" PACKSTRUCT (struct ble_msg_system_reset_cmd_t .. \ bglib \ cmd_def.h (846): ошибка: # 79: ожидается спецификатор типа –
IDE - это не то же самое, что и компилятор. В моем ответе я предположил, что вы используете armc Keil. Это правильно? – Pinetwig