Jump to content
Форум по продукции MOXA

Recommended Posts

Доброго времени суток, форумчане.

В контроллере надо, поиметь работу с watchdog таймером. Контроллер построен на базе модульной скада, модули лежат в динамических библотеках(.so), а объектник в котором лежат методы для работы с таймером через moxa-API в архиве(.a)

 

При сборке модуля таймера для скады проблем не возникает, а при запуске имеем

ksa: relocation error: /var/sd/arm-ksa/lib/modules/libmoxa_Watchdog_1_0.so: undefined symbol: swtd_open

 

Вопрос возможно ли слинковать статическую библиотеку как часть динамической? На сколько я понимаю нет.

Видимо нужен объектник swtd.o, для линковки.

 

P.S вот так собирается модуль moxa:Watchdog

 

make clean; ksmake; make install

make[1]: Вход в каталог `/home/boris/moxadev/ksa/moxa/Watchdog/src'

rm -f WatchdogFactory.o WatchdogBase.o Watchdog.o libmoxa_Watchdog_1_0.so *.cc *.hh

make[1]: Выход из каталога `/home/boris/moxadev/ksa/moxa/Watchdog/src'

Using object specifications from /home/boris/moxadev/ksa/moxa/Watchdog/idl/Watchdog.xml

make[1]: Вход в каталог `/home/boris/moxadev/ksa/moxa/Watchdog/src'

 

arm-linux-g++ -fpic -I/usr/include/ksa -I/usr/include/ksa/modules -I/usr/include/ksa/modules/moxa -I./ -c WatchdogFactory.cc

arm-linux-g++ -fpic -I/usr/include/ksa -I/usr/include/ksa/modules -I/usr/include/ksa/modules/moxa -I./ -c WatchdogBase.cc

arm-linux-g++ -fpic -I/usr/include/ksa -I/usr/include/ksa/modules -I/usr/include/ksa/modules/moxa -I./ -c Watchdog.cpp

arm-linux-gcc -shared -L /usr/lib/ksa/ -L /usr/lib/ksa/modules -lKSA -L. -lmoxalib WatchdogFactory.o WatchdogBase.o Watchdog.o -o libmoxa_Watchdog_1_0.so

 

cp libmoxa_Watchdog_1_0.so /usr/lib/ksa/modules

sudo mkdir -p /usr/include/ksa/modules/moxa

sudo chmod a+w /usr/include/ksa/modules/moxa

cp *.hpp /usr/include/ksa/modules/moxa

make[1]: Выход из каталога `/home/boris/moxadev/ksa/moxa/Watchdog/src'

Link to comment

Ндя... видимо никто не пользовал watchdog в более-менее серьезных промышленных проектах...

Админы: - дайте динамическую libmoxalib.so - кстати libmoxa.so - имхо, более корректное название для библиотеки.

Link to comment

Как раз недавно я боролся с фирменной реализацией функций по работе с watchdog из библиотеки moxalib для моего контроллера. Контроллер у меня явно не такой как у вас (UX-7112-LX, uClinux, не поддерживает .so). Обращался непосредственно в поддержку Moxa. Представитель фирмы поделился следующими ссылками:

 

Библиотека

Документация по ней

 

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

 

Единственная проблема - библиотека потребовала обработки напильником :) Во-первых, функция запуска таймера всегда возвращала ошибку, так как использовала неверное имя устройства (было "/dev/swtd", а надо было "/dev/watchdog"). Во-вторых, в makefile не были прописаны необходимые параметры компилятора, в результате библиотека была в принципе неработоспособна. Впрочем, возможно, с вашим контроллером все будет работать сразу.

Edited by MuadDib
Link to comment
  • 4 months later...

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

#!/bin/bash

 

/var/sd/bin/my_soft_start_command 1>/dev/null 2>&1 # - тут имеем блокировку терминала пока прога не вылетит

reboot # - тут ребутим зверька

 

#profit

 

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

 

Большое спасибо сапорту форума за "активное" участие в теме.

З.Ы. - эта убогая реализация watchdog - единственное, что мне в Moxa-UC7112+ не нравится. В остальном твердая 4+.

Link to comment
  • 2 weeks later...

Да, каюсь и прошу прощения.

К сожалению, у нас нет в саппорте практикующих программистов. И многие наши заказчики, разрабатывающие на компьютерах законченные программно-аппаратные решения, сами "дадут нам фору".

Спасибо, что пишете и предлагаете решения! Очень хочется, чтобы форум реально работал как форум, обмен мнениями, а не просто "вопрос-ответ" по техподдержке. В свою очередь, постараемся помогать Вам эффективнее!

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...