1.8 KiB
Build instructions for Embedded (ARM port)
First clone, initialize submodules and install Pipenv as defined here.
Requirements
You will need the GCC ARM toolchain for building and OpenOCD for flashing to a device. You will also need Python dependencies for signing.
Debian/Ubuntu
sudo apt-get install scons gcc-arm-none-eabi libnewlib-arm-none-eabi
OS X
- Download gcc-arm-none-eabi
- Follow the install instructions
- To install OpenOCD, run
brew install open-ocd
- Run
pipenv run make vendor build_boardloader build_bootloader build_firmware
Building
pipenv run make vendor build_boardloader build_bootloader build_firmware
Uploading
Use make upload
to upload the firmware to a production device. Do not forget to enter bootloader on the device beforehand.
Flashing
For flashing firmware to blank device (without bootloader) use make flash
,
or make flash STLINK_VER=v2-1
if using a ST-LINK/V2.1 interface.
You need to have OpenOCD installed.
Building in debug mode
You can also build firmware in debug mode to see log output or run tests.
PYOPT=0 pipenv run make build_firmware
You can then use screen
to enter the device's console. Do not forget to add your user to the dialout
group or use sudo
. Note that both the group and the tty name can differ, use ls -l
to find out proper names on your machine.
screen /dev/ttyACM0
Debug console via serial port is enabled only for the Bitcoin-only firmware.
If you need the console to debug non-Bitcoin features, please edit src/usb.py
,
disable WebAuthn USB interface and enable the VCP USB interface.