Pull to refresh
50
0
Владимир @Hoshi

Пользователь

Send message

Праздник жизни по гиковски: с ARM и TFT LCD

Reading time8 min
Views26K

Введение


Результат Увидев посты от dlinyj, goodic и Hoshi я в очередной раз ощутил, что Хабр — торт.

Первый пост касался написания драйвера символьного дисплея на базе HD44780 для Linux (Создание собственных драйверов под Linux от dlinyj); отличными ответами на него послужили посты хабраюзеров goodic (Поздравление по гиковски, без написания дров) и Hoshi (Новогодняя малина — прикручиваем экран HD44780 к Raspberry Pi).

Мне тоже захотелось поучаствовать в этом празднике жизни и реализовать свой аппаратный vt52-like терминал. Символьного дисплея у меня не оказалось, но был китайский dev-board на базе ARM Cortex-M3 с полноценным TFT-дисплеем 240х320, частичной документацией.

Запас энтузиазма в наличии имелся, поэтому, проснувщись в воскресенье днем (~17 MSK) я приступил к написанию embedded драйвера для данного LCD.

Если вам интересно embedded-программирование по ARM, электроника или просто результат — прошу под кат.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments16

Proteus и два с половиной hello world для UART и USB на микроконтроллере

Reading time11 min
Views72K
Недавно разгребал папки на Dropbox и наткнулся на свои первые поделки. Когда делал первые шаги с микроконтроллерами, почти сразу меня стали посещать мысли и идеи об управлении моими поделками с ПК, либо каким-либо образом с этим самым ПК общаться. Это казалось увлекательным и «серьезным». Сейчас я стараюсь все сразу тестировать в железе, но в начале наступать на грабли и стрелять себе в ногу хотелось безболезненно и быстро. В этом мне неизменно помогал Proteus. Десятки раз пересобирая проекты было важно, чтобы можно было экспериментировать с комфортом, если так можно сказать. Это потом я уже купил фирменную отладку и что в Proteus, что в железе — все стало одинаково быстро.
В первую очередь мне хотелось попробовать UART и USB, а потом уже и Ethernet. Каждому желанию я придумывал свой «проект». Многие идеи так и остались в виде проекта для Proteus — идея надоедала сразу после реализации программной части.
Надеюсь, данный пост поможет всем, кто хотел попробовать сделать свое USB устройство или просто увидеть, что это все не так сложно; более того, мне хотелось, чтобы можно было попробовать сразу в симуляторе. Рассказать как новичок для новичка — чтобы захотелось открыть гугл и начать читать, чтобы сделать больше, узнать лучше.
Я не буду рассказывать о регистрах, режимах. Я сомневаюсь, что это поможет зажечь огонь в глазах. Возможно, кто-то захочет сделать что-то полезное для себя и у простых примеров больше шансов затянуть в это крайне увлекательное творчество (а для меня уже практически наркотик). А прежде чем бежать на ebay или начинать считать дни с момента отправки отладочной платы из Китая, можно попробовать свои силы в виртуальном микроконтроллере.
Я хотел бы попробовать сделать два своеобразных hello world проекта, которые, тем ни менее, не сильно сложнее стандартного LED blinking. Под катом много изображений.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments16

Кистевой тренажер Powerball — как средство для профилактики туннельного синдрома

Reading time8 min
Views225K
В настоящее время огромное количество людей если еще и не имеют, то подвержены так называемому синдрому запястного канала. В группу риска входят люди различных профессий и увлечений, например, водители, художники, фотографы и, конечно, люди много работающие за компьютером, они же наиболее подвержены этому недугу. В запущенной стадии CTS (Carpal Tunnel Syndrome) может потребоваться стационарное лечение вплоть до хирургического вмешательства (специальная операция по извлечению избыточной жидкости из суставов). Ну, а лучший способ решить проблему — никогда с ней не сталкиваться. Для этого нужно заниматься профилактикой посредством разминки или специализированных устройств, таких как гироскопический тренажер.
image
Сегодня я расскажу о 3-х моделях Powerball — Classic, Fusion и Autostart. Это одни из наиболее популярных моделей на данный момент. Ими же можно охватить всю линейку кистевых тренажеров, за исключением металлических устройств. Более подробно читайте под катом.
Читать дальше →
Total votes 91: ↑58 and ↓33+25
Comments111

