Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
repairman (Guest)
Добавлено 07.01.2009 20:28 Редактировалось 07.01.2009 20:28 Сообщение: 31
repairman (Guest)

Цитата

И не нужно путать опции компилятора (arch=armv5tej) с переменными окружения через которые сообщают архитектуру при кросскомпиляции ядра (make ARCH=arm).


Согласен, это разные вещи... НО в процессе сборки из переменной ARCH часто получают все остальное, и опцию arch в том числе....
Я не спец в ARM, с ними только как год общаюсь...
Но на примере тех же x86... Есть один и тот же код, можно собрать с MMX и без него, разница в скорости, для определенных задач - порядок, можно всегда собирать без MMX и с 8 битной арифметикой... совместимость даже с 8088 будет... только тормозить будет жутко... т.к. вчерашний день и все давно делается проще и за меньшее число тактов, а что-то в принципе по-другому и параллельно...
IMHO, точно то же получим, если соберем код для armv5tej компилятром для armv4... или вообще какого-нибудь arm7tdmi...

Конечный файл будет иметь другой размер и другую скорость исполнения, отсюда софт, в котором очень критична, например, скорость - может иметь для разных подсемейств процессоров - разный исходный код, даже на языках высокого уровня...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 07.01.2009 г. в 20:58:44
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 07.01.2009 21:06 Редактировалось 07.01.2009 21:06 Сообщение: 32
sasamy (Guest)

Ну вот любите вы все в кучу собирать - понимаю что хотите чтобы звучало более убедительно :) Так вот для mmx - прирост в скорости будет далеко не для всех приложений, даже из самой аббревиатуры понятно для каких - MultiMedia eXtensions. Например для архитектуры х86 на чистом 386 ассемблере я напишу так что код будет выполняться быстрей даже со всей супер оптимизацией под архитектуру и уровнем хоть -O4, проверено :) Это конечно не касается мультимедиа и simd - там тот же sse порвет любую оптимизацию голово 386 для больших массивов данных. Для типичных приложений - прирост как правило составляет не более 5% при оптимизации под процессор, в то же время интеловский компилятор icc на тех приложениях которые с ним собираются уделает gcc процентов на 20. С арм то же самое - ни в v4 ни v5 нет даже fpu, так что прирост от заточки под конкретный процессор скорей всего будет в пределах погрешности измерения :)
Спуститься к концу Подняться к началу
nicsi (Guest)
Добавлено 09.01.2009 02:25 Редактировалось 09.01.2009 02:25 Сообщение: 33
nicsi (Guest)

Всем спасибо за помощь. Оказалось, сам виноват: подсунул в KERNELDIR не армовские сорцы, а сорцы самого RHEL-i686 . Драйвер запускается, вот штурмую IRQ от PIT.
Позволительно ли общие переменные внутри модуля между файловыми функциями и irq_handler делать глобальными и статическими, или пихать все в структуру и вызывать kmalloc()?
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 09.01.2009 10:48 Редактировалось 09.01.2009 10:48 Сообщение: 34
repairman (Guest)

Цитата

Всем спасибо за помощь. Оказалось, сам виноват: подсунул в KERNELDIR не армовские сорцы, а сорцы самого RHEL-i686 . Драйвер запускается, вот штурмую IRQ от PIT.


У RHEL такое же ядро как у любых других линуксов... Если версия совпадает - можно и так... menuconfig только запустить, чтобы симлинки правильно поставились на архитектуру...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 09.01.2009 г. в 10:49:29
Спуститься к концу Подняться к началу
igor1 (Guest)
Добавлено 11.01.2009 12:54 Редактировалось 11.01.2009 12:54 Сообщение: 35
igor1 (Guest)

Не могу скомпилировать модуль at91adc.с отдельно от ядра на VMware помогите и подробно? Использовать сообщение №25 не помогло.
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 11.01.2009 15:30 Редактировалось 11.01.2009 15:30 Сообщение: 36
repairman (Guest)

Цитата
Не могу скомпилировать модуль at91adc.с отдельно от ядра на VMware помогите и подробно? Использовать сообщение №25 не помогло.


Почему ? Что мешает ?
Спуститься к концу Подняться к началу
igor1 (Guest)
Добавлено 11.01.2009 18:40 Редактировалось 11.01.2009 18:40 Сообщение: 37
igor1 (Guest)

1. есть файлы at91adc.c и makefile, скрипт compile в папке /igor/mm3
compiler
#!/bin/ash
make ARCH=arm -C /home/user/src/linux-2.6.24 CROSS_COMPILE=/usr/local/bin/arm-none-linux-gnueabi- M='pwd' modules

2. запускаю скрипт ./compiler

Получаю:
make: Entering directory '/home/user/src/linux-2.6.24'
scripts/Makefile.build:41 /igor/mmm3/Makefile: No such file or directory.......
............... и т.д.
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 11.01.2009 20:02 Редактировалось 11.01.2009 20:02 Сообщение: 38
repairman (Guest)

Само ядро сконфигурировано, пропатчено и собрано ?

Проверил - все собирается... pwd-команда, возвращающая текущий каталог... раз так, текущим должен быть каталог с модулем (там есть Makefile)... кавычки поправь, чтобы shell воспринял содержимое как команду... ` это НЕ ' ....

Код

[repman@repairman adc_driver]$ make ARCH=arm -C /home/repman/Build/AT91SAM9260-SK/src/linux-2.6.28_SK CROSS_COMPILE=armv5l- M=`pwd` modules
make: Entering directory `/home/repman/Build/AT91SAM9260-SK/src/linux-2.6.28_SK'
CC [M] /home/repman/Build/AT91SAM9260-SK/src/adc_driver/at91adc.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/repman/Build/AT91SAM9260-SK/src/adc_driver/at91adc.mod.o
LD [M] /home/repman/Build/AT91SAM9260-SK/src/adc_driver/at91adc.ko
make: Leaving directory `/home/repman/Build/AT91SAM9260-SK/src/linux-2.6.28_SK'


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 11.01.2009 г. в 20:28:42
Спуститься к концу Подняться к началу
igor1 (Guest)
Добавлено 11.01.2009 20:46 Редактировалось 11.01.2009 20:46 Сообщение: 39
igor1 (Guest)

ну никак не получается, если можно выслать ваш пример со всеми приблудами? С уважением!
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 11.01.2009 21:08 Редактировалось 11.01.2009 21:08 Сообщение: 40
repairman (Guest)

Уже выслал... Какие еще приблуды нужны ?

Драйвер здесь: http://www.at91.com/samphpbb/viewtopic.php?f=12&t=4992
Ядра здесь: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
Патчи к ядрам относительно AT91 - здесь: http://maxim.org.za/at91_26.html
Патч к ядру, применительно к SK тут: http://www.starterkit.ru/new/uploads/SSDForums/SSDForums-956.zip

Тулчайнов есть... наверное, у тебя CodeSourcery (???) , у меня armv5l, применительно к сборке ядра - разницы никакой...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 11.01.2009 г. в 21:20:50
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Embedded Linux