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

pesoshin

Участник
  • Постов

    51
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о pesoshin

  • Звание
    Участник
    Участник
  • День рождения 14.05.1988

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. _pv спасибо за действительно интересный подход kovigor необходимости нет, да и об управлении объектом речь не идет. Внешний объект - два концевых выключателя, которые в процессе эксперимента то включают, то выключают. Интерфейс на ПК - 2 линии, чтобы их "входы" запитать, 2 линии, чтобы посмотреть, есть ли сигналы с "выходов", вся остальная логика - графика, логика эксперимента на ПК. Если интересно, могу в личку скинуть о чем идет речь :-) Мне кажется, что ответ на свой вопрос я уже более чем получил, спасибо всем :-)
  2. Про скорости - входной сигнал опрашивается не чаще раза в 1 мс (f <= 1000 Гц), при этом первый фронт на одной из линий хотелось бы поймать максимально быстро. А разве можно управлять линиями последовательного порта ПК на манер GPIO (а как?)? Это что-то вроде bitbang mode у FT232RL?
  3. спасибо за ответ! Видимо, действительно, штатной возможности у ПК нет (на electronics.stackexchange.com ответили то же самое). Наверно остановлюсь на МК или покупном чем-нибудь вроде http://www.mccdaq.com/pci-data-acquisition...O24-Series.aspx
  4. Доброго времени суток! Возможно ли использовать стандартный персональный компьютер в качестве GPIO-контроллера? Хочу подключить к нему всего 4 линии, на 2 из них подать высокий логический уровень, и 2 другие в программе опрашивать на наличие сигнала. Нужен ли в данном случае нестандартный контроллер (покупной, разрабатываемый) или он уже есть в составе ПК (если да, как к нему подключиться)?
  5. Так я уже и насторожился, посмотрите, об этом в ссылке приведенной написано http://www.xilinx.com/support/answers/30878.htm
  6. Это так и есть. Только я поясню еще раз - при включении питания схемы - код с malloc/free выполняется нормально, а после сброса - тот же самый код - запускается сначала и уже падает в местах вызова malloc (возвращает NULL). Linker-скриптом сегменты кода, стека и кучи распределяются по блочной памяти ПЛИС и внешней оперативной. Следовательно это проблема не в коде, а где-то выше - на уровне bsp или драйверов Xilinx'а. Xilinx вроде бы знает об этой проблеме http://www.xilinx.com/support/answers/30878.htm, только оба описанных метода выглядят как страшнейшие хаки. Потому и спрашиваю, можно ли это сделать как-то лучше. AVR Да, это очень похоже на правду. Как посмотреть, не подскажите?
  7. EDK-проект для Xilinx Spartan 6. В C++ коде часть классов/структур размещается в куче динамически через malloc(). Куча и стек лежат во внешней DDR2, код - в брамах (можно вынести тоже в оперативку). Проблема в следующем: После сброса системы (или нескольких) код выполняется с начала, однако вызовы malloc возвращают NULL. Как вы это обычно лечите?
  8. Возможно. При создании МПС в EDK - вы создаете элемент system верхнего уровня. Порты этого элемента мапите на ноги ПЛИС и на основе его создаете прошивку. Этот же элемент можно использовать в другом ISE-проекте, в котором верхним уровнем будет другой модуль, написанный, например, на VHDL. В этом случае в EDK-проект добавляются некоторые настройки, которые диктуют Xilinx-инструментам синтезировать МПС уже под управлением ISE proj nav, а не XPS. (это ограничение можно снять в дальнейшем руками правкой xmp-файла). Тут уже, на мой взгляд, больше вопрос проектировщика из разряда про "курицу и яйцо" и вопрос комфортности разработки. Инструментарий в ISE более развит - можно прямо из него вызвать timing analyzer, planahead и т.д., однако по части интеграции sw+hw в ISE-проекте верхнего уровня у меня возникали проблемы - не получалось без полной перегенерации прошивки обновить sw-часть системы.
  9. AVR Давайте я вам скриншоты покажу как elf выбирается у меня в XPS. Контекстное меню может не работать, если Xilinx ISE криво установлен. Я когда на убунту запускал EDK - постоянно смотрел в консоль - он по многим шагам выдавал неадекватные ошибки, вроде вручную установить в скрипте запуска EDK локаль, пару глобальных переменных и т.д. 3 проекта - это экспортированный hw, BSP и сам application. Это нормально. Для тестирования Вы можете и из SDK код hw+sw в плату загружать - там есть кнопка Program FPGA, там выбираете какой sw код прописать в BRAMы. По умолчанию - это bootloop.
  10. AVR 1) Есть некоторая интеграция между XPS и EDK - состоит в экспорте файлов "железа" в EDK. То есть запускать EDK отдельно можно, только обновленные файлы железа, соответствующие системе, все равно придется экспортировать каждый раз через XPS. Я лично предпочитаю открыть XPS, нажать на Export to SDK, и уже быть уверенным, что system.bit, с которым работает SDK, у меня всегда актуальный. 2) Там где вы видите вкладку Elf files - можно через контекстное меню, вызываемое правой кнопкой мыши, назначить elf-файлы, которые загружаются в BRAM (для реализации и для симуляции). После этого нажимаете кнопку Init BRAMs (или Update Bitstream в 13.3) и вуаля - появляется файл implementation/download.bit - состоящий из аппаратной прошивки с BRAM'ами, заполненными программным кодом. 3) Мое мнение в том, что Xilinx считает многие моменты очевидными и не дает на все прямые руководства к действию :) 4) Скорее всего все установлено
  11. Проект для Microblaze, к шине PLB подключен контроллер прерываний - XIntc. Код приложения - на C++, BSP - standalone. Не могу понять, чем вызвано следующее поведение: РАБОТАЕТ: 1. В коде main.cpp создаю объект XIntc, делаю XIntc_Initialize, затем XIntc_Start(XIN_REAL_MODE). Обе операции отрабатывают со статусом XST_SUCCESS. 2. Кнопкой делаю сброс системы. В начале кода main.cpp сделан хак, описанный в http://www.xilinx.com/support/answers/30878.htm по способу 2. Вместе с хаком обе операции из п.1 отрабатывают с XST_SUCCESS. НЕ РАБОТАЕТ: 1. Рефакторю код - выношу XIntc как член нового класса Application (application.h/application.cpp). 2. Добавляю операции из п.1 "РАБОТАЕТ" в файл application.cpp. При выполнении - XIntc_Initialize (или XIntc_Start) первый раз выполняются нормально, а после сброса - падают со статусом XST_DEVICE_IS_STARTED. 3. Добавление хака из п.2 "РАБОТАЕТ" - не влияет на поведение предыдущего пункта. В чем проблема? XIntc нельзя безболезненно использовать, если хранить объект где-то кроме стека?
  12. а вы это через coregen делали? Если да, то подобных проблем (в т.ч. описанных Grumbler_2002) не должно быть
  13. Проект для Spartan 6 на отладочнике Digilent Atlys ( http://www.digilentinc.com/Products/Detail...&Prod=ATLYS ), выводит изображение на монитор через HDMI-порт. Пины SCL/SDA подключены к ПЛИС через TMDS-буффер. Не могу найти информацию, как происходит коммуникация по EDID/DDC стандарту (в какой момент начинается передача, периодична ли она, как ей можно управлять). При этом сам формат пакетов доступен на сайте VESA. Буду признателен за толковое разъяснение принципов или ссылки на примеры подобных проектов. Заранее спасибо!
×
×
  • Создать...