Enchippare med enkelt operativ mot RS-232 terminal
Re: Enchippare med enkelt operativ mot RS-232 terminal
> Tex självmodifierande kod i AVR RAM skall inte funka enl de flesta här.
Nej, inte "enligt de flesta här".
Enligt de tekniska realiteterna, om du förstår vad det är.
Nej, inte "enligt de flesta här".
Enligt de tekniska realiteterna, om du förstår vad det är.
Re: Enchippare med enkelt operativ mot rs-232 terminal
Varför måste du modifiera och starta dem från tiny basic? Är det inte enklare att både skriva och starta direkt i assembler. Eller om det gäller en Arduino kanske det enklaste är att skriva i Arduinos eget utvecklingsverktyg. Det kompileras ju till assembler innan du laddar ner programmet i Arduino.1802 skrev: Jag skall inte skriva program i tiny basic. Programmen skrivs i assembler. De skall bara modifieras och startas från tiny basic.
EDIT: Glöm det jag skrev. Jag glömde bort att du skulle ha ett "mindre" OS. Enda sättet att få något "exekverbart" i RAM är att göra en tolk (typ Tiny Basic) så den får exekvera programmet. Det blir dock långsamt och du kan inte konvertera det till assembler eftersom assembler fortfarande inte kan köras från RAM.
Re: Enchippare med enkelt operativ mot RS-232 terminal
sodjan: kommentera "det är givetvis _BASIC_ koden som ligger i RAM,".
Kaggen: Jag skriver grunden i AVRstudio. Inkl tiny basic delen(klipp/klistra). Endast mindre modifieringar via tiny basic(eller dyl). Och det blir mer än ett progg i samma AVR. Om i/o pinnarna räcker till, så bli det även byglingsstyrt, vilket progg som startar.
Om jag skrivit "1803"(text data) i AVR EEPROM och vill ändra till "1802". Är det möjligt utan yttre enheter?
Kaggen: Jag skriver grunden i AVRstudio. Inkl tiny basic delen(klipp/klistra). Endast mindre modifieringar via tiny basic(eller dyl). Och det blir mer än ett progg i samma AVR. Om i/o pinnarna räcker till, så bli det även byglingsstyrt, vilket progg som startar.
Om jag skrivit "1803"(text data) i AVR EEPROM och vill ändra till "1802". Är det möjligt utan yttre enheter?
Re: Enchippare med enkelt operativ mot RS-232 terminal
Det beror på hur du menar.
Om du menar att du vill kunna ändra det från ett tiny basic program måste du koda in kommandon för det i tiny basic. Kanske t.ex. EEPROM_Read och EEPROM_Write. Du kan även göra detsamma i Flash. Det betyder alltså att du måste in i koden för tiny basic och lägga till dessa funktioner själv i basic tolken. Annars måste du programmera om kretsen med hjälp av programmerare eller via bootloader.
Om du menar att du vill kunna ändra det från ett tiny basic program måste du koda in kommandon för det i tiny basic. Kanske t.ex. EEPROM_Read och EEPROM_Write. Du kan även göra detsamma i Flash. Det betyder alltså att du måste in i koden för tiny basic och lägga till dessa funktioner själv i basic tolken. Annars måste du programmera om kretsen med hjälp av programmerare eller via bootloader.
Re: Enchippare med enkelt operativ mot RS-232 terminal
Kaggen: hmmm PEEK finns, men inte POKE. Vad läser PEEK? Alla 3 minnen? Läsa borde vara en baggis, men skriva (POKE) är nog värre. Och kanske därför den saknas i tiny basic. Att ändra EEPROM med AVR assembler är också intressant, om det går. Men kan tiny basic, så måste ju assembler också kunna.
Re: Enchippare med enkelt operativ mot RS-232 terminal
Ingen aning om vad PEEK läser för minnen. En gissning är RAM, men manualen till Tiny Basic borde förtydliga. Det kan ju vara möjligt att tiny basic innehåller kommandon redan för att läsa / skriva till EEPROM och Flash. Det är dock inget jag vet. Om inte så får du hacka tiny basic själv och lägga till dom kommandona. Du har väl källkoden till tiny basic? Jag antar den är öppen?
Jag antar tiny basic är skriven i processing/C (Arduinos eget utvecklingsspråk)? Jag tror det finns bibliotek för Arduino som läser skriver EEPROM/Flash. Du kan ju använda dessa om du hackar tiny basic själv.
Jag antar tiny basic är skriven i processing/C (Arduinos eget utvecklingsspråk)? Jag tror det finns bibliotek för Arduino som läser skriver EEPROM/Flash. Du kan ju använda dessa om du hackar tiny basic själv.
Re: Enchippare med enkelt operativ mot RS-232 terminal
> sodjan: kommentera "det är givetvis _BASIC_ koden som ligger i RAM,".
Varför? Vad ska kommenteras?
Varför? Vad ska kommenteras?
Re: Enchippare med enkelt operativ mot RS-232 terminal
1802: PEEK läser den minnesadress som anges. Om det är RAM, ROM eller EEPROM får den som skriver in adressen veta! MEN: ni har jag inte lust att sitta o tråkla igenom databladet til en AVR men jag är ganska säker på att dess EEPROM fungerar på samma sätt som på PIC: det finns ett register där man skriver in vilken EEPROM-adress man vill jobba mot (det blir alltså en POKE till det register med den önskade adress), sedan ska man "flippa" READ-biten (ytterligare en POKE) och sedan läsa resultatregistret (med PEEK).
På AVR är det väl specifika "läsa från ROM"-kommandon för att få det hela till att fungera med att läsa från programminnet, ganska likt det som finns på PIC. Alltså är man inte hjälpt en skvatt med PEEK & POKE. Samtidig kan man göra dessa saker direkt från programmet man ändå ska lägga in så jag har mycket svårt att fatta vad du yrar runt för.
Du vill ha en terminalfunktion "i fält"? OK, det går att fixa. Du vill kunde skriva program "i fält"? OK, det kan göras. Men vad tusan är så besvärligt? För att skriva program måste du ha tangentbord samt terminal i någon form - och allt finns ändå i en PC. Alltså är det väl lika bra att se till att ha ett ICSP-don samt fungerande verktyg till detta och sedan ha kretskort med ICSP-kontakt på, då kan du göra program "i fält", lägga in dom och köra direkt.
Fördelen är även att en laptop brukar ha en viss drifttid på en laddning, något som knappast sker med en terminal från 1800-talet.
Vill du göra något verkligen smart kan du ju göra ett program (BIOS/OS) som innehåller färdiga funktioner och sedan kunde editera ihop dessa funktionsblock och ställa värden, alltså som interpeterat BASIC men med riktiga funktioner av värde.
På AVR är det väl specifika "läsa från ROM"-kommandon för att få det hela till att fungera med att läsa från programminnet, ganska likt det som finns på PIC. Alltså är man inte hjälpt en skvatt med PEEK & POKE. Samtidig kan man göra dessa saker direkt från programmet man ändå ska lägga in så jag har mycket svårt att fatta vad du yrar runt för.
Du vill ha en terminalfunktion "i fält"? OK, det går att fixa. Du vill kunde skriva program "i fält"? OK, det kan göras. Men vad tusan är så besvärligt? För att skriva program måste du ha tangentbord samt terminal i någon form - och allt finns ändå i en PC. Alltså är det väl lika bra att se till att ha ett ICSP-don samt fungerande verktyg till detta och sedan ha kretskort med ICSP-kontakt på, då kan du göra program "i fält", lägga in dom och köra direkt.
Fördelen är även att en laptop brukar ha en viss drifttid på en laddning, något som knappast sker med en terminal från 1800-talet.
Vill du göra något verkligen smart kan du ju göra ett program (BIOS/OS) som innehåller färdiga funktioner och sedan kunde editera ihop dessa funktionsblock och ställa värden, alltså som interpeterat BASIC men med riktiga funktioner av värde.
Re: Enchippare med enkelt operativ mot RS-232 terminal
Icecap: Om "teminalen" råkar vara en handdator. Eller en mobiltelefon (BT). Var inne på att hacka bootloadern. Din beskrivning av intern EEPROM programmering hjälper mycket. Men var gör man med data? Vad heter registret(på pic språk går bra)? Kan du det i pic assembler så förstår jag (nästan) det. Och att kolla med "PEEK" i slutet känns onödigt. Min gissning sätt data, sätt adress, progga/flippa så det fastnar. Det sista hoppas jag att nån annan gör, så jag kan vara en slö anv
. Tiny basic är bara den bästa hittills.

Re: Enchippare med enkelt operativ mot RS-232 terminal
Du kommer aldrig åt bootloadern i dessa, eftersom de är permanent skriv/läs-skyddade.råkar vara en handdator. Eller en mobiltelefon (BT). Var inne på att hacka bootloadern.
Som sagt, Gör som IceCap säger, läs, återkom när du begriper hur saker fungerar.
Re: Enchippare med enkelt operativ mot RS-232 terminal
Vad man gör med datan? Men hallå, är det inte DU som vill åt dom? Själv använder jag dom för att spara värden som kan ändras men som ska vara kvar till nästa start.
Registernas namn står i databladet, läs det! Ja, jag vet att du inte gör det ändå - och det är nog därför du är så långt borta från verkligheten.
Med tanke på hur djupt okunnig du är om hur en µC fungerar kan jag bara gapskratta åt "Var inne på att hacka bootloadern"! Och vad skulle du uppnå? Bricka en mobil? Men låt säga att du lyckas skapa en app som fungerar som terminal (redan det är ljusår borta), anser du att du vill skriva program på en mobil? Allvarligt: är det annat än att blinka en LED eller två kommer det att vara så fanatisk besvärligt att det bara är att glömma. Och blinka LED kan du lägga in hemifrån...
Registernas namn står i databladet, läs det! Ja, jag vet att du inte gör det ändå - och det är nog därför du är så långt borta från verkligheten.
Med tanke på hur djupt okunnig du är om hur en µC fungerar kan jag bara gapskratta åt "Var inne på att hacka bootloadern"! Och vad skulle du uppnå? Bricka en mobil? Men låt säga att du lyckas skapa en app som fungerar som terminal (redan det är ljusår borta), anser du att du vill skriva program på en mobil? Allvarligt: är det annat än att blinka en LED eller två kommer det att vara så fanatisk besvärligt att det bara är att glömma. Och blinka LED kan du lägga in hemifrån...
Re: Enchippare med enkelt operativ mot RS-232 terminal
Jag har gjort en stor miss. Det är flash minnet och inte EEPROM som jag menar i de sista inläggen. Men principen borde vara samma. Sätt data, sätt adress, progga/flippa så det fastnar. Ingen bra ursäkt, men är inte flash rom elektriskt raderbart/skrivbart? Verkar som man bara kan skriva en page åt gången
. Hur stor är en page?

Re: Enchippare med enkelt operativ mot RS-232 terminal
Man skriver en byte/word åt gången (beror på strukturen), det är raderingen som tar en hel bank åt gången. Och som alltid: Det står i databladet!!!
Re: Enchippare med enkelt operativ mot RS-232 terminal
Icecap:"det finns ett register där man skriver in vilken EEPROM-adress man vill jobba mot (det blir alltså en POKE till det register med den önskade adress), sedan ska man "flippa" READ-biten (ytterligare en POKE) och sedan läsa resultatregistret (med PEEK)." Var skall jag lägga data? Den måste ju veta vad jag vill progga in. Jag vill inte åt data. Jag vill progga in data. Vidare om jag kollar hur bootloadern jobbar, ser jag hur den flashar, och kan göra lika dant. Mobiltelefon som terminal via BT kanske inte finns färdigt. Tänkte inte på att "lat mans BT" kräver ser in. Men via ir borde finnas. Typ ir sändaren till min Ebadge, fast innbyggt i mobilen.
TomasL: Skulle inte bootloadern finnas tillgänglig på nätet? Som källkod i C? Permanent skriven i flash hmmm..... Ditt påstående lutar att bootloadern skulle ligga i PRROM, och inte kunna bytas. Jag tror det har nått med FUSE att göra. Pillrar man med det så går det att skriva över bootloadern. Jag lyckades att pajja FUSE eller dyl med Flip 3.4.5
. thepirateboy skulle kolla med atmel hur det gick till. thepirateboy Det enda jag gjorde var att ändra en "pause parameter" i ett LED blink progg.
TomasL: Skulle inte bootloadern finnas tillgänglig på nätet? Som källkod i C? Permanent skriven i flash hmmm..... Ditt påstående lutar att bootloadern skulle ligga i PRROM, och inte kunna bytas. Jag tror det har nått med FUSE att göra. Pillrar man med det så går det att skriva över bootloadern. Jag lyckades att pajja FUSE eller dyl med Flip 3.4.5
