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

zenon at 26.9.2008, 8:21

Цитата(Zaets @ 26.9.2008, 6:32)
В качестве примера таких программ могу привести Total Commander,

Сегодня проверил на Total Commander, установлен на карту памяти, выключаю коммун, жду, включаю и опа коммандер весит в памяти, восстанавливаю его работает.
PS Отчет об ошибках включил как указано в первом посте. При восстановлении тотала никакой ошибки.

Репа:   - 0 + PM   Reply


Zaets at 26.9.2008, 8:42

Цитата(zenon @ 26.9.2008, 12:21)
Сегодня проверил на Total Commander, установлен на карту памяти, выключаю коммун, жду, включаю и опа коммандер весит в памяти, восстанавливаю его работает.


Я правильно понял, что Вы считаете, что добились корректной работы программ, установленных на карту памяти? Если да, то скажите пожалуйста, какая у Вас стоит карта и какие конкретно действия совершили, чтобы этого добиться.

Репа:   - 149 + PM   Reply


zenon at 26.9.2008, 10:47

100% не утверждаю, просто я его еще мало тестил, работа...блин. Но вот ни тотал ни редактор реестра не выдают ошибок при выходе из спячки.
Щас запущу несколько прог сразу, потом отпишу.

Репа:   - 0 + PM   Reply


zenon at 26.9.2008, 14:21

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

Репа:   - 0 + PM   Reply


zuba4 at 11.10.2008, 2:32

Мне тоже не помогло ни DisablePowerManagement = 1, ни DisablePowerManagement = 0...
При значении 0 подвисает слегка, но не сильно. Просто притормаживает при включении. Проги ВРОДК КАК остаются в памяти, но через 30-60 секунд они ВСЕ РАВНО вылетят !!! А самое страшное - они не запоминабт своего состояния (потерял не один плейлист, не запомнил страницу книги, и т.д.)
У меня свои взгляды на эту проблему. Тут на форуме многие пишут, что программы вылетают в связи с отключением питания карточки... Абсолютно верно. НО. Вот тут мои замечания по теме:

1) При запуске какой-либо программы ее исполняемый код (набор инструкций) попадает в опреративную память. Если программе не надо обращаться к карте, то тогда она не вылетает. Со временем она вылетет, но это будет не скоро.

2) Не все програмы, запущенные с карты, вылетают сразу. Это происходит с громоздкими по памяти прогами (Opera, Java, ...), но происходит, судя по всему, с абсолютно всеми прогами с карточки.
Короче, есть у меня маленькая игрушка - дурак, а есть и большая - преферанс. Так вот этот дурак у меня вылетает позже, чем преф. именно ПОЗЖЕ.
Поясню свои слова комментариями...
Как я понял, зверек постоянно сканирует свою ROM на наличие всякого в ней. И, как не странно, зверь пытается ОСВОБОДИТЬ себе побольше памяти. Зачем - непонятно... Это подтвердилось на примере одной программки, которая перед закрытием выводила окошко "Terminate? (received WM_CLOSE -- perhaps from OS / low mem?" - но я не посылал ей CLOSE ! т.е. зверь САМ пытался ее закрыть. И через какое-то время ему это удавалось...

3) Может стоит аккуратно припаять к карте памяти пару проводков, и мерить на них напряжение карты в рабочем и спящем состоянии? Проблему надо как-то решать - давайте не оставим ее в воздухе..

С миру по нитке - бедному рубаха....

P.S. мне не помогли ни одни методы укращения страптивого зверя....

Репа:   - 2 + PM   Reply


Stan at 14.10.2008, 15:57

Поменял карту microSD Kingston 2 Gb на microSDHD Kingston 4Gb. Батарея стала разряжаться быстрее примерно на 30%. Как решить проблему?

Репа:   - 0 + PM   Reply


F@ntomas at 24.10.2008, 2:17

Покопался в интернете, но для своего Енота работающего решения пока найти не смог.
Да и на разных прошивках у меня программы, запущенные с карты памяти, ведут себя по-разному.
Лучше всего - на официальной 439. Будут продолжать работать еще очень долго, перенося
многократные вкл/выкл питания, но при попытке их закрыть (не свернуть) происходит ошибка,
а иногда программа остается висеть в списке процессов и убить ее можно только через СР.

