LINUX.ORG.RU

Статьи

Активные теги:

 ,

Осваиваем STM32 снизу: часть 7 - Hello world через UART

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 7. Hello world через UART

UART это протокол, по которому микроконтроллер может взаимодействовать с компьютером. Его можно использовать для печати отладочных сообщений, или для полноценного взаимодействия с программой, запущенной на компьютере. USART это что-то вроде расширенной версия UART, которую мы использовать не будем, в документации обычно используется именно этот термин.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 6 - Мигаем с таймером

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 6. Мигаем с таймером

До сих пор наши программы для реализации временной задержки использовали пустые циклы с примерно подобранным числом итераций. Другой подход - использовать таймеры.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 5 - Мигаем на C

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 5: Мигаем на C

Эта часть будет комбинацией частей 3 и 4. Мы перепишем код из части 3 на C, используя «инфраструктуру» для сборки из части 4 и познакомимся с некоторыми не всегда очевидными моментами, которые надо помнить при работе с микроконтроллером из кода на C.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 4

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 4: Начинаем работать с C

Знание ассемблера важно, но многие программы разумней писать на C. В этой части мы напишем простую программу на C, скомпилируем её, исследуем получившийся объектный файл, правильно скомпонуем и запустим. После этого ещё немного изучим gdb.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 3 - мигаем светодиодом

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 3: мигаем светодиодом

Мигание светодиодом это традиционный hello world для микроконтроллеров. Это один из самых простых способов взаимодействия с окружающей средой без помощи отладчика. В этой части именно этим мы и займёмся.

Сразу оговоримся, что эта часть и далее уже очень сильно зависят от конкретного процессора и даже платы. Все адреса приведены со ссылками на reference manual, что должно помочь в переводе кода на другие процессоры.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 2 - пишем простейшую прошивку

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 2: пишем простейшую прошивку

Вообще говоря, прошивка уже была описана в первой части. Нам нужно создать такой файл, в котором будет записано некое число из четырёх байтов, которое процессор присвоит регистру sp, далее там будет записан, к примеру, адрес 0x08000131 в следующих четырёх байтах, далее будут располагаться 296 нулевых байтов (0x130 - 4 - 4 = 304 - 4 - 4 = 296), а за ними 2 инструкции по 4 байта, которые и будут что-то делать. Итого файл прошивки должен занимать 4 + 4 + 296 + 4 + 4 = 312 байтов. Содержимое этого файла мы запишем в микроконтроллер по адресу 0x08000000, где и располагается флеш-память.

( читать дальше... )

vbr
()

Осваиваем STM32 снизу: часть 1 - подключаем и исследуем плату

 ,

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Все файлы можно взять тут (github.com).

В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.

Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.

( читать дальше... )

vbr
()
: NixOS + Radeon R9 270 + Tearing (28 комментариев)
: Как перепрошить Galaxy Note II (GT-N7100) на Replicant (73 комментария)

CoW или не CoW, вот в чем вопрос

 , , , ,

Сейчас появилось некоторое количество файловых систем, которые почему-то необоснованно относят к группе CoW (Copy-on-Write). Почему так получилось, и что что на самом деле есть Copy-on-Write?

( читать дальше... )

no-dashi-v2
()

Готовим NVIDIA PRIME + Optimus для pre-Turing GPU

 , , ,

Статья основана на моих оригинальных англоязычных записях тут (polter.gitlab.io) и тут (polter.gitlab.io).

Приветствую, несчастные владельцы ноутбуков с технологией с NVIDIA Optimus, а именно те, кому посчастливилось иметь зелёную GPU до поколения Turing (GTX 1650 и выше). Список поколений микроархитектур NVIDIA можно найти на википедии. Как известно, начиная с версии 435.xx в проприетарном драйвере появилась нормальная поддержка энергосбережения для этих архитектур, так что если у вас NVIDIA GTX 1650 и выше, всё должно работать из коробки и простыню ниже можно не читать.

( читать дальше... )

POLTER
()
: Как выйти из vim? (124 комментария)
: Исправление кракозябров в региональной локали (en_DE, ru_UA...) (10 комментариев)
: Включение поддержки джойстика DragonRise Inc. Generic USB (6 комментариев)

Как кушать вилкой. ... или о fork() в двух словах

 

Статья о создании процессов в Linux

( читать дальше... )

PPP328
()
: Запуск Windows-игр на RPG Maker MV под Linux (25 комментариев)

Встроенный бинарник на Linux

 , ,

Встроенный бинарник на Linux

Это текстовая версия статьи, оригинал с картинками вот тут (teletype.in).

Продолжаю раскрывать интересную тему запуска программ нестандартными способами. В этот раз расскажу про запуск ELF-бинарника из скрипта и без записи в файловую систему.

( читать дальше... )

alex0x08
()
: Как собрать myrulib c современным wxsqlite3 (22 комментария)

Один бинарник на четыре системы

 , , , ,

Это текстовая версия статьи, оригинал с картинками вот тут (teletype.in)

( читать дальше... )

alex0x08
()

Как получить быструю виртуальную macOS Ventura в линуксе

 , ,

В этот раз через QEMU + KVM + скрипты.

( читать дальше... )

alex0x08
()

RSS подписка на новые темы