Pull to refresh
281
0
Владимир @32bit_me

Программист

Send message

Как приручить дракона. Краткий пример на clang-c

Reading time12 min
Views16K
Однажды, сидя вечером перед компьютером и предаваясь меланхолии и мыслям о бренности всего сущего, я задумчиво набрал в поиске одного крупного сайта по поиску работы аббревиатуру «LLVM», не надеясь, впрочем, увидеть там что-то особенное, и стал просматривать небогатый, прямо скажем, улов.

Как и следовало ожидать, почти ничего особенного не нашлось, однако одно объявление меня заинтересовало. В нём были такие строки:

«Кого мы возьмем «не глядя» или уровень выполняемых задач:
Вы скачали любой open source проект, собираемый при помощи gcc (объем исходного кода более 10 мегабайт) и для самого большого файла cpp смогли построить AST дерево при помощи clang с –fsyntax-only;
Вы скачали любой open source проект, собираемый при помощи Visual C++ (объем исходного кода более 10 мегабайт) и для самого большого файла cpp смогли построить AST дерево при помощи clang с –fsyntax-only;
Вы смогли написать утилиту, которая выделит все места деклараций и использования локальных переменных, а также все функции, не определенные в данном файле
».

Ну что же, подумал я, какое-никакое, а развлечение на вечер.


Читать дальше →

Персональный компьютер «Электроника МК-85»

Reading time3 min
Views30K
Приветствую уважаемую аудиторию Гиктаймса и поздравляю всех с наступающим Новым Годом!
Этот пост я хочу начать с небольшого дисклаймера. Точнее, даже с двух.

Дисклаймеры
1. На Хабрахабре уже были упоминания модификаций этого компьютера: раз и два. В первом посте шла речь о модификациях МК-85С (крипто) и МК-85Б (банковский) с встроенными функциями криптографии. Эти модификации в настоящее время представлены очень редкими коллекционными экземплярами. В моём посте речь идёт об обычном «Электроника МК-85».

2. Часть информации в посте я публиковал в своём ЖЖ, однако (так как гиктаймс не является центром мирового кросспостинта), я подготовил специально для вас, дорогие читатели, расширенный и дополненный материал.



Читать дальше →

Начинаем работать в STM32CubeMX. Часть 2

Reading time9 min
Views76K
Часть 1
Часть 3

В прошлый раз мы научились создавать в STM32CubeMX новый проект, настраивать тактовый генератор, таймер и порт ввода-вывода, и немного помигали светодиодом. Сегодня мы освоим цифро-аналоговый преобразователь и научимся работать с ним через DMA. В результате у нас должен получиться простой генератор прямого синтеза (Direct digital synthesizer, DDS).


Поехали

Начинаем работать в STM32CubeMX. Часть 1

Reading time4 min
Views215K
Часть 2
Часть 3

Приветствую аудиторию хабра, и хочу предложить вашему вниманию первый пост, посвященный использованию среды разработки STM32CubeMX, написанный для тех, кто хочет начать изучение STM32 «с нуля».



Я планировал написать несколько постов, рассмотрев несколько периферийных устройств микроконтроллера и их конфигурирование в STM32CubeMX. Но эти посты не заменяют фирменной документации и не претендуют на полноту. В них будут рассмотрены только некоторые, наиболее, на мой взгляд, типичные, примеры использования периферии STM32.
Надеюсь, кому-то этот материал будет полезен.
Итак, начнём

Персональная электронная вычислительная машина «Апогей БК-01»

Reading time2 min
Views26K
Сегодня я хотел бы познакомить уважаемую аудиторию Гиктаймса с ещё одним экспонатом моей скромной коллекции старинной техники.



Итак, передо мной большая картонная коробка с надписью «Персональная электронная вычислительная машина „Апогей БК-01“». Давайте заглянем внутрь.

(Внимание! Под катом очень много картинок).
Читать дальше →

Ноутбук Tandy TRS-80 model 200

