- •Инсталляция 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Г. Инженер-электроник: Станислав г. Приходько
Настройка периферии
Тактовая частота процессора и памяти.
Тактовая частота, должна быть корректно задана и используется в дальнейшем в программе u-bootи при загрузке ядра Linux.
В файле main.cppпрограммыu-boot, должна быть строка в место той, что по умолчанию:
#define AT91C_PLLA_VALUE 0x2024be04 // -> 170,496MHz
Значение 0x2024be04задает частоту.
Тактовая частота процессора получается методом программирования нескольких регистров блока PMC.
Рисунок - Power Management Controller Block Diagram
Детальное описание этого регистра описано в Datasheet, раздел:PMC Clock Generator PLL A Register, страница 285.
23.6.9 PMC Clock Generator PLL A Register
Register Name: CKGR_PLLAR
Access Type: Read/Write
Possible limitations on PLL A input frequencies and multiplier factors should be checked before using the Clock Generator.
Value to be written in CKGR_PLLAR must not be the same as current value in CKGR_PLLAR.
• DIVA: Divider A
DIVA Divider Selected
0 Divider output is 0
1 Divider is bypassed
2 - 255 Divider output is the Main Clock divided by DIVA.
• PLLACOUNT: PLL A Counter
Specifies the number of Slow Clock cycles before the LOCKA bit is set in PMC_SR after CKGR_PLLAR is written.
• OUTA: PLL A Clock Frequency Range
OUTA PLL A Frequency Output Range
0 0 80 MHz to 160 MHz
0 1 Reserved
1 0 150 MHz to 240 MHz
1 1 Reserved
• MULA: PLL A Multiplier
0 = The PLL A is deactivated.
1 up to 2047 = The PLL A Clock frequency is the PLL A input frequency multiplied by MULA + 1.
Таблица 1 - Вставка описания регистра из Datasheet.
Пояснение:
Значение (0x2024be04), присвоенное макросуAT91C_PLLA_VALUE, в дальнейшем загружается в регистр управления тактовой частотой в программеu‑boot:
…
//* -Setup the PLL A
pCkgr->CKGR_PLLAR = AT91C_PLLA_VALUE;
…
Формула при расчете тактовой частоты: F=Fosc*(MULA+1)/DIV;
Из значения 0x2024be04получается:
MULA = 0х24 (36)
DIV = 0х04 (4)
Fosc = 18,432МГц
После подстановки значений в формулу расчета, находим F=170,496МГц. Частота работы памяти =F/DIV=42.624 МГц.
Для вычисления значения частоты F, можно использовать программу расчета фильтра -ATMEL_PLL_LFT_Filter_CALCULATOR_AT91_2v5.xls, при использовании этой «программы», должны быть включены макросы.
Ссылка для скачивания - http://www.atmel.com/dyn/resources/prod_documents/ATMEL_PLL_LFT_Filter_CALCULATOR_AT91.zip.
Также ATMEL_PLL_LFT_Filter_CALCULATOR_AT91_2v5позволяет производить вычисления значений номиналов элементовR1,C1иC2.
Рисунок – Программа-калькулятор расчета значений номиналов элементов R1,C1 иC2 процессораAT91RM9200.
Рисунок – Программа-калькулятор расчета тактовой частоты процессора и значений номиналов элементов R1,C1 иC2.
Romboot
Назначение
Программа начальной инициализации, загрузчик программы U‑boot.
Выполняемые действия программой
Выполняет начальную инициализацию всей периферии, позволяет программировать данные в SPI DataFlash.
Возможности
1: Download Dataflash [addr]
Копирование программы по адресу [addr] используя протокол X-modem
2: Read Dataflash [addr]
Чтение содержимого по адресу [addr]
3: Start U-BOOT
Запуск программы загрузчика с ее настройками
4: Clear bootloader section in Dataflash
Очистка секции загрузки Romboot в Dataflash
Подготовка к сборке Romboot
Для загрузки системы из Dataflash, нужно взять программу от производителяAtmel-Romboot.
Правленая версия под плату EVM9200доступна по адресу:http://heavy‑online.ru/arm‑linux/files/packages/romboot/romboot-evm9200.tgz.
( схема EVM9200похожа на используемую схему нами )
Теперь необходимо вносить нужные изменения и компилировать программу Romboot.
Необходимо, распаковать пакет Romboot.
(Или использовать пересобранный - AT91RM9200_SK_RomBoot_070302.tar.bz2( или.tar.gz) )
Скрипт для компиляции находится в корне исходных текстов программы: compile(UNIX-права 755).
В файле compile, нужно исправить следующую строку:
Листинг программы, отображающий изменения в исходном тексте:
...
CROSS=/usr/local/arm9/bin/arm-linux-
...