Sida 1 av 2

Arduino, vad e de?

Postat: 20 juni 2009, 12:49:01
av Anonym2
Hej

Arduino väckte mitt intresse när jag såg att det fanns smidiga utvecklingskort med en massa saker inbygda, för en bilig sland. Någon som hette Mileaneuve för 250kr eller så. Det verkar även enkelt att hitta rutiner/bibliotek för att interfaca ny hårdvara, smidigt.

Programeringen av dessa gör mig dock lite förvirrad. De ska programeras med c/c++ och har en Bootloader. Vad jag förstår så ska bootloadern förenkla uppladdningen av ny mjukvara till kretsen(varför nu det behövs).

Vad är en bootloader, varför behöver jag den? jag programerar mina AVRkretsar med gcc idag, vad blir annorlunda med Arduiono, bortsett från att det finns bibliotek för att hantera extern hårdvara och sådant?


//Alexander

Re: Arduino, vad e de?

Postat: 20 juni 2009, 12:59:42
av xraid
Det finns ett IDE till arduino som hjälper till med uppladdningen av programsnuttar = sketches...
http://arduino.cc/en/Tutorial/Bootloader

Re: Arduino, vad e de?

Postat: 20 juni 2009, 13:11:51
av Kaggen
Ranstam skrev:Vad är en bootloader, varför behöver jag den?
En bootloader är en redan inprogrammerad programsnutt som hämtar kod från någon typ av in-enhet (USB anslutningen i detta fall) och flashar in den i kretsen (i detta fall ATMEGA 328). Man kan säga att microcontrollern flashar sig själv. Dvs du behöver inte ansluta någon ICSP utrustning, du använder samma USB port både att kommunicera med dator t.ex i dina egna applikationer och flasha om din applikation. Bootloader är ju inte direkt någon nytt.

Visst kostar den en del extra om man jänför med en enkel AVR krets, men den är nog jättebra att experimentera med. Och om man är som jag, bygger kul projekt och sedan skrotar dom, så är den ju jätteenkel att återanvända. Om du däremot redan har en ICSP-programmerare och labplatta och utrustning (kringkretsar, kristaller, avkopplare) är den kanske inte lika intressant. En värdig konkurrent till BASIC-stamp kanske.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 13:19:31
av sodjan
Bootloader används i nästan all kommersiell utrustning som har har
en mikrokontroller i dag. TV-top boxar, modem, routers, tvättmaskiner,
spisar och alla annan köksutrustning o.s.v. Alltså till alla burkar där
man man "flash om" den via t.ex något PC progam.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 14:54:34
av Mindmapper
Du kan använda din ordinarie ISP-programmerare för att bränna in program i Arduinon också, då de även är utrustade med isp. Du kan även använda din ordinarie programerare för att lägga in bootloadern i kretsar utan bootloader.
Nackdelen med bootloadern är att den tar en del minne i anspråk.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 15:15:41
av sodjan
Ofta (men inte alltid) behöver man ta hänsyn till att sin egen
programvara ska köras i just en bootloader miljö. Normalt får man
göra lite anpassning i utvecklingsmiljön för att sin egen kod
och bootloaders ska "trivas ihop". Det är väldigt beroende på
den aktuella miljön, och i fallet med Arduino så antar jag att
de som har satt ihop hårdvara/programvara har fixat det.

Om man ska använda en bootloader så får man nog läsa på
lite om hur just den man valt fungerar. Det kan t.ex vara så
att bootloadern startar först och har en tidsperiod då den lyssnar
efter en anslutning för nerladdning. Om man skulle ha krav på
snabb uppstaet vid power-on eller reset så kanske det kan blir
problem. Som sagt, man får studera hur just den bootloaders som
man tänker använda fungerar och i fallet med Arduino så lär det
redab vara fixat...

Re: Arduino, vad e de?

Postat: 20 juni 2009, 20:08:31
av Anonym2
Ligger bootloadern inlagd i programminnet? försvinner bootloadern om jag kör ICSP från min STK500, och lägger in ett program som jag har skrivit där? eller är det "bränt" fast i minnet från fabrik?


//Alexander

Re: Arduino, vad e de?

Postat: 20 juni 2009, 20:28:24
av xraid
Arduino hårdvara kommer med en preprogramerad Arduino bootloader ...

Annars kan man bränna in en Arduino bootloader i ett kompatibelt chip för att få en Arduino kompatibel miljö ...

Jag kör en Arduino på en stk500, med hjälp av denna post : http://www.5volt.eu/archives/3

Re: Arduino, vad e de?

Postat: 20 juni 2009, 20:35:00
av thepirateboy
Den försvinner normalt om du kör ISP, men det finns egentligen ingen anledning att använda den om du redan har programmerare. Du kan förstås lägga tillbaks den när du vill.

En del kretsar har bootloader i ROM, men inte Atmega328.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 21:04:27
av Anonym2
Arduino verkar ju vara smidigt, men hur högt är priset? kommer ett program som gör på en Arduino(i dennas utvecklingsmiljö) ta större plats än ett program som jag komplierar själv med GCC och lägger in på en Atmega med min STK500?(samma program naturligtvis).

Re: Arduino, vad e de?

Postat: 20 juni 2009, 22:22:45
av Mindmapper
Bootloadern ligger ju i flashminnet och tar plats i arduino, så där har gcc ett försprång. Om det inte är samma kompilator i gcc och arduino blir koden inte lika. Vilken som blir större kan bero på tillämpning. Tillverkare av olika kompilatorer brukar leta fram program som är goa mot deras kompilator om de får chansen att visa sig på styva linan.

Det finns så pass många olika modeller med olika minne att det ska inte vara någon stor affär att gå upp ett snäpp i storlek. Vid serietillverkning gör man andra avvägningar.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 22:38:31
av sodjan
> Bootloadern ligger ju i flashminnet och tar plats i arduino, så där har gcc ett försprång.

Hm, alltså, logiken brister *lite* här... :-)
Man kan självklart bygga applikationer i GCC också som också körs in via en bootloader.
Så bootloader (eller inte) har igentligen inget med att använda GCC (eller inte) att göra.
Själva bootloadern är dessutom sannolikt så (rellativt) liten att *storleken* av
bootloader i sig inte bör har någon praktiskt betydelse.

Mer intressant är (som du också skriver) hur den kod som genereras av Arduinos
utvecklingsmiljö ser ut i jämförelse med t.ex koden som genereras av GCC.

Det som jag ser som det största problemet med bootloaders i hobby/labb miljö
är om man råkar radera processorn helt. Då sitter man där med skägget i
brevlådan om man inte har tillgång till en "vanlig" programmerare som kan
flasha om bootloadern igen... :-)

Re: Arduino, vad e de?

Postat: 20 juni 2009, 23:12:18
av Mindmapper
Eller ett gäng reservkretsar med bootloader.
Jag tror arduino är något man börjar med. Fastnar man för att programmera MCU'er, så skaffar man sig då en programmerare.

Re: Arduino, vad e de?

Postat: 20 juni 2009, 23:18:45
av Kaggen
Ranstam skrev:Arduino verkar ju vara smidigt, men hur högt är priset? kommer ett program som gör på en Arduino(i dennas utvecklingsmiljö) ta större plats än ett program som jag komplierar själv med GCC och lägger in på en Atmega med min STK500?(samma program naturligtvis).
Asså, jag tror inte arduino i första hand tänkt för dom som redan har sdk-500, lödstation, komponenter och utrustning för x antal kronor och inte har något emot att pula någon timme för att få ihop ett fungerande kretskort med uC och kringkomponenter. Det är nog mer tänkt som en "snabbt att komma igång utvecklings/test miljö" för nybörjare eller folk som inte vill löda/bygga så mycket själv. Dvs de som vill komma åt kolan snabbt och med minimalt arbete.

Som sodjan dessutom påpekade har bootloadern ingenting med utvecklingsspråket att göra. Den är inte där bara för att ligga och ta 2kB utrymme heller (1kB i ATmega8). Den är till föra att eventuellt ladda in ny kod vid boot från en redan befintlig anslutning utan ICSP. Ponera att du har en kund som av dig har fått en burk med en uC som är ansluten via serieport/USB för att samla data. Ponera vidare att kunden vill ha en ny en feature/funktion. Det är ju då enklare för dig att skicka denna nya kod via mail och kunden själv "uppgraderar" firmwaret via den redan inkopplade serie/USB porten? Då slipper du ju åka dit med din stk-500 och plocka isär höljet och plutta dit ICSP kontakten och programmera. Det är ju samma princip som när du updaterar firmware i din ADSL-router, switch, PC BIOS m.m. m.m.

Re: Arduino, vad e de?

Postat: 21 juni 2009, 01:09:47
av xraid
Arduino är en "open source hardware" rörelse var alla delar med sig med scheman och pcb layouts (eagle format) samt mjukvara, detta gör Arduino till en utmärkt plattform för en massa applikationer, en effekt är spridd kunskap om uc via hand på hårdvara ...