[sam] adding wiring_digital and validation app

This commit is contained in:
aethaniel 2011-07-13 01:20:40 +02:00
parent 03c064e946
commit 6c6038f81a
75 changed files with 4454 additions and 588 deletions

View File

@ -59,9 +59,9 @@ extern "C"{
#define interrupts() sei()
#define noInterrupts() cli()
#define clockCyclesPerMicrosecond() ( BOARD_MCK / 1000000L )
#define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (BOARD_MCK / 1000L) )
#define microsecondsToClockCycles(a) ( ((a) * (BOARD_MCK / 1000L)) / 1000L )
#define clockCyclesPerMicrosecond() ( VARIANT_MCK / 1000000L )
#define clockCyclesToMicroseconds(a) ( ((a) * 1000L) / (VARIANT_MCK / 1000L) )
#define microsecondsToClockCycles(a) ( ((a) * (VARIANT_MCK / 1000L)) / 1000L )
#define lowByte(w) ((uint8_t) ((w) & 0xff))
#define highByte(w) ((uint8_t) ((w) >> 8))
@ -71,7 +71,6 @@ extern "C"{
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
typedef unsigned int word;
#define bit(b) (1UL << (b))
@ -80,29 +79,35 @@ typedef unsigned int word;
typedef uint8_t boolean ;
typedef uint8_t byte ;
void init( void ) ;
void pinMode( uint8_t, uint8_t ) ;
void digitalWrite( uint8_t, uint8_t ) ;
int digitalRead( uint8_t ) ;
int analogRead( uint8_t ) ;
void analogReference( uint8_t mode ) ;
void analogWrite( uint8_t, int ) ;
// wiring_digital.c
extern void pinMode( uint32_t dwPin, uint32_t dwMode ) ;
extern void digitalWrite( uint32_t dwPin, uint32_t dwVal ) ;
extern int digitalRead( uint32_t dwPin ) ;
unsigned long millis( void ) ;
unsigned long micros( void ) ;
// wiring_analog.c
extern int analogRead( uint8_t ) ;
extern void analogReference( uint8_t mode ) ;
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 )
void delayMicroseconds( unsigned int us ) ;
extern void delayMicroseconds( unsigned int us ) ;
void shiftOut( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val ) ;
uint8_t shiftIn( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder ) ;
// wiring_shift.c
extern void shiftOut( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val ) ;
extern uint8_t shiftIn( uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder ) ;
void attachInterrupt( uint8_t, void (*)(void), int mode ) ;
void detachInterrupt( uint8_t ) ;
extern void attachInterrupt( uint8_t, void (*)(void), int mode ) ;
extern void detachInterrupt( uint8_t ) ;
void setup( void ) ;
void loop( void ) ;
// sketch
extern void setup( void ) ;
extern void loop( void ) ;
// Get the bit location within the hardware port of the given virtual pin.
// This comes from the pins_*.c file for the active board configuration.
@ -138,16 +143,16 @@ uint16_t makeWord( byte h, byte l ) ;
#define word(...) makeWord(__VA_ARGS__)
unsigned long pulseIn( uint8_t pin, uint8_t state, unsigned long timeout = 1000000L ) ;
extern unsigned long pulseIn( uint8_t pin, uint8_t state, unsigned long timeout = 1000000L ) ;
void tone( uint8_t _pin, unsigned int frequency, unsigned long duration = 0 ) ;
void noTone( uint8_t _pin ) ;
extern void tone( uint8_t _pin, unsigned int frequency, unsigned long duration = 0 ) ;
extern void noTone( uint8_t _pin ) ;
// WMath prototypes
long random( long ) ;
long random( long, long ) ;
void randomSeed( unsigned int ) ;
long map( long, long, long, long, long ) ;
extern long random( long ) ;
extern long random( long, long ) ;
extern void randomSeed( unsigned int ) ;
extern long map( long, long, long, long, long ) ;
#endif // __cplusplus

View File

@ -1,4 +1,3 @@
//#include "wiring_private.h"
#include <stdint.h>
#include "HardwareSerial.h"

View File

@ -30,7 +30,7 @@ extern "C" {
void randomSeed(unsigned int seed)
{
if (seed != 0) {
srandom(seed);
srand(seed);
}
}
@ -39,7 +39,7 @@ long random(long howbig)
if (howbig == 0) {
return 0;
}
return random() % howbig;
return rand() % howbig;
}
long random(long howsmall, long howbig)

View File

@ -64,7 +64,7 @@ String::String(unsigned char value, unsigned char base)
{
init();
char buf[9];
utoa(value, buf, base);
// utoa(value, buf, base);
*this = buf;
}
@ -72,7 +72,7 @@ String::String(int value, unsigned char base)
{
init();
char buf[18];
itoa(value, buf, base);
// itoa(value, buf, base);
*this = buf;
}
@ -80,7 +80,7 @@ String::String(unsigned int value, unsigned char base)
{
init();
char buf[17];
utoa(value, buf, base);
// utoa(value, buf, base);
*this = buf;
}
@ -88,7 +88,7 @@ String::String(long value, unsigned char base)
{
init();
char buf[34];
ltoa(value, buf, base);
// ltoa(value, buf, base);
*this = buf;
}
@ -96,7 +96,7 @@ String::String(unsigned long value, unsigned char base)
{
init();
char buf[33];
ultoa(value, buf, base);
// ultoa(value, buf, base);
*this = buf;
}
@ -251,35 +251,35 @@ unsigned char String::concat(char c)
unsigned char String::concat(unsigned char num)
{
char buf[4];
itoa(num, buf, 10);
// itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(int num)
{
char buf[7];
itoa(num, buf, 10);
// itoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned int num)
{
char buf[6];
utoa(num, buf, 10);
// utoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(long num)
{
char buf[12];
ltoa(num, buf, 10);
// ltoa(num, buf, 10);
return concat(buf, strlen(buf));
}
unsigned char String::concat(unsigned long num)
{
char buf[11];
ultoa(num, buf, 10);
// ultoa(num, buf, 10);
return concat(buf, strlen(buf));
}

View File

@ -13,12 +13,12 @@ all: sam3s_ek
sam3s_ek:
@echo --- Making sam3s_ek
@$(MAKE) DEBUG=1 $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk
@$(MAKE) $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk
# @$(MAKE) $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk
.PHONY: clean
clean:
@echo --- Cleaning sam3s_ek
@$(MAKE) $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk $@
@$(MAKE) DEBUG=1 $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk $@
# @$(MAKE) $(SUBMAKE_OPTIONS) -f arduino_sam3s_ek.mk $@

View File

@ -3,7 +3,7 @@
CHIP=sam3s4
VARIANT=sam3s_ek
LIBNAME=arduino_sam3s_ek
LIBNAME=libarduino_$(VARIANT)
TOOLCHAIN=gcc
#-------------------------------------------------------------------------------
@ -24,17 +24,15 @@ VARIANT_PATH = ../../../variants/sam3s-ek
#-------------------------------------------------------------------------------
vpath %.h $(PROJECT_BASE_PATH) $(SYSTEM_PATH) $(VARIANT_PATH)
vpath %.c $(PROJECT_BASE_PATH)
vpath %.c $(PROJECT_BASE_PATH) $(VARIANT_PATH)
vpath %.cpp $(PROJECT_BASE_PATH) $(PROJECT_BASE_PATH)
VPATH+=$(PROJECT_BASE_PATH)
INCLUDES = -I$(PROJECT_BASE_PATH)
INCLUDES = -I$(PROJECT_BASE_PATH)
INCLUDES += -I$(SYSTEM_PATH)
INCLUDES += -I$(SYSTEM_PATH)/libsam
INCLUDES += -I$(VARIANT_PATH)
INCLUDES += -I$(VARIANT_PATH)
INCLUDES += -I$(CMSIS_PATH)
#-------------------------------------------------------------------------------
@ -69,7 +67,7 @@ C_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.c)
C_OBJ_TEMP = $(patsubst %.c, %.o, $(notdir $(C_SRC)))
# during development, remove some files
C_OBJ_FILTER=wiring_analog.o wiring_digital.o wiring_pulse.o
C_OBJ_FILTER=wiring_analog.o wiring_pulse.o
C_OBJ=$(filter-out $(C_OBJ_FILTER), $(C_OBJ_TEMP))
@ -81,8 +79,7 @@ CPP_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.cpp)
CPP_OBJ_TEMP = $(patsubst %.cpp, %.o, $(notdir $(CPP_SRC)))
# during development, remove some files
CPP_OBJ_FILTER=Tone.o WMath.o
#WString.o
CPP_OBJ_FILTER=Tone.o
CPP_OBJ=$(filter-out $(CPP_OBJ_FILTER), $(CPP_OBJ_TEMP))
@ -138,13 +135,19 @@ $(addprefix $(OUTPUT_PATH)/,$(CPP_OBJ)): $(OUTPUT_PATH)/%.o: %.cpp
# @$(CC) -c $(CPPFLAGS) $< -o $@
$(CC) -xc++ -c $(CPPFLAGS) $< -o $@
$(OUTPUT_PATH)/variant.o: $(VARIANT_PATH)/variant.cpp
# @$(CC) -c $(CPPFLAGS) $< -o $@
@$(CC) -xc++ -c $(CPPFLAGS) $< -o $@
$(addprefix $(OUTPUT_PATH)/,$(A_OBJ)): $(OUTPUT_PATH)/%.o: %.s
@$(AS) -c $(ASFLAGS) $< -o $@
$(OUTPUT_LIB): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
$(OUTPUT_LIB): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ)) $(OUTPUT_PATH)/variant.o
@$(AR) -v -r "$(OUTPUT_BIN)/$@" $^
@"$(AR)" -r "../$@" $^
@$(NM) "$(OUTPUT_BIN)/$@" > "$(OUTPUT_BIN)/$@.txt"
.PHONY: clean
clean:
@echo --- Cleaning sam3s_ek files [$(OUTPUT_PATH)$(SEP)*.o]

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,43 @@
#include "itoa.h"
#include <string.h>
/* reverse: reverse string s in place */
static void reverse( char s[] )
{
int i, j ;
char c ;
for ( i = 0, j = strlen(s)-1 ; i < j ; i++, j-- )
{
c = s[i] ;
s[i] = s[j] ;
s[j] = c ;
}
}
/* itoa: convert n to characters in s */
extern void itoa( int n, char s[] )
{
int i, sign ;
if ( (sign = n) < 0 ) /* record sign */
{
n = -n; /* make n positive */
}
i = 0;
do
{ /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0) ; /* delete it */
if (sign < 0 )
{
s[i++] = '-';
}
s[i] = '\0';
reverse( s ) ;
}

View File

@ -0,0 +1,6 @@
#ifndef _ITOA_
#define _ITOA_
extern void itoa( int n, char s[] ) ;
#endif // _ITOA_

Binary file not shown.

View File

@ -0,0 +1,385 @@
WInterrupts.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
00000003 r SCK
00000000 r SS
00000000 T attachInterrupt
00000000 T detachInterrupt
00000000 b intFunc
board_cstartup_gnu_sam3.o:
U ACC_IrqHandler
U ADC_IrqHandler
00000004 r APinDescription
U BusFault_Handler
U CRCCU_IrqHandler
U DAC_IrqHandler
U DebugMon_Handler
U Dummy_Handler
U EEFC_IrqHandler
U HardFault_Handler
U MCI_IrqHandler
00000002 r MISO
00000001 r MOSI
U MemManage_Handler
U NMI_Handler
U PIOA_IrqHandler
U PIOB_IrqHandler
U PIOC_IrqHandler
U PMC_IrqHandler
U PWM_IrqHandler
U PendSV_Handler
U RSTC_IrqHandler
U RTC_IrqHandler
U RTT_IrqHandler
00000000 T Reset_Handler
00000003 r SCK
U SMC_IrqHandler
U SPI_IrqHandler
00000000 r SS
U SSC_IrqHandler
U SUPC_IrqHandler
U SVC_Handler
U SysTick_Handler
U TC0_IrqHandler
U TC1_IrqHandler
U TC2_IrqHandler
U TC3_IrqHandler
U TC4_IrqHandler
U TC5_IrqHandler
U TWI0_IrqHandler
U TWI1_IrqHandler
U UART0_IrqHandler
U UART1_IrqHandler
U USART0_IrqHandler
U USART1_IrqHandler
U USBD_IrqHandler
U UsageFault_Handler
U WDT_IrqHandler
U __libc_init_array
U _erelocate
U _etext
U _ezero
U _sfixed
U _srelocate
U _szero
U init
U main
00000000 D pdwStack
00000000 D vector_table
itoa.o:
00000000 T itoa
00000000 t reverse
U strlen
syscalls_sam3.o:
00000000 T _close
U _end
00000000 T _exit
00000000 T _fstat
00000000 T _getpid
00000000 T _isatty
00000000 T _kill
00000000 T _lseek
00000000 T _read
00000000 T _sbrk
00000000 T _write
00000000 b heap.6819
U iprintf
00000000 T link
wiring.o:
00000004 r APinDescription
U GetTickCount
00000000 t LowLevelInit_sam3s_ek
00000002 r MISO
00000001 r MOSI
00000000 t NVIC_SetPriority
U PIO_Configure
00000003 r SCK
00000000 r SS
00000000 t SysTick_Config
00000000 T SysTick_Handler
U TimeTick_Increment
U WDT_Disable
00000000 T Wait
00000000 T delayMicroseconds
00000000 T init
00000000 T micros
00000000 T millis
00000008 b timer0_fract
00000004 B timer0_millis
00000000 B timer0_overflow_count
wiring_digital.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
U PIO_Configure
U PIO_Get
U PIO_SetOutput
00000003 r SCK
00000000 r SS
00000000 T digitalRead
00000000 T digitalWrite
00000000 T pinMode
wiring_shift.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
00000003 r SCK
00000000 r SS
U digitalRead
U digitalWrite
00000000 T shiftIn
00000000 T shiftOut
HardwareSerial.o:
00000000 T _Z10store_charhP12_ring_buffer
Print.o:
00000030 r _ZL15APinDescription
0000002b r _ZL2SS
0000002e r _ZL3SCK
0000002d r _ZL4MISO
0000002c r _ZL4MOSI
00000000 T _ZN5Print10printFloatEdh
00000000 T _ZN5Print11printNumberEmh
00000000 T _ZN5Print5printEPKc
00000000 T _ZN5Print5printERK6String
00000000 T _ZN5Print5printEc
00000000 T _ZN5Print5printEdi
00000000 T _ZN5Print5printEhi
00000000 T _ZN5Print5printEii
00000000 T _ZN5Print5printEji
00000000 T _ZN5Print5printEli
00000000 T _ZN5Print5printEmi
00000000 T _ZN5Print5writeEPKc
00000000 T _ZN5Print5writeEPKhj
00000000 T _ZN5Print7printlnEPKc
00000000 T _ZN5Print7printlnERK6String
00000000 T _ZN5Print7printlnEc
00000000 T _ZN5Print7printlnEdi
00000000 T _ZN5Print7printlnEhi
00000000 T _ZN5Print7printlnEii
00000000 T _ZN5Print7printlnEji
00000000 T _ZN5Print7printlnEli
00000000 T _ZN5Print7printlnEmi
00000000 T _ZN5Print7printlnEv
00000000 W _ZNK6String6lengthEv
U _ZNK6StringixEj
0000001c R _ZTI5Print
00000024 R _ZTS5Print
00000008 R _ZTV5Print
U _ZTVN10__cxxabiv117__class_type_infoE
U __aeabi_d2iz
U __aeabi_d2uiz
U __aeabi_dadd
U __aeabi_dcmplt
U __aeabi_ddiv
U __aeabi_dmul
U __aeabi_dsub
U __aeabi_i2d
U __aeabi_ui2d
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
UART.o:
U PMC_DisablePeripheral
U PMC_EnablePeripheral
U _Z10store_charhP12_ring_buffer
00000048 r _ZL15APinDescription
00000043 r _ZL2SS
00000046 r _ZL3SCK
00000045 r _ZL4MISO
00000044 r _ZL4MOSI
00000000 W _ZN14HardwareSerialC1Ev
00000000 W _ZN14HardwareSerialC2Ev
00000000 n _ZN14HardwareSerialC5Ev
U _ZN5Print5writeEPKc
U _ZN5Print5writeEPKhj
00000000 W _ZN5PrintC1Ev
00000000 W _ZN5PrintC2Ev
00000000 n _ZN5PrintC5Ev
00000000 W _ZN6StreamC1Ev
00000000 W _ZN6StreamC2Ev
00000000 n _ZN6StreamC5Ev
00000000 T _ZN9UARTClass10IrqHandlerEv
00000000 T _ZN9UARTClass3endEv
00000000 T _ZN9UARTClass4peekEv
00000000 T _ZN9UARTClass4readEv
00000000 T _ZN9UARTClass5beginEm
00000000 T _ZN9UARTClass5flushEv
00000000 T _ZN9UARTClass5writeEh
00000000 T _ZN9UARTClass9availableEv
00000000 T _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
00000000 T _ZN9UARTClassC2EP4Uart4IRQnmP12_ring_bufferS4_
00000000 V _ZTI14HardwareSerial
U _ZTI5Print
00000000 V _ZTI6Stream
0000002c R _ZTI9UARTClass
00000000 V _ZTS14HardwareSerial
00000000 V _ZTS6Stream
00000038 R _ZTS9UARTClass
00000000 V _ZTV14HardwareSerial
U _ZTV5Print
00000000 V _ZTV6Stream
00000000 R _ZTV9UARTClass
U _ZTVN10__cxxabiv120__si_class_type_infoE
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
USART.o:
U PMC_DisablePeripheral
U PMC_EnablePeripheral
U _Z10store_charhP12_ring_buffer
0000004c r _ZL15APinDescription
00000045 r _ZL2SS
00000048 r _ZL3SCK
00000047 r _ZL4MISO
00000046 r _ZL4MOSI
00000000 T _ZN10USARTClass10IrqHandlerEv
00000000 T _ZN10USARTClass3endEv
00000000 T _ZN10USARTClass4peekEv
00000000 T _ZN10USARTClass4readEv
00000000 T _ZN10USARTClass5beginEm
00000000 T _ZN10USARTClass5flushEv
00000000 T _ZN10USARTClass5writeEh
00000000 T _ZN10USARTClass9availableEv
00000000 T _ZN10USARTClassC1EP5Usart4IRQnmP12_ring_bufferS4_
00000000 T _ZN10USARTClassC2EP5Usart4IRQnmP12_ring_bufferS4_
00000000 W _ZN14HardwareSerialC1Ev
00000000 W _ZN14HardwareSerialC2Ev
00000000 n _ZN14HardwareSerialC5Ev
U _ZN5Print5writeEPKc
U _ZN5Print5writeEPKhj
00000000 W _ZN5PrintC1Ev
00000000 W _ZN5PrintC2Ev
00000000 n _ZN5PrintC5Ev
00000000 W _ZN6StreamC1Ev
00000000 W _ZN6StreamC2Ev
00000000 n _ZN6StreamC5Ev
0000002c R _ZTI10USARTClass
00000000 V _ZTI14HardwareSerial
U _ZTI5Print
00000000 V _ZTI6Stream
00000038 R _ZTS10USARTClass
00000000 V _ZTS14HardwareSerial
00000000 V _ZTS6Stream
00000000 R _ZTV10USARTClass
00000000 V _ZTV14HardwareSerial
U _ZTV5Print
00000000 V _ZTV6Stream
U _ZTVN10__cxxabiv120__si_class_type_infoE
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
WString.o:
00000000 T _ZN6String10invalidateEv
00000000 T _ZN6String11toLowerCaseEv
00000000 T _ZN6String11toUpperCaseEv
00000000 T _ZN6String12changeBufferEj
00000000 T _ZN6String4copyEPKcj
00000000 W _ZN6String4initEv
00000000 T _ZN6String4trimEv
00000000 T _ZN6String6concatEPKc
00000000 T _ZN6String6concatEPKcj
00000000 T _ZN6String6concatERKS_
00000000 T _ZN6String6concatEc
00000000 T _ZN6String6concatEh
00000000 T _ZN6String6concatEi
00000000 T _ZN6String6concatEj
00000000 T _ZN6String6concatEl
00000000 T _ZN6String6concatEm
00000000 T _ZN6String7replaceERKS_S1_
00000000 T _ZN6String7replaceEcc
00000000 T _ZN6String7reserveEj
00000000 T _ZN6String9setCharAtEjc
00000000 T _ZN6StringC1EPKc
00000000 T _ZN6StringC1ERKS_
00000000 T _ZN6StringC1Ec
00000000 T _ZN6StringC1Ehh
00000000 T _ZN6StringC1Eih
00000000 T _ZN6StringC1Ejh
00000000 T _ZN6StringC1Elh
00000000 T _ZN6StringC1Emh
00000000 T _ZN6StringC2EPKc
00000000 T _ZN6StringC2ERKS_
00000000 T _ZN6StringC2Ec
00000000 T _ZN6StringC2Ehh
00000000 T _ZN6StringC2Eih
00000000 T _ZN6StringC2Ejh
00000000 T _ZN6StringC2Elh
00000000 T _ZN6StringC2Emh
00000000 T _ZN6StringD1Ev
00000000 T _ZN6StringD2Ev
00000000 T _ZN6StringaSEPKc
00000000 T _ZN6StringaSERKS_
00000000 T _ZN6StringixEj
00000000 T _ZNK6String10startsWithERKS_
00000000 T _ZNK6String10startsWithERKS_j
00000000 T _ZNK6String11lastIndexOfERKS_
00000000 T _ZNK6String11lastIndexOfERKS_i
00000000 T _ZNK6String11lastIndexOfEc
00000000 T _ZNK6String11lastIndexOfEci
00000000 T _ZNK6String16equalsIgnoreCaseERKS_
00000000 T _ZNK6String5toIntEv
00000000 T _ZNK6String6charAtEj
00000000 T _ZNK6String6equalsEPKc
00000000 T _ZNK6String6equalsERKS_
00000000 T _ZNK6String7indexOfERKS_
00000000 T _ZNK6String7indexOfERKS_j
00000000 T _ZNK6String7indexOfEc
00000000 T _ZNK6String7indexOfEcj
00000000 T _ZNK6String8endsWithERKS_
00000000 T _ZNK6String8getBytesEPhjj
00000000 T _ZNK6String9compareToERKS_
00000000 T _ZNK6String9substringEj
00000000 T _ZNK6String9substringEjj
00000000 T _ZNK6StringgeERKS_
00000000 T _ZNK6StringgtERKS_
00000000 T _ZNK6StringixEj
00000000 T _ZNK6StringleERKS_
00000000 T _ZNK6StringltERKS_
00000000 b _ZZN6StringixEjE19dummy_writable_char
00000000 T _ZplRK15StringSumHelperPKc
00000000 T _ZplRK15StringSumHelperRK6String
00000000 T _ZplRK15StringSumHelperc
00000000 T _ZplRK15StringSumHelperh
00000000 T _ZplRK15StringSumHelperi
00000000 T _ZplRK15StringSumHelperj
00000000 T _ZplRK15StringSumHelperl
00000000 T _ZplRK15StringSumHelperm
U __aeabi_unwind_cpp_pr1
U atol
U free
U isspace
U memcpy
U memmove
U realloc
U strchr
U strcmp
U strcpy
U strlen
U strncmp
U strncpy
U strrchr
U strstr
U tolower
U toupper
main.o:
00000004 r _ZL15APinDescription
00000000 r _ZL2SS
00000003 r _ZL3SCK
00000002 r _ZL4MISO
00000001 r _ZL4MOSI
U __aeabi_unwind_cpp_pr0
U init
U loop
00000000 T main
U setup

View File

@ -0,0 +1,414 @@
WInterrupts.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
00000003 r SCK
00000000 r SS
00000000 T attachInterrupt
00000000 T detachInterrupt
00000000 b intFunc
board_cstartup_gnu_sam3.o:
U ACC_IrqHandler
U ADC_IrqHandler
00000004 r APinDescription
U BusFault_Handler
U CRCCU_IrqHandler
U DAC_IrqHandler
U DebugMon_Handler
U Dummy_Handler
U EEFC_IrqHandler
U HardFault_Handler
U MCI_IrqHandler
00000002 r MISO
00000001 r MOSI
U MemManage_Handler
U NMI_Handler
U PIOA_IrqHandler
U PIOB_IrqHandler
U PIOC_IrqHandler
U PMC_IrqHandler
U PWM_IrqHandler
U PendSV_Handler
U RSTC_IrqHandler
U RTC_IrqHandler
U RTT_IrqHandler
00000000 T Reset_Handler
00000003 r SCK
U SMC_IrqHandler
U SPI_IrqHandler
00000000 r SS
U SSC_IrqHandler
U SUPC_IrqHandler
U SVC_Handler
U SysTick_Handler
U TC0_IrqHandler
U TC1_IrqHandler
U TC2_IrqHandler
U TC3_IrqHandler
U TC4_IrqHandler
U TC5_IrqHandler
U TWI0_IrqHandler
U TWI1_IrqHandler
U UART0_IrqHandler
U UART1_IrqHandler
U USART0_IrqHandler
U USART1_IrqHandler
U USBD_IrqHandler
U UsageFault_Handler
U WDT_IrqHandler
U __libc_init_array
U _erelocate
U _etext
U _ezero
U _sfixed
U _srelocate
U _szero
U init
U main
00000000 D pdwStack
00000000 D vector_table
itoa.o:
00000000 T itoa
00000000 t reverse
U strlen
syscalls_sam3.o:
00000000 T _close
U _end
00000000 T _exit
00000000 T _fstat
00000000 T _getpid
00000000 T _isatty
00000000 T _kill
00000000 T _lseek
00000000 T _read
00000000 T _sbrk
00000000 T _write
00000000 b heap.6819
U iprintf
00000000 T link
wiring.o:
00000004 r APinDescription
U GetTickCount
00000000 t LowLevelInit_sam3s_ek
00000002 r MISO
00000001 r MOSI
00000000 t NVIC_SetPriority
U PIO_Configure
00000003 r SCK
00000000 r SS
00000000 t SysTick_Config
00000000 T SysTick_Handler
U TimeTick_Increment
U WDT_Disable
00000000 T delayMicroseconds
00000000 T init
00000000 T micros
00000000 T millis
00000008 b timer0_fract
00000004 B timer0_millis
00000000 B timer0_overflow_count
wiring_digital.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
U PIO_Configure
U PIO_Get
U PIO_SetOutput
00000003 r SCK
00000000 r SS
00000000 T digitalRead
00000000 T digitalWrite
00000000 T pinMode
wiring_shift.o:
00000004 r APinDescription
00000002 r MISO
00000001 r MOSI
00000003 r SCK
00000000 r SS
U digitalRead
U digitalWrite
00000000 T shiftIn
00000000 T shiftOut
HardwareSerial.o:
00000000 T _Z10store_charhP12_ring_buffer
Print.o:
00000030 r _ZL15APinDescription
0000002b r _ZL2SS
0000002e r _ZL3SCK
0000002d r _ZL4MISO
0000002c r _ZL4MOSI
00000000 T _ZN5Print10printFloatEdh
00000000 T _ZN5Print11printNumberEmh
00000000 T _ZN5Print5printEPKc
00000000 T _ZN5Print5printERK6String
00000000 T _ZN5Print5printEc
00000000 T _ZN5Print5printEdi
00000000 T _ZN5Print5printEhi
00000000 T _ZN5Print5printEii
00000000 T _ZN5Print5printEji
00000000 T _ZN5Print5printEli
00000000 T _ZN5Print5printEmi
00000000 T _ZN5Print5writeEPKc
00000000 T _ZN5Print5writeEPKhj
00000000 T _ZN5Print7printlnEPKc
00000000 T _ZN5Print7printlnERK6String
00000000 T _ZN5Print7printlnEc
00000000 T _ZN5Print7printlnEdi
00000000 T _ZN5Print7printlnEhi
00000000 T _ZN5Print7printlnEii
00000000 T _ZN5Print7printlnEji
00000000 T _ZN5Print7printlnEli
00000000 T _ZN5Print7printlnEmi
00000000 T _ZN5Print7printlnEv
00000000 W _ZNK6String6lengthEv
U _ZNK6StringixEj
0000001c R _ZTI5Print
00000024 R _ZTS5Print
00000008 R _ZTV5Print
U _ZTVN10__cxxabiv117__class_type_infoE
U __aeabi_d2iz
U __aeabi_d2uiz
U __aeabi_dadd
U __aeabi_dcmplt
U __aeabi_ddiv
U __aeabi_dmul
U __aeabi_dsub
U __aeabi_i2d
U __aeabi_ui2d
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
UART.o:
U PMC_DisablePeripheral
U PMC_EnablePeripheral
U _Z10store_charhP12_ring_buffer
00000048 r _ZL15APinDescription
00000043 r _ZL2SS
00000046 r _ZL3SCK
00000045 r _ZL4MISO
00000044 r _ZL4MOSI
00000000 W _ZN14HardwareSerialC1Ev
00000000 W _ZN14HardwareSerialC2Ev
00000000 n _ZN14HardwareSerialC5Ev
U _ZN5Print5writeEPKc
U _ZN5Print5writeEPKhj
00000000 W _ZN5PrintC1Ev
00000000 W _ZN5PrintC2Ev
00000000 n _ZN5PrintC5Ev
00000000 W _ZN6StreamC1Ev
00000000 W _ZN6StreamC2Ev
00000000 n _ZN6StreamC5Ev
00000000 T _ZN9UARTClass10IrqHandlerEv
00000000 T _ZN9UARTClass3endEv
00000000 T _ZN9UARTClass4peekEv
00000000 T _ZN9UARTClass4readEv
00000000 T _ZN9UARTClass5beginEm
00000000 T _ZN9UARTClass5flushEv
00000000 T _ZN9UARTClass5writeEh
00000000 T _ZN9UARTClass9availableEv
00000000 T _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
00000000 T _ZN9UARTClassC2EP4Uart4IRQnmP12_ring_bufferS4_
00000000 V _ZTI14HardwareSerial
U _ZTI5Print
00000000 V _ZTI6Stream
0000002c R _ZTI9UARTClass
00000000 V _ZTS14HardwareSerial
00000000 V _ZTS6Stream
00000038 R _ZTS9UARTClass
00000000 V _ZTV14HardwareSerial
U _ZTV5Print
00000000 V _ZTV6Stream
00000000 R _ZTV9UARTClass
U _ZTVN10__cxxabiv120__si_class_type_infoE
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
USART.o:
U PMC_DisablePeripheral
U PMC_EnablePeripheral
U _Z10store_charhP12_ring_buffer
0000004c r _ZL15APinDescription
00000045 r _ZL2SS
00000048 r _ZL3SCK
00000047 r _ZL4MISO
00000046 r _ZL4MOSI
00000000 T _ZN10USARTClass10IrqHandlerEv
00000000 T _ZN10USARTClass3endEv
00000000 T _ZN10USARTClass4peekEv
00000000 T _ZN10USARTClass4readEv
00000000 T _ZN10USARTClass5beginEm
00000000 T _ZN10USARTClass5flushEv
00000000 T _ZN10USARTClass5writeEh
00000000 T _ZN10USARTClass9availableEv
00000000 T _ZN10USARTClassC1EP5Usart4IRQnmP12_ring_bufferS4_
00000000 T _ZN10USARTClassC2EP5Usart4IRQnmP12_ring_bufferS4_
00000000 W _ZN14HardwareSerialC1Ev
00000000 W _ZN14HardwareSerialC2Ev
00000000 n _ZN14HardwareSerialC5Ev
U _ZN5Print5writeEPKc
U _ZN5Print5writeEPKhj
00000000 W _ZN5PrintC1Ev
00000000 W _ZN5PrintC2Ev
00000000 n _ZN5PrintC5Ev
00000000 W _ZN6StreamC1Ev
00000000 W _ZN6StreamC2Ev
00000000 n _ZN6StreamC5Ev
0000002c R _ZTI10USARTClass
00000000 V _ZTI14HardwareSerial
U _ZTI5Print
00000000 V _ZTI6Stream
00000038 R _ZTS10USARTClass
00000000 V _ZTS14HardwareSerial
00000000 V _ZTS6Stream
00000000 R _ZTV10USARTClass
00000000 V _ZTV14HardwareSerial
U _ZTV5Print
00000000 V _ZTV6Stream
U _ZTVN10__cxxabiv120__si_class_type_infoE
U __aeabi_unwind_cpp_pr1
U __cxa_pure_virtual
WMath.o:
00000000 T _Z10randomSeedj
00000000 T _Z3maplllll
00000000 T _Z6randoml
00000000 T _Z6randomll
00000000 T _Z8makeWordhh
00000000 T _Z8makeWordj
U rand
U srand
WString.o:
00000000 T _ZN6String10invalidateEv
00000000 T _ZN6String11toLowerCaseEv
00000000 T _ZN6String11toUpperCaseEv
00000000 T _ZN6String12changeBufferEj
00000000 T _ZN6String4copyEPKcj
00000000 W _ZN6String4initEv
00000000 T _ZN6String4trimEv
00000000 T _ZN6String6concatEPKc
00000000 T _ZN6String6concatEPKcj
00000000 T _ZN6String6concatERKS_
00000000 T _ZN6String6concatEc
00000000 T _ZN6String6concatEh
00000000 T _ZN6String6concatEi
00000000 T _ZN6String6concatEj
00000000 T _ZN6String6concatEl
00000000 T _ZN6String6concatEm
00000000 T _ZN6String7replaceERKS_S1_
00000000 T _ZN6String7replaceEcc
00000000 T _ZN6String7reserveEj
00000000 T _ZN6String9setCharAtEjc
00000000 T _ZN6StringC1EPKc
00000000 T _ZN6StringC1ERKS_
00000000 T _ZN6StringC1Ec
00000000 T _ZN6StringC1Ehh
00000000 T _ZN6StringC1Eih
00000000 T _ZN6StringC1Ejh
00000000 T _ZN6StringC1Elh
00000000 T _ZN6StringC1Emh
00000000 T _ZN6StringC2EPKc
00000000 T _ZN6StringC2ERKS_
00000000 T _ZN6StringC2Ec
00000000 T _ZN6StringC2Ehh
00000000 T _ZN6StringC2Eih
00000000 T _ZN6StringC2Ejh
00000000 T _ZN6StringC2Elh
00000000 T _ZN6StringC2Emh
00000000 T _ZN6StringD1Ev
00000000 T _ZN6StringD2Ev
00000000 T _ZN6StringaSEPKc
00000000 T _ZN6StringaSERKS_
00000000 T _ZN6StringixEj
00000000 T _ZNK6String10startsWithERKS_
00000000 T _ZNK6String10startsWithERKS_j
00000000 T _ZNK6String11lastIndexOfERKS_
00000000 T _ZNK6String11lastIndexOfERKS_i
00000000 T _ZNK6String11lastIndexOfEc
00000000 T _ZNK6String11lastIndexOfEci
00000000 T _ZNK6String16equalsIgnoreCaseERKS_
00000000 T _ZNK6String5toIntEv
00000000 T _ZNK6String6charAtEj
00000000 T _ZNK6String6equalsEPKc
00000000 T _ZNK6String6equalsERKS_
00000000 T _ZNK6String7indexOfERKS_
00000000 T _ZNK6String7indexOfERKS_j
00000000 T _ZNK6String7indexOfEc
00000000 T _ZNK6String7indexOfEcj
00000000 T _ZNK6String8endsWithERKS_
00000000 T _ZNK6String8getBytesEPhjj
00000000 T _ZNK6String9compareToERKS_
00000000 T _ZNK6String9substringEj
00000000 T _ZNK6String9substringEjj
00000000 T _ZNK6StringgeERKS_
00000000 T _ZNK6StringgtERKS_
00000000 T _ZNK6StringixEj
00000000 T _ZNK6StringleERKS_
00000000 T _ZNK6StringltERKS_
00000000 b _ZZN6StringixEjE19dummy_writable_char
00000000 T _ZplRK15StringSumHelperPKc
00000000 T _ZplRK15StringSumHelperRK6String
00000000 T _ZplRK15StringSumHelperc
00000000 T _ZplRK15StringSumHelperh
00000000 T _ZplRK15StringSumHelperi
00000000 T _ZplRK15StringSumHelperj
00000000 T _ZplRK15StringSumHelperl
00000000 T _ZplRK15StringSumHelperm
U __aeabi_unwind_cpp_pr1
U atol
U free
U isspace
U memcpy
U memmove
U realloc
U strchr
U strcmp
U strcpy
U strlen
U strncmp
U strncpy
U strrchr
U strstr
U tolower
U toupper
main.o:
00000004 r _ZL15APinDescription
00000000 r _ZL2SS
00000003 r _ZL3SCK
00000002 r _ZL4MISO
00000001 r _ZL4MOSI
U __aeabi_unwind_cpp_pr0
U init
U loop
00000000 T main
U setup
variant.o:
00000120 B Serial1
00000138 B Serial2
00000000 t _GLOBAL__I_rx_buffer1
00000000 T _Z16UART0_IrqHandlerv
00000000 T _Z16UART1_IrqHandlerv
00000000 t _Z41__static_initialization_and_destruction_0ii
00000004 r _ZL15APinDescription
00000000 r _ZL2SS
00000003 r _ZL3SCK
00000002 r _ZL4MISO
00000001 r _ZL4MOSI
U _ZN9UARTClass10IrqHandlerEv
U _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
U __aeabi_unwind_cpp_pr0
00000000 B rx_buffer1
00000090 B rx_buffer2
00000048 B tx_buffer1
000000d8 B tx_buffer2

Binary file not shown.

View File

@ -0,0 +1,22 @@
# Makefile for compiling libboard
BOARD =
SUBMAKE_OPTIONS=--no-builtin-rules --no-builtin-variables
#-------------------------------------------------------------------------------
# Rules
#-------------------------------------------------------------------------------
all: test
.PHONY: test
test:
@echo --- Making test
@$(MAKE) DEBUG=1 $(SUBMAKE_OPTIONS) -f test.mk
.PHONY: clean
clean:
@echo --- Cleaning test
@$(MAKE) DEBUG=1 $(SUBMAKE_OPTIONS) -f test.mk $@

View File

@ -0,0 +1,7 @@
# Optimization level
# -O1 Optimize
# -O2 Optimize even more
# -O3 Optimize yet more
# -O0 Reduce compilation time and make debugging produce the expected results
# -Os Optimize for size
OPTIMIZATION = -g -O0 -DDEBUG

View File

@ -0,0 +1,59 @@
# Tool suffix when cross-compiling
#CROSS_COMPILE = ../../../../tools/CodeSourcery_arm/bin/arm-none-eabi-
CROSS_COMPILE = C:/CodeSourcery_2011.03-42/bin/arm-none-eabi-
# Compilation tools
AR = $(CROSS_COMPILE)ar
CC = $(CROSS_COMPILE)gcc
AS = $(CROSS_COMPILE)as
#LD = $(CROSS_COMPILE)ld
SIZE = $(CROSS_COMPILE)size
NM = $(CROSS_COMPILE)nm
OBJCOPY = $(CROSS_COMPILE)objcopy
RM=cs-rm -Rf
SEP=\\
# ---------------------------------------------------------------------------------------
# C Flags
CFLAGS += -Wall -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
CFLAGS += -Werror-implicit-function-declaration -Wmain -Wparentheses
CFLAGS += -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
CFLAGS += -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef
CFLAGS += -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings
CFLAGS += -Wsign-compare -Waggregate-return -Wstrict-prototypes
CFLAGS += -Wmissing-prototypes -Wmissing-declarations
CFLAGS += -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
CFLAGS += -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long
CFLAGS += -Wunreachable-code
CFLAGS += -Wcast-align
CFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb -mlong-calls -ffunction-sections
CFLAGS += $(OPTIMIZATION) $(INCLUDES) -D$(CHIP) -D$(VARIANT)
# To reduce application size use only integer printf function.
CFLAGS += -Dprintf=iprintf
# ---------------------------------------------------------------------------------------
# CPP Flags
CPPFLAGS += -Wall -Wchar-subscripts -Wcomment -Wformat=2
CPPFLAGS += -Wmain -Wparentheses -Wcast-align -Wunreachable-code
CPPFLAGS += -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused
CPPFLAGS += -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef
CPPFLAGS += -Wshadow -Wpointer-arith -Wwrite-strings
CPPFLAGS += -Wsign-compare -Waggregate-return -Wmissing-declarations
CPPFLAGS += -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations
CPPFLAGS += -Wpacked -Wredundant-decls -Winline -Wlong-long
CPPFLAGS += --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb -mlong-calls -ffunction-sections
CPPFLAGS += $(OPTIMIZATION) $(INCLUDES) -D$(CHIP)
# To reduce application size use only integer printf function.
CPPFLAGS += -Dprintf=iprintf
# ---------------------------------------------------------------------------------------
# ASM Flags
ASFLAGS = -mcpu=cortex-m3 -mthumb -Wall -g $(OPTIMIZATION) $(INCLUDES)

View File

@ -0,0 +1,8 @@
# Optimization level
# -O1 Optimize
# -O2 Optimize even more
# -O3 Optimize yet more
# -O0 Reduce compilation time and make debugging produce the expected results
# -Os Optimize for size
OPTIMIZATION = -Os

View File

@ -1,3 +1,4 @@
#include "../Arduino.h"
void setup( void )
{
@ -5,7 +6,7 @@ void setup( void )
// Pin PIN_LED has an LED connected on most Arduino boards:
pinMode( PIN_LED, OUTPUT ) ;
Serial.begin( 19200 ) ;
Serial1.begin( 19200 ) ;
}
void loop( void )
@ -15,7 +16,7 @@ void loop( void )
digitalWrite( PIN_LED, LOW ) ; // set the LED off
delay( 1000 ) ; // wait for a second
Serial.println( "test1" ) ; // send an initial string
Serial1.println( "test1" ) ; // send an initial string
delay( 1000 ) ; // wait for a second
Serial.println( "test2" ) ; // send an initial string
Serial1.println( "test2" ) ; // send an initial string
}

View File

@ -0,0 +1,106 @@
# Makefile for compiling libArduino
.SUFFIXES: .o .a .c .s
CHIP=sam3s4
VARIANT=sam3s_ek
TOOLCHAIN=gcc
#-------------------------------------------------------------------------------
# Path
#-------------------------------------------------------------------------------
# Output directories
OUTPUT_PATH = .
# Libraries
PROJECT_BASE_PATH = .
SYSTEM_PATH = ../../../system
CMSIS_PATH = $(SYSTEM_PATH)/CMSIS/CM3/CoreSupport
VARIANT_PATH = ../../../variants/sam3s-ek
#-------------------------------------------------------------------------------
# Files
#-------------------------------------------------------------------------------
vpath %.h $(PROJECT_BASE_PATH)/.. $(VARIANT_PATH) $(SYSTEM_PATH)
vpath %.cpp $(PROJECT_BASE_PATH)
VPATH+=$(PROJECT_BASE_PATH)
INCLUDES = -I$(PROJECT_BASE_PATH)/..
INCLUDES += -I$(VARIANT_PATH)
INCLUDES += -I$(SYSTEM_PATH)
INCLUDES += -I$(SYSTEM_PATH)/libsam
INCLUDES += -I$(CMSIS_PATH)
#-------------------------------------------------------------------------------
ifdef DEBUG
include debug.mk
else
include release.mk
endif
#-------------------------------------------------------------------------------
# Tools
#-------------------------------------------------------------------------------
include $(TOOLCHAIN).mk
#-------------------------------------------------------------------------------
ifdef DEBUG
OUTPUT_OBJ=debug
OUTPUT_BIN=test_$(TOOLCHAIN)_dbg
LIBS=-Wl,--start-group -lgcc -lc -lchip_$(CHIP)_$(TOOLCHAIN)_dbg -larduino_$(VARIANT)_$(TOOLCHAIN)_dbg -Wl,--end-group
else
OUTPUT_OBJ=release
OUTPUT_BIN=test_$(TOOLCHAIN)_rel
#LIBS=-L../libchip_$(CHIP)_$(TOOLCHAIN)_rel.a -L../arduino_$(VARIANT)_$(TOOLCHAIN)_rel.a
LIBS=-Wl,--start-group -lgcc -lc -lchip_$(CHIP)_$(TOOLCHAIN)_rel -larduino_$(VARIANT)_$(TOOLCHAIN)_rel -Wl,--end-group
endif
//OUTPUT_PATH=$(OUTPUT_OBJ)_test.elf
LIB_PATH =-L$(PROJECT_BASE_PATH)/..
LIB_PATH+=-L=/lib/thumb2
LIB_PATH+=-L=/../lib/gcc/arm-none-eabi/4.4.1/thumb2
LDFLAGS= -mcpu=cortex-m3 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols
#-------------------------------------------------------------------------------
# CPP source files and objects
#-------------------------------------------------------------------------------
CPP_SRC=$(wildcard $(PROJECT_BASE_PATH)/*.cpp)
CPP_OBJ_TEMP = $(patsubst %.cpp, %.o, $(notdir $(CPP_SRC)))
# during development, remove some files
CPP_OBJ_FILTER=
CPP_OBJ=$(filter-out $(CPP_OBJ_FILTER), $(CPP_OBJ_TEMP))
#-------------------------------------------------------------------------------
# Rules
#-------------------------------------------------------------------------------
all: test
test: $(OUTPUT_BIN)
$(addprefix $(OUTPUT_PATH)/,$(CPP_OBJ)): $(OUTPUT_PATH)/%.o: %.cpp
# @$(CC) -c $(CPPFLAGS) $< -o $@
@$(CC) -xc++ -c $(CPPFLAGS) $< -o $@
$(OUTPUT_BIN): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(CPP_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
@$(CC) $(LIB_PATH) $(LDFLAGS) -T"$(VARIANT_PATH)/linker_scripts/flash.ld" -Wl,-Map,$(OUTPUT_PATH)/$@.map -o $(OUTPUT_PATH)/$@.elf $^ $(LIBS)
$(NM) $(OUTPUT_PATH)/$@.elf >$(OUTPUT_PATH)/$@.elf.txt
$(OBJCOPY) -O binary $(OUTPUT_PATH)/$@.elf $(OUTPUT_PATH)/$@.bin
$(SIZE) $^ $(OUTPUT_PATH)/$@.elf
.PHONY: clean
clean:
@echo --- Cleaning test files
-@$(RM) $(OUTPUT_PATH)/test.o 1>NUL 2>&1
-@$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf 1>NUL 2>&1
-@$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).elf.txt 1>NUL 2>&1
-@$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).bin 1>NUL 2>&1
-@$(RM) $(OUTPUT_PATH)/$(OUTPUT_BIN).map 1>NUL 2>&1

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,351 @@
00405378 t .udivsi3_skip_div0_test
00404eb8 W ACC_IrqHandler
00404eb8 W ADC_IrqHandler
004061b4 t APinDescription
004065a8 t APinDescription
00404eb8 W BusFault_Handler
00404eb8 W CRCCU_IrqHandler
00404eb8 W DAC_IrqHandler
00404eb8 W DebugMon_Handler
00404eb8 T Dummy_Handler
00404eb8 W EEFC_IrqHandler
00404eb8 W HardFault_Handler
004020c4 t LowLevelInit_sam3s_ek
00404eb8 W MCI_IrqHandler
004061b2 t MISO
004065a6 t MISO
004065a5 t MOSI
004061b1 t MOSI
00404eb8 W MemManage_Handler
00404eb8 W NMI_Handler
00402004 t NVIC_SetPriority
00404eb8 W PIOA_IrqHandler
00404eb8 W PIOB_IrqHandler
00404eb8 W PIOC_IrqHandler
004050fc T PIO_Configure
00404ec0 T PIO_DisableInterrupt
00404edc T PIO_PullUp
00405018 T PIO_SetInput
00405098 T PIO_SetOutput
00404f0c T PIO_SetPeripheral
00405298 T PMC_DisablePeripheral
004051f4 T PMC_EnablePeripheral
00404eb8 W PMC_IrqHandler
00404eb8 W PWM_IrqHandler
00404eb8 W PendSV_Handler
00404eb8 W RSTC_IrqHandler
00404eb8 W RTC_IrqHandler
00404eb8 W RTT_IrqHandler
00401dfc T Reset_Handler
004061b3 t SCK
004065a7 t SCK
00404eb8 W SMC_IrqHandler
00404eb8 W SPI_IrqHandler
004065a4 t SS
004061b0 t SS
00404eb8 W SSC_IrqHandler
00404eb8 W SUPC_IrqHandler
00404eb8 W SVC_Handler
200006e0 B Serial1
200006f8 B Serial2
0040205c t SysTick_Config
004020b4 T SysTick_Handler
00404eb8 W TC0_IrqHandler
00404eb8 W TC1_IrqHandler
00404eb8 W TC2_IrqHandler
00404eb8 W TC3_IrqHandler
00404eb8 W TC4_IrqHandler
00404eb8 W TC5_IrqHandler
00404eb8 W TWI0_IrqHandler
00404eb8 W TWI1_IrqHandler
00405358 T TimeTick_Increment
00404eb8 W UART0_IrqHandler
00404eb8 W UART1_IrqHandler
00404eb8 W USART0_IrqHandler
00404eb8 W USART1_IrqHandler
00404eb8 W USBD_IrqHandler
00404eb8 W UsageFault_Handler
0040533c T WDT_Disable
00404eb8 W WDT_IrqHandler
004027b4 t _GLOBAL__I_rx_buffer1
w _Jv_RegisterClasses
00400f48 T _Unwind_Backtrace
00400d1c T _Unwind_Complete
00400d20 T _Unwind_DeleteException
00400f24 T _Unwind_ForcedUnwind
00400c40 T _Unwind_GetCFA
0040131c T _Unwind_GetDataRelBase
00400498 t _Unwind_GetGR
00400fa0 t _Unwind_GetGR.clone.0
00401308 T _Unwind_GetLanguageSpecificData
004012fc T _Unwind_GetRegionStart
00401324 T _Unwind_GetTextRelBase
00400eb8 T _Unwind_RaiseException
00400edc T _Unwind_Resume
00400f00 T _Unwind_Resume_or_Rethrow
004004e4 t _Unwind_SetGR
00400464 T _Unwind_VRS_Get
00400858 T _Unwind_VRS_Pop
004004b0 T _Unwind_VRS_Set
00400188 t _Unwind_decode_target2
0040273c t _Z41__static_initialization_and_destruction_0ii
U _Z4Waitm
00406e00 t _ZL15APinDescription
004069c8 t _ZL15APinDescription
00405d9c t _ZL15APinDescription
00406dfb t _ZL2SS
004069c3 t _ZL2SS
00405d96 t _ZL2SS
00406dfe t _ZL3SCK
004069c6 t _ZL3SCK
00405d99 t _ZL3SCK
00405d98 t _ZL4MISO
004069c5 t _ZL4MISO
00406dfd t _ZL4MISO
00406dfc t _ZL4MOSI
00405d97 t _ZL4MOSI
004069c4 t _ZL4MOSI
00402488 W _ZN14HardwareSerialC1Ev
00402488 W _ZN14HardwareSerialC2Ev
004023a4 T _ZN5Print5printEPKc
004023c8 T _ZN5Print5printEc
0040231c T _ZN5Print5writeEPKc
0040235c T _ZN5Print5writeEPKhj
00402414 T _ZN5Print7printlnEPKc
004023ec T _ZN5Print7printlnEv
0040243c W _ZN5PrintC1Ev
0040243c W _ZN5PrintC2Ev
0040245c W _ZN6StreamC1Ev
0040245c W _ZN6StreamC2Ev
00402560 T _ZN9UARTClass3endEv
004025d0 T _ZN9UARTClass4peekEv
00402610 T _ZN9UARTClass4readEv
00402504 T _ZN9UARTClass5beginEm
00402668 T _ZN9UARTClass5flushEv
00402694 T _ZN9UARTClass5writeEh
004025a4 T _ZN9UARTClass9availableEv
004024b4 T _ZN9UARTClassC1EP4Uart4IRQnmP12_ring_bufferS4_
004024b4 T _ZN9UARTClassC2EP4Uart4IRQnmP12_ring_bufferS4_
0040725c V _ZTI14HardwareSerial
004069b4 T _ZTI5Print
00407270 V _ZTI6Stream
00406de4 T _ZTI9UARTClass
00407248 V _ZTS14HardwareSerial
004069bc T _ZTS5Print
00407268 V _ZTS6Stream
00406df0 T _ZTS9UARTClass
004071f0 V _ZTV14HardwareSerial
004069a0 T _ZTV5Print
00407220 V _ZTV6Stream
00406db8 T _ZTV9UARTClass
U _ZTVN10__cxxabiv117__class_type_infoE
U _ZTVN10__cxxabiv120__si_class_type_infoE
00407380 t __FUNCTION__.5774
00407368 t __FUNCTION__.5778
00407354 t __FUNCTION__.5800
00400f48 T ___Unwind_Backtrace
00400f24 T ___Unwind_ForcedUnwind
00400eb8 T ___Unwind_RaiseException
00400edc T ___Unwind_Resume
00400f00 T ___Unwind_Resume_or_Rethrow
004055f0 W __aeabi_idiv0
004055f0 W __aeabi_ldiv0
00405378 T __aeabi_uidiv
004055d4 T __aeabi_uidivmod
004055f4 T __aeabi_uldivmod
00400854 T __aeabi_unwind_cpp_pr0
00400850 W __aeabi_unwind_cpp_pr1
0040084c W __aeabi_unwind_cpp_pr2
00404ca8 T __ascii_wctomb
00405d30 T __assert
00405ce8 T __assert_func
w __cxa_begin_cleanup
w __cxa_call_unexpected
U __cxa_pure_virtual
w __cxa_type_match
00405680 T __divdi3
004000d0 t __do_global_dtors_aux
00407488 t __do_global_dtors_aux_fini_array_entry
004075b4 a __exidx_end
0040748c a __exidx_start
0040748c T __fini_array_end
00407488 T __fini_array_start
00404038 t __fp_lock
00404228 T __fp_lock_all
0040403c t __fp_unlock
00404240 T __fp_unlock_all
00407474 t __frame_dummy_init_array_entry
00400d30 T __gnu_Unwind_Backtrace
w __gnu_Unwind_Find_exidx
00400cb4 T __gnu_Unwind_ForcedUnwind
00400c44 T __gnu_Unwind_RaiseException
00400dd8 T __gnu_Unwind_Restore_VFP
00400de8 T __gnu_Unwind_Restore_VFP_D
00400df8 T __gnu_Unwind_Restore_VFP_D_16_to_31
00400e90 T __gnu_Unwind_Restore_WMMXC
00400e08 T __gnu_Unwind_Restore_WMMXD
00400cc8 T __gnu_Unwind_Resume
00400d04 T __gnu_Unwind_Resume_or_Rethrow
00400de0 T __gnu_Unwind_Save_VFP
00400df0 T __gnu_Unwind_Save_VFP_D
00400e00 T __gnu_Unwind_Save_VFP_D_16_to_31
00400ea4 T __gnu_Unwind_Save_WMMXC
00400e4c T __gnu_Unwind_Save_WMMXD
00405620 T __gnu_ldivmod_helper
00405650 T __gnu_uldivmod_helper
00400fc0 T __gnu_unwind_execute
004012d0 T __gnu_unwind_frame
00400500 t __gnu_unwind_pr_common
0040747c T __init_array_end
00407474 T __init_array_start
004027cc T __libc_init_array
004047d8 T __locale_charset
004047f8 T __locale_cjk_lang
004047e4 T __locale_mb_cur_max
004047f0 T __locale_msgcharset
200000f4 D __malloc_av_
2000058c B __malloc_current_mallinfo
00401b8c T __malloc_lock
200005b4 B __malloc_max_sbrked_mem
200005b8 B __malloc_max_total_mem
200004fc D __malloc_sbrk_base
20000588 B __malloc_top_pad
20000500 D __malloc_trim_threshold
00401b90 T __malloc_unlock
20000524 D __mb_cur_max
00407474 T __preinit_array_end
00407474 T __preinit_array_start
00400dc0 T __restore_core_regs
00404ad4 T __sclose
00404a6c T __seofread
0040730c T __sf_fake_stderr
004072cc T __sf_fake_stdin
004072ec T __sf_fake_stdout
0040404c T __sfmoreglue
00404190 T __sfp
00404218 T __sfp_lock_acquire
0040421c T __sfp_lock_release
00404398 T __sfvwrite_r
004015d0 T __sigtramp
00401550 T __sigtramp_r
00404088 T __sinit
00404220 T __sinit_lock_acquire
00404224 T __sinit_lock_release
0040481c T __smakebuf_r
00402f8c T __sprint_r
00404a48 T __sread
00404aac T __sseek
00404bc8 T __swbuf
00404adc T __swbuf_r
00404a70 T __swrite
00403d48 T __swsetup_r
004059e0 T __udivdi3
00405378 T __udivsi3
20000580 D __wctomb
0040407c T _cleanup
00404040 T _cleanup_r
00401efc T _close
00404d20 T _close_r
20000710 b _dwTickCount
20000718 B _ebss
0040748c T _efixed
20002b18 A _end
20000584 D _erelocate
004075b4 A _etext
00401fc4 T _exit
20000718 B _ezero
00404d48 T _fclose_r
00403e4c T _fflush_r
0040747c T _fini
00405d3c T _fiprintf_r
00404258 T _fputwc_r
00401c64 T _free_r
00401f14 T _fstat
00404e0c T _fstat_r
004046d0 T _fwalk
00404724 T _fwalk_reent
00401ff4 T _getpid
0040160c T _getpid_r
0040618c T _global_impure_ptr
20000000 D _impure_ptr
00407468 T _init
004015c4 T _init_signal
0040148c T _init_signal_r
00402854 T _iprintf_r
00401f38 T _isatty
00404e38 T _isatty_r
00401fe0 T _kill
004015e0 T _kill_r
004047fc T _localeconv_r
00401f50 T _lseek
00404e60 T _lseek_r
00401610 T _malloc_r
00401bbc T _malloc_trim_r
004014f8 T _raise_r
00401f6c T _read
00404e8c T _read_r
00402934 T _realloc_r
00401ebc T _sbrk
00401b94 T _sbrk_r
20000584 B _sbss
0040477c T _setlocale_r
00400000 T _sfixed
004014bc T _signal_r
20000000 D _srelocate
20000584 B _szero
00403010 T _vfiprintf_r
00404bd8 T _wcrtomb_r
00404cc4 T _wctomb_r
00401f88 T _write
00404cf4 T _write_r
0040132c T abort
0040727c t blanks.6556
20000584 b completed.7631
004022a0 T digitalWrite
20000714 B errno
00404dfc T fclose
00404010 T fflush
00405d5c T fiprintf
00404340 T fputwc
004000e4 t frame_dummy
00400208 t get_eit_entry
200005bc b heap.6819
20000004 d impure_data
0040217c T init
0040281c T iprintf
20000504 d lc_ctype_charset
20000528 d lc_message_charset
20000548 d lconv
00404814 T localeconv
00400128 T loop
0040271c T main
00404908 T memchr
0040133c T memcpy
00402880 T memmove
00404994 T memset
00400f6c t next_unwind_byte
20000718 B pdwStack
004021c8 T pinMode
004015a4 T raise
00400dc0 T restore_core_regs
004002d8 t restore_non_core_regs
200005c0 B rx_buffer1
20000650 B rx_buffer2
004001a8 t search_EIT_table
00400194 t selfrel_offset31
00404804 T setlocale
00400100 T setup
00000000 a shift
004015b4 T signal
00402d50 T strcmp
00402dd0 t strcmp_unaligned
00402f2c T strlen
20000608 B tx_buffer1
20000698 B tx_buffer2
00400fbc t unwind_UCB_from_context
00400434 t unwind_phase2
00400340 t unwind_phase2_forced
00400000 T vector_table
00403d2c T vfiprintf
00404c34 T wcrtomb
0040728c t zeroes.6557

File diff suppressed because it is too large Load Diff

View File

@ -100,10 +100,10 @@ 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)

View File

@ -25,141 +25,79 @@
*/
#include "wiring_private.h"
#include "pins_arduino.h"
//#include "pins_arduino.h"
void pinMode(uint8_t pin, uint8_t mode)
/// \brief Configures the specified pin to behave either as an input or an output. See the description of digital pins for details.
///
/// \param dwPin the number of the pin whose mode you wish to set
/// \param dwMode either INPUT or OUTPUT
///
void pinMode( uint32_t dwPin, uint32_t dwMode )
{
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *reg;
if ( APinDescription[dwPin].dwPinType == PIO_NOT_A_PIN )
{
return ;
}
if (port == NOT_A_PIN) return;
switch ( dwMode )
{
case INPUT:
PIO_Configure( APinDescription[dwPin].pPort, PIO_INPUT, APinDescription[dwPin].dwPin, 0 ) ;
break ;
// JWS: can I let the optimizer do this?
reg = portModeRegister(port);
case OUTPUT:
PIO_Configure( APinDescription[dwPin].pPort, PIO_OUTPUT_1, APinDescription[dwPin].dwPin, APinDescription[dwPin].dwPinAttribute ) ;
break ;
if (mode == INPUT) {
uint8_t oldSREG = SREG;
cli();
*reg &= ~bit;
SREG = oldSREG;
} else {
uint8_t oldSREG = SREG;
cli();
*reg |= bit;
SREG = oldSREG;
default:
break ;
}
}
// Forcing this inline keeps the callers from having to push their own stuff
// on the stack. It is a good performance win and only takes 1 more byte per
// user than calling. (It will take more bytes on the 168.)
//
// But shouldn't this be moved into pinMode? Seems silly to check and do on
// each digitalread or write.
//
// Mark Sproul:
// - Removed inline. Save 170 bytes on atmega1280
// - changed to a switch statment; added 32 bytes but much easier to read and maintain.
// - Added more #ifdefs, now compiles for atmega645
//
//static inline void turnOffPWM(uint8_t timer) __attribute__ ((always_inline));
//static inline void turnOffPWM(uint8_t timer)
static void turnOffPWM(uint8_t timer)
/// \brief Write a HIGH or a LOW value to a digital pin.
///
/// \desc If the pin has been configured as an OUTPUT with pinMode(), its voltage will be set to the
/// corresponding value: 5V (or 3.3V on 3.3V boards) for HIGH, 0V (ground) for LOW.
///
/// If the pin is configured as an INPUT, writing a HIGH value with digitalWrite() will enable an internal
/// 20K pullup resistor (see the tutorial on digital pins). Writing LOW will disable the pullup. The pullup
/// resistor is enough to light an LED dimly, so if LEDs appear to work, but very dimly, this is a likely
/// cause. The remedy is to set the pin to an output with the pinMode() function.
///
/// NOTE: Digital pin PIN_LED is harder to use as a digital input than the other digital pins because it has an LED
/// and resistor attached to it that's soldered to the board on most boards. If you enable its internal 20k pull-up
/// resistor, it will hang at around 1.7 V instead of the expected 5V because the onboard LED and series resistor
/// pull the voltage level down, meaning it always returns LOW. If you must use pin PIN_LED as a digital input, use an
/// external pull down resistor.
///
/// \param dwPin the pin number
/// \param dwVal HIGH or LOW
///
void digitalWrite( uint32_t dwPin, uint32_t dwVal )
{
switch (timer)
{
#if defined(TCCR1A) && defined(COM1A1)
case TIMER1A: cbi(TCCR1A, COM1A1); break;
#endif
#if defined(TCCR1A) && defined(COM1B1)
case TIMER1B: cbi(TCCR1A, COM1B1); break;
#endif
#if defined(TCCR2) && defined(COM21)
case TIMER2: cbi(TCCR2, COM21); break;
#endif
#if defined(TCCR0A) && defined(COM0A1)
case TIMER0A: cbi(TCCR0A, COM0A1); break;
#endif
#if defined(TIMER0B) && defined(COM0B1)
case TIMER0B: cbi(TCCR0A, COM0B1); break;
#endif
#if defined(TCCR2A) && defined(COM2A1)
case TIMER2A: cbi(TCCR2A, COM2A1); break;
#endif
#if defined(TCCR2A) && defined(COM2B1)
case TIMER2B: cbi(TCCR2A, COM2B1); break;
#endif
#if defined(TCCR3A) && defined(COM3A1)
case TIMER3A: cbi(TCCR3A, COM3A1); break;
#endif
#if defined(TCCR3A) && defined(COM3B1)
case TIMER3B: cbi(TCCR3A, COM3B1); break;
#endif
#if defined(TCCR3A) && defined(COM3C1)
case TIMER3C: cbi(TCCR3A, COM3C1); break;
#endif
if ( APinDescription[dwPin].dwPinType == PIO_NOT_A_PIN )
{
return ;
}
#if defined(TCCR4A) && defined(COM4A1)
case TIMER4A: cbi(TCCR4A, COM4A1); break;
#endif
#if defined(TCCR4A) && defined(COM4B1)
case TIMER4B: cbi(TCCR4A, COM4B1); break;
#endif
#if defined(TCCR4A) && defined(COM4C1)
case TIMER4C: cbi(TCCR4A, COM4C1); break;
#endif
#if defined(TCCR5A)
case TIMER5A: cbi(TCCR5A, COM5A1); break;
case TIMER5B: cbi(TCCR5A, COM5B1); break;
case TIMER5C: cbi(TCCR5A, COM5C1); break;
#endif
}
PIO_SetOutput( APinDescription[dwPin].pPort, APinDescription[dwPin].dwPin, dwVal, 0, PIO_PULLUP ) ;
}
void digitalWrite(uint8_t pin, uint8_t val)
/// \brief Reads the value from a specified digital pin, either HIGH or LOW.
///
/// \param dwPin the number of the digital pin you want to read (int)
///
int digitalRead( uint32_t dwPin )
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *out;
if ( APinDescription[dwPin].dwPinType == PIO_NOT_A_PIN )
{
return LOW ;
}
if (port == NOT_A_PIN) return;
if ( PIO_Get( APinDescription[dwPin].pPort, PIO_INPUT, APinDescription[dwPin].dwPin ) == 1 )
{
return HIGH ;
}
// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
out = portOutputRegister(port);
uint8_t oldSREG = SREG;
cli();
if (val == LOW) {
*out &= ~bit;
} else {
*out |= bit;
}
SREG = oldSREG;
}
int digitalRead(uint8_t pin)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
if (port == NOT_A_PIN) return LOW;
// If the pin that support PWM output, we need to turn it off
// before getting a digital reading.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
if (*portInputRegister(port) & bit) return HIGH;
return LOW;
return LOW ;
}

