Рубрика «прерывания»
Навсегда избавляемся от дребезга и дружим микроконтроллер с кнопкой
2025-07-01 в 18:03, admin, рубрики: stm32, кнопки, прерывания, семисегментный индикатор, электроникаНизкоуровневое программирование под 8086 для любопытных, часть 2
2025-05-10 в 11:02, admin, рубрики: agalilov, i8086, ассемблер, ассемблер для начинающих, видеобуфер, мультизадачность, низкоуровневое программирование, прерывания, стекДлинное вступление
Утренняя работа над второй частью статьи началось не с запаха кофе, а с запаха нафталина, толстым слоем покрывающего микропроцессоры эпохи конца 1970-х годов. В этой знаменитой плеяде такие имена, как Zilog Z80, Motorola 68000, Intel 8086. Все они были выпущены с разницей буквально года два-три, и вполне могут считаться ровесниками.
Низкоуровневое программирование под 8086 для любопытных, часть 1
2025-04-26 в 22:30, admin, рубрики: agalilov, i8086, ассемблер, ассемблер для начинающих, видеобуфер, низкоуровневое программирование, прерывания, стекВ первой части мы:
-
посмотрим, как работать с памятью и регистрами 8086
-
узнаем, как написать простую программу на ассемблере прямо в отладчике
-
изучим работу механизма прерываний и сделаем демонстрационный пример
Статья рассчитана на тех, кто имеет начальный опыт программирования, но хочет понять основы низкоуровневого программирования и многозадачности.
Примеры в бинарном виде доступны по ссылке https://github.com/galilov/habr/blob/main/asm-8086-galilov.zip.
Что нужно знать перед стартом
Утраченный потенциал подсистемы Windows для Linux (WSL)
2021-01-06 в 6:45, admin, рубрики: BSD, environment subsystems, fork–exec, NetBS, ntfs, UNIX, win32, Windows NT, WSL 1, wsl 2, архитектура Windows, внутренние подсистемы, интегрированные подсистемы, подсистема Linux, подсистемы окружения, прерывания, разработка под windows, Серверное администрирование, системное программирование, системные вызовы
Если вы несколько лет вообще не следили за Windows 10 и не знаете, что происходит, то пропустили одну вещь — очень горячей темой для разработчиков стала подсистема Windows для Linux, она же WSL. Среди программистов очень часто её обсуждают. Действительно, потрясающе интересная штука.
Наконец-то у нас появилась возможность запустить свой инструментарий Linux на Windows наравне с виндовыми программами. А это значит, что больше не нужно изучать странный PowerShell или пользоваться архаичной консолью CMD.EXE.
К сожалению, не всё так радужно. WSL по-прежнему является неким инородным элементом, который отделён от родной среды Windows. В частности, не может взаимодействовать с «родными» инструментами Windows.
Читать полностью »
Отлаживаем сетевые задержки в Kubernetes
2019-11-25 в 13:59, admin, рубрики: bcc, cadvisor, cgroups-зомби, devops, docker, github, hping3, IPIP, ksoftirqd, kubernetes, Linux 4.19, linux 4.9, nat, NIC, softirq, Vegeta, Блог компании ITSumma, виртуализация, контейнеры, Настройка Linux, прерывания, Серверное администрирование, сетевая карта, трассировка, ядро Linux
Пару лет назад Kubernetes уже обсуждался в официальном блоге GitHub. С тех пор он стал стандартной технологией для развёртывания сервисов. Теперь Kubernetes управляет значительной частью внутренних и публичных служб. Поскольку наши кластеры выросли, а требования к производительности стали более жёсткими, мы стали замечать, что в некоторых службах на Kubernetes спорадически появляются задержки, которые нельзя объяснить нагрузкой самого приложения.
По сути, в приложениях происходит будто случайная сетевая задержка до 100 мс и более, что приводит к тайм-аутам или повторным попыткам. Ожидалось, что службы смогут отвечать на запросы гораздо быстрее 100 мс. Но это невозможно, если само соединение отнимает столько времени. Отдельно мы наблюдали очень быстрые запросы MySQL, которые должны были занимать миллисекунды, и MySQL действительно справлялась за миллисекунды, но с точки зрения запрашивающего приложения ответ занимал 100 мс или больше.
Читать полностью »
О злоупотреблении использования операционной системы в проектах под микроконтроллеры
2019-07-25 в 11:21, admin, рубрики: freertos, nvic, личный опыт, микроконтроллеры, микроконтроллеры stm, операционные системы, прерывания, программирование микроконтроллеров, эффективное использованиеСовременные микроконтроллеры имеют достаточно большую производительность и это дает многим программистом возможность думать в примерно следующем ключе: — «Ничего страшного, если 1-5% производительности уйдут на обслуживание операционной системы. Зато мой код будет легко отлаживаемый и явный!». Эти мысли подкрепляются большим количеством энергонезависимой (flash) памяти для хранения кода операционной системы и оперативной (RAM/SRAM) памяти для выделения под каждую задачу своего стека. Однако в большинстве случаев эта мысль ошибочна. И в данной статье я расскажу, почему.Читать полностью »
640 КБ на самом деле хватит всем
2018-01-08 в 7:00, admin, рубрики: c++, dos, freedos, прерывания, Программирование, разработка игр, ретрокомпьютинг
Никогда не сдавайтесь
Действительно ли Билл Гейтс произнёс фразу «640 КБ должно хватить всем»? Её история довольно туманна, однако чаще всего её приписывают Биллу, так что, возможно, он действительно такое говорил.
Его довольно часто за это высмеивали. Мысль о общем пространстве памяти размером всего 640 КБ по современным стандартам смехотворна. В этот размер не уместится даже исполняемые файлы большинства программ-установщиков.
Для сравнения: калькулятор в Windows 10 занимает в состоянии простоя 16,2 МБ оперативной памяти — почти в 26 раз больше, чем объём доступной DOS-программам памяти в 1980-х.
Странные дела
Поверите ли вы мне, если я скажу, что до сих пор существует активное сообщество, использующее эту устаревшую платформу и разрабатывающее для неё ПО?
Наверно, вашим первым вопросом будет «Но зачем?» И я хорошо вас понимаю. Давайте рассмотрим некоторые группы, которые до сих пор заинтересованы во вложениях усилий в DOS.
Читать полностью »
Анатомия драйвера
2016-04-27 в 13:56, admin, рубрики: Драйвер, прерывания, программирование микроконтроллеров, системное программирование, ядроОпять вернёмся в традиционную область разработки операционных систем (и приложений для микроконтроллеров) — написание драйверов.
Я попробую выделить некоторые общие правила и каноны в этой области. Как всегда — на примере Фантома.
Драйвер — функциональная компонента ОС, ответственная за отношения с определённым подмножеством аппаратуры компьютера.
С лёгкой руки того же Юникса драйвера делятся на блочные и байт-ориентированные. В былые времена классическими примерами были драйвер диска (операции — записать и прочитать сектор диска) и драйвер дисплея (прочитать и записать символ).
В современной реальности, конечно, всё сложнее. Драйвер — типичный инстанс-объект класса, и классов этих до фига и больше. В принципе, интерфейс драйверов пытаются как-то ужать в прокрустово ложе модели read/write, но это самообман. У драйвера сетевой карты есть метод «прочитать MAC-адрес карты» (который, конечно, можно реализовать через properties), а у драйвера USB — целая пачка USB-специфичных операций. Ещё веселее у графических драйверов — какой-нибудь bitblt( startx, starty, destx, desty, xsize, ysize, operation ) — обычное дело.
Цикл жизни драйвера, в целом, может быть описан так:
- Инициализация: драйвер получает ресурсы (но не доступ к своей аппаратуре)
- Поиск аппаратуры: драйвер получает от ядра или находит сам свои аппаратные ресурсы
- Активация — драйвер начинает работу
- Появление/пропадание устройств, если это уместно. См. тот же USB.
- Засыпание/просыпание аппаратуры, если это уместно. В контроллерах часто неиспользуемая аппаратура выключается для экономии.
- Деактивация драйвера — обслуживание запросов прекращается
- Выгрузка драйвера — освобождаются все ресурсы ядра, драйвер не существует.
(Вообще я написал в прошлом году черновик открытой спецификации интерфейса драйвера — см. репозиторий и документ.)
Мне известны три модели построения драйвера:
- Поллинг
- Прерывания
- Нити (threads)
Прерывания для самых маленьких
2016-03-18 в 15:21, admin, рубрики: IDT, прерывания, системное программирование, метки: IDTСегодня мы поговорим о прерываниях процессоров семейства x86 (-64). Подробнее под катом.Читать полностью »


