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

DenisKuzovin

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  1. Добрый день! Вам может помочь калькулятор Xilinx Power Estimator http://www.xilinx.com/products/technology/power/xpe.html
  2. По всей видимости, проблема решилась и без особых трудозатрат. Взял стандартный хендлер прерываний из BSP, который генерирует Vivado 2015.4. В этом хендлере есть работа с регистром ILR, который появился в AXI_INTC v4.1. Через него и организованы вложенные прерывания в новой версии контроллера прерываний. Работу данного регистра можно эмулировать программными средствами, вручную запрещая прерывания уровнями ниже или равным текущему в регистре IER. Кроме этого стандартный хендлер в каждом своём вызове сохраняет регистр r14 и восстанавливает его значение после своей работы. Немного преобразовав работу стандартного хендлера, как написано выше, я получил нормальную работу вложенных прерываний в микроблейзе в ISE 14.7 на Virtex6.
  3. Ну да, к своему основному хендлеру прерываний я уже пришел. Пока работаю на корке версии 1.04а. Основное отличие от версии 4.1, которое я смог заметить, это добавление нового регистра в новой версии корки. При записи в этот регистр номера прерывания блокируются все прерывания более низкого приоритета. Что я хочу сделать: Написать свой хендлер для прерывания в котором бы эмулировался этот регистр и вручную запрещались все прерывания с более низким приоритетом. При этом нужно сохранить какие-то регистры самого процессора, перед тем, как разрешать снова прерывания. https://forums.xilinx.com/t5/Embedded-Proce...ater/td-p/12121 вот тут подобное обсуждение велось. Ответ, конечно, порадовал. нужно сохранить r14 (програм каунтер) и, может быть, что-то еще. Но вот что еще - там не пишут... Попробую пока без "чего-то еще", посмотрим, что получится.
  4. В прошлый раз забил на это (обошел другими методами), а сейчас снова появилась необходимость организовать вложенные прерывания. В самом Микроблейзе тоглько один вход прерывания. К микроблейзу подключен внешний контроллер прерываний AXI_INTC v1.04a. Поддержки вложенных прерываний в нем нет. Из-за того, что проект работает в Virtex 6 - разработка в новых версиях Vivado невозможна, поэтому все так же используется ISE 14.7 Никакой документации или предложений от Xilinx я найти не смог. Говорят, что в принципе это возможно, но и ничего конкретного не предлагают. Поддержка вложенных прерываний появилась в AXI_INTC v4.1, но он только для Vivado. Пытаюсь понять, можно ли как-то собрать новую корку в ISE, чтобы получить поддержку вложенных прерываний в микроблейз на Virtex 6
  5. Как-то по Питеру совсем грустно получается. Остались только пункты выдачи СПСР, в которых не посмотреть ине поговорить. А сроки доставки, как выше написано, просто поражают. Итого для Питера минус еще один магазин радиодеталей, которых и так было меньше, чем пальцев на одной руке.
  6. У меня такое поведение было из-за банальной причины: ошибка в работе с указателями, обращение по непроинициализированному указателю, обращение по адресу NULL.
  7. Прошу прощения за поднятие строй темы, но вдруг кому полезно будет. Только что была аналогичная проблема, никак не мог подключиться к плате. Осмотр выявил отсутствующий элемент L1, через который питается вся аналоговая часть таргет кристалла. Такой катушки не было, впаял пока резистор 0Ом - заработало... На посадочном месте было видно, что элемент там когда-то был. Наверное плохо припаялся, так как механически сорвать один элемент с середины платы это как-то странно. Так что эти отладки иногда бывают с браком..
  8. Добрый день! Не могу разобраться с одной проблемой. Есть у меня проект с Микроблейзом и контроллером прерываний (axi_intc 1.04.a). Так как используется ISE 14.7, то и версия контроллера прерывания соответствующая. Хочу сделать многопоточную систему в процессоре. Есть несколько потоков, более высокоприоритетные могут прерывать более низкоприоритетные. Потоки создаются с помощью таймеров и прерываний. Соответственно необходимо, чтобы более высокоприоритетное прерывание прерывало текущее более низкоприоритетное прерывание, а не просто становилось в очередь. Судя по всему, ближайшая реализация этого Xilinx появилась лишь в версии 4 axi_intc, доступной для Vivado, что нам не очень подходит.. Ткните носом, пожалуйста, может кто сталкивался с подобной проблемой, может кто видел реализацию вложенных прерываний на Microblaze в ISE 14.7?
  9. Да, поддержки старого никакой. Этот генератор давно не обновлялся, так что вряд ли c device tree, созданным этим генератором удасться загрузить что-то. Возможно, нужно будет подобрать ядро линукса, которое с ним загрузится. Я пробовал его использовать на устройстве с Zynq. В итоге брал готовый (правильно структурированный) device tree из какого-то примера для Zedboard, сравнивал его с тем, что сгенерировал этот скрипт и делал новый ДТС с учетом своей перефирии уже руками...
  10. Прощу прощения, что так долго отвечал.. Командировка.. bsp_device_tree.rar Тут старые скрипты. Два варианта, чем они отличаются - я уже плохо помню. Файлы немного подправлены мной. "Oldest" точно видится и работает в 14.7. Если не ошибаюсь, "Old" для ранних версий Vivado
  11. device tree в 14.7 вроде можно создать только с использованием скриптов из старого репозитория. я делал для Цинка. Если еще актуально, могу поискать, где-то в архиве лежали эти скрипты. Однако есть ограничение. Этот DTS подходит только для версии ядра 3.9.0 кажется, и ниже. Более новые ядра просто не грузятся
  12. Приходилось стыковать с FPGA Xilinx. Успешно :) Кто управляет, настраивает AD? Какой драйвер используется? Самодел или предоставленный AD? Там есть настройки, отвечающие за эту шину данных.
  13. Есть такая беда, что когда создаете проект для FSBL вместе с BSP под него, то он не выдает окошка для настройки BSP. А если вы потом и перенастроите его, то не факт, что SDK его нормально пересоберет (ошибка в SDK, не всегда применяются изменения). Можете создать standalone bsp, настроить его (в Вашем случае проверить куда напрвлен стандартный ввод/вывод), а потом при создании проекта FSBL указать этот BSP в качестве используемого, вместо того, чтобы генерировать новый. Этот же BSP можете использовать для остальных проектов (hello world , perif test и тд). Если будете генерировать для каждого проекта свой BSP то всегда проверяйте его настройки.
  14. xmega256a3 ADC

    Да, привык к обычным мегам, там можно до AVCC. Это вырезка из даташита к mega128 для сравнения, про xmega256 писали выше. АЦП у них действительно сильно отличаются. Хотя сейчас уточнил у товарища, у него схема на этой же хмеге256 и VREF = VCC. Тоже видимо по привычке. Работает стабильно, проблем он не замечал. Хотя по даташиту это действительно неверно. В своей схеме я единственное что замечал, это то, что невозможно оцифровать напряжение выше 3В. При 2,95 уже максимальное значение в регистре АЦП. Но меня это устраивает.
  15. xmega256a3 ADC

    Да, есть упоминания об этом, хотя в оригинальном даташите вроде бы об этом не пишут. Огромное спасибо! действительно помогло. Не ожидал, что от этого может глючить, надо запомнить)) Раньше работал с ADC только на mega серии, там вроде бы таких проблем не замечал.
×
×
  • Создать...