On Mon, 29 Feb 2016 16:55:04 +0200, Chavoux Luyt <chav...@gmail.com> wrote:
>Hi Bo, > >From: Bo Berglund <bo.bergl...@gmail.com> > >> <snip> >> So I need to put some kind of conditional into my code to redirect the >> GPIO calls to some simulator I will have to build. (I am assuming that >> there is no such thing available already of course). I found that {$ifdef CPUARMHF} can be used as a switch for my purposes. >Another way (which might be easier?) is to look at the GPIO driver code >(API) on the Raspberry and write a "fake driver" (.so file?) on the Linux >system with the same name, API etc. of the Raspberry GPIO driver (I assume >that there is a driver, so forgive me if I am wrong). Since you want to >build a simulator in any case, this might be a better option that will not >require you to do anything funny in your actual application code? > I looked inside the PiGpio unit to see how it interacts and this is what I found: function TIoDriver.MapIo: boolean; begin Result := True; {$IFDEF RPi2} fd := fpopen('/dev/gpiomem', O_RdWr or O_Sync); // Open the master /dev/memory device {$ELSE} fd := fpopen('/dev/mem', O_RdWr or O_Sync); // Open the master /dev/memory device {$ENDIF} if fd < 0 then begin Result := False; // unsuccessful memory mapping end; // end; So there is a "master memory device" /dev/gpiomem, whatever that is... I looked at the location in a terminal and found this: pi@rpi2-jessie2:/dev $ ls -ls g* 0 crw-rw---- 1 root gpio 244, 0 Feb 25 07:40 gpiomem So there seems to be no .so file here at least... And I have no clue whatever regarding what to do to create a driver... -- Bo Berglund Developer in Sweden -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus