|
Управление из под Linux, Linux and Arm9 |
|
|
|
Feb 10 2010, 03:53
|
Участник

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

|
Доброго времени суток. Вот в чем дело, имеется отладочная плата на базе ядра arm9 AT91RM9200QU и так же имеется вшитый туда же Linux. Вопрос у меня следующий, как можно управлять периферией из под этого вшитого линукса (например на плате есть светодиоды, как ими помигать). Когда работал с arm7 все было довольно просто и понятно, а тут все не особо понятно. Кто знает что-нибудь посвятите или ссылочку на литературу дайте. Заранее спасибо.
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
Feb 10 2010, 05:29
|
Участник

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

|
чет никак((
|
|
|
|
|
Feb 10 2010, 08:43
|
Участник

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

|
У меня теперь проблемка по серьезнее... Случайно отчистил Dataflash. И теперь, когда подцепляюсь к плате пишет CCCCCCCCCC........... Хотел закачать romboot через гипертерминал, но он не закачивается, говорят надо вроде DataflashBoot для этого контроллера? Или мож в другом дело?
|
|
|
|
|
Feb 11 2010, 05:50
|
Участник

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

|
Люди как быть. После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать... раньше при включении питания хотя бы буквы ССССССССС шли т.е ожидание загрузки файла теперь вообще тишина. Думаю что-то с памятью, память стоит AT45DB321. Можно как-нибудь аппаратно сбросить ее?
|
|
|
|
|
Feb 12 2010, 11:14
|
Группа: Участник
Сообщений: 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
|
|
|
|
|
Feb 16 2010, 20:05
|

Местный
  
Группа: Участник
Сообщений: 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.
|
|
|
|
|
Feb 17 2010, 14:50
|

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

|
Цитата(vutang @ Feb 11 2010, 08:50)  После попытки прошить контроллер файлом AT91RM9200-29lv160d.bin вообще все перестало работать. Это нормально, значит Вы чтото не то прошили если прошиваете в последовательную flash, при прошивке в последовательную флэш согласно даташиту в шестой вектор записывает размер прошитой програмки. А при включении питания в режиме когда шлются CCC програмка из ПЗУ перед их посылкой проверяет лежит ли в стартовом куске последовательной флэш таблица прерываний а в шестом векторе размер програмки если всё это там есть она загружает её во внутренню рам и передает на эту програмку управления, часто рядом с флэш есть джампер который позволяет разорвать CS на последовательную флэш и при старте в таком режиме из неё ничего не получится вычитать и Вы ввалитесь в CCC
|
|
|
|
|
Feb 19 2010, 16:22
|
Участник

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

|
Доброго времени суток. Значит вот в чем дело. Дали мне самопальную плату с контроллером AT91RM9200 и памятью AT45DB321 (2 микрухи по 32 мега) и туда был зашит Лунукс. Дали и говорят разбирайся придем проверим. Ну вот я решил разобраться и зашить для начала Линукс с нуля, но в этот же день возникла проблема...после загрузки файлы u-boot.bin (собственно загрузчика системы) вылазит ошибка Unknown command ' "cp.b ' -try ' help '. Насколько я понимаю, здесь лишние двойные ковычки поставленные видимо по ошибке создателем сего файла. Так вот можно ли исправить этот бинарник через какой либо редактор или как написать новый u-boot с нуля сконфигурировав для данного контроллера и памяти?
|
|
|
|
|
Feb 19 2010, 18:19
|

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

|
Скорее всего на плате есть джампер, переключающий машинку в режим начальной загрузки, в котором появится приглашение в виде "ССССС...". Если джампер в рабочем положении, то есть машинка должна запустить зашитый код во флэш, но эту флэшка по Вашим словам Вами же и стерта, тогда опять появится приглашение на загрузку файла. Ищите джампер, переводите в режим начальной загрузки и тогда пробуйте зашить имеющийся u-boot. Хотя, судя по вопросам в другой ветке, у Вас и с этим загрузчиком какие-то проблемы. Явно нужно что-то почитать
--------------------
|
|
|
|
|
Feb 20 2010, 04:29
|
Участник

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

|
Спасибо за совет. Если что получиться, результаты размещу здесь.
|
|
|
|
|
Feb 20 2010, 05:29
|
Участник

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

|
Спасибо за советы. Сделал так, у микрухи памяти отпаял ногу S0, подключил питание к плате, вшил ромбут(первый загрузчик), потом не отключая питания припаял ногу и вшил этот же ромбут в DataFlash по адресу с0000000. Все заработало.
|
|
|
|
|
Feb 20 2010, 20:18
|

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

|
нет просто думалось что наверное загрузчик будет понимать всю ответсвенность и сложность перезаписи самого себя или проводочек резануть, зачистить и каплей припоя потом запаять Цитата(vutang @ Feb 20 2010, 08:29)  с0000000. Не совсем понятно, включили она не смогла прочитать содержимое, выдала CCC, запаяли, записали ромбут как Вы его называете в первые 64 К, по вышеуказанному адресу, а u-boot.bin.gz во вторые 64 К, ромбут должен поддерживать загрузку из последовательной flash, файлик boot.bin по моему :-) не позволяет грузить из последовательной, он хватает образ из паралельной и разворачивает его в SDRAM
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|