|
VIC в LPC23xx, Вопрос по пониманию работы VIC |
|
|
|
Sep 23 2009, 20:33
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Добрый день! У меня в процессе освоения LPC2368 возник вопрос относительно понимания работы VIC. В качестве источников информации использую даташит с сайта NXP (LPC2364/2366/2368) и книгу The insider's guide to the NXP LPC2300/2400 based microcontrollers Тревора Мартина. Вот как происходит назначение процедуры обработки вектора прерывания по Мартину: /* Setup Timer Counter 0 Interrupt */ VICVectAddr4 = (unsigned)tc0_isr; VICVectCntl4 = 0x02 VICIntEnable = 1 << 4; С VICIntEnable все понятно, это подробно и четко прописано в даташите на контроллер, тут неоднозначностей нет. А вот с адресом не совсем понятно. В данном примере, случайно или нет, бит, взведенный в VICIntEnable, совпадает с номером регистра адреса. Но из текста (особенно в даташите скудно об этом написано), следует вроде бы, что никакой связи нет, регистры равноправны и опрашиваются последовательно. Или я неправильно понял? Потому что тот же Мартин некоторые примеры приводит с регистром адреса совершенно не совпадающим с нужным битом. У меня такие примеры не работали, пока я не приводил в соответствие бит, отвечающий за источник прерывания в VICIntEnable с номером регистра адреса. Сейчас у меня большая часть нужной периферии включилась в проект и успешно в нем трудится, но оставлять такой скользкий момент за плечами не хотелось бы. Пожалуйста, ткните меня в фразу из даташита, где это однозначно определяется! Спасибо!
|
|
|
|
|
 |
Ответов
|
Sep 23 2009, 21:08
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Polaris @ Sep 24 2009, 00:33)  С VICIntEnable все понятно, это подробно и четко прописано в даташите на контроллер, тут неоднозначностей нет. А вот с адресом не совсем понятно. В данном примере, случайно или нет, бит, взведенный в VICIntEnable, совпадает с номером регистра адреса. Но из текста (особенно в даташите скудно об этом написано), следует вроде бы, что никакой связи нет, регистры равноправны и опрашиваются последовательно. Или я неправильно понял? Не понимаю, если честно, Ваших затруднений - как иначе контроллеру знать, какой VICVectAddr использовать? Возможно, путаница происходит из-за того, что раньше NXP использовали контроллер PL190, у которого каждый источник можно было привязать к любой паре Addr/Cntl, в то время как на новых кристаллах ставят PL192. А примеры просто забыли поправить. Полную документацию на них можно найти здесь.
|
|
|
|
|
Sep 23 2009, 22:08
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Цитата(aaarrr @ Sep 24 2009, 00:08)  Не понимаю, если честно, Ваших затруднений - как иначе контроллеру знать, какой VICVectAddr использовать? Возможно, путаница происходит из-за того, что раньше NXP использовали контроллер PL190, у которого каждый источник можно было привязать к любой паре Addr/Cntl, в то время как на новых кристаллах ставят PL192. А примеры просто забыли поправить. Полную документацию на них можно найти здесь. Вот я тоже так подумал, откуда ему знать, поэтому и поправил сам везде. А примеры, наверное, действительно забыли исправить, что не есть хорошо в книге для начинающих. Если все так обстоит, то вопрос можно закрывать - разобрался  Спасибо за ответ!!!
|
|
|
|
Сообщений в этой теме
Polaris VIC в LPC23xx Sep 23 2009, 20:33  esaulenka Цитата(Polaris @ Sep 24 2009, 02:08) Если... Sep 24 2009, 09:32   Polaris Цитата(esaulenka @ Sep 24 2009, 12:32) Мо... Sep 24 2009, 10:19    zltigo Цитата(Polaris @ Sep 24 2009, 12:19) Там ... Sep 24 2009, 11:33     Andy Mozzhevilov Цитата(zltigo @ Sep 24 2009, 15:33) Да ту... Sep 25 2009, 07:07      zltigo Цитата(Andy Mozzhevilov @ Sep 25 2009, 09... Sep 25 2009, 08:25 rezident Вообще-то в нормальной технической литературе опис... Sep 23 2009, 21:27 aaarrr Да нет, там и в мануале описание VIC урезано до пр... Sep 23 2009, 21:32 aaarrr Ну дык copy-paste все любят, а вот комментарии пер... Sep 24 2009, 11:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|