Sida 3 av 3
Postat: 9 juni 2005, 13:30:18
av macgyver
självklart, ska bara snygga till den lite och testa att den fungerar som tänkt
HEX avkodningen kan ARM:en sköta
det enklaste sättet som jag har testat är att överföra .HEX filer via COM-porten är att skriva i cmd-prompten:
t.ex. MODE COM1:38400,n,8,1 sätter COM1 till 38400bps, ingen paritet, 8-databitar, 1 stopbit
sen skriver man bara COPY FIL.HEX >COM1 så skickas filen till COM1
dessa kan man sen lägga in i en .BAT fil med argument för t.ex bps och filnamn
då slipper man ju skriva ett eget program, eller använda nåt terminalprogram
Postat: 9 juni 2005, 13:59:44
av Schnegelwerfer
Det där var ett jäkligt bra tips!
Fungerar det även i XP/W2K?
Postat: 9 juni 2005, 14:45:46
av strombom
Det var smart!
Tyvärr vet jag inte hur en HEX-fil är uppbyggd, men jag antar att det i början på varje rad står en adress följt av själva datan i HEX-format ?
Har du tänkt att ha en bootloader som ligger i flashen permanent sen? Eller bara en i SRAM:et, det jobbiga med det är ju att man måste skicka över den varje gång man ska programmera, jag gillar inte att använda OCD Commander hela tiden...
/Johan
Postat: 9 juni 2005, 17:46:12
av macgyver
Japp det fungerar i XP iaf, med Win2000 har jag inte testat men det borde det göra
jag kom på att jag hade kod för att ta emot och spara hexfiler, använde den i ett mp3spelarbygge med en DS89C420 controller.
min student www sida funkar inte just nu så jag lägger den på min ftp sålänge
ftp://modermodemet.mine.nu/hex_download.c
Har du tänkt att ha en bootloader som ligger i flashen permanent sen?
precis, ett program som ligger i flashminnet som använder COM-porten för att ladda program till SRAM:et, och kunna utföra enkla debug funktioner via en textterminal, t.ex. dumpa minne och register, styra I/O enheter osv
Postat: 9 juni 2005, 17:51:13
av strombom
den koden var väldigt kort och fin, trodde det skulle vara krångligare...
har du tänkt att kompilera alla dina program med en startadress på typ 0x00000500 eller liknande sen eller lägger du bootloadern längst bak i minnet?
hur ska bootloadern aktiveras? genom en i/o pinne vid reset?
/Johan
Postat: 9 juni 2005, 20:37:09
av macgyver
jag hade tänkt lägga bootloadern på adress 0 så att den alltid startar vid power-up, med den ska man kunna
-- ladda .HEX filer som antingen kan läggas i flashminnet eller ramminnet
-- starta appkationer (via konsolen) i flash och ramminnet
-- debuga
interruptvektorerna hamnar ju då i början på bootloadern, men de kan man ju sätta jumps på som hoppar till RAM-adresser i slutet på ramminnet där de sedan kan dirigeras vidare
jag har börjat skriva på en bootloader, som än så länge bara kan köras från RAM-minnet med OCD_commander
ftp://modermodemet.mine.nu/ARM.rar
du kan testa den om du vill, bara att köra "make all" och ladda in main.elf till kortet med OCD_commander, koppla in RS232 kabeln till com1, (programmet anväder USART0 i ARM:en")
lade med ett enkelt terminalprogram comd, man skriver "comd -b38400" för 38400bps. Det enda bootloadern klarar nu är att dumpa minne
edit: glömde att skriva att kristallfrekvensen får ställas in i main.c filen också
[/url]
Postat: 9 juni 2005, 20:58:13
av strombom
tyvärr har jag bara com 5 och com 6 på denna konstiga dator
men det var kul att se din kod!
/Johan
Postat: 9 juni 2005, 21:03:31
av Hedis
Det skall ju inte spela någon roll vilket nr porten har på din Pc om du kör ett terminalprogram. Det enda viktiga är ju att det är USART0 på ARM:en.
Edit: Glöm allt jag skrev.....
Såg nu att det var ett program för pc-sidan med i filen......
Postat: 9 juni 2005, 21:05:14
av strombom
jag tänkte mest på terminalprogrammet han skickade med.
men du har rätt Hedis, jag kan testa med ett vanligt terminalprogram... enligt koden borde den skriva ut macgyvers namn, jag har nog något strul för jag får inte riktigt igång det, ska kolla vidare.
/Johan