ЗАО «ЗЭО»

Техническая поддержка пользователей => Windows CE, EBoot => Тема начата: bva_rzn от 13 Декабря, 2011, 15:21:26

Название: GPIO
Отправлено: bva_rzn от 13 Декабря, 2011, 15:21:26
Добрый день.

Имеем Тион-Про270, Windows CE 6.0
Разрабатываемое устройство должно через заданные интервалы времени считывать информацию с несколькох датчиков и её обрабатывать. В связи с этим возникло несколько вопросов:
1) какое время реакции системы на прерывание по линии gpio (пользуемся образом с сайта)?
2) есть ли в системе таймеры, которые можно использовать для задания временных интервалов?
3) подаю на GPIO9 последовательность так-х импульсов с периодом 10 мс. Запустил демонстрационный пример GPIO_Test.
В отладчике вижу, что DeviceIoControl с GPIO_GET_STATE работает, состояние линии меняется, но при использовании DeviceIoControl  с GPIO_GET_EDGE_DETECT_STATUS в буфере OutBuf постоянно нули. В чём может быть проблема?
Название: Re: GPIO
Отправлено: Danila от 14 Декабря, 2011, 15:30:35
Добрый день.

Добрый день.

Имеем Тион-Про270, Windows CE 6.0
Разрабатываемое устройство должно через заданные интервалы времени считывать информацию с несколькох датчиков и её обрабатывать. В связи с этим возникло несколько вопросов:
1) какое время реакции системы на прерывание по линии gpio (пользуемся образом с сайта)?

Для того, чтобы отслеживать прерывания GPIO, нужно писать драйвер, реализующий данную функцию. Время реакции будет зависеть от того, как написае драйвер.

Цитировать
2) есть ли в системе таймеры, которые можно использовать для задания временных интервалов?

Есть аппаратные таймеры. Для их применения также необходимо разработать драйвер.
Есть программные. Доступ к нам возможен через API WinCE.

Цитировать

3) подаю на GPIO9 последовательность так-х импульсов с периодом 10 мс. Запустил демонстрационный пример GPIO_Test.
В отладчике вижу, что DeviceIoControl с GPIO_GET_STATE работает, состояние линии меняется, но при использовании DeviceIoControl  с GPIO_GET_EDGE_DETECT_STATUS в буфере OutBuf постоянно нули. В чём может быть проблема?

При вызове DeviceIoControl с параметром GPIO_GET_EDGE_DETECT_STATUS возвращается либо TRUE, либо FALSE, в зависимости от текущих настроек порта.
Название: Re: GPIO
Отправлено: Petr.Andr от 16 Августа, 2012, 22:44:42
Здравствуйте.
Пытался установить драйвер GPIO, скаченный с Вашего сайта. Используем Тион+Сириус Win CE5.0  В реестре создал запись:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIO]
"dll"="\NORFlash\gpio_ep9315.dll"
"Prefix"="GIO"
"Order"=dword:4
Файл драйвера записал на sd карту в созданную папку NORFlash. При попытке обратиться к драйверу из нашего приложения:
 IntPtr file = CreateFile("GIO1:", access, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
получаю исключение. На Вашем сайте в разделе wiki написано: "Драйвер должен быть записан во внутренний флеш-диск, путь к нему должен быть такой, как в указанных выше ключах реестра." Sd карта это и есть NORFlash или нет? Если нет, тогда расскажите пожалуйста алгоритм записи файла драйвера в NORFlash. Спасибо.
 
Название: Re: GPIO
Отправлено: Petr.Andr от 17 Августа, 2012, 22:04:55
После добавления в реестр информации о драйвере, должна ли появляться запись о нем в HKEY_LOCAL_MACHINE\Drivers\Active ? Каковы могут быть причины того, что запись о драйвере не появляется?
Название: Re: GPIO
Отправлено: Danila от 21 Августа, 2012, 14:22:35
Добрый день.
Драйвер написан для WinCE 6.0. В 5.0 он, скорее всего, не заработает.
Название: Re: GPIO
Отправлено: Petr.Andr от 21 Августа, 2012, 23:37:33
Драйвер написан для WinCE 6.0. В 5.0 он, скорее всего, не заработает.
Это связано с особенностями образа win ce 5.0?
Вроде при написании драйверов нигде не указывается версия win ce (отличия есть для NT или win 7), или я ошибаюсь?
Еще просьба уточнить sd карта это и есть NORFlash или нет?
Название: Re: GPIO
Отправлено: Danila от 22 Августа, 2012, 13:12:01
У WinCE 5 и WinCE 6 сильно отличается архитектура. Функции, вызываемые из драйвера, не реализованы в ОС WinCE 5.0.
Для работы с GPIO Вам нужно работать напрямую (писать и читать) с регистрами процессора.
NorFlash - это не SD-карта, а внутренняя Flash.
Название: Re: GPIO
Отправлено: Petr.Andr от 22 Августа, 2012, 15:18:35
У WinCE 5 и WinCE 6 сильно отличается архитектура. Функции, вызываемые из драйвера, не реализованы в ОС WinCE 5.0.
Для работы с GPIO Вам нужно работать напрямую (писать и читать) с регистрами процессора.
NorFlash - это не SD-карта, а внутренняя Flash.
Спасибо за ответ.
Если мы прошьем в тион образ win ce 6.0, как осуществить запись Вашего драйвера GPIO в NorFlash?
P.S. судя по описанию на Вашем сайте, win ce 6.0 прошить в тион (с платой сириус) не получиться?
Название: Re: GPIO
Отправлено: Danila от 22 Августа, 2012, 15:25:27
В WinCE 6.0 драйвер GPIO уже включен.
Для Тиона WinCE 6 мы не порторовали.