In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden. U kunt dit programma gratis downloaden.
Download de Flash Programmer software |
Flash Programmer
voor Elektuur Single Board Computer
Albert van der Horst
In december 2001 verscheen in Elektuur een beschrijving met print van een single board computer met een Atmel 89s8252. Hierbij hoort een softwarepakket om te programmeren in assembler en BASIC dat door Elektuur ter beschikking wordt gesteld. Helaas vallen daarmee Linux-gebruikers uit de boot omdat deze software voor MS-Windows bestemd is. Leden van de HCC Forth gg hebben nu een flashprogramma geschreven waarmee althans programma's vanuit Linux in het board geladen kunnen worden.
Gebruiksaanwijzing
Allereerst moet U de zip file elflash.zip downloaden
en uitpakken met unzip. U heeft dan de files
isp-el.frt : de source isp-el : het programma isp-el.1 : de man page. COPYING : copyright. flash1.bin : test programma flash.bas : basic test programma .minirc.dfl : configuratie file voor minicom
Het gebruik van het programma is simpel :
- Verbind het Elektuurboard met een rechtdoor D9-kabel van COM2 naar connector K2 op het board. (Voor details zie het Elektuurartikel.)
- Geef het commando (als user root)
isp-el <bestandsnaam>
Afhankelijk van de extensie .bin of .hex wordt het bestand als binaire file of Intel-hex geinterpreteerd.
Het is niet gewenst om telkens in te loggen als root en dat is ook niet nodig als U het programma officieel installeert. Dit kan door commando's te laten voorafgaan door sudo waarbij U tijdelijk root-bevoegdheid krijgt als U het juiste wachtwoord invoert.
Dat gaat als volgt:
- kopieer het programma naar een directory in het PATH , bijvoorbeeld :
sudo cp isp-el /usr/bin
- maak het programma setuid root :
sudo chown root /usr/bin/isp-el sudo chmod +s /usr/bin/isp-el
- kopieer het man-bestand isp-el.1 naar een directory in het MANPATH , bijvoorbeeld :
sudo cp isp-el.1 /usr/man/man1
De gebruiksaanwijzing leest u met
man ./isp-el
of na installatie gewoon met
man isp-el
De source wordt meegeleverd. Dit is namelijk een Open Source programma met een GPL copyright. Zie voor detail de file COPYING. De source heeft U echter voor normaal gebruik niet nodig. Het geeft U wel de mogelijkheid fouten uit het programma te halen en uitbreidingen te maken. Als U het verbeterde programma verspreidt, en ALLEEN DAN, bent U verplicht ook de verbeterde source mee te verspreiden. Verder zijn er geen beperkingen, ook niet voor commercieel gebruik, of het opnemen van het programma in distributies.
Een simpele test kan gedaan worden met het door Elektuur meegeleverde programmaatje
flash1.bin
dat voor het gemak hier ook bij zit. Het is het gemakkelijkst als U een LED aansluit op pin 2 van K4 met een weerstand van 1 K naar de plus (op K5). Na het laden van
flash1.bin
moet deze LED knipperen. Met een voltmeter gaat het ook wel, maar dan kunt U beter pin 7 nemen.
Extra faciliteiten
De optie
-r
kan gebruikt worden om het board te resetten. Indien gewenst kan de seriële poort worden opgegeven met de optie
-c
(als COM1 of COM2), bijvoorbeeld -c 1 voor COM1. Met de optie
-a
geef je het adres van de seriële poort als adres, bijvoorbeeld -a 3E8 (let op: gebruik hoofdletters voor het hex adres!)
Dit programma is beter geschikt dan het met Elektuur geleverde programma om moeilijkheden met hardware en aansluitingen het hoofd te bieden:
De -t optie helpt U bij het line voor lijn controleren van de uitvoer naar het board. Het detecteert een niet aangesloten board. Het heeft een ingebouwde verify; het geeft altijd een foutmelding als het flashen mislukt. Het is bestand tegen soft errors. Een incidentele schrijffout wordt gecorrigeerd.
Vooral de ingebouwde verify is prettig. Het betekent dat het programma er gegarandeerd in staat, als U geen foutmeldingen krijgt.
Dit programma is geschreven in Forth. Dat wil zeggen dat U alles wat dit programma kan, en meer, ook interactief kunt uitvoeren. Hiervoor moet U een Forth omgeving opstarten (wel met root privilege) en de meegeleverde source inladen. De Forth omgeving (ciforth) waar dit programma voor geschreven is, kunt U downloaden via de ciforth pagina
Er zijn commando's voor het wissen van de flash EPROM, voor het verifiëren, voor het teruglezen en in een file zetten van de flash EPROM etc. In de source kunt U zien wat elk commando doet. Enige Forth kennis is dan wel gewenst.
Gebruik van BASIC
De door Elektuur meegeleverde BASIC (basic52.bin) kan natuurlijk ook geüpload worden in het board. Maar dan? Het blijkt dat het minicom programma dat in de meeste distributies zit, gebruikt kan worden om met de BASIC te communiceren en BASIC programma's naar het board versturen.
minicom
vertoont veel gelijkenis met het aloude
procomm
en ik vind het prettig te gebruiken. Een werkende configuratie file is meegeleverd. Deze dient naar Uw home directory gekopieerd te worden en wordt dan automatisch gelezen.
Na opstarten van minicom kan het zijn dat er nog geen contact is. Reset het Elektuur board en stuur spaties. Soms moet U het nog eens proberen. Het opsturen van BASIC files moet - uiteraard - met een ASCII upload. Nu kunt U
flash.bas
uploaden. Als U de LED heeft aangesloten moet die nu ook weer knipperen. Anders kunt U weer een volt meter gebruiken, maar nu is de pin 2 van K4 het beste om het goed te zien.
Helaas is de help file van BASIC52 (AH-BASIC-HLP) niet te begrijpen voor Linux. Overigens kunnen ook niet alle Windows versies er mee overweg, in ieder geval niet het aloude Windows 3.11.