Как стать автором
Обновить
118
20.8

Embedded SW/Firmware Engineer

Отправить сообщение

Вся правда об ОСРВ. Статья #31. Диагностика и проверка ошибок ОСРВ

Время на прочтение11 мин
Количество просмотров1.6K


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

В Nucleus SE, в целом, существуют три типа проверки ошибок:
  • средства для проверки работоспособности выбранной конфигурации, чтобы убедиться, что выбранные параметры не приводят к возникновению ошибок;
  • опционально включаемый код для проверки поведения времени выполнения;
  • определенные функции API, способствующие разработке более надежного кода.

Все это будет рассмотрено в данной статье, вместе с некоторыми идеями, касающимися диагностики силами пользователя.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Вся правда об ОСРВ. Статья #33. Использование операционной системы реального времени Nucleus SE

Время на прочтение14 мин
Количество просмотров4.2K
До сих пор в этой серии статей мы рассматривали, какие функции предоставляет Nucleus SE. Сейчас пришло время посмотреть, как ее можно использовать в реальном приложении встраиваемого ПО.


Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии0

Что делать, если ты уже научился программировать микроконтроллеры?

Время на прочтение3 мин
Количество просмотров9.2K
Привет, Хабровчанин.

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

На данный момент я работаю программистом уже 3 года, и до недавнего времени, я не видел, что делать дальше. Однако, тогда я повстречал человека с 20+ лет стажем программирования встраиваемых систем, и общаясь с ним, я выделил некоторые аспекты, в которых можно развиваться. Здесь я и хочу поделиться ими, а также свои личным опытом. Я ни в коем случае не хочу никого учить, я просто поделюсь своими наработками, а ты уже сам решай, полезны эти советы или нет.
Читать дальше →
Всего голосов 26: ↑8 и ↓18-6
Комментарии87

Еще раз про приведение типов в языке С++ или расстановка всех точек над cast

Время на прочтение8 мин
Количество просмотров127K

Этот пост попытка кратко оформить все, что я читал или слышал из разных источников про операторы приведения типов в языке C++. Информация ориентирована в основном на тех, кто изучает C++ относительно недолго и, как мне кажется, должна помочь понять cпецифику применения данных операторов. Старожилы и гуру С++ возможно помогут дополнить или скорректировать описанную мной картину. Всех интересующихся приглашаю под кат.
Добро пожаловать под кат
Всего голосов 35: ↑18 и ↓17+1
Комментарии37

Анатомия RAM

Время на прочтение14 мин
Количество просмотров110K
image

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

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

Зачем же ты, RAM-ео?


Процессорам требуется очень быстро получать доступ к данным и командам, чтобы программы выполнялись мгновенно. Кроме того, им нужно, чтобы при произвольных или неожиданных запросах не очень страдала скорость. Именно поэтому для компьютера так важно ОЗУ (RAM, сокращение от random-access memory — память с произвольным доступом).

Существует два основных типа RAM: статическая и динамическая, или сокращённо SRAM и DRAM.

Мы будем рассматривать только DRAM, потому что SRAM используется только внутри процессоров, таких как CPU или GPU. Так где же находится DRAM в наших компьютерах и как она работает?
Читать дальше →
Всего голосов 26: ↑25 и ↓1+33
Комментарии31

Рассказываем об отечественном медицинском стартапе VeinCV и его устройстве для визуализации вен

Время на прочтение6 мин
Количество просмотров4.2K

В мае этого года компания VK открыла доступ к своему облачному сервису платформы VK Cloud Solutions на GPU, созданному в 2021 году российскому медицинскому стартапу VeinCV, резиденту «Сколково». Облачный сервис необходим для повышения качества работы созданной VeinCV системы бесконтактной визуализации вен на основе ИИ. Информационная служба Хабра связалась с пресс-службой «Сколтеха», на базе которого создан проект, чтобы побольше узнать о VeinCV и его разработке. На вопросы отвечал Олег Рогов, сооснователь и генеральный директор стартапа, а также научный сотрудник «Сколтеха».

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии10

Беспроводный Lighting-Sensor с питанием от CR2450

