Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Проблемы с программой в ICP DAS iPAC-8000E

 Ответить Ответить
Автор
Сообщение
raspopov Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 23 Октябрь 2011
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - raspopov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Проблемы с программой в ICP DAS iPAC-8000E
    Опубликовано: 07 Февраль 2013 18:43
Программа не работает при включении питания iPAC-8000 (режим "Run"). На терминал выводится строчка "[Unknown code]CS:IP=:= SS:SP=: DS= ES", после чего контроллер перезагружается и всё повторяется (цикл примерно секунда). Что может быть?

Факты:

1. Другие программы автостартуют без проблем.
2. Программа нормально запускается вручную (контроллер в режиме "Init") командой "run"/"runr" с терминала и прекрасно работает сутками.
3. Программа автоматически запускается нормально, если контроллер, без выключения питания, переключить в режим "Run" и перегрузить командой "reset" с терминала.
4. На аналогичном контроллере, купленном в другое время, всё точно так же не работает.
5. Пробовали другой блок питания.
6. Пробовали прошивать несколько разных прошивок. Сейчас стоит: "ICP_DAS MiniOS7 for iPAC-8000E(80MHz) Ver. 2.04 build 014,Nov 08 2011 14:29:29 OS id=25".
7. Пробовали несколько разных версий системных библиотек. Сейчас: "8000A.lib version: 2.16, Date: Jun 21 2010" и "tcp2dm32.lib version: 2.01, Date: Sep 01 2010".
8. Пробовали несколько разных компиляторов: Turbo C++ 3.0, Borland C++ 3.1 и Borland C++ 5.0 с разными настройками проекта (по инструкции ICP DAS тоже).
9. Программа не успевает выполнить "int main()", похоже падает в CRT или даже раньше.
10. Программа весит 95Кб (секция кода больше 64Кб).
11. "Autoexec.bat" выполняется нормально, также пробовали вставлять туда команды которые работают долго, типа, "diag".
12. И "diag" показывает, что причина перезагрузки "RESET".

Наверх
AlexM Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 11 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 392
Свойства публикации Свойства публикации   Ответить, цитируя автора - AlexM Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Февраль 2013 08:24
Может "сторожевую собаку" забываете из приложения сбрасывать, вот она вам и перезагружает раз в секунду Smile
Наверх
raspopov Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 23 Октябрь 2011
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - raspopov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Февраль 2013 16:59
Приложение не запускается вообще см. п.9, и если watchdog срабатывает, то причина будет "WDT" в п.12.

P.S. Проблема была найдена, как тока перестану фигеть от неё, расскажу, что было...
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Февраль 2013 06:53
Поделитесь, пожалуйста, решением проблемы.
Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
raspopov Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 23 Октябрь 2011
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - raspopov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Февраль 2013 18:11
Завешивал контроллер код стандартной консольной библиотеки <conio.h>, т.к. из неё использовались функции kbhit() и getch(), который прекрасно работает абсолютно всегда, за исключением холодного автозапуска. Похоже, встроенная программа-монитор контроллера что-то настраивает в нём, и библиотека в дальнейшем нормально инициализируется.

Решением было изменение регистра двух букв, а именно использование прямых аналогов: Kbhit() и Getch() из <8000A.h> (первые буквы заглавные), после этого <conio.h> перестала линковаться с программой, автозапуск заработал, а программа даже похудела на 10 Кб.
Наверх
Semelenov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 15 Октябрь 2003
Категория: Belarus
Online Status: Offline
Публикации: 141
Свойства публикации Свойства публикации   Ответить, цитируя автора - Semelenov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Февраль 2013 12:52
не знаю как у Вас - у меня в промкомпах на процессоре RDC8k это решилось принудельным отключением сопроцессора
Test8086 := 0;

может и у вас нечто такое же...
Наверх
raspopov Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 23 Октябрь 2011
Online Status: Offline
Публикации: 5
Свойства публикации Свойства публикации   Ответить, цитируя автора - raspopov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Февраль 2013 18:24
Не понимаю, что вы имеете в виду. Но сопроцессора у данного контроллера нет в принципе и в опциях компилятора это указывается.
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz