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

 
 
> LPC2368, VIC и полтергейст, вешаюсь
Kitsok
сообщение Mar 3 2010, 20:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Добрый день!

Наверное, глаз уже замылился.
Пытаюсь оживить порт FreeRTOS + IAR + LPC2368.
Всякое было, но наткнулся, и не помню, было со мной такое на SAM7, или нет.
Суть вот в чем: настроен Timer0, на нем разрешено прерывание, VIC настроен на вызов некой функции. Кроме этого разрешено SWI, с ним все хорошо.
Ставлю брейкпоинт на вектор вызова IRQ, там у меня:
ldr pc, [PC, #-0xFF0] ;; IRQ
Одновременно стоит watch на адрес 0xffffff00, по этому вызову (после останова по брейку) - правильный адрес.
Жму F11 (step) - и улетаю на reset (0x00000000).

IAR - 5.41, отлаживаю через MT-Link, отладка в RAM, командный файл отладчика:
Код
execUserReset()
{
    __writeMemory32(0x00000002, 0xE01FC040, "Memory"); // MEMMAP = 2;
}

execUserPreload()
{
    __writeMemory32(0x00000002, 0xE01FC040, "Memory"); // MEMMAP = 2;
}


Ниже - скриншоты до F11 и после.

Ткните пожалуйста носом, что я упускаю?
Заранее спасибо!
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Mar 3 2010, 21:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Kitsok @ Mar 3 2010, 23:47) *
Ставлю брейкпоинт на вектор вызова IRQ, там у меня:
ldr pc, [PC, #-0xFF0] ;; IRQ

Жертва отладчиков sad.gif.
Так какой, говорите у Вас контроллер LPC23xx? и КАКОЙ ЕГО РЕГИСТР Вы в таком случае пытаетесь считать
вышеупомянутой командой sad.gif?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Mar 3 2010, 21:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Цитата(zltigo @ Mar 4 2010, 00:01) *
Жертва отладчиков sad.gif.

Не без того....
Цитата
Так какой, говорите у Вас контроллер LPC23xx? и КАКОЙ ЕГО РЕГИСТР Вы в таком случае пытаетесь считать
вышеупомянутой командой?

Я сначала подумал, что вы имеете в виду PC Vs. pc, но ассемблеру пофигу.
Поэтому я намека не понял.

Этой инструкцией я хочу взять содержимое PC, вычесть из него 0xff0 (а не 0x240, уже мозг закипает) (получив в результате 0xffffff00), и загрузить это значение назад в pc.

Где облом?

Update: проверил, стоит у меня брейк и на входе в вызываемый обработчик, так что накосячил я где-то тут...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 3 2010, 21:14
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Kitsok @ Mar 4 2010, 00:04) *
Поэтому я намека не понял.

Для того, что-бы что-то отладить, нужно сначала что-то написать. Вы решили документацию не читать, не писать а скопипастить и заняться отладкой.
Цитата
Где облом?

Облом в том, что контролеры прерываний у LPC21xx и LPC23xx разные. И по адресу 0xFFFFF030 который Вы в результате получите
(кстати, а причем тут 0x240 если у Вас 0xFF0) не найдете желаемого. Правильное число вдвое меньше 0x240, тогда получите 0xFFFFFF00 - VICAddress


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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