|
|
  |
Помогите кто знает, XPS Interrupt controller, Не совсем понятно как работает |
|
|
|
Dec 26 2008, 09:33
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Привет всем. Я работаю с Virtex4 в EDK 9.2. Вопрос для тех кто имел дело с IP-ядром контроллера прерываний XPS Interrupt controller, который автоматически подключается когда в визарде EDK создашь проект, выбирая IP ядра и ставя галочку на "использовать прерывание". По datasheetу этот контроллер необходим для предоставления IP-ядрам сервиса от процессора, когда IP-ядро является инициатором. Смущает то что опции преывания передаются по PLB шине. Возможен же такой случай, что если IP-ядро сгенерирует прерывание, а опции по шине PLB передать не сможет ,так как другое IP-ядро передает свои опции, и шина для передачи опций занята. В этом случае и понятие Real Time System - теряет смысл. Наверно я чтото недопонял, помогите прояснить ситуацию.
Сообщение отредактировал Oops - Dec 26 2008, 09:44
|
|
|
|
|
Dec 26 2008, 16:35
|
Участник

Группа: Свой
Сообщений: 42
Регистрация: 18-07-06
Из: Germany
Пользователь №: 18 908

|
Цитата(Oops @ Dec 26 2008, 13:33)  Привет всем. Я работаю с Virtex4 в EDK 9.2. Вопрос для тех кто имел дело с IP-ядром контроллера прерываний XPS Interrupt controller, который автоматически подключается когда в визарде EDK создашь проект, выбирая IP ядра и ставя галочку на "использовать прерывание". По datasheetу этот контроллер необходим для предоставления IP-ядрам сервиса от процессора, когда IP-ядро является инициатором. Смущает то что опции преывания передаются по PLB шине. Возможен же такой случай, что если IP-ядро сгенерирует прерывание, а опции по шине PLB передать не сможет ,так как другое IP-ядро передает свои опции, и шина для передачи опций занята. В этом случае и понятие Real Time System - теряет смысл. Наверно я чтото недопонял, помогите прояснить ситуацию.  da ne ponjal ty  INTC vydajot 1 signal na CPU (PPC ili microblaze) a CPU potom smotrik kakoi byl istochnik chitaja registry INTC chitaja ili po PLB ili DCR schine no mnoooogo eta otbiraet vremja  poka chital is sbrosil flaga xilinx drivera uzhas kak medlennyje Antti
|
|
|
|
|
Dec 28 2008, 04:10
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Цитата(Oops @ Dec 27 2008, 19:04)  CPU potom smotrik kakoi byl istochnik chitaja registry INTC chitaja ili po PLB ili DCR schine Еще маленький вопросик А адреса IP-ядер генерирующих прерывания, которые читает CPU, как передаются в XPS Interrupt controller?? Наверное при создании конфигурационного файла адреса IP-ядер генерирующих прерывания прописываются в XPS Interrupt controllerе. Когда IP-ядро генерирует прерывание XPS Interrupt controller распознает что это за IP-ядро, посылает сигнал в CPU и выставляет на регистрах, которые начинает читать CPU, адрес IP-ядра инициатора прерывания, так все происходит???????
Сообщение отредактировал Oops - Dec 28 2008, 04:19
|
|
|
|
|
Dec 28 2008, 07:05
|
Участник

Группа: Свой
Сообщений: 42
Регистрация: 18-07-06
Из: Germany
Пользователь №: 18 908

|
Цитата(Oops @ Dec 28 2008, 08:10)  Еще маленький вопросик А адреса IP-ядер генерирующих прерывания, которые читает CPU, как передаются в XPS Interrupt controller?? Наверное при создании конфигурационного файла адреса IP-ядер генерирующих прерывания прописываются в XPS Interrupt controllerе. Когда IP-ядро генерирует прерывание XPS Interrupt controller распознает что это за IP-ядро, посылает сигнал в CPU и выставляет на регистрах, которые начинает читать CPU, адрес IP-ядра инициатора прерывания, так все происходит???????  dane, kazhdyi int imet NOMER eta raschityvaetsa ist PORT connection address kak takix INTC ne snaet Antti
|
|
|
|
|
Dec 28 2008, 08:11
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Цитата(antti @ Dec 28 2008, 10:05)  INTC vydajot 1 signal na CPU (PPC ili microblaze) a CPU potom smotrik kakoi byl istochnik chitaja registry INTC chitaja ili po PLB ili DCR schine
dane, kazhdyi int imet NOMER eta raschityvaetsa ist PORT connection address kak takix INTC ne snaet
Antti Antti спасибо за помощь но еще есть неясности: Что же тогда считывает CPU с регистров INTC, если это не адрес источника прерывания, и как CPU определяет кто сгенерировал прерывание?????
Сообщение отредактировал Oops - Dec 28 2008, 08:13
|
|
|
|
|
Jan 1 2009, 14:22
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Цитата(Rendom @ Dec 31 2008, 11:37)  Грубо говоря: Имеется 16 источников прерываний, соответственно 16ти разрядный регистр прерываний, где за каджым источником прерываний закреплен определенный бит, CPU считывает состояние этого регистра и ищет в нем 1 начиная с младшего разряда, как только встречается 1, этот бит сбрасывается и начинается обслуживание данного прерывания (источник прерывания определяется по позиции 1). Процессор работает с каждым IP- ядром через шину PLB обращаясь к ниму по адресу (Base_addres IP ядра + смещение). Если процессор считывает с XPS Interrupt controller не адрес источника прерывания, а его позицию, то где находится ассоциация: позиция - адрес. Одной позиции же недостаточно чтобы работать с IP - ядром по шине PLB. Наверно эта ассоциация находится выше, в BSP или драйвере каком нибудь. - Я правильно думаю???
Сообщение отредактировал Oops - Jan 1 2009, 14:25
|
|
|
|
|
Jan 2 2009, 17:16
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 2-01-09
Пользователь №: 42 888

|
Цитата(Oops @ Jan 1 2009, 17:22)  Процессор работает с каждым IP- ядром через шину PLB обращаясь к ниму по адресу (Base_addres IP ядра + смещение). Если процессор считывает с XPS Interrupt controller не адрес источника прерывания, а его позицию, то где находится ассоциация: позиция - адрес. Одной позиции же недостаточно чтобы работать с IP - ядром по шине PLB. Наверно эта ассоциация находится выше, в BSP или драйвере каком нибудь. - Я правильно думаю???  А документацию не читаем из принципа??? Работой с таблицей векторов прерываний занимается драйвер intc. Документацию по нему можно найти здесь: папка_где_установлен_EDK/sw/XilinxProcessorIPLib/drivers/intc_v1_10_c/doc/html/api/index.html А также можно почитать: папка_где_установлен_EDK \doc\usenglish\est_rm.pdf (приложение B ) http://www.xilinx.com/support/documentatio...tes/xapp778.pdf
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|