Перейти к содержимому


Фото

Не могу включить cerdisp/cerhost в CE6.0


  • Чтобы отвечать, сперва войдите на форум
9 ответов в теме

#1 knn

knn

    Newbie

  • Members
  • Фишка
  • 16 Сообщений:

Опубликовано 11.07.2013 - 22:42

Собираю образ для Vortex VDX-6354, вин CE6.0, MSVS2005, Platform Builder R3.

Плату пингую, на ftp захожу.

Переписываю cerdisp2.exe в плату, запускаю, около часов появляется иконка. На писишке запускаю cerhost.exe v3.0. Пытаюсь подключиться- нет соединения.

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

Начинаю курить интернеты,

в "progect.reg" вставляю 

#include "C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\CERDISP\CERDRV\cerdrv.reg"

в "project.bib" в абзац FILES вставляю

; CERDISP
ddi_cer.dll $(_FLATRELEASEDIR)\ddi_cer.dll NK SHK

что конкретно значат NK SHK я пока не знаю, но в интернетах пишут что так должно быть

Проверяю файл "reginit.ini", там есть строки из "cerdrv.reg"

 

[HKEY_LOCAL_MACHINE\System\GDI\Drivers]
"Display"="ddi_cer.dll"

[HKEY_LOCAL_MACHINE\Drivers\Display\DDI_CER]
"Refresh" = dword:64 ; 100ms
"Update" = dword:0 ; 0==>line by line, other==>whone screen
"Check" = dword:0 ; 0==>sum, other==>crc
"CxScreen" = dword:280 ; 640 width
"CyScreen" = dword:1E0 ; 480 height
"Bpp" = dword:8 ; 8bit
"NoServer" = dword:0 ; 0==>start server, other==>no server at all

Вроде всё есть, запускаю - на диске в папке с приложениями не появляется файл cerdisp2.exe или cerdisp.exe, переписываю вручную через ftp, запускаю- и опять та-же исторя.

 

Может че не так делаю?Это первый опыт создания образа, до этого работал с готовым от Beckhoff CE5.0, там сразу после загрузки появлялась иконка рядом с часами и через cerhost.exe v2.04 без проблем выходил на удаленный рабочий стол.

 

Может я не тот cerdisp2.exe записываю? Мой из пакета WindowsMobilePowerToys, но он для CE4.0. Нашел просто cerdisp.exe он вообще не запускается на CE6.0

Прикрепленные файлы:

  • Прикрепленный файл  1.jpg   58,97 Кб   7 раз скачано
  • Прикрепленный файл  2.jpg   47,38 Кб   7 раз скачано
  • Прикрепленный файл  3.jpg   72,07 Кб   5 раз скачано


#2 Pavel Belevsky

Pavel Belevsky

    Advanced Member

  • VIP Members
  • ФишкаФишкаФишка
  • 2 795 Сообщений:
  • Web Blog:http://msembedded.ru/archives/author/pavel-belevsky

Опубликовано 12.07.2013 - 09:57

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

Павел Белевский
Ведущий специалист отдела исследований и разработок
Кварта Технологии


#3 Shust

Shust

    Advanced Member

  • Members
  • ФишкаФишкаФишка
  • 410 Сообщений:
  • МестоположениеMoscow

Опубликовано 12.07.2013 - 10:04

1. Чтобы вкючить ddi_cer.dll в образ достаточно определить переменную окружения BSP_DISPLAY_CER (VS2005: project -> properties (ALT+F7) -> configuration properties -> environment Но делать include cerdrv.reg всё равно придется, т.к. в common.reg под BSP_DISPLAY_CER включается не весь реестр

 

2. Проблема скорее в том, что вы пытаетесь в секцию FILES добавить модуль с свойствами SHK (system, hidden, kernel). "Kernel" флаг доступен только для модулей из секции MODULES. В общем, сделайте п.1 и проблема п.2 отпадет.


Изменено: Shust, 12.07.2013 - 10:05


#4 knn

knn

    Newbie

  • Members
  • Фишка
  • 16 Сообщений:

Опубликовано 12.07.2013 - 17:30

Дело было не в бобине. Файл cerdisp.exe я искал на диске до компиляции, а он появился после, в папке релиза, и какраз нужной версии. Запустил- работает. Флаги SHK не мешают.

Но появилась другая проблема- не могу добавить cerdisp.exe в образ и сделать автозагрузку. Опять обратился к интернетам, в частности к даташиту DM&P Vortex86 Series Software Programming Reference вот что они говорят делать

1.Перенес файл cerdisp.exe в папку пректа <ProjectName>\Wince600\ICOP_VDX6354_60B_x86\OAK\files\

2.Добавил в раздел FILES файла Project.bib  строку
   cerdisp.exe $(_FLATRELEASEDIR)\cerdisp.exe NK S

3.Добавил в Project.reg ключ

   [HKEY_LOCAL_MACHINE\init]

   "Launch40"="Cerdisp.exe -c"
   "Depend40"=hex:14,00

 

И опять ничего, файла в образе нет, соответственно он и не запусккается. Почитал в МСДНе  http://msdn.microsof...bedded.60).aspx про ключ "Depend", пишут что он не обязательный если приложение единственное, я его и вписывал и не вписывал- результат тот-же.

 

И еще вопрос- кто нибудь анализировал потребление ресурсов процессом cerdisp.exe в то время когда он активен но никто не обращается к дивайсу через cerhost.exe ? Думаю стоит ли его оставлять в готовом релизе, дивайс будет управлять станком и удаленный дисплей вряд ли будет использоваться часто, можно тумблер предусмотреть и запускать cerdisp.exe из рабочей программы в случе необходимости. Рабочая программа это обмен по паре COM портов и перерисовка графиков на экране 10 раз в секунду, графика скажем так не самая легкая, атом 1.6 на CE5.0 в подобной задаче работал на пределе, правда там в образ было много чего включено а тут образ минимален.



#5 Pavel Belevsky

Pavel Belevsky

    Advanced Member

  • VIP Members
  • ФишкаФишкаФишка
  • 2 795 Сообщений:
  • Web Blog:http://msembedded.ru/archives/author/pavel-belevsky

Опубликовано 12.07.2013 - 17:51

1. CERDisp не рекомендуется использовать в production

2. dd_cer заменяет драйвер видеоконтроллера, поэтому на экране устройства Вы ничего не увидите. В Вашем случае возможно, что настройки из platform.reg переопределяют Ваши настройки в project.reg, о чем я писал ранее, и поэтому, возможно, драйвер ddi_cer не работает


Павел Белевский
Ведущий специалист отдела исследований и разработок
Кварта Технологии


#6 knn

knn

    Newbie

  • Members
  • Фишка
  • 16 Сообщений:

Опубликовано 12.07.2013 - 18:47

1.Понял, будет значит на шкафу волшебный тумблер.

2.Драйвер dd_cer какраз таки работает, если я правильно понимаю суть его работы, тоесть связь между хостом и удаленнм дисплеем уже есть, всё вижу и всем управляю.

 

Но что-то 100% переопределяется, так как билд выдает 20 предупреждений, одно из которых таки

Warning: Found duplicate entry 'cerdisp.exe C:\Vortex\VortexV3\RelDir\ICOP_VDX6354_60B_x86_Release\cerdisp.exe NK 00000805' ... skipping

Попробую убрать строку из bib, может получится



#7 knn

knn

    Newbie

  • Members
  • Фишка
  • 16 Сообщений:

Опубликовано 12.07.2013 - 23:08

Предупреждение исчезло, но cerdisp.exe как отсуствовал в образе так и отсуствует



#8 knn

knn

    Newbie

  • Members
  • Фишка
  • 16 Сообщений:

Опубликовано 13.07.2013 - 22:56

Решил проблему через заднее крыльцо.

Смонтировал образ с опцией Mount file system as root.

В корне создал папку MyProject с файлами cerdisp.exe и MyProject.exe

В папке Windows\StartUp создал файлы 

cerdisp.lnk внутри него строка

  25#\MyProject\Cerdisp.exe -c

MyProject.lnk внутри него строка

  24#\MyProject\MyProject.exe

 

Теперь при старте запускается и удаленный монитор и рабочая программа.

Это решение, но оно не совсем правильное.

По сему вопрос остается открытым- как добавить cerdisp.exe в образ так, чтоб он запускался из реестра, тоесть с возможностью запуска через таймаут или по признаку запущенных зависимых процессов.



#9 Pavel Belevsky

Pavel Belevsky

    Advanced Member

  • VIP Members
  • ФишкаФишкаФишка
  • 2 795 Сообщений:
  • Web Blog:http://msembedded.ru/archives/author/pavel-belevsky

Опубликовано 14.07.2013 - 22:48

При запуске CERDisp необходимо передавать аргумент "-c", что нельзя сделать через стандартный механизм HKLM\Init. Для этого есть вариант с сервисом, описанный здесь: http://blogs.msdn.co.../03/274661.aspx


Павел Белевский
Ведущий специалист отдела исследований и разработок
Кварта Технологии


#10 fil1111

fil1111

    Member

  • Members
  • ФишкаФишка
  • 118 Сообщений:
  • МестоположениеМосква

Опубликовано 16.07.2013 - 10:24

При запуске CERDisp необходимо передавать аргумент "-c", что нельзя сделать через стандартный механизм HKLM\Init. Для этого есть вариант с сервисом, описанный здесь: http://blogs.msdn.co.../03/274661.aspx

Тогда уж готовый AutoLaunch лучше использовать. С уже настроенными cerdisp и corecon.






0 пользователей читают эту тему

0 members, 0 guests, 0 anonymous users