Статьи
Осваиваем STM32 снизу: часть 5 - Мигаем на C
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9
Часть 5: Мигаем на C
Эта часть будет комбинацией частей 3 и 4. Мы перепишем код из части 3 на C, используя «инфраструктуру» для сборки из части 4 и познакомимся с некоторыми не всегда очевидными моментами, которые надо помнить при работе с микроконтроллером из кода на C.
( читать дальше... )
Осваиваем STM32 снизу: часть 4
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9
Часть 4: Начинаем работать с C
Знание ассемблера важно, но многие программы разумней писать на C. В этой части мы напишем простую программу на C, скомпилируем её, исследуем получившийся объектный файл, правильно скомпонуем и запустим. После этого ещё немного изучим gdb.
( читать дальше... )
Осваиваем STM32 снизу: часть 3 - мигаем светодиодом
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9
Часть 3: мигаем светодиодом
Мигание светодиодом это традиционный hello world для микроконтроллеров. Это один из самых простых способов взаимодействия с окружающей средой без помощи отладчика. В этой части именно этим мы и займёмся.
Сразу оговоримся, что эта часть и далее уже очень сильно зависят от конкретного процессора и даже платы. Все адреса приведены со ссылками на reference manual, что должно помочь в переводе кода на другие процессоры.
( читать дальше... )
Осваиваем 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, где и располагается флеш-память.
( читать дальше... )
Осваиваем STM32 снизу: часть 1 - подключаем и исследуем плату
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9
Все файлы можно взять тут.
В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.
Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.
( читать дальше... )
CoW или не CoW, вот в чем вопрос
Сейчас появилось некоторое количество файловых систем, которые почему-то необоснованно относят к группе CoW (Copy-on-Write). Почему так получилось, и что что на самом деле есть Copy-on-Write?
( читать дальше... )
Готовим NVIDIA PRIME + Optimus для pre-Turing GPU
Статья основана на моих оригинальных англоязычных записях тут и тут.
Приветствую, несчастные владельцы ноутбуков с технологией с NVIDIA Optimus, а именно те, кому посчастливилось иметь зелёную GPU до поколения Turing (GTX 1650 и выше). Список поколений микроархитектур NVIDIA можно найти на википедии. Как известно, начиная с версии 435.xx в проприетарном драйвере появилась нормальная поддержка энергосбережения для этих архитектур, так что если у вас NVIDIA GTX 1650 и выше, всё должно работать из коробки и простыню ниже можно не читать.
( читать дальше... )
Как кушать вилкой. ... или о fork() в двух словах
Статья о создании процессов в Linux
( читать дальше... )
Встроенный бинарник на Linux
Это текстовая версия статьи, оригинал с картинками вот тут.
Продолжаю раскрывать интересную тему запуска программ нестандартными способами. В этот раз расскажу про запуск ELF-бинарника из скрипта и без записи в файловую систему.
( читать дальше... )
Один бинарник на четыре системы
Это текстовая версия статьи, оригинал с картинками вот тут
( читать дальше... )
Как получить быструю виртуальную macOS Ventura в линуксе
В этот раз через QEMU + KVM + скрипты.
( читать дальше... )
| ← предыдущие | следующие → |