- •Инсталляция os Linux на аппаратную платформу at91rm9200_sk
- •Список используемой литературы.
- •Описание процессораAt91rm9200
- •Микроконтроллер на основе процессора arm920t ™
- •Структурная схема микроконтроллера at91rm9200:
- •Общее описание:
- •Структурная схема разрабатываемой аппаратной платформы
- •Установка и настройка tftpd
- •Сборка tftp:
- •Настройка периферии
- •Тактовая частота процессора и памяти.
- •Romboot
- •Main.Cpp: правка времени ожидания
- •Тактовая частота, sdram-память
- •Main.H: правка тактовой частоты процессора
- •Init.Cpp: правка типа и тактовой частоты и частоты памяти
- •Spi DataFlash-память
- •Dataflash.Cpp: конфигурация количества микросхем Flash-памяти
- •Dataflash.H: конфигурация количества микросхем Flash-памяти
- •Dataflash.Cpp: инициализация
- •At45.Cpp - конфигурация количества микросхем Flash-памяти
- •Компиляция программы Romboot
- •Программирование spi Dataflash.
- •Назначение
- •Возможности
- •U‑boot‑1.1.1/board/rm9200/rm9200.C – номер архитектуры
- •U‑boot‑1.1.1/include/configs/rm9200.H – файл конфигурации платы
- •Дополнительная spi DataFlash
- •U‑boot‑1.1.1/cpu/at91rm9200/at45.C – драйвер DataFlash памяти at45dBxxx
- •Драйвер Ethernet - lxt972
- •U‑boot‑1.1.1/include/lxt971a.H
- •U‑boot‑1.1.1/include/at91rm9200_net.H – подключение header-драйвера
- •U‑boot‑1.1.1/board/rm9200/at91rm9200_ether.C (et_enable)
- •U‑boot‑1.1.1/board/rm9200/at91rm9200_ether.C – добавление драйвера lxt972
- •U‑boot‑1.1.1/include/configs/rm9200.H - набор сетевых команд
- •Компиляция u-boot-1.1.1
- •Перечень программ и утилит для сборки u-boot-1.1.1
- •Содержимое файла readme.U‑boot.Patches
- •Вычисление смещения карты памяти.
- •Правка Makefile
- •Сборка u‑boot‑1.1.1
- •Запись u boot 1.1.1 в DataFlash из Romboot
- •Работа с u‑boot‑1.1.1 из DataFlash или ram
- •Linux kernel – Ядро os Linux
- •Переменные окружения для сборки ядра
- •Конфигурации ядра
- •Подготовка к компиляции
- •Конфигурация
- •Редактирование исходного текста
- •Подключение конструктивного исполнения контроллера
- •Подключение светодиода
- •Подключение Ethernet контроллера
- •Подключение Dataflash
- •Компиляция ядра
- •Конечная сборка ядра и инсталляция
- •Скрипт для сборки сжатых образов
- •Результат сборки образов из скрипта
- •Linux usb File System – usb Файловая система
- •Linux Configuration – Конфигурация Дистрибутива
- •Установка и настройка платы at91rm9200_sk
- •Linux Tune – Настройка под конечную цель
- •2007Г. Инженер-электроник: Станислав г. Приходько
Компиляция ядра
Сборка ядра осуществляется командой: make
bash# make
пример:
root@server:linux# make
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h
SYMLINK include/asm-arm/arch -> include/asm-arm/arch-at91rm9200
make[1]: `include/asm-arm/mach-types.h' не требует обновления.
CHK include/linux/utsrelease.h
CHK include/linux/compile.h
CC arch/arm/kernel/setup.o
LD arch/arm/kernel/built-in.o
GZIP kernel/config_data.gz
IKCFG kernel/config_data.h
CC kernel/configs.o
LD kernel/built-in.o
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
KSYM .tmp_kallsyms1.S
AS .tmp_kallsyms1.o
LD .tmp_vmlinux2
KSYM .tmp_kallsyms2.S
AS .tmp_kallsyms2.o
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
MODPOST vmlinux
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gz
AS arch/arm/boot/compressed/piggy.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
You have new mail in /var/mail/root
root@server:build# ./build_Image_FS.sh
После сборки получится готовое ядро. Лежать оно должно по следующему пути
linux/arch/arm/boot/zImage
В ранее собранном U-boot должен был также собраться файл mkimage, который нужен теперь для подготовки ядра и Файловой системы к загрузке в ARM.
Конечная сборка ядра и инсталляция
Тут все - как при сборке ядра под компьютер:
bash# cd ${PREFIX}/src/linux
bash# make Image
bash# make modules
bash# make INSTALL_MOD_PATH=${SYSROOT} modules_install
Это нужно делать, когда уже окончательная сборка + инсталляция, пока не стоит торопиться выполнять эти 3 последние команды.
Скрипт для сборки сжатых образов
#!/bin/bash
#=========================
#root@server:build# ./mkimage --help
#Usage: ./mkimage -l image
# -l ==> list image header information
# ./mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
# -A ==> set architecture to 'arch'
# -O ==> set operating system to 'os'
# -T ==> set image type to 'type'
# -C ==> set compression type 'comp'
# -a ==> set load address to 'addr' (hex)
# -e ==> set entry point to 'ep' (hex)
# -n ==> set image name to 'name'
# -d ==> use image data from 'datafile'
# -x ==> set XIP (execute in place)
#=========================
echo " Create KERNEL "
rm -rf Image.gz
cp ./linux/arch/arm/boot/Image ./
gzip ./Image
./mkimage -A arm -O linux -C gzip -a 0x20008000 -e 0x20008000 -d Image.gz kernel
#./mkimage -A arm -O linux -C none -a 0x20007fc0 -e 0x20008000 -d Image.lnk uImage # lelick 20007fc0
#=========================
echo " Create FS "
./mkimage -A arm -O linux -C gzip -T ramdisk -a 0x20288000 -d rm9200fs.ext2.gz fs