реклама на сайте
подробности

 
 
> ARM9, AT91RM9200
Prinz
сообщение Sep 11 2008, 12:37
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



smile.gif Здравствуйте! НАчал знакомство с контроллером AT91RM9200.
Плата EVM9200. http://ucrouter.ru/evm9200.html
Стоит задача для начало помигать светодиодиками. http://ucrouter.ru/download/evm9200-sch.pdf
Останавливать загрузку линукса и загружать бинарный файл через гипертерменал научился. Подскажите, кто что может. Например какие файлы надо присоединять к проекту? И вообще почему он начинает грузить во флэш с адреса 0x21000000? (думаю что из-за того что сначало стоит бутлодер и линукс) И как правильно после загрузки запустить моё приложение (go 0x21000000)? На плате имеются две флэш. SPI и параллельная.
Заранее примного благодарю за помощь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dch
сообщение Sep 11 2008, 14:20
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Вы с Украины? В последнее время только туда отсылалось и вопросы письменно не задавались от туда.

светодиодом 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.

Сообщение отредактировал dch - Sep 11 2008, 14:25
Go to the top of the page
 
+Quote Post
Prinz
сообщение Sep 11 2008, 16:28
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Спасибо огромное. Нет, я не с Украины, я из России.
Буквочку C уже один раз принимал.
Внимательно вчитался в Вашу инструкцию, пока всё понятно.
Если возникнут вопросы, напишу ещё. smile.gif Ещё раз спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Prinz   ARM9   Sep 11 2008, 12:37
|- - dch   Цитата(Prinz @ Sep 11 2008, 20:28) из Рос...   Sep 11 2008, 19:23
|- - Prinz   AT91RM9200-29lv160d.bin прошивает boot.bin в первы...   Sep 12 2008, 06:22
|- - dch   Цитата(Prinz @ Sep 12 2008, 10:22) ERR_BA...   Sep 12 2008, 11:01
- - Prinz   Все в норме надо все опять пере прошить. Только от...   Sep 13 2008, 18:28
|- - dch   после 4) еще раз пошлите boot.bin и из меню выбери...   Sep 13 2008, 20:47
- - Prinz   Спасибо огромное. Сейчас вроде всё понятно стало. ...   Sep 14 2008, 13:19
|- - dch   Цитата(Prinz @ Sep 14 2008, 17:19) ещё Вы...   Sep 14 2008, 21:46
- - Prinz   U-boot заработал, но мне показалось подозрительным...   Sep 15 2008, 09:05
|- - dch   Цитата(Prinz @ Sep 15 2008, 13:05) Verify...   Sep 15 2008, 14:33
- - one_man_show   Почтой хуже для всех остальных пользователей, кото...   Sep 15 2008, 09:26
- - Prinz   ТОгда давайте останемся тут. На строчку bootcmd bo...   Sep 15 2008, 10:12
|- - dch   Цитата(Prinz @ Sep 15 2008, 14:12) ТОгда ...   Sep 15 2008, 13:57
- - one_man_show   Уважаемый dch, предалагаю Вам от темы не отвлекать...   Sep 15 2008, 14:26
|- - dch   Цитата(one_man_show @ Sep 15 2008, 18:26)...   Sep 15 2008, 14:43
|- - dch   Цитата(dch @ Sep 15 2008, 18:43) С Вами л...   Sep 15 2008, 15:50
- - one_man_show   Дмитрий, если согласны с моим предложением, прошу ...   Sep 15 2008, 14:40
- - Prinz   Спасибо за то что помогаете. Вы правы, память дейс...   Sep 16 2008, 17:49
- - Prinz   Линукс заработал, теперь стал вопрос с кросссредст...   Sep 18 2008, 05:30
- - Prinz   ТОчнее, всё дальше не понятно. Тут наерное часть к...   Sep 18 2008, 08:55
- - Prinz   А кто-нибудь ещё может поделиться опытом мигания с...   Sep 22 2008, 13:03
|- - Victor_Tr   Цитата(Prinz @ Sep 22 2008, 17:03) А кто-...   Sep 24 2008, 22:10
- - Prinz   Со светодиодиком разобрался. Всем спасибо огромное...   Oct 8 2008, 13:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 00:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016