![]() |
C Programm nach Pascal
Hi, ich habe ein kleines C Programm, dass ich nach Pascal übersetzen möchte. Leider habe ich von C nicht viel Ahnung und weiß nicht, wie ich das ein oder andere übersetzen soll. Wäre nett, wenn mir jemand helfen könnte. Ich schreibe einfach mal die Zeilen untereinander, mit denen ich Probleme habe.
Code:
Bin für jede Hilfe dankbar.
#define PIO_A27 ((unsigned long) 1 << 27)
void *map_base; <- definiert glaube ich eine Variable für einen Pointer map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PIOA_BASE & ~MAP_MASK); <<-- Das ist kein Problem *((unsigned long *) (map_base + (PIOA_PER & MAP_MASK))) = PIO_A26 | PIO_A25 | PIO_A24 | PIO_A11 | PIO_A14; Grüße Sven [edit=SirThornberry]Delphi-Tags durch C-Tags ersetzt - Mfg, SirThornberry[/edit] |
Re: C Programm nach Pascal
So würde ich jetzt sagen:
Delphi-Quellcode:
const PIO_A27: LongWord = 1 shl 27;
var map_base: Pointer; //Das sagtest du ja ist kein Problem PLongWord(Cardinal(map_base+(PIOA_PER and MAP_MASK)))^ := PIO_A26 or PIO_A25 or PIO_A24 or PIO_All or PIO_A14; |
Re: C Programm nach Pascal
Hi 3_of_8,
Den map_base Pointer musst du vorher noch nach Cardinal casten. Sonst gibts nen Compilerfehler: Zitat:
|
Re: C Programm nach Pascal
Danke, ich kann es mal ohne Fehler kompilieren. Da wäre ich ja nie drauf gekommen. Ob es dann funktioniert werde ich dann noch berichten.
Grüße Sven |
Re: C Programm nach Pascal
Es gibt doch noch ein kleines Problem und zwar habe ich noch folgende Zeilen, die ich wohl nicht richtig übersetzt habe. Könnt Ihr mir noch mal helfen:
Code:
Ich habe folgendes draus gemacht:
#define MAP_SIZE 4096UL
#define MAP_MASK (MAP_SIZE -1) #define PIOA_BASE 0xfffff400UL #define PIOB_BASE 0xfffff600UL . . . //man beachte die ~ hinten vor MAP_MASK map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, PIOA_BASE & ~MAP_MASK);
Delphi-Quellcode:
Danke Sven
const
MAP_SIZE = 4096; MAP_MASK = (MAP_SIZE -1); PIOA_BASE = $fffff400; PIOB_BASE = $fffff600; . . . map_base := fpmmap(nil, MAP_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, fd, PIOA_BASE and MAP_MASK); |
Re: C Programm nach Pascal
Zitat:
Delphi-Quellcode:
HkagUezh*
map_base := fpmmap(nil, MAP_SIZE, PROT_READ or PROT_WRITE, MAP_SHARED, fd, PIOA_BASE and not MAP_MASK);
*(hoffe, keinen allzu großen Unsinn erzählt zu haben) |
Re: C Programm nach Pascal
Super danke, das wars. Das Testprogramm läuft jetzt auch ohne Probleme.
Jetzt habe ich mein erstes Programm mit Freepascal für LINUX/ARM geschrieben und die Hardware kann ich auch ansteueren. :thumb: :dancer: Grüße Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz