- •Инсталляция 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Г. Инженер-электроник: Станислав г. Приходько
Результат сборки образов из скрипта
root@server:build# ./build_Image_FS.sh
Create KERNEL
Image Name:
Created: Wed Mar 7 10:20:30 2007
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 631800 Bytes = 616.99 kB = 0.60 MB
Load Address: 0x20008000
Entry Point: 0x20008000
Create FS
Image Name:
Created: Wed Mar 7 10:20:30 2007
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1812491 Bytes = 1770.01 kB = 1.73 MB
Load Address: 0x20288000
Entry Point: 0x20288000
Должны получиться 2 файла
kernel
fs
где,
kernel– это ядро
fs– это файловая система
Linux usb File System – usb Файловая система
Linux USB File System – MMC Файловая система
Создание файла устройства
mknod -m 777 /mnt/fff/dev/mmcblk0 b 254 0
mknod -m 777 /mnt/fff/dev/mmcblk0p1 b 254 1
Linux File System – Файловая система
Использование корректно пре-собранной файловой системы.
Для старта дистрибутива, можно использовать пре-собранную ФС, с сайта с статьей от heavy-online
Как собирается и создается файловая сисима будет описано в разделе ‑ «MTDLinux File System ‑ Файловая система наDataFlash».
MTDLinux File System ‑ Файловая система наDataFlash
[root@AT91RM9200_SK /]$dd if=/dev/mtd2 of=/mnt/mtd2 bs=1k count=8000
[root@AT91RM9200_SK /]$chmod 777 /dev/mtd2
[root@AT91RM9200_SK /]$mkfs.ext2 /mnt/mtd2
[root@AT91RM9200_SK /]$dd if=/mnt/mtd2 of=/dev/mtdblock2
[root@AT91RM9200_SK /]$mount -o loop /dev/mtdblock2 /fs/
[root@AT91RM9200_SK /]$mkdir /fs/test
[root@AT91RM9200_SK /]$umount /fs/
[root@AT91RM9200_SK /]$mount -o loop /dev/mtdblock2 /fs/
[root@AT91RM9200_SK /]$ll /fs/
drwxr-xr-x 4 root root 1024 Jan 1 01:16 ./
drwxr-xr-x 16 root root 1024 Jan 1 00:50 ../
drwx------ 2 root root 12288 Jan 1 00:18 lost+found/
drwxr-xr-x 2 root root 1024 Jan 1 01:16 test/
[root@AT91RM9200_SK /]$
[root@AT91RM9200_SK /]$mount
/dev/root on / type ext2 (rw)
/proc on /proc type proc (rw)
none on /dev/pts type devpts (rw)
/dev/sda1 on /mnt type msdos (rw,fmask=0022,dmask=0022,codepage=cp866)
/dev/mtdblock2 on /fs type ext2 (rw)
[root@AT91RM9200_SK /]$
Linux Configuration – Конфигурация Дистрибутива
Установка и настройка платы at91rm9200_sk
Ядро проверят верность указанного ARP, а так как при загрузке u-boot назаначает ARP, то корректно в нем нужно его указать для корректного старта системы с сетью, с конкренным ARP адресом.
Например:
[root@AT91RM9200_SK /]$ifconfig eth0 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255 hw ether 00:11:22:33:44:55 up SIOCSIFFLAGSeth0: Setting MAC address to 00:11:22:33:44:55 : Cannot assigeth0: Link now 100-FullDuplex n requested address [root@AT91RM9200_SK /]$ifconfig eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55 inet addr:192.168.1.123 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:346 (346.0 B) TX bytes:0 (0.0 B) Interrupt:24 Base address:0xc000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Устанавливаемый явным образом ARPадрес00:11:22:33:44:55– имеет верное значение. Начинается с 00.
[root@AT91RM9200_SK /]$ping server PING server (192.168.1.1): 56 data bytes 84 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.9 ms
Если ARPадрес будет указан не верный, будет сообщение об ошибку инициализацииEthernetинтерфейса, например
[root@AT91RM9200_SK /]$ifconfig eth0 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255 hw ether 11:22:33:44:55:66 up eth0: Link now 100-FullDuplex SIOCSIFHWADDR: Cannot assign requested address [root@AT91RM9200_SK /]$
Устанавливаемый явным образом ARPадрес11:22:33:44:55:66– имеет недопустимое значение.