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


L761 и vxdapi

Вы не вошли.

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

Андрей
16.03.2006 21:09:29
#1

Гость

L761 и vxdapi

Имеется плата L761B с ADSP2185 для оранизации буферов ввода-вывода используем область младших адресов памяти данных 0-0x2000. Корректируем BIOS
и функцию LOAD_BIOS_PLX, как в Plx_Api так и в Vxdapi, таким образом чтобы происходила загрузка с 0-го адреса памяти данных. В DOS c Plx_Api все работает. Vxdapi не видит память данных в диапазоне 0-0x800. Не читает и не пишет.
В чем может быть проблема?

17.03.2006 10:10:22
#2

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

Re: L761 и vxdapi

USHORT data = ((Addr|0x4000)&0x7FFF)+DSPBase*((Addr>>15)&1);
так вычисляется адрес для покладания в драйвере во встроенной функции PUT/GET. Чтобы класть без всяких вычислений - пишите функции PUT/GET как в досе, но через встроенные в драйвер функции ввода/вывода в порты-память... пример как это делать как раз в исходнике загрузки биоса loadplx.cpp....

Андрей
18.03.2006 19:26:16
#3

Гость

Re: L761 и vxdapi

Как выяснилось описанная ситуация происходит после того как в функции LoadBiosPLX(...) вполняются команды:
Put_DM_word_PLX(d,L_ADC_FIFO_BASE_ADDRESS_INDEX_PLX,base);
CommandPLX(d,cmADC_FIFO_CONFIG_PLX);

До этого чтение и запись памяти данных командами
_Put_DM_word_PLX(...) и _Get_DM_word_PLX(...)
происходит нормально.
Кстати возможно этим и объясняется нормаьная работа в Plx_Api там при загрузке BIOS команда
C_ADC_FIFO_CONFIG_PLX не подается. Инциализация АЦП выделена в отдельную процедуру и не входит в функцию загрузки BIOS.