Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Как запустить и работать с Watchdog в linux?
sasamy
Добавлено 21.10.2015 11:47 Сообщение: 11
sasamy
4.70

Пункты: 77067
Регистрация: 14.08.2009
Цитата

Я так понял что запускать надо не через S9X скрипт, а через inittab ?


я бы искал ошибку в своем коде - не знаю про ваши планы и что вам надо, если пропишете запуск через inittab то естественно никакой "S9X скрипт" уже не нужен
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 02.11.2015 12:19 Сообщение: 12
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
После (./uboot_rebuild.sh) у меня всё сбилось, плюс к тому другую работу подсунули.

Теперь возвращаюсь к вопросу
При
int fd = open("/dev/watchdog", O_WRONLY);
fd получается = -1 - что я делаю не так?

Bootloaders --->
[*] Enable HW watchdog установлено изначально
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 02.11.2015 14:20 Сообщение: 13
sasamy
4.70

Пункты: 77067
Регистрация: 14.08.2009
Цитата

При
int fd = open("/dev/watchdog", O_WRONLY);
fd получается = -1


если включен сторожевой таймер в конфиге буилдрута - ничего больше делать не нужно - стартует штатный демон из состава busybox для сброса таймера. Открывать и закрывать файл /dev/watchdog не могут два процесса по определению

Цитата

the watchdog activates as soon as /dev/watchdog is opened
....
When the device is closed, the watchdog is disabled, unless the "Magic Close" feature is supported (see below)


https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 09.11.2015 11:20 Сообщение: 14
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Не понимаю тогда,
Может подскажете как настроить WDT чтобы при сбое(зацикливании, потере связи, переполнении .....) в моем приложении произошёл перезапуск устройства.
На c51 я просто дёргал аппаратный WDT каждую секунду за ногу и тот знал что у меня все в порядке, а если не успел дернуть, то устройство перезапускалось.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 09.11.2015 11:52 Редактировалось 09.11.2015 12:00 Сообщение: 15
sasamy
4.70

Пункты: 77067
Регистрация: 14.08.2009
Цитата

как настроить WDT чтобы при сбое(зацикливании, потере связи, переполнении .....) в моем приложении произошёл перезапуск устройства.


уберите галку в конфиге

Bootloaders --->
[] Enable HW watchdog

пересоберите убут и делайте с ватчдогом что хотите - ссылку на API я вам дал. Эта галка активирует сторожевой таймер на раннем этапе загрузки в убуте и добавляет стартовый скрипт для сброса после загрузки ядра - сторожевой таймер работает как общесистемная защита от сбоев.

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

buildroot-2014.08-sk/board/starterkit/imx6sk-min/post-build.sh

вместо этих строк

if grep -q "BR2_TARGET_UBOOT_WATCHDOG=y" .config; then
install -m 0755 $BOARD_DIR/S15watchdog $1/etc/init.d/
else
test -f $1/etc/init.d/S15watchdog && rm $1/etc/init.d/S15watchdog
fi

оставьте удаление стартового скрипта для демона

test -f $1/etc/init.d/S15watchdog && rm $1/etc/init.d/S15watchdog
Спуститься к концу Подняться к началу
Персональная информация
Wad1970
Добавлено 09.11.2015 14:29 Сообщение: 16
Wad1970
5

Пункты: 3692
Регистрация: 24.11.2014
Спасибо, заработало как мне надо.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux