Hello at all,
Im 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