The compiler optimized the computation nLed * 4 into a bit shift, as
Led << 2. It seems nLed is a single byte quantity. However,
nLed * 4 may not fit in one byte, and the semantics of the language
demands that nLed is promoted to an int before the computation. This
is done by extending the variable by a byte of zeros:
ldi r25, 0
Now the register ...
Yes you can connect it: http://elm-chan.org/fsw/ff/00index_p.html
Your happiness depends on what you want to accomplish. Simple streaming, like feeding an FPGA with a bitstream is achievable. Logging an incoming data stream to the SD card filesystem is probably not.
As noted in question, the 32kHz crystal is used as a clock source and also at least the first programming was working.
The ArduinoISP sketch has hardcoded ISP clock speed and ISP clock has to be at most 1/4 of MCU speed. So the ArduinoISP sketch SPI_CLOCK has to be set to the much lower value than default 166kHz, which is way too fast for 32kHz MCU clock. ...
It sounds like you have a newer board than the version of Micronucleus in the Arduino package.
As I discovered here you basically need to upgrade micronucleus in your Ardino installation, which you can download from here
Download the zip file from Github and extract it. Then in a terminal (if you're not already in one) go to the directory you extracted.
Is there any way to wake up after a precise amount of time in the
POWER_DOWN or STAND_BY modes?
I'm afraid not. You will have to use a timer. Since the ATtiny84 does
not have an asynchronous timer, you will have to keep your timer
clocked. This means the clkIO clock domain has to stay
active. Now, take a look at the table “Active Clock Domains and Wake-up