jcxz 224 7 декабря, 2021 Опубликовано 7 декабря, 2021 · Жалоба PS: Можно попробовать: *(float __attribute__ ((aligned (1))) *)&var = ...; Но не знаю - IAR такое не переваривает, как у GCC - не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 7 декабря, 2021 Опубликовано 7 декабря, 2021 · Жалоба 14 minutes ago, Alex_Golubev said: Как сказать gcc компилятору, что данные адреса могут быть не выравнены? /**************************************************************************//** * @file cmsis_gcc.h * @brief CMSIS compiler GCC header file * @version V5.3.0 * @date 28. January 2020 ******************************************************************************/ /* * Copyright (c) 2009-2019 Arm Limited. All rights reserved. #ifndef __UNALIGNED_UINT32_WRITE #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpacked" #pragma GCC diagnostic ignored "-Wattributes" __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; #pragma GCC diagnostic pop #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) #endif #ifndef __UNALIGNED_UINT32_READ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpacked" #pragma GCC diagnostic ignored "-Wattributes" __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; #pragma GCC diagnostic pop #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) #endif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться