Hello at all,

 

I’m trying to understand the differences between to compile a code for pc or
mica platforms.

 

When I compile the Temp.nc configuration file to “pc” platform:

ncc -fnesc-separator=\__ -c -target=pc -fnesc-cfile=Temp.c
-I/opt/tinyos-1.x/tos/sensorboards/micasb/
/opt/tinyos-1.x/tos/sensorboards/micasb/Temp.nc

 

and I see the symbols generated I get the next:

 

[EMAIL PROTECTED]: # nm Temp.o 

00000020 C TOSH_queue

00000001 C TOSH_sched_free

00000018 T TOS_post

0000000a T __nesc_atomic_end

00000000 T __nesc_atomic_start

00000091 t __nesc_nido_initialise

00000087 t __nesc_nido_resolve

 

However, when I compile the same file for ‘mica’ platform:

ncc -fnesc-separator=\__ -c -target=mica -fnesc-cfile=Temp.c
-I/opt/tinyos-1.x/tos/sensorboards/micasb/
/opt/tinyos-1.x/tos/sensorboards/micasb/Temp.nc

 

the object file generated includes all the calls to the drivers:

 

[EMAIL PROTECTED]: # nm Temp.o

00000000 a *ABS*

00000e84 t ADCM__ADC__dataReady

00001470 t ADCM__ADC__default__dataReady

00000d44 t ADCM__ADC__getData

00000002 C ADCM__ContReqMask

00000bae t ADCM__HPLADC__dataReady

00000e50 t ADCM__HPLADC__samplePort

00000e20 t ADCM__HPLADC__sampleStop

00000002 C ADCM__ReqPort

00000002 C ADCM__ReqVector

00000ef8 t ADCM__startGet

00000984 t HPLADCC__ADC__dataReady

00000170 t HPLADCC__ADC__samplePort

000014a0 t HPLADCC__ADC__sampleStop

0000000a C HPLADCC__TOSH_adc_portmap

00000a4a t HPLClock__Clock__fire

000014be t HPLClock__Clock__getInterval

00000e0c t HPLClock__Clock__readCounter

00000dde t HPLClock__Clock__setInterval

00000001 C HPLClock__minterval

00000001 C HPLClock__mscale

00000001 C HPLClock__nextScale

00000001 C HPLClock__set_flag

000006f4 t HPLPowerManagementM__PowerManagement__adjustPower

00000000 D HPLPowerManagementM__disableCount

00000a7a t HPLPowerManagementM__doAdjustment

000012e0 t HPLPowerManagementM__getPowerLevel

0000150a t PhotoTempM__ExternalPhotoADC__dataReady

00001758 t PhotoTempM__ExternalPhotoADC__default__dataReady

000014d2 t PhotoTempM__ExternalTempADC__dataReady

0000172a t PhotoTempM__ExternalTempADC__default__dataReady

000013fc t PhotoTempM__InternalPhotoADC__dataReady

00000952 t PhotoTempM__InternalPhotoADC__getData

00001388 t PhotoTempM__InternalTempADC__dataReady

00000920 t PhotoTempM__InternalTempADC__getData

00001840 t PhotoTempM__PhotoTempTimer__fired

000008a8 t PhotoTempM__PhotoTempTimer__start

000008ee t PhotoTempM__PhotoTempTimer__stop

000001de t PhotoTempM__getSample

00000002 C PhotoTempM__hardwareStatus

00000002 C PhotoTempM__photoSensor

00000002 C PhotoTempM__tempSensor

00000001 C PhotoTempM__waitingForSample

00000b06 t TOSH_CLR_INT1_PIN

00000b66 t TOSH_CLR_INT2_PIN

0000082a t TOSH_CLR_PHOTO_CTL_PIN

00000872 t TOSH_CLR_TEMP_CTL_PIN

00000b36 t TOSH_MAKE_INT1_INPUT

00000b1e t TOSH_MAKE_INT1_OUTPUT

00000b96 t TOSH_MAKE_INT2_INPUT

00000b7e t TOSH_MAKE_INT2_OUTPUT

0000084e t TOSH_MAKE_PHOTO_CTL_INPUT

0000083c t TOSH_MAKE_PHOTO_CTL_OUTPUT

00000896 t TOSH_MAKE_TEMP_CTL_INPUT

00000884 t TOSH_MAKE_TEMP_CTL_OUTPUT

00000aee t TOSH_SET_INT1_PIN

00000b4e t TOSH_SET_INT2_PIN

00000818 t TOSH_SET_PHOTO_CTL_PIN

00000800 t TOSH_SET_PW2_PIN

00000860 t TOSH_SET_TEMP_CTL_PIN

00000010 C TOSH_queue

00000001 C TOSH_sched_free

00000060 T TOS_post

00000d76 t TimerM__Clock__fire

00000fd8 t TimerM__Clock__getInterval

00000a1a t TimerM__Clock__readCounter

000009ec t TimerM__Clock__setInterval

00001008 t TimerM__HandleFire

000009bc t TimerM__PowerManagement__adjustPower

00001906 t TimerM__Timer__default__fired

00001786 t TimerM__Timer__fired

00000542 t TimerM__Timer__start

00000438 t TimerM__Timer__stop

00001542 t TimerM__adjustInterval

000017cc t TimerM__dequeue

00001696 t TimerM__enqueue

00000002 C TimerM__interval_outstanding

00000001 C TimerM__mInterval

00000004 C TimerM__mState

00000009 C TimerM__mTimerList

00000001 C TimerM__queue

00000001 C TimerM__queue_head

00000001 C TimerM__queue_size

00000001 C TimerM__queue_tail

00000001 C TimerM__setIntervalFlag

000016f2 t TimerM__signalOneTimer

0000003e a __SP_H__

0000003d a __SP_L__

0000003f a __SREG__

         U __do_clear_bss

         U __do_copy_data

00000032 T __nesc_atomic_end

00000000 T __nesc_atomic_start

000007f0 t __nesc_enable_interrupt

00000000 a __tmp_reg__

0000074e T __vector_15

000000fa T __vector_21

00000001 a __zero_reg__

00000000 b photoIsNext.0

 

I know depending on the target platform the ncc compiler will invoke the
avr-gcc or gcc compiler. Is this the reason? Why gcc can not compile the
driver functions?

Someone know why is happening this?

 

Thanks in advance, 

Soledad Escolar. 

 

_______________________________________________
Tinyos-help mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to