Карта памяти и спящий режим

zuba4 at 4.12.2008, 22:49

Согласен, сударь, не прав.
sdhc.777.cab заменяет 2 dll'ки : sdbus.dll и sdmemory.dll
Но, все-таки, основное его назначение - пдружить sdhc и телефон.

Репа:   - 2 + PM   Reply


F@ntomas at 4.12.2008, 23:07

Цитата(zuba4 @ 4.12.2008, 19:41)
Сначала файлы раздобыть надо, а потом уже буду разбираться что и куда относится. )))

ВНИМАНИЕ !!!
Самое главное, для тех, кто добудет файлы, написать сюда с какого конкретного зверя вы их сняли, какова его ситуация с картами, и проводились ли хозяином танцы с бубном вокруг карты. Если да, то желательно их описать... Спасибо ))


Думаю, с этими вышеуказанными dll-ками трудностей не будет. Их можно достать из того же cab-файла с патчем пРи помощи обычного WinRAR. Правда, они там называются немного коряво, надо переименовать. Если угодно, уважаемый zuba4, могу выслать Вам эти файлы. Напишите в аську или в личку, куда слать. Моя грустная история выше в этой ветке, большей частью я пользуюсь родным eten shdc_patch2 из 439й (Енот М700) прошивки, но пробовал все (или почти все) найденные в форуме патчи с нулевым результатом.
Если Вы собираетесь попытаться справиться с этой спящей картой, то готов оказать посильную помощь. Добавлю, что, возможно, разбираться придется не только с драйверами SD, но и с модулями, работяющими непосредственно с железом.

2all:
вот еще по теме "читал компьютер, много думал"
ветка реестра HKLM\System\CurrentControlSet\Control\Power\State по представЛениям Microsoft позволяет индивидуально задать режим питания устройства длЯ каждого режима системы.
Я во вложенных ветках Suspend и Resuming создавал значения
dsk1:DWORD = 0
sdh1:DWORD = 0
sdc1:DWORD = 0
0 - это режим питания Always On.
Моему Еноту это не помогло. Единственный эффект - программы после спячки отваливались мгновенно, я даже экрана не успевал коснуться. При этом даже не выдавалось сообщение об ошиБке,

Репа:   - 4 + PM   Reply


zuba4 at 5.12.2008, 0:30

Ребят, я хочу решить эту проблему, и готов тратить на это силы и свободное время. Но ковырять драйверы я не умею. Это умеет всемогущий Cotulla. Написать драйвер заново я не смогу - тоже не умею, хотя програмить умею.

Самое важное сейчас - найти причину, по которой карта не работает. Если это конструктивная аппаратная особенность Eten'ов, то можно успокоиться. Хотя я глубоко уверен, что проблема софтовая.

У меня давно летает идея написать маленькую резидентную программу, которая будет опрашивать карту памяти, тем самым не давая ей отключиться. Опытным путем модно поискать период опроса. Но как я уже упомянул - программы для WM я писать не умею ))

P.S. где почитать про Suspend ? Что происходит со зверем при выключении ? Как сильно будет жраться батарея, если вместо выключения я просто буду оттлючать экран (его подсветку) ? - в отетах на эти вопросы кроется решение проблемы с картой памяти.....

Вот нашел в 2 часа ночи по Москве интересную статью, но не осилил - очень спать хочется...
_http://msdn.microsoft.com/en-us/library/ms836806.aspx

Репа:   - 2 + PM   Reply


Cerber_us at 5.12.2008, 7:48

Цитата(zuba4 @ 5.12.2008, 0:30)
Ребят, я хочу решить эту проблему, и готов тратить на это силы и свободное время. Но ковырять драйверы я не умею. Это умеет всемогущий Cotulla. Написать драйвер заново я не смогу - тоже не умею, хотя програмить умею.

Я тоже готов.

Цитата
Самое важное сейчас - найти причину, по которой карта не работает. Если это конструктивная аппаратная особенность Eten'ов, то можно успокоиться. Хотя я глубоко уверен, что проблема софтовая.

Полостью согласен.

Цитата
У меня давно летает идея написать маленькую резидентную программу, которая будет опрашивать карту памяти, тем самым не давая ей отключиться. Опытным путем модно поискать период опроса. Но как я уже упомянул - программы для WM я писать не умею ))

Боюсь эта идея обречена на провал. Карта при выключении устройства отключается мгновенно - никакой программой вы ее не заставите держаться на плаву.
Решение проблемы с картой мне видится в корректном выходе из спящего режима.

Цитата
P.S. где почитать про Suspend ? Что происходит со зверем при выключении ? Как сильно будет жраться батарея, если вместо выключения я просто буду оттлючать экран (его подсветку) ? - в отетах на эти вопросы кроется решение проблемы с картой памяти.....

По идее будет кушать прилично.
У меня есть еще более развитое решение проблемы. Если будет время - проделаю и отпишу.

Репа:   - -1 + PM   Reply


injener at 5.12.2008, 16:27

Цитата(RU_BASik @ 17.11.2008, 22:52)
Why do things on SD stop working after a suspend/resume?

When a PocketPC suspends, it powers off most of the hardware in the system, including the part of the SD slot that tells whether or not a card is there. While the system is suspended, you could potentially eject the card and stick a different one in. If you did that, any apps that have files open on the card would get very confused. This almost never happens, but it's something we need to guard against. So, when we power the system back on, we check to see if there's a card there. If it is, we check with it to see if it's the same one as was there before. If it doesn't respond, or responds differently than we expect, we unload it and close any files that were open before.

The trouble is, we can't wait forever for the card to respond to us. There are programs trying to communicate with that card, and we're stalling them. So we've set an amount of time that we'll wait for the card before unloading it (we call it the "PnPUnloadDelay)". Importantly, some phones can power on their SD system quickly and some take more time. Because of this, the OEM chooses the correct PnPUnloadDelay for his hardware, and we rely on his setting. If something happens that makes the SD card not respond in the time specified by the PnPUnloadDelay, we assume it's a new card.

A lot of things could cause this to happen. The card you have might be a lot slower than the OEM expected you to use. This is a place where buying a faster card can help. Or some application might be running out of control and causing the system to run slower than normal, making everything take longer. Or, maybe, the OEM made a mistake and set a delay that's just too low.

The PnPUnloadDelay is shown in the registry, but unfortunately changing the registry doesn't affect the value. Only the OEM can change the value.


А ВОТ И ПЕРЕВОД

Почему делают вещи на SD прекращают работать после приостанавливания/возобновление? Когда PocketPC приостанавливает, он двигается на большой скорости от большей части аппаратных средств в системе, включая часть щели SD, которая говорит, является ли карта там. В то время как система приостановлена, Вы могли потенциально изгнать карту и всунуть различный. Если бы Вы сделали это, то любые приложения, у которых есть файлы, открытые на карте, стали бы очень запутанными. Это почти никогда не случается, но это - кое-что, против чего мы должны принять меры. Так, когда мы приводим систему в действие назад на, мы проверяем, чтобы видеть, есть ли карта там. Если это, мы сверяемся с этим, чтобы видеть, является ли это то же самое один, как был там прежде. Если это не отвечает, или отвечает по-другому, чем мы ожидаем, мы разгружаем это и закрываем любые файлы, которые были открыты прежде. Проблема, мы не можем ждать навсегда карты, чтобы ответить на нас. Есть программы, пытающиеся общаться с той картой, и мы останавливаем их. Таким образом мы установили количество времени, что мы будем ждать карты прежде, чем разгрузить это (мы называем это "PnPUnloadDelay)". Важно, некоторые телефоны могут двинуться на большой скорости на их системе SD быстро, и некоторые занимают больше времени. Из-за этого OEM выбирает правильный PnPUnloadDelay для его аппаратных средств, и мы полагаемся на его урегулирование. Если кое-что случается, что это заставляет карту SD не ответить во время, определенное PnPUnloadDelay, мы предполагаем, что это - новая карта. Много вещей могло заставить это случаться. Карта, которую Вы имеете, могла бы быть намного медленнее, чем OEM ожидал, что Вы будете использовать. Это - место, где покупка более быстрой карты может помочь. Или некоторое заявление могло бы исчерпывать контроль и заставлять систему бежать медленнее чем нормальный, заставляя все занять больше времени. Или, возможно, OEM сделал ошибку и установил задержку, это только слишком низко. PnPUnloadDelay показывают в регистрации, но к сожалению изменение регистрации не затрагивает ценность. Только OEM может изменить ценность.

ПРОМТ ваще странно переводит smile.gif

Репа:   - 14 + PM   Reply


Cerber_us at 5.12.2008, 23:46

injener,5.12.2008, 16:27
Суть в том что задержка установлена в прошивке производителем и юзер посредствам реестра ее изменить не может. Поэтому думаю нужно ковырять прошивку.

Репа:   - -1 + PM   Reply


zuba4 at 6.12.2008, 15:29

Пробовал юзать тело с включенным плеером S2P, он не дает коммуникатору выключиться. Результат неутишительный. За каждый прошедший час уходило по 5% заряда, то есть получается, что 100% хватет максимум на 20 часов работы. И это при условии, что я не звонил, не писал смс и не использовал вообще.

Вчера "срезал" реестр от HTC Touch Cruise. У него такой проблемы нет. Дрова "срезать" не удалось - они просто не копируются. Видать это просто ссылки на файлы.

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

P.S. кроме M700, X600, X650 - на каких еще телефонах присутствует эта проблема ?
Есть ли в модельном ряде коммуникаторы, лишенные этого бича ?

Репа:   - 2 + PM   Reply


ods75 at 6.12.2008, 16:18

Цитата(zuba4 @ 6.12.2008, 18:29)
Пробовал юзать тело с включенным плеером S2P, он не дает коммуникатору выключиться. Результат неутишительный. За каждый прошедший час уходило по 5% заряда, то есть получается, что 100% хватет максимум на 20 часов работы. И это при условии, что я не звонил, не писал смс и не использовал вообще.

Вчера "срезал" реестр от HTC Touch Cruise. У него такой проблемы нет. Дрова "срезать" не удалось - они просто не копируются. Видать это просто ссылки на файлы.

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

P.S. кроме M700, X600, X650 - на каких еще телефонах присутствует эта проблема ?
Есть ли в модельном ряде коммуникаторы, лишенные этого бича ?

Проверял лично на x500 x610 та же проблема. В техподдержке ответили что на ВСЕХ коммуникаторах Eten при уходе в спящий режим отключаеться питание с карты памяти.

Репа:   - 0 + PM   Reply


Cerber_us at 6.12.2008, 16:51

ods75,6.12.2008, 16:18
А они не ответили почему это происходит и зачем они это сделали?

Репа:   - -1 + PM   Reply


F@ntomas at 7.12.2008, 1:39

Провел небольшой эксперимент, не сильно претендующий на научную чистоту. Программным путем устанавливать драйверу карты памяти режим питания. При установке ЛЮБОГО режима, поддерживаемого драйвером, карта продолжала работать, как ни в чем не бывало. Программы, запущенные с нее не вылетали. При этом драйвер отвечал, что находится именно в том режиме, который ему был предписан.
Предварительный вывод: возможно, с драйверами карты все ОК, а проблема в других модулях системы, отвечающих за корректное пробуждение Енота от спячки.

P.S.: также выяснилось, что драйвер карты не поддерживает режим полного отключеня питания.

Репа:   - 4 + PM   Reply


zuba4 at 7.12.2008, 17:21

Цитата(F@ntomas @ 7.12.2008, 1:39)
Провел небольшой эксперимент, не сильно претендующий на научную чистоту. Программным путем устанавливать драйверу карты памяти режим питания. При установке ЛЮБОГО режима, поддерживаемого драйвером, карта продолжала работать, как ни в чем не бывало. Программы, запущенные с нее не вылетали. При этом драйвер отвечал, что находится именно в том режиме, который ему был предписан.
Предварительный вывод: возможно, с драйверами карты все ОК, а проблема в других модулях системы, отвечающих за корректное пробуждение Енота от спячки..


А можно выложить эту программу сюда, чтобы мы тоже попробовали ? Или результат такой же, как у меня - быстрая разрядка АКБ ?
И еще. Если вы умеете писать программы, то, пожалуйста, напишите программу, которая будет писать в лог-файл некоторую информацию о карте. Меня интересует питание, желательно в миливольтах (если есть такой параметр), режим работы драйвера, свободное место на карте (или ее полный объем) - необязательно.
Программа должна быть запущена из основной памяти, и дописывать в лог-файл каждую секунду. Файл желательно разместить в папке с программой.
По возможности вынесите файл настроек в ххххх.ini. Туда: частоту записи в файл, еще что-нибудь (но это потом).
Важно, чтобы была возможность выхода из запущенной программы, или же кнопки START, STOP.
Надеюсь, что я понятно объяснил идею.

Цитата(F@ntomas @ 7.12.2008, 1:39)
P.S.: также выяснилось, что драйвер карты не поддерживает режим полного отключения питания.


Так и должно быть, во всяком случае это логично.

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

Погуглил и нашел интересный faq:
Код
[b]Safe Soft Reset for Pocket PCs
[/b]
So in order to perform a safe soft reset, press the power button to put the Pocket PC into suspend mode.  Then wait a 5-10 seconds before pressing the reset button to reset the device. When the Pocket PC goes into suspend mode the cache is flushed (i.e. copied from RAM to flash).

[b]Safe Power Off[/b]

If you want to remove the battery of your Pocket PC or Smartphone, you must wait until you power off the device.  When you power off the Pocket PC or Smartphone, the cache is flushed (i.e. copied from RAM to flash).  If you remove the battery while the device is on (i.e. the screen is visible) you may corrupt the internal flash storage on your Pocket PC or Smartphone.


Ссылка на источник: _http://www.pocketpcfaq.com/faqs/5.0/reset.htm
Предварительный вывод: при входе в режим Suspend происходит запись данных из энергозависимой памяти (RAM) в энергоНЕзависимую (ROM, он же flash). А при выходе (Resume) эти данные снова туда записываются. Возможно, что вылет! приложений связан именно с тем, что карта долго определяется (TimeOut 1500) !!

Потом снова погуглил и на мелкомягком форуме нашел тему "What happens when the device goes into suspend mode":
Код
When any app (and NETCF VM/apps too) is running during "suspending" whole device (all peripherals, memory, and finally - CPU), then processor machine code stops working at some point. When device wakes up, then code CONTINUES from exactly that point (in fact, I know, that this is behavior of NETCF VM app at least - it may be handled smartly inside of NETCF CLR but simply - when your .NET code runs and is suspended and then after wakeup - it continues by next IL code, as if nothing special happened ...). In my designs, I am often running "exactly one" embedded application INSTEAD of explorer.exe (there is NO OS shell, my app with some "common runtime" is the shell - "embedded", "kiosk", "lockdown"...) and application continues to work after wakeup - CPU and memory is OK, BUT - some resources which was affected by suspending may require some action after device wakeup to use it WELL again. In fact, IMHO is far better to prepare for "device suspend" AHEAD of time and perform something like "application suspend", based on app timer, before the device suspend occurs "quite" unpredictably (its often too late when OS WANTS to suspend...).


Второй предварительный вывод : теперь Я не понимаю, КАК же китайцы вообще смогли сделать такую глупость, если на WinCE ПО УМОЛЧНИЮ процесс Resume восстанавливает все "сохраненные" данные ??? Это не влияет на питание карты памяти !!

Источник: _https://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1463781&SiteID=1

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

Репа:   - 2 + PM   Reply


F@ntomas at 7.12.2008, 20:00

Цитата(zuba4 @ 7.12.2008, 18:21)
А можно выложить эту программу сюда, чтобы мы тоже попробовали ? Или результат такой же, как у меня - быстрая разрядка АКБ ?


Выложить-то можно (если бы знать, как это сделать). Но толку от того, что другие это попробуют, особого не вижу. Никакой особо быстрой разрядки нет, в том -то и дело, что вообще никакого видимого результата не было, просто карта переключалась (или говорила, что переключалась) в любой ее поддерживаемый драйвером режим. Я, как и до переключения, продолжал работать, просматривал карту через R@#$%Explorer, запускал программы, открывал файлы, а драйвер карты при этом говорил мне, что находится в режиме полного энергосбережения. После suspend/resume драйвер переводился системой в рабочий режим FullOn.

Цитата(zuba4 @ 7.12.2008, 18:21)
Если вы умеете писать программы, то, пожалуйста, напишите программу, которая будет писать в лог-файл некоторую информацию о карте. Меня интересует питание, желательно в миливольтах (если есть такой параметр), режим работы драйвера, свободное место на карте (или ее полный объем) - необязательно.
Программа должна быть запущена из основной памяти, и дописывать в лог-файл каждую секунду. Файл желательно разместить в папке с программой.
По возможности вынесите файл настроек в ххххх.ini. Туда: частоту записи в файл, еще что-нибудь (но это потом).
Важно, чтобы была возможность выхода из запущенной программы, или же кнопки START, STOP.
Надеюсь, что я понятно объяснил идею.


Идею понял, постараюсь что-нибудь подобное написать. Однако, меня терзают смутные сомнения, что программы работают во время отключения питания. Если основная идея в том, чтобы посмотреть таким образом, что происходит с картой во время сна, мне кажется, что так это сделать не выйдет.

Цитата(zuba4 @ 7.12.2008, 18:21)
Второй предварительный вывод : теперь Я не понимаю, КАК же китайцы вообще смогли сделать такую глупость, если на WinCE ПО УМОЛЧНИЮ процесс Resume восстанавливает все "сохраненные" данные ??? Это не влияет на питание карты памяти !!

Источник: _https://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1463781&SiteID=1


Такое впечатление, что китайцы-таки сделали какую-то глупость, но пока я никак не догадаюсь, какую. Что-то связанное именно с 'hibernate' для карты памяти. Даже программы, запущенные из основной памяти, но имеющие открытые файлы на карте, рушатся при попытке продолжить работу с этими файлами после выхода из спячки. Сам пробовал. Причем у меня система не просто возвращала ошибку файловой операции, а именно вылетала с access violation.
Данного безобразия не происходит, если программа открывает файл в основной памяти.
Видимо, с приложениями, запущенными с карты, происходит то же самое - ошибка при попытке чтения файла, отображенного в память, с образом исполняемого модуля. Если кусок кода находился в оперативной памяти при входе в спячку, программа продолжает работать после пробуждения, но как только требуется подгрузить ресурсы (меню, диалоговое окошко) из файла образа или какой-нибудь кусок кода, тут же ошибка. Поэтому небольшие программы после пробуждения продолжают работать еще долго, а большие - почти сразу же вылетают.


Цитата(zuba4 @ 7.12.2008, 18:21)
Третий заключительный вывод: возможно, что на наших аппаратах реализован механизм какого-то полного отключения карты в режиме Suspend. Причиной является, скорее всего, сам драйвер, а точнее - программа, которая им управляет.


И все же не думаю, что виноват режим питания карты. Возможно, дело в неправильно реализованном (или не реализованном) 'hibernate' для карты.

Репа:   - 4 + PM   Reply


zuba4 at 7.12.2008, 20:36

Цитата(F@ntomas @ 7.12.2008, 20:00)
И все же не думаю, что виноват режим питания карты. Возможно, дело в неправильно реализованном (или не реализованном) 'hibernate' для карты.


А я вам скажу - слот карты памяти должен опрашиваться ВСЕГДА. Независимо в каком режиме сейчас находится коммуникатор. Это особенность не Windows Mobile, а конкретного аппарата фирмы Eten

По сути мы тобой (заранее прошу прощения за такую фамильярность, но как ты вы-кать поднадоело, слишком уж оффициально) говорим об одном и том же - некорректное пробуждение. Сколько раз проверял на разных word/excel - при выкл/вкл файлы все файлы с карты памяти сначала изчезают, а потом появляются заново. Интервал "пропадания" составляет примерно 2-3 секунды (видать так настроен опрос).

Вот какая бяка происходит, если в кратце: при нажатии кнопки Power (или при посыле системе команды Suspend) происходит запись RAM во flash. Раньше я думал, что именно на ЭТОМ этапе отваливается карта памяти. Но теперь мне кажется, что именно при Resume (включении тела) происходит некий сброс
карты.
Тут китайцы перестарались....

Все, дальше разводить демогогию не буду, потомучто настало время действовать. Постараюсь найти прошивки от HTC и попросить прошивкокопателей пересобрать нашу прошивку (Лайт желательно) уже с новыми дровами.

Репа:   - 2 + PM   Reply


F@ntomas at 7.12.2008, 22:34

Цитата(zuba4 @ 7.12.2008, 21:36)
слот карты памяти должен опрашиваться ВСЕГДА. Независимо в каком режиме сейчас находится коммуникатор. Это особенность не Windows Mobile, а конкретного аппарата фирмы Eten

Не готов пока согласиться с этим, но и поспорить не могу. Просто не знаю. А зачем ее опрашивать-то, если она все равно отключена и в нерабочем состоянии?

Цитата(zuba4 @ 7.12.2008, 21:36)
По сути мы тобой (заранее прошу прощения за такую фамильярность, но как ты вы-кать поднадоело, слишком уж оффициально)

Согласен, поддерживаюsmile.gif

Цитата(zuba4 @ 7.12.2008, 21:36)
при нажатии кнопки Power (или при посыле системе команды Suspend) происходит запись RAM во flash. Раньше я думал, что именно на ЭТОМ этапе отваливается карта памяти. Но теперь мне кажется, что именно при Resume (включении тела) происходит некий сброс
карты.
Тут китайцы перестарались....


Вот это уже вполне определенная мысль оформилась. Сброс и переинициализация карты происходит всегда на Resume независимо от каких-либо настроек в реестре. То есть китайские программисты думают, что русский только тянется к кнопке 'Power', а сам уже думает, как бы ему переткнуть карту, поэтому услужливо ресетят ее при пробуждении.
Или драйвер карты столь тормозной, что ВСЕГДА не успевает опросить оборудование и ответить системе.
Попробую найти этот момент, дизассемблировав драйвер, хотя надежды на успех у меня особо и нет. Тут нужен более квалиФицированный кадр.

P.S.: а куда программы-то присылать, ежели что?

Репа:   - 4 + PM   Reply


Igor_K at 8.12.2008, 1:31

Цитата(zuba4 @ 7.12.2008, 19:36)
слот карты памяти должен опрашиваться ВСЕГДА. Независимо в каком режиме сейчас находится коммуникатор. Это особенность не Windows Mobile, а конкретного аппарата фирмы Eten

Нет, по стандарту в спящем состоянии нет ни питания собственно карты, ни датчика её наличия/вынимания. Именно поэтому после пробуждения система должна опросить карту, и если это та-же самая карта что была при засыпании, то продолжить работу с ней, как будто ничего не произошло. А помешать этому может как раз "задумчивость при пробуждении". Ну или маловероятное предположение, что система "забыла" идентификатор карты, стоявшей в момент засыпания.
Цитата(zuba4 @ 7.12.2008, 19:36)
при нажатии кнопки Power (или при посыле системе команды Suspend) происходит запись RAM во flash. Раньше я думал, что именно на ЭТОМ этапе отваливается карта памяти. Но теперь мне кажется, что именно при Resume (включении тела) происходит некий сброс карты.

1) под flash как правило понимают встроенную память - не SD карту.
2) Сброс при просыпании и должен происходить - если обнаружено что в слоте другая карта, или если за отведённое время вообще не выяснено что за карта там. Видимо как раз в настройках этого таймаута и кроется проблема. Да, если драйвер не читает таймаут из реестра, значит он там жестко в код зашит - т.е. только заменой dll-ки и можно побороть. Есть такая идея, что и известные проблемы с "постоянным форматированием карты" имеют те-же причины - но их как-то устранили для большинства разновидностей карт...
3) никакой программой все эти выкрутасы не выловить, т.к. ни одна программа в спящем режиме не работает - единственный способ - поставить специальную отладочную версию драйвера и уж из него самого смотреть что, как и главное когда (задержки) происходит.