Reading time5 min
Views14K
Некоторое время назад я стал счастливым обладателем роскошного ноутбука TRS-80 model 200, являющегося воплощением самых передовых технологий 1984 года. Широкие возможности и превосходные характеристики делают его незаменимым помощником любого гика.
Обзор этого замечательного аппарата я предлагаю вашему вниманию.



Читать дальше →

LLVM: компилятор своими руками. Введение

Reading time14 min
Views59K
Представим себе, что в один прекрасный день вам пришла в голову идея процессора собственной, ни на что не похожей архитектуры, и вам очень захотелось эту идею реализовать «в железе». К счастью, в этом нет ничего невозможного. Немного верилога, и вот ваша идея реализована. Вам уже снятся прекрасные сны про то, как Intel разорилась, Microsoft спешно переписывает Windows под вашу архитектуру, а Linux-сообщество уже написало под ваш микропроцессор свежую версию системы с весьма нескучными обоями.
Однако, для всего этого не хватает одной мелочи: компилятора!
Да, я знаю, что многие не считают наличие компилятора чем-то важным, считая, что все должны программировать строго на ассемблере. Если вы тоже так считаете, я не буду с вами спорить, просто не читайте дальше.
Если вы хотите, чтобы для вашей оригинальной архитектуры был доступен хотя бы язык С, прошу под кат.
В статье будет рассматриваться применение инфраструктуры компиляторов LLVM для построения собственных решений на её основе.
Область применения LLVM не ограничивается разработкой компиляторов для новых процессоров, инфраструктура компиляторов LLVM также может применяться для разработки компиляторов новых языков программирования, новых алгоритмов оптимизации и специфических инструментов статического анализа программного кода (поиск ошибок, сбор статистики и т.п.).
Например, вы можете использовать какой-то стандартный процессор (например, ARM) в сочетании с специализированным сопроцессором (например, матричный FPU), в этом случае вам может понадобиться модифицировать существующий компилятор для ARM так, чтобы он мог генерировать код для вашего FPU.
Также интересным применением LLVM может быть генерация исходных текстов на языке высокого уровня («перевод» с одного языка на другой). Например, можно написать генератор кода на Verilog по исходному коду на С.



КДПВ

Читать дальше →

Обзор USB-осциллографа Hantek DSO-6022BL с логическим анализатором и гикпорном

Reading time7 min
Views197K
Добрый день, Хабр!

Предлагаю вниманию уважаемой аудитории обзор осциллографа/логического анализатора Hantek6022BL.


Заинтересованных прошу под кат.
Читать дальше →

Ремонт мыши Logitech MX Air

Reading time2 min
Views48K
Мышь Logitech MX Air я приобрел в 2009 году, и использовал ее в основном для управления HTPC. Отличительной особенностью данной мыши является наличие MEMS-гироскопа, что позволяет управлять курсором путем перемещения мыши в пространстве, без контакта с поверхностью. Впрочем, традиционный оптический (лазерный) сенсор тоже имеется.

image

Мышь MX Air является топовой моделью и оснащена всем, что только может придти в голову: сенсорный датчик вместо колеса прокрутки, динамик для имитации щелчков колеса прокрутки, отдельные кнопки для управления медиаплеером, беспроводной интерфейс (разумеется), и встроенный аккумулятор. Дизайн и качество сборки тоже выше всяких похвал (стоит она тоже совершенно безумно).

Я использовал эту мышь несколько лет, но потом по разным причинам отложил ее в сторону, и она долгое время лежала в шкафу, пока не понадобилась снова. Поставил её на зарядку и скоро понял, что что-то не так. Мышь включается, но кнопки нажимаются плохо, и, самое главное, не работает датчик движения в пространстве.

Нужно было срочно выяснить причину.
Читать дальше →

Siemens Logo! — десять лет спустя

Reading time5 min
Views124K
Наводя порядок в шкафу, я нашел старый контроллер Siemens Logo! и ряд аксессуаров к нему. Когда-то, десять лет назад, я сделал несколько проектов на таких игрушках. Ностальгия и тёплые воспоминания про те времена побудили меня к написанию этого поста.



Под катом много фотографий (geek porn)!

Читать дальше →

Внешняя USB-видеокарта Startech USB2DVIE3

