Перейти к содержанию
    

Zynq подключение камеры

Как вариант посмотрите как настроить прерывание не по уровню, а по фронту.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как вариант посмотрите как настроить прерывание не по уровню, а по фронту.

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

Да настроил,спасибо. С помощью функции XScuGic_SetPriorityTriggerType.

Теперь все правильно работает. Остается как то скачать дамп памяти в файл и посмотреть. Пытаюсь через XSCT консоль - но не понимаю. Использую вот такую команду - mrd -bin -file mem.bin 0x01000000 360960. Но не понимаю где этот файл найти, или нужно сначала его открыть, потом записать, потом закрыть. А что за команды?

Изменено пользователем ilyaprok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В TCL консоли вы можете понять в какой рабочей директории находитесь командой dir.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В TCL консоли вы можете понять в какой рабочей директории находитесь командой dir.

Спасибо!

получил первое изображение:

37IFUAjgQUqWsk39Amv_VA.png

Вам toshas и svedach Большое Спасибо!!!! Я прям рад! :biggrin:

Однако вопрос возник - если идет запрос к DRAM памяти сразу несколькими мастерами как будет происходит чтение или запись? Можно например обращаться к памяти в DRAM, пока идет чтение или запись в тот же регион с помощью DMA? А если несколько DMA использовать - как они будут делить доступ?

И еще вопрос по поводу глобальных переменных - где они создаются в кеше? какого уровня?

И что означает эта функция, зачем очищать кэш?

Xil_DCacheFlushRange

Я использую по совету svedach

    
Xil_Out32(XPAR_AXI_DMA_0_BASEADDR + 0x48, AddrDst);
Xil_DCacheFlushRange(AddrDst, 752);
Xil_Out32(XPAR_AXI_DMA_0_BASEADDR + 0x58, 752);

И еще получается 480*60=28800 раз в секунду вызывается прерывание по DMA, это же съедает много процессорного времени?

Изменено пользователем ilyaprok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день! Поздравляю!

Xil_DCacheFlushRange - это сброс кешированных данных из кеша в ДДР. Как я смог разобраться, несмотря на то, что память распределена в ДДР, Цинк перегоняет данные в кеш, а потом как будет время - в ДДР. Эта команда заставляет его скинуть последние принятые данные в ДДР.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...