boris_r_v Posted December 8, 2011 Share Posted December 8, 2011 Доброго времени суток, форумчане. В контроллере надо, поиметь работу с 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
boris_r_v Posted December 12, 2011 Author Share Posted December 12, 2011 Ндя... видимо никто не пользовал watchdog в более-менее серьезных промышленных проектах... Админы: - дайте динамическую libmoxalib.so - кстати libmoxa.so - имхо, более корректное название для библиотеки. Link to comment
MuadDib Posted December 14, 2011 Share Posted December 14, 2011 (edited) Как раз недавно я боролся с фирменной реализацией функций по работе с watchdog из библиотеки moxalib для моего контроллера. Контроллер у меня явно не такой как у вас (UX-7112-LX, uClinux, не поддерживает .so). Обращался непосредственно в поддержку Moxa. Представитель фирмы поделился следующими ссылками: Библиотека Документация по ней Не знаю, какой у Вас контроллер, но судя по makefile, данная библиотека поддерживает множество моделей, вероятно ваш контроллер там тоже есть. Библиотека поставляется в виде исходного кода, так что можете слинковать его как угодно душе. Единственная проблема - библиотека потребовала обработки напильником Во-первых, функция запуска таймера всегда возвращала ошибку, так как использовала неверное имя устройства (было "/dev/swtd", а надо было "/dev/watchdog"). Во-вторых, в makefile не были прописаны необходимые параметры компилятора, в результате библиотека была в принципе неработоспособна. Впрочем, возможно, с вашим контроллером все будет работать сразу. Edited December 14, 2011 by MuadDib Link to comment
boris_r_v Posted December 19, 2011 Author Share Posted December 19, 2011 Да большое спасибо за ответ и сссылки. Действительно мой зверек там есть. Link to comment
boris_r_v Posted May 5, 2012 Author Share Posted May 5, 2012 Решением проблемы при перезагрузке зверька когда основная софтинка сдохнет, стал примерно такой скрипт #!/bin/bash /var/sd/bin/my_soft_start_command 1>/dev/null 2>&1 # - тут имеем блокировку терминала пока прога не вылетит reboot # - тут ребутим зверька #profit Встроенный сторожевой пес при смерти софтины которая его обнуляла начинает обнуляться ядром linux - и не хочет ребутить зверька. А срабатывает только тогда когда ядро повесишь(уже не помню как я его повесил), но делал это намеренно - проверить, когда это уродский таймер перезагрузит контроллер. Большое спасибо сапорту форума за "активное" участие в теме. З.Ы. - эта убогая реализация watchdog - единственное, что мне в Moxa-UC7112+ не нравится. В остальном твердая 4+. Link to comment
Komantsev Posted May 13, 2012 Share Posted May 13, 2012 Да, каюсь и прошу прощения. К сожалению, у нас нет в саппорте практикующих программистов. И многие наши заказчики, разрабатывающие на компьютерах законченные программно-аппаратные решения, сами "дадут нам фору". Спасибо, что пишете и предлагаете решения! Очень хочется, чтобы форум реально работал как форум, обмен мнениями, а не просто "вопрос-ответ" по техподдержке. В свою очередь, постараемся помогать Вам эффективнее! Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now