Ricavare file HEX su MacOS

Salve a tutti, avrei bisogno di ricavare il file HEX per poter aggiornare il fw della stampante 3d in remoto. Ho letto un po di guide che mi hanno portato a fare delle modifiche nel file preferences.txt di arduino... in pratica ho aggiunto:

Il percorso di destinazione:

build.path=/Users/miouser/Desktop/HEX/

ed ho modificato la stringa:

export.delete_target_folder=false

ora in pratica quello che ottengo è che non viene creato un file.hex ma una cartella con dentro dei file di cui nessuno .hex. In cosa sbaglio?

Grazie

Se evitavi di mettere le mani in cose che probabilmente NON conosci a fondo (... e che sono poco documentate) e, semplicemente, attivavi nelle preferenze dell'IDE i due segni di spunta ai "dettagli" sia di compilazione che di upload, finita la compilazione, nella finestra in baso, ti trovavi direttamente il percorso di dove si trova il file .hex

Guglielmo

gpb01: Se evitavi di mettere le mani in cose che probabilmente NON conosci a fondo (... e che sono poco documentate) e, semplicemente, attivavi nelle preferenze dell'IDE i due segni di spunta ai "dettagli" sia di compilazione che di upload, finita la compilazione, nella finestra in baso, ti trovavi direttamente il percorso di dove si trova il file .hex

Guglielmo

A dire il vero è stata la prima operazione che ho provato e del percorso hex neanche l'ombra L'ultima stringa mi da un .elf anzichè un .hex :

/Users/utente/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-size -A /Users/utente/Desktop/HEX/MK4duo.ino.elf

Guardare qualche riga più in alto e più attentamente no ? ? ?

Linking everything together...
"/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/fishino/tools/avr-gcc/4.9.2-atmel3.5.4-fishino2/bin/avr-gcc" -Wall -Os -Wl,--gc-sections -mmcu=attiny85 -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.elf /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/sketch/Tiny_Terminal.ino.cpp.o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/core/core.a -L/var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780 -lm
"/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/fishino/tools/avr-gcc/4.9.2-atmel3.5.4-fishino2/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.elf /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.eep
"/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/fishino/tools/avr-gcc/4.9.2-atmel3.5.4-fishino2/bin/avr-objcopy" -O ihex -R .eeprom /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.elf /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.hex
chmod +x "/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/ATTinyCore/hardware/avr/1.2.2/create_disassembler_listing.sh"
"/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/ATTinyCore/hardware/avr/1.2.2/create_disassembler_listing.sh" "/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/fishino/tools/avr-gcc/4.9.2-atmel3.5.4-fishino2/bin/avr-objdump" "--disassemble --source --line-numbers --demangle --section=.text" /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.elf /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.lst
"/Applications/Arduino/Arduino 1.8.8.NB Portable.app/Contents/Java/portable/packages/fishino/tools/avr-gcc/4.9.2-atmel3.5.4-fishino2/bin/avr-size" -A /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/arduino_build_37780/Tiny_Terminal.ino.elf
Sketch uses 3242 bytes (39%) of program storage space. Maximum is 8192 bytes.
Global variables use 63 bytes (12%) of dynamic memory, leaving 449 bytes for local variables. Maximum is 512 bytes.

... in questo esempio (per ATtiny85) quarta riga, alla fine della riga.

Guglielmo

P.S.: macOS 10.12.6, IDE 1.8.8

 /Users/karnhack/Library/Arduino15/packages/arduino/hardware/sam/1.6.11/variants/arduino_due_x/libsam_sam3x8e_gcc_rel.a /Users/karnhack/Desktop/HEX/../../../../var/folders/bv/07p_w8_s1r15rkmp1bdds8zm0000gn/T/arduino_cache_732864/core/core_arduino_sam_arduino_due_x_dbg_ec68e7f7ca54c5c674b1d26dca24d6ab.a -Wl,--end-group -lm -gcc
/Users/karnhack/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-objcopy -O binary /Users/karnhack/Desktop/HEX/MK4duo.ino.elf /Users/karnhack/Desktop/HEX/MK4duo.ino.bin
Uso la libreria SPI alla versione 1.0 nella cartella: /Users/karnhack/Library/Arduino15/packages/arduino/hardware/sam/1.6.11/libraries/SPI 
Uso la libreria Wire alla versione 1.0 nella cartella: /Users/karnhack/Library/Arduino15/packages/arduino/hardware/sam/1.6.11/libraries/Wire 
/Users/karnhack/Library/Arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-size -A /Users/karnhack/Desktop/HEX/MK4duo.ino.elf
Lo sketch usa 198620 byte (37%) dello spazio disponibile per i programmi. Il massimo è 524288 byte

Guarda che non c'è, per sicurezza ogni volta faccio una ricerca del termine .hex e non c'è nulla... ottengo solo .bin ed .elf

A parte che non dici che versione del IDE stai usando, ma poi ... vedo ora che stai compilando per SAM (ARM) e non per AVR (altra cosa che non hai detto) ... non so se in tal caso venga generato un .hex ::)

Guglielmo

Edit: ... anzi, facendo una prova con con ARM, vedo che il .hex NON lo genera proprio. Genera il .bin ed il .elf ... probabilmente dovresti riuscire a caricare il .bin ... con cosa cerchi di effettuare l'upload?

Uso Arduino 1.8.8 e sto compilando per SAM in quanto ho un arduino due. Ancora non ho provato a fare l'upload ma userò un plugin di octoprint

karnhack: ... non ho provato a fare l'upload ma userò un plugin di octoprint

... mmm ... io non mi fiderei di un plugin di octoprint per fare l'upload del firmware della mia stampate.

Ma essendo un Arduino DUE, perché non collegarla via USB e fare l'upload dall'IDE? E' la cosa più pulita ... ::)

Guglielmo

Ho necessità di allontanare la stampante dal pc e stavo cercando una via a distanza. Per quanto riguarda il plugin lo usano in molti e sembra funzionare bene.

... ho fatto un po' di ricerche e .. mentre per AVR viene generato il .hex, per ARM viene generato il .bin .... c'è poco da fare.

Ho però anche trovato una discussione in cui, una persona che aveva la necessità del .hex, ha risoto con una utility di STM ... "ST-Link Utility" che ti permette di leggere il .bin e di fare il "save as" .hex:

I found a way to convert a bin file into hex. I used STLINK utility for it. First I opened my project.bin file, then used SaveAs option. While saving the file if you click on file type options, you will have *.hex type, click on it and here we go.

Purtoppo la trovo solo per windows ... ::)

Guglielmo

... mmm ... prova a leggere QUI, magari c'è la soluzione ;)

Guglielmo