Аналоговый хвост для окон

Обновлено: 03.07.2024

Большинство моих коллег больше работают с Linux, чем с Windows. Так что их кошка и их grep близки и дороги их сердцу, и их первая реакция, когда они входят в PowerShell, — повторить эти команды.

Во-первых, это не всегда хороший подход, потому что bash и PowerShell принципиально разные. Когда мы запускаем команды bash или внешние исполняемые файлы в bash, мы получаем обычный текст. Когда мы запускаем командлеты PowerShell, мы получаем объекты.
Поэтому довольно часто перевод действий с bash на PowerShell является плохим способом выполнения действий. Powershell предоставляет нам богатые объекты со свойствами и методами, чтобы легко извлекать нужную нам информацию и/или манипулировать ими всевозможными способами. Используйте это в своих интересах!

Тем не менее, я собираюсь выполнить это упражнение по переводу нескольких основных команд, потому что это может быть интересным упражнением для пользователей bash, переходящих на PowerShell. Кроме того, это возможность проиллюстрировать фундаментальные различия между bash и PowerShell.

Get-Location
Вот пример:

Кстати, PowerShell был разработан, чтобы быть удобным для пользователя, даже для старой школы-оболочки Unix, поэтому для популярных команд Linux/bash есть встроенные псевдонимы, которые указывают на настоящий командлет. .
Например, пользователи bash по-прежнему могут разрешить своей мышечной памяти ввести pwd , потому что это псевдоним командлета Get-Location . Другой псевдоним этого командлета: gl.

Set-Location
Но вы можете использовать псевдонимы cd , sl или chdir, если у вас есть старые привычки, или чтобы не печатать, когда вы используете PowerShell в интерактивном режиме на консоли.

Get-ChildItem
Удобно, есть встроенный псевдоним ls для тех, кто пришел из bash, и dir для тех, кто пришел из cmd.exe.
Часто используемая комбинация параметров ls -ltr , она сортирует элементы, чтобы в конце получить самые последние измененные файлы. Эквивалентом PowerShell будет:

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

Get-ChildItem
Но на этот раз с параметрами Include (или Filter) и Recurse. Например, стандартный вариант использования find — рекурсивный поиск файлов, в имени которых есть строка без учета регистра:

PowerShell в целом нечувствителен к регистру, поэтому нам особо нечего делать в этом отношении:

Copy-Item
Допустим, вы хотите скопировать папку с именем Tools, включая все ее файлы и подкаталоги, в свой домашний каталог в bash, который вы запускаете:

В PowerShell на компьютере с Windows вы должны запустить:

$env: это модификатор области, он указывает PowerShell искать переменную с именем USERPROFILE в специальной области: среде. Это удобный способ использования переменных среды.

Кроме того, параметры Path и Destination являются позиционными. Путь находится в позиции 1, а пункт назначения — в позиции 2, поэтому следующая команда выполняет то же самое, что и предыдущая:

Чтобы сэкономить еще больше времени, мы могли бы использовать псевдонимы cp , copy или cpi .

Remove-Item
Вот эквивалент (не)известного rm -rf :

И если вы скажете мне, что я слишком много печатаю, я назову вам псевдонимы:
rm , ri , rmdir , rd и del .

мкдир:

При необходимости он создает родителя без каких-либо специальных параметров, поэтому он также работает как mkdir -p.

коснитесь :

New-Item
Для тех, кто любит «на ощупь» создавать кучу файлов, это может сделать командлет New-Item, указав «Файл» для параметра ItemType. Хороший пример использования:

Это создает 4 файла: Myfile1, Myfile2, Myfile3 и Myfile4.
Вот простой способ сделать это с помощью PowerShell:

Это заслуживает нескольких пояснений.
.. — оператор диапазона, поэтому 1..4 означает 1,2,3,4.
ForEach-Object — это командлет, используемый для итерации. Он выполняет блок сценария между <> один раз для каждого объекта, переданного ему через конвейер.

Если вам интересно, что такое $_ в приведенном выше примере, это представление обрабатываемого в данный момент объекта, который был передан из конвейера. Итак, в приведенном выше примере $_ сохраняет значение 1 , затем значение 2 , затем значение 3 и, наконец, значение 4 .

Get-Content
Обратите внимание, что даже когда мы запускаем этот командлет для текстового файла, он не выводит обычный текст, а выводит один объект типа [string] для каждой строки в файле.
мы можем использовать его псевдонимы: cat, gc или type.

Это выведет последние 7 строк файла MyFile1 :

У параметра Tail есть псевдоним : Last , это делает этот параметр более доступным для тех, кому Tail даже в голову не придет, потому что они не имеют опыта работы с Linux. Этот параметр появился в PowerShell 3.0.

Чрезвычайно полезное использование команды tail для устранения неполадок — это tail -f для отображения любых новых строк файла журнала по мере их записи в файл. Для этого есть параметр Wait, который появился и в PowerShell 3.0.

Меня чаще всего спрашивают об этом:

"Как выполнить команду grep в Powershell?"

И мой ответ:

"В большинстве случаев это не так".

Подумайте, чего вы пытаетесь достичь, используя grep : фильтрация строк текста, содержащих определенное значение, строку или шаблон.

В Powershell большую часть времени мы имеем дело с объектами, поэтому это переводится как: фильтрация объектов, которые имеют 1 или более значений в свойстве. Здесь не требуется синтаксический анализ текста, если только вы не имеете дело с объектами типа [string] .

Многие командлеты имеют встроенные параметры, позволяющие фильтровать объекты, но общим механизмом фильтрации является командлет Where-Object . Например, чтобы отфильтровать процессы, рабочий набор которых превышает 100 МБ, выполните следующее:

Обратите внимание, что в выходных данных свойство WorkingSet отображается в килобайтах, но это связано с представлением форматирования, фактическое значение которого находится в байтах.

Начиная с PowerShell версии 3.0, Where-Object поддерживает упрощенный синтаксис, поэтому следующая команда будет выполнять то же самое, что и предыдущая команда:

Кстати, если мы имеем дело со строками и действительно хотим отфильтровать объекты по определенной строке или шаблону, мы можем использовать Select-String.
Одним из вариантов использования является работа с обычным текстовым файлом журнала, например:

А если вы знаток регулярных выражений, вы можете передать их параметру Pattern.

имя:

Например, uname -a выводит ОС, имя хоста, версию ядра и архитектуру.
Хороший способ получить эквивалентную информацию на компьютере с Windows с помощью PowerShell — использовать класс Win32_OperatingSystem из CIM/WMI:

Да, я знаю, это намного дольше. К счастью, для командлетов, параметров и даже иногда для значений параметров есть автодополнение с помощью табуляции.
Format-Table -AutoSize просто делает ширину вывода удобной для блога.

New-Volume или Format-Volume, если том уже существует.

Конечно, мы могли бы запустить ping.exe из PowerShell, но если нам нужен объектно-ориентированный эквивалент ping, есть командлет Test-Connection :

Get-Help
Справочная система PowerShell чрезвычайно… полезна и заслуживает отдельной статьи.
Чтобы получить справочную информацию для определенного командлета, скажем, Stop-Service :

Параметр Full выводит все: описание, синтаксис, информацию о каждом параметре, примеры использования…
Мы также можем искать справочную информацию по концептуальным темам. Допустим, вы специалист по регулярным выражениям и хотите знать, как они работают:

Имя файлов справки по концептуальным темам начинается с «about_».

Это используется для выбора столбцов из текстового ввода (обычно файла).
Поскольку это обычный текст, нам нужно сопоставить поля с номерами столбцов, и в зависимости от формата ввода нам может потребоваться указать разделитель для определения столбцов.

