- •Инсталляция 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Г. Инженер-электроник: Станислав г. Приходько
Вычисление смещения карты памяти.
Карта памяти в EVM9200 ( для нашей конфигурации подходит ):
Листинг: Карта памяти:
Dataflash:
C000 0000 - romboot (32kb - 0x8000)
C000 8000 - u-boot (128kb - 0x20000)
C002 8000 - u-boot config (8kb - 0x2000)
C002 A000 - kernel (1240kb - 0x136000)
C016 0000 - initrd (2Mb - 0x200300)
C036 0300 - filesystem (4.9Mb - 0x4DFD00) - обязательно должен начинаться с нового сектора (адрес кратен 1056)
RAM:
2000 8000 - kernel (0x280000)
2028 8000 - initrd (0x500000)
20A0 0000 - compressed kernel (0x200000)
20C0 0000 - compressed initrd (0x200000)
20F0 0000 - u-boot
Правка Makefile
Нужно поправить Makefile на предмет переменной CROSS_COMPILE:
Для компиляции u‑boot‑1.1.1 - подправить Makefile
Листинг программы, отображающий изменения в исходном тексте:
…
ifeq ($(ARCH),arm)
#CROSS_COMPILE = arm-linux-
#CROSS_COMPILE = /usr/local/arm9/bin/arm-linux-
CROSS_COMPILE = /opt/uClinux/bin/arm-elf-
Endif
…
Сборка u‑boot‑1.1.1
Сборка осуществляется путем набора нескольких команд.
bash# make distclean
bash# make RM9200_config
bash# make
или
bash# make distclean && make RM9200_config && make
Если все удачно - получится файл u-boot.bin(gzip-версия не понадобится, т.к.rombootне держитgzip..
Запись u boot 1.1.1 в DataFlash из Romboot
*----------------------------------------*
Enter: 1 c0008000
Download Dataflash [0xc0008000]
CCCCCCCCCCCC
Нужно выбрать файл romboot.binи выбрать протокол передачи файловX-modemи отправить файл.
По завершению на экране терминала появится сообщение.
Modification of Arm Vector 6 :841a0bc
Write 95744 bytes in DataFlash [0xc0008000]
Hit a Key!aflash: OK
Теперь можно загрузить u-boot-1.1.1 (в меню Rombootвыбрать пункт "3"), после выбора начнет загружатьсяU-Boot.
Работа с u‑boot‑1.1.1 из DataFlash или ram
Теперь когда u‑boot‑1.1.1скомпилирован, с ним можно начинать работать.
Если u‑boot‑1.1.1был загружен вDataFlashиRombootего загрузил, то загруженныйu‑boot‑1.1.1имеет следующий вид:
Рисунок 3 - командная строка u‑boot‑1.1.1
Перечень доступных команд можно узнать если напрать команду:
u-boot -> ?
Также, пользуясь документами: AT91RM9200DK U-Boot User ManualиAT91RM9200DK U-Boot Developper Manual, можно ознакомиться с возможностями программыu-boot.
Linux kernel – Ядро os Linux
Переменные окружения для сборки ядра
Для сборки ядра, нужно обязательно помнить о следующем правиле.
- всегда должны быть особые переменные.
Для начала установим переменные окружения для сборки toolchain-а:
bash# export TARGET=arm-linux
bash# export PREFIX=/usr/local/arm9
bash# export SYSROOT=${PREFIX}/sysroot
bash# export ARCH=arm
bash# export CROSS_COMPILE=${TARGET}-
bash# export PATH=$PATH:${PREFIX}/bin
или можно в консоли выполнить:
bash$ . ./env.sh
сам скрипт имеет содерживое
#! /bin/bash
export TARGET=arm-linux
export PREFIX=/usr/local/arm9
export SYSROOT=${PREFIX}/sysroot
export ARCH=arm
export CROSS_COMPILE=${TARGET}-
export PATH=$PATH:${PREFIX}/bin
ВНИМАНИЕ ! Нельзя просто запустить env.sh ! В этом случае создастся новый шел для запуска и переменные окружения проживут в нем доли секунды, пока исполняется сам env.sh. Обязательна команда ". " - это запуск шел-скрипта без запуска дополнительного шела.