Search
Write a publication
Pull to refresh
287
0.2
Владимир @32bit_me

Программист

Send message

Ethernet + PCIe + FPGA = LOVE

Reading time12 min
Views71K
image

Доступ по Ethernet невозможен без сетевых карточек (NIC). На небольших скоростях (до 1G) NIC встраивают в материнки, а на больших (10G/40G) NIC размещается на отдельной PCIe плате. Основным ядром такой платы является интегральный чип (ASIC), который занимается приемом/отправкой пакетов на самом низком уровне. Для большинства задач возможностей этого чипа хватит с лихвой.

Что делать, если возможностей сетевой карточки не хватает? Либо задача требует максимально близкого доступа к низкому уровню? Тогда на сцену выходят платы с перепрограммируемой логикой — ПЛИС (FPGA).

Какие задачи на них решают, что размещают, а так же самых интересных представителей вы увидите под катом!

Осторожно, будут картинки!
Читать дальше →

40 ключевых концепций информационных технологий доступно и понятно

Reading time16 min
Views161K
Представляю вашему вниманию перевод очень ёмкой, и в то же время достаточно краткой (для такого масштаба проблемы) статьи Карла Чео. Я решил, что очень хочу сделать её перевод практически сразу, как только начал читать, и очень рад, что в итоге сделал это.
Для того, чтобы сделать обучение более веселым и интересным, представляю вам перечень важных теорий и концепций информатики, объяснённых с помощью аналогий с минимальным количеством технических деталей. Это будет похоже на очень быстрый курс информатики для всех с целью просто дать вам общее представление об основных концепциях.

Важные замечания:
  • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
  • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
  • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

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

Intel Edison. Работа с облаком Intel IoT Analytics: создание правил и отправка уведомлений

Reading time4 min
Views6.8K
Intel IoT Analytics

Облако Intel IoT Analytics позволяет закладывать простую логику на выполнения определенного действия. Создание правил разделяется на два этапа. На первом этапе требуется указать выполняемые действия. На втором этапе указать набор условий, которые должны выполняться для выполнения действия. Например, значение температуры выше 28 C.
Действиями могут быть:
  • отправка уведомления на email;
  • отправка сформированной команды элементу Actuation. Управляющий элемент на конечном устройстве, например включение-выключение реле;
  • выполнение запроса GET HTTP с определенным набором параметрам. Отправка сообщения внешним системам;

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

Операция «B.A.T.M.A.N.»: добавление модулей ядра в Yocto на Intel Edison

Reading time5 min
Views7.2K
Недавно меня спросили о том, как добавить поддержку batman-adv в Yocto. В результате завязалась переписка, которая стала основой для этого поста. Итак, как же это сделать? Давайте разбираться вместе.


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

Как я, в итоге, написал новую RTOS, протестированную и стабильную

Level of difficultyMedium
Reading time40 min
Views84K
Я работаю со встраиваемыми системами в течение нескольких лет: наша компания разрабатывает и производит бортовые компьютеры для автомобилей, зарядные устройства, и т.д.

image


Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы.

Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую.

Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS TNKernel. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет.

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

Что можно привезти за 20 евро?

Reading time2 min
Views4.9K
С выходом новой серии устройств Apple на рынке появились и разные спец предложения на их доставку. А мы тем временем решили разобраться, что можно привезти за самый дешевый наш тариф — 20 евро.

Напомним, что к таким посылкам относятся посылки из США весом до 4 кг и суммой сторон до 90 см (длина + ширина + высота).

1. Устройства

Итак, в минимальный тариф попадают наверное все популярные устройства – любые фитнес-трекеры, любой смартфон, любой планшет, часы и даже в нескольких экземплярах.

2. Квадрокоптер

Квадрокоптер в коробке тоже спокойно помещается в минимальные uf,fhbns, его доставка будет стоить 20 евро. А если покупать несколько, то доставка следующих будет стоить по 15 евро, но надо помнить, что они должны приехать на склад в течение 1 недели.

3. Ноутбуки

Доставка любого Macbook диагональю 13 дюймов и меньше будет стоить всего 20 евро. Да и вообще доставка практически любого ноутбука, ведь почти все они по сумме габаритов не превышают 90 см и большинство по весу меньше 4 кг.

