Jag testade att lägga de sakerna efter look.up tabellen, och då går det bra. Så det kan nog vara att den hamnade i en sån "skarv" på XX00.
Tack!
Mvh
variabel utan ström
*ler* Ja, gäller att läsa datablad när man kör ASM.... Jag har till dessa småttingar skaffat mig en debugger... Gissa om den har varit till glädje vid tillfällen då hjärnan inte varit med riktigt...

http://se.farnell.com/4300830/semicondu ... P-AC162050

http://se.farnell.com/4300830/semicondu ... P-AC162050
Du får en .MAP fil under två förutsättningar :
1. Du skriver kod i "relocatable mode", d.v.s använder ett "Linker Script".
2. Du har *bett* om en MAP fil i Setup för MPLINK i Project->Options->någonstans...
*DÅ* får du en MAP fil i din projekt katalog.
SJÄLVKLART så hjälper det inte att bara bygga om projektet 100 gånger...
Jag hade på känn att det var ett table-lookup problem. Detta kan lösas på två sätt:
(1) Du "fryser" tabellen inom en och samma 256 byte area i ett CODE segment med en hårdkodad adress.
(2) Du ändrar koden i lookup-subrutinen så att den tar hänsyn till eventuella page-gränser. Då kan tabellen ligga var som helst.
Nackdelen med (1) är en lite mer "stel" minnesallokering. Men det går att komma runt genom att
dela upp resten av koden i flera mindre CODE segment. Då kommer MPLINK att snyggt och prydligt
sprida ut resten av koden runt din tabell. Samtidigt får du även en snygg tabell i MAP filen där
du direkt ser hur stora dina olika delar av koden är. Mycket användbart, eller i alla fall intressant.
Nackdelen med (2) är att varje "lookup" tar lite längre tid.
Du väljer vad som är optimalt i just ditt fall.
1. Du skriver kod i "relocatable mode", d.v.s använder ett "Linker Script".
2. Du har *bett* om en MAP fil i Setup för MPLINK i Project->Options->någonstans...
*DÅ* får du en MAP fil i din projekt katalog.
SJÄLVKLART så hjälper det inte att bara bygga om projektet 100 gånger...

Jag hade på känn att det var ett table-lookup problem. Detta kan lösas på två sätt:
(1) Du "fryser" tabellen inom en och samma 256 byte area i ett CODE segment med en hårdkodad adress.
(2) Du ändrar koden i lookup-subrutinen så att den tar hänsyn till eventuella page-gränser. Då kan tabellen ligga var som helst.
Nackdelen med (1) är en lite mer "stel" minnesallokering. Men det går att komma runt genom att
dela upp resten av koden i flera mindre CODE segment. Då kommer MPLINK att snyggt och prydligt
sprida ut resten av koden runt din tabell. Samtidigt får du även en snygg tabell i MAP filen där
du direkt ser hur stora dina olika delar av koden är. Mycket användbart, eller i alla fall intressant.
Nackdelen med (2) är att varje "lookup" tar lite längre tid.
Du väljer vad som är optimalt i just ditt fall.
"1. Du skriver kod i "relocatable mode", d.v.s använder ett "Linker Script". "
Ahh.. Där ligger felet då. Det är väll lika bra att göra om det till relocateble mode.
100ggr byggde jag inte om, bara en gång sen testade jag att clear'a..
Får nog ta och läsa på lite mera ang. de två alternativen till look-up tabellen.
Tack för all hjälp!
Ahh.. Där ligger felet då. Det är väll lika bra att göra om det till relocateble mode.
100ggr byggde jag inte om, bara en gång sen testade jag att clear'a..

Får nog ta och läsa på lite mera ang. de två alternativen till look-up tabellen.
Tack för all hjälp!
Den finns en app.note hos Microchip om lookup tabeller.
Speciellt över page-gränser. Det är bra i princip, men kodexemplen
har ett par små buggar...
http://ww1.microchip.com/downloads/en/A ... 00556e.pdf
Speciellt över page-gränser. Det är bra i princip, men kodexemplen
har ett par små buggar...
http://ww1.microchip.com/downloads/en/A ... 00556e.pdf