В PowerShell этот мучительный анализ текста не требуется, потому что мы опять же имеем дело с объектами.
Если вы хотите сохранить только некоторые свойства некоторых входных объектов, просто используйте Select-Object и укажите имена свойств.
Вот и все.

Кавычки, окружающие имена свойств, не обязательны. Они указывают, что это [строковые] значения, но поскольку параметр Property командлета Select-Object предполагает наличие строк, PowerShell достаточно любезен, чтобы привести (преобразовать) эти значения в строки.

Есть много других команд, и я не могу описать их все, но если есть популярные команды, которые, по вашему мнению, должны быть там, сообщите мне, и я добавлю их в эту статью.


Привет! Название этого поста может показаться неуместным, но это не так. Фактически, уже некоторое время Microsoft приближается к позициям с GNU/Linux. Даже операционная система Microsoft включает подсистему Linux для работы внутри Windows. Но сегодня мы увидим несколько иной подход. То есть мы немного поговорим о самой линуксовой команде. И как применить альтернативу в Windows 10. В частности, мы увидим, как запустить команду Linux Tail в Windows 10.

Краткое определение команды Tail.

При работе с командами Linux используются команды, выводящие на печать определенные части файлов. По сути, есть команды head и tail, которые определяют начало и конец файла или команды. В конкретном случае команды tail она позволяет пользователю прочитать последние команды файла. Это также полезно для мониторинга новой обновленной информации в реальном времени в конкретном файле.Следовательно, упрощается проверка последних записей в системе. Кроме того, пользователи также могут просматривать несколько файлов с помощью команды tail.


Лучшая альтернатива Tail в Windows — это сама операционная система.

Как видите, эта команда очень полезна. Однако, будучи эксклюзивным для экосистемы GNU/Linux, логично, что пользователям Windows нужен эквивалент. На самом деле есть несколько альтернатив с установщиками и графическим окружением. Например, Винтейл. Однако в нем полно ошибок при работе с большими файлами. Кроме того, он часто показывает старые журналы файлов. По этой причине не рекомендую. Другие варианты, такие как GnuWin32tail или Cygwin, также дают ошибки. Но не волнуйтесь, потому что решение находится в доме. Просто запустите PowerShell и используйте следующий синтаксис:


Пожалуйста, помните пару вещей. Во-первых, замените myfile на имя файла, который нужно получить. Кроме того, вы должны запустить PowerShell из расположения файла или указать его в команде. И это все! Таким простым способом мы увидели, как запустить команду Linux Tail в Windows 10. Так что, если вы используете операционную систему Microsoft, у вас также есть эта альтернатива. Надеюсь, вам понравился пост, следите за нашими новостями. Приветствую!

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

Закрыт 9 лет назад.

Сообщество рассматривало возможность повторного открытия этого вопроса 5 месяцев назад и оставило его закрытым:

Первоначальные причины закрытия не были устранены

Я ищу эквивалент команды 'tail' в Unix, которая позволит мне просматривать вывод файла журнала во время его записи.

Я не думаю, что это должно было быть закрыто, так как мне нужно то же самое для отладки трассировки в моем приложении Windows. Речь идет о «программных инструментах, обычно используемых программистами», которые относятся к теме

Голосование за возобновление работы; вопрос по теме, но закрыт только потому, что нет единого мнения по ответу; Формат SO специально разработан для /нахождения/ этого консенсуса.

26 ответов 26

Если вы используете PowerShell, это работает:

Публикация комментария Стефана снизу, чтобы его не пропустили

В PowerShell 3 появился параметр -Tail, который включает только последние x строк

Об этом полезно знать; Благодарю. Но у меня была пара проблем с этим (на Windows 7). (1) он отображает весь файл (не подходит для массивного файла журнала, поэтому хвост может быть полезен) (2) он не такой динамичный, как хотелось бы (возможно, из-за изменений ОС/файловой системы между моей настройкой и другими плакаты?). То есть я определил, что оболочка, выполняющая Get-Content, иногда не обновляется, пока я не запущу dir в другой оболочке.

