Tag Archives: STM32

1. Реверс-инжиниринг DPS5005

Применительно к модулю DPS5005 определение реверс-инжиниринга можно описать как изучение работы «железа» (аппаратной части STM32) и написание программного обеспечения для управления этим «железом».

Я, собственно, — разработчик. Это есть моя основная работа. У меня всегда находятся «под рукой» как принципиальные схемы устройств, так и их прототипы. Но на этот раз у меня не было ничего. Это сильно осложняло мою задачу.

Блин! С чего начинать?

Читать далее

0. Что не так с DPS5005?

Это — первая статья из цикла, посвященного программируемому модулю питания DPS5005. Автором материала является швед Йохан Канфло (Johan Kanflo). Я всего лишь занимаюсь переводом его труда на русский язык. Материала много, материал интересный. Затрагиваются технологии STM32, Линукс, OpenOCD, Python.

Авторский материал находится тут:
https://johan.kanflo.com/hacking-the-dps5005/

Стиль оригинального текста я отмечаю как очень хороший, чуть ли не классический, рафинированный английский язык. Возможно на этом сказывается отсутствие у автора американских корней. А может быть просто для Йогана английский не является родным языком, поэтому в его тексте практически нет бытового сленга. Американский бульварный сленг меня дико напрягает. Зачастую бывает так, что я порой даже теряюсь в догадках, о чём хотел сказать тот или иной автор.

И тем не менее, не смотря на очень хорошее изложение в оригинале, я буду переводить не дословно, а придерживаясь смысла. Иногда я буду выкидывать целые предложения и даже полностью заменять их на подходящие по смыслу. Накануне я немного попробовал излагать почти дословно, получается всё таки немножко не то. Наверно слишком длинный путь: мы думаем на русском, шведы думают на своём шведском, а передача мыслей со шведского на русский происходит через промежуточный английский.

Кроме того, в последнее время по жизни у меня пошли какие-то совершенно дурацкие трудности. И я, честно говоря, нахожусь в непростом положении. Поэтому я на всякий случай предупрежу: хоть я и буду прилагать все усилия, но я не могу обещать, что я смогу осилить перевод до конца.

Ладно. Поехали!

Читать далее

Список наиболее используемых команд gdb

Ниже я привожу не полный список команд отладчика arm-none-eabi-gdb, а описываю только те, которыми постоянно пользуюсь.

Как запускать отладчик, как его подключать к отлаживаемому микроконтроллеру описано в предыдущей статье Как я осуществляю отладку микроконтроллерных программ.

Вообще базовых команд у отладчика не очень много. Меня больше напрягает разнообразие их модификаций. И по первости, когда я ещё начинал осваивать эту технологию (особенно после IAR-овских мышкотыканий), для меня было довольно-таки непривычно — что-то там набирать «ручками-ручками». Это уж потом, значительно позже я понял преимущество такого подхода. А пока — да, пока я осваивал эту технологию, я испытывал определённый дискомфорт.

Я так думаю, что это не окончательный вариант статьи. Я начал её писать, и понял, что я наверняка буду в неё добавлять и добавлять разные полезные вкусности.

Нучо, пассажиры, понеслась?!

Читать далее

Как я осуществляю отладку микроконтроллерных программ

Задающего этот вопрос товарища интересовало как вообще осуществляется отладка микроконтроллеров STM32 из среды Linux.

В Винде, там — понятно, там сама среда разработки (IAR, KEIL) для этого имеет соответствующие режимы и средства. А вот в Линуксе — как? Тут ведь нет единой среды. Текстовый редактор — отдельно, компилятор — отдельно, программа для заливки кода — отдельно. Всё это хозяйство логически объединяется и управляется с помощью Make-файла. И это у меня в блоге было неоднократно расписано на примерах разного типа микроконтроллеров (AVR, MSP430, STM32). А вот про отладку — я скромно умолчал.

Читать далее

VPNkey-свисток. AT45DB041B

Сегодня почти весь день ушел на флешь-память AT45DB041B, которую я вынул из VPN-свистка.

Выпаял я чип крайне неаккуратно. Сорвал один птачок. Корпус у AT45DB041B жутко дурной — выводы очень хлипенькие. Ну, работать как-то надо. Поэтому в качестве гибких выводов я сначала использовал обмоточный провод ПЭВ-0.2 как и с ATMEGA64. Но, как это ни странно, даже диаметр 0.2 мм оказался для пятачков AT45DB041B очень жестким. В процессе работы из восьми пятачков осталось всего три, остальные отлетели. Пришлось использовать ПЭВ-0.08.

img_1241

Поскольку проводки бликуют, то визуально на фотке они кажутся более толстыми. На самом деле они чуть-чуть толще волоса.

Читать далее

Допиливание тулчейна до кондиции

Установить-то тулчейн для ARM-ов/Cortex-ов мы установили, но вот полноценно пользоваться им всё ещё нельзя. Нам понадобится доустановить набор файлов, которые описывают специфику конкретных микроконтроллеров — микроконтроллеры-то все разные, периферия у них отличается. А установленный тулчейн имеет общий набор файлов, которые не затрагивают специфику микроконтроллеров.

Читать далее

Устранение варнингов в stlink-gui

Я предполагаю, что вы уже знакомы с предыдущей публикацией:

Установка тулчейна для работы с микроконтроллерами ARM/Cortex http://wp.me/p1H7g0-1pG

Проблема в том, что при компиляции утилиты stlink-gui.c выскакивают пять ворнингов в строках 598, 599, 840, 853 и 913. Ругань идёт на использование устаревших технологий, которые применять не рекомендуется.

Далее я очень кратно расскажу, что нужно сделать, чтобы исправить ситуацию.

Читать далее

Установка тулчейна для работы с микроконтроллерами ARM/Cortex

Время летит быстро. Не так давно я описывал как устанавливать этот же тулчейн, откуда скачивать исходники, как компилировать и устанавливать кросс-компилятор и сопутствующие утилиты. Но время безжалостно всё это выкинуло на свалку истории. Теперь ничего этого делать не нужно. Теперь не нужны танцы с бубном и полуголыми девицами. Теперь почти весь инструментарий есть в репозиториях Debian и Ubuntu.

Собственно, рассказ о том как сейчас устанавливается этот тулчейн под катом.

Читать далее

Кирпичики знаний

Наверно не только у меня одного было желание как-то малость систематизировать знания по использованию того или иного периферийного устройства в STM32 и выложить в общий доступ примеры коротких программ.

Читать далее

STM32F030. Всё есть число

Линукс говорит: «Всё есть файл». Микроконтроллер видит мир со своей точки зрения и тоже говорит: «Всё есть число».

Все остальное от Лукавого с единственной целью — отнять ваши деньги более-менее законным способом.

Помните файл blinky.S из нашей последней версии проекта?

Читать далее