mantech 57 5 апреля, 2021 Опубликовано 5 апреля, 2021 (изменено) · Жалоба 3 минуты назад, l_fin_l сказал: в документации так и написано: Интересная какая-то документация - по факту знаковая, а как внешняя переменная беззнаковая и не ругается... Или в понимании ИАРа - "int" он и знаковый и без - все равно... Изменено 5 апреля, 2021 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l_fin_l 0 5 апреля, 2021 Опубликовано 5 апреля, 2021 (изменено) · Жалоба 2 минуты назад, mantech сказал: Интересная какая-то документация - по факту знаковая, а как внешняя переменная беззнаковая и не ругается... пример из аппноута есть какие-то предположения? Изменено 5 апреля, 2021 пользователем l_fin_l Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба 3 минуты назад, l_fin_l сказал: Сейчас отключил оптимизацию, вроде работает все верно, но я все-равно понять не могу почему __checksum типа int: А какая разница? Для сравнений на равенство - нет никакой разницы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба 1 минуту назад, l_fin_l сказал: пример из аппноута он с оптимизацией тоже не работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l_fin_l 0 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба Только что, mantech сказал: он с оптимизацией тоже не работает? я его и не запускал, его там просто перелопачивать под мой проц надо, а мне лень...но походу надо заняться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба Только что, l_fin_l сказал: а мне лень... Так поставьте printf перед сравнением и увидите, будет работать, значит компилятор выкидывает какую-то переменную, и смотрите дальше какую... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба Что-то вы проблему из ничего создаёте. Отлаживая оптимизированный код надо быть готовым к разного рода приколам. Сравниваем ваши два числа и, казалось бы, сейчас получим false Однако, природу не обманешь. Равны они. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба 3 минуты назад, VladislavS сказал: Сравниваем ваши два числа и, казалось бы, сейчас получим false Да вроде уже пришли к тому, что не в знаках дело, а в оптимизации... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l_fin_l 0 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба Да, уже нашли, благодаря форуму, что проблема была в оптимизации. Всем спасибо за помощь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба Надеюсь, вы её не отключили? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
l_fin_l 0 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба 3 минуты назад, VladislavS сказал: Надеюсь, вы её не отключили? Пока отключил Включил оптимизацию, все стало норм...отладчик просто при включенной оптимизации показывает чудные вещи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 5 апреля, 2021 Опубликовано 5 апреля, 2021 · Жалоба 3 hours ago, l_fin_l said: Включил оптимизацию, все стало норм...отладчик просто при включенной оптимизации показывает чудные вещи. Похоже отладчик IAR символ __checksum считает знаковым поскольку это не переменная, а некий place holder Тут никакими типизациями не поможешь и оптимизация ни при чем. Даже в версии 9.10 без оптимизации этот символ выводится так: Может даже все символы приходящие из линкера знаковые. Факт забавный, но не более. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 20 мая, 2021 Опубликовано 20 мая, 2021 · Жалоба может причина в этом http://we.easyelectronics.ru/STM32/crc32-na-stm32-kak-na-kompe-ili-na-kompe-kak-na-stm32.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jon777 0 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба При включении расчёта CRC размер прошивки увеличивается в 10+ раз. Даже если я указываю в конфиге define symbol __ICFEDIT_region_ROM_end__ = 0x0803FFFF; IAR всё равно размещает CRC в конце памяти контроллера заполняя всю остальную область нолями. Как пофиксить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 15 августа, 2023 Опубликовано 15 августа, 2023 · Жалоба 1 hour ago, Jon777 said: Как пофиксить? Какие настройки линкера на вкладке "Checksum", Именно они задают настройки расчёта и размещения контрольной суммы, если конечно Вы не вызываете инструментарий из командной строки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться