|
Linux на TMS320dm6437, нужно создать файловую систему JFFS2 |
|
|
|
May 16 2008, 07:16
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
Необходимо создать фаловую систему JFFS2 для NAND/NOR Flash, ядро есть и работает, MTD, JFFS2 включены в ядро, драйверы NAND Flash т.ж., но проблема в том что Linux не видит этот самый Nand Flash, какие могут быть соображения по этому поводу.
Есть еще один вопрос, как можно перевести бинарный образ ядра в Мотороловский S-Record, это необходимо для того чтобы зашить образ ядра прямо во флэш, специальная утиллита понмает только этот форма. Я знаю что есть Bin2Mot, но она не принимает информацию об смещении, а мне нужно смещение 0x42000000. Я пищу Bin2Mot /On=42000000 /3 vmlinux, но выходной файл все равно без смещения.
У кого какие соображения по этим вопросам?
|
|
|
|
|
May 16 2008, 15:54
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(Erv&Sed @ May 16 2008, 11:16)  перевести бинарный образ ядра в Мотороловский S-Record попробуйте objcopy
|
|
|
|
|
May 16 2008, 15:54
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Erv&Sed @ May 16 2008, 10:16)  Необходимо создать фаловую систему JFFS2 для NAND/NOR Flash, ядро есть и работает, MTD, JFFS2 включены в ядро, драйверы NAND Flash т.ж., но проблема в том что Linux не видит этот самый Nand Flash, какие могут быть соображения по этому поводу. Не понятно в чем собственно проблема. Если нужно создать JFFS2 образ для прошивки его в NAND то нужно использовать mkfs.jffs2. Если же Линукс не видит микросхему, то либо что-то не так со схемой, либо с конфигурацией шины, либо с драйвером собственно NAND. Цитата Есть еще один вопрос, как можно перевести бинарный образ ядра в Мотороловский S-Record, это необходимо для того чтобы зашить образ ядра прямо во флэш, специальная утиллита понмает только этот форма. Я знаю что есть Bin2Mot, но она не принимает информацию об смещении, а мне нужно смещение 0x42000000. Я пищу Bin2Mot /On=42000000 /3 vmlinux, но выходной файл все равно без смещения.
У кого какие соображения по этим вопросам? Мммм.... А objcopy этого не может? Только выводить нужно не из бинарика а из elf-образа. Его имя vmlinux и он лежит в корневике дерева исходников ядра после компиляции. Или подправить Makefile в том месте, где выводится бинарник.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 18 2008, 13:09
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
Проблема в том, что ядро не видит NAND, наверное придется все делать для NOR Flash, но я не видел где можно включить драйверы в ядро (при конфигурации). Если образ ядра - ELF файл, то, по идее, в начале должно быть записано ELF, но этой записи там нет, возможно что формат - COFF. Тогда вопрос, как перевести COFF в обычный бинарник, чтобы можно было загрузить во флеш и из нее включить ядро. Сама плата - EVM набор от TI. Linux от VirtualLogix.
|
|
|
|
|
May 18 2008, 16:19
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Erv&Sed @ May 18 2008, 16:09)  Проблема в том, что ядро не видит NAND, наверное придется все делать для NOR Flash, но я не видел где можно включить драйверы в ядро (при конфигурации). Если образ ядра - ELF файл, то, по идее, в начале должно быть записано ELF, но этой записи там нет, возможно что формат - COFF. Тогда вопрос, как перевести COFF в обычный бинарник, чтобы можно было загрузить во флеш и из нее включить ядро. Сама плата - EVM набор от TI. Linux от VirtualLogix. Запустите objcopy без параметров и посмотрите в самом конце список поддерживаемых форматов. objcopy: supported targets: бла, бла, бла, бла, бла, бла, бла, бла. И заодно изучите параметры и функции objcopy. Вроде как COFF должен начинаться с COFF  . Видимо Вы не тот файл смотрите.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 19 2008, 03:06
|
Местный
  
Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874

|
Цитата(Erv&Sed @ May 18 2008, 17:09)  возможно что формат попробуйте objdump драйверы в ядро - в разделе MTD
Сообщение отредактировал Idle - May 19 2008, 03:10
|
|
|
|
|
May 19 2008, 07:56
|
Частый гость
 
Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370

|
Цитата(Erv&Sed @ May 16 2008, 11:16)  Необходимо создать фаловую систему JFFS2 для NAND/NOR Flash, ядро есть и работает, MTD, JFFS2 включены в ядро, драйверы NAND Flash т.ж., но проблема в том что Linux не видит этот самый Nand Flash, какие могут быть соображения по этому поводу.
Есть еще один вопрос, как можно перевести бинарный образ ядра в Мотороловский S-Record, это необходимо для того чтобы зашить образ ядра прямо во флэш, специальная утиллита понмает только этот форма. Я знаю что есть Bin2Mot, но она не принимает информацию об смещении, а мне нужно смещение 0x42000000. Я пищу Bin2Mot /On=42000000 /3 vmlinux, но выходной файл все равно без смещения.
У кого какие соображения по этим вопросам? Ti изменил формат загрузчика для этого проца. Может поможет вложенный файл:
|
|
|
|
|
May 19 2008, 09:28
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
objcopy ne ponimaet, vse delo v tom chto architektura ne ta. A na schet zagruzchika - ia videl eto, daje novuyu versiu etogo dokummmenta, no ix script genais - rabotaet ne korrektno! videlyaet ogromnor kolichestvo pamyanti i strashno tormozit.
Vse delo v tom chto est primer led.out, ya ego kormlu im script hexais.exe (.NET), on vivodit led.hex, format u nego - AIS v S-RECORD`e, pri zapisi ego na NOR, ona rabotaet normalno, pri perezagruzke on migaet svetodiodami. A te je manitulyacii s vmlinux ne srabativaet.
Zadacha v tom, chtobi zapustit linux s failovoi sistemoi imenno s FLASH (NOR/NAND), seichas prixoditsya zapuskat vmlinux cherez CC Studio, a failovaya sistema cherez NFS iportiruetsya iz Mandrivi.
Ya dumau chto vmlinux COFF formata, t.k. v nem napisano chto-to tipa: TMS320C6x COFF Linker UNIX v6.0.8 ....
|
|
|
|
|
May 19 2008, 09:55
|
Частый гость
 
Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370

|
Цитата(Erv&Sed @ May 19 2008, 13:28)  objcopy ne ponimaet, vse delo v tom chto architektura ne ta. A na schet zagruzchika - ia videl eto, daje novuyu versiu etogo dokummmenta, no ix script genais - rabotaet ne korrektno! videlyaet ogromnor kolichestvo pamyanti i strashno tormozit.
Vse delo v tom chto est primer led.out, ya ego kormlu im script hexais.exe (.NET), on vivodit led.hex, format u nego - AIS v S-RECORD`e, pri zapisi ego na NOR, ona rabotaet normalno, pri perezagruzke on migaet svetodiodami. A te je manitulyacii s vmlinux ne srabativaet.
Zadacha v tom, chtobi zapustit linux s failovoi sistemoi imenno s FLASH (NOR/NAND), seichas prixoditsya zapuskat vmlinux cherez CC Studio, a failovaya sistema cherez NFS iportiruetsya iz Mandrivi.
Ya dumau chto vmlinux COFF formata, t.k. v nem napisano chto-to tipa: TMS320C6x COFF Linker UNIX v6.0.8 .... Скрипт переписал. Насколько помню, там была ошибка с созданием временных файлов. Когда ковырялся с загрузчиком, проект тоже по началу не запускался. Дело было в начальной конфигурации памяти DDR и задании умножителя. Это оказалось важно. Тоже светодиоды мигали а более серьезные примеры, требовавшие внешней памяти .... Пользовался ais_utility. У меня проект под DSP BIOS. Для того чтобы его запустить в стартапе потребовалась настройка кэша и pinmux.
|
|
|
|
|
May 19 2008, 11:17
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
A mojno po podrobney, vi probovali zapustit linux na nem, u vas TMS320DM6437 EVM??? Mojno u vas poprosit ispravlenniy script, ya v Perl`e ne sharu. I chto za AIS_Utility?
Po idee mozno vedj skopirovat obraz yadra posle zagruzki v CC Studio, ona vedj kopiruetsia v operativku po adres 0x80000400? Tolko kak eto sdelat, mojet sdelat dump pamiati pri rabote yadra???
|
|
|
|
|
May 19 2008, 11:58
|
Частый гость
 
Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370

|
Цитата(Erv&Sed @ May 19 2008, 15:17)  A mojno po podrobney, vi probovali zapustit linux na nem, u vas TMS320DM6437 EVM??? Mojno u vas poprosit ispravlenniy script, ya v Perl`e ne sharu. I chto za AIS_Utility? Po idee mozno vedj skopirovat obraz yadra posle zagruzki v CC Studio, ona vedj kopiruetsia v operativku po adres 0x80000400? Tolko kak eto sdelat, mojet sdelat dump pamiati pri rabote yadra??? К сожалению в Linux не разбираюсь совершенно. В этом не могу помочь, наоборот самому интересно о возможности нормально поставить гео. Попробовали поставить на board linux - Virtual Logic (т.е. ту демку которая идет с платой). Да он пошел Среда комозера + удаленная загрузка из сети. А что толку, если Dm6437 держит, насколько я знаю, только Virtual logic и если я не ошибаюсь, купить в минимальной конфигурации будет начиная от 7 к$. Не говоря уже о фирменных кодеках, которые должны под него стать. AIS_Utility - это набор с тем скриптом, который должен генерить bin файл для прошивки. В приложении архив с примером bat файла для создания бинарника для заливки в Spi флешь + Cfg c настройками для загрузчика + исправленный скрипт.
Прикрепленные файлы
bin.zip ( 11 килобайт )
Кол-во скачиваний: 41
|
|
|
|
|
May 19 2008, 13:05
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
owl spasibo, seichas budu probovat.
|
|
|
|
|
May 19 2008, 15:09
|
Участник

