Цитата(andrewlekar @ May 16 2012, 08:43)

Глупости пишете. Как он у меня работает, если я строю ядро под другой процессор?
А файл head.S есть в разных директориях. Я говорю о том, который в каталоге /arch/arm/boot/compressed. И там нет никаких head-nommu.
Если у Вас все работает, что мы тогда тут обсуждаем?
Если верить Вашему описанию выше, работает не все. В частности, Unaligned access exceptions в ядре возникать не должны. По крайней мере, мы в Emcraft Systems этого не наблюдаем ни на LPC1788, на на какой-либо из других Cortex-M3 / M4, которые мы поддерживаем.
Мы действительно добавили в ядро конфигурационную опцию, позволяющую отключать в ядре процессора генерацию Unaligned access exceptions, однако, назначение ее - заставить работать пользовательские приложения, которые по каким-то своим соображениям лезут в память по невыровненным адресам (код Qt/Embedded этим грешит, в частности). Использовать эту опция для того, чтобы обойти проблемы в ядре, я бы не стал; это лечение симптомов, а не проблемы. В лучшем случае, потеряете в производительности, в худшем - просто маскируете какую-то проблему.
По моему мнению, причины проблем, которые Вы наблюдаете что-то одно из нижеследующего (а может, комбинация этих факторов):
- неверная конфигурация ядра. Если работает код, предназначенный для другой конфигурации или даже для другого процессора, ничего хорошего не получится.
- не та версия toolchain. Код Emcraft Systems работает с конкретной версией GNU Toolchain. Мы пробовали более поздние версии, с ними возникли проблемы. Естественно, их тоже можно заставить работать, но пока не дошли руки.
- какая-то несовместимость с U-boot от NXP (lpcware.com). На самом деле, у нас есть клиент (тоже LPC1788), который тоже взял порт U-boot от lpcware (ему была нужна поддержка NAND Flash, а мы это пока не поддерживаем в U-boot для LPC1788), и он тоже видит похожие проблемы.