реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Чем и как прочитать образ из NAND?, есть плата на процессоре TI AM1705
no_d@t@
сообщение Jan 15 2013, 12:38
Сообщение #1


Участник
*

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736



Может быть туплю, сильно не пинайте sm.gif

Итак вопрос: собрал свою плату на процессоре Sitara AM1705, в NAND по UART записал U-boot, затем из под U-boot прошил в NAND ядро Linux, файловую систему, затем из под Linux записал в NAND свое приложение, протестировал работоспособность.
Теперь мне нужно прочитать из NAND полученный образ (U-boot + Linux + rootFS + приложение) и записать этот образ в другие платы. Типовая вобщем-то задача.
Каким образом можно вычитать образ из NAND?
Подозреваю, что мне потребуется Code Composer Studio и JTAG?
Или как-то еще?

П.С.: До того как перейти на Texas, работал с ARM9 от Atmel, так там была прекрасная утилита SAM-BA. Она позволяла (в удобном графическом режиме) записать/прочитать флеш память по USB...
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Jan 15 2013, 12:52
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(no_d@t@ @ Jan 15 2013, 16:38) *
Каким образом можно вычитать образ из NAND?


Сам u-boot не позволяет это сделать?
http://wiki.starterkit.ru/uboot

Там встречаются команды.
nand read - <адрес> <смещение> <размер>
nand write - <адрес> <смещение> <размер>
Go to the top of the page
 
+Quote Post
no_d@t@
сообщение Jan 15 2013, 13:17
Сообщение #3


Участник
*

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736



Цитата(mempfis_ @ Jan 15 2013, 16:52) *
Сам u-boot не позволяет это сделать?


С помощью u-boot я вроде как могу вычитать содержимое NAND в ОЗУ.
А что дальше с этим делать? Как передать прочитанное на хост?
Вопросы задал навскидку, еще не разбирался. Завтра приду на работу, почитаю.
Go to the top of the page
 
+Quote Post
alx2
сообщение Jan 16 2013, 05:36
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(no_d@t@ @ Jan 15 2013, 18:17) *
А что дальше с этим делать? Как передать прочитанное на хост?

А это уже от вашей платы зависит. Какие интерфейсы у нее есть? RS232? USB? Слот SD-карты?
В зависимости от того, куда Вы хотите данные из ОЗУ вывести, в u-boot должны быть соответствующие средства.
Например вывести в компьютер через RS232 можно по протоколу kermit командой saves...

Кстати, проще наверное из линукса скопировать разделы флешки (u-boot, его переменные, линукс и файловую систему) с помощью dd куда Вам надо, а потом склеить в единый образ...

Сообщение отредактировал alx2 - Jan 16 2013, 05:46


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
no_d@t@
сообщение Jan 16 2013, 08:16
Сообщение #5


Участник
*

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736



Цитата(alx2 @ Jan 16 2013, 09:36) *
А это уже от вашей платы зависит. Какие интерфейсы у нее есть? RS232? USB? Слот SD-карты?

Интерфейсы - RS232 и Ethernet.

Цитата(alx2 @ Jan 16 2013, 09:36) *
Например вывести в компьютер через RS232 можно по протоколу kermit командой saves...

Так почему-то не получилось, saves не удалось связаться ни с HyperTerminal, ни с ZOC. Хотя помнится, что loadb без проблем работала с HyperTerminal.

Цитата(alx2 @ Jan 16 2013, 09:36) *
Кстати, проще наверное из линукса скопировать разделы флешки (u-boot, его переменные, линукс и файловую систему) с помощью dd куда Вам надо, а потом склеить в единый образ...

А вот это, пожалуй, действительно поможет. Буду пробовать.
Спасибо!
Go to the top of the page
 
+Quote Post
no_d@t@
сообщение Jan 16 2013, 10:57
Сообщение #6


Участник
*

Группа: Validating
Сообщений: 24
Регистрация: 4-02-08
Пользователь №: 34 736



Воспользовался dd.
Описал всю NAND (256 Мб) как один раздел: mtdparts=davinci_nand.1:0x10000000@0x0(nand_all)ro
Загрузился, подмаунтился к хосту по nfs и выполнил:
dd if=/dev/mtdblock0 of=/nfs/mtdblock0.bin
Получил на хосте желаемый образ NAND размером 256 Мб. На днях принесут программатор, попробую зашить в чистую новую флешку mtdblock0.bin и загрузиться с нее.


Сообщение отредактировал no_d@t@ - Jan 16 2013, 10:57
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 16 2013, 12:15
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(no_d@t@ @ Jan 16 2013, 14:57) *
Воспользовался dd.
...
Получил на хосте желаемый образ NAND размером 256 Мб. На днях принесут программатор, попробую зашить в чистую новую флешку mtdblock0.bin и загрузиться с нее.

Какую фс вы используете?
У меня такое ощущение что jffs2 / ubifs вас мощно стукнут граблями по лбу после того как вы в другой экземпляр нандфлэш зальете считанный образ.
Go to the top of the page
 
+Quote Post
samike
сообщение Jan 16 2013, 12:22
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039



Цитата(_3m @ Jan 16 2013, 16:15) *
У меня такое ощущение что jffs2 / ubifs вас мощно стукнут граблями по лбу после того как вы в другой экземпляр нандфлэш зальете считанный образ.

А расскажите, почему jffs2 / ubifs стукнут граблями?
Просто стоит похожая зачача - прочитать образ из NAND и залить в другие платы.
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 16 2013, 16:41
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(samike @ Jan 16 2013, 16:22) *
А расскажите, почему jffs2 / ubifs стукнут граблями?

патамушта NAND flash
нужно не смнимать дамп раздела а получать образ фс

Сообщение отредактировал _3m - Jan 16 2013, 16:42
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jan 16 2013, 18:25
Сообщение #10


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(samike @ Jan 16 2013, 14:22) *
А расскажите, почему jffs2 / ubifs стукнут граблями?

Дело вовсе не в файловых системах, а в том, что NAND flash (ради удешевления, вероятно) поставляется с некоторым процентом сбойных секторов, которые при производстве соответствующим образом помечены. У каждого экземпляра микросхемы количество и расположение этих секторов разное. Дальше, думаю, всё понятно.
Go to the top of the page
 
+Quote Post
samike
сообщение Jan 17 2013, 04:28
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039



Печально.
Так как же все таки корректно прочитать из NAND необходимый образ (U-boot + Linux + rootFS + приложение), чтобы записать этот образ в другие платы?
Go to the top of the page
 
+Quote Post
alx2
сообщение Jan 17 2013, 05:00
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(IgorKossak @ Jan 16 2013, 23:25) *
Дело вовсе не в файловых системах, а в том, что NAND flash (ради удешевления, вероятно) поставляется с некоторым процентом сбойных секторов, которые при производстве соответствующим образом помечены. У каждого экземпляра микросхемы количество и расположение этих секторов разное. Дальше, думаю, всё понятно.

Мне казалось, что ремаппинг сбойных секторов выполняется драйвером, лежащим "ниже" чем /dev/mtdblock*. Иными словами, блоки, доступные через /dev/mtdblock*, уже гарантированно "хорошие". Я неправ?


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
_3m
сообщение Jan 17 2013, 05:44
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(alx2 @ Jan 17 2013, 09:00) *
Мне казалось, что ремаппинг сбойных секторов выполняется драйвером, лежащим "ниже" чем /dev/mtdblock*. Иными словами, блоки, доступные через /dev/mtdblock*, уже гарантированно "хорошие". Я неправ?

Как все запущено!
Вы правы, но частично. Бэды могут появляться во время работы, софт их на лету помечает и обходит.
Однако главная проблема не в этом. Проблема в том что в нанд есть Spare area в которой хранится корректирующий код, кроме того например jffs2 в одной из конфигураций хранит там метаданные, образ без метаданных можно сразу отправлять в /dev/null потому что он не смонтируется. Из-за корректирующего кода стертый блок и блок в который записаны 0xff совершенно разные вещи.
Еще раз повторю: из нанд надо снимать образ утилитой которая понимает тип фс. Писать тоже утилитой от используемой фс.
Go to the top of the page
 
+Quote Post
samike
сообщение Jan 17 2013, 06:14
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039



Цитата(_3m @ Jan 17 2013, 09:44) *
Еще раз повторю: из нанд надо снимать образ утилитой которая понимает тип фс. Писать тоже утилитой от используемой фс.

Не понял, только образ ФС нужно вычитывать утилитой, которая понимает тип ФС?
Или u-boot и kernel тоже?
Думаю, что u-boot и kernel можно безболезненно вычитать из NAND с помощью dd, а вот с ФС действительно непонятно.
Может nand dump подойдет?
Go to the top of the page
 
+Quote Post
samike
сообщение Jan 17 2013, 08:28
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 12-04-06
Из: Москва
Пользователь №: 16 039



Вобщем, процесс автоматизации прошивки большого количества плат пока видится таким:

- U-boot заливаем в NAND с помощью программатора,
- устанавливаем м/сх NAND на плату,
- с помощью скрипта (например из под ZOC) общаясь с U-boot по tftp заливаем в NAND ядро и ФС (используем nand write),
- ручками, уже из под linux, пишем в устройство свое рабочее приложение.

может быть можно все образы сразу ( U-boot, ядро и ФС) залить в NAND по определенным адресам с помощью программатора?
потом установить м/сх NAND на плату и ручками, уже из под linux, записать в устройство свое рабочее приложение.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 00:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01484 секунд с 7
ELECTRONIX ©2004-2016