По поводу DisablePowerManagement: судя по всему (по некоторым сообщениям в различных
форумах и по исходным текстам из WM6 Platform Builder), его значение ни на что не влияет,
проверяется только его наличие в реестре. Если он есть, то управление питанием должно
быть отключено. Наличие данного значения в реестре мне не помогло, как и его отсутствиеsad.gif


Еще пара значений реестра:
HKLM\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class
IdlePowerState:DWORD
IdleTimeout:DWORD
Первый из них должен обозначать режим управления питанием карты памяти в состоянии
бездействия, по умолчанию = 2. Значения могут быть от 0 (full on) до 4 (off).
Пробовал устанавливать всякие, но разницы не заметил.
Написал программку, которая требует от драйвера карты постоянно режима 0 - результат тот же.


Вот еще один любопытный способ борьбы с питанием SD из нашего же форума. У меня не сработал.
http://etenclub.ru/pda/board/http-etenclub-ru-board-index-php-showtopic-7296-t7296.html


Еще обнаружил парочку любопытных значений реестра:
HKLM\System\StorageManager
PnPUnloadDelay:DWORD = 1500
PnPWaitIODelay:DWORD = 1500

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

Тут в конце темы приводится цитата о PnPUnloadDelay
_http://www.хпц.ru/pda/board/index.php?t=155693


Тема по-английски
http://forums.thoughtsmedia.com/f322/wm200...ff-58988-3.html

Еще кое-какие разъяснения по поводу PnPUnloadDelay. Чуваки пытаются решить проблему.
http://blogs.msdn.com/windowsmobile/archiv.../31/566187.aspx
Однако, в конце концов один из авторов сообщил, что от изменений значения PnPUnloadDelay в реестре
конечным пользователем - толку ноль, это значение может установить хитрым образом только
аффтар прошивки (OEM). Либо (возможно ли такое?) OEM может сделать PnPUnloadDelay доступным
пользователю для изменения.

Сам драйвер карты памяти не знаю, как выцепить с Енота, не копируется он. Так что дизассемблировать
его не могу, да и не большой я в этом специалист.

В итоге простого решения проблемы посредством правки реестра найти пока не удалось.

P.S.: прошу извинить меня за злоупотребление ссылками, думаю, это удобнее, чем приводить цитаты,
выдранные из контекста.

Репа:   - 4 + PM   Reply


zwa at 6.11.2008, 13:45

Проблема та-же , пробовал все выше перечисленое. Нормального решения так и не нашел. Но заметил интересную особенность: если параллельно запушен Навител и в нем установлена галочка "не выключать устройство, пока программа активна" то при выходе из спячки все нормально работает!!! Так и пользую с постоянно включеном навигаторе sad.gif
Помоему проблемку можно както решить не в настройках драйвера флехи, а в настройках службы управления питанием, или как там ее...
Если че получится, напишу...

Репа:   - 0 + PM   Reply


BoMbardieR at 6.11.2008, 17:23

Попробуйте такой вариант
Цитата
HKEY_LOCAL_MACHINE\System\StorageManager\PNPUnloadDelay : 4096

Щас тестирую..вроде не вылетает.
Зверь: Х500. Прошивка Санты 3.4

Репа:   - 1 + PM   Reply


at 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.

Репа:   -  + PM   Reply


F@ntomas at 4.12.2008, 2:11

Вот еще набрел на способ решения проблемы с картой памяти:
http://forum.xda-developers.com/showthread.php?p=2670216

Предлагают прописать в реестре HKLM\System\StorageManager\Profiles\SDmemory
и
HKLM\System\StorageManager\Profiles\SDMMC
DisableOnSuspend:DWORD = 0

В справочнике MSDN эТо значение также присутствует.
Возможно, кому-нибудь это поможет? Мне не помогло. По-прежнему глухо, как в танкеsad.gif

Там же по ссылке в XDA предлагаются и другие способы правки реестра, поигратьсся с приоритетами потОков и порядком загрузки/опроса драйверов. С этим поосторожней, если не запомнить все исходные циферки
для восстановления в случае неудачи, можно нарваться на ХР.

Репа:   - 4 + PM   Reply


Cerber_us at 4.12.2008, 12:39

