MrBearManul 0 22 декабря, 2020 Опубликовано 22 декабря, 2020 (изменено) · Жалоба 8 минут назад, jcxz сказал: Но если целевая переменная в памяти - u16, то не поможет: Гм... нехорошо. Ждём-с ответа шведов Но вот действительно вопрос: как жи никто не напоролся на этот баг? Хотя бы на этом форуме кто-то же должен был. Я тоже не работаю активно с float, да и не всегда с cortex-m4f. Может быть народ просто молчал, думая, что это их собственный глюк, но никак ни компилятора... Изменено 22 декабря, 2020 пользователем MrBearManul Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 22 декабря, 2020 Опубликовано 22 декабря, 2020 · Жалоба 4 минуты назад, MrBearManul сказал: Но вот действительно вопрос: как жи никто не напоролся на этот баг? Каков процент пользователей IAR из общего количества эмбеддеров? Сколько из них пользуется float? Как часто те кто пользуется умножают на 2^n и усекают до 16 бит? Лично я последний раз в 2006 году использовал плавучку и то в double. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 22 декабря, 2020 Опубликовано 22 декабря, 2020 · Жалоба 14 минут назад, VladislavS сказал: Лично я последний раз в 2006 году использовал плавучку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 22 декабря, 2020 Опубликовано 22 декабря, 2020 · Жалоба Вобщем шведы признали баг существующим, поблагодарили и взяли время на обдумывание. Наверное это всё будет не быстро, так как Christmas на носу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 22 декабря, 2020 Опубликовано 22 декабря, 2020 · Жалоба 3 часа назад, jcxz сказал: поблагодарили и взяли время на обдумывание Спасибо, что пишите/создаете интересные посты/темы. Я ИАР-ом никогда не пользовался (может очень давно для пик-ов пробовал один просто раз запустить/посмотреть и все) и надеюсь не буду им пользоваться. Но в этой теме некоторое кол-во полезной инфы подчерпнул как всегда. Просто случайно видел несколько раз, что на радиохвосте Вас постоянно минусуют просто так и от нечего делать (а скорее видать там "каста" какая-то "избранных" и пр.) и решил по справедливости поблагодарить хотя бы тут (на радиокоте не участвую). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 22 декабря, 2020 Опубликовано 22 декабря, 2020 · Жалоба 49 минут назад, AleksBak сказал: радиохвосте Вас постоянно минусуют просто так Это же форум радиолюбителей, т.е. непрофессионалов. Им простительно непонимать некоторые наши заморочки. Хотя несколько толковых людей, которые делают уникальные вещи на очень высоком уровне там есть. 50 минут назад, AleksBak сказал: Спасибо, что пишите/создаете интересные посты/темы. +1! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба Наконец-то появились подвижки по этому багу. Сегодня от IAR получил письмо: багу присвоен идентификатор "EWARM-8271" и исправление его поставлено в план на 2-й квартал этого года. Ближайшая версия IAR выйдет уже скоро и ещё с этим багом, а потом вроде будет какой-то сервис-пак, который его пофиксит. Причину его они вроде уже нашли и это гуд! Вот что пишут: The compiler-developer (who has made the initial examination) has found (1) reason for the bug and a suggestion (2) for a workaround. His comments: (1) This bug triggers in all optimization levels as it occurs in the phase where instructions are selected. (2) The problem is that the signedness of res16/res32 is used. Declaring these as signed is a workaround. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 240 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба Вчера получил хорошую весть от IAR-овцев по поводу этого бага: The bug got so much attention so it will be corrected in version 9.10.1.(I earlier informed you that correction wa planned in the next service pack 9.10.2) So instead of having to wait till May (for the 9.10.2) the bug will be corrected in 9.10.1 in February/March, Так что в ближайшем выпуске ждём исправления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
copov 3 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба Проявляется ли ошибка совместно с ceil или floor ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба Пофиксили. Должно заработать. Но что-то я не уверен в оптимальности того что получается. Вот, например, на "size" VMOV.F32 S0,#8.0 //res16 = (int)(x * 8) + 0x00008000ul; VLDR S1,[R1, #0] VMUL.F32 S1,S1,S0 VCVT.S32.F32 S1,S1 VMOV R3,S1 SUB R3,R3,#+32768 //res32 = (int)(x * 16) + 0x00008000ul; VLDR S0,[R1, #0] VCVT.S32.F32 S0,S0,#+4 VMOV R4,S0 ADD R4,R4,#+32768 А это на "speed" //res16 = (int)(x * 8) + 0x00008000ul; VLDR S0,[R2, #0] VCVT.S32.F32 S0,S0,#+3 VMOV R3,S0 SUB R3,R3,#+32768 //res32 = (int)(x * 16) + 0x00008000ul; VMOV.F32 S0,#16.0 VLDR S1,[R2, #0] VMUL.F32 S1,S1,S0 VCVT.S32.F32 S1,S1 VMOV R3,S1 ADD R3,R3,#+32768 PS: Я правда циклы и загрузки в память из памяти в листинге почикал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться