Pull to refresh
12
0
Владимир Кандалов @VLADIMIR_KANDALOV

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

Send message

Симметричный алгоритм блочного шифрования Advanced Encryption Standart

Reading time7 min
Views32K

Доброго времени суток, читатель. В данной статье я бы хотел рассказать об одном из самых распространенных алгоритмов симметричного шифрования - AES.

Читать далее
Total votes 29: ↑24 and ↓5+22
Comments13

Юнит-тесты в uVision Keil (и не только)

Reading time33 min
Views9.7K

КПДВ


Не утихают споры о том, нужны ли юнит-тесты вообще, а если нужны — то как именно их писать. Сначала писать код или сначала писать тесты? Допустимо ли нарушать инкапсуляцию при тестировании или же можно трогать только публичное API? Сколько процентов кода должно быть покрыто тестами?


Тестирование во встраиваемых системах тоже порождает немало споров. Точки зрения разнятся от "покрытие должно быть 100% + нужны испытательные стенды" до "какие еще тесты, я программу написал — значит все работает".


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

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments35

Как облегчить себе жизнь при использовании Git (а также подборка материалов для глубокого погружения)

Reading time13 min
Views35K

Tree of Dragons II by surrealistguitarist

Для тех, кто каждый день использует Git, но чувствует себя неуверенно, команда Mail.ru Cloud Solutions перевела статью фронтенд-разработчика Шейна Хадсона. Здесь вы найдете несколько трюков и советов, которые могут немного облегчить работу с Git, а также подборку статей и мануалов более продвинутого уровня.
Читать дальше →
Total votes 42: ↑41 and ↓1+62
Comments12

Qomu — полноценная система на кристалле размером с ноготь

Reading time3 min
Views15K

Миниатюризация в электронике достигла весьма впечатляющих результатов. На днях была представлена система на кристалле (SoC), Qomu, размером не больше ногтя. Эта плата — часть семейства Tomu, миниатюрных плат, предназначенных для подключения к USB-портам ПК и ноутбуков. При этом у разных плат — различная специализация.

Qomu, например, представляет собой SoC c FPGA, специализирующуюся на машинном обучении, эмулировании процессоров и создании кастомной схемотехники. FPGA можно запрограммировать на выполнение конкретной задачи, затем модифицировать прошивку для реализации уже другой задачи. Qomu способна на все это, будучи весьма миниатюрной платой.
Total votes 47: ↑47 and ↓0+47
Comments20

Быстрый прототип IIoT-решения на Raspberry PI и Yandex IoT

Reading time10 min
Views14K

В этой серии статей я расскажу как самостоятельно собрать полнофункциональный прототип промышленного IIoT-шлюза на базе Raspberry PI.

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

Однако в качестве быстрого и дешевого решения на этапе проверки гипотез (в момент когда вам только предстоит определиться какие данные каким способом снимать и как их потом хранить и использовать) такое решение вполне имеет право на существование.

В конце концов, с программной точки зрения, большинство современных промышленных IoT-шлюзов - не что иное, как обычные одноплатные ПК со специфической ОС (чаще всего на базе Linux) и набором предустановленного ПО.

В общем те, кто готов к подобным экспериментам на производстве, либо просто интересуется IIoT и хочет поэкспериментировать с технологиями для собственного развития - вэлкам под кат!

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments1

Изучаем RISC-V с нуля, часть 1: Ассемблер и соглашения

Reading time19 min
Views23K


Издеваться мы будем над микросхемой GD32VF103CBT6, являющейся аналогом широко известной STM32F103, с небольшим, но важным отличием: вместо ядра ARM там используется ядро RISC-V. Чем это грозит нам, как программистам, попробуем разобраться.


Кратко перечислю характеристики контроллера:


  • Напряжение питания: 2.6 — 3.6 В
    • Максимальная тактовая частота: 108 МГц
    • Объем ПЗУ (flash): 128 кБ
    • Объем ОЗУ (ram): 32 кБ
    • Объем Backup регистров (сохраняемых после сброса): 42 х 16 бит = 84 байта.
    • АЦП+ЦАП: 2 штуки АЦП по 10 каналов и 12 бит каждый плюс 2 ЦАП по 12 бит.
    • Разумеется, куча прочей периферии вроде таймеров, SPI, I2C, UART и т. д.
Total votes 27: ↑26 and ↓1+34
Comments38

Ковыряемся внутри умной тепловой камеры с микроболометром

Reading time11 min
Views10K
image

Китайская компания Hikvision — один из ведущих поставщиков камер наблюдения на мировом рынке, капитализация которого в прошлом году выросла до 20 миллиардов долларов.

Спрос на системы видеонаблюдения резко вырос в последние несколько лет как в Китае, так и во всем мире. Руководители многих регионов и корпораций считают, что камеры незаменимы при строительстве так называемых «умных городов» с повсеместным наблюдением.

Тепловая камера от Hikvision, выпущенная в 2016 году, привлекла внимание специалистов из System Plus Consulting по одной простой причине: ИИ.

Hikvision создала первую камеру со встроенной системой ИИ, объединив в своем продукте как программные, так и аппаратные решения. Это побудило System Plus Consulting, подразделение Yole Développement, заглянуть под капот этой камеры, чтобы понять «какие технологические решения за ней стоят».

Наиболее примечательно то, что в этой камере воплощено все лучшее из миров востока и запада – «китайские микроболометр и процессор» вместе с «не-китайскими аналоговыми компонентами и устройствами для ИИ».
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments20

Двигайся быстрее и ломай преграды? Не так быстро, когда дело касается встраиваемых систем

Reading time7 min
Views2.7K

Шон Престридж – старший инженер по применению (FAE), руководитель группы FAE американского подразделения IAR Systems – в статье «Move fast and break things? Not so fast in embedded», рассказывает о специфике разработки программного обеспечения для встраиваемых систем, уделяя особое внимание вопросам качества кода и тестирования.


«Двигайся быстрее и ломай преграды» — это подход, озвученный Марком Цукербергом, который он внедряет в культуру разработки Facebook. Несмотря на то, что он чудесно звучит, когда мы говорим о быстром создании и запуске новых функций (даже если они не идеальны), все же он теряет свою красоту, если попытаться применить его к разработке программного обеспечения для встраиваемых систем.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments1

МЭМСы. Как устроены современные датчики?

Reading time9 min
Views49K
Микроэлектромеханические системы (МЭМС) — устройства, объединяющие в себе микроэлектронные и микромеханические компоненты. Сейчас довольно трудно встретить системы в которых не используются датчики, выполненные по данной технологии. Но как устроены современные датчики и какие преобразователи используются для работы с ними? Постараемся детально разобраться в этом вопросе, основываясь на работе современных МЭМС-акселерометров.

Читать дальше →
Total votes 47: ↑46 and ↓1+62
Comments19

cGit-UI — web-интерфейс для Git-репозиториев

Reading time9 min
Views7.9K

cGit-ui — это web-интерфейс для Git-репозиториев, основу которого предстваляет CGI-скрипт написанный на языке С.


cGit-ui поддерживает Markdown-файлы, которые обрабатываются на стороне сервера с помощью библиотеки md4c, зарекомендовавшей себя в проекте KDE Plasma. cGit-ui предоставляет возможность размещения кодов верификации сайта, а также скриптов от таких систем как Google Analytics и Yandex.Metrika для анализа трафика.


Пользователи cGit-ui получают широкие возможности для настройки как внешнего вида, так и функциональности собственного сайта, на котором они представляют свои репозитории. Кроме того, cGit-ui позволяет создавать и размещать на сайте, так называемые Donation-диалоги для приема пожертвований в пользу тех или иных проектов.


Внешний вид и функциональность сайтов, построенных на cGit-ui, можно рассмотреть на примере где, в том числе, представлены достаточно большие Git-репозитории, что позволяет примерно оценить скорость работы интерфейса. Рассматривать сайт в работе лучше начинать со смартфона, а затем переходить на более широкие экраны.


С момента выхода интерфейса к Subversion-репозиториям произошел ряд изменений в структуре пакетов, необходимых для установки. Так, например, cScm-демон, который служит для разбора конфигурационных файлов, выделен в отдельный пакет.


Поэтому в данной статье дается более развернутое описание cGit-ui.

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments25

Конфигурируем FT4232H c помощью утилиты ftdi_eeprom

Reading time3 min
Views4.9K


FT4232H – это интегральная микросхема преобразователя USB – UART, поддерживающая режим High Speed на стороне USB и имеющая четыре порта на стороне UART.


Подключив к этой микросхеме EEPROM-память можно задать специфические режимы работы или изменить данные производителя.


Разберемся на примере и сконфигурируем FT4232H непосредственно в системе под управлением GNU/Linux. Делать это будем с помощью утилиты ftdi_eeprom.

Читать дальше →
Total votes 9: ↑8 and ↓1+12
Comments6

Низкоуровневое программирование STM32: от включения питания до «Hello, World»

Reading time10 min
Views55K
В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том, почему кому-то это может понадобиться. Если вам эта идея, на первый взгляд, не показалась очень уж страшной, то, возможно, вам будет интересно то, о чём пойдёт речь в этом материале. И, кстати, подумаем о том, кому и зачем это может пригодиться.

Конечно, разрабатывать программы для MCU STM32 можно с помощью существующих фреймворков. Это может быть ST HAL, обычный CMSIS, или даже что-то, более близкое к Arduino. Но… что тут увлекательного? Ведь, в итоге, тот, кто пользуется каким-то фреймворком, полностью зависим от документации к нему и от его разработчиков. И, с другой стороны, если документация к STM32 кажется кому-то, работающему с этой платформой, так сказать, бредом сивой кобылы, то можно ли говорить о том, что этот человек по-настоящему понимает данную платформу?



Поэтому давайте поговорим о низкоуровневом программировании STM32 и доберёмся от включения питания STM32 до «Hello, World».
Читать дальше →
Total votes 35: ↑25 and ↓10+29
Comments19

ИТ-аналитик, чем его работа ценна для бизнеса

Reading time10 min
Views16K

“Аналитик, проанализируй мне эту задачу” - говорит бизнес-заказчик. Что он имеет в виду? Анализ - это всего лишь  метод исследования, характеризующийся выделением и изучением отдельных частей объектов исследования (по википедии), но бизнес в своих словах подразумевает нечто большее, чем просто анализ.

Что делает ИТ-аналитик и в чем ценность его работы для бизнеса? Пробуем разобраться. 

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

Читать далее
Total votes 9: ↑6 and ↓3+6
Comments5

Raspberry Pi в роли сервера для хостинга сайтов

Reading time8 min
Views80K
Raspberry Pi — это недорогой одноплатный компьютер, отличающийся крайней экономичностью в плане потребления электроэнергии. Он хорошо подходит на роль платформы, на базе которой создают устройства, которые постоянно должны быть включены. Среди множества способов применения Raspberry Pi можно выделить использование этого компьютера в качестве веб-сервера. И, на самом деле, хостить сайты на Raspberry Pi очень просто. Если посчитать стоимость услуг обычного хостинг-провайдера, то окажется, что они не так уж и дёшевы. Альтернативой таким услугам может стать собственный хостинг на Raspberry Pi, обслуживание которого не стоит практически ничего. Кроме того, платформа Raspberry Pi постоянно развивается, поэтому тому, кто решает ей пользоваться, можно не беспокоиться о том, что в будущем ему придётся работать с устаревшим аппаратным и программным обеспечением.


Читать дальше →
Total votes 51: ↑24 and ↓27+11
Comments76

Что такое красивый код и как научиться его писать

Reading time9 min
Views24K
Меня зовут Маша, я автор курса по С++ в Яндекс Практикуме. Все вопросы, задачи курса, его тексты и описания решений — это всё наша команда. И сегодня я хочу поговорить про красоту кода. Обсуждать её я буду по большей части на примере С++, так как я на нем и пишу, чаще всего программируя довольно низкоуровневые проекты для устройств интернета вещей, умного дома и медицинских аппаратов. Но сами правила и подход к пониманию красоты кода актуальны для любого языка.

Если совсем базово, то можно выделить три уровня красоты кода:

  1. Визуальный. Это как раз все про coding conventions, правильные переменные, оформление и прочее.
  2. Восприятие кода. Про ощущения, которые возникают у людей, работающих с вашим кодом.
  3. Продуманность архитектуры. Это тоже критично и тоже относится именно к красоте кода.

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