Правка в реестре наврядли что-то даст (сегодня потратил очередные 3 часа на это). Нужно править прошивку. Это подтверждает также пост RU_BASik.
Кто сможет помочь нам? Cotulla отзовись.

Репа:   - -1 + PM   Reply


zuba4 at 4.12.2008, 14:15

Товарищи по несчастью! Если у кого из знакомых есть коммуникаторы Asus или HTC, то, пожалуйста, попросите их сохранить и скинуть вам файлы scard.dll, sdbus.dll, sdhc_sc2440.dll, SDMemory.dll (при условии наличия этих файлов) и ветку реестра HKLM\SDCARD\ClientDrivers\Class\
Если эти библиотеки окажутся отличными от наших, то есть смысл попробовать их аккуратно подменить.
Как я понял, все врайверу обращаются к реестру, чтобы проверить наличие и соответствие некоторых ключей (таких как DisablePowerManagement). И судя по всему, у Асусов эти ключи срабытывают.

Цитата
Кто сможет помочь нам? Cotulla отзовись.


Уважаемый Cotulla недавно написал, что кеты Еten Inc "научили" его писать клавиатурные драйверы ))
Так может имеет смысл попробовать поковырять и драйверы карты памяти ? Очень просим...

Репа:   - 2 + PM   Reply


F@ntomas at 4.12.2008, 16:01

Цитата(zuba4 @ 4.12.2008, 15:15)
Товарищи по несчастью! Если у кого из знакомых есть коммуникаторы Asus или HTC, то, пожалуйста, попросите их сохранить и скинуть вам файлы scard.dll, sdbus.dll, sdhc_sc2440.dll, SDMemory.dll (при условии наличия этих файлов) и ветку реестра HKLM\SDCARD\ClientDrivers\Class\
Если эти библиотеки окажутся отличными от наших, то есть смысл попробовать их аккуратно подменить.


Насколько я понимаю, scard.dll относится к смарт-картам и здесь ни совсем при чем? Но в остальном мысль неплохая.

Репа:   - 4 + PM   Reply


Bolik at 4.12.2008, 17:19

Такого решения в постах не видел, может просто пропустил.
После покупки была обсуждаемая проблема, на второй день даже носил девайс обратно в магазин думал карта "косячная", потом поставил драйвер "SDHC777" и все в норме, уже третий месяц.
Брал на этом-же форуме, в какой ветке не помню, но поиском найдете.

Сейчас даже "тудейные" плагины (не все конечно) спокойно стоят на карте и работают.

Репа:   - 6 + PM   Reply


Cerber_us at 4.12.2008, 18:06

Bolik,4.12.2008, 17:19
Выкладывай, ждем. Если поможет - будешь героем.

Репа:   - -1 + PM   Reply


zuba4 at 4.12.2008, 18:41

Цитата(F@ntomas @ 4.12.2008, 16:01)
Насколько я понимаю, scard.dll относится к смарт-картам и здесь ни совсем при чем? Но в остальном мысль неплохая.


Сначала файлы раздобыть надо, а потом уже буду разбираться что и куда относится. )))

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

Репа:   - 2 + PM   Reply


Cerber_us at 4.12.2008, 18:47

Проверил драйвер "SDHC777". Проблема НЕ решилась. Проверил драйвер от HTC (модель не знаю) - не работает.

Репа:   - -1 + PM   Reply


zuba4 at 4.12.2008, 19:01

Цитата(Cerber_us @ 4.12.2008, 18:47)
Проверил драйвер "SDHC777". Проблема НЕ решилась. Проверил драйвер от HTC (модель не знаю) - не работает.


Да не будет он работать )) Как уже говорилось, все эти "драйверы" в виде cab'ов просто прописывают ключи в реестре.

Единственное хорошее могу сказать: у брата M700, и у него не читались SDHC карты. Так вот этот "драйвер" каким-то чудесным образом заставил работать Kingston microSDHC 8 Gb. А каким образом он будет влиять на питание в спящем режиме - не понятно...

Репа:   - 2 + PM   Reply


Cerber_us at 4.12.2008, 20:33

zuba4,4.12.2008, 19:01
Вы не правы, любезный, они еще длл драйвера в папку Виндовс кидают.

Репа:   - -1 + PM   Reply


at


   Reply