Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Linux

Ниже приведены команды установки для нескольких дистрибутивов Linux.

Ubuntu 20.04 или новее / Debian 10 или новее

ПРИМЕЧАНИЕ gdb-multiarch — это команда GDB, которой вы будете отлаживать программы для Arm Cortex-M.

$ sudo apt install gdb-multiarch minicom libunwind-dev

Fedora 32 или новее

ПРИМЕЧАНИЕ gdb — это команда GDB, которой вы будете отлаживать программы для Arm Cortex-M.

$ sudo dnf install gdb minicom libunwind-devel

Arch Linux

ПРИМЕЧАНИЕ gdb — это команда GDB, которой вы будете отлаживать программы для Arm Cortex-M.

$ sudo pacman -S arm-none-eabi-gdb minicom libunwind

Другие дистрибутивы

ПРИМЕЧАНИЕ arm-none-eabi-gdb — это команда GDB, которой вы будете отлаживать программы для Arm Cortex-M.

Если для вашего дистрибутива нет пакетов готового тулчейна Arm, скачайте файл «Linux 64-bit» и добавьте его каталог bin в PATH. Вот один из способов:

$ mkdir -p ~/local
$ cd ~/local
$ tar xjf /path/to/downloaded/XXX.tar.bz2

Затем с помощью любимого редактора добавьте строку в PATH в подходящий файл инициализации оболочки (например, ~/.zshrc или ~/.bashrc):

PATH=$PATH:$HOME/local/XXX/bin

Правила udev

Эти правила позволяют работать с USB-устройствами, например с micro:bit, без привилегий root, то есть без sudo.

Создайте этот файл в /etc/udev/rules.d с содержимым, показанным ниже.

$ cat /etc/udev/rules.d/69-microbit.rules
# CMSIS-DAP для micro:bit
ACTION!="add|change", GOTO="microbit_rules_end"
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", TAG+="uaccess"
LABEL="microbit_rules_end"

Затем перезагрузите правила udev командой:

$ sudo udevadm control --reload

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

$ sudo udevadm trigger

Проверка прав доступа

Подключите micro:bit к компьютеру с помощью USB-кабеля.

Теперь micro:bit должен появиться как USB-устройство (файл) в /dev/bus/usb. Узнаем, под каким номером его зарегистрировала система:

$ lsusb | grep -i "NXP Arm mbed"
Bus 001 Device 065: ID 0d28:0204 NXP Arm mbed
$ # ^^^        ^^^

В моём случае micro:bit подключился к шине №1 и был зарегистрирован как устройство №65. Это значит, что файл /dev/bus/usb/001/065 и есть micro:bit. Проверим права доступа к файлу:

$ ls -l /dev/bus/usb/001/065
crw-rw-r--+ 1 nobody nobody 189, 64 Sep  5 14:27 /dev/bus/usb/001/065

Права должны быть crw-rw-r--+, обратите внимание на + в конце. Затем посмотрите свои права доступа, выполнив следующую команду:

$ getfacl /dev/bus/usb/001/065
getfacl: Removing leadin '/' from absolute path names
# file: dev/bus/usb/001/065
# owner: nobody
# group: nobody
user::rw-
user:<YOUR-USER-NAME>:rw-
group::rw-
mask::rw-
other::r-

В списке выше должно быть ваше имя пользователя с правами rw-. Если его нет, проверьте свои правила udev и попробуйте перезагрузить их:

$ sudo udevadm control --reload
$ sudo udevadm trigger

Теперь перейдите к следующему разделу.