А теперь давайте по каждому пункту отдельно.


Читать дальше →
Total votes 31: ↑26 and ↓5+35
Comments39

Работа со списком Pinов, на С++ для микроконтроллеров (на примере CortexM)

Reading time13 min
Views8.5K


Всем доброго здравия!


В прошлой статье я обещал написать о том, как можно работать со списком портов.
Сразу скажу, что уже все было решено до меня аж в 2010 году, вот статья: Работа с портами ввода-вывода микроконтроллеров на Си++ . Человек написавший это в 2010 просто красавчик.


Мне было немного неловко, что я будут делать то, что уже сделано 10 лет назад, поэтому я решил не дожидаться 2020 года, а сделать это в 2019, чтобы повторить решение еще пока 9 летней давности, это будет не так стремно.


В выше указанной статье работа со списками типов была сделана с помощью C++03, когда еще шаблоны имели фиксированное число параметров, а функции не могли быть constexpr выражениями. С тех пор С++ "немного изменился", поэтому давайте попробуем сделать тоже самое, но на С++17. Добро пожаловать под кат:

Читать дальше →
Total votes 6: ↑4 and ↓2+5
Comments47

Включаем периферию контроллера за 1 такт или магия 500 строк кода

Reading time35 min
Views12K


Как часто, при разработке прошивки для микроконтроллера, во время отладки, когда байтики не бегают по UART, вы восклицаете: «Ааа, точно! Не включил тактирование!». Или, при смене ножки светодиода, забывали «подать питание» на новый порт? Думаю, что довольно часто. Я, по крайней мере, — уж точно.

На первый взгляд может показаться, что управление тактированием периферии тривиально: записал 1 — включил, 0 — выключил.

Но «просто», — не всегда оказывается эффективно…
Читать дальше →
Total votes 25: ↑23 and ↓2+32
Comments41

Раскладываем по полочкам параметры АЦП

Reading time10 min
Views81K
Привет, Хабр! Многие разработчики систем довольно часто сталкиваются с обработкой аналоговых сигналов. Не все манипуляции с сигналами можно осуществить в аналоговой форме, поэтому требуется переводить аналог в цифровой мир для дальнейшей постобработки. Возникает вопрос: на какие параметры стоит обратить внимание при выборе микроконтроллера или дискретного АЦП? Что все эти параметры означают? В этой статье постараемся детально рассмотреть основные характеристики АЦП и разобраться на что стоит обратить внимание при выборе преобразователя.

image

Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments38

Станция для подкастинга на Raspberry Pi

Reading time6 min
Views8.6K


Я начал свою карьеру писателя, имея степень бакалавра по английскому языку и минимальные навыки в этой области. В итоге моей первой оплачиваемой деятельностью стала кинокритика. И хоть я до сих пор продолжаю писать обзоры на фильмы, основной источник дохода — это технические СМИ. Причем в технологическую журналистику мне удалось попасть благодаря своему хобби. Будучи с юных лет увлеченным энтузиастом-конструктором, я постоянно собирал (а иной раз и ломал) разные устройства, начиная с восстановления старых настольных ПК с дистрибутивами Linux, заканчивая переустановкой ОС на мобильных телефонах. Сегодня же я продолжаю совмещать насущный заработок со своими технологическими и прочими сопутствующими интересами. Говоря конкретнее, я веду подкаст, посвященный кино, и некоторое время назад озадачился поиском мобильной студии звукозаписи. Несмотря на то, что существует множество крутых вариантов, у меня в итоге возникла идея получше: а почему бы не собрать такую самому? Именно так и родилась станция подкастинга на Raspberry Pi.
Читать дальше →
Total votes 22: ↑20 and ↓2+30
Comments11

Сравнение компиляторов ARMCC, IAR и GCC

Reading time2 min
Views14K
image
Я работаю над одним проектом, который с большим трудом вмещается в 64к памяти микроконтроллера. И подумалось мне, что возможно, пора взглянуть на разные компиляторы, чтобы выбрать какой более агрессивно может уменьшить размер программы.

Представляю вашему вниманию небольшое сравнение.
Читать дальше →
Total votes 15: ↑14 and ↓1+20
Comments46

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Registered
Activity