Gast
#488330
Hallo Forum
Angenommen ich habe einen Speicher via erweitertem Adressbus am µC und
will dort was auslesen. In einem Musterprogramm fand ich folgendes:
header.h
------------------
#define _OFFSET_ 0x0A000000
MEM_REG1 .EQU ( 0x0004 + _OFFSET_ )
main.C
------------------
uint32_t readmem ( uint32_t input )
{
return (((input & 0xFF000000)>>24) + ((input & 0x00FF0000)>>8) + ((input
& 0x0000FF00)<<8) + ((input & 0x000000FF)<<24));
}
temp = (readmem ( MEM_REG1 ) );
Ich verstehe nicht wie die Funktion readmem auf den Speicher zugreifen
kann, wenn die keine Adresse bekommt. Meiner Meinung bekommt sie die
Zahl 0x0004 + 0x0A000000 und das wars. Wie weis die Funktion dass es
eine Adresse ist und somit auf den Wert der sich dort verbirgt zugreifen
muss? Ich hätte jetzt irgendwo ein * vermutet....
Das Programm funktioniert so, nur kann ich es mir nicht erklären.
Danke für einen Tipp.
PS: wie kann man Code hervorheben?