C nebo ASM?

j s jarin.hw@gmail.com
Čtvrtek Květen 21 16:42:21 CEST 2009


Ta premenna je zrejme alokovana v externej pamati, ako Michal HW
hmlisto naznacil. Dedukujem, ze stale pouziva tie PIC, ktore uz
pouziva dlho a stale na nich nachadza rozne "chyby", co su viacnohove
typy, s moznostou externej pamate. Tato pamat je programova pamat, ale
ked si tam date RAM, mozete ju jednoducho pouzivat ako datovu pamat,
pripadne ako externu programovu RAM.
Kompilatory maju vacsinou moznost zabalit premenne do externej pamati
a pointre na ne budu vzdy trojbajtove, pretoze je to jednoducho velky
kus pamati. Pozrite sa, ze tie tri byty sa kopiruju do TBLPTR, co je
ukazovatel programovej pamate a to potvrdzuje domnienku.

Teda p_Ukaz je vlastne pointer do programovej pamate a musi byt aj
adekvatne dlhy.

J.S.



2009/5/21 Jan Waclawek <konfera@efton.sk>:
> No, dobre, ale v uvedenom priklade je ocividne pointer p_Ukaz pouzity vyhradne pre datovu pamat, ze? Tak ako sa v tom Hitechu (ne-PRO) predpisuje pamatova trieda pre pointer resp. jeho ciel? Ze by to teda Michal HW vyskusal, aby sme videli, aky je rozdiel... (PICka nemusim, ale som zvedavy)
>
> wek
>
>
>>24 bitovy pointer do FLASH je prirodzeny pre modely s viac ako
>>64kwords programovej pamate. Samozrejme, pre mensie MCU sa da vypnut,
>>alebo ak clovek vie, co robi, taktiez.
>>
>>J.S.
>>
>>2009/5/21 Andrej Jancura <hw_aj@zoznam.sk>:
>>> Je to nieco podobne... Pointer do flash je 24bitovy, teda 3 byty, dalej tam
>>> ma 12bitovy pointer do ram, 2 byty a este nejake prenosy premennych vacsich
>>> ako 1 byte. Potom sa niet comu divit, ze je to take dlhe. PRO verzia
>>> kompilatora optimalizuje okrem ineho pointre a pracu s nimi.
>>>
>>> A.
>>>
>>>
>>> ----- Original Message -----
>>> From: "Jan Waclawek" <konfera@efton.sk>
>>> To: "HW-news" <hw-list@list.hw.cz>
>>> Sent: Thursday, May 21, 2009 3:45 PM
>>> Subject: Re: C nebo ASM?
>>>
>>>
>>> Neviem ako je to u PICiek, ale trebars u '51 velmi zalezi na konkretne
>>> zvolenom pametovom modeli, resp. na deklarovanych pamatovych triedach pre
>>> jednotlive premenne.
>>>
>>> Napriklad ak je pouzity "generic" pointer, ktory moze ukazovat do
>>> ktorejkolvek z pamati, tak jednak je ten pointer vacsi nez "specializovany",
>>> a druhak praca s nim je vyrazne komplikovanejsia. Podobne ak sa umiestnia
>>> premenne v externej pamati (v nejakom "vacsom" pamatovom modeli), tak znova
>>> je praca s nimi komplikovanejsia a zdlhavejsia.
>>>
>>> Nie je rozdiel medzi tymto a tym, co poslal pan kolega Michal HW, prave v
>>> takomto niecom?
>>>
>>> wek
>>>
>>>
>>>
>>> ----- Original Message ---------------
>>>
>>> Subject: Re: C nebo ASM?
>>>   From: Petr Zahradnik <clexpert@clexpert.cz>
>>>   Date: Thu, 21 May 2009 14:53:11 +0200
>>>     To: HW-news <hw-list@list.hw.cz>
>>>
>>>>Puvodni zprava ze dne 21.5.2009 od Michal HW:
>>>>
>>>>> Divam se ne preklad Hitech C kompilatoru pro PIC18:
>>>>>    Pom=0;
>>>>>    for (Ukazatel=8;Ukazatel<32+8;++Ukazatel) {
>>>>>     Pom=Pom+Bufer[Ukazatel];
>>>>>     *p_Ukaz++=Bufer[Ukazatel];
>>>>>    }
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>



Další informace o konferenci Hw-list