Время на прочтение6 мин
Количество просмотров26K
Сделать какой-нибудь беспроводный датчик, содержащий барометр, термометр, гигрометр или все в одном флаконе, с питанием от 220В — это не проблема. А вот запитать такое устройство от батареек или аккумуляторов уже интереснее. Ну а если это будет дисковая литиевая батарейка (таблетка) — вообще здорово, потому как устройство получится весьма компактным.
Единственным препятствием для использования «таблетки» является ее небольшая емкость. Но и среди «таблеток» есть вполне подходящие экземпляры, например CR2450, с заявленной емкостью 550-610 мАч.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии49

Прошивка и отладка STM32 в VSCode под Windows

Время на прочтение7 мин
Количество просмотров33K

На хабре уже есть немало информации об отладке МК в VSCode на Linux, также было написано как настроить тулчейн для работы под Windows в QT Creator, Eclipse, etc.

Пришло и моё время написать похожую, но для VS Code и под Widnows.

Инициализация проекта будет проводиться с помощью STM32CubeMX. Сборкой будет управлять CMake с тулчейном stm32-cmake. В качестве компилятора используется ARM GNU Toolchain. Тестовым стендом является NUCLEO-F446ZE.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии30

Технология программирования ARM Cortex-M0+

Время на прочтение11 мин
Количество просмотров26K

Здесь я расскажу об удобном наборе средств и о технологии быстрой разработки простых программ на микроконтроллере S9KEAZN64AMLC с 32-х битным 40 МГц ядром ARM Cortex-M0+. Как аппаратную основу возьмем плату от анонсированного ранее проекта. Плата оказалась на удивление живучей при низких температурах и даже превзошла в этом смысле ожидания.
Начнем с подробного описания создания термометра без использования внешних датчиков и с функцией логера.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

STM32 + linux

Время на прочтение15 мин
Количество просмотров161K
Для разработки системы управления одной железякой после длительных поисков мною был выбран ARM-микроконтроллер семейства STM32 — STM32F103 (в «стоножечном» исполнении). А в качестве макетки для разработки и отладки — STM32P103 (там ножек хоть и меньше, но ядро то же самое). «Истории успеха» я понемногу выкладывал в своей ЖЖшке, но вот решил собрать все воедино и рассказать о том, каково же оно — программировать микроконтроллеры в линуксе. Сам проект лежит на sourceforge.

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии21

Что такое Docker: краткий экскурс в историю и основные абстракции

Время на прочтение8 мин
Количество просмотров24K

10 августа в Слёрм стартовал видеокурс по Docker, в котором мы разбираем его полностью — от основных абстракций до параметров сети.


В этой статье поговорим об истории появления Docker и его основных абстракциях: Image, Cli, Dockerfile. Лекция рассчитана на новичков, поэтому вряд ли будет интересна опытным пользователям. Здесь не будет крови, аппендикса и глубокого погружения. Самые основы.


Всего голосов 24: ↑16 и ↓8+13
Комментарии9

Github добавил настройки доступа к веткам (protected branches)

Время на прочтение2 мин
Количество просмотров45K
imageГитхаб — великолепный агрегатор репозиториев и инструмент для коллективной работы. К сожалению, многие возможности конфигурирования на стороне сервера (вроде коммит хуков) остаются недоступными. Но ситуация постепенно меняется в лучшую сторону.

Случилось то, чего многие ждали довольно долго. А именно: недавно была анонсирована фича, под названием protected branches, которая позволяет настроить правила работы с ветками в рамках репозитория. Да, теперь можно запретить force push в master!

Под катом скриншоты и выдержки из блога разработчиков.
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии8

В каких российских городах разработчикам выгоднее жить в 2023

Время на прочтение5 мин
Количество просмотров22K

В феврале мы выяснили, что во второй половине 2022 года зарплаты IT-специалистов выросли на 7% за счет роста показателей в регионах. Это было исследование про доходы, а что с расходами? Чтобы это узнать, мы взяли зарплаты разработчиков в российских городах, которые они оставили в нашем зарплатном калькуляторе, и наложили на них стоимость жизни в этих городах. 

Если интересно, где в России выгоднее всего живется IT-специалистам — заглядывайте под кат.

Читать далее
Всего голосов 25: ↑21 и ↓4+30
Комментарии91

Разработка системы indoor-позиционирования. И немного импортозамещения

Время на прочтение8 мин
Количество просмотров5.2K

Привет, Хабр! Я системный архитектор Sitronics Group. Сегодня хочу представить вам кейс разработки платформы indoor-позиционирования Sitronics Locus, а также непредвиденного импортозамещения. Программными методами нам удалось добиться точности позиционирования до 1 метра. Думаю, всем разработчикам схожих решений и сотрудникам IT-департаментов на опасных производствах и в промышленности будет интересно почитать.

В ходе работы над проектом не все пошло по плану: часть импортного оборудования стала недоступна в последние месяцы и его экстренно пришлось разрабатывать и производить самостоятельно. Об этом ниже в тексте.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Сравнительный анализ стандартов связи для сетей IoT

Время на прочтение13 мин
Количество просмотров7.3K

Интернет вещей (Internet of Things, IoT) — это одно из самых актуальных направлений современных технологий. Сети IoT позволяют подключать к сети интернет физические устройства, такие как датчики, устройства управления, электронные приборы и другие предметы быта, которые могут обмениваться данными и управляться удаленно. Это открывает безграничные возможности для создания интеллектуальных систем, которые могут автоматизировать процессы и управлять ресурсами на основе данных и аналитики.

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии7

Разработка гироскопического эхолокатора

Время на прочтение7 мин
Количество просмотров5.2K

Личные проекты – это важный элемент любой технической профессии. Они дают какую-то нить идентичности, столь востребованную в наше время – вот ты уже не следуешь вслепую по линейному конвейеру жизни, а выходишь за рамки, создаешь что-то новое, попутно расширяя свой технический кругозор и повышая квалификацию. Ну, или переводишь большую часть дохода и/или времени на очередную попытку, потому что «в этот раз точно получится, ну столько же сил вложено, куда отступать».

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

Одним чудным летним вечером, обладая знаниями электроники на уровне детского электронного конструктора, я решил, что надо сделать хороший такой «железный» проект – с какой-то социальной значимостью, идеей, потенциалом, и вот этим всем. Что-то, что со временем, сможет пробить барьер между «самоделкой» и «изобретением», заодно придав мотивацию изучить технологии, необходимые для этого.

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии12

Фриланс-разработка электроники. Что, Как и Зачем?

Время на прочтение7 мин
Количество просмотров32K

▍Как все начиналось


Начну немного издалека, чтобы было понятно с чего все изначально началось.

Электронику я люблю с детства, родители военные и они же инженеры привили любовь не только к морзянке, но и к электронике. За что им отдельное спасибо.

После окончания ВУЗа, работаю по сей день ведущим инженером на одной из атомных станций. Работа веселая и ответственная, но дома надо чем-то занять вечера, не пиво же пить и лежать у телевизора. Для поддержания на должном уровне своей квалификации освоил Ардуино, Attiny, STM, ESP32. Вспомнил давно забытую Java и C++. Освоил заново Easyeda, Altium, Eagle. Свободно работаю во многих программах CAD моделирования. Теоретически я подготовлен хорошо, но нужна была практика в электронике и желательно по очень высоким стандартам.
Читать дальше →
Всего голосов 78: ↑71 и ↓7+85
Комментарии123

Размышления на тему развития робототехники в России

Время на прочтение14 мин
Количество просмотров8.8K

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

Читать предложения по развитию робототехни
Всего голосов 16: ↑8 и ↓8+2
Комментарии47

Легковесное ядро конечного автомата с автогенератором дерева для embedded проектов

Время на прочтение6 мин
Количество просмотров6.2K
image

Введение


В моей практике часто возникали ситуации, когда применение конечного автомата являлось наиболее верным решением, однако от него приходилось отказываться ввиду срочности разработки, сложности поддержки, или же по каким-либо иным причинам. В этом посте мне хотелось бы поделиться с вами разработанным мною решением, позволяющим без труда встраивать в свои проекты конечные автоматы с возможностью наглядного отображения структуры дерева.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии7

Very simple real time operating system: что это и зачем нужно?

Время на прочтение6 мин
Количество просмотров6.6K

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии40

Информация

В рейтинге
366-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers