Dansk Elektronik Forum

Generel Elektronik => Arduino & Lign. => Emne startet af: jar efter Maj 12, 2019, 17:54:23

Titel: HJÆLP har glemt prog. version / load dato
Indlæg af: jar efter Maj 12, 2019, 17:54:23
Hej alle
Er det muligt at udtrække data fra ARDUINO (PRO MINI) om hvornår sidste opload af prog. til ARDUINOen  er foretaget. Jeg har holdt en længere pause, så nu husker jeg ikke hvilke af mine  lidt forskellige programmer jeg sidst oploadede.

mvh
Jørn
Titel: Sv: HJÆLP har glemt prog. version / load dato
Indlæg af: Jakobsen efter Maj 13, 2019, 11:01:30
Hej Jørn

Kender godt det at man ikke er sikker på hvad der er af kode i et givent arduino board  :o
Mener ikke selve IDE laver nogen log file af hvad man har uploadet gennem tiden.

Men så vidt jeg forstå så bruger Arduino en del af AVRDUDE til at programmere selve arduino'en

Så hvis man bruge en avrdude cmd line som så indeholder en read command så kan du læse content ud af Arduinoen til en binær fil....

Den kan du så sammenligene med en fil fra den code du nu mener der bude passe når du gemmer dit arduino project som hex (ligesom når man senere vil programmere med XLoader)

Håber det kan bruges  ::)
Titel: Sv: HJÆLP har glemt prog. version / load dato
Indlæg af: jar efter Maj 15, 2019, 18:13:19
Hej Jacobsen
Nu er jeg aldeles ny på ARDUINO og C-kodning så jeg må lige sætte mig ind i hvad  "avrdude cmd " er for noget. Men du fik mig til at fintænke-og finde på en løsning der var mere på mit niveau.
Jeg indsatte en linie som denne ind under VOID SETUP :
Serial.print("REVISION 15-05-2019");
Så kan jeg via serial monitor se teksten som det første ved opstart/reset.
Måske en primitiv løsning-men for mig enkel og velfungerende.
Så tak for dit svar og dit  igangspark.

mvh
Jørn
Titel: Sv: HJÆLP har glemt prog. version / load dato
Indlæg af: Jesper_Munkholm efter Maj 16, 2019, 07:21:25
Hej Jacobsen
Nu er jeg aldeles ny på ARDUINO og C-kodning så jeg må lige sætte mig ind i hvad  "avrdude cmd " er for noget. Men du fik mig til at fintænke-og finde på en løsning der var mere på mit niveau.
Jeg indsatte en linie som denne ind under VOID SETUP :
Serial.print("REVISION 15-05-2019");
Så kan jeg via serial monitor se teksten som det første ved opstart/reset.
Måske en primitiv løsning-men for mig enkel og velfungerende.
Så tak for dit svar og dit  igangspark.

mvh
gier


Fed ide!  ;)
Titel: Sv: HJÆLP har glemt prog. version / load dato
Indlæg af: Jakobsen efter Maj 16, 2019, 11:41:55
Jeg indsatte en linie som denne ind under VOID SETUP :
Serial.print("REVISION 15-05-2019");

Nice, det lyder som en god løsning  8)

Hvis du skal have code ud af et board du ikke selv har programmeret så er det noget i denne stil

AVRDUDE som allerede installeret sammen med Arduino IDE
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin

der kan du åbne en CMD promt (Kommandolinje)  og f.eks skrive (tilpas COMport)
Kode:
avrdude -C ..\etc\avrdude.conf -c arduino -p atmega328p -P COM29 -U flash:r:E:\tmp\mystery.hex:r

Så vil AVRDUDE læse FLASH fra dit Arduino board og save det til en  bin file ":E:\tmp\mystery.hex"

I arduino IDE under dit projekt kan du sige eksporter (under sketch) og der kommer nu 2 hex file (Intel hex  format)

Hvis man så sammenligner de 2 filer burde de være ens (skal konverter den end fra Intel til bin eller omvendt)


BTW der er et lille program man kan hente der hedder XLoader som man f.eks kan sende til en kunde / kammerat som har et arduino board.

De kan så nøjes med at maile en ny HEX fil som de så selv kan lægge i arduinoen uden at skulle installere alt mulig og have diverse biblioteket mm installeret.

Det er super nemt og benytter også AVRdude i baggrunden


Titel: Sv: HJÆLP har glemt prog. version / load dato
Indlæg af: Icecap efter Juli 28, 2019, 10:25:59
I mine projekt plejer jeg at definere et par ting:
#define Version_Major 10 // Vilken version
#define Version_Minor 15 // Subversion
#define Project_Name "Gøre noget specifikt"

Så kan man printe dette ud, enten ved at man kan kommunikere med enheden eller ved start.

Nu anvender jeg aldrig Arduino men det skal fungere lige så godt dér.

Man kan selvfølgeligt også anvende dette til at skrive lidt konstanter som man senere kan læse ud af en hex-file:
const u_int8 *Name_Text = Project_Name;