Проблемы упакованных структур

Не так давно я столкнулся с проблемой: структуры, полученные от устройства через USB-VCOM, содержали не те данные, которые я ожидал. Размер структуры в программе на Qt отличался от размера встроенной программы, скомпилированной в Keil uVision. Соответственно, доступ к членам структуры, а особенно к битовым полям оказывался некорректным. Читать далее Проблемы упакованных структур

Установка Node.JS и Gulp

В репозиториях Ubuntu хранится слишком старая версия Node.JS, поэтому надо было устанавливать как-то иначе.

На Github помимо исходников Node.JS есть репозиторий с дистрибутивами различных версий:

https://github.com/nodesource/distributions

На Ubuntu 18 сейчас нельзя оттуда установить, потому что это еще нерелизная версия. Но можно установить оттуда вручную, добавив PPA. Я устанавливал версию 8.x. Описание установки по ссылке:

https://github.com/nodesource/distributions#debmanual

После этого можно установить Gulp:

sudo npm install gulp -g

Макет повторителя CAN

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

Первичная настройка печатной платы в Altium Designer

  1. Настройка стека слоев;
  2. Настройка правил проектирования;
  3. Настройка пар механических слоев Top Assy (M13) — Bottom Assy (M14) и Top
  4. Cortyard (M15) — Bottom Cortyard (M16);
  5. Настройка предпочитаемых толщин линий и диаметров переходных отверстий.

Проверки топологии печатной платы

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

  1. Подключение внутренних полигонов;
  2. Наличие маски переходных отверстий;
  3. Наличие всех элементов;
  4. Оптимизация линий;
  5. Полигоны на Top и Bottom над соответствующими землями;
  6. Все полигоны залиты;
  7. Сетчатые полигоны на внутренних слоях гибко-жестких плат;
  8. Расстановка шелкографии;
  9. Наличие строки с номером модуля и печатной платы;
  10. Тестовые точки и площадки;
  11. Справочные надписи шелкографией;
  12. Выполняется проверка Design Rule Check.

startup.s для Cortex-M в ARM компиляторе

Попытаемся разобраться со структурой стартового файла startup.s для процессоров Cortex-M в среде Keil MDK-ARM. Постараемся понять, как запускается процессор, на примере файла инициализации для отечественных процессоров 1986ВЕ1Т, которые являются аналогом ядра Cortex-M1. Читать далее startup.s для Cortex-M в ARM компиляторе