Guest wwweider April 22, 2008 Posted April 22, 2008 · Report post какую? Quote Share this post Link to post Share on other sites More sharing options...
InvisibleFed 0 April 22, 2008 Posted April 22, 2008 · Report post Например эту. Обратите снимание на регистр CSD и данные в нем. ProdManualSDCardv1.9.pdf Quote Share this post Link to post Share on other sites More sharing options...
SALOME 0 April 22, 2008 Posted April 22, 2008 · Report post я нашел программку на си для кодевижена которой от меня требуется только номер сектора и массив из 512 данных. теперь вопрос как мне узнать диапазон секторов для любой вставленной флешки с которыми можно работать? Ну обычно в секторе размещается 512 байт. Поделите объем флэшки (написано на самой карте) на 512 и получите количество секторов. Quote Share this post Link to post Share on other sites More sharing options...
zltigo 4 April 22, 2008 Posted April 22, 2008 · Report post Поделите объем флэшки (написано на самой карте) на 512 и получите количество секторов. Да уж :(. Вся информация выдается самой флешкой, размер сектора можно задать в случае необходимости. Для этого просто следует ознакомиться с системой команд (CMD9 Get CSD). То, что написано на флешке к реальности отношения не имеет, да и читать этикетки прграммно сложно :). Quote Share this post Link to post Share on other sites More sharing options...
SALOME 0 April 23, 2008 Posted April 23, 2008 · Report post Да уж :(. Вся информация выдается самой флешкой, размер сектора можно задать в случае необходимости. Для этого просто следует ознакомиться с системой команд (CMD9 Get CSD). То, что написано на флешке к реальности отношения не имеет, да и читать этикетки прграммно сложно :). Вы все правильно говорите. Вся информация находится в самой флэшке. Но судя по всему у аффтора проблемы с доступом в регистр CSD, на который уже не однократно указывалось: "я нашел программку на си для кодевижена которой от меня требуется только номер сектора и массив из 512 данных". Боюсь, что здесь не тот уровень, на котором можно получить доступ к регистру CSD найти где в нем храниться информация о размере карты и сделать правильный расчет. Хорошо бы в этой "программке си" найти процедуру определения размера карты. Это был бы лучший вариант. А по поводу несоответствия надписи на флэшке: Вы имеете ввиду тот факт, что 1Кбайт=1024байт? или еще что-то? Quote Share this post Link to post Share on other sites More sharing options...
zltigo 4 April 23, 2008 Posted April 23, 2008 · Report post .. по поводу несоответствия надписи на флэшке: Вы имеете ввиду тот факт, что 1Кбайт=1024байт? или еще что-то? Разумеется нет. Вот, например, гигабайтовая флешка: mount Card:SDC[22] Size:995.656MB/512 F:25MHz(14745600) WP:[Off] stat FAT32. Number of FATs: 2. Bytes per Cluster: 16384 Root entries : 512. Sectors per FAT: 243 Total Clusters: 62184. Free: 52927 FAT start (LBA) : 250 DIR start (LBA, Cluster): 736 DATA start (LBA) : 768 Флешка там конечно внутри стоит гигабайтовая, но часть ее используется под служебные цели и под запас для замены битых блоков. Посему размер спрашивать только у самой флешки. Quote Share this post Link to post Share on other sites More sharing options...
SALOME 0 April 23, 2008 Posted April 23, 2008 · Report post Флешка там конечно внутри стоит гигабайтовая, но часть ее используется под служебные цели и под запас для замены битых блоков. Посему размер спрашивать только у самой флешки. Я правильно понимаю, что с ростом количества битых блоков будет уменьшаться размер памяти, выдаваемый регистром CSD? Quote Share this post Link to post Share on other sites More sharing options...
Guest wwweider April 24, 2008 Posted April 24, 2008 · Report post спасибо уже становиться понятнее, мне кажется в этой программке должна быть функция какаято возвращающая каое какую инфу о флешке надо порыться) Quote Share this post Link to post Share on other sites More sharing options...
SALOME 0 April 24, 2008 Posted April 24, 2008 · Report post Флешка там конечно внутри стоит гигабайтовая, но часть ее используется под служебные цели и под запас для замены битых блоков. И еще такой вопрос. Если флэшка отформатирована под FAT, то по логике вещей при многократной перезаписи должны появляться битые секторы. Windows это как то отслеживает? Или битые секторы выявляются только при форматировании? Или как? Quote Share this post Link to post Share on other sites More sharing options...
Guest wwweider April 24, 2008 Posted April 24, 2008 · Report post это всё определяет контроллер на борту самой флешки нам я так поня из мануала нестоит об этом переживать) почему я немогу файл выложить небольшой текстовый сюда? Quote Share this post Link to post Share on other sites More sharing options...
zltigo 4 April 24, 2008 Posted April 24, 2008 · Report post Я правильно понимаю, что с ростом количества битых блоков будет уменьшаться размер памяти, выдаваемый регистром CSD? Нет. Просто пополнятся из резерва. После исчерпания резерва, битые сектора полезут наружу и будут уже маркироваться, как битые на файловой системе. Quote Share this post Link to post Share on other sites More sharing options...
SALOME 0 April 24, 2008 Posted April 24, 2008 · Report post Нет. Просто пополнятся из резерва. После исчерпания резерва, битые сектора полезут наружу и будут уже маркироваться, как битые на файловой системе. Спасибо за информацию. Quote Share this post Link to post Share on other sites More sharing options...
galjoen 0 April 24, 2008 Posted April 24, 2008 · Report post Нет. Просто пополнятся из резерва. После исчерпания резерва, битые сектора полезут наружу и будут уже маркироваться, как битые на файловой системе. Что-то я не понял, что в CSD есть сведения о файловой системе на этой флешке? Это ведь ОС будет если захочет/сможет их маркировать как битые? В своё время я пробовал при записи в свой самодельный MassStorage возвращать Sense Key=3, ASC=3, ASCQ=0 (WRITE FAULT) - Win зацикливалась на записи. Хотя м.б. это у меня какой-то другой глюк был. Или ОС как-то подругому узнаёт, что сектор битый? Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 72 April 24, 2008 Posted April 24, 2008 · Report post Что-то я не понял, что в CSD есть сведения о файловой системе на этой флешке? Это ведь ОС будет если захочет/сможет их маркировать как битые? Сначала маскировать будет сама карта, система об этом и не узнает. Quote Share this post Link to post Share on other sites More sharing options...
galjoen 0 April 24, 2008 Posted April 24, 2008 · Report post Сначала маскировать будет сама карта, система об этом и не узнает. Ну это понятно. А когда запас секторов кончится? Я столкнулся с такой ситуацией: имеется совершенно новая флешка, она есс-но не отформатирована, и при чтении всех секторов в т.ч. 0го у неё есс-но ошибка CRC. Я и выдавал эту ошибку (Sense Key=3, ASC=0x10, ASCQ=0). Тогда Win зацикливалась на чтении 0го сектора, и отформатировать флешку я не мог. Получался замкнутый круг. Пришлось установить специальное условие - при чтении 0го сектора считать, что CRC верна. Мне показалось, что и при записи сектора в Win подобный глюк, т.к. при возврате ошибки Win зацикливается на записи в этот сектор. А такими командами, как Write and Verifu, Win вообще не пользуется. В каком-же случае Win помечает сектор как битый? Quote Share this post Link to post Share on other sites More sharing options...