Reading time2 min
Views131K
Довольно давно уже у меня возникла мысль, что десктоп, громоздкий гудящий ящик с кучей проводов, уже давно стал бы анахронизмом и ушел в прошлое, уступив место ноутбуку, если бы не одно маленькое обстоятельство: к десктопу можно подключить два (или больше) мониторов.

На хабре уже поднималась тема подключения к ноутбуку внешней видеокарты (например, тут), и я загорелся идеей организации рабочего места с двумя мониторами и ноутбуком. На e-bay было куплено устройство USB2DVIE3 производства британской компании Startech.

Если вы хотите узнать, что из этого вышло, добро пожаловать под кат.
Читать дальше →

Мобильный телефон своими руками. Часть 2

Reading time5 min
Views119K
В первой части мы рассмотрели «железную» часть проекта, в этой части мы приступим к экспериментам с устройством.


Модуль M10-TE-A, основа нашего телефонного аппарата.

Читать дальше →

Мобильный телефон своими руками. Часть 1

Reading time4 min
Views319K
Недавно на хабре был пост про то, как некие умельцы из Массачусетсого Технологического создали «самодельный» мобильный телефон. Я думаю, пришла пора доказать, что наши месье тоже знают толк в из… э… в изысканных удовольствиях.
Итак, представляю вашему вниманию мобильный телефон, собранный практически «на коленке»!



Всех заинтересованных прошу под кат. Много картинок!
Читать дальше →

Raspberry Pi и Синяя Изолента

Reading time4 min
Views196K

Доброго времени суток, Хабр!

В этом топике я хочу поведать вам, как привести Raspberry Pi в пригодный для употребления вид.

Все началось с того, что я получил долгожданную посылку с платой Raspberry Pi, но оказался несколько разочарован некоторыми конструктивными особенностями этой платы. Стремление во что бы то ни стало сделать плату размером точно с банковскую карту (чисто маркетинговый ход) привело к тому, что на плате нет крепежных отверстий, разъемы расположены не самым удобным образом, и, разъемы USB и Ethernet расположены не вровень, а в разных плоскостях. В результате, при работе с платой на столе нужно раскладывать: саму плату, адаптер питания, USB-хаб (если мы хотим подключить к Raspberry Pi что-либо, кроме мыши и клавиатуры), и кучу проводов, которые все время пытаются куда-нибудь сползти, увлекая за собой всю эту кучу железа.

О том, какой выход из ситуации я нашел, читайте под катом (очень много картинок!).
Читать дальше →

Подключение цветного LCD с сенсорным экраном к микроконтроллеру

Reading time9 min
Views97K
Добрый день, хабр. Сегодня я хотел бы поделиться некоторым опытом, касающимся подключения цветных LCD-индикаторов к микроконтроллеру. Эта тема уже поднималась на хабре (http://habrahabr.ru/post/139384/), поэтому данный пост может рассматриваться как дополнение к уже написанному моими уважаемыми коллегами.

Читать дальше →

Аналого-цифровое преобразование для начинающих

Reading time8 min
Views608K
В этой статье рассмотрены основные вопросы, касающиеся принципа действия АЦП различных типов. При этом некоторые важные теоретические выкладки, касающиеся математического описания аналого-цифрового преобразования остались за рамками статьи, но приведены ссылки, по которым заинтересованный читатель сможет найти более глубокое рассмотрение теоретических аспектов работы АЦП. Таким образом, статья касается в большей степени понимания общих принципов функционирования АЦП, чем теоретического анализа их работы.

"

Введение

В качестве отправной точки дадим определение аналого-цифровому преобразованию. Аналого-цифровое преобразование – это процесс преобразования входной физической величины в ее числовое представление. Аналого-цифровой преобразователь – устройство, выполняющее такое преобразование. Формально, входной величиной АЦП может быть любая физическая величина – напряжение, ток, сопротивление, емкость, частота следования импульсов, угол поворота вала и т.п. Однако, для определенности, в дальнейшем под АЦП мы будем понимать исключительно преобразователи напряжение-код.

Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity