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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Sam7ex256 и UART, Не срабатывает прерывание
Brain_
сообщение Dec 14 2009, 19:34
Сообщение #31


Участник
*

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



Во всех без исключения примерах настройки AIC одинаковые (+- значение приоритета). Я думаю что проблема в адресах (Это видимо как раз то, что в стартапе прописывается или я что то все-таки не допонял?).
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Dec 15 2009, 07:05
Сообщение #32


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

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



Дело не в примерах, а в вашей абсолютно конкретной программе. Хоть одно прерывание работает, если AIC, как вы утверждаете, правильно настроен? Похоже, что нет. Адреса с 0х00000000 printf'ом для контроля ведь не трудно распечатать? О чем мы тут не знаю какой день разговоры ведем?
Go to the top of the page
 
+Quote Post
Brain_
сообщение Dec 15 2009, 09:18
Сообщение #33


Участник
*

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



Куда их printf выведет?
Как адреса получить?
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Dec 15 2009, 09:40
Сообщение #34


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

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



Согласно вашему startup'у первые (8+5)*4 адреса содержат интересующие адреса. printf выводит результат, как правило, в USART DBG, который можно на любой терминальной программе увидеть.

Прочитать таблицу:

Код
int *pt = (int *)0;
int i = 13;
while(i--)
    printf("%08X -> %08X\n", pt, *pt++);


Получите: адрес -> содержимое ячейки по этому адресу
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Dec 15 2009, 10:26
Сообщение #35


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



А где исправленный текст программы?
При разрешенных (реально разрешенных) прерываниях неправильный вектор скорее всего убъет программу. Это раз.

Если ваша программа работает (а как вы узнаете об этом, кстати), то значит реально никаких прерываний нет.

Тренируйтесь на таймере и используйте UART как отладчик.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
Brain_
сообщение Dec 15 2009, 13:41
Сообщение #36


Участник
*

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



это то что находится по нулевому адресу.
18 0C 06 03
18 0C 06 03
18 0C 06 03
18 0C 06 03
18 0C 06 03
14 0A 05 02
14 0A 05 02
CC 66 33 19
E8 F4 7A BD
E8 F4 7A BD
E8 F4 7A BD
E8 F4 7A BD

Проверяю работоспособность диплеем и кнопками.

Сообщение отредактировал Brain_ - Dec 15 2009, 14:12
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Dec 15 2009, 17:36
Сообщение #37


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

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



Ну и сидит тут всякая фигня. Уж точно с адреса 0х20 по 0х34 должны сидеть адреса функций обработки соответствующих прерываний. Ну и на сладкое дизассемблированный текст:


Код
00000000 180C0603    STMNEDA    ip, {r0,r1,r9,r10}
00000004 180C0603    STMNEDA    ip, {r0,r1,r9,r10}
00000008 180C0603    STMNEDA    ip, {r0,r1,r9,r10}
0000000C 180C0603    STMNEDA    ip, {r0,r1,r9,r10}
00000010 180C0603    STMNEDA    ip, {r0,r1,r9,r10}
00000014 140A0502    STRNE    r0, [r10], #-&502
00000018 140A0502    STRNE    r0, [r10], #-&502
0000001C CC663319    STCGTL    p3, c3, [r6], #-&64!
00000020 E8F47ABD    LDMIA    r4!, {r0,r2-r5,r7,r9,r11-lr}^
00000024 E8F47ABD    LDMIA    r4!, {r0,r2-r5,r7,r9,r11-lr}^
00000028 E8F47ABD    LDMIA    r4!, {r0,r2-r5,r7,r9,r11-lr}^
0000002C E8F47ABD    LDMIA    r4!, {r0,r2-r5,r7,r9,r11-lr}^
00000030 E8F47ABD    LDMIA    r4!, {r0,r2-r5,r7,r9,r11-lr}^


Вы, кстати, включите генерацию листинга startup-файла. Там увидите правильные коды команд по соответствующим адресам. Адресов функций там не будет, так как их позже подставляет linker, но эти адреса можно найти в map-файле, который можно заставить генерить linker (что очень часто бавает полезно)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 15 2009, 17:47
Сообщение #38


Гуру
******

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



Цитата(Brain_ @ Dec 15 2009, 16:41) *
это то что находится по нулевому адресу.

Вроде в первый раз (одной строкой) что-то более похожее на правду выкладывалось, или мне показалось?

Давно бы уже выложили проект свой, мы бы его поправили. Иначе все как-то бестолково.
Go to the top of the page
 
+Quote Post
Brain_
сообщение Dec 17 2009, 10:47
Сообщение #39


Участник
*

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



Приношу свои извинения, по поводу компостирования умов, всем, кто участвовал в обсуждении.
Мне удалось переделать пример с RTT под UART. прерывания заработали.

Правда не могу понять почему. Все функции и библиотеки которые использовались у в RTT проекте я себе скопировал и добавил. Все настройки проекта проверил. Все один в один. Но пример(переделанный) работает, моя прога - нет sad.gif

Видимо придется пока пользоваться этим проектом как стартовым sad.gif

Всем спасибо.

Сообщение отредактировал Brain_ - Dec 17 2009, 10:48
Go to the top of the page
 
+Quote Post

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

 


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


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