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

 
 
> Прерывания без ОС на EP9315, обработчик не вызывается
toykhee_menky
сообщение Jun 30 2008, 15:43
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 30-06-08
Пользователь №: 38 654



Здравствуйте.

EP9315 на плате Tion-pro v1.
Программа на Си, компилируется WinARM 4.1.1, грузится в RAM при помощи redboot.

Пытаюсь работать с портом UART2, порт, судя по всему, работает - тестовая последовательность туда уходит.

FIFO разрешено, после посылки восьми символов оттуда появляется битик прерывания в VIC1RawIntr, т.е. прерывание до VIC вроде бы доходит.

По адресу 0x18 содержится команда, оставленная там redboot-ом, судя по всему:
00000018: 18 F0 9F E5 - перевожу как ldr r15,[r15,#0x18], т.е. должен взяться адрес процедуры реакции на прерывание с адреса 0x38 (0x18+0x18+0x08).

Подменяю указатель по адресу 0x38 на адрес своей функции. Но управление она не получает (контроль - светодиодами).

Прерывания разрешены, режим супервизора: cpsr=0x00000013
ОЗУ отмаплено само на себя, с адреса 0.

обработчик прерывания IRQ оформлен как
Код
void  __attribute__ ((interrupt ("IRQ"))) handler1();

но управления тоже не получает (источник прерывания 25 для VIC1 выбрал, прерывания разрешил, адрес ISR занес).

Чего-то я еще не сделал... Чего?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 2 2008, 11:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Исходники redboot'а, если охота в них ковыряться, найдете на arm.cirrus.com.

Я одного понять не могу: зачем Вам redboot для запуска своей программы? Пишите ее сразу во флеш и запускайте.
Go to the top of the page
 
+Quote Post
toykhee_menky
сообщение Jul 2 2008, 13:14
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 30-06-08
Пользователь №: 38 654



Цитата(aaarrr @ Jul 2 2008, 17:32) *
Исходники redboot'а, если охота в них ковыряться, найдете на arm.cirrus.com.

Спасибо!
Цитата(aaarrr @ Jul 2 2008, 17:32) *
Я одного понять не могу: зачем Вам redboot для запуска своей программы? Пишите ее сразу во флеш и запускайте.
Вот сейчас, наверное, уже и не так сильно нужен. Я надеялся, что будет некий RedBoot API, что- то вроде PC-шного BIOS. Не оказалось. Ну да ладно, это не фатально.
При использовании редбута можно давать диагностику в консоль практически "из коробки", а если делать флешовую программу, то придется изучать еще кучу вещей - среду разработки, синтаксис всевозможных описателей структуры памяти программы и т.п. В общем, как обычно, прежде, чем решить задачу, нужно решить две других, более сложных. Я хотел этого избежать.

Кроме того, мне показалось, что цикл сборка-загрузка-запуск-падение-отладка-исправление будет быстрее для ОЗУ-шной версии.


Цитата(sergeeff @ Jul 2 2008, 17:33) *
Ну вот, осталось посмотреть, что же сидит в таблице прерываний с адреса 0х00000000

Код
RedBoot> dump -b 0 -l 128
00000000: 0E 00 00 EA 18 F0 9F E5  18 F0 9F E5 18 F0 9F E5  |................|
00000010: 18 F0 9F E5 00 00 00 00  18 F0 9F E5 18 F0 9F E5  |................|
00000020: 48 90 00 00 78 91 00 00  9C 91 00 00 C8 91 00 00  |H...x...........|
00000030: E4 91 00 00 00 00 00 00  FC 92 00 00 C4 92 00 00  |................|
00000040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050: 17 00 08 00 D0 45 01 00  D0 45 01 00 D0 45 01 00  |.....E...E...E..|
00000060: D0 45 01 00 30 CF 03 00  30 CF 03 00 64 47 01 00  |.E..0...0...dG..|
00000070: 60 47 01 00 D0 45 01 00  D0 45 01 00 D0 45 01 00  |`G...E...E...E..|
Сразу уж и 0x92FC (звиняйте, что не дизассемблировано):
Код
RedBoot> dump -b 0x92fc -l 128
000092FC: F0 D0 9F E5 3F 00 2D E9  04 00 4E E2 00 10 4F E1  |....?.-...N...O.|
0000930C: 06 20 A0 E3 0D 30 A0 E1  00 40 0F E1 1F 40 C4 E3  |. ...0...@...@..|
0000931C: 53 40 84 E3 04 F0 29 E1  0D 50 A0 E1 0E 40 A0 E1  |S@....)..P...@..|
0000932C: 37 00 2D E9 0D 00 A0 E1  00 20 0F E1 C0 10 81 E3  |7.-...... ......|
0000933C: 20 10 C1 E3 01 F0 29 E1  00 7F 20 E9 02 F0 29 E1  | .....)... ...).|
0000934C: 00 D0 A0 E1 3F 00 93 E8  FF 00 2D E9 40 10 9D E5  |....?.....-.@...|
0000935C: 1F 10 01 E2 13 00 51 E3  4C 10 9D 05 34 10 8D 05  |......Q.L...4...|
0000936C: 0D 90 A0 E1 09 00 A0 E1  D7 1F 00 EB 00 40 A0 E1  |.............@..|
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- toykhee_menky   Прерывания без ОС на EP9315   Jun 30 2008, 15:43
- - aaarrr   VIC, наверное, неправильно инициализировали. Код п...   Jun 30 2008, 16:00
|- - toykhee_menky   Цитата(aaarrr @ Jun 30 2008, 22:00) VIC, ...   Jun 30 2008, 16:21
|- - aaarrr   Цитата(toykhee_menky @ Jun 30 2008, 20:21...   Jun 30 2008, 16:47
|- - toykhee_menky   Цитата(aaarrr @ Jun 30 2008, 22:47) Кто в...   Jun 30 2008, 20:01
|- - aaarrr   Цитата(toykhee_menky @ Jul 1 2008, 00:01)...   Jul 1 2008, 12:09
- - sergeeff   Ну я бы под пунктом 0 добавил: Преравание не возни...   Jul 1 2008, 05:58
|- - toykhee_menky   Цитата(sergeeff @ Jul 1 2008, 11:58) Ну я...   Jul 1 2008, 06:30
- - sergeeff   Ну я бы, для начала, написал бы тестовую функцию о...   Jul 1 2008, 08:24
- - sergeeff   Можно посмотреть http://www.siwawi.arubi.uni-kl.de...   Jul 1 2008, 15:46
- - toykhee_menky   Мда. Проблема, однако. Неужели я один такой (или п...   Jul 2 2008, 11:14
- - sergeeff   Ну вот, осталось посмотреть, что же сидит в таблиц...   Jul 2 2008, 11:33
- - sergeeff   А что за процедура вызывается по прерыванию? Как б...   Jul 2 2008, 16:02
- - Desenix   для армов EP9312, S3C2410, LPC2368 всегда писал и ...   Jul 2 2008, 17:10
- - sergeeff   Все очень здорово, но надо же еще обучить процессо...   Jul 2 2008, 18:38
|- - Desenix   ну да, еще стандартный startup забыл приложить, за...   Jul 2 2008, 19:18
|- - toykhee_menky   Цитата(sergeeff @ Jul 3 2008, 00:38) Все ...   Jul 3 2008, 05:44
- - sergeeff   Уважаемый toykhee_menky! 1. Так про то и речь...   Jul 3 2008, 06:15
- - aaarrr   Цитата(toykhee_menky @ Jun 30 2008, 19:43...   Jul 3 2008, 08:25
|- - toykhee_menky   Цитата(aaarrr @ Jul 3 2008, 14:25) Да, а ...   Jul 3 2008, 13:08
- - aaarrr   Значит на ядро прерывание передается, других вариа...   Jul 3 2008, 13:15
- - sergeeff   Ну дак и осталось то, про что я уже говорил - напи...   Jul 3 2008, 14:12
- - toykhee_menky   Всем спасибо. Перешел на eCos.   Jul 12 2008, 13:49
- - sergeeff   Ну, флаг в руки! Думаю там заморочек будет ещ...   Jul 12 2008, 18:41


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

 


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


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