-
- Я в Иаре пишу как в предыдущем посте. Все Ок при любой оптимизации,
на любых кортексах . Портировал проект в ЖЦЦ, тоже все нормально - IBAH(07.04.2020 18:02)
- Еще раз поясняю. Была забыта pragma(pop) для другой структуры в другом файле, в
результате совершенно другая структура в одном файле считалась
упакованной, а в другом нет. Pragma pack содержит потенциальную
угрозу забыть отменить упаковку, что и произошло. - VLLV(07.04.2020 20:07)
- Я в подобных случаях делаю специальную синтаксическую ошибку, и запускаю на компиляцию. Или шерстить через поиск по файлам проекта - IBAH(07.04.2020 20:58)
- Я тоже на это натыкался, именно поэтому перешел на typedef PACKED_STRUCT - это нагляднее, да еще для разных компилеров можно переопределить. - Andreas(07.04.2020 20:11)
- Еще раз поясняю. Была забыта pragma(pop) для другой структуры в другом файле, в
результате совершенно другая структура в одном файле считалась
упакованной, а в другом нет. Pragma pack содержит потенциальную
угрозу забыть отменить упаковку, что и произошло. - VLLV(07.04.2020 20:07)
- Например в BLE стеке от NXP, который только для IAR полно подобного Andreas(265 знак., 07.04.2020 09:55)
- Я про прагму - именно в ней (нечетном количестве в предыдущем
хедере) была проблема. Если оставлять упаковку, то нужно переходить
на __packed. - VLLV(07.04.2020 17:21)
- Обкладывайте прагмами каждую структуру персонально. Так проще. - LightElf(07.04.2020 20:59)
- lwip использует упаковку структур повсеместно. Там это всё
завёрнуто в сколько-то слоёв, чтобы на любом компиляторе могло
работать. SciFi(625 знак., 07.04.2020 10:08, ссылка)
- Я бы не назвал lwip образцом хорошего кода... Но тут не проблема lwip, проблема в ущербности (всмысле невыразительности) Си как языка - lloyd(07.04.2020 10:20)
- За struct вместо typedef struct эцих с гвоздями. Я обычно еще в
конец заголовка uint8_t data[0] добавляю. И размер заголовка не
ползет и к данным удобно обращаться. - Andreas(07.04.2020 10:16)
- Посадите весь Linux Kernel в этот самый эцих - lloyd(07.04.2020 10:48, ссылка)
- Не хотите - не кушайте. Я же не заставляю. А мне нравится. - SciFi(07.04.2020 10:21)
- Я про прагму - именно в ней (нечетном количестве в предыдущем
хедере) была проблема. Если оставлять упаковку, то нужно переходить
на __packed. - VLLV(07.04.2020 17:21)
- Я в Иаре пишу как в предыдущем посте. Все Ок при любой оптимизации,
на любых кортексах . Портировал проект в ЖЦЦ, тоже все нормально - IBAH(07.04.2020 18:02)