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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Управление из под Linux, Linux and Arm9
vutang
сообщение Feb 10 2010, 03:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-12-09
Из: Томск
Пользователь №: 54 174



Доброго времени суток.
Вот в чем дело, имеется отладочная плата на базе ядра arm9 AT91RM9200QU и так же имеется вшитый туда же Linux.
Вопрос у меня следующий, как можно управлять периферией из под этого вшитого линукса (например на плате есть светодиоды, как ими помигать). Когда работал с arm7 все было довольно просто и понятно, а тут все не особо понятно.
Кто знает что-нибудь посвятите или ссылочку на литературу дайте. Заранее спасибо.
Go to the top of the page
 
+Quote Post
Зайцев Иван
сообщение Feb 10 2010, 04:56
Сообщение #2


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

Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153



Обычно все делаеться через драйвер
Посмотреть можно staterkit.ru
Go to the top of the page
 
+Quote Post
vutang
сообщение Feb 10 2010, 05:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-12-09
Из: Томск
Пользователь №: 54 174



чет никак((
Go to the top of the page
 
+Quote Post
dch
сообщение Feb 10 2010, 06:35
Сообщение #4


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

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



под Linux есть некая gpiolib которая позволяет работать с выводами gpio или Вы должны напрямую получить доступ к физичекой памяти, mmap - функция, сконфигурить выводы общего назначения и выставить требуемые Вам значения.
Go to the top of the page
 
+Quote Post
vutang
сообщение Feb 10 2010, 08:43
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-12-09
Из: Томск
Пользователь №: 54 174



У меня теперь проблемка по серьезнее... Случайно отчистил Dataflash. И теперь, когда подцепляюсь к плате пишет CCCCCCCCCC...........
Хотел закачать romboot через гипертерминал, но он не закачивается, говорят надо вроде DataflashBoot для этого контроллера? Или мож в другом дело?
Go to the top of the page
 
+Quote Post
vutang
сообщение Feb 11 2010, 05:50
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-12-09
Из: Томск
Пользователь №: 54 174



Люди как быть. После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать... раньше при включении питания хотя бы буквы ССССССССС шли т.е ожидание загрузки файла теперь вообще тишина.
Думаю что-то с памятью, память стоит AT45DB321. Можно как-нибудь аппаратно сбросить ее?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Feb 11 2010, 17:34
Сообщение #7


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

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Надо ему отключить устройство с которого он грузится. Куда и что Вы прошили - Вам виднее.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Зайцев Иван
сообщение Feb 12 2010, 03:12
Сообщение #8


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

Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153



Во первых надо отрыть даташит на камень и поосмотреть с чего он может грузиться. Если мне не изменяет память то он может грузиться либо с последовательной либо с парралленой флаш. Далее собираем роомбоот и u-boot и шьем куда треба. И обратите внимание на пин BMC
Go to the top of the page
 
+Quote Post
Vull
сообщение Feb 12 2010, 11:14
Сообщение #9





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



AT91RM9200 может грузиться с последовательной флэшки, с параллельной, EEPROM, usb и отладочного порта

setup device
|
|
spi dataflash boot ---Yes--->Загрузка из последовательной флэшки------> запуск программы
No
|
TWI EEPROM boot ---Yes--->Загрузка из EEPROM----------------------------> запуск программы
No
|
parallel boot ---Yes--->Загрузка из параллельной флэшки-----------------> запуск программы
No
|
OR------>Загрузка из отладочного порта DBGU------> запуск программы
|-------->Загрузка через USB--------------------------> запуск программы

Вот так выглядит последовательность работы процессора при загрузке

Сообщение отредактировал Vull - Feb 12 2010, 11:21
Go to the top of the page
 
+Quote Post
MTh
сообщение Feb 16 2010, 04:28
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 234
Регистрация: 28-02-06
Из: Иркутск
Пользователь №: 14 771



В плане работы с внешней периферией Вам поможет книжка Linux Device Drivers и даташит на МК. Также придется покопаться в сырцах к линуксу на вашей плате. Для компиляции нужен будет кросстулчейн...

По поводу проблемы с прошивкой - разберитесь в вопросе. ПОсмотрите что и как работает. МК довольно навороченный, почитайте про ARM Linux, bootstrap, u-boot....

Очень неплохо все расписано вот здесь (наверное единственный док в инете на русском, где все расписано от и до): ключевые слова поиска в гугле: HeavyOnline RM9200
Go to the top of the page
 
+Quote Post
doomer#gp
сообщение Feb 16 2010, 20:05
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 382
Регистрация: 10-03-05
Из: USA
Пользователь №: 3 234



Цитата
После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать... раньше при включении питания хотя бы буквы ССССССССС

What level do you have on BMS pin ?

If you've changed it to low, your processor is loading from parallel flash on EBI, selected by NSC0.
If BMS still high, it means, processor finds the entry in DataFlash as correct vector table and start the execution of wrong image.
Absence of 'C' on debug port means that the processor leave ROMBOOT code before start internal Boot loader because valid boot media was found.

Цитата
После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать... раньше при включении питания хотя бы буквы ССССССССС

What level do you have on BMS pin ?

If you've changed it to low, your processor is loading from parallel flash on EBI, selected by NSC0.
If BMS still high, it means, processor finds the entry in DataFlash as correct vector table and start the execution of wrong image.
Absence of 'C' on debug port means that the processor leave ROMBOOT code before start internal Boot loader because valid boot media was found.
Go to the top of the page
 
+Quote Post
AVR
сообщение Feb 16 2010, 22:00
Сообщение #12


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



А что за плата? Если старербегиннерчетотамтакое то обычно либо на сайте либо на диске лежит то что грузить проц по последовательному порту и заливает u-boot и подобное...


--------------------
Go to the top of the page
 
+Quote Post
dch
сообщение Feb 17 2010, 14:50
Сообщение #13


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

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



biggrin.gif
Цитата(vutang @ Feb 11 2010, 08:50) *
После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать.

Это нормально, значит Вы чтото не то прошили если прошиваете в последовательную flash, при прошивке в последовательную флэш согласно даташиту в шестой вектор записывает размер прошитой програмки.
А при включении питания в режиме когда шлются CCC програмка из ПЗУ перед их посылкой проверяет
лежит ли в стартовом куске последовательной флэш таблица прерываний а в шестом векторе размер програмки
если всё это там есть она загружает её во внутренню рам и передает на эту програмку управления, часто рядом
с флэш есть джампер который позволяет разорвать CS на последовательную флэш и при старте в таком режиме из неё ничего не получится вычитать и Вы ввалитесь в CCC
Go to the top of the page
 
+Quote Post
vutang
сообщение Feb 19 2010, 16:22
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 10-12-09
Из: Томск
Пользователь №: 54 174



Доброго времени суток.
Значит вот в чем дело. Дали мне самопальную плату с контроллером AT91RM9200 и памятью AT45DB321 (2 микрухи по 32 мега) и туда был зашит Лунукс. Дали и говорят разбирайся придем проверим. Ну вот я решил разобраться и зашить для начала Линукс с нуля, но в этот же день возникла проблема...после загрузки файлы u-boot.bin (собственно загрузчика системы) вылазит ошибка Unknown command ' "cp.b ' -try ' help '.
Насколько я понимаю, здесь лишние двойные ковычки поставленные видимо по ошибке создателем сего файла.
Так вот можно ли исправить этот бинарник через какой либо редактор или как написать новый u-boot с нуля сконфигурировав для данного контроллера и памяти?
Go to the top of the page
 
+Quote Post
one_man_show
сообщение Feb 19 2010, 17:54
Сообщение #15


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



Бинарный файл не нужно править в редакторе. Правильный ход - почитать о самом загрузчике здесь. Это открытый проект, можно скачать исходники, поизучать и со временем, возможно, получится создать собственную версию загрузчика. Если воспользуетесь поиском на Форуме, или терпением при перечитывании древних постов за 2005-2006, то найдете готовые варианты.


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post

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

 


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


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