Sida 1 av 3

Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 19:41:05
av nanopile
Brukar använda en fil där jag markerat alla oanvända celler med en nolla och alla använda med ett x.
Men det finns säkerligen ett bättre sätt som är mer automatiskt?
Någon som vet om något sätt att få de celler man deklarerar till tex exel?

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 19:53:38
av sodjan
> Automatisk export av använda minnesceller till exel?

Från vadå ???

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:00:43
av AndersG
Plocka in MAP-filen i Excel och sortera det som finns under "data"?

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:03:23
av sodjan
Vilken MAP-fil ?
Var står det att det finns en MAP-fil ?

Frågan är vad det igentligen är som nanopile vill göra...

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:13:47
av nanopile
Mitt typiska jag att inte berätta alla detaljer, sorry.
Från MPLAB IDE, där jag sitter och programmerar assembler.

MAP-filer har jag inte gjort några, AndersG, får jag fråga vad det är och vad det används till?
Min är en ren text-fil och ser ut såhär:

---- 1 2 3 4 5 6 7 8 9 A B C D E F
000 0 x x x x x 0 0 x x x x x x 0 0
010 x x x 0 0 0 0 0 0 0 0 0 0 0 0
020 x x x x x x x x x x x x x x x x
030 x x x x x x x x x x x x x x x x
040 x x x x x x x x x x x x x x x x
....
....

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:16:47
av AndersG
Jo, men var börjar du? Du var väl en källkod du kompilerar? Under Build options, fliken MPLINK Linker, finns ett tillval: "Generate MAP file"

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:34:40
av nanopile
Jadå, jag gör källlkod i assemblervariant, ingen C eller C++ över huvud taget.
Har inte brytt mig tidigare om .map filen och nu när jag tittar i den så verkar den inte lista celler utan var individuella rutiner börjar.
Lade ut .map-filen filen här:
http://ottd.dyndns.org/1/nano/random%20 ... 20test.map

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 20:38:04
av Icecap
Men... vad är problemet? Jag får den obehagliga känsla att du faktisk anger startadress på samtliga rutiner du gör vilket ju är djupt osmart men bekräfta gärna att det inte är så.

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 22:06:27
av AndersG
Och hur definierar du dina variabler? Med equ eller res?

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 22:42:22
av sodjan
> Min är en ren text-fil och ser ut såhär:
>
> ---- 1 2 3 4 5 6 7 8 9 A B C D E F
> 000 0 x x x x x 0 0 x x x x x x 0 0
> 010 x x x 0 0 0 0 0 0 0 0 0 0 0 0
> 020 x x x x x x x x x x x x x x x x
> 030 x x x x x x x x x x x x x x x x
> 040 x x x x x x x x x x x x x x x x

Och vad exakt är det där ? Vad betyder
siffrorna och vad betyder "x" resp "0" ?
Och varför behöver du det där ? Till vad ?

Notera att det är mycket bättre att du beskriver
vilket *problem* du försöker lösa. Det hela låter
väldigt märkligt...

> Jadå, jag gör källlkod i assemblervariant

Vilken "variant" av assembler ?

Eftersom det saknas referenser till symboler i RAM ("data") i din MAP
fil, så tror jag inte att du allokerar variabler med RES, och i så fall
undrar jag, varför inte ?

Re: Automatisk export av använda minnesceller till exel?

Postat: 14 januari 2009, 23:32:46
av bearing
Jag tror att han helt enkelt vill få en karta över använd RAM, fast istället för den tabellen han visar ska tabellen genereras automatiskt samt enkelt kunna läggas in i Excel.

Om du byter ut alla mellanslag mot tabbar är det bara att klistra in i Excel eller Open Office Calc. (Search -> replace, klistra in ett kopierat tab-tecken i "Replace with-rutan".)

Hm, här försökte jag visa med ett exempel, fast CODE-taggen verkar byta ut tabbar mot mellanslag.

Kod: Markera allt

----	0	1	2	3	4	5	6	7	8	9	A	B	C	D	E	F
000	0	x	x	x	x	x	0	0	x	x	x	x	x	x	0	0
010	x	x	x	0	0	0	0	0	0	0	0	0	0	0	0
020	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x
030	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x
040	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x	x
Tillägg. Både Knudsens C-kompilatorer till PIC och avr-gcc kan ge tabellen över använd RAM automatiskt.

Re: Automatisk export av använda minnesceller till exel?

Postat: 15 januari 2009, 00:18:24
av sodjan
> Jag tror att han helt enkelt vill få en karta över använd RAM

Ja, jag förstår att det är något i den stilen, men till vad ?

Adresserna för variabler är i sig ointressanta och utnyttjat
utrymme syns i MAP filen, inte direkt i procent, men man får
startadress och storlek på varje data segment. I exempel
nedan så är det alltså 5 bytes från h'70' och framåt:

Kod: Markera allt

                                 Section Info
                  Section       Type    Address   Location Size(Bytes)
                ---------  ---------  ---------  ---------  ---------
                      ...
                      ...
                  DLY_VAR      udata   0x000070       data   0x000003
           SCDQ5542Q_VARS      udata   0x000073       data   0x000002
Även alla adresser för varje individuell variabel finns med, om man behöver det.

Re: Automatisk export av använda minnesceller till exel?

Postat: 15 januari 2009, 00:40:10
av bearing
Det är ett överskådligt sätt att se användningen av RAM. Kan vara bra för att finna plats för en så stor array som möjligt, till exempel. MAP-filen ger inte möjlighet till en särskilt bra överblick över RAM-användningen.

Re: Automatisk export av använda minnesceller till exel?

Postat: 15 januari 2009, 07:13:29
av nanopile
Icecap nejdå, bara på ett ställe, visar hur:

Kod: Markera allt

STARTUP CODE 0x0
 goto Start
 nop
 nop
 Call LowPriorityInterupt, 0
 Return, 0
 nop
 nop
 nop
 nop
 nop
 Calll HighPriorityInterupt, 0
 Return, 0

PROG CODE
Start:
Det står inget angivet efter CODE mer än på ett enda ställe i hela koden altså, eller gör CODE något jag inte förstår?

AndersG Med equ, är det någon skillnad att använda res?

sodjan det där är metoden jag använder för att hålla reda på använda och oanvända celler och det är det jag vill göra (hålla koll på tusentals celler så jag inte använder dem till olika saker samtidigt).
x betyder att cellen är använd till något och 0 betyder att cellen är oanvänd.
res använder jag inte för att jag inte visste om det förrän jag läste om res i den här tråden
"Variant" ja, assemblerstil, assemblerformat, ren assembler helt enkelt, ingen spcifik variant annat än möjligen då kod för PIC18F µC, det var ett vilseledande uttryck tyvärr :(
sodjan, hur vet du vilken cell du kan använda utan att du använder en som redan används när du behöver en ny variabel?
Kan tänka mig att det finns bättre sätt än det jag använder, tex: "VariabelX Equ 0xA1"?


bearing helt rätt i att jag vill få en karta eller något som gör att jag kan ha koll på använda och oanvända celler fast det är inget självändamål att ha det i exel, vet av erfarenhet att många program erbjuder möjligheten att skicka data till exel automatiskt, vore ju bra om MPLAB IDE kunde det med.
Skulle vara bra om man kunde göra det på något vis, även om jag skulle få göra en extra rad intill plasen där man deklarerar cellen med equ eller res eller möjligen något annat.

Re: Automatisk export av använda minnesceller till exel?

Postat: 15 januari 2009, 08:53:26
av sodjan
> AndersG Med equ,...

Sluta med det bums.

> ...är det någon skillnad att använda res?

Ja, RTFM (eller online hjälpen i MPLAB). Du får ju en MAP-fil så du kör redan "relocatable"
så det är lite märkligt att du fortfarande använder EQU. Fördelarna med RES har ju
också diskuterats många gånger här på forumet.

> sodjan det där är metoden jag använder för att hålla reda på använda och oanvända celler och det är
> det jag vill göra (hålla koll på tusentals celler så jag inte använder dem till olika saker samtidigt).

Helt onödigt, eftersom MPASM/MPLINK gör det åt dig automatiskt.
Du lägger ner ett väldigt stort och helt onödigt arbete som kan skötas helt automatiskt...

> sodjan, hur vet du vilken cell du kan använda utan att du använder en som redan används när du behöver en ny variabel?

Som sagt, MPASM/MPLINK sköter det automatiskt.

Slut omedelbart med EQU. Det sätter bara värden på symboler, det allokerar *inte* minne (så som RES gör).

> Kan tänka mig att det finns bättre sätt än det jag använder, tex: "VariabelX Equ 0xA1"?

Ja, "VariabelX RES 1". Vilken adress VariabelX hamnar på är ganska ointressant.
Du kan även styra med DATA direktiven vilken bank du vill ha dom i (t.ex ACS eller var-som-helst).