Ciao
mi servirebbe una spiegazione su alcune linee di codice, sono prese da un driver per mmc tramite porte gpio
iniziamo dalle banalità
#define PIN_SW1 1<<3
questa dovrebbe essere una banale stringa
poi
2)
#define SPI_IN(a) { \
a = 0; \
sysRegWrite(AR5315_GPIO_DO, shadow_SI); \
sysRegWrite(AR5315_GPIO_DO, shadow_SCK_SI); \
if(sysRegRead(AR5315_GPIO_DI)&SO) a|=1<<7;
dove sysRegWrite è
#define sysRegWrite(phys, val) \
((*(volatile AR531X_REG *)PHYS_TO_K1(phys)) = (val)) questa parte qua non la capisco proprio
e
#define AR5315_GPIO_DO (AR5315_DSLBASE + 0x0090)
3)#define SPI_OUT(a) { \
if(a & 0x80){.......... in questo if la variabile a di che tipo è uns int??....di che si tratta secondo voi? 0x80 è un indirizzamento diretto ad un registro?
altra domanda
come funzionano questi moduli?non hanno main e mi trovo un po perso....
ho altre cose da chiedere ma aspetterò...potete trovare il sorgente a questo indirizzo....
http://phrozen.org/mmc-driver-fonera-src.tar.bz2
Grazie
Fede