4. Одежда и игрушки

Тут все просто, 4 кг одежды и игрушек мы привезем за 20 евро.
Читать дальше →

19 советов по повседневной работе с Git

Reading time14 min
Views289K


Если вы регулярно используете Git, то вам могут быть полезны практические советы из этой статьи. Если вы в этом пока новичок, то для начала вам лучше ознакомиться с Git Cheat Sheet. Скажем так, данная статья предназначена для тех, у кого есть опыт использования Git от трёх месяцев. Осторожно: траффик, большие картинки!

Содержание:
  1. Параметры для удобного просмотра лога
  2. Вывод актуальных изменений в файл
  3. Просмотр изменений в определённых строках файла
  4. Просмотр ещё не влитых в родительскую ветку изменений
  5. Извлечение файла из другой ветки
  6. Пара слов о ребейзе
  7. Сохранение структуры ветки после локального мержа
  8. Исправление последнего коммита вместо создания нового
  9. Три состояния в Git и переключение между ними
  10. Мягкая отмена коммитов
  11. Просмотр диффов для всего проекта (а не по одному файлу за раз) с помощью сторонних инструментов
  12. Игнорирование пробелов
  13. Добавление определённых изменений из файла
  14. Поиск и удаление старых веток
  15. Откладывание изменений определённых файлов
  16. Хорошие примечания к коммиту
  17. Автодополнения команд Git
  18. Создание алиасов для часто используемых команд
  19. Быстрый поиск плохого коммита

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

Пишем драйвер пользовательского окружения для uinput на Raspberry Pi

Reading time7 min
Views20K
Фотография дисплеяРади одного из своих небольших проектов на Raspberry Pi 2 я приобрел емкостной сенсорный дисплей Waveshare с демократичной ценой, скромным разрешением и сомнительной поддержкой. В коробке с дисплеем лежала DVD-R DL, и по заявлениям продавца, там лежали образы систем на базе Raspbian. Прочитать их мне не удалось, поиск решений в интернете подсказал, что драйвер, который там лежал, был и так не самым лучшим решением (уже скомпилированное ядро без исходников).

В процессе поиска я наткнулся на проект одного парня из дружественного Китая. Благодаря нему я смог прийти к своему решению.

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

Посылка и посредник: нужен ли посредник?

Reading time4 min
Views19K
Очень часто в комментариях к нашим публикациям мы встречаем вопросы на тему необходимости посредника. Например, некоторые американские магазины отправляют посылки напрямую в Россию. Зачем же нужна Бандеролька? Сегодня мы расскажем вам об этом и, конечно, с удовольствием ответим на ваши новые вопросы в комментариях.

В качестве наглядного примера возьмём простую ситуацию: вы решили купить некие товары в американском магазине. Предположим, это будет популярный Amazon. Вы долго выбирали товары, остановились на 15 наименованиях.


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

Модули Laurent и Умный дом (часть 1). MajorDoMo

Reading time10 min
Views30K
Я хочу представить вашему вниманию цикл статей по управляющим модулям Laurent (Лоран) компании KernelChip. В этом цикле я расскажу вам о том, как интегрировать эти модули в ваш Умный дом, как научиться управлять ими из популярной системы домашней автоматизации MajorDoMo, из скетчей Ардуино, из системы Arduino Mega Server и даже как применить эти модули для совершенно неожиданной цели — для обучения ваших детей программированию на языке Processing.

image

В общем, модули, достаточно интересные и сами по себе, могут неожиданно оказаться очень полезными в домашнем хозяйстве, если подойти к ним с определённой долей фантазии и креатива.
Читать дальше →

Linux в устройстве на базе чипа Altera SoC FPGA: восстанавливаем утраченный функционал

Reading time5 min
Views22K
Terasic DE0-Nano-SoC

Некоторое время назад ко мне в руки попал набор разработчика DE0-Nano-SoC, построенный на базе чипа Altera Cyclone V. Данный набор используется мной не с какой-то одной целью — с его помощью решаются разные задачи. Для каждой из этих задач создаётся схема для FPGA и пишется программа для HPS. Схема для FPGA создаётся в среде Quartus II и в процессе разработки загружается в FPGA через JTAG-интерфейс посредством USB-бластера. Когда же схема окончательно отлажена, она записывается на SD-карточку в виде файла прошивки. Затем, когда нужно использовать плату с той или иной целью, берётся нужная прошивка, загружается в FPGA командой вида
cat hardware.rbf > /dev/fpga0
и затем запускается нужная программа.

Всё шло своим чередом, но однажды я обновил в плате ядро Linux — о чём рассказывал в этой статье. И вот спустя некоторое время обнаружилось, что из списка драйверов исчез FPGA-менеджер, позволявший загружать прошивку в FPGA подобным способом. Первой мыслью было то, что я забыл включить драйвер в конфигурацию при сборке ядра. Однако, к моему удивлению, скоро обнаружилось, что среди исходников ядра этого драйвера нет в принципе! Конечно, можно было бы грузить прошивку в FPGA другими способами, коих есть ещё как минимум три. Но этот способ был для меня наиболее оперативным и удобным, вот почему было принято решение восстановить утраченный функционал. Если Вам интересно, как это было сделано — добро пожаловать под кат.
Читать дальше →

Подражай-повторяй-применяй! Английская грамматика на счет три

Reading time4 min
Views44K


Кажется, нас давно тут не было, и мы возвращаемся и возвращаемся не с пустыми руками: та-дам! До определенного момента Lingualeo был отличным способом пополнять словарный запас свежими идиомами и «живой» лексикой спикеров TED. Вы могли развивать навыки, изучая интересный контент. Но сегодня все изменилось.

За следующие 7 минут вы узнаете, чему мы научились у самих себя в детстве, про NLP-парсинг предложений, современные фишки front-end разработки и про новый способ изучать грамматику онлайн.
Читать дальше →

Использование QCustomPlot для создания анимированных графиков

Reading time3 min
Views37K
image

При решении различных аналитических задач может потребоваться real-time построение графиков, где функция зависит от времени. В этой статье я поделюсь своим опытом решения задачи анимирования графиков в Qt, используя QCustomPlot.
Читать дальше →

Как подружить C++ и QML

Reading time6 min
Views31K
image
Прислали мне как то тестовое задание. Надо написать шахматы на Qt с использованием C++ и QML. QML до этого не изучал, только слышал и читал про него, поэтому решил что напишу только с использованием C++ и библиотеки Qt. Написал, отправил, возвращают и просят графическую часть переписать на QML. Делать нечего, сел за изучения сего чуда и переписал графическую часть. Теперь хочу поделиться приобретённым опытом.

Весь процесс написания шахмат описывать не буду, опишу только процесс постижения QML. Думаю эта статья будет в помощь начинающим в QML.
Читать дальше →

Самодельные электронные часы, элементная база — часть 1, измерение времени

Reading time4 min
Views41K
Наверное, каждый гик, увлекающийся самодельной электроникой, рано или поздно приходит к идее сделать свои, уникальные, часы. Идея вполне неплоха, разберемся как и на чем их лучше сделать. В качестве отправной точки будем считать, что человек умеет программировать микроконтроллеры, понимает как переслать 2 байта по i2c или serial-порту, и может спаять вместе несколько проводов. В принципе, этого достаточно.

Понятно, что ключевая функция часов — измерение времени (кто бы подумал, да?). И делать это желательно максимально точно, здесь есть несколько вариантов и подводных камней.
Читать дальше →

Умная плата для управления силовыми 3-х фазными нагрузками

Reading time5 min
Views21K

Продолжаем разработку на микроконтроллерах семейства Kinetis.

Умный дом или здание не ограничиваются только датчиками температуры или освещением. Там также присутствуют лифты, различные подъемники для людей с ограниченными физическими возможностями, грузовые подъемники, ворота, шлагбаумы, насосы, вентиляторы и прочее хозяйство. Традиционно это консервативные области, в них концепции умного дома проникают с трудом. Данная плата позволяет модернизировать устоявшиеся решения и добавить в них интеграцию в IoT (интернет вещей).
Читать дальше →

Устройство модуля памяти на магнитных сердечниках в винтажном мейнфрейме IBM 1401

Reading time7 min
Views30K

Модуль ферритовой памяти на 4000 символов в мейнфрейме IBM 1401

