[sam] Fixing wrong reference to Wait() and some cosmetics

This commit is contained in:
aethaniel 2011-07-14 00:10:48 +02:00
parent 3707a81640
commit 2713ec4dca
22 changed files with 815 additions and 793 deletions

View File

@ -92,11 +92,10 @@ extern void analogWrite( uint8_t, int ) ;
// wiring.c
extern void init( void ) ;
extern unsigned long millis( void ) ;
extern unsigned long micros( void ) ;
//void delay(unsigned long);
#define delay( dwMs ) Wait( dwMs )
extern void delayMicroseconds( unsigned int us ) ;
extern uint32_t millis( void ) ;
extern uint32_t micros( void ) ;
extern void delay( uint32_t dwMs ) ;
extern void delayMicroseconds( uint32_t dwUs ) ;
// wiring_shift.c
extern void shiftOut( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val ) ;
@ -143,15 +142,15 @@ uint16_t makeWord( byte h, byte l ) ;
#define word(...) makeWord(__VA_ARGS__)
extern unsigned long pulseIn( uint8_t pin, uint8_t state, unsigned long timeout = 1000000L ) ;
extern uint32_t pulseIn( uint32_t pin, uint32_t state, uint32_t timeout = 1000000L ) ;
extern void tone( uint8_t _pin, unsigned int frequency, unsigned long duration = 0 ) ;
extern void noTone( uint8_t _pin ) ;
extern void tone( uint32_t dwPin, uint32_t dwFrequency, uint32_t dwDuration = 0 ) ;
extern void noTone( uint32_t dwPin ) ;
// WMath prototypes
extern long random( long ) ;
extern long random( long, long ) ;
extern void randomSeed( unsigned int ) ;
extern void randomSeed( uint32_t dwSeed ) ;
extern long map( long, long, long, long, long ) ;
#endif // __cplusplus

View File

@ -25,29 +25,36 @@
extern "C" {
#include "stdlib.h"
#include "stdint.h"
}
void randomSeed(unsigned int seed)
void randomSeed( uint32_t dwSeed )
{
if (seed != 0) {
srand(seed);
if ( dwSeed != 0 )
{
srand( dwSeed ) ;
}
}
long random(long howbig)
long random( long howbig )
{
if (howbig == 0) {
return 0;
if ( howbig == 0 )
{
return 0 ;
}
return rand() % howbig;
}
long random(long howsmall, long howbig)
long random( long howsmall, long howbig )
{
if (howsmall >= howbig) {
if (howsmall >= howbig)
{
return howsmall;
}
long diff = howbig - howsmall;
return random(diff) + howsmall;
}
@ -56,5 +63,12 @@ long map(long x, long in_min, long in_max, long out_min, long out_max)
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
unsigned int makeWord(unsigned int w) { return w; }
unsigned int makeWord(unsigned char h, unsigned char l) { return (h << 8) | l; }
uint32_t makeWord( uint32_t w )
{
return w ;
}
uint32_t makeWord( uint8_t h, uint8_t l )
{
return (h << 8) | l ;
}

View File

@ -105,6 +105,8 @@ wiring.o:
00000000 T SysTick_Handler
U TimeTick_Increment
U WDT_Disable
U Wait
00000000 T delay
00000000 T delayMicroseconds
00000000 T init
00000000 T micros
@ -256,12 +258,12 @@ USART.o:
U __cxa_pure_virtual
WMath.o:
00000000 T _Z10randomSeedj
00000000 T _Z10randomSeedm
00000000 T _Z3maplllll
00000000 T _Z6randoml
00000000 T _Z6randomll
00000000 T _Z8makeWordhh
00000000 T _Z8makeWordj
00000000 T _Z8makeWordm
U rand
U srand

View File

@ -1,280 +1,281 @@
00402140 t .udivsi3_skip_div0_test
00401b3c W ACC_IrqHandler
00401b3c W ADC_IrqHandler
004053e4 t APinDescription
00404ff0 t APinDescription
00401b3c W BusFault_Handler
00401b3c W CRCCU_IrqHandler
00401b3c W DAC_IrqHandler
00401b3c W DebugMon_Handler
00401b3c T Dummy_Handler
00401b3c W EEFC_IrqHandler
00401b3c W HardFault_Handler
00400308 t LowLevelInit_sam3s_ek
00401b3c W MCI_IrqHandler
004053e2 t MISO
00404fee t MISO
004053e1 t MOSI
00404fed t MOSI
00401b3c W MemManage_Handler
00401b3c W NMI_Handler
00402190 t .udivsi3_skip_div0_test
00401b58 W ACC_IrqHandler
00401b58 W ADC_IrqHandler
00405434 t APinDescription
00405040 t APinDescription
00401b58 W BusFault_Handler
00401b58 W CRCCU_IrqHandler
00401b58 W DAC_IrqHandler
00401b58 W DebugMon_Handler
00401b58 T Dummy_Handler
00401b58 W EEFC_IrqHandler
00401b58 W HardFault_Handler
00400324 t LowLevelInit_sam3s_ek
00401b58 W MCI_IrqHandler
00405432 t MISO
0040503e t MISO
00405431 t MOSI
0040503d t MOSI
00401b58 W MemManage_Handler
00401b58 W NMI_Handler
00400248 t NVIC_SetPriority
00401b3c W PIOA_IrqHandler
00401b3c W PIOB_IrqHandler
00401b3c W PIOC_IrqHandler
00401d80 T PIO_Configure
00401b44 T PIO_DisableInterrupt
00401b60 T PIO_PullUp
00401c9c T PIO_SetInput
00401d1c T PIO_SetOutput
00401b90 T PIO_SetPeripheral
00401f1c T PMC_DisablePeripheral
00401e78 T PMC_EnablePeripheral
00401b3c W PMC_IrqHandler
00401b3c W PWM_IrqHandler
00401b3c W PendSV_Handler
00401b3c W RSTC_IrqHandler
00401b3c W RTC_IrqHandler
00401b3c W RTT_IrqHandler
00401b58 W PIOA_IrqHandler
00401b58 W PIOB_IrqHandler
00401b58 W PIOC_IrqHandler
00401d9c T PIO_Configure
00401b60 T PIO_DisableInterrupt
00401b7c T PIO_PullUp
00401cb8 T PIO_SetInput
00401d38 T PIO_SetOutput
00401bac T PIO_SetPeripheral
00401f38 T PMC_DisablePeripheral
00401e94 T PMC_EnablePeripheral
00401b58 W PMC_IrqHandler
00401b58 W PWM_IrqHandler
00401b58 W PendSV_Handler
00401b58 W RSTC_IrqHandler
00401b58 W RTC_IrqHandler
00401b58 W RTT_IrqHandler
00400188 T Reset_Handler
004053e3 t SCK
00404fef t SCK
00401b3c W SMC_IrqHandler
00401b3c W SPI_IrqHandler
00404fec t SS
004053e0 t SS
00401b3c W SSC_IrqHandler
00401b3c W SUPC_IrqHandler
00401b3c W SVC_Handler
00405433 t SCK
0040503f t SCK
00401b58 W SMC_IrqHandler
00401b58 W SPI_IrqHandler
0040503c t SS
00405430 t SS
00401b58 W SSC_IrqHandler
00401b58 W SUPC_IrqHandler
00401b58 W SVC_Handler
200006a8 B Serial1
200006c0 B Serial2
004002a0 t SysTick_Config
004002f8 T SysTick_Handler
00401b3c W TC0_IrqHandler
00401b3c W TC1_IrqHandler
00401b3c W TC2_IrqHandler
00401b3c W TC3_IrqHandler
00401b3c W TC4_IrqHandler
00401b3c W TC5_IrqHandler
00401b3c W TWI0_IrqHandler
00401b3c W TWI1_IrqHandler
00401fdc T TimeTick_Increment
00401b3c W UART0_IrqHandler
00401b3c W UART1_IrqHandler
00401b3c W USART0_IrqHandler
00401b3c W USART1_IrqHandler
00401b3c W USBD_IrqHandler
00401b3c W UsageFault_Handler
00401fc0 T WDT_Disable
00401b3c W WDT_IrqHandler
004009f8 t _GLOBAL__I_rx_buffer1
00400314 T SysTick_Handler
00401b58 W TC0_IrqHandler
00401b58 W TC1_IrqHandler
00401b58 W TC2_IrqHandler
00401b58 W TC3_IrqHandler
00401b58 W TC4_IrqHandler
00401b58 W TC5_IrqHandler
00401b58 W TWI0_IrqHandler
00401b58 W TWI1_IrqHandler
00401ff8 T TimeTick_Increment
00401b58 W UART0_IrqHandler
00401b58 W UART1_IrqHandler
00401b58 W USART0_IrqHandler
00401b58 W USART1_IrqHandler
00401b58 W USBD_IrqHandler
00401b58 W UsageFault_Handler
00401fdc T WDT_Disable
00401b58 W WDT_IrqHandler
00402014 T Wait
00400a14 t _GLOBAL__I_rx_buffer1
w _Jv_RegisterClasses
00400980 t _Z41__static_initialization_and_destruction_0ii
U _Z4Waitm
004057f8 t _ZL15APinDescription
00404bfc t _ZL15APinDescription
00405c18 t _ZL15APinDescription
004057f4 t _ZL2SS
00404bf6 t _ZL2SS
00405c14 t _ZL2SS
00405c17 t _ZL3SCK
00404bf9 t _ZL3SCK
004057f7 t _ZL3SCK
00405c16 t _ZL4MISO
004057f6 t _ZL4MISO
00404bf8 t _ZL4MISO
004057f5 t _ZL4MOSI
00404bf7 t _ZL4MOSI
00405c15 t _ZL4MOSI
004006cc W _ZN14HardwareSerialC1Ev
004006cc W _ZN14HardwareSerialC2Ev
004005e8 T _ZN5Print5printEPKc
0040060c T _ZN5Print5printEc
00400560 T _ZN5Print5writeEPKc
004005a0 T _ZN5Print5writeEPKhj
00400658 T _ZN5Print7printlnEPKc
00400630 T _ZN5Print7printlnEv
00400680 W _ZN5PrintC1Ev
00400680 W _ZN5PrintC2Ev
004006a0 W _ZN6StreamC1Ev
004006a0 W _ZN6StreamC2Ev
004007a4 T _ZN9UARTClass3endEv
00400814 T _ZN9UARTClass4peekEv
00400854 T _ZN9UARTClass4readEv
00400748 T _ZN9UARTClass5beginEm
004008ac T _ZN9UARTClass5flushEv
004008d8 T _ZN9UARTClass5writeEh
004007e8 T _ZN9UARTClass9availableEv
004006f8 T _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
004006f8 T _ZN9UARTClassC2EP4Uart4IRQnmP12_ring_bufferS4_
00406008 V _ZTV14HardwareSerial
004057e0 T _ZTV5Print
00406038 V _ZTV6Stream
00405be8 T _ZTV9UARTClass
004060b0 t __FUNCTION__.5774
00406098 t __FUNCTION__.5778
00406084 t __FUNCTION__.5800
004023b8 W __aeabi_idiv0
004023b8 W __aeabi_ldiv0
00402140 T __aeabi_uidiv
0040239c T __aeabi_uidivmod
004044f4 T __aeabi_uldivmod
004042e4 T __ascii_wctomb
00402404 T __assert
004023bc T __assert_func
00400a10 T __cxa_pure_virtual
00404580 T __divdi3
0040099c t _Z41__static_initialization_and_destruction_0ii
00405848 t _ZL15APinDescription
00404c4c t _ZL15APinDescription
00405c68 t _ZL15APinDescription
00405844 t _ZL2SS
00405c64 t _ZL2SS
00404c46 t _ZL2SS
00405c67 t _ZL3SCK
00405847 t _ZL3SCK
00404c49 t _ZL3SCK
00405846 t _ZL4MISO
00405c66 t _ZL4MISO
00404c48 t _ZL4MISO
00405845 t _ZL4MOSI
00404c47 t _ZL4MOSI
00405c65 t _ZL4MOSI
004006e8 W _ZN14HardwareSerialC1Ev
004006e8 W _ZN14HardwareSerialC2Ev
00400604 T _ZN5Print5printEPKc
00400628 T _ZN5Print5printEc
0040057c T _ZN5Print5writeEPKc
004005bc T _ZN5Print5writeEPKhj
00400674 T _ZN5Print7printlnEPKc
0040064c T _ZN5Print7printlnEv
0040069c W _ZN5PrintC1Ev
0040069c W _ZN5PrintC2Ev
004006bc W _ZN6StreamC1Ev
004006bc W _ZN6StreamC2Ev
004007c0 T _ZN9UARTClass3endEv
00400830 T _ZN9UARTClass4peekEv
00400870 T _ZN9UARTClass4readEv
00400764 T _ZN9UARTClass5beginEm
004008c8 T _ZN9UARTClass5flushEv
004008f4 T _ZN9UARTClass5writeEh
00400804 T _ZN9UARTClass9availableEv
00400714 T _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
00400714 T _ZN9UARTClassC2EP4Uart4IRQnmP12_ring_bufferS4_
00406058 V _ZTV14HardwareSerial
00405830 T _ZTV5Print
00406088 V _ZTV6Stream
00405c38 T _ZTV9UARTClass
00406100 t __FUNCTION__.5774
004060e8 t __FUNCTION__.5778
004060d4 t __FUNCTION__.5800
00402408 W __aeabi_idiv0
00402408 W __aeabi_ldiv0
00402190 T __aeabi_uidiv
004023ec T __aeabi_uidivmod
00404544 T __aeabi_uldivmod
00404334 T __ascii_wctomb
00402454 T __assert
0040240c T __assert_func
00400a2c T __cxa_pure_virtual
004045d0 T __divdi3
004000d0 t __do_global_dtors_aux
00406200 t __do_global_dtors_aux_fini_array_entry
00406204 T __fini_array_end
00406200 T __fini_array_start
0040357c t __fp_lock
0040376c T __fp_lock_all
00403580 t __fp_unlock
00403784 T __fp_unlock_all
004061ec t __frame_dummy_init_array_entry
00404520 T __gnu_ldivmod_helper
00404550 T __gnu_uldivmod_helper
004061f4 T __init_array_end
004061ec T __init_array_start
00400a18 T __libc_init_array
00403d1c T __locale_charset
00403d3c T __locale_cjk_lang
00403d28 T __locale_mb_cur_max
00403d34 T __locale_msgcharset
00406250 t __do_global_dtors_aux_fini_array_entry
00406254 T __fini_array_end
00406250 T __fini_array_start
004035cc t __fp_lock
004037bc T __fp_lock_all
004035d0 t __fp_unlock
004037d4 T __fp_unlock_all
0040623c t __frame_dummy_init_array_entry
00404570 T __gnu_ldivmod_helper
004045a0 T __gnu_uldivmod_helper
00406244 T __init_array_end
0040623c T __init_array_start
00400a34 T __libc_init_array
00403d6c T __locale_charset
00403d8c T __locale_cjk_lang
00403d78 T __locale_mb_cur_max
00403d84 T __locale_msgcharset
20000000 D __malloc_av_
200006dc B __malloc_current_mallinfo
004011e8 T __malloc_lock
00401204 T __malloc_lock
20000704 B __malloc_max_sbrked_mem
20000708 B __malloc_max_total_mem
20000408 D __malloc_sbrk_base
200006d8 B __malloc_top_pad
2000040c D __malloc_trim_threshold
004011ec T __malloc_unlock
00401208 T __malloc_unlock
20000524 D __mb_cur_max
004061ec T __preinit_array_end
004061ec T __preinit_array_start
00404110 T __sclose
004040a8 T __seofread
004061b4 T __sf_fake_stderr
00406174 T __sf_fake_stdin
00406194 T __sf_fake_stdout
00403590 T __sfmoreglue
004036d4 T __sfp
0040375c T __sfp_lock_acquire
00403760 T __sfp_lock_release
004038dc T __sfvwrite_r
00404044 T __sigtramp
00403fc4 T __sigtramp_r
004035cc T __sinit
00403764 T __sinit_lock_acquire
00403768 T __sinit_lock_release
00403d60 T __smakebuf_r
004024c0 T __sprint_r
00404084 T __sread
004040e8 T __sseek
00404204 T __swbuf
00404118 T __swbuf_r
004040ac T __swrite
0040327c T __swsetup_r
004048e0 T __udivdi3
00402140 T __udivsi3
0040623c T __preinit_array_end
0040623c T __preinit_array_start
00404160 T __sclose
004040f8 T __seofread
00406204 T __sf_fake_stderr
004061c4 T __sf_fake_stdin
004061e4 T __sf_fake_stdout
004035e0 T __sfmoreglue
00403724 T __sfp
004037ac T __sfp_lock_acquire
004037b0 T __sfp_lock_release
0040392c T __sfvwrite_r
00404094 T __sigtramp
00404014 T __sigtramp_r
0040361c T __sinit
004037b4 T __sinit_lock_acquire
004037b8 T __sinit_lock_release
00403db0 T __smakebuf_r
00402510 T __sprint_r
004040d4 T __sread
00404138 T __sseek
00404254 T __swbuf
00404168 T __swbuf_r
004040fc T __swrite
004032cc T __swsetup_r
00404930 T __udivdi3
00402190 T __udivsi3
20000580 D __wctomb
004035c0 T _cleanup
00403584 T _cleanup_r
00402038 T _close
0040435c T _close_r
00403610 T _cleanup
004035d4 T _cleanup_r
00402084 T _close
004043ac T _close_r
2000070c b _dwTickCount
20000718 B _ebss
00406204 T _efixed
00406254 T _efixed
20002b18 A _end
20000584 D _erelocate
0040620c A _etext
00402100 T _exit
0040625c A _etext
0040214c T _exit
20000718 B _ezero
00404384 T _fclose_r
00403390 T _fflush_r
004061f4 T _fini
00402410 T _fiprintf_r
0040379c T _fputwc_r
00401918 T _free_r
00402050 T _fstat
00404448 T _fstat_r
00403c14 T _fwalk
00403c68 T _fwalk_reent
00402130 T _getpid
00404080 T _getpid_r
00406060 T _global_impure_ptr
004043d4 T _fclose_r
004033e0 T _fflush_r
00406244 T _fini
00402460 T _fiprintf_r
004037ec T _fputwc_r
00401934 T _free_r
0040209c T _fstat
00404498 T _fstat_r
00403c64 T _fwalk
00403cb8 T _fwalk_reent
0040217c T _getpid
004040d0 T _getpid_r
004060b0 T _global_impure_ptr
20000410 D _impure_ptr
004061e0 T _init
00404038 T _init_signal
00403f00 T _init_signal_r
00402494 T _iprintf_r
00402074 T _isatty
00404474 T _isatty_r
0040211c T _kill
00404054 T _kill_r
00403d40 T _localeconv_r
0040208c T _lseek
0040449c T _lseek_r
00400a68 T _malloc_r
00401870 T _malloc_trim_r
00403f6c T _raise_r
004020a8 T _read
004044c8 T _read_r
004011f0 T _realloc_r
00401ff8 T _sbrk
0040160c T _sbrk_r
00406230 T _init
00404088 T _init_signal
00403f50 T _init_signal_r
004024e4 T _iprintf_r
004020c0 T _isatty
004044c4 T _isatty_r
00402168 T _kill
004040a4 T _kill_r
00403d90 T _localeconv_r
004020d8 T _lseek
004044ec T _lseek_r
00400a84 T _malloc_r
0040188c T _malloc_trim_r
00403fbc T _raise_r
004020f4 T _read
00404518 T _read_r
0040120c T _realloc_r
00402044 T _sbrk
00401628 T _sbrk_r
20000584 B _sbss
00403cc0 T _setlocale_r
00403d10 T _setlocale_r
00400000 T _sfixed
00403f30 T _signal_r
00403f80 T _signal_r
20000000 D _srelocate
20000584 B _szero
00402544 T _vfiprintf_r
00404214 T _wcrtomb_r
00404300 T _wctomb_r
004020c4 T _write
00404330 T _write_r
00403380 T abort
00406124 t blanks.6556
00402594 T _vfiprintf_r
00404264 T _wcrtomb_r
00404350 T _wctomb_r
00402110 T _write
00404380 T _write_r
004033d0 T abort
00406174 t blanks.6556
20000584 b completed.7631
004004e4 T digitalWrite
004002f8 T delay
00400500 T digitalWrite
20000714 B errno
00404438 T fclose
00403554 T fflush
00402430 T fiprintf
00403884 T fputwc
00404488 T fclose
004035a4 T fflush
00402480 T fiprintf
004038d4 T fputwc
004000e4 t frame_dummy
20000710 b heap.6819
20000414 d impure_data
004003c0 T init
0040245c T iprintf
004003dc T init
004024ac T iprintf
20000504 d lc_ctype_charset
20000528 d lc_message_charset
20000548 d lconv
00403d58 T localeconv
00403da8 T localeconv
00400128 T loop
00400960 T main
00401ab0 T memchr
00400fe4 T memcpy
00401134 T memmove
00403e4c T memset
0040097c T main
00401acc T memchr
00401000 T memcpy
00401150 T memmove
00403e9c T memset
20000718 B pdwStack
0040040c T pinMode
00404018 T raise
00400428 T pinMode
00404068 T raise
20000588 B rx_buffer1
20000618 B rx_buffer2
00403d48 T setlocale
00403d98 T setlocale
00400100 T setup
00000000 a shift
00404028 T signal
00401634 T strcmp
004016b4 t strcmp_unaligned
00401810 T strlen
00404078 T signal
00401650 T strcmp
004016d0 t strcmp_unaligned
0040182c T strlen
200005d0 B tx_buffer1
20000660 B tx_buffer2
00400000 T vector_table
00403260 T vfiprintf
00404270 T wcrtomb
00406134 t zeroes.6557
004032b0 T vfiprintf
004042c0 T wcrtomb
00406184 t zeroes.6557

File diff suppressed because it is too large Load Diff

View File

@ -68,7 +68,7 @@ uint32_t millis( void )
return GetTickCount() ;
}
unsigned long micros( void )
uint32_t micros( void )
{
/*
unsigned long m;
@ -100,17 +100,17 @@ unsigned long micros( void )
return 0 ;
}
//void delay( uint32_t dwMs )
//{
// Wait( dwMs ) ;
//}
void delay( uint32_t dwMs )
{
Wait( dwMs ) ;
}
/* Delay for the given number of microseconds. Assumes a 64 MHz clock. */
void delayMicroseconds(unsigned int us)
void delayMicroseconds( uint32_t dwUs )
{
unsigned long startMicros = micros();
uint32_t dwStartMicros=micros() ;
while ((micros() - startMicros) < us)
while ( (micros() - dwStartMicros) < dwUs )
{
//* do nothing
}