Содержание статьи

pasm – это ассемблер для процессоров AM335x, используемых в BeagleBone Black. Он позволяет компилировать низкоуровневый код непосредственно для ядра ARM Cortex-A8, обеспечивая максимальную производительность при работе с периферией и GPIO. Установка требует наличия Linux-системы на плате, минимально Debian 10 или Ubuntu 20.04.
Перед началом важно убедиться, что на BeagleBone Black установлен пакет build-essential и Python 3. Для этого выполните команду sudo apt-get install build-essential python3. Отсутствие этих компонентов приведет к ошибкам при компиляции pasm.
Следующий шаг – загрузка исходных файлов pasm с официального репозитория. Для стабильной работы рекомендуется использовать последнюю версию, помеченную как stable. Архив распаковывается в любую директорию с правами на запись пользователя, под которым будут выполняться сборка и компиляция.
Для корректной интеграции pasm с системной средой нужно добавить путь к исполняемому файлу в переменную PATH. Это обеспечит возможность вызова pasm из любого каталога без указания полного пути. После этого можно протестировать установку командой pasm -v, которая должна вернуть номер версии без ошибок.
Подготовка BeagleBone Black к установке pasm

Подключите BeagleBone Black к компьютеру через micro-USB для питания и передачи данных. Убедитесь, что на плате установлена последняя версия Debian для BeagleBone Black. Проверить текущую версию можно командой cat /etc/dogtag.
Обновите системные пакеты с помощью sudo apt update && sudo apt upgrade -y, чтобы исключить конфликты с зависимостями pasm. Установите базовые инструменты разработки: sudo apt install build-essential git libncurses5-dev -y.
Создайте рабочую директорию для установки pasm, например: mkdir ~/pasm_install && cd ~/pasm_install. Проверьте доступное место на диске командой df -h, так как сборка требует минимум 200 МБ свободного пространства.
Убедитесь, что активен интернет и корректно настроен DNS. Тест можно провести командой ping -c 4 debian.org. При использовании Wi-Fi подключение устанавливается через sudo nmcli dev wifi connect "SSID" password "PASSWORD".
Проверьте наличие Python 3 и Perl, так как некоторые скрипты сборки pasm используют их. Команды проверки: python3 --version и perl -v. При необходимости установите: sudo apt install python3 perl -y.
Настройте права пользователя для сборки: добавьте себя в группу dialout для доступа к UART и GPIO командой sudo usermod -aG dialout $USER. Перезагрузите систему для применения изменений.
Скачивание и проверка последней версии pasm

Перейдите на официальный репозиторий pasm на GitHub: https://github.com/beagleboard/pasm. На странице репозитория выберите вкладку «Releases» и скачайте архив последней версии, например `pasm-x.y.z.tar.gz`, где `x.y.z` соответствует текущему релизу.
После загрузки файла откройте терминал на BeagleBone Black и перейдите в каталог с архивом. Используйте команду sha256sum pasm-x.y.z.tar.gz для генерации контрольной суммы. Сравните результат с указанным в разделе «Assets» на странице релиза, чтобы убедиться в целостности файла.
Для распаковки архива выполните tar -xzf pasm-x.y.z.tar.gz. Проверьте содержимое каталога командой ls pasm-x.y.z, убедившись, что присутствуют файлы Makefile и pasm. Эти шаги гарантируют корректное скачивание и подготовку к установке.
Установка зависимостей для компиляции pasm

Обновите список пакетов командой:
sudo apt update
Установите инструменты сборки и компиляторы:
sudo apt install build-essential git cmake
Убедитесь в наличии Python версии 3.6 и выше:
sudo apt install python3 python3-pip
sudo apt install libncurses5-dev libncursesw5-dev libreadline-dev
Для сборки с оптимизацией под ARM установите кросс-компиляторы:
sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
Проверьте установленные пакеты командой dpkg -l | grep <имя_пакета> для подтверждения готовности системы к сборке.
Компиляция pasm на BeagleBone Black

Скачайте исходный код pasm с официального репозитория: git clone https://github.com/peterhinch/pasm.git. Перейдите в каталог проекта: cd pasm.
Установите необходимые инструменты сборки: sudo apt update и sudo apt install build-essential git. На BeagleBone Black рекомендуются версии GCC не ниже 10.3 для корректной компиляции.
Перед компиляцией убедитесь, что установлен пакет libc6-dev, так как pasm использует системные заголовочные файлы: sudo apt install libc6-dev.
Запустите сборку через make: make. При успешной компиляции появится исполняемый файл pasm в текущем каталоге. Для проверки работоспособности выполните: ./pasm --version.
Для установки в системный путь используйте: sudo cp pasm /usr/local/bin/. После этого команду pasm можно запускать из любого каталога.
Если возникает ошибка типа “cannot find -lc”, убедитесь, что переменные окружения PATH и LD_LIBRARY_PATH корректно указывают на стандартные системные каталоги: /usr/lib и /usr/local/lib.
Рекомендуется собрать pasm на BeagleBone Black с флагом оптимизации -O2 для ускорения работы на ARM-процессоре: make CFLAGS="-O2". Это особенно заметно при компиляции крупных скетчей для PRU.
После успешной сборки проверьте корректность работы на тестовом файле: pasm test.asm -o test.bin. Ошибки компиляции будут выведены с указанием строки исходного кода.
Настройка переменных среды для запуска pasm

После установки pasm на BeagleBone Black необходимо корректно настроить переменные среды, чтобы сборка и запуск ассемблерных программ выполнялись без ошибок.
-
Добавление каталога с pasm в PATH:
- Откройте файл
~/.bashrcили~/.profileчерез текстовый редактор, например:nano ~/.bashrc. - Добавьте строку с указанием пути к исполняемому файлу pasm. Например, если pasm установлен в
/home/debian/pasm, добавьте: export PATH=$PATH:/home/debian/pasm- Сохраните изменения и примените их командой:
source ~/.bashrc.
- Откройте файл
-
Настройка PASM_HOME для удобства ссылок на библиотеки:
- Добавьте в тот же файл строку:
export PASM_HOME=/home/debian/pasm- Эта переменная позволит использовать относительные пути в сборке проектов без указания полного пути к pasm.
-
Проверка доступности pasm:
- Выполните команду
which pasm. Если путь совпадает с установленным, переменные среды настроены корректно. - Для проверки версии используйте
pasm --version, чтобы убедиться, что исполняемый файл вызывается из нужного каталога.
- Выполните команду
-
Дополнительные настройки для сборки проектов:
- Если используете библиотеки для pasm, убедитесь, что
PASM_LIBуказывает на каталог с ними. Например: export PASM_LIB=/home/debian/pasm/libs- Это позволяет pasm автоматически подключать нужные файлы при компиляции.
- Если используете библиотеки для pasm, убедитесь, что
После завершения всех шагов переменные среды будут корректно настроены, что обеспечит стабильную работу pasm на BeagleBone Black и ускорит процесс сборки программ.
Проверка корректной работы pasm после установки
После завершения установки pasm на BeagleBone Black необходимо убедиться, что компилятор функционирует правильно. Первым шагом выполните команду проверки версии:
pasm --version
Она должна вернуть актуальную версию, например: pasm 2.14.0. Отсутствие сообщения об ошибке подтверждает корректность установки бинарника и наличие всех зависимостей.
Далее создайте тестовый файл для ассемблерного кода, например blink.pasm:
| Файл | Содержание |
|---|---|
| blink.pasm |
#include <beaglebone.h> main: set P9_14, 1 delay 500 set P9_14, 0 delay 500 goto main |
Скомпилируйте файл командой:
pasm blink.pasm -o blink.bin
При успешной компиляции утилита создаст бинарный файл blink.bin без ошибок. Для проверки корректности можно вывести первые 16 байт файла:
hexdump -C blink.bin | head -n 1
Результат должен содержать последовательность байтов, соответствующую коду программы. Любые сообщения об ошибках укажут на синтаксические проблемы или ошибки конфигурации.
Решение распространённых ошибок при установке pasm

При установке pasm на BeagleBone Black часто возникают ошибки, связанные с зависимостями, правами доступа и конфигурацией системы. Ниже приведены конкретные решения.
-
Ошибка компиляции: «gcc: command not found»
Убедитесь, что установлен пакет build-essential. Выполните:
sudo apt update sudo apt install build-essential
После установки перезапустите установку pasm.
-
Ошибка доступа: «Permission denied» при запуске make
Проверьте права на директорию с исходниками. Если вы используете обычного пользователя, выполните:
sudo chown -R $(whoami) /путь/к/pasm
Затем повторите сборку.
-
Ошибка загрузки зависимостей: «libc6-dev not found»
Установите необходимые библиотеки:
sudo apt install libc6-dev libncurses5-dev libncursesw5-dev
После этого make обычно проходит без ошибок.
-
Конфликт версий Python при скриптах установки
Если pasm использует Python-скрипты, убедитесь, что версия Python соответствует требованиям. Например:
python3 --version
Если необходимо, создайте виртуальное окружение:
python3 -m venv pasm_env source pasm_env/bin/activate
-
Ошибка «No such file or directory» при запуске pasm
Проверьте путь установки и наличие исполняемого файла. Часто помогает:
sudo cp pasm /usr/local/bin/
После этого pasm становится доступен из любого каталога.
-
Сбой при сборке из исходников на новой версии Debian/Ubuntu
Проверьте поддержку используемой версии GCC. Для старых исходников pasm может потребоваться установка gcc-9:
sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
Следуя этим инструкциям, большинство стандартных ошибок при установке pasm на BeagleBone Black можно устранить без изменения исходного кода.
Вопрос-ответ:
Что такое pasm и для чего он нужен на BeagleBone Black?
pasm — это ассемблерный язык программирования для контроллера PRU (Programmable Real-time Unit) на BeagleBone Black. Он позволяет писать программы, которые работают с высокой точностью и минимальной задержкой, управляя периферийными устройствами напрямую. Использование pasm актуально для задач, где требуется обработка сигналов в реальном времени, например, управление шаговыми моторами, считывание датчиков или генерация импульсных сигналов.
Какие подготовительные шаги нужно выполнить перед установкой pasm?
Перед установкой pasm нужно убедиться, что на BeagleBone Black установлена рабочая версия операционной системы Debian и есть доступ к интернету. Рекомендуется обновить списки пакетов командой sudo apt update и обновить сами пакеты через sudo apt upgrade. Также необходимо установить инструменты для сборки программ, такие как git, build-essential и cmake, чтобы собрать pasm из исходников.
Как правильно скачать и собрать pasm на BeagleBone Black?
Сначала нужно склонировать репозиторий pasm с GitHub с помощью команды git clone https://github.com/beagleboard/pasm.git. После этого переходят в папку проекта и выполняют сборку: cd pasm и make. Если сборка проходит без ошибок, исполняемый файл pasm будет готов к использованию. При необходимости можно переместить его в директорию /usr/local/bin, чтобы запускать из любой точки системы.
Какие типичные ошибки могут возникнуть при установке pasm и как их исправить?
Чаще всего возникают ошибки, связанные с отсутствием библиотек или инструментов сборки. Например, если не установлен gcc или make, сборка завершится с ошибкой. Также возможны проблемы с правами доступа при попытке записать файлы в системные директории. Решается это установкой недостающих пакетов через sudo apt install build-essential и запуском команд с правами администратора. Иногда помогает очистка кэша сборки командой make clean и повторная сборка.
Как проверить, что pasm установлен и работает корректно?
После сборки и установки можно выполнить команду pasm --version, которая должна вывести текущую версию программы. Для тестирования работы можно скомпилировать простой пример программы для PRU, используя pasm, и запустить её на BeagleBone Black. Если программа выполняется без ошибок и ожидаемые сигналы или действия выполняются, значит установка прошла успешно.
Можно ли установить pasm на BeagleBone Black без подключения к интернету?
Да, установка возможна без интернет-соединения, но потребуется заранее скачать все необходимые пакеты и зависимости на другом компьютере. После этого их можно перенести на BeagleBone Black с помощью флешки или SD-карты. Далее нужно будет выполнить команды по установке локальных пакетов через менеджер пакетов, например, dpkg. Такой способ удобен для устройств, работающих в изолированной сети.
Какие ошибки чаще всего встречаются при установке pasm на BeagleBone Black и как их исправить?
Наиболее распространённые ошибки связаны с несовместимыми версиями пакетов, отсутствием прав администратора или недостатком свободного места на SD-карте. Чтобы исправить проблему с версиями, нужно убедиться, что загружены именно те пакеты, которые поддерживаются текущей версией операционной системы BeagleBone Black. Ошибки с правами решаются запуском команд через sudo. Недостаток памяти устраняется очисткой ненужных файлов или использованием карты большего объёма. Иногда помогает перезагрузка после установки каждого пакета.