Мейнфрейм IBM 1401 был представлен в 1959 году, а к середине 60-х стал самым популярным компьютером в мире, намного опережая конкурентов. Особым спросом он пользовался у среднего и крупного бизнеса, в силу своей дешевизны. Ключевым фактором успеха 1401 была его память на магнитных сердечниках (ферритовая память) на 4000 символов, где данные хранились на крошечных намагниченных ферритовых кольцах — сердечниках.
Читать дальше →

Zigbee для самых маленьких. Пост номер 1

Reading time6 min
Views27K
image
Около месяца назад попали в мое распоряжение модули Atmel ATZB-S1-256-3-0-C основанные на чипе ATmega256RFR2 объединяющим в себе 2.4Mhz трансивер, микроконтроллер AVX на 256 килобайт памяти и даже чип-антенну. Атмель обещали в свою очередь out of the box поддержку Zigbee для этих модулей и было принято решение строить наш mesh именно на них.

Если кто не понял то при помощи этих модулей можно относительно просто построить IoT меш сеть добавляя к модулям лишь кнопочки, лампочки, сенсоры и батарейки. Основной микропроцессор уже на месте, даже с осцилятором из трансивера.

Звучит довольно просто, не так ли? На практике все оказалось намного прозаичнее. Основной проблемой оказалась недооценка технологической сложности атмелевского стека Zigbee, самого стандарта Zigbee, ну и переоценка собственных возможностей. Дело в том что сам я давно не програмировал на C, давно перешел на Matlab и Python, все указатели и другие средства управления ресурсами и процессами давно положил в тумбочку и выкинул ключ. Ну что-же… в мире ембеддед меня ждало много приятных неожиданностей.
Читать дальше →

Занимательная 40-гигабитность

Reading time5 min
Views43K


Мой самый первый пост, который я три года назад написал на Хабр, был посвящен 10G Ethernet и 10G сетевым картам Intel, что, в принципе, не случайно, ведь сетевые технологии – это моя профессия. Далее посты на данную тему почти не появлялись в блоге Intel – как говорится, не было повода. И вот теперь он появился, и вполне весомый. Ведь выход нового поколения сетевых карт Intel на контроллере X/XL710 принес с собой не только улучшение характеристик и новые возможности, но и появление принципиально нового для компании продукта – 40G Ethernet сетевых карт для серверов. Самое время поговорить о текущей ситуации в области 40-гигабитности.
Читать дальше →

Linux и бесплатные облачные хранилища

Reading time8 min
Views97K
В попытках подмонтировать MS Onedrive в линуксе возникла мысль — а какие вообще бывают облака, которые нормально монтируются в папку и при этом предлагают максимальный объем? Ниже — небольшой список сервисов и впечатления от попыток примонтировать их.
Сразу скажу — это все делалось только для удовлетворения любопытства, а не для последующего использования — потому не могу сказать, как себя поведут предложенные решения в долговременном плане. Но, возможно, кому-то будет полезно.
Облака выбирались по двум параметрам — максимальный бесплатный объем (желательно получаемый без нескольких десятков регистраций по вашей реферральной ссылке) и возможность монтирования в папку под линуксом.

Процесс тестирования состоял из
1) Регистрация или вспоминание пароля (если я уже был зарегистрирован на этом сервисе)
2) Попытка добавить свободное место по реферральной ссылке — чтобы проверить, как выглядит процесс и насколько просто самостоятельно «накрутить» себе место.
3) Попытка подключить облако в папку под линуксом (там, где работает WebDAV — использовал davfs2, где не работает — другие доступные варианты).
4) Если попытка удачная, то несколько попыток загрузить разные файлы — какая-нибудь мелочь в пределах мегабайта, 50-70 мегабайт и 1,6 гигабайта.
Эксперименты производились на hetzner'овском VPS с одним ядром и гигабайтом оперативки (debian stable).

Я не смотрел на: цены, удобство клиентов, возможности коллективной работы, встроенные редакторы и т.п. Это всё для полноценного сравнения сервисов, которым я заниматься не хочу. Кому лень читать буквы, в конце табличка.
Читать дальше →

Information

Rating
5,162-nd
Date of birth
Registered
Activity