This is an old revision of the document!


to compile a tiny bootloader

TLDR

git clone git@github.com:idiot-io/TinyAudioBoot.git
cd TinyAudioBoot
sh setup.sh
cd TinyAudioBoot
#build the hex
make
#flash the hex
make upload

was asked to compile the TinyAudioBoot bootloader.

i couldn't get budi's TinyAudioBoot/bootloaderbuild to work, must be a typo of mine.
so decided to make an automated build system that will pull (most) needed dependencies and compile.

here is the working repo, ill submit when its done.

the current dependencies are

  • arduino software - this you'll have to install yourself. and supply the path to the Makefile. there are instructions below.
  • Arduino-Makefile - an external build system for arduino (see also arduino-cli)

os support

for the following i used ubuntu on windows.
so get into ubuntu, TLDR: use vscode and click the bottom left green button.
this will work also on linux native
budi's bootloaderbuild was tested on mac, so try that.

install arduino

TLDR, or see setup script in git folder.
to install it inside the project folder.

wget https://downloads.arduino.cc/arduino-1.8.13-linux64.tar.xz
tar -xf arduino-1.8.13-linux64.tar.xz
#just renaming the thing
mv arduino-1.8.13-linux64 arduino/
#and moving to our local user bin folder. 
mv arduino-1.8.13-linux64 ~/.local/bin/

if all went well you will have an arduino installed in linux under path ~/local.bin/arduino
if you're on linux desktop you can run

./install.sh

from the arduino directory to get the icons on desktop, we are not interested.

get the project

we will clone the git for tinyaudio and get the two other submodules.

git clone git@github.com:idiot-io/TinyAudioBoot.git
cd TinyAudioBoot
git update submodules --init
cd TinyAudioBoot
#clean the build folder (bin)
make clean
#build the hex
make
#flash the hex
make upload

the output has this flags, broken into lines. because its an automated build system it spits out a few double and empty flags.
note the first Capital Letter after a - is part of the avr flag system. and not part of the variable.

/usr//bin/avr-g++ 
-MMD 
-c 
-D__PROG_TYPES_COMPAT__ 
-g 
-Os 
-w 
-W 
-ffunction-sections 
-fdata-sections  
-MMD 
-I.  
-DBOOTLOADER_ADDRESS=0x0x1BC0 
-I 
-I 
-I../TinyAudioBoot  
-mmcu=attiny85 
-DF_CPU=8000000L 
-DARDUINO=1813 
-DARDUINO_ARCH_AVR 
-I/mnt/c/dev/TinyAudioBoot/TinyAudioBoot/../ATTinyCore/avr//cores/tiny 
-I/mnt/c/dev/TinyAudioBoot/TinyAudioBoot/../ATTinyCore/avr//cores/tiny/api 
-I/mnt/c/dev/TinyAudioBoot/TinyAudioBoot/../ATTinyCore/avr//variants/tinyX5    
-Wall 
-ffunction-sections 
-fdata-sections 
-Os 
-pedantic 
-Wall 
-Wextra 
-fpermissive 
-fno-exceptions 
-std=gnu++11 
-fno-threadsafe-statics 
-flto 
-fno-devirtualize 
-fdiagnostics-color=always 
/mnt/c/dev/TinyAudioBoot/TinyAudioBoot/../ATTinyCore/avr//cores/tiny/new.cpp 
-o /mnt/c/dev/TinyAudioBoot/TinyAudioBoot/bin/attinyx5/TinyAudioBoot/core/new.cpp.o