Согласен, это разные вещи... НО в процессе сборки из переменной ARCH часто получают все остальное, и опцию arch в том числе....
Я не спец в ARM, с ними только как год общаюсь...
Но на примере тех же x86... Есть один и тот же код, можно собрать с MMX и без него, разница в скорости, для определенных задач - порядок, можно всегда собирать без MMX и с 8 битной арифметикой... совместимость даже с 8088 будет... только тормозить будет жутко... т.к. вчерашний день и все давно делается проще и за меньшее число тактов, а что-то в принципе по-другому и параллельно...
IMHO, точно то же получим, если соберем код для armv5tej компилятром для armv4... или вообще какого-нибудь arm7tdmi...
Конечный файл будет иметь другой размер и другую скорость исполнения, отсюда софт, в котором очень критична, например, скорость - может иметь для разных подсемейств процессоров - разный исходный код, даже на языках высокого уровня...
Ну вот любите вы все в кучу собирать - понимаю что хотите чтобы звучало более убедительно :) Так вот для mmx - прирост в скорости будет далеко не для всех приложений, даже из самой аббревиатуры понятно для каких - MultiMedia eXtensions. Например для архитектуры х86 на чистом 386 ассемблере я напишу так что код будет выполняться быстрей даже со всей супер оптимизацией под архитектуру и уровнем хоть -O4, проверено :) Это конечно не касается мультимедиа и simd - там тот же sse порвет любую оптимизацию голово 386 для больших массивов данных. Для типичных приложений - прирост как правило составляет не более 5% при оптимизации под процессор, в то же время интеловский компилятор icc на тех приложениях которые с ним собираются уделает gcc процентов на 20. С арм то же самое - ни в v4 ни v5 нет даже fpu, так что прирост от заточки под конкретный процессор скорей всего будет в пределах погрешности измерения :)
Всем спасибо за помощь. Оказалось, сам виноват: подсунул в KERNELDIR не армовские сорцы, а сорцы самого RHEL-i686 . Драйвер запускается, вот штурмую IRQ от PIT.
Позволительно ли общие переменные внутри модуля между файловыми функциями и irq_handler делать глобальными и статическими, или пихать все в структуру и вызывать kmalloc()?
У RHEL такое же ядро как у любых других линуксов... Если версия совпадает - можно и так... menuconfig только запустить, чтобы симлинки правильно поставились на архитектуру...
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.......
............... и т.д.
Само ядро сконфигурировано, пропатчено и собрано ?
Проверил - все собирается... pwd-команда, возвращающая текущий каталог... раз так, текущим должен быть каталог с модулем (там есть Makefile)... кавычки поправь, чтобы shell воспринял содержимое как команду... ` это НЕ ' ....