Интерфейс JTAG? — Это очень просто

Reading time6 min
Views255K
Многие знакомы со словом «JTAG», но знакомство это скорее всего поверхностное. В этой статье я хочу перевести Вас на новый уровень, так сказать «во френдзону». Возможно, для многих я не открою ничего нового, но надеюсь тем, кто давно хотел ознакомиться, будет интересно почитать. Итак, от винта.
image

Запустить JTAG тестирование
Total votes 90: ↑86 and ↓4+82
Comments17

Релиз SDL 2.0

Reading time2 min
Views27K
imageПосле нескольких лет разработки наконец-то состоялся релиз библиотеки SDL 2.0.0. Слухи о разработке второй версии SDL шли уже давно, но обширный список нововведений отчасти объясняет столь долгую разработку.

Библиотека SDL предоставляет такие средства, как быстрый вывод 2D-графики, обработку ввода, проигрывание звука, вывод 3D через OpenGL и другие операции, причем делает это кросплатформенно. Список платформ обширный: Linux, Windows, Windows CE, BeOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX и QNX — и вдобавок есть неофициальные порты на другие системы.

Сама библиотека написана на C и поддерживает C++, однако есть биндинги к большинству популярных языков. Автор libsdl был нанят компанией Valve, программные продукты которой активно используют библиотеку. К тому же, теперь библиотека выходит под лицензией zlib, а не LGPLv2, как было раньше, и SDL 2.0 можно использовать в любых своих приложениях — хотя вполне возможно, что сделано это было для того, чтобы Valve смогла включить ее в Steam для Linux.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments23

Делаем микросхемы дома — часть 3

Reading time6 min
Views201K
Прошло чуть больше года после предыдущих статей о моем проекте создания микросхем дома (1, 2), люди продолжают интересоваться результатами — а значит пора рассказать о прогрессе.

Напомню цель проекта: научиться изготавливать несложные кремниевые цифровые микросхемы в «домашних» условиях. Это никоим образом не позволит конкурировать с серийным производством — помимо того, что оно на порядки более совершенное (~22нм против ~20мкм, каждый транзистор в миллион раз меньше по площади), так еще и чудовищно дешевое (этот пункт не сразу стал очевиден). Тем не менее, даже простейшие работающие микросхемы, изготовленные в домашних условиях будут иметь как минимум образовательную и конечно декоративную ценность.
Читать дальше →
Total votes 244: ↑242 and ↓2+240
Comments53

Прошиваем AVR вручную

Reading time6 min
Views212K

Картинка для привлечения внимания — xkcd

Представьте себе, что вы попали на необитаемый остров. И вам жизненно необходимо запрограммировать микроконтроллер. Зачем, спросите вы? Ну, допустим, чтобы починить аварийный радиомаяк, без которого шансы на спасение резко падают.

Радуясь, что еще не забыли курс ассемблера, вы кое-как написали программу палочкой на песке. Среди уцелевших вещей каким-то чудом оказалась распечатка документации на контроллер (хорошо, что вы еще не успели пустить её на растопку!), и программу удалось перевести в машинные коды. Осталась самая ерунда — прошить её в контроллер. Но в радиусе 500 километров нет ни одного программатора, не говоря уже о компьютерах. У вас только источник питания (батарея из картошки кокосов) и пара кусков провода.

Как же прошить МК фактически голыми руками?
Читать дальше →
Total votes 171: ↑170 and ↓1+169
Comments66

Использование RF-модулей

Reading time5 min
Views280K
Иногда, между устройствами требуется установить беспроводное соединение. В последнее время для этой цели все чаще стали применять Bluetooth и Wi-Fi модули. Но одно дело передавать видео и здоровенные файлы, а другое — управлять машинкой или роботом на 10 команд. С другой стороны радиолюбители часто строят, налаживают и переделывают заново приемники и передатчики для работы с готовыми шифраторами/дешифраторами команд. В обеих случаях можно использовать достаточно дешевые RF-модули. Особенности их работы и использования под катом.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments26

Как уронить Windows шестью строчками кода

Reading time3 min
Views267K
См. также: Microsoft исправила уязвимость с синим экраном

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


Читать дальше →
Total votes 272: ↑251 and ↓21+230
Comments256

Как в приложении получить список файлов, переданных из проводника посредством Drag-and-Drop

Reading time8 min
Views20K

О чем данная статья:


Множество программ позволяют пользователю открывать файлы посредством перетаскивания их из проводника в окно приложения. Как правило это более удобно для пользователя, в отличии от стандартной модели открытия посредством выбора меню «Файл -> Открыть» или нажатия соответствующей кнопки на панели инструментов, так как в данном случае пользователь пропускает этап работы с диалоговым окном.
Добавление данной возможности в ваше приложение сделает его более «профессиональным».

Как это работает:


Есть два основных пути добавления данного функционала в Windows приложение.
Первый способ заключается в использовании стандартных Windows Drag-and-Drop API функций и обработке сопутствующих оконных сообщений.
Вторым методом является использование технологии OLE (COM), который предоставляет расширенные методы передачи данных между приложениями.
В данной статье будет рассмотрен первый и самый простой способ.

Краткий обзор:


По умолчанию, поддержка перетаскивания и приема файлов в Windows приложениях отключена.
Для включения данной возможности мы должны сказать Windows о том, что мы хотим получать уведомления о перетаскивании, а так-же указать окно, отвечающее за обработку данных уведомлений.
Данное окно должно уметь обрабатывать сообщение WM_DROPFILES, приходящее ему в тот момент, когда пользователь завершил операцию перетаскивания.
Это сообщение предоставляет нам возможность реализовать обработчик события Drop, из которого мы может вызвать различные API функции, для получения информации о том, что именно нам было передано.
По завершении обработки данного сообщения, хорошим тоном будет уведомить Windows о том, что мы обработали данную операцию и больше не хотим получать уведомления о ней.

Читать дальше →
Total votes 23: ↑14 and ↓9+5
Comments20

В Лос-Аламосе более двух лет работает квантовая сеть

Reading time2 min
Views47K

Квантовая «смарткарта»

Сотрудники Лос-Аламосской национальной лаборатории построили прототип сети для тестирования приложений квантовой криптографии. Как выяснилось, эксперимент продолжается уже более двух лет.
Читать дальше →
Total votes 72: ↑49 and ↓23+26
Comments108

Руткит Avatar: детальный анализ

Reading time8 min
Views37K
В феврале 2013 г. появилась информация о новом рутките Avatar, которая, судя по-всему, имеет происхождение с одного из подпольных форумов. В частности, на сервисе pastebin было опубликовано описание его возможностей. Информация о новом рутките горячо обсуждалась в security-сообществе, поскольку описываемые возможности этого руткита действительно впечатлали. Среди них, например, возможности загрузки драйвера без участия жесткого диска, заражение бут-драйверов ОС, новые схемы защиты ботнета и другие. Также заявлялся обход нескольких security/AV-продуктов и известных антируткитов.

Читать дальше →
Total votes 95: ↑93 and ↓2+91
Comments20

Реализация перехвата вызовов API

Reading time33 min
Views31K
Монитор. Отличное слово, правда, объединяющее в себе целую кучу понятий. Ну например впервые данное слово было применено в 1861 году к броненосцу «USS Monitor». Чуть позже данным словом стали называть дисплеи. Еще через некоторое в славную когорту мониторов вошли более привычные нам вещи, наподобие счетчиков производительности, а вместе с ними целая куча разнообразного ПО, основной задачей которого является наблюдение — то есть мониторинг.

Задача монитора проста — по сути он наблюдатель, хотя может выступать и в качестве управляющего, кстати один из вариантов перевода «Monitor» — наставник. Задачи его так же очевидны, отдавать набор данных, на основе которых можно произвести анализ ситуации и сделать соответствующие выводы.

В современном ПО мониторы встречаются практически повсеместно, ну для примера тот же Punto Switcher — классический пример легального монитора. Практически все антивирусы являются мониторами, профилировщики, ну и я уж не говорю об основном нашем инструментарии — отладчике, который так же является монитором.

С обратной стороны баррикад выступают целые кучи зловредного ПО, некоторые из которых так же предпочитают использовать мониторинг для достижения своих основных целей. Впрочем не о них сейчас…

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

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

В итоге, дабы не объяснять в следующий раз все заново, я решил сделать обзорную статью где попробую рассказать все максимально простым языком о том, «как это работает».
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments16

Доработка видеоплеера ffmpeg

Reading time9 min
Views32K
В предыдущей статье были рассмотрены основные компоненты ffmpeg и на их основе построен простейший плеер для воспроизведения видео со скоростью декодирования, без синхронизации.
В этой статье мы рассмотрим как добавить воспроизведение звука и разберемся с синхронизацией.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments12

Видеоплеер на базе ffmpeg

Reading time8 min
Views64K
Привет, Хабр!

В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.

Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments19

Отключение главной нити приложения от отладчика и уход от перехвата CreateFile()

Reading time10 min
Views13K
Один из стандартных приемов, осложняющим изучение вашего приложения, являеться эмуляция выполнения API функций.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments15

Подключение ЖК-панели от iPad к персональному компьютеру

Reading time2 min
Views164K


Сломанный ноутбук или планшет бывает жалко выкидывать, тем более если у него сгорела материнка/видеокарта/процессор, а дисплей в полном порядке. В этом случае есть выход: можно подключить ЖКИ от мобильного устройства как второй/третий экран к персональному компьютеру. Лучше всего для этого подходит ЖК-дисплей от последних моделей iPad с размером 9,7" и разрешением сторон 2048х1536. Студент Варшавского университета Анджей Суровец (Andrzej Surowiec) сумел подключить retina-дисплей от iPad к ПК через DisplayPort на максимальном разрешении.
Читать дальше →
Total votes 87: ↑75 and ↓12+63
Comments53

Самый медленный компьютер на Linux

Reading time2 min
Views141K
image
Часто люди, только купившие себе новенький восьмибитный микроконтроллер интересуются, как запустить на нём Linux. Но обычно они становятся лишь объектом насмешек. А на форумах по Linux'у порой проскакивают вопросы, мол какие нужны минимальные харрактеристики для запуска операционки. Самый частый ответ — 32 битная архитектура, MMU и как минимум 1 мб оперативной памяти. Мой проект ломает эти стереотипы. Компьютер основан на ATmega1284p. Я даже сделал ещё один на ATmega644a, и он тоже работал. Нет больше никакого процессора или других спрятанных частей. Всё это работает на версии ядра 2.6.34, и даже (если у вас есть на это время), грузит полноценную Ubuntu, с X сервером и Gnome.
Читать дальше →
Total votes 371: ↑304 and ↓67+237
Comments72

Премьера отечественного фан-фильма по игре «Half-life 2»

Reading time1 min
Views48K

Хабр, представляю тебе проект экранизации компьютерной игры «Half-Life 2».


Первая из четырех серий фанатского проекта должна выйти в ближайшее время вышла на просторы интернета. А пока посмотрите трейлер:

Cтоит отметить, что вся эта затея носит исключительно некоммерческий характер и делается только из-за большой любви к материалу.

Что это? Это — любительский фан фильм, действие которого разворачивается полностью во вселенной Half-Life 2 и, более или менее, идет по сценарию оной же. Все действие будет разбито на дни (читай, серии). Соответственно, первый день — прибытие Фримена в City 17, встреча с Барни, побег от комбайнов и заканчивается знакомством с метрокоповским разрядником на чердаке одного из домов. Ну, вы помните, потом Алекс… и т.д.

Читать дальше →
Total votes 176: ↑159 and ↓17+142
Comments69

Information

Rating
Does not participate
Location
Украина
Registered
Activity