Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Не генерируется прерываение платой L761

Вы не вошли.

 Поиск | Регистрация | Вход 

Барада
12.09.2006 17:08:00
#1

Гость

Не генерируется прерываение платой L761

Собственно сабж. В отладочных целях модифицировал прошвику для ADSP2184 таким образом:
MainLoop:
    CALL PutAcdData;
DacSampleLab:                 
    CALL CheckDacSample;
    CALL SendingDataToDac;
                             
    CALL CommandProcessing;

    RESET FL2; NOP; NOP; SET FL2;

    JUMP MainLoop;
т.е. прерывания должны генерироваться постоянно.
В системе написал вот такой код:
....
hEvent = CreateEvent(0,FALSE,FALSE,NULL);
ULONG EventId = L_EVENT_ADC_BUF;
int result = pI->SetLDeviceEvent(hEvent, EventId);
result = pI->LoadBios("L761mod"); //грузим биос
WaitForSingleObject(hEvent, INFINITE);
if(result==L_SUCCESS){
    coutput="Load BIOS ... ОК";
    AddString(coutput);
}
....
Собственно дальше WaitForSingleObject не идёт. В биосе компьютера выставли Plug & Play OS Installed в NO, жёстко установил плате IRQ3. В винде сменил ACPI на Standart PC. Всё равно не работает.

13.09.2006 09:09:51
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Не генерируется прерываение платой L761

естественно работать не будет...все должно быть как в примере.. без команд страта сбора ничего не будет...

Барада
13.09.2006 09:45:35
#3

Гость

Re: Не генерируется прерываение платой L761

а можно подробнее? Ведь в моей прошивке ADSP2185 постоянно крутится генерация прерывания:
----
MainLoop:
CALL PutAcdData;
DacSampleLab:
CALL CheckDacSample;
CALL SendingDataToDac;

CALL CommandProcessing;

RESET FL2; NOP; NOP; SET FL2;

JUMP MainLoop;
------
Или дело в драйвере?

13.09.2006 10:18:36
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Не генерируется прерываение платой L761

дело в драйвере. он разблокирует прерывания и ловит их только после старта...

Барада
13.09.2006 10:21:39
#5

Гость

Re: Не генерируется прерываение платой L761

Хм, мне необходимо чтобы прерывания работали всегда - планирую написать свою прошивку для DSP. Как это сделать?

13.09.2006 10:47:16
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Не генерируется прерываение платой L761

ну...или после старта ловить или свой драйвер писать...обработчик там причем данные забирает а не просто прерывания сбрасывает...

Барада
13.09.2006 10:49:28
#7

Гость

Re: Не генерируется прерываение платой L761

1. т.е. сделать fake старт и выполнять свою обработку в DSP?
2. С каких адресов и куда забираются данные?

13.09.2006 11:35:11
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Не генерируется прерываение платой L761

1 типа того....
2 ну из буфера платы в буфер компа...как в примере

Барада
13.09.2006 19:48:29
#9

Гость

Re: Не генерируется прерываение платой L761

Хм, я пришёл к выводу, что мне нужен драйвер, работающий так:
Обработка прерываний начинается сразу после вызова функции ULONG SetLDeviceEvent(HANDLE hEvent, ULONG EventId=L_EVENT_ADC). Т.е. чтобы после генерации прерывания платой производилась только установка события.

Не могли бы вы модифицировать драйвер и(или) выслать мне исходники драйвера, если сами не хотите/не можете?

Далее меня интересует как произвести обмен данными между DSP и ОЗУ компьютера. Как на ходу считать слово из памяти DSP (GetWord_DM ???) и как из DSP записать слово данных в ОЗУ компьютера ?

14.09.2006 09:18:41
#10

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Не генерируется прерываение платой L761

послал исходники...

Барада
14.09.2006 17:11:16
#11

Гость

Re: Не генерируется прерываение платой L761

#include <vdw.h>
вот такого файлика нет
и вот этих инклудов
#include "../include/pcicmd.h"
#include "../include/ioctl.h"
тоже нет

Барада
15.09.2006 12:09:14
#12

Гость

Re: Не генерируется прерываение платой L761

эээ?