Var är det lämpligt att diskutera .asm kod?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av sodjan »

Vissa operativsystem är skrivna/designade för att köras ROM'at.
Främst sådana som är tänkta för "inbyggda system" o.s.v.

Andra (de flesta vanliga idag som Win, Linux o.s.v) är från början
skriva för att köra med en disk tillgänglig. Disken kan i och för
sig vara en SSD, men i alla fall en skrivbar disk.

Du kommer aldrig all kunda skriva om historien. Varför inte bara
ta och lära dig lite om hur saker och ting faktiskt fungerar.
Du kommer att bespara dig en massa jobb (och åtlöje).
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46978
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av TomasL »

Ett annat projekt är att anv OBS "gamla moder kort" som mikrokontroller.
Det blir en fruktansvärt dålig mikrokontroller, då x86/PC är fruktansvärt dåliga på att hantera IO (de är liksom inte konstruerade för detta)

I övrigt läs Sodjans sista rad/stycke härovan, och begrunda det.
Bios kräver nog nästan ROM i någon form(kanske därför jag gillar MS-dos).
Vad har MS-DOS med BIOS att göra?
Tex DOS eller linux i (e(e)p)ROM
Varför skulle man göra det, det blir ju bara betydligt sämre och långsammare.
Efter man stängt av finns all info kvar, till nästa uppstart. Inget nytt behöver laddas.
Tja, moderna datorer sparar ju ned en image på disk, så man inte behöver initiera om OSet vid nästa uppstart.

Även om det sparades i (EE)PROM, så måste ju fortfarande processorn ladda det.
Med tanke på hur snabba dagens diskar är, så är det i princip ingen förtjänst att ha det (EE)prommat.
Användarvisningsbild
maDa
Inlägg: 4080
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av maDa »

Tycker inte riktigt man kan jämföra en x86 PC i dessa sammanhang över huvudtaget. Det är hur många steg mellan faktisk spänningsättning och du startar ditt program efter eget tycke.

Men det är klart, vill man bara riktigt hardcore och ens tid inte är värd så mycket, kan man roa sig med att göra ett "eget BIOS" med sin applikation direkt. Man kan nog hitta det mesta man behöver hos CoreBoot-projektet:
http://www.coreboot.org/Welcome_to_coreboot

Men att försöka skriva "generell" assemblerkod är poänglöst.
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

sodjan: "Du kommer aldrig all kunda skriva om historien." Det är inte mitt mål att försöka. Men jag hoppas på att den anpassar sig efter mig. "jag är nog före min tid". Och behovet finns (vi är minst 2) jag kan bara hoppas på att tillv hör min bön.... Och detta gäller PC, blanda inte in mina önskningar på mikrokontrollers.

TomasL: Gamla moderkort är inte bra, de är gratis. Jämför det med de dyraste utv plattformana... Om bios och dos låg i samma (e,ee)PROM skulle datorn tex kunna köra dir på enhet utan command.com m.m. Att det inte är så idag vet jag. Men jag saknar det. Varför sämre och långsammare? Tanken är inte att slopa RAM helt. Vidare. Hur mycket minne har din CPU? Mina laddar inget. De kör. Eller rättare sagt laddar från hårddisk till ram. Och kör sen i ram. Jag vill att en stor del hannar på EEPROM, Som jobbar snabbt och kan ändras. Gärna med hårdvarulås, så virus inte kan härja. Jmf EEPROM bios, där bygling krävs för att ändra.. Och även detta gäller PC, blanda inte in mina önskningar på mikrokontrollers.

maDa: Kom på att jag inte måste skriva om bios. Gammalt moderkort som mikrokontroller går ändå. Och man kan skriva i BASIC hurra(pik till...). Med en autoboot enhet(diskdrive cd dvd hårddisk). Jag har redan en dator med bara 2 cd-rom. Den bootar och startar dos. Och med dos program kan jag utforska andra cd. Kolla film, lyssna på musik m.m. Bara RAM är skrivbart i denna dator.
Är det bortslösad tid, eller lärorikt? Skulle egen bios bli ett bra examens projekt?
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

maDa: Kan man med verktyget flashrom Skriva vad vad vill i bios? Jag har ett moderkort med EEPROM bios i sockel. Det går att hotswappa bios. Men mitt biosflashprogram, har checksum kontroll. Och jag kan inte skriva vad jag vill. Är det nån som tolkar ovan som en EEPROM programmerare ;-) ?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av jesse »

1802: Jag har inte orkat läsa hela tråden, men om du vill köra program i RAM så finns det en orsak till att du vill det kanske?
En orsak kan vara att du vill kunna ladda in ett nytt program för varje uppgift du vill utföra, och kunna byta program när du vill, med ett kommando?

