Ну если есть такой вопрос Это защищенные процессора с аппаратным шифрованием рома-рама. Есть и посвежее и солиднее - еще более сложная задача для реверс-инжиниринга. Суть проста - все в проце аппаратно зашифрованно, ключ в озу - который подпитан батарейкой. Вобще то все Добавлено: Tue Dec 26, 2017 11:03 pm |
То есть, наебнув батарейку, девайс превращается в бесполезный хлам? Добавлено: Wed Dec 27, 2017 2:16 am |
Break_Neck писал(а): Это защищенные процессора с аппаратным шифрованием рома-рама. Так у Филипса вроде есть подобные? Добавлено: Wed Dec 27, 2017 8:45 am |
Там много что есть для секурити, и да - отключив батарейку(при правильном написании софта даже на запитанном камне) - труп. У меня с таким процом девайс работает 12 лет, полет нормальный. У филипса аналогов с таким уровнем секурности нет (для банкоматов например) - все что есть для подобных применений это батарейные далласы и MaxQ. Добавлено: Wed Dec 27, 2017 10:29 am |
Пытаюсь изучать stm32 и возникают некоторые вопросы так как до этого с программированием не был знаком. Пользуюсь библиотекой HAL. Пытаюсь написать программу которая по наступлению внешнего прерывания должна избавиться от дребезга кнопки и изменять значение переменной counter. И как понимаю, функция прототипа обработчика должна виглядеть как
чтобы она могла вернуть значение переменной counter. Но при этом компилятор выдаёт ошибку "error:conficting types for HAL_GPIO_EXTI_Callback"
Подскажите, что я делаю не так ? Может писать отдельно обработчик нажатия и изменения переменной, а её вызывать при наступлении прерывания ? И ещё, обьясните разницу между HAL_GPIO_EXTI_Callback и EXTI2_IRQHandler ? Добавлено: Thu Mar 08, 2018 9:33 pm |
А как ты это все писал? CubeMX юзал? В нем нужно выбрать нужную ногу, переключить ее на внешние прерывания и включить глобальные прерывания от нее в NVIC. После этого в stm32f4xx_it.c появляется функция - обработчик прерывания с кнопки. Добавлено: Thu Mar 08, 2018 9:42 pm |
Да, всё так и сделано, в stm32f4xx_it.c есть тот самый EXTI_IRQHandler. Со светодиодом получалось обработать прерывания и Callback-ом и IRQHandler-ом. А вот с переменной никак ни там, ни там. Вот и интересуюсь какая между ними разница ибо примеры видел и такие, и такие. Добавлено: Thu Mar 08, 2018 9:49 pm |
Написал сейчас в прерывании счетчик, в зависимости от которого загораются 2 светодиода на плате, все работает нормально.
Добавлено: Fri Mar 09, 2018 6:44 pm |
А почему функция void при этом она возвращает counter? Ьак можно, и саму переменную 16 битной сделать Добавлено: Sat Mar 10, 2018 7:19 am |
TheEvilGenius писал(а): она возвращает counter А чего это она его возвращает? counter здесь - глобальная переменная. Модифицировать ее никто не запрещает и из прерывания... Понятие "возвращает" связано с ключевым словом "return", которого здесь нет ) Ну и ща вот понял еще к чему вопрос. Дело в том, что Callback - это технология необходимая для того, чтобы твою функцию могла вызвать сама библиотека по какому-то событию. Вид этой функции строго определен библиотекой. Поэтому если сказано, что функция ничего не возвращает (void), то так и должно быть. Зачем библиотеке код твоей клавиши? Он тебе нужен, вот и сохраняй в удобном месте
Вот в библиотеке даже написано: NOTE : This function Should not be modified, when the callback is needed, the HAL_GPIO_EXTI_Callback could be implemented in the user file. Т.е. хочешь воспользоваться - объяви как положено и пользуйся... Добавлено: Mon Mar 12, 2018 11:00 am |
А ты его последнее условие посмотри Вот и ретурн, и жалуется на то что ретурн будет инт, а функция войд, вот и несоответствие. Надо бы проверить. Добавлено: Mon Mar 12, 2018 1:10 pm |
TheEvilGenius писал(а): А ты его последнее условие посмотри Да, не догнал о чем ты, теперь видно, действительно return там не нужен, переменная то и так глобальная. Добавлено: Mon Mar 12, 2018 6:56 pm |
А поясните мне, пожалуйста, за вот такую глупую вещь. Есть Аттини13, есть для нее вот такой код:
Дает, стало быть, сигнал прямоугольный заполнением 1/3. Подключаю контроллер к USBASP, прошиваю, он сразу же на фантомном питании начинает генерить - все, как положено. Отключаю от программатора, подаю питание - тишина. Отключаю от питания, подключаю USBASP обратно - тишина. Заново заливаю прошивку - опять все работает! Добавлено: Sun May 20, 2018 9:05 am |
Если это весь код то нет инициализации генератора и делителя тактовой. Добавлено: Sun May 20, 2018 9:56 am |
Да ну не весь, конечно. С USBASPом-то работает - значит, нужные куски все есть Добавлено: Sun May 20, 2018 10:40 am |
perezx писал(а): Отключаю от программатора, подаю питание - тишина. А если reset кратковременно на общий замкнуть, не начинает работать? Добавлено: Sun May 20, 2018 12:03 pm |
При программировании может происходить инициализация регистров. А еще ресет к питанию подтянут? Добавлено: Sun May 20, 2018 12:08 pm |
Угу, вероятна проблема с выводом ресета на плате с мк. Добавлено: Sun May 20, 2018 1:03 pm |
Фактически используется "голая" микросхема контроллера - 7805 в питании и выключатель "ресет". На ресете, когда программатор отключен, заведено +5. Замыкание на массу ничегошеньки не дает. Код программы сократил до минимального, позволяющего устойчиво воспроизводить эффект:
Добавлено: Sun May 20, 2018 1:53 pm |
А я говорил - делай на логике Взял бы 561ую серию - и с питанием учаться не пришлось бы. Добавлено: Sun May 20, 2018 1:54 pm |
Ты иди, иди, тебе еще амортизатор менять Добавлено: Sun May 20, 2018 4:51 pm |
видел когда с китайским лабораторником тинька не дружила. кондюк рядом повесил - заработала. а просто от лабораторника без кондюка раз через раз запускалась. какойто вч шум ей мозг ебал. ты кастати вычитай прошивку обратно! когда второй раз к программатору подключишь. может и не сойтись. если не сойдется тоооо -> -> фантомное питание при программировании зло и питание от программатора по тощему усб кабелю тоже зло. ебся пару дней, забраковав 20% контроллеров то не заводились,то висли... а потом при программировании питание нормальное подал - и все заработали, и записывались правильно, и проблем с запуском не было. причем верификация сразу после записи почему-то может и проканать, а через пару минут уже не вычитывается. вот такая была чертовщина, а все изза питания этот вариант самый правдоподобный ну и вариант - контроллер хуевый. Добавлено: Sun May 20, 2018 5:57 pm |
У меня при простом повторении схем на микроконтроллерах руки опустились. А потом действительно кап в 0.1 подвешенный к выходу 7805 все решал. Добавлено: Sun May 20, 2018 9:54 pm |
Ларчик открывался чрезвычайно просто, как я и предполагал. Переменная с4 на старте нигде не инициализируется. Видимо, при прошивке принудительно обнуляется вся область памяти, вот и с4 становится нулем. А при штатном старте - "как повезет". Добавлено: Tue May 22, 2018 10:42 am |
А как же
Добавлено: Tue May 22, 2018 10:24 pm |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |