ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.  (Прочитано 22196 раз)

0 Пользователей и 1 Гость просматривают эту тему.

speculzzz

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 69
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #15 : 20 Января, 2010, 15:44:06 »

тебе надо еще загрузчик править, чтоб он код платформы TION_EP9315 ядру передавал
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #16 : 21 Января, 2010, 18:16:28 »

СПАСИБО!
Пропатчил загрузчик. Загрузил ядро 2.6.21.5-eabi, в конфиге SCSI USB support и USB Mass Storage включены, но флешка с КФС не монтируется.
Может кто-нибудь сталкивался с этим?
Записан

speculzzz

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 69
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #17 : 22 Января, 2010, 10:50:35 »

Ну такое ядро я не ставил, но вот в 2.6.32.3 флешка не работала без "SCSI disk support"(CONFIG_BLK_DEV_SD=y)
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #18 : 22 Января, 2010, 15:15:51 »

стоит это все...
и поддержка scsi disk и usb mass storage.
Скачал последний кратер (svn819) с сайте zao-zeo собрал с конфигурацией по умолчанию. проверил что включена поддержка всех типов USB mass storage и scsi. Собирал компилятором 4.1.1 опять же с сайта zao-zeo.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "sdb1" or unknown-block(2,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
В чем проблема не пойму. У меня нормальный образ собирается только из crater-svn741. С ядром 2.6.20.4
« Последнее редактирование: 22 Января, 2010, 15:17:33 от scad »
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #19 : 23 Января, 2010, 17:06:15 »

В чем проблема не пойму. У меня нормальный образ собирается только из crater-svn741. С ядром 2.6.20.4
КФС на внешней USB-флешке?
USB и SCSI драйверы модулями? Если модулями, initrd (или типа того) пользуем?
Если вкомпилены, ядру rootdelay= в cmdline стоит?
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #20 : 26 Января, 2010, 12:58:23 »

Спасибо. Все заработало. Дело было в rootdelay. Стоял 3 секунды - на 2.6.20.4 флешка успевала монтироваться, а в 2.6.21.5 нет. Сейчас поставил 6 сек. - все ок.

Еще вопрос. Никто vlc - плеер этим тулчейном не пробовал собирать. У меня все собирается, но при запуске не может найти символ
__gnu_uldivmod_helper.
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #21 : 26 Января, 2010, 17:48:29 »

Собрал.
vlc: Undefined symbol __gnu_uldivmod_helper лечится следующим образом. Добавляем
unsigned long long
__gnu_uldivmod_helper (unsigned long long a,
                        unsigned long long b,
                        unsigned long long *remainder)
{
   unsigned long long quotient;

   quotient = __udivdi3 (a, b);
   *remainder = a - b * quotient;
   return quotient;
}
в vlc.c
В итоге собрал вот этот кратер:http://arm.cirrus.com/files/linux/heelrod/linux-crater_20080104_d-src.tar.bz2 (в нем есть vlc - медиа плеер, ogg+ffmpeg кодеки) для ТИОН с ядром 2.6.21.5 и патчами от faa.

Ogg и mp3 файлы проигрываются очень медленно, хотя поддержка сопроцессора включена. Видео не проигрывается.
Ключи при сборке:
-mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp -O2 -ffast-math

Забыл добавить: Загрузка процессора при проигрывании 5-10%, но все равно проигрывается все медленно.
mpg123 "из коробки" не заработал
« Последнее редактирование: 26 Января, 2010, 17:54:04 от scad »
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #22 : 27 Января, 2010, 09:49:01 »

Собрал тоже самое, но тулчейном от cirrus-а (gcc-4.1.2). Все равно при проигрывании mp3 или ogg файлов все играется очень медленно. Может быть дело в alsa или в ядре? Но aplay, arecord работают нормально - файлы записываются и проигрываются...

Да. Еще момент - у меня звуковая карточка не от ЗАО-ЗЭО - просто нашел подходящий модуль от Advantech-овского пром. компа и подключил соответствующие входы-выходы. Кодек там Realtek ALC202 http://www.realtek.com/products/productsView.aspx?Langid=1&PFid=29&Level=5&Conn=4&ProdID=53

to faa: А вы не пробовали своим тулчейном собирать кодеки и играть звук?
« Последнее редактирование: 27 Января, 2010, 10:01:47 от scad »
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #23 : 27 Января, 2010, 12:23:16 »

to faa: А вы не пробовали своим тулчейном собирать кодеки и играть звук?

Звук не пробовал. А fftbench работает.
Но gcc4.2.4-eabi чуть медленнее, чем gcc4.1.2-eabi. Хотя это могли быть погрешности измерений. Особо не исследовал.
Будет время - звук соберу, проверю. Мои платы без звука. Надо Сириуса реанимировать и на нем смотреть :)
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #24 : 12 Мая, 2010, 09:01:24 »

Случайно обнаружил еще одну вещь. Почему-то GPIO не работает.
Ядро 2.6.21.5.
Патч отсюда: ftp://ftp.ntcsm.ru/pub/tion9315/tion9315-2.6.21.5-eabi.patch.bz2

делаю примерно так:
базовый адрес GPIO: 0x80840000
получаю mmap указатель на этот адрес
порт С и порт D (обычные выходы GPIO) находятся по адресам 0x80840008 и 0x8084000C соответственно.
Пишу, читаю байты.
В 2.6.20.4 - все работало, в 2.6.21.5 пишет Segmentation fault при попытке чтения или записи...
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #25 : 12 Мая, 2010, 21:18:37 »

В 2.6.20.4 - все работало, в 2.6.21.5 пишет Segmentation fault при попытке чтения или записи...
uclibc какая? в 0.9.29 была ошибка - mmap старше 0х7fffffff криво работал.
патч я кидал в группу на гугле.
в тулчейне с фтп этот патч есть
Записан

scad

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 48
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #26 : 13 Мая, 2010, 11:29:31 »

Да. действительно патча не было. Наложил патч и на uClibc, которая в crunch-tools и на ту, которая собирается для таргета. Пересобрал тулчейн, потом новым тулчейном пересобрал ядро и uClibc. не помогло ???
Записан

faa

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 72
Re: toolchain с gcc-4.2.4-eabi для ТИОН, ТИОН-ПРО и т.п.
« Ответ #27 : 13 Мая, 2010, 15:09:58 »

Да. действительно патча не было. Наложил патч и на uClibc, которая в crunch-tools и на ту, которая собирается для таргета. Пересобрал тулчейн, потом новым тулчейном пересобрал ядро и uClibc. не помогло ???
Исходник в студию.
ЗЫ: У меня devmem работает (и от busybox, и devmem2, и devmem). Свои программки тоже все работают.
ЗЫЗЫ: Вот кусочки от рабочей devmem.
#define MAP_SIZE 1024UL
#define MAP_MASK (MAP_SIZE - 1)

    if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL;
    printf("/dev/mem opened.\n");
    fflush(stdout);
   
    /* Map one page */
    map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, target & ~MAP_MASK);
    if(map_base == (void *) -1) FATAL;
    printf("Memory mapped at address %p.\n", map_base);
    fflush(stdout);
   
    virt_addr = map_base + (target & MAP_MASK);
/* skip */
*((volatile unsigned char *) virt_addr) = writeval;
read_result = *((volatile unsigned char *) virt_addr);

Записан