Репа:   - 24 + PM   Reply


zuba4 at 8.12.2008, 1:34

Цитата(F@ntomas @ 7.12.2008, 22:34)
То есть китайские программисты думают, что русский только тянется к кнопке 'Power', а сам уже думает, как бы ему переткнуть карту, поэтому услужливо ресетят ее при пробуждении.


Я о том же подумал. Они избавились от самой редкой проблемы - подмены карты в спящем режиме. Но, к сожалению, китайские программисты не читали документацию к Power Management API. В случае подмены (хотя кому это вообще надо !!!) используется тот самый ключик реестра (забыл его имя). Он то и говорит системе - та ли карта или нет. Но даже если карту подменили (опять таки - зачем так измываться над зверем??), то тут программным путем произойдет сброс и переинициализация карты.
Вывод: китайцы - учите английский !! )))

А вот ссылка на источник:
_http://news.softpedia.com/news/Windows-Mobile-and-SD-Cards-Functionality-Issues-44436.shtml

Цитата(F@ntomas @ 7.12.2008, 22:34)
Попробую найти этот момент, дизассемблировав драйвер, хотя надежды на успех у меня особо и нет. Тут нужен более квалиФицированный кадр.


Cotulla - отзовись !!!


P.S. сегодня сравнивал поведение HTC Cruise и свой X600 при одинаковых операциях с картой. Заметил одну очень подозрительную особенность. В выключенном состоянии, если попытаться вытащить карту из гнезда, то у HTC включается экран (он реально просыпается от этого действия), а Енот спит, да еще и крепким сном. Еноту абсолютно пофигу, что твориться с его перефирийными устройствами во сне.

