15.01.2017, 19:53
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А что значит "виснет"?
Если переменные определены как float, то на F042 деление будет выполняться весьма долго. Может, не успевает оно поделиться.
А программное деление на ноль ничего не рушит. Результат возвращается 0
|
|
|
|
15.01.2017, 20:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от akegor
|
Там, случаем, не на ноль делится?
|
Не, на 10.
Сообщение от AR_Favorit
|
пытается делить аппаратно
|
В листинге это делается вроде как софтово.
Сообщение от NewWriter
|
А что значит "виснет"?
|
Значит, больше ни на что не реагирует.
Сообщение от NewWriter
|
float
|
Нет, конечно — я ж не сумасшедший на ядрах без fpu флоаты использовать. Обычное целочисленное деление.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
15.01.2017, 20:23
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А брекпоинты? На первой операции деления, где виснет. И после срабатывания - перейти в режим шагания по ассемблерным инструкциям и пошагать, посмотреть куда выкинет.
Оптимизация кода какая стоит? Если поставлена, временно отключить ее
|
|
|
|
15.01.2017, 20:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от NewWriter
|
перейти в режим шагания
|
gdb я не осилил, поэтому не перейду.
Выключение оптимизаций (стояло -O2) не помогает.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
16.01.2017, 01:18
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 709
Сказал спасибо: 363
Сказали Спасибо 796 раз(а) в 370 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
Вот как такое может быть?
|
Данный пост скорее является иллюстрацией к тому, как такое может быть.
Раз у СТМ такое уже было (с STM8, фрагмент эрраты приаттачен), то не факт,
что этого не повторится. Правда, и не факт, что повторится. Чингачгук дважды
на грабли не наступает
|
|
|
|
16.01.2017, 01:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от j-Roger
|
Раз у СТМ такое уже было
|
со своим ядром, которое еще и CISC - это одно, а вот со стандартным-то армовским кортексом - мы бы уже знали)))
|
|
|
|
16.01.2017, 01:33
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 709
Сказал спасибо: 363
Сказали Спасибо 796 раз(а) в 370 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ядро-то арм-овское, а кусок кремния стм-овский.
Я в своем посте просто хотел сказать, что может быть что угодно.
А вдруг eddy напал на "встроенный" косяк?..
Впрочем, ладно, сорри за оффтоп.
|
|
|
|
16.01.2017, 02:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Не, я так понял, что попал на "встроенный косяк" opencm3.
Попробую как-нибудь намедни собраться с духом, и вообще без всяких библиотек (только на CMSIS с стмовскими инклюдами для этого камня) собрать.
Если опять будет глюк, значит, реально что-то не то во встроенных инструкциях, и деление надо будет на софтовый алгоритм заменить (более-менее шустрый я уже нашел, не радует лишь, что вместо слеша надо функцию вызывать).
P.S. С общей точки зрения приколов от камня быть не может, иначе не работали бы примеры из тех же сниппетов. А ведь их-то, наверное, проверяли?
Хотя, не исключаю, что у меня дефект конкретного чипа. С чего бы он вдруг прошивался только после нажатия резета?
__________________
Союз Советских Социалистических Округов Северной Америки
Последний раз редактировалось eddy; 16.01.2017 в 02:07.
|
|
|
|
16.01.2017, 02:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.03.2010
Сообщений: 2,897
Сказал спасибо: 498
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
А opencm3 ведь того... (с) ![Прикольно](images/smilies/icon_wink3.gif)
Еще летом было
|
|
|
|
16.01.2017, 09:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,714
Сказал спасибо: 130
Сказали Спасибо 1,108 раз(а) в 527 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Возможно в процессе деления получаем прерывание. А т.к. обработчика нет - висим ...
А библиотечную функцию пройти в отладке. Поведение таких "стандартных" функций частенько определяют куча дефеншенов. Не всегда описанных или описанных правильно. Возможно компилятор ошибочно пытается реализовать аппаратное деление. Или использовать ресурсы для другого кристалла, которых у тебя просто нет. Или просто баг кривой библиотеки.
Последний раз редактировалось DanilinSA; 16.01.2017 в 09:33.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:26.
|
|