Продукты Xilinx – трухлявая хрень!

Целый месяц бьюсь с отладочной платой ML510 от Xilinx. Такая лопата, внешне выглядящая как материнская плата ATX-формата. На борту – FPGA Virtex-5. Чем дальше я пытаюсь её заставить работать, тем больше она меня выбешивает!!!

Во-первых, это найденные баги:
1. В IP-ядре xps_tft, которое отвечает за коммуникации с чипом от Crontel и вообще за возможность работы с дисплеями по DVI какой-то криворучко забыл скобку поставить. Мне то пофиг, я исправил. Но вот КАК ОНИ ЭТО ТЕСТИРОВАЛИ??? Без скобки оно тупо не компилируется же!!!
2. В Xilinx Platform Studio раньше для выбора того куда присоединён порт был StringGrid с инкапсулированными ListDown’ами. Какому-то придурку это показалось некрасиво. Теперь там нужно щёлкнуть мышкой и появится уродливое мини-окошко, в котором надо выбрать выход с помощью того же ListDown’а. Стоит ли говорить, что механизм появления окошка по клику писал опять же криворучко? Я потратил сутки, чтобы понять, что окошко не появится в принципе, если XPS развёрнута на неосновном дисплее. Да-да, в Xilinx не знают, что многие пользуются несколькими мониторами одновременно!

Во-вторых. Платформа для написания кода для PowerPC 440, который встроен в тот Virtex-5 называется Xilinx SDK. Да щас! ЭТО ЭКЛИПС!!! Я его уже видеть не могу. Глючная среда, разработанная дизайнерами.

Неделю потратил на выяснение вопроса почему в ассемблере для PowerPC регистры называются r0,r1,..,r31, а ассемблер таких названий не понимает. Говорит “unsupported relocation against Rx”. Я вообще в принципе эту фразу не понимаю, что они хотели этим сказать?

Оказалось, что ему надо сказать, чтобы он такие названия понимал. Специальной директивой “-mregnames”. Причём, эту директиву надо задать не только ассемблеру, но и компилятору GCC (спрашивается, зачем си-компилятору директивы ассемблера?). Почему эта директива не выставляется автоматически – тоже тот еще вопрос. Видимо потому, что сами Xilinx’овцы своим поделием не пользуются. Во всяком случае мне трудно поверить, что они оперируют не названиями регистров, а адресами, где эти регистры находятся. Тут еще есть тот прикол, что, к примеру, SP (Stack Pointer – указатель стека) и регистр R1 – это одно и то же…

В эклипсе больше всего выбешивает запуск дебаг-сессии. Никогда не знаешь запустится она или нет. И не подаст ли она при старте полный хардверный ресет ПЛИСу, затирая сконфигурённый процессор, чтобы потом удивлённо так сказать окном на пол-экрана “А где же процессор?”.

Справедливости ради, один раз мне удалось пройти весь этот форт Боярд не уткнувшись ни в одну ошибку. И FreeRTOS у меня таки заработал. Но это было один раз, неделю назад. И второй раз повторить тот же путь у меня пока не получилось.

One thought on “Продукты Xilinx – трухлявая хрень!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>