Вы с Украины? В последнее время только туда отсылалось и вопросы письменно не задавались от туда.
светодиодом D1 (подключенный непосредственно к GPIO PA22) можно можно мигнуть программкой gpio с
http://www.ipbx.ru/rm9200/ Для этого Вам нужно научиться собирать ядро, файловую систему. Начать можно с краткой инструкции приведенной ниже.
Кроме того ассемблерный код прошивальщика
http://ucrouter.ru/download/AT91RM9200-29lv160d-1.tgzвключает светодиод (он загорается), ниже есть пример по использованию данной программки
.
D8-D11 (четыре верхних светодиода возле кнопки ресета) - видны как память подключенная к CS2, чтобы ими мигнуть нужно выполнить запись в этот банк памяти, например из отладчика или из программки.
1. Комплект поставки
EVM9200 - оценочный комплект на базе AT91RM9200
переходник на нульмодемный кабель
CD с копией сайта
2.Подключение, проверка работоспостобности.
Питание - белый разъем в верхней части платы.
У него четыре контакта. Два средних земля. Правый, дальний от разъемов DB9 питание - +5V
стабилизированное. Левый, ближний к разъемам DB9, выходное с платочки +3.3V -
на него Вы не должны ничего не подавать. Питание в крайнем случае можно взять
с PC, но там оно перевернуто, два средних земля, правый +12V, левый +5V.
Те если совсем плохо можно правый проводочек оторвать, разъем перевернуть
и вставить в разъем на EVM9200.
Если питание берется от PC то кабель должен быть покороче. Были случаи
когда при длине кабеля около метра EVM9200 не включалась.
3. Настройки терминальной программы и подключение EVM9200 к PC.
В состав комплекта оценки входит переходник на нульмодемный кабель.
Он вставляется в DB9, ближний к белому разъему маркированной скотчем стороной
в сторону EVM9200. Другой стороной переходник вставляется на нульмодемный
кабель, который в свою очередь вставляется в разъем PC.
В качестве терминальной программы удобно использовать гипертерминал.
Настройки гипертерминала - 115200, 8, N.
4.Проверка работоспостобности.
После подключения переходника, нульмодемного кабеля, подаем на EVM9200 питание,
в терминале должна появится выдача.
Если J11 в правом - то выдаются собщения u-boot, потом грузится ядро, потом
Вы попадаете в консоль Linux-а.
Если J11 в левом положени - то выполняется програмка из встроенного ПЗУ, которая
пытается загрузить образ из последовательной флэш, если не удается то пытается
прогрузить его по I2C, потом по USB, а потом по x-Модему, в этом случае в
гипертерминале увидите раз в секунду приглашение отослать файл - буквочка С.
При отсылке файла он грузится во внутреннюю SRAM, а затем исполняется.
В состав програмки:
www.ucrouter.ru/download/AT91RM9200-29lv160d.bin
входит тест SDRAM, она умеет прошивать, проверять содержимое параллельной flash
и последовательной. Порядок применения ее описан ниже.
В состав програмки:
www.ucrouter.ru/download/AT91RM9200-GnuMCI.bin
входит тест MMC, грузиттся она точно также как предыдущая программа, далее жмется
клавиша "A" - в MMC прописывается короткое сообщение с инкрементируемым номером,
далее это сообщение читается из MMC и выводится на экран.
Провка работопоссобностии USB интерфейсов. J11 переставляем в левое
положение, загружается u-boot , загрузку ядра прерываем - u-boot ждет
три секунды перед загрузкой ядра, в течении которых можно нажать любую
клавишу для прекращения загрузки. После этого u-boot вываливается
в режим командной строки, в котором даем команды:
u-boot>tftpboot 20800000 uUsb_loop
u-boot>bootm 20800000
На PC должен стоять Linux, на нем должен быть запущен tftp сервер. В каталоге
/tftpboot должен лежать файл uUsb_loop.
USB интерфейсы EVM9200 должны быть замкнуты. По нажатию клавиши - пакетики
прогоняются из одного интерфейса в другой.
5. Прошивка предкомпилированных u-boot, ядра, файловой ситемы.
Находятся в:
www.ucrouter.ru/download/EVM9200-linux-2.4.19-rmk.bin.tgz
структура папочек архива: 45MHz - у нас SDRAM на 45 подключена, 32mb - у нас 32Mb
SDRAM.
Файлы лежащие в архиве:
boot.bin - стартовый загрузчик, инициирует SDRAM прогружает u-boot.bin.gz в 15Mb
SDRAM и передает на него управление, лежит по адресам в параллельной флэш 0-FFFF.
u-boot.bin.gz - загрузчик Linux-а, лежит по адресам в параллельной флэш 10000-1FFFF.
linux.bin - ядро линукса, лежит в параллельной флэш по адресам 20000 1BFFFF.
initrd.ext2 - образ файловой системы, лежит в параллельной флэш по адресам
1С0000 1EFFFF.
Прошиваем сначала boot.bin, u-boot, потом средствами u-boot-а прошиваем
linux.bin, initrd.ext2.
Пересчтавляем J11 в левое положение. И из гипертерминала в ответ на приглашения
{буквочка C раз в секунду} по x-модему отправляем програмку
www.ucrouter.ru/download/AT91RM9200-29lv160d.bin
которая грузится во внутреннюю SRAM и в свою очередь начинает выдавать
приглашения - буквочка C раз в секунду. На эти приглашения по x-модему
отправляем boot.bin - выскакивает меню, из него выбираем 0-ой пункт.
AT91RM9200-29lv160d.bin прошивает boot.bin в первые 64K параллельной флэш
и снова начинает выдавать приглашения. Отправляем u-boot.bin.gz, выскакивает
меню выбираем пункт 1.
Иногда полезно проверить содержимое параллельной flash для этого в меню есть
пункты типа verify.
Выключаем питание, J11 переставляем в правое положение, подключаем Ethernet-овский
кабель и снова подаем питание.
На PC должен стоять Linux, на нем должен быть запущен tftp сервер. В каталоге
/tftpboot должны лежать файлы linux.bin и initrd.ext2. Те на EVM9200 запускается
клиент, который просит их прогрузить.
Ниже "u-boot>" - это приглашение u-boota, а после после него идут командочки.
u-boot>tftpboot 20800000 linux.bin
Прогрузить по tftp файл linux.bin, 20800000 - адрес SDRAM куда его положить.
u-boot>protect off 10020000 100BFFFF
Отключить защиту диапазона секторов паралельной flash.
u-boot>erase 10020000 100BFFFF
Очистить параллельную flash.
u-boot>cp.b 20800000 10020000 9FFFF
Записать ядро начиная со стартового адреса 10020000
u-boot>tftpboot 20800000 initrd.ext2
u-boot>erase 100C0000 101EFFFF
u-boot>cp.b 20800000 100C0000 12FFFF
Тоже самое сделать для файловой системы initrd.ext2.
Установить переменные окружения u-boot:
u-boot>setenv bootargs root=/dev/ram rw initrd=0x20a00000,0x560000 ramdisk_size=16000 console=ttyS0,115200 mem=32M
u-boot>bootcmd bootm 10020000 100C0000
u-boot>saveenv
Перезагрузить EVM9200.
6.Установка кроссредств.
Находятся в архиве:
www.ucrouter.ru/download/cross-2.95.3.zip
Инструкция по установке в файле README.txt:
cd /usr/local
mkdir arm
cd arm
tar -Ixvf cross-2.95.3.tar.bz2
или
cd /usr/local
mkdir arm
cd arm
bunzip2 cross-2.95.3.tar.bz2
tar -xvf cross-2.95.3.tar.bz2
Развернутся кросредства и полный путь на каталог bin {наверное, это будет
что то такое /usr/local/arm/2.95.3/bin} нужно вставить в переменную PATH
окружения.
7.Компиляция u-boot.
Инструкия по компиляци u-boot и его установке находится в readme файле архива.
www.ucrouter.ru/download/u-boot-EVM9200-patch.tgz
Кроскомпилятор для u-boot нужно использовать не из состава cross-2.95.3.zip а
из www.ucrouter.ru/download/arm-elf-tools-20030314.sh , при установке
он становится в другой каталог и для переключения между компиляторами
меняйте переменную PATH окружения.
8.Компиляция ядра & файловой системы .
Ядро находится в архиве:
www.ucrouter.ru/download/linux-2.4.19-rmk7.tar.zip
Дистрибутив uClinux-а находится на сайте uClinux.org. Инструкция
написана под дистрибутив uClinux-dist-20041215.tar.bz2 - но можно взять
любой наверное. Накладываемый patch не сильно завязан на версию дистрибутива.
Инструкция по компиляции в файле EVM9200-uClinux-20041215.readme из состава
архива www.ucrouter.ru/download/EVM9200-uClinux-20041215.patch.tgz
инструкцию на всяуий случай привожу ниже:
8.1. Copy & Unpack uClinux distributive to opt - откопировать дистрибутив uClinux-а в
каталог opt:
cp ./uClinux-dist-20041215.tar.bz2 /opt
cd /opt
tar -xjvf ./uClinux-dist-20041215.tar.bz2
8.2. Copy & Unpack Atmel Linux kernel to uClinux tree - подставить ядро Linux-а
в дистрибутив uClinux-а:
cp ./linux-2.4.19-rmk7.tar.gz /opt/uClinux-dist
cd /opt/uClinux-dist
tar -xzvf ./linux-2.4.19-rmk7.tar.gz
8.3. Copy & apply EVM9200 support for linux-2.4.19-rmk7 - модифицировать ядро:
cp ./linux-2.4.19-rmk7-EVM9200.patch /opt/uClinux-dist
cd /opt/uClinux-dist
cat ./linux-2.4.19-rmk7-EVM9200.patch | patch -p0
ln -s /opt/uClinux-dist/linux-2.4.19-rmk7 /opt/uClinux-dist/linux-2.4.19.rmk7.x
8.4. Copy & Apply EVM9200 support for uClinux - модифицировать дистрибутив uClinux-а:
cp ./EVM9200-uClinux-20041215.patch /opt
cd ./opt
cat ./EVM9200-uClinux-20041215.patch | patch -p0
8.5. Configure linux-2.4.19-rmk7 & uClinux user applications - настроить ядро и приложения:
make menuconfig
From main menu select item : - выбрать из главного меню
'Vendor/Product Selection'
Then from 'Vendor/Product Selection' dialog - из диалога выбрать пункт
Select Vendor: - выбрать производителя
'(Atmel) Vendor'
Select Product: - выбрать продукт
'(EVM9200)'
Return to main menu. From main menu select item: - вернуться в главное меню их него выбрать пункт
'Kernel/Library/Default Selection'
Then from 'Kernel/Library/Default Selection' dialog
Select kernel version: - далее выбрать компилируемое ядро
(linux-2.4.19-rmk7.x)
and Libc Version - далее выбрать компилируемую библиотеку
(glibc)
Return to main menu. Select <Exit> to exit from - вернуться в main меню и выбрать Exit
'make menuconfig' utility.
8.6. Compile linux-2.4.19-rmk7 & uClinux user applications - откомпилировать приложения
type:
make dep 2>&1 | tee make_dep.out
make | tee make.out
files appear: - появятся файлы ucImage, ucInitrd - это и есть наше ядро и файловая система
/opt/uClinux-s/images/ucImage
/opt/uClinux-s/images/ucInitrd
9. Запись откомпилированного ядра и окомпилированной файловой системы:
9.1. Update kernel image via u-boot. - записать файловую систему через u-boot
u-boot>tftpboot 20800000 ucImage
u-boot>protect off 10020000 100BFFFF
u-boot>erase 10020000 100BFFFF
u-boot>cp.b 20800000 10020000 9FFFF
where:
u-boot> - u-boot prompt
tftpboot - u-boot load file via tftp protocol command
20800000 - SDRAM load address
ucImage - linux kernel image
uImage must be located at the
host tftp server download directory
(Linux host) /tftpboot
protect - u-boot flash protect on/off command
off - disable protection
10020000 - start flash address
100BFFFF - end flash address
erase - u-boot flash erase command
10020000 - start flash erase address
100BFFFF - end flash erase address
cp.b - u-boot byte copy command
20800000 - SDRAM source address
10020000 - flash destination address
9FFFF - bytes copy
9.2. Update linux initrd via u-boot tftp.- записать файловую систему через u-boot
u-boot>tftpboot 20800000 ucInitrd
u-boot>erase 100C0000 101EFFFF
u-boot>cp.b 20800000 100C0000 12FFFF
9.3. Set u-boot environment variables. - установить переменные окружения
for 32Mb SDRAM:
u-boot>setenv bootargs root=/dev/ram rw initrd=0x20800000,0x400000 ramdisk_size=8000 console=ttyS0,115200 mem=32M
u-boot>bootcmd bootm 10020000 100C0000
u-boot>saveenv
9.4. Перезагрузить EVM9200.