MPLAB C30 a smerniky na funkcie

andrej jancura hw_aj@zoznam.sk
Pátek Červen 15 23:35:34 CEST 2007


Ahoj,
 
> >Pokud vim, handle je ukazatel na ukazatel. Jaky efekt potrebujete 
> >pomoci ukazatele na funkci docilit? Neda se to udelat i jinak?
> >
> >  
> >
> Potrebujem vsetky poznat 3 bajty adresy, nic viac. Plnia sa potom do 
> zasobnika. Neviem ako sa k nim dostat.

Teda pravdu povediac, 3 byty nie su 4 byty, a potom ako to ma ten kompilator
vediet, to by musel mat specialny typ na pointer 24 bitov... A to je ten
filozoficky problem, on ma len 16bitov.

Na zaciatok by som jednoducho napisal kod v asm, nieco ako

movlw upper(Adresa)
push
movlw high(Adresa)
push
movlw low(Adresa)
push

> S tym co odporuca microchip je to zhruba tak, ze sa vytvori pole 
> "handlerov" v spodnej casti pamati. Fakticky su to gota na funkcie, lebo 
> goto obsahuje kompletnu adresu. Mozno by sa to dalo nejako pouzit, ale 
> nie je mi jasne ako to zadeklarovat.

Isty nemenovany kompilator C pre PIC to na predpotopnych PIC-och robil
rovnako, vygeneroval tabulku s goto na funkciu. Kod v C bol standardny,
funkcia sa volala tusim nasledovne

p_funkcia = funkcia;
*p_funkcia();

Ako to presne je, to by som musel pohladat vo svojich tips&tricks...

A.

p.s. ja by som si stiahol demo toho isteho nemenovaneho kompilatora a pozrel
 ako volanie funkcii riesi on, pripadne ako sa deklaruje pole funkcii v C.
Ale to co potrebujes Ty pojde urcite vyriesit cez asm.



--- reklama -----------------------------------------------------
Ako si píše každý druhý človek na Slovensku?
Cez Zoznam ICQ - http://icq.zoznam.sk/



Další informace o konferenci Hw-list