Pull to refresh

MSP430, учимся программировать и отлаживать железо (часть 3)

Reading time 6 min
Views 55K
Programming microcontrollers *

Возможно Вы уже не первый раз садитесь за программирование Вашего MSP430. Если это не так, то рекомендую ознакомиться с предыдущими статьями по данной тематике: часть 1, часть 2.
В этой статье мы рассмотрим инструмент для графической настройки периферии нашего микроконтроллера — Grace, познакомимся с принципом работы watchdog и поработаем с виртуальным COM-портом (через программатор). Уже традиционно будет рассмотрен небольшой пример кода, и предоставлены все необходимые для понимания ссылки.

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

Arduino watchdog или автоматический RESET в случае зависания

Reading time 7 min
Views 229K
Developing for Arduino *
Tutorial

Речь пойдет о том, как держать Arduino всегда в работоспособном состоянии. Механизм watchdog встроен в контроллеры Atmega, но, к сожалению, не всякий загрузчик (bootloader) Arduino правильно обрабатывает эту функцию. Попробуем разобраться с этой проблемой.

Итак, что такое watchdog? Простыми словами — это встроенный таймер на определенное время (до 8 сек в зависимости от чипа), который можно запустить программно. Как только таймер «дотикает» до нуля, контроллер подает правильный сигнал сброса (RESET) и всё устройство уходит в hard перезагрузку. Самое главное, что этот таймер можно сбрасывать в начальное состояние также программным способом.

  • Правильный сигнал сброса — достаточный по длительности для того, чтобы контроллер начал перегружаться. Иногда есть соблазн подключить к RST входу какой-либо цифровой выход Arduino и устанавливать его в 0 когда надо перегрузиться. Это плохой подход к решению проблемы, т.к. такого сигнала может быть недостаточно по времени, хотя и не исключено, что в некоторых случаях это тоже будет работать..
  • hard перезагрузка это самая настоящая перезагрузка, которая происходит при нажатии на кнопку RESET. Дело в том, что есть еще понятие soft перезагрузки — это программный переход на 0-вой адрес. В принципе, это тоже полезная вещь, но с помощью нее невозможно перегрузить зависший контроллер Ethernet или взглюкнувший LCD.

Короче говоря, встроенный watchdog это как раз то, что нужно и без дополнительных схем, пайки и соединений.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 12

Аппаратный «watchdog» или незаменимый помощник в борьбе с зависанием

Reading time 2 min
Views 80K
Payment systems *
В одной компании было много терминалов, и одна из неблагодарных задач для техподдержки — ездить по точкам и перезапускать операционную систему внутри терминалов. Было решено бросить вызов этой проблеме в виде разработки аппаратного сторожевого таймера.

В итоге мы получили устройство, которое подключается к расширительному спаренному USB-разъему на материнской плате.



Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 34

Сторожевой таймер для 4G-модема в CentOS 7

Reading time 5 min
Views 16K
Configuring Linux *
Эта статья является дополнением моей предыдущий публикации о настройке домашнего роутера / файл-сервера. Здесь речь пойдет о проблеме автоматического переподключения к интернету при зависании 4G-модема. На оригинальность идеи не претендую, просто хочу поделиться с читателями своим решением.

Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 5

SLES 12, сторожевой таймер и серверы IBM/Lenovo

Reading time 3 min
Views 7.5K
System administration *Server Administration *
Sandbox
UPD: Последние изыскания изложены здесь: Серверы IBM/Lenovo и сторожевой таймер: эпизод II. Дальнейшее изложение является прологом к статье по ссылке.

Столкнулся с существенным регрессом в 12-й версии SLES, связанным с поддержкой сторожевого таймера (устройство /dev/watchdog) на серверах IBM/Lenovo.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 2

Серверы IBM/Lenovo и сторожевой таймер: эпизод II

Reading time 6 min
Views 8.8K
System administration *Server Administration *
Более чем полгода я потратил на совместное с аппаратной и программной технической поддержкой IBM расследование по поводу работы сторожевого таймера на серверах IBM/Lenovo в Linux. Начало этой детективной истории было описано в моей статье SLES 12, сторожевой таймер и серверы IBM/Lenovo. Сейчас, похоже, ситуация разъяснилась, и можно дать конструктивные рекомендации счастливым обладателям железа IBM/Lenovo xSeries.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 6

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

Reading time 11 min
Views 18K
Open source *Programming *C *Development for Linux *Programming microcontrollers *
Tutorial

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


В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.


Устройство включает в себя следующие подсистемы:


  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

WRN устройство

Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 6

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 1 (Аппаратная)

Reading time 21 min
Views 19K
DIY Electronics for beginners
Tutorial

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


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


Существует большой выбор устройств, с помощью которых можно решить любую из этих проблем, но подключение каждого из них требует отдельный порт. Оценив ситуацию, в итоге решил разработать устройство 3-в-1 подключаемое в RS232 (COM) порт. Остальные требования получились следующими:


  • Аппаратный сторожевой таймер, пригодный для работы со стандартным демоном watchdog;
  • Генератор истинно случайных чисел на базе эффекта обратного лавинного пробоя p-n перехода;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

Таким образом устройство получило наименование WRN от названий составляющих его подсистем: WDT (WatchDog Timer), RNG (Random Number Generator), nRF24L01+.


WRN устройство

Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 26

Три видео для тех, кто пишет под iOS

Reading time 1 min
Views 3.6K
ЮMoney corporate blog Programming *Development for iOS *Development of mobile applications *


Привет, Хабр!
У нас прошёл iOS-митап и я принёс вам три видео от коллег из Яндекс.Денег, Яндекса и Mail.ru.


Первое — как работать с асинхронным кодом из разных языков программирования.
Второе — про баги при работе с системной клавиатурой на iOS и их исправление.
Третье — о том, как устроена iOS-разработка в Яндексе.

Total votes 16: ↑15 and ↓1 +14
Comments 1

Микроконтроллеры Megawin серии MG32F02: RTC и сторожевые таймеры IWDT, WWDT

Reading time 23 min
Views 1.4K
Programming microcontrollers *

Продолжая цикл публикаций по микроконтроллерам на ядре Cortex-M0 компании Megawin (см. предыдущие статьи 1, 2, 3 и 4), сегодня рассмотрим часы реального времени RTC, сторожевые таймеры IWDT и WWDT, а также стандартный для Cortex-M0 таймер SysTick.

Также отметим изменения в организации исходного кода. В структуру кода добавлен файл src/core.h, включающий короткие макросы доступа к регистрам МК:

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