www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

.hex vsv .bin

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.05
Kraj: Dragomer

PrispevekObjavljeno: Pet Avg 01, 2014 9:05 am    Naslov sporočila:  .hex vsv .bin Odgovori s citatom

Prevedeni programi za polnjenje v mikroprocesorje so na PC disku v obliki datoteke s suffixom ali .hex ali .bin
No nekateri prevajalniki dajejo oba tipa datotek.

Če z wordpadom pogledam .bin datoteko izgleda nekako tako:
Citiram:
ˇč±ŕâŕňá”=¦é±ŕâŕňá”=«ę±ŕâŕňá”= ššäáňá”
îáňá”


Če pa pogledam .hex datoteko, pa nekako smiselno izgleda:

Citiram:
:100000000C943E001895000018950000189500000B
:10001000189500001895000018950000189500002C
:10002000189500001895000018950000189500001C
:10003000189500001895000018950000189500000C
:1000400018950000189500000C94CF00189500003A


AVR IPS STK Programer pozna oba tipa datoteke. Slaba lastnost tega programerja je, da se priklopi na printerport PC-a, moderni PC-i pa le tega nimajo več.

Na prenosniku uporabljam USB Programmer STK500 Native Driver. Le ta pozna samo .bin datoteke. No, nič zato.

Ideja je bila sledeča, na ne funkcionira:
Arduino ima bootloader, ki ga ne bi rad izgubil. Pa sem hotel vso vsebino atmela na arduinu prebrati v .bin datoteko. To je šlo. Kopijo sem spravil na disk, da jo potem vrnem, skupaj z bootloaderjem nazaj.
Za test sem takoj naredil obratno operacijo in sem isti program nazaj napolnil v Arduino. A glej, program (sekundno blinkanje ledice) ni več delal, kot bi moral. Blinkanje ni bilo več sekundno, temveč hitreje, pa tudi čas ledon ni več bil enak času ledoff.
Potem sem v strahu, da tudi bootloader ne bo več delal, program ponovno naložil iz Arduino okolja, in - hvala bogu ali darwinu - bootloader je še vedno delal in program se je pravilno naložil, ledica je spet sekundno blinkala.

Rad bi to preizkusil še z .hex datoteko, a kot rečeno, moj USB Programator tega ne podpira.

Imate kak namig, kaj je šlo narobe in kako narediti, da bi šlo prav?
Rad bi bootloader (pa čeprav s še kakim drugim programom, ki bi bil trenutno naložen) iz arduina polnil na drug (enak ali isti nazaj) mikroprocesor.

Arduino okolje mi pri pravajanju naredi tudi .hex datoteko, ki jo pa z USB programatorjem ne morem naložiti. Tudi to bi rad naredil. Kako? Uporabiti kak drug programator? Kateri?

Se da .hex datoteka preformatirati v .bin datoteko?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 6.02
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 01, 2014 9:46 am    Naslov sporočila:   Odgovori s citatom

Na primer tole:
http://hex2bin.sourceforge.net/
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.05
Kraj: Dragomer

PrispevekObjavljeno: Pet Avg 01, 2014 10:05 am    Naslov sporočila:   Odgovori s citatom

S53DZ je napisal/a:
Na primer tole:
http://hex2bin.sourceforge.net/


Hvala! Bom probal.

Še vedno pa ostaja problem, zakaj mi je program, ko sem ga ponovno polnil iz .bin datoteke, delal drugače ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
S53DZ
Član
Član



Pridružen-a: Čet 28 Apr 2011 9:27
Prispevkov: 951
Aktiv.: 6.02
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 01, 2014 10:07 am    Naslov sporočila:   Odgovori s citatom

Eden od možnih vzrokov je v tem, da lahko pri pretvorbi spreminjaš offset.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.35
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 01, 2014 12:07 pm    Naslov sporočila:   Odgovori s citatom

Arduino bootloader se nahaja na koncu flasha, verjetno ni del HEX oz. BIN datoteke, razen če si z zunanjim programatorjem prebral celotno kodo procesorja. Če ga povoziš boš moral z zunanjim programatorjem na novo vpisat bootloader.

Hex datoteka so v bistvu komande za programator, naslov (offset), kamor se podatki zapišejo in podatki. Bin podatki so pa celotna bitna slika procesorja, od začetka do konca, oz. vsaj do tam do kjer se nahaja program.

Za pretvorbo hex v bin lahko poskusiš:
avr-objcopy -I ihex file.hex -O binary file.bin

Sicer se mi zdi da v hex in bin datoteki niso določeni fuse biti oz. se jih ne da programirat preko teh datotek, ampak če želiš ohranit Arduino bootloader jih tako nočeš spreminjat. Če boš želel v nov kontroler vpisat bootloader boš mora pa tudi fuse bite nastavit.

Za vpisat arduino bootloader imaš izbiro Burn Bootloader (Posodobi Nalagalnik), rabiš pa ali zunanji programator ali arduino povezan kot programator. Aja pa kristal svežega procesorja mora bit isti kot pri arduinotu ki ga imaš izbranega ker sicer boš imel težave.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.05
Kraj: Dragomer

PrispevekObjavljeno: Pet Avg 01, 2014 12:23 pm    Naslov sporočila:   Odgovori s citatom

dejko1 je napisal/a:
Arduino bootloader se nahaja na koncu flasha, verjetno ni del HEX oz. BIN datoteke, razen če si z zunanjim programatorjem prebral celotno kodo procesorja.


Ali naj to razumem, da če naložim nek program s programatorjem preko miso mosi sck pinov, bootloaderja ne bom povozil, če bo naloženi program dovolj mali?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.35
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 01, 2014 3:08 pm    Naslov sporočila:   Odgovori s citatom

Tako je, ja, razen če pred programiranjem zbrišeš cel čip.

Fuse biti najprej poženejo arduino bootloader, ta pa potem zažene tvoj program.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.05
Kraj: Dragomer

PrispevekObjavljeno: Pet Avg 01, 2014 3:11 pm    Naslov sporočila:   Odgovori s citatom

Hvala. Bom probal
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
arksi
Član
Član



Pridružen-a: Sre 03 Sep 2008 10:19
Prispevkov: 741
Aktiv.: 3.90
Kraj: Dolenjska

PrispevekObjavljeno: Sob Avg 02, 2014 1:48 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
dejko1 je napisal/a:
Arduino bootloader se nahaja na koncu flasha, verjetno ni del HEX oz. BIN datoteke, razen če si z zunanjim programatorjem prebral celotno kodo procesorja.


Ali naj to razumem, da če naložim nek program s programatorjem preko miso mosi sck pinov, bootloaderja ne bom povozil, če bo naloženi program dovolj mali?


To pa tudi mene zanima. A ni veljalo, da sprogramiranjem preko SPI zbrišeš bootloader?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5771
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Sob Avg 02, 2014 2:27 pm    Naslov sporočila:   Odgovori s citatom

Bootloaderja v Arduinu nisem povozil še nikdar!
Če programiraš mego na plati (pa naj bo to Arduino ali kaj drugega) in če imaš pravilno nastavljene fuse bite, naj se to ne bi zgodilo, razen pri polnem (erase chip) brisanju!
Ne vem od kje vam, da naj bi pri programiranju preko SPI pobrisal kompleten flash!?
Vse je pač odvisno od nastavitev fuse bitov in nastavitev programskega vmesnika s katerim programiraš!

@vilko:vse skupaj tudi slučajno ni odvisno od velikosti programa. Npr, lahko imaš program velik 1kB, kar je malo za kontrolerje, ki se nahajajo na Arduino ploščah, vendar pred programiranjem je seveda treba bite v flashu postavit na 1 in običajno imaš v programskem vmesniku možnost "erase chip" in ostali dve možnosti "erase flash" in "erase EEprom". V prvem primeru pobrišeš vse tj. flash in EEprom (če slednji ni zaščiten s fuse bitom), ne glede na nastavitve fuse bitov in velikosti programa, v drugem primeru pa je odvisno, kako so nastavljeni fuse biti in če so le ti nastavljeni tako, da se lahko boot loader prepiše, se bo le ta pri ukazu "erase flash" tudi pobrisal!

_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.35
Kraj: Ljubljana

PrispevekObjavljeno: Pon Avg 04, 2014 11:47 am    Naslov sporočila:   Odgovori s citatom

Če je program ki ga nalagaš tako velik da ti pride do zadnjih sektorjev (kjer se nahaja bootloader), ti bo povozilo bootloader... Bootloader povečini (odvisno od uporabljenega procesorja) zavzame zadnjih 1024 wordow = 2048 bajtov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
arksi
Član
Član



Pridružen-a: Sre 03 Sep 2008 10:19
Prispevkov: 741
Aktiv.: 3.90
Kraj: Dolenjska

PrispevekObjavljeno: Pon Avg 04, 2014 1:32 pm    Naslov sporočila:   Odgovori s citatom

Jaka57 je napisal/a:
Bootloaderja v Arduinu nisem povozil še nikdar!
Če programiraš mego na plati (pa naj bo to Arduino ali kaj drugega) in če imaš pravilno nastavljene fuse bite, naj se to ne bi zgodilo, razen pri polnem (erase chip) brisanju!..............


Recimo, da hočem v Mego2560 sprogramirati kratek programček preko ISP (blinkanje LED-ce). Kako bi moral nastaviti fuse bite, da ne bi pobrisal bootloader-ja?

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Jaka57
Moderator
Moderator



Pridružen-a: Ned 12 Dec 2004 21:47
Prispevkov: 5771
Aktiv.: 25.92
Kraj: Grosuplje

PrispevekObjavljeno: Pon Avg 04, 2014 2:01 pm    Naslov sporočila:   Odgovori s citatom

Obema, enostavno se mi ne da več, preberita si podatkovni list od konkretnega kontrolerja (posebno tisti del, ki se nanaša na Lock Bite!), če želiš pisat program za kontroler!
Fuse bit kalkulator je pa tukaj.

V Arduino IDE enostavno ne moreš napisat večjega programa, kot gre v flash na točno določeni plošči, v AVR Studio pa moraš označit, da ohraniš boot loader in prav tako ne boš mogel napisat večjega programa, kolikor je razpoložljivega prostora!

_________________
Lp, Jaka
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.35
Kraj: Ljubljana

PrispevekObjavljeno: Pon Avg 04, 2014 2:48 pm    Naslov sporočila:   Odgovori s citatom

@arksi:
Fuse bite lahko z ISP programatorjem tudi prebereš... Kaj točno je nastavljeno pa lahko pogledaš na kalkulatorju ki ga je pripel Jaka57 (ali v datašitu).

Predlagam da fuse-ov ne spreminjaš oz. jih pustiš take kot so če želiš ohranit bootloader funkcijonalen.

Default fuse biti za arduinote:
http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/

Mr. Green če nisi prepričan v to kar delaš pač za programiranje uporabi arduino okolje...

@Jaka57:
Lock biti kolikor jaz razumem ščitijo bootloader sekcijo samo pred prepisom iz programa, ne pa pred prepisom z ISP programatorjem... Če se motim me pa lahko popraviš.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 66 dni


Powered by phpBB © 2001, 2005 phpBB Group