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

 
 
> Прерывания без ОС на 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
Ответов
sergeeff
сообщение Jul 2 2008, 16:02
Сообщение #2


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



А что за процедура вызывается по прерыванию? Как бы все похоже, что это обычная функция для ARM_MODE_USER или ARM_MODE_SVC или ARM_MODE_SYS, а уж никак не для режима прерывания? Там к тому моменты и стек другой и прочие прелести. Ну и VIC'ом тоже не попахивает.

По определению interrupt handler не может иметь параметров!

000092FC E59FD0F0 LDR sp, &000093F4
00009300 E92D003F STMFD sp!, {r0-r5}
00009304 E24E0004 SUB r0, lr, #4
00009308 E14F1000 MRS r1, SPSR
0000930C E3A02006 MOV r2, #6
00009310 E1A0300D MOV r3, sp
00009314 E10F4000 MRS r4, CPSR
00009318 E3C4401F BIC r4, r4, #31
0000931C E3844053 ORR r4, r4, #83
00009320 E129F004 MSR CPSR, r4
00009324 E1A0500D MOV r5, sp
00009328 E1A0400E MOV r4, lr
0000932C E92D0037 STMFD sp!, {r0-r2,r4,r5}
00009330 E1A0000D MOV r0, sp
00009334 E10F2000 MRS r2, CPSR
00009338 E38110C0 ORR r1, r1, #&C0
0000933C E3C11020 BIC r1, r1, #32
00009340 E129F001 MSR CPSR, r1
00009344 E9207F00 STMDB r0!, {r8-lr}
00009348 E129F002 MSR CPSR, r2
0000934C E1A0D000 MOV sp, r0
00009350 E893003F LDMIA r3, {r0-r5}
00009354 E92D00FF STMFD sp!, {r0-r7}
00009358 E59D1040 LDR r1, [sp, #64]
0000935C E201101F AND r1, r1, #31
00009360 E3510013 CMP r1, #19
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
- - aaarrr   Исходники redboot'а, если охота в них ковырять...   Jul 2 2008, 11:32
|- - toykhee_menky   Цитата(aaarrr @ Jul 2 2008, 17:32) Исходн...   Jul 2 2008, 13:14
- - sergeeff   Ну вот, осталось посмотреть, что же сидит в таблиц...   Jul 2 2008, 11:33
- - 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 Текстовая версия Сейчас: 19th July 2025 - 09:08
Рейтинг@Mail.ru


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