Перейти к содержанию
    

Windows CE 5.0 - восстановить/скопировать старое железо.

Случилась необходимость в ремонте/копировании старой железки, есть частичный успех, но ввиду недостаточного опыта с Windows CE не могу пока разобраться до конца.

Железка построена на Intel XScale PXA255. Память - две микросхемы Flash. Загрузчик в NOR, ОС и файловая система в NAND. Путем реверса загрузчика разобрался как достать из NAND образ ОС в формате srec_msbin и как записать его в чистую NAND. И вот здесь собственно всплыл нюанс. Собственно почему ремонт: бывает слетает NAND. В этом случае я могу через загрузчик и TFTP залить этот образ и железка оживает. Это происходит т.к. файловая система жива (файлы прикладного ПО лежат в примонтированных на определенную папку разделах NAND). А вот если залить в чистую NAND, то ОС начинает грузиться, и файловая система поднимается в RAM. Т.е. я могу подключиться через FTP либо Telnet (это промышленная железка без экрана/клавиатуры), залить туда файлы проекта, запустить их и они работают. Однако после перезагрузки все это исчезнет и опять останется голая ОС.

Собственно в чем вопрос: я правильно понимаю, что FAT в WinCE базируется на Flash Translation Layer, который должен являться частью образа системы? Я пришел к тому, что у меня нет разделов в NAND, соответственно если их создать и смонтировать, смогу скопировать на них нужные файлы и получу рабочую систему. Сейчас я могу залить сырой полный дамп NAND программатором и все начинает работать как должно. Но это немного костыльное решение (например если NAND будет с битыми блоками в неудачном месте то этот вариант не заработает).

Я к чему с этим опусом: пока сам ковыряю неспешно, но возможно есть кто с опытом в разработке под WinCE и пнет в нужном направлении. Нашел BSP от Toradex под их одноплатники на PXA255, в частности драйвер NAND там вроде тоже есть (у них похожие SLC NAND, правда не знаю так же подключены к процу, или нет), родного BSP (одноплатник Compulab) к сожалению нет. Есть ли разумный шанс, что этого достаточно, чтобы с помощью Platform Builder сделать небольшую программку, которая позволит разметить NAND? 

Могу ли я где-то в файлах WinCE найти лог загрузки (возможно это стандартный инструмент, о котором я не знаю)? (возможно там будут какие-то сообщения об ошибках инициализации NAND) В консоль к сожалению вывода нет. Как только загрузчик запускает ядро вывод прекращается...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошу прощения за ламерский вопрос. Если есть полный работоспособный дамп NAND, то что мешает прошивать его в слетевшую NAND?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

45 минут назад, Raven сказал:

Прошу прощения за ламерский вопрос. Если есть полный работоспособный дамп NAND, то что мешает прошивать его в слетевшую NAND?

 

Мешает возможное наличие bad blocks, их допускается некоторое количество даже в новой микросхеме NAND. Во время работы драйвер файловой системы учитывает наличие неисправных блоков. При прошивке дапма может получится что данные попадут на неисправный блок. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 час назад, deni сказал:

При прошивке дапма может получится что данные попадут на неисправный блок. 

Если объем флешки небольшой, замените ее на SLC тип там вероятность бэд-блоков заметно ниже, да и надежность повысится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В моем случае кстати SLC, и на самом деле все более менее не плохо. Взять микросхем с запасом, и все должно быть ок, но интересно копнуть глубже все же...

По поводу замены типа микросхемы тоже не все просто. Драйвер читает идентификатор и с незнакомой вообще может не заработать... В частности у меня эти платы есть и с samsung и с hynix, так вот дампы сырые не взаимозаменяемы, там spare area чуть по разному разбита, если я правильно помню, соответственно загрузчик работать может и с той и с той, но формат хранения разный...

Хотел попробовать на рабочей платке разметку nand глянуть, но там telnet отключается, видимо где-то в конфигурации прописано. А если живо только ядро - telnet работает )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 06.11.2023 в 11:27, N1X сказал:

В частности у меня эти платы есть и с samsung и с hynix, так вот дампы сырые не взаимозаменяемы, там spare area чуть по разному разбита, если я правильно помню, соответственно загрузчик работать может и с той и с той, но формат хранения разный...

А ну да, это ж винда, там могут всякие лиц. ключи к этим ИД цепляться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...