Отсюда -> это не очень-то уж похоже на поведение драйвера. Скорее, как вариант, надо копать ветку "событий". Т.е. надо научить Енота не забывать о своих "перефериях" во сне. Может тогда он и не будет ресетить карту при включении. Но, повторюсь, это как вариант.

По традиции, вот пара статей для рассуждений:
_http://blogs.msdn.com/windowsmobile/archive/2005/08/03/447404.aspx
_http://blogs.msdn.com/windowsmobile/archive/2005/08/11/450591.aspx

Называется "Power to the Developers part 1, 2". В них есть ссылка на огромную статью "Power to People", в которой описываются модели энергосбережения для PocketPC и SmartPhone Edition.

Репа:   - 2 + PM   Reply


dr-paganel at 12.12.2008, 2:31

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

Репа:   - 0 + PM   Reply


Igor_K at 12.12.2008, 17:32

Цитата(dr-paganel @ 12.12.2008, 1:31)
а если софтина упадет значит опять таки надо софт ковырять но только не связаный с питанием

Всё бы этим хирургам резать да резать - скушайте таблеточку, уши сами и отвалятся smile.gif

А если серьёзно, то решать софтовую проблему пайкой несколько неправильно smile.gif Тем более что ТОЛЬКО пайкой её 100% не решить - а раз так, то лучше начинать с менее затратного и сложного - с разбора кода драйвера и попытки там побороть проблему.

