I tried making changes. What i did was like previously my header file name,
the folder in which i created the library files, the function name all were
the same "printdbg" so i changed the function name to just "print". i made
the changes in the header file where i defined the function prototype and
all the places where the function is being called. Now the error that i am
getting is

*implicit declaration of function "print"
*

I tried doing different things like even changing the header file location
to different places like the /tos/system or even the blink application
folder but the error was the same. It seems that the compiler is just not
able to detect the function declaration from the header file.

If anybody could help it would be a great obligation.

Thanks in advance,

Regards,
Gaurav



On Fri, Sep 3, 2010 at 2:16 AM, Gaurav Agrawal
<[email protected]>wrote:

>
> Dear friends,
>
> I am using tinyos 2.1.  i was trying to create a library for sending debug
> messages on the UART just like the available printf library. I
> followed the printf tutorial.
>
> i created a folder in /home/P09/tinyos-2.x/tos/lib/printdbg/
> and created the files for sending messages to the UART.
>
> in the printdbg.h header file i have declared the function printdbg, the
> function that is used in the library files to send messages.
> void printdbg(char* buf, uint8_t msgint);
>
> in my makefile of the application i have written
> CFLAGS += -I$(TOSDIR)/lib/printdbg
>
> I tried to send some debug messages from the blink application. I included
>  printdbg.h in each of the files of the blink application
> from where i m calling printdbg(..) function.
>
> everything works fine but i get a strange, possibly a linking error
> at compile time that can be seen at the end of the below long message.
>
> I tried adding -v to see the verbose output but all in vain.
> ERROR:
>
>    compiling BlinkAppC to a amulet2 binary
> ncc  -Os -finline-limit=100000 -Wall -Wshadow -Wnesc-all
> -target=amulet2 -conly -fnesc-cfile=build/amulet2/main_arm.c
> -fnesc-separator=__ -DDEFINED_TOS_AM_GROUP=0x22
> -I/home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/printdbg
> -DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"agrawalg\"
> -DIDENT_HOSTNAME=\"pg024\" -DIDENT_USERHASH=0x1cab6c09L
> -DIDENT_TIMESTAMP=0x4c8040faL -DIDENT_UIDHASH=0x1259a713L BlinkAppC.nc
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/printdbg/DebugMsgSendP.nc:157:1:
> warning: "/*" within comment
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/hpl/HplC.nc:37:
> warning: call via function pointer
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/serial/PlatformSerialP.nc:33:
> warning: `Serial.WriteStream' called asynchronously from
> `UartStream.send'
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/led/PlatformLedsP.nc:19:
> warning: `Paralell.read' called asynchronously from `setState'
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/led/PlatformLedsP.nc:21:
> warning: `Paralell.write' called asynchronously from `setState'
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/HdlcTranslateC.nc:103:
> warning: `lcd.GoTo' called asynchronously from
> `SerialFrameComm.putData'
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/HdlcTranslateC.nc:118:
> warning: `lcd.GoTo' called asynchronously from `UartStream.sendDone'
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/HdlcTranslateC.nc:104:
> warning: `lcd.WriteString' called asynchronously from
> `SerialFrameComm.putData'
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/HdlcTranslateC.nc:119:
> warning: `lcd.WriteString' called asynchronously from
> `UartStream.sendDone'
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/timer/Amulet2TimerMilliP.nc:15:
> warning: non-atomic accesses to shared variable `currentTime':
>
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/timer/Amulet2TimerMilliP.nc:67:
> warning:   non-atomic read
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:146:
> warning: non-atomic accesses to shared variable `rxState':
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:207:
> warning:   non-atomic write
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:165:
> warning: non-atomic accesses to shared variable `offPending':
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:484:
> warning:   non-atomic read
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:150:
> warning: non-atomic accesses to shared variable `rxCRC':
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:211mainly
> consisting of the warnings: warning:   non-atomic write
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/lib/serial/SerialP.nc:415:
> warning:   non-atomic write
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/hpl/HplC.nc:10:
> warning: non-atomic accesses to shared variable `sleeping':
> /home/P09/agrawalg/mywork/tinyos-2.x/tos/platforms/amulet2/hpl/HplC.nc:52:
> warning:   non-atomic read
> arm-elf-gcc -mcpu=arm6  -o build/amulet2/BlinkAppC
> build/amulet2/main_arm.c -lm
> /tmp/ccgJ4gnE.o(.text+0x18c8): In function `BlinkC__Boot__booted':
> : undefined reference to `printdbg'
> /tmp/ccgJ4gnE.o(.text+0x3bd4): In function `BlinkC__Timer0(float, int,
> long double,...)(double)':
> : undefined reference to `printdbg'
> collect2: ld returned 1 exit status
> make: *** [exe0] Error 1
>
> I saw some previous archives discussing similar problem for the same
> error occurring while executing code in TOSSIM. the solution suggested was
> to add -shared option. but i am in confusion whether it will make any
> difference to me coz i m not simulating the code instead i m running the
> code on my amulet motes.
>
> please help friends i m desperate to solve this error.
>
> Thanks in advance
> Gaurav
>
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to