Dom > Novice > Vsebine

Ukazi motorja za so-procesor

Apr 26, 2019

image

Motor s koprocesorjem se napaja preko FIFO v pomnilniku FT800 na 4 Kbyte na RAM_CMD. The

MCU zapiše ukaze v FIFO in stroj za soprocesor prebere in izvrši

ukaze. MCU posodobitve registra REG_CMD_WRITE, da pokažejo, da obstajajo

nove ukaze v FIFO in mehanizem soprocesorja posodobi REG_CMD_READ

izvršeni so bili ukazi.

image

MCU lahko tako izračuna razpoložljivi prosti prostor v FIFO:

polnost = (REG_CMD_WRITE -REG_CMD_READ) mod 4096

freespace = (4096 - 4) - polnost;

Ta izračun ne poroča 4096 bajtov prostega prostora, da bi ga v celoti preprečili

zavijanje FIFO in da postane prazno.

Če je v FIFO na voljo dovolj prostora, MCU zapiše ukaze na

ustrezno mesto v pomnilniku FIFO RAM, nato pa posodobi REG_CMD_WRITE. Za poenostavitev

Koda MCU, strojna oprema FT800 samodejno prekriva neprekinjeno zapisovanje (RAM_CMD

+ 4095) nazaj na (RAM_CMD + 0).

Vpisi FIFO so vedno široki 4 bajta - gre za napako REG_CMD_READ ali

REG_CMD_WRITE ima vrednost, ki ni večkratnik od 4 bajtov. Vsak ukaz

izdan stroju za soprocesor, lahko traja eno ali več besed: dolžina je odvisna od

sam ukaz in vse dodane podatke. Nekaterim ukazom sledijo podatki variablelength, zato velikost ukaza ne sme biti večkratnik 4 bajtov. V tem primeru motor koprocesorja ne upošteva dodatnih 1, 2 ali 3 bajta in nadaljuje branje naslednjega

ukaz na naslednji 4-mejni meji.