Example: set fuses and upload hex on remote programmer
Implements two new make rules: 'net_set_fuses' executes a single ssh command, 'net_upload' pipes hex through ssh connection. The example also showcases the FORCE_MONITOR_PORT feature.
This commit is contained in:
parent
66a56f4f38
commit
65c6b0a05e
3 changed files with 68 additions and 1 deletions
23
examples/BlinkNetworkRPi/ATtinyBlink.ino
Normal file
23
examples/BlinkNetworkRPi/ATtinyBlink.ino
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
Blink
|
||||||
|
Turns on an LED on for one second, then off for one second, repeatedly.
|
||||||
|
|
||||||
|
This example code is in the public domain.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Connect a LED to Pin 3. It might be different in different ATtiny micro controllers
|
||||||
|
int led = 3;
|
||||||
|
|
||||||
|
// the setup routine runs once when you press reset:
|
||||||
|
void setup() {
|
||||||
|
// initialize the digital pin as an output.
|
||||||
|
pinMode(led, OUTPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
// the loop routine runs over and over again forever:
|
||||||
|
void loop() {
|
||||||
|
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
|
||||||
|
delay(1000); // wait for a second
|
||||||
|
}
|
44
examples/BlinkNetworkRPi/Makefile
Normal file
44
examples/BlinkNetworkRPi/Makefile
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# Arduino Make file. Refer to https://github.com/sudar/Arduino-Makefile
|
||||||
|
|
||||||
|
# Tested and working with a linuxspi programmer on a remote Raspberry Pi
|
||||||
|
# Refer to https://github.com/kcuzner/avrdude for linuxspi.
|
||||||
|
# Should work with ISP as well if you replace $(AVRDUDE_ARD_OPTS) with
|
||||||
|
# $(AVRDUDE_ISP_OPTS) in the net_set_fuses rule.
|
||||||
|
|
||||||
|
# Alternate core from https://code.google.com/p/arduino-tiny
|
||||||
|
ALTERNATE_CORE = tiny
|
||||||
|
BOARD_TAG = attiny85at8
|
||||||
|
|
||||||
|
# Avrdude config path on the remote Raspberry Pi
|
||||||
|
AVRDUDE_CONF=/usr/local/etc/avrdude.conf
|
||||||
|
|
||||||
|
# Skip the monitor port existance check since it's not on our machine.
|
||||||
|
FORCE_MONITOR_PORT=(defined)
|
||||||
|
MONITOR_PORT=/dev/spidev0.0
|
||||||
|
|
||||||
|
include ../../Arduino.mk
|
||||||
|
|
||||||
|
|
||||||
|
# Additional rules to use a remote Raspberry Pi programmer
|
||||||
|
|
||||||
|
HOST = root@alarmpi
|
||||||
|
SSH_AVRDUDE = ssh $(HOST) /usr/local/bin/avrdude
|
||||||
|
|
||||||
|
CAT_HEX = cat $(TARGET_HEX)
|
||||||
|
AVRDUDE_UPLOAD_PIPE = -U flash:w:-:i
|
||||||
|
|
||||||
|
.PHONY: net_upload net_set_fuses
|
||||||
|
|
||||||
|
net_upload: $(TARGET_HEX) verify_size
|
||||||
|
$(CAT_HEX) | $(SSH_AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ARD_OPTS) \
|
||||||
|
$(AVRDUDE_UPLOAD_PIPE)
|
||||||
|
|
||||||
|
net_set_fuses:
|
||||||
|
ifneq ($(strip $(AVRDUDE_ISP_FUSES_PRE)),)
|
||||||
|
$(SSH_AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ARD_OPTS) -e \
|
||||||
|
$(AVRDUDE_ISP_FUSES_PRE)
|
||||||
|
endif
|
||||||
|
ifneq ($(strip $(AVRDUDE_ISP_FUSES_POST)),)
|
||||||
|
$(SSH_AVRDUDE) $(AVRDUDE_COM_OPTS) $(AVRDUDE_ARD_OPTS) \
|
||||||
|
$(AVRDUDE_ISP_FUSES_POST)
|
||||||
|
endif
|
|
@ -7,7 +7,7 @@ failures=()
|
||||||
# These examples cannot be tested easily at the moment as they require
|
# These examples cannot be tested easily at the moment as they require
|
||||||
# alternate cores. The MakefileExample doesn't actually contain any source code
|
# alternate cores. The MakefileExample doesn't actually contain any source code
|
||||||
# to compile.
|
# to compile.
|
||||||
NON_TESTABLE_EXAMPLES=(ATtinyBlink MakefileExample TinySoftWareSerial BlinkTeensy)
|
NON_TESTABLE_EXAMPLES=(ATtinyBlink MakefileExample TinySoftWareSerial BlinkTeensy BlinkNetworkRPi)
|
||||||
|
|
||||||
for dir in $TESTS_DIR/*/
|
for dir in $TESTS_DIR/*/
|
||||||
do
|
do
|
||||||
|
|
Loading…
Reference in a new issue