View File

@ -23,7 +23,6 @@
*/
#include "wiring_private.h"
#include "pins_arduino.h"
/* Measures the length (in microseconds) of a pulse on the pin; state is HIGH
* or LOW, the type of pulse to measure. Works on pulses from 2-3 microseconds

View File

@ -6,7 +6,8 @@ SUBMAKE_OPTIONS=--no-builtin-rules --no-builtin-variables
# Rules
#-------------------------------------------------------------------------------
all: libchip_sam3s4_gcc_dbg.a libchip_sam3s4_gcc_rel.a
# libchip_sam3s4_gcc_rel.a
all: libchip_sam3s4_gcc_dbg.a
libchip_sam3s4_gcc_dbg.a:
@echo --- Making $@

View File

@ -116,8 +116,8 @@ $(addprefix $(OUTPUT_PATH)/,$(A_OBJ)): $(OUTPUT_PATH)/%.o: %.s
@"$(AS)" -c $(ASFLAGS) $< -o $@
$(OUTPUT_LIB): $(addprefix $(OUTPUT_PATH)/, $(C_OBJ)) $(addprefix $(OUTPUT_PATH)/, $(A_OBJ))
@"$(AR)" -r "../../../cores/sam/$@" $^
@"$(AR)" -r "$(OUTPUT_BIN)/$@" $^
@"$(AR)" -r "../../../cores/sam/$@" $^
@"$(NM)" "$(OUTPUT_BIN)/$@" > "$(OUTPUT_BIN)/$@.txt"
.PHONY: clean
@ -129,3 +129,4 @@ clean:
# dependencies
$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: $(PROJECT_BASE_PATH)/chip.h $(wildcard $(PROJECT_BASE_PATH)/include/*.h) $(wildcard $(CMSIS_BASE_PATH)/*.h)

View File

@ -305,6 +305,16 @@ tc.o:
00000058 r __FUNCTION__.5789
U __assert_func
timetick.o:
00000000 T GetTickCount
00000000 t NVIC_SetPriority
00000000 T Sleep
00000000 t SysTick_Config
00000000 T TimeTick_Configure
00000000 T TimeTick_Increment
00000000 T Wait
00000000 b _dwTickCount
twi.o:
00000000 T TWI_ByteReceived
00000000 T TWI_ByteSent
@ -385,13 +395,3 @@ wdt.o:
00000000 T WDT_Restart
core_cm3.o:
timetick.o:
00000000 T GetTickCount
00000000 t NVIC_SetPriority
00000000 T Sleep
00000000 t SysTick_Config
00000000 T TimeTick_Configure
00000000 T TimeTick_Increment
00000000 T Wait
00000000 b _dwTickCount

View File

@ -1,390 +0,0 @@
acc.o:
00000000 T ACC_Configure
00000000 T ACC_GetComparisionResult
00000000 T ACC_SetComparisionPair
00000000 r __FUNCTION__.5780
U __assert_func
adc.o:
00000000 T ADC_CfgChannelMode
00000000 T ADC_CfgLowRes
00000000 T ADC_CfgPowerSave
00000000 T ADC_CfgTiming
00000000 T ADC_CfgTrigering
00000000 T ADC_GetConvertedData
00000000 T ADC_Initialize
00000000 T ADC_IsChannelInterruptStatusSet
00000000 T ADC_IsInterruptMasked
00000000 T ADC_IsStatusSet
00000000 T ADC_ReadBuffer
00000000 T ADC_SetCompareChannel
00000000 T ADC_SetCompareMode
00000000 T ADC_SetComparisonWindow
00000000 T ADC_cfgFrequency
00000000 r __FUNCTION__.5807
00000015 r __FUNCTION__.5812
U __assert_func
async.o:
00000000 T ASYNC_IsFinished
crccu.o:
00000000 T CRCCU_ComputeCrc
00000000 T CRCCU_Configure
00000000 T CRCCU_ResetCrcValue
dacc.o:
00000000 T DACC_Initialize
00000000 T DACC_SetConversionData
00000000 T DACC_WriteBuffer
00000000 r __FUNCTION__.5784
U __assert_func
efc.o:
00000000 T EFC_ComputeAddress
00000000 T EFC_DisableFrdyIt
00000000 T EFC_EnableFrdyIt
00000000 T EFC_GetResult
00000000 T EFC_GetStatus
00000000 T EFC_PerformCommand
00000000 T EFC_SetWaitState
00000000 T EFC_StartCommand
00000000 T EFC_TranslateAddress
00000000 b IAP_PerformCommand.6416
00000000 r __FUNCTION__.6378
00000015 r __FUNCTION__.6386
00000028 r __FUNCTION__.6398
U __assert_func
exceptions.o:
00000000 W ACC_IrqHandler
00000000 W ADC_IrqHandler
00000000 W BusFault_Handler
00000000 W CRCCU_IrqHandler
00000000 W DAC_IrqHandler
00000000 W DebugMon_Handler
00000000 T Dummy_Handler
00000000 W EEFC_IrqHandler
00000000 W HardFault_Handler
00000000 W MCI_IrqHandler
00000000 W MemManage_Handler
00000000 W NMI_Handler
00000000 W PIOA_IrqHandler
00000000 W PIOB_IrqHandler
00000000 W PIOC_IrqHandler
00000000 W PMC_IrqHandler
00000000 W PWM_IrqHandler
00000000 W PendSV_Handler
00000000 W RSTC_IrqHandler
00000000 W RTC_IrqHandler
00000000 W RTT_IrqHandler
00000000 W SMC_IrqHandler
00000000 W SPI_IrqHandler
00000000 W SSC_IrqHandler
00000000 W SUPC_IrqHandler
00000000 W SVC_Handler
00000000 W SysTick_Handler
00000000 W TC0_IrqHandler
00000000 W TC1_IrqHandler
00000000 W TC2_IrqHandler
00000000 W TC3_IrqHandler
00000000 W TC4_IrqHandler
00000000 W TC5_IrqHandler
00000000 W TWI0_IrqHandler
00000000 W TWI1_IrqHandler
00000000 W UART0_IrqHandler
00000000 W UART1_IrqHandler
00000000 W USART0_IrqHandler
00000000 W USART1_IrqHandler
00000000 W USBD_IrqHandler
00000000 W UsageFault_Handler
00000000 W WDT_IrqHandler
flashd.o:
00000000 t ComputeLockRange
U EFC_ComputeAddress
U EFC_DisableFrdyIt
U EFC_GetResult
U EFC_PerformCommand
U EFC_SetWaitState
U EFC_StartCommand
U EFC_TranslateAddress
00000000 T FLASHD_ClearGPNVM
00000000 T FLASHD_Erase
00000000 T FLASHD_Initialize
00000000 T FLASHD_IsGPNVMSet
00000000 T FLASHD_IsLocked
00000000 T FLASHD_Lock
00000000 T FLASHD_ReadUniqueID
00000000 T FLASHD_SetGPNVM
00000000 T FLASHD_Unlock
00000000 T FLASHD_Write
00000000 r __FUNCTION__.6150
0000000d r __FUNCTION__.6202
0000001d r __FUNCTION__.6211
0000002f r __FUNCTION__.6215
0000003f r __FUNCTION__.6219
00000051 r __FUNCTION__.6224
U __assert_func
00000004 b _adwPageBuffer
00000000 b _dwUseIAP
U memcpy
pio.o:
00000000 T PIO_Clear
00000000 T PIO_Configure
00000000 T PIO_DisableInterrupt
00000000 T PIO_Get
00000000 T PIO_GetOutputDataStatus
00000000 T PIO_PullUp
00000000 T PIO_Set
00000000 T PIO_SetDebounceFilter
00000000 T PIO_SetInput
00000000 T PIO_SetOutput
00000000 T PIO_SetPeripheral
U PMC_EnablePeripheral
pio_capture.o:
00000000 T PIO_CaptureDisable
00000000 T PIO_CaptureDisableIt
00000000 T PIO_CaptureEnable
00000000 T PIO_CaptureEnableIt
00000000 T PIO_CaptureHandler
00000000 T PIO_CaptureInit
U PMC_EnablePeripheral
00000000 b _PioCaptureCopy
00000000 r __FUNCTION__.6372
U __assert_func
pmc.o:
00000000 T PMC_DisableAllPeripherals
00000000 T PMC_DisablePeripheral
00000000 T PMC_EnableAllPeripherals
00000000 T PMC_EnablePeripheral
00000000 T PMC_IsPeriphEnabled
00000000 r __FUNCTION__.5774
00000015 r __FUNCTION__.5778
0000002b r __FUNCTION__.5800
U __assert_func
pwmc.o:
00000000 r C.1.7002
00000000 t FindClockConfiguration
00000000 T PWMC_ConfigureChannel
00000000 T PWMC_ConfigureChannelExt
00000000 T PWMC_ConfigureClocks
00000000 T PWMC_ConfigureComparisonUnit
00000000 T PWMC_ConfigureEventLineMode
00000000 T PWMC_ConfigureSyncChannel
00000000 T PWMC_DisableChannel
00000000 T PWMC_DisableChannelIt
00000000 T PWMC_DisableIt
00000000 T PWMC_DisableOverrideOutput
00000000 T PWMC_EnableChannel
00000000 T PWMC_EnableChannelIt
00000000 T PWMC_EnableFaultProtection
00000000 T PWMC_EnableIt
00000000 T PWMC_EnableOverrideOutput
00000000 T PWMC_FaultClear
00000000 T PWMC_SetDeadTime
00000000 T PWMC_SetDutyCycle
00000000 T PWMC_SetFaultMode
00000000 T PWMC_SetFaultProtectionValue
00000000 T PWMC_SetOverrideValue
00000000 T PWMC_SetPeriod
00000000 T PWMC_SetSyncChannelUpdatePeriod
00000000 T PWMC_SetSyncChannelUpdateUnlock
00000000 T PWMC_WriteBuffer
0000002c r __FUNCTION__.5778
00000043 r __FUNCTION__.5789
00000059 r __FUNCTION__.5804
00000072 r __FUNCTION__.5815
00000087 r __FUNCTION__.5826
00000099 r __FUNCTION__.5833
000000aa r __FUNCTION__.5915
000000c7 r __FUNCTION__.5921
U __assert_func
rtc.o:
00000000 T RTC_ClearSCCR
00000000 T RTC_DisableIt
00000000 T RTC_EnableIt
00000000 T RTC_GetDate
00000000 T RTC_GetHourMode
00000000 T RTC_GetSR
00000000 T RTC_GetTime
00000000 T RTC_SetDate
00000000 T RTC_SetDateAlarm
00000000 T RTC_SetHourMode
00000000 T RTC_SetTime
00000000 T RTC_SetTimeAlarm
00000000 r __FUNCTION__.5775
00000010 r __FUNCTION__.5784
0000001d r __FUNCTION__.5789
U __assert_func
rtt.o:
00000000 T RTT_EnableIT
00000000 T RTT_GetStatus
00000000 T RTT_GetTime
00000000 T RTT_SetAlarm
00000000 T RTT_SetPrescaler
00000000 r __FUNCTION__.5782
0000000d r __FUNCTION__.5790
U __assert_func
spi.o:
U PMC_EnablePeripheral
00000000 T SPI_Configure
00000000 T SPI_ConfigureNPCS
00000000 T SPI_Disable
00000000 T SPI_DisableIt
00000000 T SPI_Enable
00000000 T SPI_EnableIt
00000000 T SPI_GetStatus
00000000 T SPI_IsFinished
00000000 T SPI_PdcDisableRx
00000000 T SPI_PdcDisableTx
00000000 T SPI_PdcEnableRx
00000000 T SPI_PdcEnableTx
00000000 T SPI_PdcSetRx
00000000 T SPI_PdcSetTx
00000000 T SPI_Read
00000000 T SPI_ReadBuffer
00000000 T SPI_Write
00000000 T SPI_WriteBuffer
spi_pdc.o:
U PMC_DisablePeripheral
U PMC_EnablePeripheral
00000000 T SPID_Configure
00000000 T SPID_ConfigureCS
00000000 T SPID_Handler
00000000 T SPID_IsBusy
00000000 T SPID_SendCommand
U SPI_Configure
U SPI_ConfigureNPCS
U SPI_DisableIt
U SPI_Enable
U SPI_EnableIt
U SPI_PdcDisableRx
U SPI_PdcDisableTx
U SPI_PdcEnableRx
U SPI_PdcEnableTx
U SPI_PdcSetRx
U SPI_PdcSetTx
ssc.o:
00000000 T SSC_Configure
00000000 T SSC_ConfigureReceiver
00000000 T SSC_ConfigureTransmitter
00000000 T SSC_DisableInterrupts
00000000 T SSC_DisableReceiver
00000000 T SSC_DisableTransmitter
00000000 T SSC_EnableInterrupts
00000000 T SSC_EnableReceiver
00000000 T SSC_EnableTransmitter
00000000 T SSC_Read
00000000 T SSC_ReadBuffer
00000000 T SSC_Write
00000000 T SSC_WriteBuffer
tc.o:
00000000 T TC_Configure
00000000 T TC_FindMckDivisor
00000000 T TC_Start
00000000 T TC_Stop
00000000 r __FUNCTION__.5777
0000000d r __FUNCTION__.5783
00000016 r __FUNCTION__.5789
U __assert_func
twi.o:
00000000 T TWI_ByteReceived
00000000 T TWI_ByteSent
00000000 T TWI_ConfigureMaster
00000000 T TWI_ConfigureSlave
00000000 T TWI_DisableIt
00000000 T TWI_EnableIt
00000000 T TWI_GetMaskedStatus
00000000 T TWI_GetStatus
00000000 T TWI_ReadByte
00000000 T TWI_SendSTOPCondition
00000000 T TWI_StartRead
00000000 T TWI_StartWrite
00000000 T TWI_Stop
00000000 T TWI_TransferComplete
00000000 T TWI_WriteByte
00000000 r __FUNCTION__.6360
00000014 r __FUNCTION__.6375
00000027 r __FUNCTION__.6379
00000030 r __FUNCTION__.6386
0000003e r __FUNCTION__.6390
0000004b r __FUNCTION__.6395
00000059 r __FUNCTION__.6403
00000068 r __FUNCTION__.6417
00000075 r __FUNCTION__.6422
00000083 r __FUNCTION__.6426
00000091 r __FUNCTION__.6431
000000a5 r __FUNCTION__.6435
U __assert_func
twid.o:
00000000 T TWID_Handler
00000000 T TWID_Initialize
00000000 T TWID_Read
00000000 T TWID_Write
U TWI_ByteReceived
U TWI_ByteSent
U TWI_DisableIt
U TWI_EnableIt
U TWI_GetMaskedStatus
U TWI_ReadByte
U TWI_SendSTOPCondition
U TWI_StartRead
U TWI_StartWrite
U TWI_Stop
U TWI_TransferComplete
U TWI_WriteByte
00000000 r __FUNCTION__.6365
00000010 r __FUNCTION__.6372
0000001d r __FUNCTION__.6385
00000027 r __FUNCTION__.6407
U __assert_func
usart.o:
00000000 T USART_Configure
00000000 T USART_DisableIt
00000000 T USART_EnableIt
00000000 T USART_GetChar
00000000 T USART_GetStatus
00000000 T USART_IsDataAvailable
00000000 T USART_IsRxReady
00000000 T USART_PutChar
00000000 T USART_Read
00000000 T USART_ReadBuffer
00000000 T USART_SetIrdaFilter
00000000 T USART_SetReceiverEnabled
00000000 T USART_SetTransmitterEnabled
00000000 T USART_Write
00000000 T USART_WriteBuffer
00000000 r __FUNCTION__.6159
U __assert_func
wdt.o:
00000000 T WDT_Disable
00000000 T WDT_Enable
00000000 T WDT_GetPeriod
00000000 T WDT_GetStatus
00000000 T WDT_Restart
core_cm3.o:
timetick.o:
00000000 T GetTickCount
00000000 T Sleep
00000000 T TimeTick_Configure
00000000 T TimeTick_Increment
00000000 T Wait
00000000 b _dwTickCount

View File

@ -1,3 +1,4 @@
#include "Arduino.h"
/*
* UART objects
@ -7,8 +8,8 @@ ring_buffer tx_buffer1 = { { 0 }, 0, 0 } ;
ring_buffer rx_buffer2 = { { 0 }, 0, 0 } ;
ring_buffer tx_buffer2 = { { 0 }, 0, 0 } ;
UARTClass Serial1( &rx_buffer1, &tx_buffer1, UART0, UART0_IRQn, ID_UART0 ) ;
UARTClass Serial2( &rx_buffer2, &tx_buffer2, UART1, UART1_IRQn, ID_UART1 ) ;
UARTClass Serial1( UART0, UART0_IRQn, ID_UART0, &rx_buffer1, &tx_buffer1 ) ;
UARTClass Serial2( UART1, UART1_IRQn, ID_UART1, &rx_buffer2, &tx_buffer2 ) ;
// IT handlers
extern void UART0_IrqHandler( void )
@ -23,7 +24,7 @@ extern void UART1_IrqHandler( void )
// ----------------------------------------------------------------------------
#if 0
/*
* USART objects
@ -33,8 +34,8 @@ ring_buffer tx_buffer3 = { { 0 }, 0, 0 } ;
ring_buffer rx_buffer4 = { { 0 }, 0, 0 } ;
ring_buffer tx_buffer4 = { { 0 }, 0, 0 } ;
USARTClass Serial3( &rx_buffer3, &tx_buffer3, USART0, USART0_IRQn, ID_USART0 ) ;
USARTClass Serial4( &rx_buffer4, &tx_buffer4, USART1, USART1_IRQn, ID_USART1 ) ;
USARTClass Serial3( USART0, USART0_IRQn, ID_USART0, &rx_buffer3, &tx_buffer3 ) ;
USARTClass Serial4( USART1, USART1_IRQn, ID_USART1, &rx_buffer4, &tx_buffer4 ) ;
// IT handlers
extern void USART0_IrqHandler( void )
@ -46,6 +47,6 @@ extern void USART1_IrqHandler( void )
{
Serial4.IrqHandler() ;
}
#endif
// ----------------------------------------------------------------------------