wiki:sbc9263_sw
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
Последняя версия | |||
— | wiki:sbc9263_sw [2012/11/20 19:14] – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Компиляция загрузчиков для SBC-9263 и SBC-9263i ====== | ||
+ | // | ||
+ | |||
+ | // | ||
+ | |||
+ | // | ||
+ | |||
+ | ===== Необходимые утилиты ===== | ||
+ | |||
+ | Для компиляции Bootstrap, u-boot и ядра Linux требуется кросс-компилятор GNU GCC. Процедуры установки GNU GCC описаны [[arm-gcc|здесь]]. | ||
+ | |||
+ | ===== Последовательность старта процессора ===== | ||
+ | При подаче питания на процессор он вначале ищет таблицу прерываний в различных источниках: | ||
+ | |||
+ | ===== Компиляция Bootstrap ===== | ||
+ | * Исходные коды Bootstrap скачивают со страницы [[http:// | ||
+ | Проверено в версии Bootstrap' | ||
+ | * Bootstrap распаковывают в любую директорию, | ||
+ | < | ||
+ | * Скачайте патч для SBC-9263, который меняет настройки PLL для кварца 16.0 МГЦ, установленного на модуле. | ||
+ | [[http:// | ||
+ | * Войдите в директорию Bootstrap-v1.16 и примените [[http:// | ||
+ | < | ||
+ | ==== для Dataflash ==== | ||
+ | * Затем перейдите в директорию Bootstrap-v1.16/ | ||
+ | < | ||
+ | * Файл dataflash_at91sam9263ek.bin необходимо записать в Dataflash на плату с помощью утилиты SAM-BA. | ||
+ | |||
+ | // | ||
+ | |||
+ | | Переменная ^ SDRAM 32M ^ SDRAM 64M ^ | ||
+ | ^JUMP_ADDR|0x21f00000|0x23f00000| | ||
+ | |||
+ | Это необходимо для корректного расположения образа u-boot в верхних адресах SDRAM. | ||
+ | |||
+ | ==== для NOR-flash ==== | ||
+ | |||
+ | * Перейдите в директорию Bootstrap-v1.14/ | ||
+ | < | ||
+ | * Файл norflash_at91sam9263ek.bin необходимо записать в Spansion NOR с помощью утилиты SAM-BA по нулевому смещению для NOR флеш. | ||
+ | // | ||
+ | |||
+ | | Переменная ^ SDRAM 32M ^ SDRAM 64M ^ | ||
+ | ^JUMP_ADDR|0x21f00000|0x23f00000| | ||
+ | |||
+ | Это необходимо для корректного расположения образа u-boot в верхних адресах SDRAM. | ||
+ | ===== Компиляция u-boot ===== | ||
+ | * Скачайте исходные коды u-boot-1.3.4 [[http:// | ||
+ | * Распакуйте u-boot и войдите в директорию u-boot-at91 | ||
+ | * Скачайте патч [[ftp:// | ||
+ | < | ||
+ | * Для SBC-9263(i) скачайте патч [[http:// | ||
+ | < | ||
+ | |||
+ | Далее необходимо выбрать где будут хранится переменные окружения: | ||
+ | ==== Env в Dataflash ==== | ||
+ | < | ||
+ | ==== Env в Nandflash ==== | ||
+ | < | ||
+ | ==== Env в Norflash ==== | ||
+ | < | ||
+ | * Компиляция кода | ||
+ | < | ||
+ | make CROSS_COMPILE=/ | ||
+ | </ | ||
+ | * Полученный файл uboot.bin необходимо записать в Dataflash/ | ||
+ | |||
+ | // | ||
+ | |||
+ | | Переменная ^ SDRAM 32M ^ SDRAM 64M ^ имя файла ^ | ||
+ | ^TEXT_BASE | ||
+ | ^PHYS_SDRAM_SIZE | ||
+ | ^CFG_LOAD_ADDR | ||
+ | |||
+ | ===== Пресобранные образы bootstrap и u-boot ===== | ||
+ | |||
+ | | ^ SDRAM 32M ^ SDRAM 64M ^ | ||
+ | ^NOR-flash Bootstrap 1.16|[[http:// | ||
+ | ^Dataflash Bootstrap 1.11|[[http:// | ||
+ | ^SBC-9263 u-boot 1.3.4|[[http:// | ||
+ | ^SBC-9263i u-boot 1.3.4||[[http:// | ||
+ | ===== Компиляция ядра Linux Embedded ===== | ||
+ | Компиляция ядра выполняется с помощью скрипта, | ||
+ | // | ||
+ | |||
+ | Запись ядра в NOR флеш модуля SBC-9263 выполняют следующими командами: | ||
+ | < | ||
+ | U-Boot> tftp 22000000 uImage | ||
+ | U-Boot> erase 1:0-16 | ||
+ | U-Boot> cp.b 22000000 10000000 <size of kernel> | ||
+ | </ | ||
+ | |||
+ | Старт ядра с NOR флеш выполняют со следующими значениями переменных окружения U-Boot:\\ | ||
+ | < | ||
+ | |||
+ | ===== Пресобранные ядра версии 2.6.27 для разных TFT дисплеев ===== | ||
+ | |||
+ | | Тип экрана ^ Адрес ^ | ||
+ | ^ ME-TFT37SH | ||
+ | ^ ME-TFT8OSD | ||
+ | ^ ME-MTF7TTS | ||
+ | ^ ME-TFT8SHCFL | ||
+ | |||
+ | ===== Сборка файловой системы ===== | ||
+ | В этом разделе описана процедура сборки минимальной конфигурации файловой системы с работой через консоль без графической оболочки. | ||
+ | |||
+ | Процедура проверена в дистрибутиве: | ||
+ | * Fedora Core 7 | ||
+ | * Fedora Core 11 | ||
+ | |||
+ | 1) Для компиляции требуется установит кросс-компилятор от CodeSourcery, | ||
+ | |||
+ | 2) Скачивают [[http:// | ||
+ | |||
+ | Архив распаковывают в домашнюю директорию пользователя. | ||
+ | |||
+ | 3) Далее необходимо настроить переменные окружения для сборочных скриптов. | ||
+ | |||
+ | Переменные окружения находятся в файле build.sh: | ||
+ | |||
+ | * TOOLCHAIN_DIR\\ | ||
+ | это путь к директории, | ||
+ | * TARGET_NAME\\ | ||
+ | Для компилятора 2008q1-126 для ARM GNU/Linux это значение всегда arm-none-linux-gnueabi, | ||
+ | |||
+ | * LINUX_KERNEL_VER | ||
+ | |||
+ | Это значение может быть может содержать либо только основную версию ядра 2.6: 25, 26, 27, 28, либо основную + дробную: | ||
+ | |||
+ | // | ||
+ | |||
+ | * LINUX_PATCH_VER | ||
+ | |||
+ | Эта переменая должна содержать только номер основной версии ядра 2.6: 25, 26, 27, 28, 29, потому как патчи делают для основной версии и они подходят к дробным. | ||
+ | |||
+ | 4) Запуск компиляции файловой системы | ||
+ | |||
+ | Для компиляции файловой системы необходимы права суперпользователя (root), т.к. в процессе сборки создается статическое дерево устройств (/dev/xxx). Для удобства компиляции устанавливают пакет sudoers в линукс и разрешают в нем применение команд с правами суперпользователя для вашего пользователя. | ||
+ | |||
+ | Выполняют команду: | ||
+ | < | ||
+ | выполнение которой занимает порядка нескольких минут на процессоре Intel Core 2 Duo. | ||
+ | |||
+ | После завершения работы скрипта вам доступно дерево файловой системы в директории " | ||
+ | |||
+ | * Чтобы добавить директорию файловой системы в NFS, добавляют следующую строку в файл "/ | ||
+ | < | ||
+ | // | ||
+ | |||
+ | * Чтобы создать образ JFFS2 для загрузки в NOR выполняют следующую команду: | ||
+ | < | ||
+ | Для NAND флеш также может понадобится опция " | ||
+ | |||
+ | ===== Загрузка файловой системы на платформу ===== | ||
+ | |||
+ | Инструкции как выполнять загрузку ПО на платформу вы найдете [[sam-ba|здесь]]. | ||
+ | |||
+ | Для модуля SBC-9263 ядро имеет следующую таблицу разделов для NOR-флеш: | ||
+ | 0x10000000 - 0x10400000 - пространство для хранения ядра\\ | ||
+ | 0x10400000 - 0x40000000 - пространство для файловой системы | ||
+ | |||
+ | Чтобы загрузить файловую систему в NOR-флеш модуля SBC-9263 выполняют следующие команды: | ||
+ | U-Boot> erase 1:32-320 (эта команды полностью стирает флеш по адресам 0x10400000 - 0x40000000)\\ | ||
+ | U-Boot> tftp 21000000 rootfs.jffs2\\ | ||
+ | U-Boot> cp.b 21000000 10400000 <size of image> | ||
+ | |||
+ | Ядру Linux необходимо сообщить с какого раздела вы будете выполнять загрузку. Для этого в окружении u-boot определяют значение переменной bootargs следующего содержания: | ||
+ | < |
wiki/sbc9263_sw.txt · Последнее изменение: 2014/07/16 10:56 — maxx