Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование PPI BF537...
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Goblin_Nick
В общем, вроде прозрачный код неработает, как я его не вертел только.
DMA ничего не передаёт, как-будто в него ничего не поступает.
Желёзо рабочее, так как через сервисный драйвер с теми же параметрами
всё хорошо, но он с VDK не чочет работать.
Подскажите кто-нибудь, в трёх соснах заблудился 05.gif .

Код собственно следующий:

// configure DMA for PPI0
*pDMA0_X_COUNT = PIXEL_PER_LINE; // pixels per line
*pDMA0_Y_COUNT = LINES_PER_FRAME; // lines per frame from the sensor
*pDMA0_X_MODIFY = 2; // Modifier 2 because of 16-bit DMA mode
*pDMA0_Y_MODIFY = 2; // Modifier 2 because of 16-bit DMA mode
*pDMA0_START_ADDR = &VideoInputFrame[0][0];//usPTR; // Destination address of the image| SYNC

// Autobuffer mode DMA | Restart FIFO | 2-D DMA | Bus width 16 bit | write to memory
*pDMA0_CONFIG = DMAbuffermode | DMA2D | DI_EN | WDSIZE_16 | WNR;

// PPI0 setup
*pPPI_FRAME = LINES_PER_FRAME; //The PPI is set to receive X lines per frame
*pPPI_COUNT = PPICOUNT; //The PPI is set to stop receiving after X number of samples for each liene

// Fetching data at the falling(LM9618)/raising(OV6630/MT9V022) edge of PCLK| PPI 16-bit bus | PPI input with three frame syncs
*pPPI_CONTROL = POL_S | POL_C | DATALEN | DataPacking | CFG_GP_Input_3Syncs | GP_Input_Mode;

*pDMA0_CONFIG |= DMAEN; // | DMA enable
ssync();

*pPPI_CONTROL |= PORT_EN; // | Start PPI
ssync();
SALOME
Цитата(Goblin_Nick @ Jun 14 2007, 14:20) *
В общем, вроде прозрачный код неработает, как я его не вертел только.

Приведенный фрагмент кода не дает полной картины. Неизвестно, как проведена инизциализация PPI, DMA, Таймеров, прерываний и т.д. Если это поможет, высылаю рабочий фрагмент инициализации. Чем могу...
пытаюсь прикрепить файл, но не получается. HELP me,pls
fontp
Цитата(SALOME @ Jun 16 2007, 07:15) *
пытаюсь прикрепить файл, но не получается. HELP me,pls


Чтобы прикрепить файл нужно его заархивировать и все дела
SALOME
Нажмите для просмотра прикрепленного файла
Цитата(fontp @ Jun 16 2007, 14:33) *
Чтобы прикрепить файл нужно его заархивировать и все дела

Спасибо за науку. Креплю...
SALOME
Цитата(fontp @ Jun 16 2007, 14:33) *

По поводу строки *pEVT8=DMA_ISR:
Регистр EVT8 содержит вектор перехода на подпрограмму обслуживания прерывания. Это адрес компилятор определяет сам в зависимости от того, по какому адресу ляжет эта подпрограмма. У меня эта п/п выглядит так:
EX_INTERRUPT_HANDLER(DMA_ISR)
{
*pDMA0_IRQ_STATUS = *pDMA0_IRQ_STATUS | DMA_DONE;
}
После компиляции эта п/п легла в памяти начиная с адреса 0xFFA1090C. Это значение и есть DMA_ISR и его компилятор кладет в регистр, закрепленный за вектором прерывания EVT8, который в свою очередь всегда имеет адрес 0xFFE02020.
Goblin_Nick
Спасибо, всё ясно по поводу вектора прерывания.
А по поводу PPI, в моём первоначальном коде отсутствовала
инициализация регистров PORTF_FER и PORTG_FER, отсюда
проблемы. Для 533 и 561 BlackFin'ов этого вроде нетребовалось.
smile.gif --- a14.gif ---
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.