Raspberry Raspbian linux:
Can somebody explain why hwiringpi.pas is compiling fine. Like here:
pi@raspberrypi:/opt/wiringPi$ sudo fpc hwiringpi.pas
Free Pascal Compiler version 2.6.0 [2011/12/27] for arm
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for ARMEL
Compiling hwiringpi.pas
Assembling hwiringpi
93 lines compiled, 0.4 sec
pi@raspberrypi:/opt/wiringPi$
But if i compile my own start.pas containing:
uses hwiringpi
begin
pwmWrite(P18,512);
end.
it results in:
pi@raspberrypi:/opt/wiringPi$ sudo fpc start.pas
Free Pascal Compiler version 2.6.0 [2011/12/27] for arm
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for ARMEL
Compiling start.pas
Assembling program
Linking start
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
/usr/lib/fpc/2.6.0/units/arm-linux/rtl/cprt0.o: In function `_haltproc_eabi':
(.text+0x88): undefined reference to `_fini'
/usr/lib/fpc/2.6.0/units/arm-linux/rtl/cprt0.o: In function `_haltproc_eabi':
(.text+0x90): undefined reference to `_init'
./wiringPi.o: In function `gpioClockSet':
wiringPi.c:(.text+0xd20): undefined reference to `__aeabi_idiv'
wiringPi.c:(.text+0xd30): undefined reference to `__aeabi_idivmod'
./wiringPi.o: In function `interruptHandler':
wiringPi.c:(.text+0x1558): undefined reference to `piHiPri'
./wiringPi.o: In function `wiringPiISR':
wiringPi.c:(.text+0x17b4): undefined reference to `pthread_create'
./wiringPi.o: In function `pwmToneWrite':
wiringPi.c:(.text+0x1d30): undefined reference to `__aeabi_idiv'
./wiringPi.o: In function `pinMode':
wiringPi.c:(.text+0x1d88): undefined reference to `softPwmStop'
wiringPi.c:(.text+0x1d90): undefined reference to `softToneStop'
wiringPi.c:(.text+0x1f10): undefined reference to `softPwmCreate'
wiringPi.c:(.text+0x1f1c): undefined reference to `softToneCreate'
start.pas(10) Error: Error while linking
start.pas(10) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppcarm returned an error exitcode (normal if you did not specify a source file to be compiled)
pi@raspberrypi:/opt/wiringPi$
I use to have versions installed who do not have this problem. I can not fix it anymore. Can somebody help for a re-look.
complete unit:
unit hwiringpi;
(* Pascal wrapper unit for Gordon Henderson wiringPi library. The source can
* be found at https://projects.drogon.net/raspberry-pi/wiringpi/. Wrapper and
* pascal sample by Alex Schaller.
*
* wiringPi:
* Arduino compatable (ish) Wiring library for the Raspberry Pi
* Copyright (c) 2012 Gordon Henderson
***********************************************************************
* This file is part of wiringPi:
* https://projects.drogon.net/raspberry-pi/wiringpi/
*
* wiringPi is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* wiringPi is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
***********************************************************************
*)
// Handy defines
{$link ./wiringPi/wiringPi.o}
{$linklib c}
interface
const
NUM_PINS = 17;
WPI_MODE_PINS = 0;
WPI_MODE_GPIO = 1;
INPUT = 0;
OUTPUT = 1;
PWM_OUTPUT = 2;
LOW = 0;
HIGH = 1;
PUD_OFF = 0;
PUD_DOWN = 1;
PUD_UP = 2;
// Pin mappings from P1 connector to WiringPi library
// Px represents to physical pin on the RaspberryPi P1 connector
P3 = 8;
P5 = 9;
P7 = 7;
P8 = 15;
P10 = 16;
P11 = 0;
P12 = 1;
P13 = 2;
P15 = 3;
P16 = 4;
P18 = 5;
P19 = 12;
P21 = 13;
P22 = 6;
P23 = 14;
P24 = 10;
P26 = 11;
Function wiringPiSetup:longint;cdecl;external;
Procedure wiringPiGpioMode(mode:longint);cdecl;external;
Procedure pullUpDnControl(pin:longint; pud:longint);cdecl;external;
Procedure pinMode(pin:longint; mode:longint);cdecl;external;
Procedure digitalWrite(pin:longint; value:longint);cdecl;external;
Procedure pwmWrite(pin:longint; value:longint);cdecl;external;
Function digitalRead(pin:longint):longint;cdecl;external;
Procedure delay(howLong:dword);cdecl;external;
Procedure delayMicroseconds(howLong:dword);cdecl;external;
Function millis:dword;cdecl;external;
implementation
end.
PS: Does anyone have example code for the hwiringpi.pas unit ? Thank you very much in Advance.
Is this the right place to post this Message? What forum/topic should i try it again?