Jump to content

    

DeadMoroz

Свой
  • Content Count

    211
  • Joined

  • Last visited

Community Reputation

0 Обычный

About DeadMoroz

  • Rank
    Местный
  • Birthday 12/22/1977

Контакты

  • Сайт
    http://
  • ICQ
    0

Recent Profile Visitors

1851 profile views
  1. PCIe over cable

    Цитата(SFx @ May 13 2014, 00:51) настройки из рабочих проектов в свой попробуйте выковырнуть, иначе читать вам полные маны про GTX и PCIe. и второе - попробуйте сделать тоже самое в вивадо. Спасибо, тоже думал попробовать с Вивадо. Получилось найти рабочий вариант - после нескольких итераций с изменениями настроек Lane Width и Gen выяснилось, что кофигурации x4gen1 и x4gen2 работают, х1 х2 - нет. На форуме Xilinx дали итересную ссылочку на документ по отладке PCIe, может кому-то пригодится. http://www.xilinx.com/support/answers/56616.html
  2. PCIe over cable

    Здравствуйте! Я сгенерил PCIe корку для Kintex 7 (7 Series Integrated Block for PCI Express). Все настройки - по умолчанию (x1 gen.1), кроме целевой платы - KC705 rev. C. С этой коркой, как известно, идет тестовый проект (PIO). Если я запускаю его на плате, которая воткнута непосредственно в слот материнки - то все ОК, если подключаю через OneStopSystems PCIe x4 expansion cable adapter ( http://www.onestopsystems.com/pcie_over_cable_n.php) - линк не устанавливается. Chipscope показывает: pl_initial_link_width=000 (link not trained), pl_ltssm_state=000100 (polling active). Использую ISE 14.7, Coregen 14.7, 7 Series Integrated Block for PCI Express IP core ver. 1.11. Плата - KC705 rev. 1.2. На КС705 имеется прошитый тестовый проект PCIe (не знаю какой), он работает нормально и из слота и через кабель. Также нормально работает пара других прошивок (проекты XTP197 и UG927). На адаптере имеются переключатели (equalization, amplification and de-emphasis). Изменение настроек ничего не дает. Еще пробовал конфигурацию с использованием on-board генератора - результат тотже.
  3. Здравствуйте! Может кто может подсказать - нужен сенсор, выдающий от 10000fps (400x400)? Спасибо!
  4. Цитата(kurtis @ Nov 5 2012, 19:44) 1. В чем вы видите преимущество использования mmap() перед write()/read()? 2. sync() сливает содержимое буферов ядра, в буфер устройства. Но это никак не влияет на надежность, т.к. если данные попали в буфер устройства, то не факт что они попали на физический носитель. 3. Зависит от способа обработки. Если вам нужно 1 раз построить график по данным и больше ничего не делать, то 1 файл вполне пойдет. Но если вам вдруг нужно будет посмотреть что было 23 мая, в 15 часов 12 минут, то искать вы будете долго. Я бы делал за каждый час. Я бы сначала вообще ничего не писал, а попробовал бы все сделать на баше. Если будет тормозить (а я не думаю что будет тормозить), то тогда уже думать дальше. 1) читал, что с mmaped файлами работа выполняется быстрее (за счет неиспользования swap в том числе) 2) как же убедиться, что данные на HDD? Если сделать повторное чтение, то тоже нет гарантии, что оно не выполняется из буфера( Спасибо за обсуждение!
  5. Здравствуйте! Имеется система на Линуксе. Примерная логика части программы такова: программа получает постоянный поток данных от FPGA (64 байта/мс * 12 каналов), если при этом установлено соединение (100Мбит изернет) с GUI, то весь поток должен передаваться туда. Если соединения нет, то поток должен писаться в файл на HDD (EXT3\4). Размер файла может быть до 170Гбайт на канал (30 дней), 12 файлов соответственно. Данные из потока должны передаваться последовательно, т.е. перестановка недопустима. В данный момент собираюсь реализовать это следующим образом: 1) для каждого из каналов создать/открыть файл размером 230Мбайт (1 час данных), отобразить файл в память с mmap(). 2) писать данные в файл в независимости от состояния соединения с GUI как в ФИФО буфер. 3) если соединение установлено - читать данные из файла как из ФИФО буфера, при этом файл не будет превышать первоначального/текущего размера. 4) если соединения нет, продолжать писать в файл, при достижении максимального размера, увеличивать размер файла опять на 230Мбайт (1 час) и делать mremap(). По этой реализации у меня такие вопросы: 1) будет ли это достаточно быстро работать (mmap|mremap)? 2) насколько это все надежно (питание может пропасть в произвольный момент), как делать сброс буфера на диск (как fflush)? 3) что лучше один файл на 30 дней или куча файлов (например 1 час) с точки зрения надежности и быстродействия? 4) какие есть альтернативные варианты? P.S. Это мой первый проект под Линукс. Подобное ранее не делал. Система на TI OMAPL-138, 128MB DDR, SATA HDD.
  6. Цитата(koljakh @ Jan 10 2012, 00:05) Они эту еррату от стыда по-дальше спрятали Про нулевые секции я в курсе, я смотрел LDR c помощью ldrviewer1.2 - есть секции IGNORE, INIT, FINAL и без установленных флагов (0000). ZERO секций нет. Спасибо всем за обсуждение!
  7. Собирал тестовый проект в котором не было секций для загрузки в SDRAM, пробовал все варианты ревизий - не помогло. Проект, собранный для rev=any без проблем работает на платах с ревизией 0.3 и 0.5.
  8. Цитата(aaarrr @ Jan 6 2012, 22:22) Эрраты на 0.2 у меня тоже нет, но вот что говорится в EE-240: Хотя на ваш случай не похоже. Да точно. Это я уже видел. Подтяжка есть и, как я уже сказал, init code в принципе выполняется, а вот дальше нет.
  9. Всех с наступившим! Изготовили новую серию плат с запаяным BF532 silicon rev. 0.2 Проблема в том, что не загружается из флеши. Платы с rev. 0.3 и 0.5 - без проблем. После некоторого ковыряния обнаружил, что затык происходит во время выполнения инит-кода, а конкретно на инструкции IDLE. Но даже если ее выбросить, то видно, что исполнение инит-кода завершается и бутлоадер продолжает грузить остальной код, но процесс этот не останавливается. Мое подозрение на неправильный формат LDR файла + бутлоадер rev.0.2 Пробовал компилировать проект (и инит-код) с различными настройками rev, но не помогает. Что интересно, не смог найти эррату на 0.2. VisualDSP ver. 4.5 Не у кого не было что-нибудь подобного?
  10. Все можно. Я использую cmd-файл, состоящий из двух секций: #ifdef LINK_SRAM ... #endif и #ifdef LINK_FLASH ... #endif Далее для CCS3 и CCS4 немного по-разному. Для 3.3: создаю две конфигурации - SRAM и FLASH, ну или можно использовать стандартные DEBUG и RELEASE. Затем для каждой конфигурации задаю Build options->Linker->Advanced(2)->Pre-define preproc. macros (name=value) LINK_SRAM (для SRAM конфигурации) и LINK_FLASH (для FLASH соответственно). Для 4.х: тоже самое Build Properties->C2000 Linker->Command File Preprocessing->Pre-define preprocessor macro name LINK_SRAM или LINK_FLASH для двух конфигураций. Разница между 3.3 и 4.2 в том, что компилятор в 3.3 также видит этот макрос, что удобно например при определении необходимости перегрузки из FLASH в SRAM. Для 4.2 приходится дополнительно прописывать эти defines в: Build Properties->C2000 Compiler->Predefined Symbols. Очень удобно, просто выбрать нужную конфигурацию.
  11. tms320dm368 нет в списке: http://focus.ti.com/docs/toolsw/folders/print/ndktcpip.html The Network Developers Kit (NDK) provides a TCP/IP stack, some network applications, and EMAC device drivers that work with DSP/BIOS on various DaVinci™ Digital Media devices and TMS320C600™ High Performance DSPs, including: DM643x, DM648, DM642, C6424, C6452, C6455, C6474, C6747 and TCI648x devices.
  12. Цитата(Nikolai P. @ Jun 9 2011, 07:24) ...микропроцессоры исполняют свои функции с помощью программ, поэтому они, в общем, работают медленнее...". Можете объяснить, почему так? Не совсем корректное сравнение. По большому счету, если микропроцессор реализовать на FPGA, то он скорее всего будет работать на более низкой частоте чем его прямой аналог.
  13. Цитата(Bakradze @ Jun 6 2011, 20:41) А как работать с Ethernet через sys/bios? Есть ли для sys/bios средства типа как lwIP для VDK у Analog Devices? У TI есть NDK (Network Dev. Kit), вроде бы там есть возможность сконфигурировать стек как с использованием dsp/bios так и без. Список поддеживаемых процессоров довольно ограниченный.