3 августа 2019 г.

Zynq UIO Linux драйвер, как его использовать с AXI интерфейсом

В этой статье речь пойдёт про UIO драйвер Linux, Userspace Input Output.

Ранее было рассмотрено несколько простых способов как работать с GPIO на плате Zybo с помощью Linux и было сказано несколько слов про работу с памятью ОС в целом.

Для работы с периферией нужно использовать специальный драйвер предназначенный конкретно для неё, либо обладать правами администратора, знать где в памяти ОС находится необходимые регистры и работать с ними напрямую через /dev/mem.

Но в целях безопасности, обычные пользователи не обладают достаточными правами для работы с памятью напрямую, и необходимого драйвера может не быть в принципе. К тому же многие устройства генерируют прерывания. Для их обработки без драйвера не обойтись.

Создание своего драйвера требует довольно больших затрат и возможно оно нее оправдано, к примеру для простого доступа к светодиоду. Для его написания нужно взаимодействовать с исходниками ядра, что в конечном итоге может повредить всю ОС.
Хорошая книга по Linux драйверам: Linux Device Drivers,

21 июля 2019 г.

Как помигать светодиодом на Zynq FPGA (ПЛИС) с помощью Linux используя отладочную плату Zybo вместе с sysfs или /dev/mem

В данной статье будет рассмотрено несколько способов мигания светодиодом, в принципе небольшое пособие по использованию портов ввода вывода из Linux.

Теория

Есть 3 основных варианта создания и настройки GPIO выводов из ARM процессора.
Информация по большей части взята из документации ug585-Zynq-7000-TRM.

в сердце Zybo находится XC7Z010-1CLG400C, это SoC (System on Chip), который состоит из ARM процессора и FPGA. Их можно рассматривать как 2 раздельных устройства, у каждого из них имеются свои подключения к ножкам микросхемы, к тому же между ними есть внутренние соединения для обмена данными. Более детально это можно увидеть на следующей схеме:

Рис.1 структурная схема интерфейсов

Светильники из орг стекла

Пару лет назад сделал подарок на день рождения. с Bill cipher из Gravity Falls:


Ещё раньше сделал следующее:


16 июля 2019 г.

Как добавить FPGA bit файл в загрузочный BOOT.bin, для конфигурации ПЛИС вместе с Linux

В данном руководстве будет рассказано каким образом перекомпилировать U-Boot, для того, чтобы, добавить бинарный файл для конфигурации FPGA, в загрузочный файл BOOT.bin.

Для того чтобы FSBL сконфигурировал ПЛИС при включении питания и перед запуском Linux, его необходимо добавить в загрузочный файл сразу после FSBL, иначе он его не найдёт. Необходимо использовать *.bit файл в *.bin файле нет заголовка и он не запуститься через FSBL. Это выглядит следующим образом:

11 июля 2019 г.

Embedded Linux на Zynq, как переместить файлы с компьютера на Linux

О том как запустить Linux на Zynq рассказано здесь.

По умолчанию для передачи файлов на Linux ядро от Xilinx, можно использовать несколько способов описанных на их wiki: xilinx-wiki.atlassian.net.

На рабочую систему файлы можно передавать как через Ethernet порт, так и через USB (UART) порт. Но т.к. файловая система находится в RAM, при выключении питания добавленные файлы пропадут, для их сохранения необходимо изменить файловую систему rootfs. Сперва рассмотрим передачу файлов через ethernet.

28 июня 2019 г.

Как скомпилировать Linux для отладочной платы Zybo (Zynq) и запустить его с QSPI

В данной статье будет описано каким образом подготовить все необходимые файлы для запуска Linux с FPGA фирмы Xilinx, а именно отладочной платы Zybo. С последующей записью необходимых файлов на QSPI и запуском готовой системы.

Данное руководство основано на следующих:
instructables.comxilinx-wiki.atlassian.netgithub.com.

Разработка FPGA части будет производиться в Vivado 2019.1, компиляция необходимых файлов для Linux будет выполнена в виртуальной машине Oracle VM VirtualBox, на которой установлена Ubuntu.

Компиляция будет происходить без использования PetaLinux, как утверждают Xilinx - это платформа, которая содержит всё необходимое для запуска Linux на FPGA и облегчает внесение изменений. В данном руководстве всё будет собираться ручным образом, для того чтобы ближе взглянуть на работу встроенных систем.