LINUX.ORG.RU

Статьи

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

 ,

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

Статьи — Разработка

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

Часть 9: подключаем libc

libc это стандартная библиотека языка С. До сих пор мы избегали использования любых функций из стандартной библиотеки, если бы мы попробовали это сделать, то линкер выдал бы ошибку.

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

 ,

vbr
()

Осваиваем STM32 снизу: часть 8 - используем CMSIS

Статьи — Разработка

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

Часть 8: используем CMSIS

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

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

 ,

vbr
()

Осваиваем 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

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

В данной серии статей мы попробуем поработать с процессором 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

Статьи — Desktop

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

Приветствую, несчастные владельцы ноутбуков с технологией с 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

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

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

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

 , ,

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

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