Группа: Участник
Сообщений: 48
Регистрация: 11-09-05
Пользователь №: 8 451

|
Цитата(Erv&Sed @ May 19 2008, 16:05)  owl spasibo, seichas budu probovat. Poproboval - toje samoe, pravdo bez configurazionnogo faila, u menja zagruzka s NOR, esli ne sekret chto imenno delaet etot konfiguracionniy fail dlja zagruzchika. Pervie stroki eto funkcia, no chto ona delaet ya ne razobralsya. Цитата(Erv&Sed @ May 19 2008, 16:05)  owl spasibo, seichas budu probovat. Poproboval - toje samoe, pravdo bez configurazionnogo faila, u menja zagruzka s NOR, esli ne sekret chto imenno delaet etot konfiguracionniy fail dlja zagruzchika. Pervie stroki eto funkcia, no chto ona delaet ya ne razobralsya. I eshe vopros, kak mne nado scompelirovat programmi chtobi ix mojno bilo vkluchat iz linuxa na plate. Ya pereopredelil gcc kak c64xplus-jaluna-gcc, i includniki k /cg6x_0_8_eval/include, kogda zapuskay pishet "applet not found", chto eto znachit???
|
|
|
|
|
May 19 2008, 17:56
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Erv&Sed @ May 19 2008, 12:28)  objcopy ne ponimaet, vse delo v tom chto architektura ne ta. Так, давайте по порядку. objcopy - название программы, выполняющей копирование (частей)объектных файлов. Собственно objcopy - это нативная тулса, как и gcc, например. Для того чтобы выполнить какое либо действие с объектником для Вашего TI процессора нужно использовать не нативную тулсу, а из комплекта кросскомпилера. В таком случае к имени файла программы добавляется префикс. Например если у меня в плате ARM AT91SAM9xxx с линукс то я использую arm-linux-gcc, arm-linux-objcopy и пр. Если у меня LPC23xx то я использую arm-elf-gcc, arm-elf-objcopy и тп. Если dsPIC - то pic30-gcc, pic30-objcopy...... Какой уВас кросскомпилер? Вот его <target-arch-os>-objcopy и нужно использовать. По идее преобразование форматов выглядит так Код <target-arch-os>-objcopy -I binary -O srec zImage zImage.srec МОжно поиграться параметрами Код <target-arch-os>-objcopy -I binary -O srec --change-section-lma 0x12345678 --change-section-vma 0x87654321 zImage zImage.srec Или что-то в этом роде. Цитата(Erv&Sed @ May 19 2008, 18:09)  I eshe vopros, kak mne nado scompelirovat programmi chtobi ix mojno bilo vkluchat iz linuxa na plate. Ya pereopredelil gcc kak c64xplus-jaluna-gcc, i includniki k /cg6x_0_8_eval/include, kogda zapuskay pishet "applet not found", chto eto znachit??? c64xplus-jaluna-gcc - это и есть Ваш кросскомпилер? Тогда main.c: Код #include <stdio.h> int main(int argc, char * argv[]) { printf("Hello World\n"); return 0; } Компилим для начала статически (не используем динамические либы, их может не быть или не хватать или еще чего) Код c64xplus-jaluna-gcc -static -o tst main.c Копируем tst на плату, запускаем. Ошибку "applet not found" дает скорее всего busybox потому как не находит библиотек. Скомпилируйте сначала статически свою программу. Сам busybox, на сколько я догадываюсь, запускается? PS: c64xplus-jaluna-gcc - А он точно для Линукс?
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 20 2008, 07:31
|
Частый гость
 
Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370

|
Цитата(Erv&Sed @ May 19 2008, 19:09)  Poproboval - toje samoe, pravdo bez configurazionnogo faila, u menja zagruzka s NOR, esli ne sekret chto imenno delaet etot konfiguracionniy fail dlja zagruzchika. Pervie stroki eto funkcia, no chto ona delaet ya ne razobralsya. Poproboval - toje samoe, pravdo bez configurazionnogo faila, u menja zagruzka s NOR, esli ne sekret chto imenno delaet etot konfiguracionniy fail dlja zagruzchika. Pervie stroki eto funkcia, no chto ona delaet ya ne razobralsya. Cfg файл важен  . Он отвечает за начальную конфигурацию загрузчика. Настройки DDR, PLL и т.д. смотри spraag0c (пункт 8.6). Первая строка это код функции, дальше тип команды и число аргументов. Попробуйте сначала добиться работы самого простого своего проекта. Так чтобы он грузился из памяти. Процессор точно стартует из NOR? Чем зашиваете программу? Может быть ошибка в программе прошивки? Еще одно но, когда вы работаете в симуляторе, часть работы по инициализации процессора выполняет GEL файл. Т.о. та программа, которая грузится, должна выполнить теже действия (необходимые для работы) Настройка кэша, мультиплексирование выводов и т.д. Цитата(Erv&Sed @ May 19 2008, 19:09)  I eshe vopros, kak mne nado scompelirovat programmi chtobi ix mojno bilo vkluchat iz linuxa na plate. Ya pereopredelil gcc kak c64xplus-jaluna-gcc, i includniki k /cg6x_0_8_eval/include, kogda zapuskay pishet "applet not found", chto eto znachit??? Насчет Линукса ничем помочь не могу.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|