Репа:   - 24 + PM   Reply


zuba4 at 13.12.2008, 2:07

.....уф
Это невозможно...
Менял дрова друг на друга от разных HTC'шек (у которых корректно работает карта). И реестр при этом тоже менял.
Результат всегда одинаковый - либо карта ВООБЩЕ не видится, либо видится и отпадает.

Из опытов выяснилось, что sdmemory.dll мало влияет на работу с картами памяти. Он скорее влияет на поддержку SDHC. Его подмена как правило ничего нового не делала. Зато вот, что удивительно: подменил, выкл/вкл - и система спрашивает разрешение использовать неподписанный драйвер... (вывод: при включении телефона у ETEN'ов заново опрашивается этот драйвер. У HTC'шек скорее всего такое происходит только при ресете - это мое предположение.)

sdbus.dll - самый основной драйвер. Именно он "сообщает" телефону "как" нужно общаться с кардридером и самой картой. Его подмена всегда вела к "невидению" карты. Этот драйвер, по утверждениям майкрософт, пишется третьим лицом - изготовителем слота для карты.

Еще есть sdhc_sc2443.dll? он вообще самый главный. Он, походу, управляет всем процессом.

Репа:   - 2 + PM   Reply


Volodia at 17.12.2008, 12:38

Господа отключите спящий режим, поставте отключение питания дисплея на любую для Вас удобную клавишу (прога AEBPlus подойдет или другая подобная) и будет Вас счастье, все превосходно работает с карты.
P.S. аппарат X600

Репа:   - 0 + PM   Reply


at


   Reply