Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 75 • Страница 4 из 4<  1  2  3  4
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 04.10.2004
Valentin_N писал(а):
а HWB кто есть кто?
serj по-моему имел в виду FWH ;).
AT49LH002, AT49LW040, Intel 82802AB/AC, SST49LF002A, W39V040FA, W49V002FA.



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Ага, криворук + склероз :oops:
Извиняюсь.


 

а я весь яндекс замучил в поиске HWB :)
FWH= SST49LF002A, SST49LF003A, SST49LF004A, SST49LF008A, A49LF040,
LPC/FWH= Pm49FL002, Pm49FL004
- у этих точно есть функция Chip Erase...
Про остальные пока не знаю... возможно не у всех есть данная функция... будем искать :)
Пока тестировал на двух флешах:
SST49LF002A - FWH
Pm49FL004T - LPC/FWH
полет нормальный...
других под рукой нет...


ага... AT49LH002 не знает что такое Chip Erase :gun:

а у всех Flash, сектора по 4 килобайта? или встречаются другие?


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Valentin_N, ты бы предусмотрел в программе какой-нибудь ini файл с конфигурацией чипов.
Ну, типа:
- DeviceID
- VendorID
- name
- size
- ChipEraseSupport
- SizeSector0
- SizeSector1....
Тогда бы никаких проблем с конфигурированием.
Я сейчас взял первый попавшийся чип W49V002FA, у него все сектора разные:
boot = 16K
1=8K
2=8K
3=32K
4=64K
5=64K
6=64K
Добавлено спустя 6 минут, 54 секунды
Можно несколько упростить себе жизнь - в системе команд допустимо выдавать адрес сектора не обязательно выровненную на его размер (т.е. не обязательно с начала).
Я бы сделал следующий алгоритм:
- стереть 0 сектор (или очередной). Размер не важен, скажем будем считать его в 4К
- записать этот сектор из расчета 4К
- посмотреть, пустой ли следующий сектор (4К). Если пуст, то продолжить запись и так до конца файла.
Если в секторе обнаружен байт не_FF, выдать команду стирания сектора с этим адресом и продолжить запись....


 

запрос идентификатора флеша в программе реализован, уже думал извлекать из внешнего файла данные о чипе по идентификации, по крайней мере о тех которые мне известны :) их много самых разных...
по поводу алгоритма стирания, идея прикольная... спасибо...
но возможны нюансы... к примеру выше описанный чип, 2 сектор, объем 8K, если в начале сектора значение FF и через 4К значение FF, то сектор останется в исходном виде (теоретически)... возможно на практике такого не бывает...
как вариант, читать с 0 адреса и если подается значение не равное FF (допустим адрес XXXXX), то даем команду на стирание и можно читать дальше с адреса XXXXX+4К :) я так понял, что сектора менее 4К не бывают...
в общем думаем варианты... :)


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Если кратко - ПЕРЕД записью надо проверять весь сектор на стертость (наличие FF в всех позициях). В случае наличия не_FF сделать попытку стереть этот сектор. После стирания проверить на стертость. Если не стерлось, выдать сообщение о фатальной ошибке.
Т.о., я бы сделал такой алгоритм:
1. выдать команду стереть chip, если стоит опция переписывать и BootBlock.
(так быстрее - не придется _стирать_ сектора)
2. цикл записи:
- проверить на стертость сектора. Если грязный - стереть и проверить стертость.
- записать сектор.
При записи учитывать переписывание BootBlock. Я бы сделал ComboBox с позициями:
- игнорировать
- size1
- size2
- size3
(sizeX - типичные размеры BootBlock, я их не помню). Он располагается в конце (особенность x86), потому с ним просто, это кусок в самом конце адресов FLASH.
Теоретически, можно сделать опцию 'переписать только бутблок'.
По остальным структурам в FLASH .... тут лучше maco скажет, стоит ли заморачиваться с этой мутью.


 

Member
Статус: Не в сети
Регистрация: 09.09.2005
А в исходниках Uniflash если покопаться?
там точно было отдельно сделано стирание и запись бутблока,
насколько я помню организацию флэшей, там блоки могут быть разные, но бутблок всегда фиксированный...
правда он может быть как в конце флэши , так и в начале.

_________________
Лужу, паяю....


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
По структурным особенностям флешек лучше читать документацию :). От себя могу посоветовать обратить внимание на 3-хмегабитные флешки от SST (по остальным не искал) - распределение памяти у них совпадает с 4-хмегабитками, а в начале получается дырка размером 1 Мбит.
Baza писал(а):
но бутблок всегда фиксированный...
правда он может быть как в конце флэши , так и в начале
Это для FWH/LPC? Я вроде не встречал bootblock в начале флешки.


 

Advanced member
Статус: Не в сети
Регистрация: 10.04.2003
Откуда: Москва
Вот я тоже в сомнениях. Возможно, Baza имел в виду что-то типа W49V002FA? ... так - там в документации написано, что BootBlock имеет 0 сектор .... но если просмотреть сноску к таблице, то следует, что у них 0 сектор имеет самый последний адрес. Подумаешь, считают с конца? :oops: (любители моторолы, блин! :()


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
serj
В документации на W49V002FA есть картинка с указанием bootblock'а по старшим адресам.
К тому же имеется упоминание в операции стирания сектора:
Цитата:
SA=3C000h to 3FFFFh for Boot Block


 

Member
Статус: Не в сети
Регистрация: 19.06.2005
Откуда: Гатчина
А не могли бы вы выложить прогу в том виде, в котором она есть? оч надо разобраться, почему у меня не шьется W39V080A, хотя бы bootblock в нее залить....
Кстати, вот этот документик, возможно, вам поможет
www.jedec.org/download/search/3_05_01R14.pdf
www.jedec.org/download/search/3_05_03R14.pdf
ChipErase должен быть у всех.....


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
refflex
Чем прошиваете?
Кстати, в приведенных документах функция ChipErase числится в разделе OPTIONAL FEATURES, если я правильно понял. Лучше читать документацию на конкретные микросхемы/серию микросхем от производителя.


 

Member
Статус: Не в сети
Регистрация: 19.06.2005
Откуда: Гатчина
maco
Обсуждаемым программатором как раз и прошиваю, прога под win своя.
Не обратил внимание на OPTIONAL FEATURES...


 

Member
Статус: Не в сети
Регистрация: 04.10.2004
refflex
Понятие "не шьется" довольно растяжимое. Опишите подробнее, может будет проще понять, что надо сделать.


 

Junior
Статус: Не в сети
Регистрация: 17.11.2009
Выложите, пожалуйста, программы для работы на этом прогерре. Желательно под винду с поддержкой 2 и 4Мбит.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 75 • Страница 4 из 4<  1  2  3  4
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan