• Разработка контроллера резервного питания. Трассировка

    • Tutorial

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

    Читать далее
    • +29
    • 3,5k
    • 9
  • Находим и устраняем уязвимости бинарных файлов в Linux — с утилитой checksec и компилятором gcc

    • Перевод

    Изображение: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0

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

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

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

    • как использовать утилиту checksec для поиска уязвимостей;
    • как использовать компилятор gcc для устранения найденных уязвимостей.

    Установка checksec


    Для Fedora OS и других систем на базе RPM:

    $ sudo dnf install checksec

    Для систем на базе Debian используйте apt.

    Быстрый старт с checksec


    Утилита сhecksec состоит из единственного скриптового файла, который, впрочем, довольно большой. Благодаря такой прозрачности вы можете узнать, какие системные команды для поиска уязвимостей в бинарных файлах выполняются под капотом:
    Читать дальше →
    • +21
    • 3,5k
    • 4
  • Микрочипы становятся непредсказуемыми по мере уменьшения техпроцесса

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

      Читать далее
    • Проводим нагрузочное тестирование скоростных USB-библиотек для STM32F103C8T6

        В предыдущей статье я показывал предельную скорость шины USB у микроконтроллера STM32F103 со штатной библиотекой MiddleWare. В комментариях мне показали сразу две самодельных библиотеки, выжимающих из USB FS все соки. Но автор одной из библиотек высказал мысль, что быстро-то они работают быстро, а насколько надёжно – не ясно. Он считал, что было бы полезно провести нагрузочное тестирование с какими-то полезными данными. Только если они не потеряются и не исказятся, можно будет сказать, что библиотеки имеют право на жизнь.



        Само собой, я еле дождался выходных, чтобы провести проверки. Давайте рассмотрим результаты испытаний. А чтобы было интересней, попутно рассмотрим технологию отображения переменных «на лету», без остановки процессорного ядра. Ну, и технологию визуальной отладки elf-файлов, собранных пакетными компиляторами.
        Читать дальше →
        • +27
        • 2,4k
        • 5
      • TinyML. Сжимаем нейросеть

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

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


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


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

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

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

            • Tutorial

            Сегодня я хотел бы поделиться с Вами, как быстро и просто можно создать приложение для Android с базовыми знаниями HTML CSS и JS. По данному примеру код на Java для Android будет минимальным. Благодаря платформе XAMARIN приложения для мобильных телефонов можно делать в Visual Studio.
            Читать дальше →
          • Apple превращается в ещё одну Microsoft

            • Перевод
            image

            Фанаты Apple продолжают рассуждать о том, что может стать новым прорывным продуктом компании. Что-то сравнимое с первым Mac, первым iPod, первым iPhone — революционный продукт, который изменит отрасль и даст Apple мощный толчок вперёд. В конце концов, именно так Apple всегда вела эту игру. Именно таким мы привыкли видеть успех Apple.

            Но я думаю, что дальше эта игра будет продолжаться иначе. Произойдёт нечто совершенно другое. Но чтобы понять, какой будет Apple будущего, нам нужно понять Apple прошлого и почему это прошлое не повлияет на будущее.
            Читать дальше →
          • Почему убивают смартфоны в ванне?

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

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

              Читать далее
            • Время построения, скорость сети и маршрутизации: как мы улучшили свою mesh-сеть и немного про нейросети

              На этом ресурсе регулярно пишут о mesh-сетях. Мы хотим рассказать, как используем их в своем проекте для создания адаптивной системы автоматизации помещений.Технология самоорганизующихся сетей позволяет нам не только оперативно разворачивать систему, но и добиваться высоких показателей по её отказоустойчивости и скорости работы. Свое решение мы успешно протестировали на реальном объекте с ёмкостью сети в 120 устройств.

              Зачем нам понадобилась mesh-сеть


              С момента появления концепции «умного дома» головное устройство считалось его «сердцем» и «мозгом». Но постепенно хабы перестают быть необходимыми и скоро вовсе уйдут в прошлое. Данную тенденцию подтверждают и крупные игроки вроде Google и Amazon. Google вот уже несколько лет предлагает ячеистые маршрутизаторы, а Amazon не так давно купила компанию Eero, чтобы усилить свои позиции на рынке умных домов.

              В своих продуктах мы используем mesh-сети, так как они решают сразу несколько проблем. Во-первых, обеспечивают бесперебойную работу системы. Обычно если хаб вышел из строя или потерял связь с интернетом, система, фактически, отключается, устройства перестают откликаться и выполнять свои основные функции. Mesh-сети позволяют этого избежать. Даже если одно устройство вышло из строя, остальные продолжат работать в прежнем режиме. Пользователь лишь получит уведомление о неисправности.
              Читать дальше →
              • +12
              • 4,2k
              • 2
            • Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой

              • Tutorial

              Здравствуйте! Меня зовут Александр и я работаю программистом микроконтроллеров.

              Начиная на работе новый проект, я привычно набрасывал в project tree исходники всяческих полезных утилит. И на хедере app_debug.h несколько подзавис.

              Дело в том, что в декабре прошлого года у GNU Arm Embedded Toolchain вышел релиз 10-2020-q4-major, включающий все GCC 10.2 features, а значит и поддержку Concepts, Ranges, Coroutines вкупе с другими, менее "громкими" новинками С++20.

              Воодушевленное новым стандартом воображение рисовало мой будущий С++ код ультрасовременным и лаконично-поэтичным. И старый добрый printf("Debug message\n") в это благостное видение не очень-то вписывался.

              Хотелось бескомпромиссной плюсовой функциональности и стандартных удобств!

              Например, таких:
            • Компания IBM создала первый в мире 2 нм процессор и изготовила тестовые образцы


                Компании IBM, похоже, удалось достичь того, что не удалось пока другим корпорациям — разработать процессор по 2 нм техпроцессу. И не просто разработать, а продемонстрировать тестовые образцы этих процессоров. По словам компании, «на кристалле размером примерно с ноготь удалось разместить 50 млрд транзисторов».

                Несмотря на очевидный успех, в скором времени рынок не получит новые чипы — они поступят не ранее 2024 года, и то, лишь в том случае, если у IBM не возникнет непредвиденных проблем. Стоит отметить, что тестовые образцы чипов произвела не фабрика TSMC, а собственная лаборатория IBM, располагающаяся в городе Олбани, США. Образцы изготовили на 300-мм пластинах.
                Читать дальше →
              • Обзор одной российской RTOS

                  Здравствуйте!

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

                  Я расскажу об особенностях работы этой ОСРВ. Если о чём-то другом, то только потому, что без этого будут непонятны особенности.

                  Ниже я расскажу об особенностях ОСРВ вообще, и об особенностях ОСРВ МАКС в частности. Представлю ее архитектуру.

                  В дальнейшем я буду регулярно размещать новые публикации: вторая будет посвящена ядру системы, в последующих я представлю структуру простейшей программы, работающей под управлением ОСРВ МАКС с элементами кода, расскажу, как настроить ОСРВ МАКС для работы, затрону вопросы строгой типизации и драйверов.
                  Читать дальше →
                • Плавность хода, шум и момент шагового двигателя при управлении микроконтроллером

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

                  Далее опишу алгоритм управления ШД с помощью микроконтроллера.

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

                  Рассмотрим необходимый минимум основ управления ШД , необходимый для понимания принципа управления, описанного ниже. А именно:

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

                  Изменение полярности обмотки с помощью Н-моста.

                  Принципиальная электрическая схема, включающая в себя 4 драйвера полумоста и 2 Н-моста.

                  Способ модуляции синусоидального сигнала с помощью широтно-импульсной модуляции (далее просто ШИМ).

                  Способы подключения обмоток.

                  Читать далее
                • Создание своей оценочной платы для микроконтроллеров

                  Заказывая много оценочных плат из Китая, я и подумать не мог что всюду будет брак, недоработки и подделка. Всё это ужасно путало в изучении, поэтому было принято делать свою оценочную плату с блэкджеком и светодиодами!

                  Читать далее
                • Rust — теперь и на платформе Android

                  • Перевод

                  Корректность кода на платформе Android является наиважнейшим аспектом в контексте безопасности, стабильности и качества каждого релиза Android. По-прежнему сложнее всего вытравливаются ошибки, связанные с безопасностью памяти и попадающиеся в коде на С и C++. Google вкладывает огромные усилия и ресурсы в обнаружение, устранение багов такого рода, а также в уменьшение вреда от них, старается, чтобы багов в релизы Android проникало как можно меньше. Тем не менее, несмотря на все эти меры, ошибки, связанные с безопасностью памяти, остаются основным источником проблем со стабильностью. На их долю неизменно приходится ~70% наиболее серьезных уязвимостей Android.

                  Наряду с текущими и планируемыми мероприятиями по улучшению выявления багов, связанных с памятью, Google также наращивает усилия по их предотвращению. Языки, обеспечивающие безопасность памяти – наиболее эффективные и выгодные средства для решения этой задачи. Теперь в рамках проекта Android Open Source Project (AOSP) наряду с языками Java и Kotlin, отличающимися безопасностью памяти, поддерживается и язык Rust, предназначенный для разработки операционной системы как таковой.

                  Читать далее
                • Как стать высокооплачиваемым инженером в области электроники

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

                  Статья подготовлена действующим инженером-конструктором 1-й категории АО «ИСС» Дмитрием Савиным на основе своего проектного и руководящего опыта.

                  Читать далее
                • Шпион, выйди вон: что делают браузеры после установки?

                  • Перевод

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

                  В этой статье мы оценивали поведение пяти браузеров: Brave, Chrome, Firefox, Edge и Opera. Все исследования проводились на десктопе под управлением Windows 10 (версия 20H2, билд 19042.804) с подтвержденной учёткой Microsoft.

                  Читать далее
                • Новый ML-алгоритм работает до 15 раз быстрее на центральном процессоре, чем на видеоускорителе

                    Ученые из Университета Райса продемонстрировали программное обеспечение, которое работает на обычных процессорах и обучает глубокие нейронные сети в 15 раз быстрее, чем платформы на основе графических процессоров.

                    Читать далее
                  • Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

                      fiona


                      Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


                      Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


                      • Приемлемый уровень естественности речи;
                      • Большая библиотека готовых голосов на разных языках;
                      • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
                      • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
                      • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
                      • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
                      • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
                      • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
                      • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

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