Detta kan du göra med en vanlig 8-bitars AVR. Fast du laddar programmet i flashminnet istället. AVR har uppdelat flashminnet i två sektioner. En som kallas "bootsektor", där du alltså kan lägga ditt "OS" eller BIOS. Det kan i sin tur hämta valfritt program från ett externt minne, t.ex. SD-kort eller vad du vill, och ladda ner i den andra minnesarean i flash som jag tror kallas "applikations area" eller liknande. Det enda som krävs är att du antingen via mjukvara i applikationerna kan återgå till BIOS när programmet kört färdigt (eller när du "avslutar") eller att du genom externt interrupt eller t.o.m. reset återgår till ditt OS. Det kan fungera hyfsat smidigt. Enda nackdelen är kanske att bootsektorn inte går att göra hur stor som helst - den är ju avsedd mest för enkel laddning av enstaka program - inte för att fylla med ett helt OS.

Om du däremot vill köra flera program samtidigt i olika trådar så får du överväga att använda ett RTOS (real time OS), och då är det nog smidigast att du använder en 32-bitars processor.
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

jesse: Du har missat lite genom att inte läsa hela tråden. Jag har motvilligt accepterat att AVR har uselt med ram. Att skilja på mina önskningar om PC och AVR i allmänhet. Följade avser AVR. Vad hindrar att "bootsektor" (den kan ju proggas att göra mer än boota) inte fyller hela flashminnet? Tänkte slopa SD så länge minnet räcker, annars SD. SD kan bli smidigt. Man formaterar SD. Lägger in flera olika .hex. Ger den .hex rätt namn och kör. När man skall byta program, så ger man .hex rätt namn med en PC, handator eller dyl. Utan OS, men med rutin i "bootsektor" som kan boota/autostarta från SD. Eller om man har många SD, ett till varje apl. Hittade detta i min textfil om apl "1Data logger. 2Läsa SD eller dyl och självprogrammera sig. Flera progg på SD "meny: avsluta och kör nästa" Läs ir och agera, 3Läs BT och agera. 4Styta plotter mfl. 5 Robot". Men får alt plats, blir det inget SD.
Användarvisningsbild
säter
Inlägg: 35304
Blev medlem: 22 februari 2009, 21:16:35
Ort: Säter

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av säter »

1802 skrev:Och med dos program kan jag Kolla film m.m.
Vad använder du för DOSapplikation när du kollar på film?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av sodjan »

> jesse: Du har missat lite genom att inte läsa hela tråden.

Gränsande till "ingenting", kan man nog säga. :-)

> Jag har motvilligt accepterat att AVR har uselt med ram.

De har exakt rätt mängd med RAM.

> Följade avser AVR....

Mest förvirrat. Sannolikt p.g.a bristande kunskap om ämnet.
Svårt att över huvudtaget kommentera det.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av jesse »

Ta t.ex. ATmega2560 som har det största flashminnet (256k) för 8 bitars mega-AVR. Jag tror inte att den kan skriva i flashminnet i samma sektor som den exekverar i - därför har den två sektorer - en för "bootloader" och en för "applikation". Och det går bara att välja en viss storlek på bootloader-sektorn, max 8kb.
Application and Boot Loader Flash Sections
The Flash memory is organized in two main sections, the Application section and the Boot Loader section. The size of the different sections is configured by the BOOTSZ Fuses. These two sections can have different level of protection since they have different sets of Lock bits.
Läs gärna mer detaljer om detta här: ATmega2560 datablad.
sidan 317:
29.2 Application and Boot Loader Flash Sections
29.3 Read-While-Write and No Read-While-Write Flash Sections

sidan 322:
29.5 Addressing the Flash During Self-Programming
29.6 Self-Programming the Flash
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

säter: qv quick view. Det är dock inte så bra. Grafikkortet kör bara i vga. Och det tar inte alla filmer. Tar en del bilder också. Men det finns säkert mycket bättre dos progg. Jag kör det mest som "bevis att det går". Jag har ingen mp3 spelare, men förutsätter att det finns nått.

sodjan: Det där gav ju inget. Men jag tar det, för du skriver en del matnyttigt.
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

jesse: Ett exempel [img]Memory%20Map%20Small.jpg%20(JPEG-bild,%20612 × 348%20pixlar)[/img] Som jag ser det så är det samma flashminne. I värsta fall kan man mata det i 2 steg. För "bootloadern" kan ju avslutas med ett hopp. Hmmm det kanske det är det man gör normalt. Hur når man "bootloader" delen när man kör sitt program? Ligger den och myser sist i flash?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av sodjan »

> Hur når man "bootloader" delen när man kör sitt program?

Vad menar du med "når" ?
För att köra: reset.
Sen kan det kanske läsas av egen kod också...
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av jesse »

>Hur når man "bootloader" delen när man kör sitt program?
t.ex. genom jump (adress), call (adress). Läsa av innehållet går antagligen med LPM (load from program memory), beroende på om det är skyddat eller inte.
1802
Inlägg: 6835
Blev medlem: 6 februari 2009, 13:52:28

Re: Var är det lämpligt att diskutera .asm kod?

Inlägg av 1802 »

Jag frågade "Ligger den och myser sist i flash ROM?". Jag tolkar det som att den gör det. Den har nog en fast startadress. Ligger då begränsningen att $ffff är sista adressen? Och är det skrivit i ROM att den startar just där?
Skriv svar