Я думаю, стоит упомянуть, что PowerShell приостановит прокрутку/вывод, если вы выберете что-то в окне терминала, чтобы дать вам возможность прочитать, скопировать/вставить и т. д. Если вы нажмете Enter, прокрутка возобновится.

Разве правильный ответ для Powershell не должен быть чем-то вроде Get-Content -Tail 100 -Wait .\logfile.log ?

Я бы посоветовал установить что-нибудь вроде GNU Utilities for Win32. У него больше всего фаворитов, включая хвост.

Я только что попытался использовать хвост GNU для файла размером 2 ГБ, и он захлебнулся. больше работало нормально (по крайней мере, просмотр начала файла).

@EricJ., спасибо, это действительно актуально. Но я только что понял, что мне проще использовать обходной путь: я просто напишу простой скрипт, который делает хвост :)

Я всегда использовал Baretail для отслеживания в Windows. Это бесплатно и довольно приятно.

Это первое решение, которое сработало для меня на [gulp] Windows Server 2003 R2 SP1! Очень просто с установщиком, работает для tailing wasily прямо из коробки :)

Я нахожу удивительным, что они продолжают поддерживать сайт и обновлять SSL-сертификат до настоящего времени, в то время как программное обеспечение не обновляется с 2006 года. Однако оно работает нормально. Именно то, что мне было нужно. Защитник Windows не находит угрозы.

Вы можете получить хвост как часть Cygwin.

Все, кто интересуется DOS хвостом CMD с использованием пакетных команд (см. ниже).

Это не идеально, и строки иногда повторяются.

Использование: tail.bat -d tail.bat -f -f

Это умно, и я всегда стараюсь использовать существующие функции, когда загрузка инструмента невозможна! Однако этот код будет потреблять ресурсы ЦП, так как он будет постоянно вращаться вслед за -f.

была такая же проблема с загрузкой и поеданием процессора! добавил эту строку ping 127.0.0.1 -n 2 > nul перед переходом к циклу. он отправляет два пинга и ждет 1 в секунду между ними. так что пусть процессор живёт!:D

Существует довольно много вариантов, однако все они имеют недостатки с более продвинутыми функциями.

Tail GnuWin32 глючит (α β γ) — такие вещи, как -f просто не работают.

Хвост UnxUtils кажется лучше (-f работает, но --pid, кажется, нет, -n, но не --lines=n не работает с -f), но похоже, что это мертвый проект.

Cygwin - это большая уродливая каша, возможно, можно было бы просто использовать DLL и пакет coreutils, но все еще есть проблемы, такие как --pid, не работающий с собственными процессами win32.

Я использовал Tail для Windows. Конечно, не так элегантно, как использование, но тогда вы используете Windows. ;)

Я второй Tail для Windows. Мне это нравится, потому что я могу открывать и отслеживать несколько файлов в одном окне.

способ powershell gc -tail не работает, если вы используете Posh 1 или Posh 2.x. Функциональность gc -tail была добавлена ​​в Posh 3.0.

С помощью Windows PowerShell вы можете использовать:

Если вы вообще не хотите ничего устанавливать, вы можете «создать свой собственный» пакетный файл, который выполняет работу из стандартных команд Windows. Вот несколько советов, как это сделать.

1) Используя find /c /v "" yourinput.file, получите количество строк во входном файле. Вывод примерно такой:

2) Используя for /f, проанализируйте этот вывод, чтобы получить число 15.

3) Используя set /a, подсчитайте количество строк заголовков, которые необходимо пропустить

4) Использование для /f "skip=n" пропускает заголовки и повторяет/обрабатывает хвостовые строки.

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

Diff

Эта версия (10 января 2022 г., 14:30) была одобрена Стефаном-Робертом Раусом. Доступна ранее утвержденная версия (16 ноября 2021 г., 13:20).

Содержание

Здесь мы даем вам краткий обзор того, как мы строим вещи. То есть приведенные ниже шаги являются НЕ рекомендацией, а предложением. Мы используем исключительно командную строку и в основном системы Linux. В Windows мы используем Cygwin. Пожалуйста, не спрашивайте никаких инструкций по установке и/или настройке.

Настройте и проверьте свою среду

В этом разделе содержится руководство по настройке среды для сборки любого HDL-проекта из репозитория.

Во-первых, необходимо установить необходимый пакет FPGA Design Suite. Вы можете найти информацию о правильной версии в примечаниях к выпуску. Убедитесь, что вы всегда используете последнюю версию.

Если вы используете невыпущенную ветку, самый простой способ узнать требуемую версию – посмотреть в сценариях adi_project_xilinx.tcl и adi_project_intel.tcl.

Мы используем git для контроля версий и GNU Make для сборки проектов.

Поскольку GNU Make не поддерживается в Windows, вам необходимо установить Cygwin, который является UNIX-подобной средой и интерфейсом командной строки для Microsoft Windows. Вам не нужно устанавливать какой-либо специальный пакет, кроме git и make.

После того, как вы установили Cygwin, вам нужно добавить каталог установки FPGA Design Tools в переменную среды PATH. Вы можете сделать это, изменив файл ~/.bashrc. Например:

Убедитесь, что ваш диск (в данном примере «E») подключен к вашей системе. Для этого выберите любой файл или каталог. Например

Вы также можете определить следующие псевдонимы, чтобы создавать программное обеспечение без ОС с помощью make:

Вы можете проверить настройки среды, выполнив следующие команды:

Если вы правильно настроили, эти команды вернут правильный путь.

Поскольку, как правило, и git, и make являются родными инструментами Linux, вам не нужно выполнять какую-либо специальную настройку. Если у вас нет ни одного из этих двух инструментов, используйте свой любимый менеджер пакетов и установите его.

Кроме того, вам необходимо добавить каталог установки FPGA Design Tools в переменную среды PATH. Для инструментов Xilinx вы можете запустить скрипт settings64.sh, который находится в вашем установочном каталоге. Или вы можете добавить необходимые пути в файл ~/.bashrc. Например:

Вы можете проверить настройки среды, выполнив следующие команды:

Если вы правильно настроили, эти команды вернут правильный путь.

Клонировать репозиторий HDL

Если вы выполнили описанные выше шаги, вам нужно клонировать репозиторий. Это лучший способ получить исходники. Здесь я клонирую репозиторий внутри каталога с именем adi. Дополнительные сведения см. в разделе «Репозиторий Git».

Выберите нужную ветку

Приведенная выше команда клонирует ветку «по умолчанию», которая является «ведущей» для HDL (альтернативой является использование «git clone -b
»). Ветка master всегда указывает на ветку последней стабильной версии. Если вы хотите переключиться на любую другую ветку, вам нужно проверить эту ветку.


Убедитесь, что все обновлено

Если это ваше первое клонирование, у вас есть все последние исходные файлы.Если это было давно, вы можете просто получить последние исходные коды, используя git pull или git rebase, если у вас есть локальные изменения.


Приятно знать, что ветка обновлена.

Сборка проекта Intel относительно проста. Нет необходимости создавать какие-либо библиотечные компоненты. Тем не менее, процесс такой же, запустите «make», чтобы создать интересующий вас проект. В этом примере меня интересует только проект ADRV9371X на носителе A10SOC.


Это предполагает, что у вас правильно настроены инструменты и лицензии. Если вы не дойдете до последней строки, make не удалось собрать проект. Вы ничего не можете получить из вывода 'make' (кроме неудачной сборки или нет), фактический сбой находится в файле журнала. Итак, давайте посмотрим, как анализировать файлы журнала сборки и результаты.

Если вы внимательно посмотрите на «правило» для этой цели, вы увидите, что оно просто вызывает «quartus_sh» с файлом TCL проекта и перенаправляет вывод в файл журнала. В этом случае «adrv9371_a10soc_quartus.log» находится внутри каталога «projects/adrv9371x/a10soc».

Быстрая (или подробная) проверка файлов. Если вам нужна наша поддержка, это самая актуальная информация, которую вы можете предоставить (НЕ копируйте и вставляйте текст командной строки make).



И, наконец, если сборка проекта выполнена успешно, файлы sopcinfo и sof должны находиться в одной папке.


Теперь вы можете использовать этот файл 'sopcinfo' в качестве входных данных для вашей сборки без ОС и/или Linux. Файл 'sof' используется для программирования устройства.

Xilinx: создайте желаемый проект

Проект Xilinx строится так же, как проект Intel. Единственным исключением является то, что для библиотечных компонентов существует несколько «подделок». В этом примере я создаю проект «DAQ2» на несущей плате «ZC706».



Сначала make собирает все библиотеки, а затем проект. Это предполагает, что у вас правильно настроены инструменты и лицензии. Если вы не дошли до последней строки, make не удалось собрать одну или несколько целей: это может быть компонент библиотеки или сам проект. Вы ничего не можете узнать из вывода make (кроме того, какой из них не удался). Фактическая ошибка содержится в файле журнала, поэтому давайте посмотрим, как анализировать файлы журнала сборки и результаты.

Включение синтеза вне контекста

Это позволит отдельно синтезировать каждый IP-адрес из схемы блока и сохранить его в общем кеше для повторного использования в будущем. Кэш находится в папке ipcache и является общим для всех проектов, что позволяет ускорить повторную компиляцию одного и того же проекта или время компиляции общих блоков, используемых в базовых проектах. Пример: базовый проект MicroBlaze для VCU118 после компиляции будет повторно использоваться в других проектах. Использование кеша IP ускорит повторную компиляцию каждого проекта в режиме OOC, поскольку кеш не очищается, как при обычном потоке компиляции.

Начиная с Vivado 2020.2 режим «Вне контекста» используется по умолчанию. Нет необходимости устанавливать переменную ADI _USE_OOC_SYNTHESIS.

только если вы хотите использовать режим проекта.

Xilinx: проверка сборки и анализ результатов компонентов библиотеки

Если вы присмотритесь, то увидите, что он на самом деле делает. Он входит в папку компонентов библиотеки, а затем вызывает Vivado в пакетном режиме. Команды IP находятся в исходном файле «Tcl», а вывод перенаправляется в файл журнала. В приведенном ниже примере это «axi_ad9144_ip.log» внутри каталога «library/axi_ad9144».

Если вы видите, что 'make' возвращает ошибку (и останавливается), вы должны сначала проверить содержимое этого файла журнала, прежде чем сходить с ума по нам. Вы также можете выполнить проверку работоспособности, чтобы увидеть, что представляют собой сгенерированные файлы и содержимое файла журнала.



Xilinx: проверка сборки и анализ результатов проектов

Последнее, что make делает в приведенном выше примере, — это сборка проекта. Это точно такое же «правило», что и для библиотечного компонента. Файл журнала в этом примере называется «daq2_zc706_vivado.log" и находится в каталоге "projects/daq2/zc706".

Быстрая (или подробная) проверка файлов.



И, наконец, если сборка проекта прошла успешно, файл hdf должен находиться в папке 'sdk'.


Инструменты

< /th> td> td>
Примечания Intel Xilinx
Основные инструменты Quartus Vivado
Инструменты EDK QSys IP Integrator
Инструменты SDK Eclipse-Nios, Eclipse-DS5 Eclipse
Сборка библиотеки Ничего не делать. Quartus нужен только _hw.tcl, а QSys анализирует их при каждом вызове. Необходимо собрать каждый компонент библиотеки. У Vivado есть собственный способ идентификации компонентов библиотеки. Это означает, что вы должны собрать ВСЕ компоненты библиотеки, прежде чем начинать проект. Вы должны повторно запустить эти сценарии, если есть какие-либо изменения.
Сборка проекта Исходный файл system_project.tcl.< /td>
Анализ времени Проекты обычно тестируются и не должны содержать ошибок времени. Не существует простого метода проверки временного прохода (обычно он включает в себя написание процедуры TCL) для обоих инструментов. Сборка make завершится с ошибкой, если время не будет соблюдено (в обоих инструментах).
SDK (Microblaze/Nios) Использовать Файлы SOPCINFO и SOF. Использовать файл XSA.
SDK (комбинация ARM/FPGA) Не очень продуманная процедура . Необходимо запускать различные инструменты, вручную редактировать файлы сборки и т. д. Задействованные шаги включают запуск bsp-editor, запуск make, изменение скриптов компоновщика, make-файлов и исходных кодов, импорт в SDK. Та же процедура, что и в Microblaze.
Обновление/изменение версии (ядра, отличные от ADI) Quartus автоматически обновляет ядра. Почти без проблем для большинства ядер. Vivado не обновляет версии автоматически в потоке TCL (это происходит в графическом интерфейсе). Он остановится при первом несоответствии версии (довольно медленный и разочаровывающий процесс).

Версии инструмента

Есть несколько способов узнать, какую версию инструмента следует использовать. Самый простой способ — проверить примечания к выпуску. Вы также можете проверить или просмотреть нужную ветку и проверить версию инструмента в базовом сценарии Tcl (./hdl/projects/scripts/adi_project_xilinx.tcl) или (./hdl/projects/scripts/adi_project_intel.tcl), который создавать проекты.

Как сказано выше, мы рекомендуем использовать make и версии инструментов для командной строки. Этот метод значительно упрощает наш общий процесс сборки и выпуска, поскольку он автоматически создает необходимые библиотеки и зависимости.

Настройка среды Linux

Все основные дистрибутивы должны иметь установленный make по умолчанию. Если нет, если вы попробуете команду, она должна сказать вам, как установить их с именем пакета. Возможно, вам придется установить «git» (sudo apt-get install git) и инструменты Intel и Xilinx. Эти инструменты поставляются с определенными сценариями «settings*.sh», которые вы можете найти в своем файле «.bashrc» для настройки среды. Вы также можете сделать это вручную (к лучшему или к худшему), следующий фрагмент из файла .bashrc. Обратите внимание: если вы не являетесь экспертом в управлении этими вещами, предоставьте инструменты для настройки среды.

Настройка среды Windows

Наилучшим вариантом для Windows является использование Cygwin. При установке выберите пакеты make и git. Изменения, внесенные вручную в ваш '.bashrc', очень похожи на изменения в среде Linux.

Make – это инструмент автоматизации сборки, который использует файлы Makefile для определения набора директив ("правил") о том, как компилировать и/или компоновать программу ("цели").

Вообще всегда запускайте make в папке проекта, например hdl/projects/fmcomms2/a10gx или hdl/projects/fmcomms2/zc706. Вам не нужно запускать make внутри библиотеки или корневых папок. Фреймворк «make» передает «цели» верхнего уровня любым под-мейкам внутри своих подпапок. Это означает, что если вы запустите «make» внутри «hdl/projects/fmcomms2», он соберет все носители («ac701», «a10gx» и «zcu102»), что является излишним.

Поддерживаются следующие «цели».

Это даст вам доступ к:

Сборка библиотек (adi_make::lib)

Эта команда позволяет создавать нужные библиотеки непосредственно из папки целевого проекта. Он принимает в качестве аргументов «все» или вы можете указать конкретное имя библиотеки.

Создание самого проекта

После сборки всех необходимых библиотек запустите source ./system_project.tcl в консоли Tcl Vivado, чтобы собрать проект.

Подготовка SD-карты

Во-первых, вы должны проверить это руководство о том, как поместить образ Linux на SD-карту. Когда вы закончите с этим, вы можете перейти к следующим шагам.

В недавно созданном разделе BOOT вы найдете папки для каждого поддерживаемого нами носителя, и каждая из этих папок содержит архив с именем bootgen_sysfiles.tgz. В них есть все файлы, необходимые для создания BOOT.BIN.

Скопируйте соответствующий архив (с проверкой на название вашего носителя и компонентов) в корневую папку вашего проекта, разархивируйте его дважды, и там вы найдете файлы, которые нужны для генерации BOOT.BIN. Скопируйте их в корневой каталог.

Далее, что нужно вашему проекту, это файл uImage (для операторов на базе zynq), Image (для сверхмасштабируемых zynq — носители ZCU102 и adrv9009-zu11eg) или zImage (для операторов на базе Intel), который вы найдете в zynq- common/zynqmp-common/socfpga_arria10_common/socfpga_cyclone5_common на загрузочном разделе. Скопируйте этот файл также в корневой каталог вашего проекта.

Дополнительную информацию о том, как создать эти файлы, вы найдете в разделе «Ссылки» или в файле ReadMe.txt из загрузочного раздела.

Создайте BOOT.BIN (adi_make::boot_bin)

Не для пользователей Linux. Чтобы собрать BOOT.BIN в Linux, см. раздел «Ссылки».

Как следует из названия, эта процедура создаст «BOOT.BIN». Он не требует никаких аргументов.

Мы не рекомендуем использовать этот поток, как правило, люди теряют много драгоценного времени и нервов во время этого процесса.

Нет необходимости создавать какую-либо библиотеку для Quartus. Однако вам необходимо указать путь поиска IP для QSYS. Это глобальное свойство, поэтому нужно сделать это только один раз. Если у вас есть несколько путей, просто добавьте к ним. Вы попадаете в это меню из Tools→Options. Затем инструмент анализирует эти каталоги и выбирает файл _hw.tcl (например, axi_ad9250_hw.tcl). Периферийные устройства должны появиться в библиотеке QSYS.


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



Xilinx: Сборка вручную на Vivado

В Vivado (проекты Xilinx) вы должны собрать все необходимые библиотеки для вашего целевого проекта. Откройте графический интерфейс и в консоли TCL измените каталог на тот, в котором находятся библиотеки, а затем создайте файл '_ip.tcl'.



После того как вы создали все необходимые библиотеки для своего проекта, вы можете запустить проект (сгенерировать битовый поток и экспортировать дизайн в SDK). Это та же процедура, что и выше, за исключением изменения пути и имен файлов Tcl:



Предполагая право на честный комментарий, инструменты (как Quartus, так и Vivado) не так уж полезны или удобны, когда дело доходит до сообщений. В большинстве случаев вы можете увидеть «взломанные» отладочные сообщения типа «printf» (известно, что Xilinx занимает высокое место в этом отношении). Таким образом, вы увидите много «предупреждений» и несколько «критических предупреждений» (важных для того, на что может быть трудно ответить). Вот некоторые из часто задаваемых вопросов EngineerZone и их пояснения.

Xilinx: Вивадо

Вы не создали компонент библиотеки или указали неправильные настройки репозитория IP-адресов пользователей. Если вы использовали поток с графическим интерфейсом, самое время оценить процесс make.

ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: [IP_Flow 19-459] IP-файл «C:/Git/hdl/library/common/ad_pnmon.v» находится за пределами области проекта «C:/Git/hdl/library/axi_ad9467». . Вы можете использовать параметр ipx::package_project -import_files для копирования удаленных файлов в каталог IP.

Эти предупреждения появляются, потому что библиотеки используют общие модули, расположенные в папке ./library/common/. Эти предупреждения можно игнорировать, они не повлияют на функциональность ИС или проекта. Однако вы не сможете «архивировать» эти проекты. Ирония в том, что он копирует эти файлы в область проекта, но игнорирует их.

Инструменты страницы

Analog Devices использует файлы cookie для повышения эффективности работы в Интернете

Читайте также: