Microchip-C18 x htsoft-C18

andrej jancura hw_aj@zoznam.sk
Sobota Listopad 4 16:41:02 CET 2006


Ahoj,

> Ne da se tam zapisovat i cist po jednom byte.

No tot (ne)vyhoda 16-bitovej datovej zbernice...

> Trva to jednu instrukci,
> ale pointer je tri byte. 

Ako inac chces zabezpecit kompatibilitu kodu medzi CPU s 8 KB Flash a 
povedzme 1MB?

> Vysledny kod je des a hruza, C dava poradne
> zabrat vypocet adresy promenne. 

Toto je dan za to, ze sa pouziva strikne 8-bitova aritmetika.

> Zjistil jsem nektere prasarny. Napriklad
> Pokus=Pokus+1;. Pointer se vypocitava dvakrat!! HT-soft vubec nepouziva
> instrukce s aut. inkrementaci a dekrementaci TBLPTR. Napriklad pri cteni
> dvou po sobe lezicich instrukci.

Ked sa zamyslis nad tym, ze potrebujes napr:  A = *Pointer;Pointer++; Ako 
chces zabezpecit inkrementaciu toho pointeru? Register na adresovanie nie 
su adresa v RAM-ke. Okrem toho pokial sa dobre pamatam boli CPU, ktore 
mali chyby prave pri pristupe ku FLASH.

> Zrovna jsem ve stadiu testu kompilatoru.

Tak prajem prijemnu zabavu. A nezabudni programovat stylom ala ASM teda 
najprv si predstav ako by ten kod mal vyzerat v ASM, usetri to dost pamati 
kodu.

Andrej



Další informace o konferenci Hw-list