diff --git a/Makefile b/Makefile new file mode 100644 --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C bsp + make -C examples + make -C lib + @echo Code compiled + +clean: + make clean -C bsp + make clean -C examples + make clean -C lib + @echo Code compiled + diff --git a/bsp/Makefile b/bsp/Makefile new file mode 100644 --- /dev/null +++ b/bsp/Makefile @@ -0,0 +1,13 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C src + @echo Code compiled + +clean: + make clean -C src + @echo Code compiled + diff --git a/bsp/bin/LandTiger/libbsp.a b/bsp/bin/LandTiger/libbsp.a new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f908430d4321d537a924f113b6074060510c0364 GIT binary patch literal 17554 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 JLE*D5{}0#Ia7O?D diff --git a/bsp/bsp.pro b/bsp/bsp.pro new file mode 100644 --- /dev/null +++ b/bsp/bsp.pro @@ -0,0 +1,3 @@ +TEMPLATE = dir +SUBDIRS += src + diff --git a/bsp/includes/LandTiger/bsp.h b/bsp/includes/LandTiger/bsp.h new file mode 100644 --- /dev/null +++ b/bsp/includes/LandTiger/bsp.h @@ -0,0 +1,88 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef BSP_H +#define BSP_H +#include "LPC17xx.h" +#include +#include + + +extern uartDev* UART0; +extern uartDev* UART1; +extern uartDev* UART2; +extern uartDev* UART3; + +extern i2cDev* IIC0; +extern i2cDev* IIC1; +extern i2cDev* IIC2; + +extern float VREF0; + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + +#define LEDS_ON LPC_GPIO2->FIOSET = 255 + +#define LED1_ON LPC_GPIO2->FIOSET = (1<<0) +#define LED2_ON LPC_GPIO2->FIOSET = (1<<1) +#define LED3_ON LPC_GPIO2->FIOSET = (1<<2) +#define LED4_ON LPC_GPIO2->FIOSET = (1<<3) +#define LED5_ON LPC_GPIO2->FIOSET = (1<<4) +#define LED6_ON LPC_GPIO2->FIOSET = (1<<5) +#define LED7_ON LPC_GPIO2->FIOSET = (1<<6) +#define LED8_ON LPC_GPIO2->FIOSET = (1<<7) + +#define LEDS_OFF LPC_GPIO2->FIOCLR = ~(255) + +#define LED1_OFF LPC_GPIO2->FIOCLR = (1<<0) +#define LED2_OFF LPC_GPIO2->FIOCLR = (1<<1) +#define LED3_OFF LPC_GPIO2->FIOCLR = (1<<2) +#define LED4_OFF LPC_GPIO2->FIOCLR = (1<<3) +#define LED5_OFF LPC_GPIO2->FIOCLR = (1<<4) +#define LED6_OFF LPC_GPIO2->FIOCLR = (1<<5) +#define LED7_OFF LPC_GPIO2->FIOCLR = (1<<6) +#define LED8_OFF LPC_GPIO2->FIOCLR = (1<<7) + +extern int bsp_init(); + +extern void bsp_GPIO_init(); +extern void bsp_uart_init(); +extern void bsp_iic_init(); +extern void consoleputc(char); +extern char consolegetc(); + +#endif + + + + + + + + + + diff --git a/bsp/includes/generic/bsp.h b/bsp/includes/generic/bsp.h new file mode 100644 diff --git a/bsp/includes/mbed/bsp.h b/bsp/includes/mbed/bsp.h new file mode 100644 --- /dev/null +++ b/bsp/includes/mbed/bsp.h @@ -0,0 +1,71 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef BSP_H +#define BSP_H +#include "LPC17xx.h" +#include + +extern uartDev* UART0; +extern uartDev* UART1; +extern uartDev* UART2; +extern uartDev* UART3; + +#define VREF0 (float)3.3 + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + + +#define LED1_ON LPC_GPIO1->FIOPIN |= (1<<18) +#define LED2_ON LPC_GPIO1->FIOPIN |= (1<<20) +#define LED3_ON LPC_GPIO1->FIOPIN |= (1<<21) +#define LED4_ON LPC_GPIO1->FIOPIN |= (1<<23) + +#define LED1_OFF LPC_GPIO1->FIOPIN &= ~(1<<18) +#define LED2_OFF LPC_GPIO1->FIOPIN &= ~(1<<20) +#define LED3_OFF LPC_GPIO1->FIOPIN &= ~(1<<21) +#define LED4_OFF LPC_GPIO1->FIOPIN &= ~(1<<23) + + +extern int bsp_init(); + +extern void bsp_GPIO_init(); +extern void bsp_uart_init(); +extern void consoleputc(char); +extern char consolegetc(); + +#endif + + + + + + + + + + diff --git a/bsp/src/LandTiger/Makefile b/bsp/src/LandTiger/Makefile new file mode 100644 --- /dev/null +++ b/bsp/src/LandTiger/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/LandTiger +HEADERS += bsp.h +LIBSOURCES += bsp.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libbsp +LIBUC_INCLUDES=$(LIBUC_INC_DIR_UART) $(LIBUC_INC_DIR_IIC) $(LIBUC_INC_DIR_CORE) +LIBUC_LIBRARIES=$(LIBUC_LIBS_DIR_UART) $(LIBUC_LIBS_UART) $(LIBUC_LIBS_DIR_IIC) $(LIBUC_LIBS_IIC) $(LIBUC_LIBS_DIR_CORE) $(LIBUC_LIBS_CORE) +TARGETINSTALLPATH=$(LIBUC_BSP_BIN_DIR)/LandTiger +HEADERSINSTALLPATH=$(LIBUC_BSP_INC_DIR)/LandTiger +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/bsp/src/LandTiger/bsp.c b/bsp/src/LandTiger/bsp.c new file mode 100644 --- /dev/null +++ b/bsp/src/LandTiger/bsp.c @@ -0,0 +1,100 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "bsp.h" +#include "core.h" + + +unsigned int OSC0 =12000000; +unsigned int INTOSC =4000000; +unsigned int RTCOSC =32768; +unsigned int currentCpuFreq=0; +float VREF0 =(float)3.3; +uartDev* UART0=(uartDev*)0; +uartDev* UART1=(uartDev*)0; +uartDev* UART2=(uartDev*)0; +uartDev* UART3=(uartDev*)0; + +i2cDev* IIC0=(i2cDev*)0; +i2cDev* IIC1=(i2cDev*)0; +i2cDev* IIC2=(i2cDev*)0; + +int bsp_init() +{ + bsp_GPIO_init(); + coresetCpuFreq(20000000); + currentCpuFreq=coregetCpuFreq(); + coresetCpuFreq(60000000); + currentCpuFreq=coregetCpuFreq(); + bsp_uart_init(); + bsp_iic_init(); + return 0; +} + +void bsp_GPIO_init() +{ + LPC_SC->PCONP |= ( 1 << 15 ); // power up GPIO + LPC_GPIO2->FIODIR |=255; + LEDS_OFF; +} + +void bsp_uart_init() +{ + LPC_SC->PCONP |= ( 1 << 24 ); // power up UART3 + LPC_SC->PCONP |= ( 1 << 4 ); // power up UART1 + LPC_PINCON->PINSEL0 |= (1<<4); + LPC_PINCON->PINSEL0 &= ~(1<<5); + LPC_PINCON->PINSEL0 |= (1<<6); + LPC_PINCON->PINSEL0 &= ~(1<<7); + LPC_PINCON->PINSEL0 |= (1<<20); + LPC_PINCON->PINSEL0 &= ~(1<<21); + LPC_PINCON->PINSEL0 |= (1<<22); + LPC_PINCON->PINSEL0 &= ~(1<<23); + UART0= uartopen(0); + uartsetup(UART0,38400,8,1,uartNoParity); + UART2= uartopen(2); + uartsetup(UART2,38400,8,1,uartNoParity); +} + +void bsp_iic_init() +{ + LPC_SC->PCONP |= ( 1 << 7 ); // power up IIC0 + LPC_PINCON->PINSEL1 |= (1<<22); + LPC_PINCON->PINSEL1 &= ~(1<<23); + LPC_PINCON->PINSEL1 |= (1<<24); + LPC_PINCON->PINSEL1 &= ~(1<<25); + IIC0 = i2copen(0); + i2csetdatarate(IIC0,100000); +} + +void consoleputc(char c) +{ + uartputc(UART0,c); +} + + +char consolegetc() +{ + return uartgetc(UART0); +} + + + diff --git a/bsp/src/LandTiger/bsp.d b/bsp/src/LandTiger/bsp.d new file mode 100644 --- /dev/null +++ b/bsp/src/LandTiger/bsp.d @@ -0,0 +1,20 @@ +bsp.o: bsp.c bsp.h /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h \ + /opt/libuc2/lib/includes/lpc17XX/UART/uart.h \ + /opt/libuc2/lib/includes/lpc17XX/IIC/iic.h \ + /opt/libuc2/lib/includes/lpc17XX/CORE/core.h + +bsp.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h: + +/opt/libuc2/lib/includes/lpc17XX/UART/uart.h: + +/opt/libuc2/lib/includes/lpc17XX/IIC/iic.h: + +/opt/libuc2/lib/includes/lpc17XX/CORE/core.h: diff --git a/bsp/src/LandTiger/bsp.h b/bsp/src/LandTiger/bsp.h new file mode 100644 --- /dev/null +++ b/bsp/src/LandTiger/bsp.h @@ -0,0 +1,88 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef BSP_H +#define BSP_H +#include "LPC17xx.h" +#include +#include + + +extern uartDev* UART0; +extern uartDev* UART1; +extern uartDev* UART2; +extern uartDev* UART3; + +extern i2cDev* IIC0; +extern i2cDev* IIC1; +extern i2cDev* IIC2; + +extern float VREF0; + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + +#define LEDS_ON LPC_GPIO2->FIOSET = 255 + +#define LED1_ON LPC_GPIO2->FIOSET = (1<<0) +#define LED2_ON LPC_GPIO2->FIOSET = (1<<1) +#define LED3_ON LPC_GPIO2->FIOSET = (1<<2) +#define LED4_ON LPC_GPIO2->FIOSET = (1<<3) +#define LED5_ON LPC_GPIO2->FIOSET = (1<<4) +#define LED6_ON LPC_GPIO2->FIOSET = (1<<5) +#define LED7_ON LPC_GPIO2->FIOSET = (1<<6) +#define LED8_ON LPC_GPIO2->FIOSET = (1<<7) + +#define LEDS_OFF LPC_GPIO2->FIOCLR = ~(255) + +#define LED1_OFF LPC_GPIO2->FIOCLR = (1<<0) +#define LED2_OFF LPC_GPIO2->FIOCLR = (1<<1) +#define LED3_OFF LPC_GPIO2->FIOCLR = (1<<2) +#define LED4_OFF LPC_GPIO2->FIOCLR = (1<<3) +#define LED5_OFF LPC_GPIO2->FIOCLR = (1<<4) +#define LED6_OFF LPC_GPIO2->FIOCLR = (1<<5) +#define LED7_OFF LPC_GPIO2->FIOCLR = (1<<6) +#define LED8_OFF LPC_GPIO2->FIOCLR = (1<<7) + +extern int bsp_init(); + +extern void bsp_GPIO_init(); +extern void bsp_uart_init(); +extern void bsp_iic_init(); +extern void consoleputc(char); +extern char consolegetc(); + +#endif + + + + + + + + + + diff --git a/bsp/src/LandTiger/landtiger.pro b/bsp/src/LandTiger/landtiger.pro new file mode 100644 --- /dev/null +++ b/bsp/src/LandTiger/landtiger.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libbsp +TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/LandTiger +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/LandTiger + +LIBS += UART IIC CORE + +SOURCES += bsp.c + + +HEADERS += bsp.h diff --git a/bsp/src/Makefile b/bsp/src/Makefile new file mode 100644 --- /dev/null +++ b/bsp/src/Makefile @@ -0,0 +1,17 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C generic + make -C LandTiger + make -C mbed + @echo Code compiled + +clean: + make clean -C generic + make clean -C LandTiger + make clean -C mbed + @echo Code compiled + diff --git a/bsp/src/bsp.pro b/bsp/src/bsp.pro new file mode 100644 --- /dev/null +++ b/bsp/src/bsp.pro @@ -0,0 +1,4 @@ +TEMPLATE = dir +SUBDIRS += generic \ + LandTiger \ + mbed diff --git a/bsp/src/generic/Makefile b/bsp/src/generic/Makefile new file mode 100644 --- /dev/null +++ b/bsp/src/generic/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/generic +HEADERS += bsp.h +LIBSOURCES += bsp.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libbsp +LIBUC_INCLUDES= +LIBUC_LIBRARIES= +TARGETINSTALLPATH=$(LIBUC_BSP_BIN_DIR)/generic +HEADERSINSTALLPATH=$(LIBUC_BSP_INC_DIR)/generic +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/bsp/src/generic/bsp.c b/bsp/src/generic/bsp.c new file mode 100644 diff --git a/bsp/src/generic/bsp.d b/bsp/src/generic/bsp.d new file mode 100644 --- /dev/null +++ b/bsp/src/generic/bsp.d @@ -0,0 +1,1 @@ +bsp.o: bsp.c diff --git a/bsp/src/generic/bsp.h b/bsp/src/generic/bsp.h new file mode 100644 diff --git a/bsp/src/generic/generic.pro b/bsp/src/generic/generic.pro new file mode 100644 --- /dev/null +++ b/bsp/src/generic/generic.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libbsp +TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/generic +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/generic + +LIBS += + +SOURCES += bsp.c + + +HEADERS += bsp.h diff --git a/bsp/src/mbed/Makefile b/bsp/src/mbed/Makefile new file mode 100644 --- /dev/null +++ b/bsp/src/mbed/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/mbed +HEADERS += bsp.h +LIBSOURCES += bsp.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libbsp +LIBUC_INCLUDES=$(LIBUC_INC_DIR_UART) $(LIBUC_INC_DIR_CORE) +LIBUC_LIBRARIES=$(LIBUC_LIBS_DIR_UART) $(LIBUC_LIBS_UART) $(LIBUC_LIBS_DIR_CORE) $(LIBUC_LIBS_CORE) +TARGETINSTALLPATH=$(LIBUC_BSP_BIN_DIR)/mbed +HEADERSINSTALLPATH=$(LIBUC_BSP_INC_DIR)/mbed +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/bsp/src/mbed/bsp.c b/bsp/src/mbed/bsp.c new file mode 100644 --- /dev/null +++ b/bsp/src/mbed/bsp.c @@ -0,0 +1,88 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "bsp.h" +#include "core.h" + + +unsigned int OSC0 =12000000; +unsigned int INTOSC =4000000; +unsigned int RTCOSC =32768; +unsigned int currentCpuFreq=0; +uartDev* UART0=(uartDev*)0; +uartDev* UART1=(uartDev*)0; +uartDev* UART2=(uartDev*)0; +uartDev* UART3=(uartDev*)0; + + +int bsp_init() +{ + bsp_GPIO_init(); + coresetCpuFreq(40000000); + currentCpuFreq=coregetCpuFreq(); + coresetCpuFreq(80000000); + currentCpuFreq=coregetCpuFreq(); + bsp_uart_init(); + return 0; +} + +void bsp_GPIO_init() +{ + LPC_SC->PCONP |= ( 1 << 15 ); // power up GPIO + LPC_GPIO1->FIODIR |= (1<<18)+(1<<20)+(1<<21)+(1<<23); // puts P1.18 20 21 23 into output mode. + LED1_OFF; + LED2_OFF; + LED3_OFF; + LED4_OFF; +} + +void bsp_uart_init() +{ + LPC_SC->PCONP |= ( 1 << 25 ); // power up UART3 + LPC_SC->PCONP |= ( 1 << 4 ); // power up UART1 + LPC_PINCON->PINSEL0 |= (1<<1); + LPC_PINCON->PINSEL0 &= ~(1<<0); + LPC_PINCON->PINSEL0 |= (1<<3); + LPC_PINCON->PINSEL0 &= ~(1<<2); + LPC_PINCON->PINSEL0 |= (1<<30); + LPC_PINCON->PINSEL0 &= ~(1<<31); + LPC_PINCON->PINSEL1 |= (1<<0); + LPC_PINCON->PINSEL1 &= ~(1<<1); + UART3= uartopen(3); + uartsetup(UART3,9600,8,1,uartNoParity); + UART1= uartopen(1); + uartsetup(UART1,38400,8,1,uartNoParity); +} + + +void consoleputc(char c) +{ + uartputc(UART1,c); +} + + +char consolegetc() +{ + return uartgetc(UART1); +} + + + diff --git a/bsp/src/mbed/bsp.d b/bsp/src/mbed/bsp.d new file mode 100644 --- /dev/null +++ b/bsp/src/mbed/bsp.d @@ -0,0 +1,17 @@ +bsp.o: bsp.c bsp.h /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h \ + /opt/libuc2/lib/includes/lpc17XX/UART/uart.h \ + /opt/libuc2/lib/includes/lpc17XX/CORE/core.h + +bsp.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h: + +/opt/libuc2/lib/includes/lpc17XX/UART/uart.h: + +/opt/libuc2/lib/includes/lpc17XX/CORE/core.h: diff --git a/bsp/src/mbed/bsp.h b/bsp/src/mbed/bsp.h new file mode 100644 --- /dev/null +++ b/bsp/src/mbed/bsp.h @@ -0,0 +1,71 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef BSP_H +#define BSP_H +#include "LPC17xx.h" +#include + +extern uartDev* UART0; +extern uartDev* UART1; +extern uartDev* UART2; +extern uartDev* UART3; + +#define VREF0 (float)3.3 + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + + +#define LED1_ON LPC_GPIO1->FIOPIN |= (1<<18) +#define LED2_ON LPC_GPIO1->FIOPIN |= (1<<20) +#define LED3_ON LPC_GPIO1->FIOPIN |= (1<<21) +#define LED4_ON LPC_GPIO1->FIOPIN |= (1<<23) + +#define LED1_OFF LPC_GPIO1->FIOPIN &= ~(1<<18) +#define LED2_OFF LPC_GPIO1->FIOPIN &= ~(1<<20) +#define LED3_OFF LPC_GPIO1->FIOPIN &= ~(1<<21) +#define LED4_OFF LPC_GPIO1->FIOPIN &= ~(1<<23) + + +extern int bsp_init(); + +extern void bsp_GPIO_init(); +extern void bsp_uart_init(); +extern void consoleputc(char); +extern char consolegetc(); + +#endif + + + + + + + + + + diff --git a/bsp/src/mbed/mbed.pro b/bsp/src/mbed/mbed.pro new file mode 100644 --- /dev/null +++ b/bsp/src/mbed/mbed.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libbsp +TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/mbed +HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/mbed + +LIBS += UART CORE + +SOURCES += bsp.c + + +HEADERS += bsp.h diff --git a/examples/Makefile b/examples/Makefile new file mode 100644 --- /dev/null +++ b/examples/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C lpc1768_led_blink + make -C lpc1768_led_blink_Clk_api + make -C lpc1768_uart + make -C lpc1768_uart_LandTiger + @echo Code compiled + +clean: + make clean -C lpc1768_led_blink + make clean -C lpc1768_led_blink_Clk_api + make clean -C lpc1768_uart + make clean -C lpc1768_uart_LandTiger + @echo Code compiled + diff --git a/examples/examples.pro b/examples/examples.pro new file mode 100644 --- /dev/null +++ b/examples/examples.pro @@ -0,0 +1,6 @@ +TEMPLATE = dir +SUBDIRS += lpc1768_led_blink\ + lpc1768_led_blink_Clk_api \ + lpc1768_uart \ + lpc1768_uart_LandTiger + diff --git a/examples/lpc1768_iic_LandTiger/Makefile b/examples/lpc1768_iic_LandTiger/Makefile new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERS += +APPSOURCES += main.c +OBJECTFILES = $(APPSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=lpc1768_iic +LIBUC_INCLUDES=$(LIBUC_INC_DIR_UART) $(LIBUC_INC_DIR_IIC) $(LIBUC_INC_DIR_CORE) $(LIBUC_INC_DIR_UCSTRINGS) +LIBUC_LIBRARIES=$(LIBUC_LIBS_DIR_UART) $(LIBUC_LIBS_UART) $(LIBUC_LIBS_DIR_IIC) $(LIBUC_LIBS_IIC) $(LIBUC_LIBS_DIR_CORE) $(LIBUC_LIBS_CORE) $(LIBUC_LIBS_DIR_UCSTRINGS) $(LIBUC_LIBS_UCSTRINGS) +TARGETINSTALLPATH= +HEADERSINSTALLPATH= +BSP=LandTiger +include $(ARCH)/rules.mk + +all:bin + @echo Code compiled + diff --git a/examples/lpc1768_iic_LandTiger/lpc1768_iic.bin b/examples/lpc1768_iic_LandTiger/lpc1768_iic.bin new file mode 100755 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..40d520b2d01be3d4411c1a9337fc5fafcbc54a33 GIT binary patch literal 4588 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 D_;!oy diff --git a/examples/lpc1768_iic_LandTiger/lpc1768_iic.dump b/examples/lpc1768_iic_LandTiger/lpc1768_iic.dump new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/lpc1768_iic.dump @@ -0,0 +1,134 @@ + +lpc1768_iic.elf: file format elf32-littlearm +lpc1768_iic.elf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000000 + +Program Header: + LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 + filesz 0x000011e0 memsz 0x000011e0 flags r-x + LOAD off 0x00010000 vaddr 0x10000000 paddr 0x000011e0 align 2**15 + filesz 0x0000000c memsz 0x0000001c flags rw- + LOAD off 0x0001001c vaddr 0x1000001c paddr 0x000011ec align 2**15 + filesz 0x00000000 memsz 0x00000804 flags rw- +private flags = 5000000: [Version5 EABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 000011e0 00000000 00000000 00008000 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 0000000c 10000000 000011e0 00010000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .bss 00000010 1000000c 000011ec 0001000c 2**2 + ALLOC + 3 .stackarea 00000804 1000001c 000011ec 0001001c 2**2 + ALLOC + 4 .comment 0000002a 00000000 00000000 0001000c 2**0 + CONTENTS, READONLY + 5 .ARM.attributes 00000031 00000000 00000000 00010036 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .text 00000000 .text +10000000 l d .data 00000000 .data +1000000c l d .bss 00000000 .bss +1000001c l d .stackarea 00000000 .stackarea +00000000 l d .comment 00000000 .comment +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l df *ABS* 00000000 startup_LPC17xx.c +00000000 l df *ABS* 00000000 main.c +00001194 l O .text 00000002 C.1.5890 +00000000 l df *ABS* 00000000 system_LPC17xx.c +00000000 l df *ABS* 00000000 bsp.c +00000000 l df *ABS* 00000000 uart.c +000011a4 l O .text 00000010 CSWTCH.5 +000011b4 l O .text 00000009 C.0.5884 +000011c0 l O .text 00000004 C.2.5915 +00000000 l df *ABS* 00000000 iic.c +000011c4 l O .text 00000004 C.3.5941 +000011c8 l O .text 0000000c CSWTCH.8 +00000000 l df *ABS* 00000000 core.c +00000000 l df *ABS* 00000000 libucstrings.c +00000310 w F .text 00000002 TIMER2_IRQHandler +00000310 w F .text 00000002 DebugMon_Handler +00000310 w F .text 00000002 RIT_IRQHandler +00000980 g F .text 00000014 i2copen +00000b40 g F .text 00000084 coregetCpuFreq +00000310 w F .text 00000002 I2C0_IRQHandler +00000000 w *UND* 00000000 HardFault_Handler +00000310 w F .text 00000002 SysTick_Handler +00000310 w F .text 00000002 PWM1_IRQHandler +10000014 g O .bss 00000004 IIC0 +000011e0 g *ABS* 00000000 _sidata +00000310 w F .text 00000002 PendSV_Handler +00000000 w *UND* 00000000 NMI_Handler +00000310 w F .text 00000002 I2C1_IRQHandler +00000310 w F .text 00000002 EINT2_IRQHandler +00000310 w F .text 00000002 UART1_IRQHandler +00000310 w F .text 00000002 EINT3_IRQHandler +000011e0 g .data 00000000 _etext +1000000c g .bss 00000000 _sbss +10000004 g O .data 00000004 INTOSC +000004a4 g F .text 000000a0 bsp_init +00000310 w F .text 00000002 TIMER3_IRQHandler +00000310 w F .text 00000002 UART0_IRQHandler +00000bc4 g F .text 000005ce libucprintf +000007a0 g F .text 0000003c uartsetup +1000000c g O .bss 00000004 UART2 +00000310 w F .text 00000002 UsageFault_Handler +10000000 g .data 00000000 _sdata +10000008 g O .data 00000004 RTCOSC +00000310 w F .text 00000002 PLL0_IRQHandler +00000310 w F .text 00000002 CAN_IRQHandler +00000310 w F .text 00000002 PLL1_IRQHandler +00000310 w F .text 00000002 SSP0_IRQHandler +10000000 g O .data 00000004 OSC0 +00000620 g F .text 00000180 uartsetbaudrate +00000310 w F .text 00000002 I2S_IRQHandler +00000310 w F .text 00000002 I2C2_IRQHandler +00000310 w F .text 00000002 RTC_IRQHandler +1000001c g .bss 00000000 _ebss +00000310 w F .text 00000002 TIMER0_IRQHandler +000001a4 w F .text 0000016c Reset_Handler +00000310 w F .text 00000002 SPI_IRQHandler +00000310 w F .text 00000002 EINT1_IRQHandler +00000310 w F .text 00000002 TIMER1_IRQHandler +00000310 w F .text 00000002 UART2_IRQHandler +00000310 g F .text 00000002 Default_Handler +00000310 w F .text 00000002 ADC_IRQHandler +00000560 g F .text 000000c0 uartsetpclkfactor +00000310 w F .text 00000002 SSP1_IRQHandler +10000000 g .data 00000000 _efastcode +00000310 w F .text 00000002 USB_IRQHandler +00000310 w F .text 00000002 BOD_IRQHandler +00000310 w F .text 00000002 MemManage_Handler +000000c4 g F .text 000000e0 main +000003fc g F .text 000000a8 bsp_uart_init +10000020 g O .stackarea 00000800 pulStack +00000310 w F .text 00000002 WDT_IRQHandler +00000310 w F .text 00000002 SVC_Handler +00000314 g F .text 000000e8 SystemInit +00000310 w F .text 00000002 QEI_IRQHandler +10000020 g .stackarea 00000000 _sstack +00000310 w F .text 00000002 EINT0_IRQHandler +000011e0 g .data 00000000 _sifastcode +10000018 g O .bss 00000004 UART0 +00000554 g F .text 0000000c uartputc +000007f0 g F .text 0000018e i2cwrite2 +10000000 g .data 00000000 _sfastcode +10000820 g .stackarea 00000000 _estack +1000000c g .data 00000000 _edata +10000820 g .stackarea 00000000 _end +000007dc g F .text 00000014 uartopen +00000544 g F .text 00000010 consoleputc +00000994 g F .text 0000008c i2csetdatarate +00000000 g O .text 000000c4 g_pfnVectors +00000310 w F .text 00000002 DMA_IRQHandler +00000310 w F .text 00000002 BusFault_Handler +00000310 w F .text 00000002 UART3_IRQHandler +00000310 w F .text 00000002 MCPWM_IRQHandler +10000010 g O .bss 00000004 currentCpuFreq +00000310 w F .text 00000002 ENET_IRQHandler +00000a20 g F .text 00000120 coresetCpuFreq + + diff --git a/examples/lpc1768_iic_LandTiger/lpc1768_iic.hex b/examples/lpc1768_iic_LandTiger/lpc1768_iic.hex new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/lpc1768_iic.hex @@ -0,0 +1,288 @@ +:1000000020080010A5010000000000000000000012 +:1000100011030000110300001103000000000000A4 +:1000200000000000000000000000000011030000BC +:100030001103000000000000110300001103000084 +:100040001103000011030000110300001103000060 +:100050001103000011030000110300001103000050 +:100060001103000011030000110300001103000040 +:100070001103000011030000110300001103000030 +:100080001103000011030000110300001103000020 +:100090001103000011030000110300001103000010 +:1000A0001103000011030000110300001103000000 +:1000B00011030000110300001103000011030000F0 +:1000C000110300002DE9F04186B000F0EBF92F4A52 +:1000D0004FF41641106800F0A3FA2D48022103885E +:1000E0002C4F2D4D2D4C0491ADF8143000260DF100 +:1000F0001408DDF810E03868A021002204ABCDF828 +:1001000004E0CDF8008000F073FB01230222EB61D4 +:10011000AA6104230822EB61AA6110232022EB616B +:10012000AA6140238022EB6131461D48AA6100F09C +:1001300049FD00200390039B711CA34205DC039B37 +:100140005A1C03920398A042F9DD01230222AB61FD +:10015000EA6104230822AB61EA6110232022AB612B +:10016000EA6140238022AB610D48EA6100F02AFD7C +:100170000020039003990236A142BADC039A501C76 +:1001800003900399A142F9DDB3E700BF1800001006 +:10019000941100001400001040C00920FFFF0F0060 +:1001A00098110000684620F007018D46F1B500F077 +:1001B000B1F84F484F49884235D04F4CA14232D216 +:1001C000024652F8046B0B46CD4343F8046B6519A5 +:1001D000A342C5F3810526D29DB1012D0BD0022D7E +:1001E00005D0156800F108021D6001F1080352F8FE +:1001F000040B43F8040B52F8041B43F8041BA342FE +:1002000011D296465EF8047B5668D568DEF8040085 +:100210009C464CF8047B5E60CCF80400DD60103333 +:100220001032A342EDD335483549884234D0354C9D +:10023000A14231D2024652F8046B0B46CD4343F83B +:10024000046B6519A342C5F3810525D29DB1012D2B +:100250000BD0022D05D0156800F108021D6001F1D8 +:10026000080352F8040B43F8040B52F8041B43F83C +:10027000041BA34210D294465CF8047B5668D568F0 +:10028000DCF80400194641F8047B5E604860DD60DC +:1002900010331032A342EED31B491C48814221D2B5 +:1002A00000220B46CC4343F8042B04198342C4F3C9 +:1002B000810417D264B1012C06D0022C1CBF1A6035 +:1002C00001F1080343F8042B43F8042B834209D2BD +:1002D0009E464EF8042B5A60CEF80420DA601033A4 +:1002E0008342F5D3FFF7EEFEBDE8F1408546704747 +:1002F000E0110000000000100C000010E0110000F0 +:1003000000000010000000100C0000101C00001085 +:10031000FEE700BF3649202330B4C1F8A031D1F840 +:10032000A001334A10F0400FF9D0324D0124AA2029 +:1003300055230321C2F80411C2F80C411146C2F83A +:100340008450C2F88C00C2F88C30C2F88040C2F8E9 +:100350008C00C2F88C30D1F88830254A13F0806FB9 +:10036000F9D00321AA245520C2F88010C2F88C408D +:100370001146C2F88C00D1F888301D4A13F0407F36 +:10038000F9D02324C2F8A440AA2055230124C2F89E +:10039000AC001146C2F8AC30C2F8A040C2F8AC00C4 +:1003A000C2F8AC30D1F8A830114A13F4806FF9D0FC +:1003B0000321AA235520C2F8A010C2F8AC30114680 +:1003C000C2F8AC00D1F8A800094A10F4407FF9D077 +:1003D0000949002043F23A03C2F8A801C2F8AC016F +:1003E000C2F8C410C2F8C801136030BC704700BF27 +:1003F00000C00F4063000500DE87280430B5254D9E +:10040000254BD5F8C41083B041F08074C5F8C440C2 +:10041000D5F8C420002042F01001C5F8C4101A68B5 +:10042000044642F010051D60196821F020021A6090 +:100430001D6845F0400119601A6822F080051D60B2 +:10044000196841F480121A601D6825F400111960C2 +:100450001A6842F480051D601968104D21F40002ED +:100460001A6000F0BBF90822012328604FF41641FE +:10047000009400F095F9022000F0B0F9084D4FF417 +:100480001641286008220123009400F089F903B086 +:1004900030BD00BF00C00F4000C002401800001077 +:1004A0000C00001038B51F4C1F49D4F8C4301F4849 +:1004B00043F40045C4F8C4500A686FF0FF0542F0E9 +:1004C000FF030B60CD6100F0ABFA00F039FB184D73 +:1004D0002860184800F0A4FA00F032FB2860FFF70B +:1004E0008DFFD4F8C420144942F08000C4F8C40041 +:1004F0004B68002043F480024A604B6823F40002FA +:100500004A604B6843F080724A604B6823F0007287 +:100510004A6000F035FA094B0949186000F03AFAD0 +:10052000002038BD00C00F4040C00920002D31011F +:10053000100000100087930300C002401400001058 +:10054000A0860100024B0146186800F003B800BF06 +:1005500018000010436913F0200FFBD001607047B2 +:1005600030B42A4A84B00DF1040C04460D46284BE1 +:1005700007CAACE803009C428CF8002029D018DDA3 +:10058000244B9C421BD003F580418C4214D104A91A +:100590004D19214B15F80C0CD3F8AC11820442EA2A +:1005A0000101C3F8AC11D3F8AC010240C3F8AC218F +:1005B00002E01A4884421ED004B030BC70470DF1EE +:1005C000100C6544144B15F80C2CD3F8AC11120424 +:1005D000E5E704A94D19104B15F80C0CD3F8A81138 +:1005E000020242EA0101C3F8A811D3F8A8010240AF +:1005F000C3F8A821E0E70DF1100C6544064B15F88F +:100600000C2CD3F8A8119201EBE700BFB411000045 +:10061000000001400080094000C00F4000C00040C1 +:100620002DE9F047044682B00F46002853D000F071 +:1006300087FA554E554B804630689C42019000F039 +:100640009C804BDD524B9C425DD003F5804294422E +:100650005FD0002302A800EB030E1EF804CC3F017C +:10066000B8FBFCF3BB422BD2D6F80090474DDFF825 +:1006700020A1AC42CDF8049067D050DC454B9C42A1 +:1006800035D000230DF1080E0EEB030C1CF8041CF2 +:10069000012920D049082046FFF762FF3268AC42AA +:1006A00001925ED046DC3B48844226D0002302A95A +:1006B00001EB030E1EF804CCB8FBFCF3BB42D8D30D +:1006C000E268B3FBF7F342F08001E1602360E06889 +:1006D00020F08002E26002B0BDE8F0872D498C4234 +:1006E000B7D12D48D0F8A831C3F38113B2E72A4817 +:1006F000D0F8A821C2F38113C4E7274AD2F8A81181 +:10070000C1F38113D3E72448D0F8AC31C3F30143DC +:10071000A0E7214AD2F8AC11C1F381439AE75445CE +:1007200019D01E498C42ACD11B49D1F8AC31C3F36E +:100730008143A7E754451AD0184B9C42B6D1164BBB +:10074000D3F8AC01C0F38143B1E71349D1F8A83124 +:10075000C3F3012396E71048D0F8AC21C2F301435C +:1007600090E70D4BD3F8A801C0F301239FE70A4A95 +:10077000D2F8AC11C1F3014399E7074AD2F8A811A6 +:10078000C1F3012366E700BFC01100000000014073 +:100790000080094000C0004000C00F4000C0094078 +:1007A00030B4092A9DF808400ED8013BDDB2053A65 +:1007B000012D0ED90023072C0ED900259C18641991 +:1007C000C46030BCFFF72CBF013BDDB20322012D1A +:1007D000F0D89B00072CF0D8E500EFE703289ABF7C +:1007E000024B53F820000020704700BFA411000006 +:1007F0002DE9F00F099D0446282728684900A761C4 +:100800000027089EC9B202302F606768F82FFCD11C +:10081000202727604FF0040C4FF008094FF0000A22 +:100820004FF02808002840F39B80276817F0080F36 +:10083000FBD06768083F302FF7D80FF2080B5BF842 +:1008400027F000BF3B0900002B0800002B08000028 +:100850002B0800002B0800002B0800002B080000CC +:100860002B0800004B0900002B0800002B0800009B +:100870002B0800002B0800002B0800002B080000AC +:100880002B080000230900002B0800002B080000A3 +:100890002B0800002B0800002B0800002B0800008C +:1008A0002B080000610900002B0800002B08000045 +:1008B0002B0800002B0800002B0800002B0800006C +:1008C0002B080000090900002B0800002B0800007D +:1008D0002B0800002B0800002B0800002B0800004C +:1008E0002B080000610900002B0800002B08000005 +:1008F0002B0800002B0800002B0800002B0800002C +:100900002B080000610900001F68A160012FC4F8D6 +:1009100000C0C4F818902BDD013F12F8011B1F60C6 +:1009200080E71F68A160012FC4F800A0C4F81890E8 +:10093000F2DC013816F8011B74E7A160C4F800C0AE +:10094000C4F8188012F8011B6CE71F68A160013F12 +:10095000C4F800C0C4F8188012F8011B1F6061E7DA +:100960001422082322600020A361BDE8F00F704725 +:10097000296801380131296016F8011B52E700BFD0 +:1009800002289ABF024B53F820000020704700BF96 +:10099000C811000030B5044683B00D4618B300F00E +:1009A000CFF81B490B6801931A4B9C4224D003F5E6 +:1009B0008822944226D0184B9C4216D0002302AACB +:1009C000D11811F804CC6C23B0FBFCFEBEFBF5F58E +:1009D0006D08032D98BF042540222820A3612561BE +:1009E00065612260A06103B030BD03F5602CDCF8C6 +:1009F000A831C3F38133E2E7084AD2F8AC11C1F35E +:100A00008113DCE70549D1F8AC31C3F30153D6E7D4 +:100A1000C411000000C0054000C0014000C00F40EC +:100A2000F0B4404D3F4CD5F80C31D4F80C1113F014 +:100A3000030F08BF3C4B3B4E01F003070CBF1A6885 +:100A400042F21072D6F80C51012F08BF374F05F053 +:100A5000030308BF3A68022B08BF354B314908BF72 +:100A60001A68344BB3FBF0F4601EC1F80401500067 +:100A7000012218E0B4FBF0F1CF1F0132B7F5FC7F83 +:100A8000144622D9B5FBF0F1CD1F0132B5F5FC7F3C +:100A90001BD9B6FBF0F1CD1FA21CB5F5FC7F14D914 +:100AA000E21C212A3BD02349234F244E5C18B3FB80 +:100AB000F0F1DD199E19CF1F03F18E4303F5060CEB +:100AC000B7F5FC7F0CF50C43D4D8541E154B22040B +:100AD00001398918AA2455200122C3F88410C3F8CB +:100AE0008C401946C3F88C00C3F88020C3F88C40B2 +:100AF000C3F88C00D1F888000A4A10F0806FF9D052 +:100B00000321AA205523C2F88010C2F88C00114698 +:100B1000C2F88C30D1F8882012F0407FFAD0F0BCB7 +:100B2000704700BF00C00F4004000010000000101C +:100B30000800001000A3E1110046C32300E9A4351A +:100B40001C4A30B4D2F88450D2F88440D2F8041150 +:100B5000D2F80C3113F0030F04BF174B1868154B74 +:100B6000D3F80C2102F0030C124ABCF1010FD2F8A9 +:100B70000C2108BF114B02F0030C08BF1868BCF130 +:100B8000020F04BF0E4B18680A4BD3F8802012F0F6 +:100B9000020F0CD0AA04930C5A1C5300C4F3074450 +:100BA0004A1C00FB03F004FB0221B0FBF1F030BC57 +:100BB000704700BF00C00F4004000010000000108C +:100BC000080000100FB42DE9F04784B00CAB53F8C7 +:100BD000045BDFF8FC803D4F00240393287840B18C +:100BE00025280CD00135FFF7ADFC2878013400280A +:100BF000F6D1204604B0BDE8F04704B070476878ED +:100C0000013525285DD02538532855D8DFE810F068 +:100C10009C025400540054005400540054005400EA +:100C20005400540054005400540054005400540024 +:100C30005400540054005400540054005400540014 +:100C40005400540054005400540054005400540004 +:100C500054005400540054005400540054005400F4 +:100C600054005400540054005400540054005400E4 +:100C70005400540054005C015400540054005400CB +:100C800054005400540054005400540054016200B5 +:100C900054005400540054005400540054005400B4 +:100CA00054005400540054005400540054005400A4 +:100CB000540054005400FB0103980135021D0392B7 +:100CC0008CE7FFF73FFC0135013487E7676666660E +:100CD000D4110000039BEC46D3F8009098E807007D +:100CE000ACE803000020043381456E4603938CF882 +:100CF00000208DF80900C0F22C82B9F1000F40F3FA +:100D0000D98087FB09204FEAE971C1EBA00303EB0F +:100D1000830EA9EB4E0A0AF130098DF80090002BE2 +:100D200000F0208287FB03C9DA17C2EBA90202EBAD +:100D3000820CA3EB4C0330338DF80130002A00F015 +:100D40000E8287FB023ED017C0EBAE0303EB830A93 +:100D5000A2EB4A0130318DF80210002B00F0048222 +:100D600087FB03C9DA17C2EBA90202EB820CA3EBE3 +:100D70004C0330338DF80330002A00F0FB8187FBF1 +:100D8000023ED017C0EBAE0303EB830AA2EB4A018D +:100D900030318DF80410002B00F0E98187FB03C986 +:100DA000DA17C2EBA90202EB820CA3EB4C0330333F +:100DB0008DF80530002A00F0E08187FB023ED01755 +:100DC000C0EBAE0303EB830AA2EB4A0130318DF88E +:100DD0000610002B00F0D78187FB03C9DA17C2EB9E +:100DE000A90202EB820CA3EB4C0330338DF80730E1 +:100DF000002A00F0C58187FB023ED017C0EBAE038E +:100E000003EB830AA2EB4A0130318DF80810002B66 +:100E100000F0BC8187FB03C9D817C0EBA90202EB25 +:100E2000820CA3EB4C0330338DF809304FF0090AE4 +:100E300016F80A00FFF786FBBAF1000F0AF0030369 +:100E40000AF1FF3936DDD3B1012B0DD0022B05D0CD +:100E500016F80900FFF776FB09F1FF3916F80900CB +:100E6000FFF770FB09F1FF3916F8090009F1FF39A6 +:100E7000FFF768FB09F1010CBCF1000F1ADD16F851 +:100E8000090009F1FF3AFFF75DFB16F80A00A9F126 +:100E9000020AFFF757FB16F80A00FFF753FBA9F108 +:100EA0000303F05CA9F10409FFF74CFB09F1010110 +:100EB0000029E4DC013591E6039A0135111D107813 +:100EC0000391FFF73FFB89E603996E460A68081D08 +:100ED00002F00F03092B88BF0733039098E8030043 +:100EE00086E80300111101F00F003033092888BF94 +:100EF00007300A118DF8003002F00F033030092B53 +:100F000088BF073311118DF8010001F00F00092887 +:100F100088BF0730091101F00F023030092A88BF5D +:100F2000073203F130090B118DF8030003F00F00B5 +:100F3000092888BF07301B1102F1300C03F00F02A3 +:100F4000092A00F1300188BF0732C3F303103032A1 +:100F5000092888BF073030308DF802908DF804C022 +:100F60008DF805108DF806208DF80700082300E0A5 +:100F70004B4603F1FF3916F809003028F8D0002B52 +:100F800098DDFFF7DFFAB9F1000F09F0030309F16B +:100F9000FF3A8FDDD3B1012B0DD0022B05D016F80F +:100FA0000A00FFF7CFFA0AF1FF3A16F80A00FFF736 +:100FB000C9FA0AF1FF3A16F80A000AF1FF3AFFF7F8 +:100FC000C1FA0AF1010100297FF774AF16F80A008F +:100FD0000AF1FF39FFF7B6FA16F80900AAF102097B +:100FE000FFF7B0FA16F80900FFF7ACFAAAF103030D +:100FF000F05CAAF1040AFFF7A5FA0AF1010CBCF1B2 +:10100000000FE3DC56E703996E460A68081D02F0FC +:101010000F03092B88BF2733039098E8030086E865 +:101020000300111101F00F003033092888BF273069 +:101030000A118DF8003002F00F033030092B88BF01 +:10104000273311118DF8010001F00F00092888BF26 +:101050002730091101F00F023030092A88BF2732EA +:1010600003F1300C0B118DF8030003F00F00092879 +:1010700088BF27301B1102F1300903F00F02092A43 +:1010800088BF27328DF802C000F1300CC3F3031083 +:101090003032092888BF273030308DF804908DF821 +:1010A00005C08DF806208DF80700082300E04B46A8 +:1010B00003F1FF3916F809003028F8D0002B7FF72C +:1010C000F9AEFFF73FFAB9F1000F09F0030309F198 +:1010D000FF3A7FF7EFAED3B1012B0DD0022B05D035 +:1010E00016F80A00FFF72EFA0AF1FF3A16F80A007E +:1010F000FFF728FA0AF1FF3A16F80A000AF1FF3A58 +:10110000FFF720FA0AF10103002B7FF7D3AE16F8A0 +:101110000A000AF1FF39FFF715FA16F80900AAF1DB +:101120000209FFF70FFA16F80900FFF70BFAAAF108 +:101130000303F05CAAF1040AFFF704FA0AF1010CB8 +:10114000BCF1000FE3DCB5E625200135FFF7FAF925 +:1011500044E52D20C9F10009FFF7F4F9CDE54FF082 +:10116000010A65E69A4663E64FF0020A60E64FF030 +:10117000040A5DE64FF0030A5AE64FF0050A57E607 +:101180004FF0070A54E64FF0060A51E64FF0080AFE +:101190004EE600BF010500007465737420256420CD +:1011A0000A0D000000C0004000000140008009401E +:1011B00000C009400101020200000000030000001D +:1011C000040102080401020800C0014000C00540FB +:1011D00000000A40202020202020202000000000C5 +:0C11E000001BB70000093D00008000006B +:00000001FF diff --git a/examples/lpc1768_iic_LandTiger/lpc1768_iic.map b/examples/lpc1768_iic_LandTiger/lpc1768_iic.map new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/lpc1768_iic.map @@ -0,0 +1,464 @@ +Archive member included because of file (symbol) + +/opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + main.o (bsp_init) +/opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) (uartputc) +/opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + main.o (i2cwrite2) +/opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) (coresetCpuFreq) +/opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + main.o (libucprintf) + +Discarded input sections + + .text 0x00000000 0x0 main.o + .data 0x00000000 0x0 main.o + .bss 0x00000000 0x0 main.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV16 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REVSH 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__RBIT 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text.SystemCoreClockUpdate + 0x00000000 0xcc /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data.SystemCoreClock + 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .data 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text.bsp_GPIO_init + 0x00000000 0x28 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text.bsp_iic_init + 0x00000000 0x58 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text.consolegetc + 0x00000000 0xc /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.UART3 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.UART1 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .data.VREF0 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.IIC1 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.IIC2 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetc + 0x00000000 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartputs + 0x00000000 0x18 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgets + 0x00000000 0x20 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartoff 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uarton 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetpclkfactor + 0x00000000 0x78 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2cwrite + 0x00000000 0x164 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2cread 0x00000000 0x8c /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2csetup + 0x00000000 0x14 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2cenable + 0x00000000 0x8 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2cdisable + 0x00000000 0x8 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2cgetpclkfactor + 0x00000000 0x64 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text.i2csetpclkfactor + 0x00000000 0xa0 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .rodata.C.1.5916 + 0x00000000 0xc /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.clearch 0x00000000 0x24 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printhexfromint + 0x00000000 0x140 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printdecfromint + 0x00000000 0x1e0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.int2hex 0x00000000 0xd8 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromhex + 0x00000000 0x27c /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromdec + 0x00000000 0x188 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.libucscanf + 0x00000000 0x250 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .rodata.str1.4 + 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +Memory Configuration + +Name Origin Length Attributes +IROM 0x00000000 0x00080000 xr +IRAM0 0x10000000 0x00008000 xrw +IRAM1 0x2007c000 0x00004000 xrw +IRAM2 0x20080000 0x00004000 xrw +*default* 0x00000000 0xffffffff + +Linker script and memory map + + +.text 0x00000000 0x11e0 + *(.isr_vector .isr_vector.*) + .isr_vector 0x00000000 0xc4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000000 g_pfnVectors + *(.text .text.*) + .text.main 0x000000c4 0xe0 main.o + 0x000000c4 main + .text.Reset_Handler + 0x000001a4 0x16c /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x000001a4 Reset_Handler + .text.Default_Handler + 0x00000310 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000310 TIMER2_IRQHandler + 0x00000310 DebugMon_Handler + 0x00000310 RIT_IRQHandler + 0x00000310 I2C0_IRQHandler + 0x00000310 SysTick_Handler + 0x00000310 PWM1_IRQHandler + 0x00000310 PendSV_Handler + 0x00000310 I2C1_IRQHandler + 0x00000310 EINT2_IRQHandler + 0x00000310 UART1_IRQHandler + 0x00000310 EINT3_IRQHandler + 0x00000310 TIMER3_IRQHandler + 0x00000310 UART0_IRQHandler + 0x00000310 UsageFault_Handler + 0x00000310 PLL0_IRQHandler + 0x00000310 CAN_IRQHandler + 0x00000310 PLL1_IRQHandler + 0x00000310 SSP0_IRQHandler + 0x00000310 I2S_IRQHandler + 0x00000310 I2C2_IRQHandler + 0x00000310 RTC_IRQHandler + 0x00000310 TIMER0_IRQHandler + 0x00000310 SPI_IRQHandler + 0x00000310 EINT1_IRQHandler + 0x00000310 TIMER1_IRQHandler + 0x00000310 UART2_IRQHandler + 0x00000310 Default_Handler + 0x00000310 ADC_IRQHandler + 0x00000310 SSP1_IRQHandler + 0x00000310 USB_IRQHandler + 0x00000310 BOD_IRQHandler + 0x00000310 MemManage_Handler + 0x00000310 WDT_IRQHandler + 0x00000310 SVC_Handler + 0x00000310 QEI_IRQHandler + 0x00000310 EINT0_IRQHandler + 0x00000310 DMA_IRQHandler + 0x00000310 BusFault_Handler + 0x00000310 UART3_IRQHandler + 0x00000310 MCPWM_IRQHandler + 0x00000310 ENET_IRQHandler + .text.SystemInit + 0x00000314 0xe8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + 0x00000314 SystemInit + .text.bsp_uart_init + 0x000003fc 0xa8 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x000003fc bsp_uart_init + .text.bsp_init + 0x000004a4 0xa0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x000004a4 bsp_init + .text.consoleputc + 0x00000544 0x10 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x00000544 consoleputc + .text.uartputc + 0x00000554 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000554 uartputc + .text.uartsetpclkfactor + 0x00000560 0xc0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000560 uartsetpclkfactor + .text.uartsetbaudrate + 0x00000620 0x180 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000620 uartsetbaudrate + .text.uartsetup + 0x000007a0 0x3c /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000007a0 uartsetup + .text.uartopen + 0x000007dc 0x14 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000007dc uartopen + .text.i2cwrite2 + 0x000007f0 0x190 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + 0x000007f0 i2cwrite2 + .text.i2copen 0x00000980 0x14 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + 0x00000980 i2copen + .text.i2csetdatarate + 0x00000994 0x8c /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + 0x00000994 i2csetdatarate + .text.coresetCpuFreq + 0x00000a20 0x120 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000a20 coresetCpuFreq + .text.coregetCpuFreq + 0x00000b40 0x84 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000b40 coregetCpuFreq + .text.libucprintf + 0x00000bc4 0x5d0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + 0x00000bc4 libucprintf + *(.gnu.linkonce.t.*) + *(.glue_7) + .glue_7 0x00000000 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x00000000 0x0 linker stubs + *(.gcc_except_table) + *(.rodata .rodata*) + .rodata.C.1.5890 + 0x00001194 0x4 main.o + .rodata.str1.4 + 0x00001198 0xc main.o + .rodata.CSWTCH.5 + 0x000011a4 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.0.5884 + 0x000011b4 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.2.5915 + 0x000011c0 0x4 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.3.5941 + 0x000011c4 0x4 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .rodata.CSWTCH.8 + 0x000011c8 0xc /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .rodata 0x000011d4 0xc /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + *(.gnu.linkonce.r.*) + +.vfp11_veneer 0x000011e0 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x000011e0 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ctors 0x000011e0 0x0 + 0x000011e0 . = ALIGN (0x4) + 0x000011e0 PROVIDE (__ctors_start, .) + *(SORT(.ctors.*)) + *(.ctors) + 0x000011e0 PROVIDE (__ctors_end, .) + +.dtors 0x000011e0 0x0 + 0x000011e0 . = ALIGN (0x4) + 0x000011e0 PROVIDE (__dtors_start, .) + *(SORT(.dtors.*)) + *(.dtors) + 0x000011e0 PROVIDE (__dtors_end, .) + 0x000011e0 . = ALIGN (0x4) + 0x000011e0 _etext = . + 0x000011e0 _sifastcode = . + +.fastcode 0x10000000 0x0 load address 0x000011e0 + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sfastcode = . + *(.glue_7t) + *(.glue_7) + *(.fastcode) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _efastcode = . + 0x10000000 _sidata = . + +.usb_ram + *.o(USB_RAM) + +.data 0x10000000 0xc load address 0x000011e0 + 0x000011e0 _sidata = LOADADDR (.data) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sdata = . + *(vtable vtable.*) + *(.data .data.*) + .data.OSC0 0x10000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000000 OSC0 + .data.INTOSC 0x10000004 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000004 INTOSC + .data.RTCOSC 0x10000008 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000008 RTCOSC + *(.gnu.linkonce.d*) + 0x1000000c . = ALIGN (0x4) + 0x1000000c _edata = . + +.bss 0x1000000c 0x10 load address 0x000011ec + 0x1000000c . = ALIGN (0x4) + 0x1000000c _sbss = . + *(.bss .bss.*) + .bss.UART2 0x1000000c 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x1000000c UART2 + .bss.currentCpuFreq + 0x10000010 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000010 currentCpuFreq + .bss.IIC0 0x10000014 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000014 IIC0 + .bss.UART0 0x10000018 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000018 UART0 + *(.gnu.linkonce.b*) + *(COMMON) + 0x1000001c . = ALIGN (0x4) + 0x1000001c _ebss = . + +.stackarea 0x1000001c 0x804 load address 0x000011ec + 0x10000020 . = ALIGN (0x8) + *fill* 0x1000001c 0x4 00 + 0x10000020 _sstack = . + *(.stackarea .stackarea.*) + .stackarea 0x10000020 0x800 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x10000020 pulStack + 0x10000820 . = ALIGN (0x8) + 0x10000820 _estack = . + 0x10000820 . = ALIGN (0x4) + 0x10000820 _end = . + 0x10000820 PROVIDE (end, .) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info .gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) +LOAD main.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o +LOAD /opt/libuc2/bsp/bin/LandTiger/libbsp.a +LOAD /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a +LOAD /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a +LOAD /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a +LOAD /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a +OUTPUT(lpc1768_iic.elf elf32-littlearm) + +.comment 0x00000000 0x2a + .comment 0x00000000 0x2a main.o + 0x2b (size before relaxing) + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x31 main.o + .ARM.attributes + 0x00000031 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .ARM.attributes + 0x00000062 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .ARM.attributes + 0x00000093 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .ARM.attributes + 0x000000c4 0x31 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .ARM.attributes + 0x000000f5 0x31 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .ARM.attributes + 0x00000126 0x31 /opt/libuc2/lib/bin/lpc17XX/IIC/libiic.a(iic.o) + .ARM.attributes + 0x00000157 0x31 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .ARM.attributes + 0x00000188 0x31 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) diff --git a/examples/lpc1768_iic_LandTiger/lpc1768_iic.pro b/examples/lpc1768_iic_LandTiger/lpc1768_iic.pro new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/lpc1768_iic.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +ARCH = lpc17XX-arm-noabi-gcc +TARGET = lpc1768_iic +BSP = LandTiger + +LIBS += UART IIC CORE UCSTRINGS + +SOURCES += main.c + + +HEADERS += + diff --git a/examples/lpc1768_iic_LandTiger/main.c b/examples/lpc1768_iic_LandTiger/main.c new file mode 100644 --- /dev/null +++ b/examples/lpc1768_iic_LandTiger/main.c @@ -0,0 +1,68 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ + +#include "LPC17xx.h" +#include "bsp.h" +#include "core.h" +#include "uart.h" +#include "libucstrings.h" +#define __delay(t) for(volatile int i=0;iqKfFa`w{ z1uERRr0?i0DxgPX26hYDHt-J`p2V@T`l%UD#i8?*8Hdj3A38_>xf5F}|b3)PSmPCONP |= ( 1 << 15 ); // power up GPIO + LPC_GPIO1->FIODIR |= (1<<18); // puts P1.29 into output mode. + while(1) + { + LPC_GPIO1->FIOPIN |= (1<<18); // make P1.29 high + _delay( 1 << 24 ); + LPC_GPIO1->FIOPIN &= ~(1<<18); // make P1.29 low + _delay( 1 << 24 ); + } + return 0; + +} +void _delay(uint32_t del) +{ + uint32_t i; + for(i=0;i2PO`UAu>~Jj<@th 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 diff --git a/examples/lpc1768_uart/lpc1768_uart.dump b/examples/lpc1768_uart/lpc1768_uart.dump new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart/lpc1768_uart.dump @@ -0,0 +1,127 @@ + +lpc1768_uart.elf: file format elf32-littlearm +lpc1768_uart.elf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000000 + +Program Header: + LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 + filesz 0x00000f34 memsz 0x00000f34 flags r-x + LOAD off 0x00010000 vaddr 0x10000000 paddr 0x00000f34 align 2**15 + filesz 0x0000000c memsz 0x00000018 flags rw- + LOAD off 0x00010018 vaddr 0x10000018 paddr 0x00000f40 align 2**15 + filesz 0x00000000 memsz 0x00000800 flags rw- +private flags = 5000000: [Version5 EABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 00000f34 00000000 00000000 00008000 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 0000000c 10000000 00000f34 00010000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .bss 0000000c 1000000c 00000f40 0001000c 2**2 + ALLOC + 3 .stackarea 00000800 10000018 00000f40 00010018 2**2 + ALLOC + 4 .comment 0000002a 00000000 00000000 0001000c 2**0 + CONTENTS, READONLY + 5 .ARM.attributes 00000031 00000000 00000000 00010036 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .text 00000000 .text +10000000 l d .data 00000000 .data +1000000c l d .bss 00000000 .bss +10000018 l d .stackarea 00000000 .stackarea +00000000 l d .comment 00000000 .comment +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l df *ABS* 00000000 startup_LPC17xx.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 system_LPC17xx.c +00000000 l df *ABS* 00000000 bsp.c +00000000 l df *ABS* 00000000 uart.c +00000f08 l O .text 00000010 CSWTCH.5 +00000f18 l O .text 00000009 C.0.5885 +00000f24 l O .text 00000004 C.2.5916 +00000000 l df *ABS* 00000000 core.c +00000000 l df *ABS* 00000000 libucstrings.c +10000014 g O .bss 00000004 UART1 +000002b0 w F .text 00000002 TIMER2_IRQHandler +000002b0 w F .text 00000002 DebugMon_Handler +000002b0 w F .text 00000002 RIT_IRQHandler +00000898 g F .text 00000084 coregetCpuFreq +000002b0 w F .text 00000002 I2C0_IRQHandler +00000000 w *UND* 00000000 HardFault_Handler +000002b0 w F .text 00000002 SysTick_Handler +000002b0 w F .text 00000002 PWM1_IRQHandler +00000f34 g *ABS* 00000000 _sidata +000002b0 w F .text 00000002 PendSV_Handler +00000000 w *UND* 00000000 NMI_Handler +000002b0 w F .text 00000002 I2C1_IRQHandler +000002b0 w F .text 00000002 EINT2_IRQHandler +000002b0 w F .text 00000002 UART1_IRQHandler +000002b0 w F .text 00000002 EINT3_IRQHandler +00000f34 g .data 00000000 _etext +1000000c g .bss 00000000 _sbss +000004d0 g F .text 00000018 uartputs +10000004 g O .data 00000004 INTOSC +00000444 g F .text 00000070 bsp_init +000002b0 w F .text 00000002 TIMER3_IRQHandler +000002b0 w F .text 00000002 UART0_IRQHandler +0000091c g F .text 000005ce libucprintf +00000728 g F .text 0000003c uartsetup +000002b0 w F .text 00000002 UsageFault_Handler +10000000 g .data 00000000 _sdata +10000008 g O .data 00000004 RTCOSC +000002b0 w F .text 00000002 PLL0_IRQHandler +000002b0 w F .text 00000002 CAN_IRQHandler +000002b0 w F .text 00000002 PLL1_IRQHandler +000002b0 w F .text 00000002 SSP0_IRQHandler +10000000 g O .data 00000004 OSC0 +1000000c g O .bss 00000004 UART3 +000005a8 g F .text 00000180 uartsetbaudrate +000002b0 w F .text 00000002 I2S_IRQHandler +000002b0 w F .text 00000002 I2C2_IRQHandler +000002b0 w F .text 00000002 RTC_IRQHandler +10000018 g .bss 00000000 _ebss +000002b0 w F .text 00000002 TIMER0_IRQHandler +00000144 w F .text 0000016c Reset_Handler +000002b0 w F .text 00000002 SPI_IRQHandler +000002b0 w F .text 00000002 EINT1_IRQHandler +000002b0 w F .text 00000002 TIMER1_IRQHandler +000002b0 w F .text 00000002 UART2_IRQHandler +000002b0 g F .text 00000002 Default_Handler +000002b0 w F .text 00000002 ADC_IRQHandler +000004e8 g F .text 000000c0 uartsetpclkfactor +000002b0 w F .text 00000002 SSP1_IRQHandler +10000000 g .data 00000000 _efastcode +000002b0 w F .text 00000002 USB_IRQHandler +000002b0 w F .text 00000002 BOD_IRQHandler +000002b0 w F .text 00000002 MemManage_Handler +000000c4 g F .text 00000080 main +0000039c g F .text 000000a8 bsp_uart_init +10000018 g O .stackarea 00000800 pulStack +000002b0 w F .text 00000002 WDT_IRQHandler +000002b0 w F .text 00000002 SVC_Handler +000002b4 g F .text 000000e8 SystemInit +000002b0 w F .text 00000002 QEI_IRQHandler +10000018 g .stackarea 00000000 _sstack +000002b0 w F .text 00000002 EINT0_IRQHandler +00000f34 g .data 00000000 _sifastcode +000004c4 g F .text 0000000c uartputc +10000000 g .data 00000000 _sfastcode +10000818 g .stackarea 00000000 _estack +1000000c g .data 00000000 _edata +10000818 g .stackarea 00000000 _end +00000764 g F .text 00000014 uartopen +000004b4 g F .text 00000010 consoleputc +00000000 g O .text 000000c4 g_pfnVectors +000002b0 w F .text 00000002 DMA_IRQHandler +000002b0 w F .text 00000002 BusFault_Handler +000002b0 w F .text 00000002 UART3_IRQHandler +000002b0 w F .text 00000002 MCPWM_IRQHandler +10000010 g O .bss 00000004 currentCpuFreq +000002b0 w F .text 00000002 ENET_IRQHandler +00000778 g F .text 00000120 coresetCpuFreq + + diff --git a/examples/lpc1768_uart/lpc1768_uart.hex b/examples/lpc1768_uart/lpc1768_uart.hex new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart/lpc1768_uart.hex @@ -0,0 +1,246 @@ +:10000000180800104501000000000000000000007A +:10001000B1020000B1020000B102000000000000C7 +:10002000000000000000000000000000B10200001D +:10003000B102000000000000B1020000B1020000A7 +:10004000B1020000B1020000B1020000B1020000E4 +:10005000B1020000B1020000B1020000B1020000D4 +:10006000B1020000B1020000B1020000B1020000C4 +:10007000B1020000B1020000B1020000B1020000B4 +:10008000B1020000B1020000B1020000B1020000A4 +:10009000B1020000B1020000B1020000B102000094 +:1000A000B1020000B1020000B1020000B102000084 +:1000B000B1020000B1020000B1020000B102000074 +:1000C000B1020000F0B51A4F83B000F0BBF93868F8 +:1000D0004FF4E13100F068FA164D174C00266969BB +:1000E000386841F480226A61144900F0F1F9002077 +:1000F0000190019BA34205DC019A501C0190019BD9 +:10010000A342F9DD69690E4821F480226A61314613 +:1001100000F004FC0023019301990136A142DEDCCA +:10012000019A531C01930198A042F9DDD7E700BF63 +:100130000C00001020C00920FFFF0F00EC0E000093 +:10014000FC0E0000684620F007018D46F1B500F076 +:10015000B1F84F484F49884235D04F4CA14232D276 +:10016000024652F8046B0B46CD4343F8046B651905 +:10017000A342C5F3810526D29DB1012D0BD0022DDE +:1001800005D0156800F108021D6001F1080352F85E +:10019000040B43F8040B52F8041B43F8041BA3425E +:1001A00011D296465EF8047B5668D568DEF80400E6 +:1001B0009C464CF8047B5E60CCF80400DD60103394 +:1001C0001032A342EDD335483549884234D0354CFE +:1001D000A14231D2024652F8046B0B46CD4343F89C +:1001E000046B6519A342C5F3810525D29DB1012D8C +:1001F0000BD0022D05D0156800F108021D6001F139 +:10020000080352F8040B43F8040B52F8041B43F89C +:10021000041BA34210D294465CF8047B5668D56850 +:10022000DCF80400194641F8047B5E604860DD603C +:1002300010331032A342EED31B491C48814221D215 +:1002400000220B46CC4343F8042B04198342C4F329 +:10025000810417D264B1012C06D0022C1CBF1A6095 +:1002600001F1080343F8042B43F8042B834209D21D +:100270009E464EF8042B5A60CEF80420DA60103304 +:100280008342F5D3FFF71EFFBDE8F1408546704776 +:10029000340F0000000000100C000010340F0000AC +:1002A00000000010000000100C00001018000010EA +:1002B000FEE700BF3649202330B4C1F8A031D1F8A1 +:1002C000A001334A10F0400FF9D0324D0124AA208A +:1002D00055230321C2F80411C2F80C411146C2F89B +:1002E0008450C2F88C00C2F88C30C2F88040C2F84A +:1002F0008C00C2F88C30D1F88830254A13F0806F1A +:10030000F9D00321AA245520C2F88010C2F88C40ED +:100310001146C2F88C00D1F888301D4A13F0407F96 +:10032000F9D02324C2F8A440AA2055230124C2F8FE +:10033000AC001146C2F8AC30C2F8A040C2F8AC0024 +:10034000C2F8AC30D1F8A830114A13F4806FF9D05C +:100350000321AA235520C2F8A010C2F8AC301146E0 +:10036000C2F8AC00D1F8A800094A10F4407FF9D0D7 +:100370000949002043F23A03C2F8A801C2F8AC01CF +:10038000C2F8C410C2F8C801136030BC704700BF87 +:1003900000C00F4063000500DE87280430B5254DFE +:1003A000254BD5F8C41083B041F00074C5F8C440A3 +:1003B000D5F8C420032042F01001C5F8C4101A6813 +:1003C000002442F002051D60196821F001021A6044 +:1003D0001D6845F0080119601A6822F004051D60C7 +:1003E000196841F080421A601D6825F000411960CB +:1003F0005A6842F001055D605968104D21F0020213 +:100400005A6000F0AFF90822012328604FF416511A +:10041000009400F089F9012000F0A4F9084D4FF490 +:100420001641286008220123009400F07DF903B0F2 +:1004300030BD00BF00C00F4000C002400C000010E3 +:1004400014000010164A10B5D2F8C410154B41F430 +:100450000044C2F8C4401968134841F434021A60D9 +:100460005969124C21F480225A61596921F4801291 +:100470005A61596921F400125A61596921F4000244 +:100480005A6100F079F900F007FA2060084800F09E +:1004900073F900F001FA2060FFF780FF002010BD23 +:1004A00000C00F4020C00920005A62021000001056 +:1004B00000B4C404024B0146186800F003B800BF42 +:1004C00014000010436913F0200FFBD00160704747 +:1004D0000B7843B1426912F0200FFBD0036011F892 +:1004E000013F002BF6D1704730B42A4A84B00DF199 +:1004F000040C04460D46284B07CAACE803009C4296 +:100500008CF8002029D018DD244B9C421BD003F529 +:1005100080418C4214D104A94D19214B15F80C0CC3 +:10052000D3F8AC11820442EA0101C3F8AC11D3F84C +:10053000AC010240C3F8AC2102E01A4884421ED04C +:1005400004B030BC70470DF1100C6544144B15F825 +:100550000C2CD3F8AC111204E5E704A94D19104B8B +:1005600015F80C0CD3F8A811020242EA0101C3F8F5 +:10057000A811D3F8A8010240C3F8A821E0E70DF1C3 +:10058000100C6544064B15F80C2CD3F8A8119201F9 +:10059000EBE700BF180F0000000001400080094099 +:1005A00000C00F4000C000402DE9F047044682B073 +:1005B0000F46002853D000F06FF9554E554B80463A +:1005C00030689C42019000F09C804BDD524B9C4275 +:1005D0005DD003F5804294425FD0002302A800EB77 +:1005E000030E1EF804CC3F01B8FBFCF3BB422BD238 +:1005F000D6F80090474DDFF820A1AC42CDF804902A +:1006000067D050DC454B9C4235D000230DF1080EDD +:100610000EEB030C1CF8041C012920D049082046CD +:10062000FFF762FF3268AC4201925ED046DC3B4885 +:10063000844226D0002302A901EB030E1EF804CC4D +:10064000B8FBFCF3BB42D8D3E268B3FBF7F342F04C +:100650008001E1602360E06820F08002E26002B087 +:10066000BDE8F0872D498C42B7D12D48D0F8A8318C +:10067000C3F38113B2E72A48D0F8A821C2F381134B +:10068000C4E7274AD2F8A811C1F38113D3E724485D +:10069000D0F8AC31C3F30143A0E7214AD2F8AC1142 +:1006A000C1F381439AE7544519D01E498C42ACD11D +:1006B0001B49D1F8AC31C3F38143A7E754451AD0A5 +:1006C000184B9C42B6D1164BD3F8AC01C0F3814312 +:1006D000B1E71349D1F8A831C3F3012396E71048D5 +:1006E000D0F8AC21C2F3014390E70D4BD3F8A80139 +:1006F000C0F301239FE70A4AD2F8AC11C1F30143CA +:1007000099E7074AD2F8A811C1F3012366E700BFB1 +:10071000240F0000000001400080094000C000409C +:1007200000C00F4000C0094030B4092A9DF80840BD +:100730000ED8013BDDB2053A012D0ED90023072C5E +:100740000ED900259C186419C46030BCFFF72CBF7B +:10075000013BDDB20322012DF0D89B00072CF0D81D +:10076000E500EFE703289ABF024B53F82000002072 +:10077000704700BF080F0000F0B4404D3F4CD5F863 +:100780000C31D4F80C1113F0030F08BF3C4B3B4E57 +:1007900001F003070CBF1A6842F21072D6F80C5130 +:1007A000012F08BF374F05F0030308BF3A68022B3B +:1007B00008BF354B314908BF1A68344BB3FBF0F41E +:1007C000601EC1F804015000012218E0B4FBF0F1F2 +:1007D000CF1F0132B7F5FC7F144622D9B5FBF0F1EB +:1007E000CD1F0132B5F5FC7F1BD9B6FBF0F1CD1F53 +:1007F000A21CB5F5FC7F14D9E21C212A3BD0234969 +:10080000234F244E5C18B3FBF0F1DD199E19CF1F66 +:1008100003F18E4303F5060CB7F5FC7F0CF50C4392 +:10082000D4D8541E154B220401398918AA24552006 +:100830000122C3F88410C3F88C401946C3F88C0019 +:10084000C3F88020C3F88C40C3F88C00D1F888002E +:100850000A4A10F0806FF9D00321AA205523C2F86C +:100860008010C2F88C001146C2F88C30D1F8882074 +:1008700012F0407FFAD0F0BC704700BF00C00F40BC +:1008800004000010000000100800001000A3E11197 +:100890000046C32300E9A4351C4A30B4D2F8845082 +:1008A000D2F88440D2F80411D2F80C3113F0030FBF +:1008B00004BF174B1868154BD3F80C2102F0030C3A +:1008C000124ABCF1010FD2F80C2108BF114B02F003 +:1008D000030C08BF1868BCF1020F04BF0E4B186868 +:1008E0000A4BD3F8802012F0020F0CD0AA04930C0C +:1008F0005A1C5300C4F307444A1C00FB03F004FBDA +:100900000221B0FBF1F030BC704700BF00C00F40C7 +:100910000400001000000010080000100FB42DE9C2 +:10092000F04784B00CAB53F8045BDFF8FC803D4F1C +:1009300000240393287840B125280CD00135FFF717 +:10094000B9FD287801340028F6D1204604B0BDE86E +:10095000F04704B070476878013525285DD0253808 +:10096000532855D8DFE810F09C025400540054007E +:1009700054005400540054005400540054005400D7 +:1009800054005400540054005400540054005400C7 +:1009900054005400540054005400540054005400B7 +:1009A00054005400540054005400540054005400A7 +:1009B0005400540054005400540054005400540097 +:1009C00054005400540054005400540054005C017E +:1009D0005400540054005400540054005400540077 +:1009E0005400540054016200540054005400540058 +:1009F0005400540054005400540054005400540057 +:100A00005400540054005400540054005400FB019E +:100A100003980135021D03928CE7FFF74BFD01356A +:100A2000013487E767666666280F0000039BEC4683 +:100A3000D3F8009098E80700ACE8030000200433E6 +:100A400081456E4603938CF800208DF80900C0F2B2 +:100A50002C82B9F1000F40F3D98087FB09204FEABF +:100A6000E971C1EBA00303EB830EA9EB4E0A0AF177 +:100A700030098DF80090002B00F0208287FB03C91D +:100A8000DA17C2EBA90202EB820CA3EB4C03303362 +:100A90008DF80130002A00F00E8287FB023ED0174D +:100AA000C0EBAE0303EB830AA2EB4A0130318DF8B1 +:100AB0000210002B00F0048287FB03C9DA17C2EB97 +:100AC000A90202EB820CA3EB4C0330338DF8033008 +:100AD000002A00F0FB8187FB023ED017C0EBAE037B +:100AE00003EB830AA2EB4A0130318DF80410002B8E +:100AF00000F0E98187FB03C9DA17C2EBA90202EB18 +:100B0000820CA3EB4C0330338DF80530002A00F043 +:100B1000E08187FB023ED017C0EBAE0303EB830AF4 +:100B2000A2EB4A0130318DF80610002B00F0D7817E +:100B300087FB03C9DA17C2EBA90202EB820CA3EB15 +:100B40004C0330338DF80730002A00F0C58187FB55 +:100B5000023ED017C0EBAE0303EB830AA2EB4A01BF +:100B600030318DF80810002B00F0BC8187FB03C9E1 +:100B7000D817C0EBA90202EB820CA3EB4C03303375 +:100B80008DF809304FF0090A16F80A00FFF792FCB9 +:100B9000BAF1000F0AF003030AF1FF3936DDD3B1D1 +:100BA000012B0DD0022B05D016F80900FFF782FCAF +:100BB00009F1FF3916F80900FFF77CFC09F1FF394C +:100BC00016F8090009F1FF39FFF774FC09F1010C6F +:100BD000BCF1000F1ADD16F8090009F1FF3AFFF722 +:100BE00069FC16F80A00A9F1020AFFF763FC16F87F +:100BF0000A00FFF75FFCA9F10303F05CA9F1040907 +:100C0000FFF758FC09F101010029E4DC013591E608 +:100C1000039A0135111D10780391FFF74BFC89E60B +:100C200003996E460A68081D02F00F03092B88BF5E +:100C30000733039098E8030086E80300111101F0E0 +:100C40000F003033092888BF07300A118DF80030B3 +:100C500002F00F033030092B88BF073311118DF8D4 +:100C6000010001F00F00092888BF0730091101F0C9 +:100C70000F023030092A88BF073203F130090B1107 +:100C80008DF8030003F00F00092888BF07301B11FF +:100C900002F1300C03F00F02092A00F1300188BF85 +:100CA0000732C3F303103032092888BF07303030D1 +:100CB0008DF802908DF804C08DF805108DF806208F +:100CC0008DF80700082300E04B4603F1FF3916F8C2 +:100CD00009003028F8D0002B98DDFFF7EBFBB9F1C5 +:100CE000000F09F0030309F1FF3A8FDDD3B1012BA7 +:100CF0000DD0022B05D016F80A00FFF7DBFB0AF136 +:100D0000FF3A16F80A00FFF7D5FB0AF1FF3A16F88A +:100D10000A000AF1FF3AFFF7CDFB0AF101010029B1 +:100D20007FF774AF16F80A000AF1FF39FFF7C2FB2C +:100D300016F80900AAF10209FFF7BCFB16F8090032 +:100D4000FFF7B8FBAAF10303F05CAAF1040AFFF76E +:100D5000B1FB0AF1010CBCF1000FE3DC56E703998B +:100D60006E460A68081D02F00F03092B88BF27335F +:100D7000039098E8030086E80300111101F00F00CA +:100D80003033092888BF27300A118DF8003002F06F +:100D90000F033030092B88BF273311118DF8010064 +:100DA00001F00F00092888BF2730091101F00F0258 +:100DB0003030092A88BF273203F1300C0B118DF82F +:100DC000030003F00F00092888BF27301B1102F130 +:100DD000300903F00F02092A88BF27328DF802C0BC +:100DE00000F1300CC3F303103032092888BF2730DC +:100DF00030308DF804908DF805C08DF806208DF800 +:100E00000700082300E04B4603F1FF3916F80900FC +:100E10003028F8D0002B7FF7F9AEFFF74BFBB9F184 +:100E2000000F09F0030309F1FF3A7FF7EFAED3B1EA +:100E3000012B0DD0022B05D016F80A00FFF73AFB64 +:100E40000AF1FF3A16F80A00FFF734FB0AF1FF3AFD +:100E500016F80A000AF1FF3AFFF72CFB0AF101032A +:100E6000002B7FF7D3AE16F80A000AF1FF39FFF71F +:100E700021FB16F80900AAF10209FFF71BFB16F87F +:100E80000900FFF717FBAAF10303F05CAAF1040ABB +:100E9000FFF710FB0AF1010CBCF1000FE3DCB5E633 +:100EA00025200135FFF706FB44E52D20C9F1000997 +:100EB000FFF700FBCDE54FF0010A65E69A4663E6D1 +:100EC0004FF0020A60E64FF0040A5DE64FF0030AB5 +:100ED0005AE64FF0050A57E64FF0070A54E64FF07E +:100EE000060A51E64FF0080A4EE600BF48656C6CF2 +:100EF0006F20576F726C640A0D0000007465737484 +:100F0000202564200A0D000000C0004000000140C0 +:100F10000080094000C009400101020200000000F9 +:100F200003000000040102082020202020202020AF +:040F300000000000BD +:0C0F3400001BB70000093D000080000019 +:00000001FF diff --git a/examples/lpc1768_uart/lpc1768_uart.map b/examples/lpc1768_uart/lpc1768_uart.map new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart/lpc1768_uart.map @@ -0,0 +1,419 @@ +Archive member included because of file (symbol) + +/opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + main.o (bsp_init) +/opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) (uartputc) +/opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) (coresetCpuFreq) +/opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + main.o (libucprintf) + +Discarded input sections + + .text 0x00000000 0x0 main.o + .data 0x00000000 0x0 main.o + .bss 0x00000000 0x0 main.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV16 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REVSH 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__RBIT 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text.SystemCoreClockUpdate + 0x00000000 0xcc /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data.SystemCoreClock + 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .data 0x00000000 0x0 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .bss 0x00000000 0x0 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .text.bsp_GPIO_init + 0x00000000 0x44 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .text.consolegetc + 0x00000000 0xc /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .bss.UART2 0x00000000 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .bss.UART0 0x00000000 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetc + 0x00000000 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgets + 0x00000000 0x20 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartoff 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uarton 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetpclkfactor + 0x00000000 0x78 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.clearch 0x00000000 0x24 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printhexfromint + 0x00000000 0x140 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printdecfromint + 0x00000000 0x1e0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.int2hex 0x00000000 0xd8 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromhex + 0x00000000 0x27c /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromdec + 0x00000000 0x188 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.libucscanf + 0x00000000 0x250 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .rodata.str1.4 + 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +Memory Configuration + +Name Origin Length Attributes +IROM 0x00000000 0x00080000 xr +IRAM0 0x10000000 0x00008000 xrw +IRAM1 0x2007c000 0x00004000 xrw +IRAM2 0x20080000 0x00004000 xrw +*default* 0x00000000 0xffffffff + +Linker script and memory map + + +.text 0x00000000 0xf34 + *(.isr_vector .isr_vector.*) + .isr_vector 0x00000000 0xc4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000000 g_pfnVectors + *(.text .text.*) + .text.main 0x000000c4 0x80 main.o + 0x000000c4 main + .text.Reset_Handler + 0x00000144 0x16c /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000144 Reset_Handler + .text.Default_Handler + 0x000002b0 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x000002b0 TIMER2_IRQHandler + 0x000002b0 DebugMon_Handler + 0x000002b0 RIT_IRQHandler + 0x000002b0 I2C0_IRQHandler + 0x000002b0 SysTick_Handler + 0x000002b0 PWM1_IRQHandler + 0x000002b0 PendSV_Handler + 0x000002b0 I2C1_IRQHandler + 0x000002b0 EINT2_IRQHandler + 0x000002b0 UART1_IRQHandler + 0x000002b0 EINT3_IRQHandler + 0x000002b0 TIMER3_IRQHandler + 0x000002b0 UART0_IRQHandler + 0x000002b0 UsageFault_Handler + 0x000002b0 PLL0_IRQHandler + 0x000002b0 CAN_IRQHandler + 0x000002b0 PLL1_IRQHandler + 0x000002b0 SSP0_IRQHandler + 0x000002b0 I2S_IRQHandler + 0x000002b0 I2C2_IRQHandler + 0x000002b0 RTC_IRQHandler + 0x000002b0 TIMER0_IRQHandler + 0x000002b0 SPI_IRQHandler + 0x000002b0 EINT1_IRQHandler + 0x000002b0 TIMER1_IRQHandler + 0x000002b0 UART2_IRQHandler + 0x000002b0 Default_Handler + 0x000002b0 ADC_IRQHandler + 0x000002b0 SSP1_IRQHandler + 0x000002b0 USB_IRQHandler + 0x000002b0 BOD_IRQHandler + 0x000002b0 MemManage_Handler + 0x000002b0 WDT_IRQHandler + 0x000002b0 SVC_Handler + 0x000002b0 QEI_IRQHandler + 0x000002b0 EINT0_IRQHandler + 0x000002b0 DMA_IRQHandler + 0x000002b0 BusFault_Handler + 0x000002b0 UART3_IRQHandler + 0x000002b0 MCPWM_IRQHandler + 0x000002b0 ENET_IRQHandler + .text.SystemInit + 0x000002b4 0xe8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + 0x000002b4 SystemInit + .text.bsp_uart_init + 0x0000039c 0xa8 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x0000039c bsp_uart_init + .text.bsp_init + 0x00000444 0x70 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x00000444 bsp_init + .text.consoleputc + 0x000004b4 0x10 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x000004b4 consoleputc + .text.uartputc + 0x000004c4 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000004c4 uartputc + .text.uartputs + 0x000004d0 0x18 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000004d0 uartputs + .text.uartsetpclkfactor + 0x000004e8 0xc0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000004e8 uartsetpclkfactor + .text.uartsetbaudrate + 0x000005a8 0x180 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000005a8 uartsetbaudrate + .text.uartsetup + 0x00000728 0x3c /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000728 uartsetup + .text.uartopen + 0x00000764 0x14 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000764 uartopen + .text.coresetCpuFreq + 0x00000778 0x120 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000778 coresetCpuFreq + .text.coregetCpuFreq + 0x00000898 0x84 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000898 coregetCpuFreq + .text.libucprintf + 0x0000091c 0x5d0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + 0x0000091c libucprintf + *(.gnu.linkonce.t.*) + *(.glue_7) + .glue_7 0x00000000 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x00000000 0x0 linker stubs + *(.gcc_except_table) + *(.rodata .rodata*) + .rodata.str1.4 + 0x00000eec 0x1c main.o + .rodata.CSWTCH.5 + 0x00000f08 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.0.5885 + 0x00000f18 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.2.5916 + 0x00000f24 0x4 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata 0x00000f28 0xc /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + *(.gnu.linkonce.r.*) + +.vfp11_veneer 0x00000f34 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x00000f34 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ctors 0x00000f34 0x0 + 0x00000f34 . = ALIGN (0x4) + 0x00000f34 PROVIDE (__ctors_start, .) + *(SORT(.ctors.*)) + *(.ctors) + 0x00000f34 PROVIDE (__ctors_end, .) + +.dtors 0x00000f34 0x0 + 0x00000f34 . = ALIGN (0x4) + 0x00000f34 PROVIDE (__dtors_start, .) + *(SORT(.dtors.*)) + *(.dtors) + 0x00000f34 PROVIDE (__dtors_end, .) + 0x00000f34 . = ALIGN (0x4) + 0x00000f34 _etext = . + 0x00000f34 _sifastcode = . + +.fastcode 0x10000000 0x0 load address 0x00000f34 + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sfastcode = . + *(.glue_7t) + *(.glue_7) + *(.fastcode) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _efastcode = . + 0x10000000 _sidata = . + +.usb_ram + *.o(USB_RAM) + +.data 0x10000000 0xc load address 0x00000f34 + 0x00000f34 _sidata = LOADADDR (.data) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sdata = . + *(vtable vtable.*) + *(.data .data.*) + .data.OSC0 0x10000000 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x10000000 OSC0 + .data.INTOSC 0x10000004 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x10000004 INTOSC + .data.RTCOSC 0x10000008 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x10000008 RTCOSC + *(.gnu.linkonce.d*) + 0x1000000c . = ALIGN (0x4) + 0x1000000c _edata = . + +.bss 0x1000000c 0xc load address 0x00000f40 + 0x1000000c . = ALIGN (0x4) + 0x1000000c _sbss = . + *(.bss .bss.*) + .bss.UART3 0x1000000c 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x1000000c UART3 + .bss.currentCpuFreq + 0x10000010 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x10000010 currentCpuFreq + .bss.UART1 0x10000014 0x4 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + 0x10000014 UART1 + *(.gnu.linkonce.b*) + *(COMMON) + 0x10000018 . = ALIGN (0x4) + 0x10000018 _ebss = . + +.stackarea 0x10000018 0x800 load address 0x00000f40 + 0x10000018 . = ALIGN (0x8) + 0x10000018 _sstack = . + *(.stackarea .stackarea.*) + .stackarea 0x10000018 0x800 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x10000018 pulStack + 0x10000818 . = ALIGN (0x8) + 0x10000818 _estack = . + 0x10000818 . = ALIGN (0x4) + 0x10000818 _end = . + 0x10000818 PROVIDE (end, .) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info .gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) +LOAD main.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o +LOAD /opt/libuc2/bsp/bin/mbed/libbsp.a +LOAD /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a +LOAD /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a +LOAD /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a +OUTPUT(lpc1768_uart.elf elf32-littlearm) + +.comment 0x00000000 0x2a + .comment 0x00000000 0x2a main.o + 0x2b (size before relaxing) + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x31 main.o + .ARM.attributes + 0x00000031 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .ARM.attributes + 0x00000062 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .ARM.attributes + 0x00000093 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .ARM.attributes + 0x000000c4 0x31 /opt/libuc2/bsp/bin/mbed/libbsp.a(bsp.o) + .ARM.attributes + 0x000000f5 0x31 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .ARM.attributes + 0x00000126 0x31 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .ARM.attributes + 0x00000157 0x31 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) diff --git a/examples/lpc1768_uart/lpc1768_uart.pro b/examples/lpc1768_uart/lpc1768_uart.pro new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart/lpc1768_uart.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +ARCH = lpc17XX-arm-noabi-gcc +TARGET = lpc1768_uart +BSP = mbed + +LIBS += UART CORE UCSTRINGS + +SOURCES += main.c + + +HEADERS += + diff --git a/examples/lpc1768_uart/main.c b/examples/lpc1768_uart/main.c new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart/main.c @@ -0,0 +1,49 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ + +#include "LPC17xx.h" +#include "bsp.h" +#include "core.h" +#include "uart.h" +#include "libucstrings.h" +#define __delay(t) for(volatile int i=0;ibr68=WhGme*f=LeqF2D+KsfKSdpi3 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 Vm|}(0$M{E)|1LtNM-lQP^lxMn-5dY_ diff --git a/examples/lpc1768_uart_LandTiger/lpc1768_uart.dump b/examples/lpc1768_uart_LandTiger/lpc1768_uart.dump new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart_LandTiger/lpc1768_uart.dump @@ -0,0 +1,126 @@ + +lpc1768_uart.elf: file format elf32-littlearm +lpc1768_uart.elf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0x00000000 + +Program Header: + LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 + filesz 0x00000f24 memsz 0x00000f24 flags r-x + LOAD off 0x00010000 vaddr 0x10000000 paddr 0x00000f24 align 2**15 + filesz 0x0000000c memsz 0x00000018 flags rw- + LOAD off 0x00010018 vaddr 0x10000018 paddr 0x00000f30 align 2**15 + filesz 0x00000000 memsz 0x00000800 flags rw- +private flags = 5000000: [Version5 EABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 00000f24 00000000 00000000 00008000 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 0000000c 10000000 00000f24 00010000 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .bss 0000000c 1000000c 00000f30 0001000c 2**2 + ALLOC + 3 .stackarea 00000800 10000018 00000f30 00010018 2**2 + ALLOC + 4 .comment 0000002a 00000000 00000000 0001000c 2**0 + CONTENTS, READONLY + 5 .ARM.attributes 00000031 00000000 00000000 00010036 2**0 + CONTENTS, READONLY +SYMBOL TABLE: +00000000 l d .text 00000000 .text +10000000 l d .data 00000000 .data +1000000c l d .bss 00000000 .bss +10000018 l d .stackarea 00000000 .stackarea +00000000 l d .comment 00000000 .comment +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l df *ABS* 00000000 startup_LPC17xx.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 system_LPC17xx.c +00000000 l df *ABS* 00000000 bsp.c +00000000 l df *ABS* 00000000 uart.c +00000ef8 l O .text 00000010 CSWTCH.5 +00000f08 l O .text 00000009 C.0.5885 +00000f14 l O .text 00000004 C.2.5916 +00000000 l df *ABS* 00000000 core.c +00000000 l df *ABS* 00000000 libucstrings.c +000002e0 w F .text 00000002 TIMER2_IRQHandler +000002e0 w F .text 00000002 DebugMon_Handler +000002e0 w F .text 00000002 RIT_IRQHandler +00000898 g F .text 00000084 coregetCpuFreq +000002e0 w F .text 00000002 I2C0_IRQHandler +00000000 w *UND* 00000000 HardFault_Handler +000002e0 w F .text 00000002 SysTick_Handler +000002e0 w F .text 00000002 PWM1_IRQHandler +00000f24 g *ABS* 00000000 _sidata +000002e0 w F .text 00000002 PendSV_Handler +00000000 w *UND* 00000000 NMI_Handler +000002e0 w F .text 00000002 I2C1_IRQHandler +000002e0 w F .text 00000002 EINT2_IRQHandler +000002e0 w F .text 00000002 UART1_IRQHandler +000002e0 w F .text 00000002 EINT3_IRQHandler +00000f24 g .data 00000000 _etext +1000000c g .bss 00000000 _sbss +10000004 g O .data 00000004 INTOSC +00000474 g F .text 00000058 bsp_init +000002e0 w F .text 00000002 TIMER3_IRQHandler +000002e0 w F .text 00000002 UART0_IRQHandler +0000091c g F .text 000005ce libucprintf +00000728 g F .text 0000003c uartsetup +1000000c g O .bss 00000004 UART2 +000002e0 w F .text 00000002 UsageFault_Handler +10000000 g .data 00000000 _sdata +10000008 g O .data 00000004 RTCOSC +000002e0 w F .text 00000002 PLL0_IRQHandler +000002e0 w F .text 00000002 CAN_IRQHandler +000002e0 w F .text 00000002 PLL1_IRQHandler +000002e0 w F .text 00000002 SSP0_IRQHandler +10000000 g O .data 00000004 OSC0 +000005a8 g F .text 00000180 uartsetbaudrate +000002e0 w F .text 00000002 I2S_IRQHandler +000002e0 w F .text 00000002 I2C2_IRQHandler +000002e0 w F .text 00000002 RTC_IRQHandler +10000018 g .bss 00000000 _ebss +000002e0 w F .text 00000002 TIMER0_IRQHandler +00000174 w F .text 0000016c Reset_Handler +000002e0 w F .text 00000002 SPI_IRQHandler +000002e0 w F .text 00000002 EINT1_IRQHandler +000002e0 w F .text 00000002 TIMER1_IRQHandler +000002e0 w F .text 00000002 UART2_IRQHandler +000002e0 g F .text 00000002 Default_Handler +000002e0 w F .text 00000002 ADC_IRQHandler +000004e8 g F .text 000000c0 uartsetpclkfactor +000002e0 w F .text 00000002 SSP1_IRQHandler +10000000 g .data 00000000 _efastcode +000002e0 w F .text 00000002 USB_IRQHandler +000002e0 w F .text 00000002 BOD_IRQHandler +000002e0 w F .text 00000002 MemManage_Handler +000000c4 g F .text 000000b0 main +000003cc g F .text 000000a8 bsp_uart_init +10000018 g O .stackarea 00000800 pulStack +000002e0 w F .text 00000002 WDT_IRQHandler +000002e0 w F .text 00000002 SVC_Handler +000002e4 g F .text 000000e8 SystemInit +000002e0 w F .text 00000002 QEI_IRQHandler +10000018 g .stackarea 00000000 _sstack +000002e0 w F .text 00000002 EINT0_IRQHandler +00000f24 g .data 00000000 _sifastcode +10000014 g O .bss 00000004 UART0 +000004dc g F .text 0000000c uartputc +10000000 g .data 00000000 _sfastcode +10000818 g .stackarea 00000000 _estack +1000000c g .data 00000000 _edata +10000818 g .stackarea 00000000 _end +00000764 g F .text 00000014 uartopen +000004cc g F .text 00000010 consoleputc +00000000 g O .text 000000c4 g_pfnVectors +000002e0 w F .text 00000002 DMA_IRQHandler +000002e0 w F .text 00000002 BusFault_Handler +000002e0 w F .text 00000002 UART3_IRQHandler +000002e0 w F .text 00000002 MCPWM_IRQHandler +10000010 g O .bss 00000004 currentCpuFreq +000002e0 w F .text 00000002 ENET_IRQHandler +00000778 g F .text 00000120 coresetCpuFreq + + diff --git a/examples/lpc1768_uart_LandTiger/lpc1768_uart.hex b/examples/lpc1768_uart_LandTiger/lpc1768_uart.hex new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart_LandTiger/lpc1768_uart.hex @@ -0,0 +1,245 @@ +:10000000180800107501000000000000000000004A +:10001000E1020000E1020000E10200000000000037 +:10002000000000000000000000000000E1020000ED +:10003000E102000000000000E1020000E102000017 +:10004000E1020000E1020000E1020000E102000024 +:10005000E1020000E1020000E1020000E102000014 +:10006000E1020000E1020000E1020000E102000004 +:10007000E1020000E1020000E1020000E1020000F4 +:10008000E1020000E1020000E1020000E1020000E4 +:10009000E1020000E1020000E1020000E1020000D4 +:1000A000E1020000E1020000E1020000E1020000C4 +:1000B000E1020000E1020000E1020000E1020000B4 +:1000C000E10200002DE9F04182B000F0D3F9254BA8 +:1000D0004FF41641186800F067FA0127224D234CAF +:1000E0000026B8460222C5F81C800423AA61082213 +:1000F000EB61AA6110232022EB61AA6140238022D8 +:100100003146EB611A48AA6100F008FC0021019118 +:100110000198711CA04205DC019A531C01930198BF +:10012000A042F9DD0223AF610422EB610823AA613A +:10013000EB6110222023AA61EB6140228023AA6197 +:100140000B48EB6100F0EAFB0020019001990236B8 +:10015000A142C7DC019A501C01900199A142F9DD2E +:10016000C0E700BF1400001040C00920FFFF0F00CF +:10017000EC0E0000684620F007018D46F1B500F056 +:10018000B1F84F484F49884235D04F4CA14232D246 +:10019000024652F8046B0B46CD4343F8046B6519D5 +:1001A000A342C5F3810526D29DB1012D0BD0022DAE +:1001B00005D0156800F108021D6001F1080352F82E +:1001C000040B43F8040B52F8041B43F8041BA3422E +:1001D00011D296465EF8047B5668D568DEF80400B6 +:1001E0009C464CF8047B5E60CCF80400DD60103364 +:1001F0001032A342EDD335483549884234D0354CCE +:10020000A14231D2024652F8046B0B46CD4343F86B +:10021000046B6519A342C5F3810525D29DB1012D5B +:100220000BD0022D05D0156800F108021D6001F108 +:10023000080352F8040B43F8040B52F8041B43F86C +:10024000041BA34210D294465CF8047B5668D56820 +:10025000DCF80400194641F8047B5E604860DD600C +:1002600010331032A342EED31B491C48814221D2E5 +:1002700000220B46CC4343F8042B04198342C4F3F9 +:10028000810417D264B1012C06D0022C1CBF1A6065 +:1002900001F1080343F8042B43F8042B834209D2ED +:1002A0009E464EF8042B5A60CEF80420DA601033D4 +:1002B0008342F5D3FFF706FFBDE8F140854670475E +:1002C000240F0000000000100C000010240F00009C +:1002D00000000010000000100C00001018000010BA +:1002E000FEE700BF3649202330B4C1F8A031D1F871 +:1002F000A001334A10F0400FF9D0324D0124AA205A +:1003000055230321C2F80411C2F80C411146C2F86A +:100310008450C2F88C00C2F88C30C2F88040C2F819 +:100320008C00C2F88C30D1F88830254A13F0806FE9 +:10033000F9D00321AA245520C2F88010C2F88C40BD +:100340001146C2F88C00D1F888301D4A13F0407F66 +:10035000F9D02324C2F8A440AA2055230124C2F8CE +:10036000AC001146C2F8AC30C2F8A040C2F8AC00F4 +:10037000C2F8AC30D1F8A830114A13F4806FF9D02C +:100380000321AA235520C2F8A010C2F8AC301146B0 +:10039000C2F8AC00D1F8A800094A10F4407FF9D0A7 +:1003A0000949002043F23A03C2F8A801C2F8AC019F +:1003B000C2F8C410C2F8C801136030BC704700BF57 +:1003C00000C00F4063000500DE87280430B5254DCE +:1003D000254BD5F8C41083B041F08074C5F8C440F3 +:1003E000D5F8C420002042F01001C5F8C4101A68E6 +:1003F000044642F010051D60196821F020021A60C1 +:100400001D6845F0400119601A6822F080051D60E2 +:10041000196841F480121A601D6825F400111960F2 +:100420001A6842F480051D601968104D21F400021D +:100430001A6000F097F90822012328604FF4164152 +:10044000009400F071F9022000F08CF9084D4FF48F +:100450001641286008220123009400F065F903B0DA +:1004600030BD00BF00C00F4000C0024014000010AB +:100470000C000010104A10B5D2F8C4400F4B44F4E1 +:100480000041C2F8C4101C686FF0FF0244F0FF0185 +:1004900019600B48DA6100F06FF900F0FDF9094CC2 +:1004A0002060094800F068F900F0F6F92060FFF7D5 +:1004B0008DFF002010BD00BF00C00F4040C00920CC +:1004C000002D31011000001000879303024B0146FC +:1004D000186800F003B800BF14000010436913F05F +:1004E000200FFBD00160704730B42A4A84B00DF170 +:1004F000040C04460D46284B07CAACE803009C4296 +:100500008CF8002029D018DD244B9C421BD003F529 +:1005100080418C4214D104A94D19214B15F80C0CC3 +:10052000D3F8AC11820442EA0101C3F8AC11D3F84C +:10053000AC010240C3F8AC2102E01A4884421ED04C +:1005400004B030BC70470DF1100C6544144B15F825 +:100550000C2CD3F8AC111204E5E704A94D19104B8B +:1005600015F80C0CD3F8A811020242EA0101C3F8F5 +:10057000A811D3F8A8010240C3F8A821E0E70DF1C3 +:10058000100C6544064B15F80C2CD3F8A8119201F9 +:10059000EBE700BF080F00000000014000800940A9 +:1005A00000C00F4000C000402DE9F047044682B073 +:1005B0000F46002853D000F06FF9554E554B80463A +:1005C00030689C42019000F09C804BDD524B9C4275 +:1005D0005DD003F5804294425FD0002302A800EB77 +:1005E000030E1EF804CC3F01B8FBFCF3BB422BD238 +:1005F000D6F80090474DDFF820A1AC42CDF804902A +:1006000067D050DC454B9C4235D000230DF1080EDD +:100610000EEB030C1CF8041C012920D049082046CD +:10062000FFF762FF3268AC4201925ED046DC3B4885 +:10063000844226D0002302A901EB030E1EF804CC4D +:10064000B8FBFCF3BB42D8D3E268B3FBF7F342F04C +:100650008001E1602360E06820F08002E26002B087 +:10066000BDE8F0872D498C42B7D12D48D0F8A8318C +:10067000C3F38113B2E72A48D0F8A821C2F381134B +:10068000C4E7274AD2F8A811C1F38113D3E724485D +:10069000D0F8AC31C3F30143A0E7214AD2F8AC1142 +:1006A000C1F381439AE7544519D01E498C42ACD11D +:1006B0001B49D1F8AC31C3F38143A7E754451AD0A5 +:1006C000184B9C42B6D1164BD3F8AC01C0F3814312 +:1006D000B1E71349D1F8A831C3F3012396E71048D5 +:1006E000D0F8AC21C2F3014390E70D4BD3F8A80139 +:1006F000C0F301239FE70A4AD2F8AC11C1F30143CA +:1007000099E7074AD2F8A811C1F3012366E700BFB1 +:10071000140F0000000001400080094000C00040AC +:1007200000C00F4000C0094030B4092A9DF80840BD +:100730000ED8013BDDB2053A012D0ED90023072C5E +:100740000ED900259C186419C46030BCFFF72CBF7B +:10075000013BDDB20322012DF0D89B00072CF0D81D +:10076000E500EFE703289ABF024B53F82000002072 +:10077000704700BFF80E0000F0B4404D3F4CD5F874 +:100780000C31D4F80C1113F0030F08BF3C4B3B4E57 +:1007900001F003070CBF1A6842F21072D6F80C5130 +:1007A000012F08BF374F05F0030308BF3A68022B3B +:1007B00008BF354B314908BF1A68344BB3FBF0F41E +:1007C000601EC1F804015000012218E0B4FBF0F1F2 +:1007D000CF1F0132B7F5FC7F144622D9B5FBF0F1EB +:1007E000CD1F0132B5F5FC7F1BD9B6FBF0F1CD1F53 +:1007F000A21CB5F5FC7F14D9E21C212A3BD0234969 +:10080000234F244E5C18B3FBF0F1DD199E19CF1F66 +:1008100003F18E4303F5060CB7F5FC7F0CF50C4392 +:10082000D4D8541E154B220401398918AA24552006 +:100830000122C3F88410C3F88C401946C3F88C0019 +:10084000C3F88020C3F88C40C3F88C00D1F888002E +:100850000A4A10F0806FF9D00321AA205523C2F86C +:100860008010C2F88C001146C2F88C30D1F8882074 +:1008700012F0407FFAD0F0BC704700BF00C00F40BC +:1008800004000010000000100800001000A3E11197 +:100890000046C32300E9A4351C4A30B4D2F8845082 +:1008A000D2F88440D2F80411D2F80C3113F0030FBF +:1008B00004BF174B1868154BD3F80C2102F0030C3A +:1008C000124ABCF1010FD2F80C2108BF114B02F003 +:1008D000030C08BF1868BCF1020F04BF0E4B186868 +:1008E0000A4BD3F8802012F0020F0CD0AA04930C0C +:1008F0005A1C5300C4F307444A1C00FB03F004FBDA +:100900000221B0FBF1F030BC704700BF00C00F40C7 +:100910000400001000000010080000100FB42DE9C2 +:10092000F04784B00CAB53F8045BDFF8FC803D4F1C +:1009300000240393287840B125280CD00135FFF717 +:10094000C5FD287801340028F6D1204604B0BDE862 +:10095000F04704B070476878013525285DD0253808 +:10096000532855D8DFE810F09C025400540054007E +:1009700054005400540054005400540054005400D7 +:1009800054005400540054005400540054005400C7 +:1009900054005400540054005400540054005400B7 +:1009A00054005400540054005400540054005400A7 +:1009B0005400540054005400540054005400540097 +:1009C00054005400540054005400540054005C017E +:1009D0005400540054005400540054005400540077 +:1009E0005400540054016200540054005400540058 +:1009F0005400540054005400540054005400540057 +:100A00005400540054005400540054005400FB019E +:100A100003980135021D03928CE7FFF757FD01355E +:100A2000013487E767666666180F0000039BEC4693 +:100A3000D3F8009098E80700ACE8030000200433E6 +:100A400081456E4603938CF800208DF80900C0F2B2 +:100A50002C82B9F1000F40F3D98087FB09204FEABF +:100A6000E971C1EBA00303EB830EA9EB4E0A0AF177 +:100A700030098DF80090002B00F0208287FB03C91D +:100A8000DA17C2EBA90202EB820CA3EB4C03303362 +:100A90008DF80130002A00F00E8287FB023ED0174D +:100AA000C0EBAE0303EB830AA2EB4A0130318DF8B1 +:100AB0000210002B00F0048287FB03C9DA17C2EB97 +:100AC000A90202EB820CA3EB4C0330338DF8033008 +:100AD000002A00F0FB8187FB023ED017C0EBAE037B +:100AE00003EB830AA2EB4A0130318DF80410002B8E +:100AF00000F0E98187FB03C9DA17C2EBA90202EB18 +:100B0000820CA3EB4C0330338DF80530002A00F043 +:100B1000E08187FB023ED017C0EBAE0303EB830AF4 +:100B2000A2EB4A0130318DF80610002B00F0D7817E +:100B300087FB03C9DA17C2EBA90202EB820CA3EB15 +:100B40004C0330338DF80730002A00F0C58187FB55 +:100B5000023ED017C0EBAE0303EB830AA2EB4A01BF +:100B600030318DF80810002B00F0BC8187FB03C9E1 +:100B7000D817C0EBA90202EB820CA3EB4C03303375 +:100B80008DF809304FF0090A16F80A00FFF79EFCAD +:100B9000BAF1000F0AF003030AF1FF3936DDD3B1D1 +:100BA000012B0DD0022B05D016F80900FFF78EFCA3 +:100BB00009F1FF3916F80900FFF788FC09F1FF3940 +:100BC00016F8090009F1FF39FFF780FC09F1010C63 +:100BD000BCF1000F1ADD16F8090009F1FF3AFFF722 +:100BE00075FC16F80A00A9F1020AFFF76FFC16F867 +:100BF0000A00FFF76BFCA9F10303F05CA9F10409FB +:100C0000FFF764FC09F101010029E4DC013591E6FC +:100C1000039A0135111D10780391FFF757FC89E6FF +:100C200003996E460A68081D02F00F03092B88BF5E +:100C30000733039098E8030086E80300111101F0E0 +:100C40000F003033092888BF07300A118DF80030B3 +:100C500002F00F033030092B88BF073311118DF8D4 +:100C6000010001F00F00092888BF0730091101F0C9 +:100C70000F023030092A88BF073203F130090B1107 +:100C80008DF8030003F00F00092888BF07301B11FF +:100C900002F1300C03F00F02092A00F1300188BF85 +:100CA0000732C3F303103032092888BF07303030D1 +:100CB0008DF802908DF804C08DF805108DF806208F +:100CC0008DF80700082300E04B4603F1FF3916F8C2 +:100CD00009003028F8D0002B98DDFFF7F7FBB9F1B9 +:100CE000000F09F0030309F1FF3A8FDDD3B1012BA7 +:100CF0000DD0022B05D016F80A00FFF7E7FB0AF12A +:100D0000FF3A16F80A00FFF7E1FB0AF1FF3A16F87E +:100D10000A000AF1FF3AFFF7D9FB0AF101010029A5 +:100D20007FF774AF16F80A000AF1FF39FFF7CEFB20 +:100D300016F80900AAF10209FFF7C8FB16F8090026 +:100D4000FFF7C4FBAAF10303F05CAAF1040AFFF762 +:100D5000BDFB0AF1010CBCF1000FE3DC56E703997F +:100D60006E460A68081D02F00F03092B88BF27335F +:100D7000039098E8030086E80300111101F00F00CA +:100D80003033092888BF27300A118DF8003002F06F +:100D90000F033030092B88BF273311118DF8010064 +:100DA00001F00F00092888BF2730091101F00F0258 +:100DB0003030092A88BF273203F1300C0B118DF82F +:100DC000030003F00F00092888BF27301B1102F130 +:100DD000300903F00F02092A88BF27328DF802C0BC +:100DE00000F1300CC3F303103032092888BF2730DC +:100DF00030308DF804908DF805C08DF806208DF800 +:100E00000700082300E04B4603F1FF3916F80900FC +:100E10003028F8D0002B7FF7F9AEFFF757FBB9F178 +:100E2000000F09F0030309F1FF3A7FF7EFAED3B1EA +:100E3000012B0DD0022B05D016F80A00FFF746FB58 +:100E40000AF1FF3A16F80A00FFF740FB0AF1FF3AF1 +:100E500016F80A000AF1FF3AFFF738FB0AF101031E +:100E6000002B7FF7D3AE16F80A000AF1FF39FFF71F +:100E70002DFB16F80900AAF10209FFF727FB16F867 +:100E80000900FFF723FBAAF10303F05CAAF1040AAF +:100E9000FFF71CFB0AF1010CBCF1000FE3DCB5E627 +:100EA00025200135FFF712FB44E52D20C9F100098B +:100EB000FFF70CFBCDE54FF0010A65E69A4663E6C5 +:100EC0004FF0020A60E64FF0040A5DE64FF0030AB5 +:100ED0005AE64FF0050A57E64FF0070A54E64FF07E +:100EE000060A51E64FF0080A4EE600BF74657374B7 +:100EF000202564200A0D000000C0004000000140D1 +:100F00000080094000C00940010102020000000009 +:100F100003000000040102082020202020202020BF +:040F200000000000CD +:0C0F2400001BB70000093D000080000029 +:00000001FF diff --git a/examples/lpc1768_uart_LandTiger/lpc1768_uart.map b/examples/lpc1768_uart_LandTiger/lpc1768_uart.map new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart_LandTiger/lpc1768_uart.map @@ -0,0 +1,418 @@ +Archive member included because of file (symbol) + +/opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + main.o (bsp_init) +/opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) (uartputc) +/opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) (coresetCpuFreq) +/opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + main.o (libucprintf) + +Discarded input sections + + .text 0x00000000 0x0 main.o + .data 0x00000000 0x0 main.o + .bss 0x00000000 0x0 main.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_MSP + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_BASEPRI + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_PRIMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_FAULTMASK + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__get_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__set_CONTROL + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REV16 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__REVSH 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__RBIT 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__LDREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXB + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXH + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text.__STREXW + 0x00000000 0x8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .text 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .bss 0x00000000 0x0 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text.SystemCoreClockUpdate + 0x00000000 0xcc /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .data.SystemCoreClock + 0x00000000 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .text 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .data 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss 0x00000000 0x0 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text.bsp_GPIO_init + 0x00000000 0x28 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text.consolegetc + 0x00000000 0xc /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.UART3 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .bss.UART1 0x00000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetc + 0x00000000 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartputs + 0x00000000 0x18 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgets + 0x00000000 0x20 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartoff 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uarton 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text.uartgetpclkfactor + 0x00000000 0x78 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .text 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .data 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .bss 0x00000000 0x0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.clearch 0x00000000 0x24 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printhexfromint + 0x00000000 0x140 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.printdecfromint + 0x00000000 0x1e0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.int2hex 0x00000000 0xd8 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromhex + 0x00000000 0x27c /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.scanintfromdec + 0x00000000 0x188 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .text.libucscanf + 0x00000000 0x250 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + .rodata.str1.4 + 0x00000000 0x50 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +Memory Configuration + +Name Origin Length Attributes +IROM 0x00000000 0x00080000 xr +IRAM0 0x10000000 0x00008000 xrw +IRAM1 0x2007c000 0x00004000 xrw +IRAM2 0x20080000 0x00004000 xrw +*default* 0x00000000 0xffffffff + +Linker script and memory map + + +.text 0x00000000 0xf24 + *(.isr_vector .isr_vector.*) + .isr_vector 0x00000000 0xc4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000000 g_pfnVectors + *(.text .text.*) + .text.main 0x000000c4 0xb0 main.o + 0x000000c4 main + .text.Reset_Handler + 0x00000174 0x16c /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x00000174 Reset_Handler + .text.Default_Handler + 0x000002e0 0x4 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x000002e0 TIMER2_IRQHandler + 0x000002e0 DebugMon_Handler + 0x000002e0 RIT_IRQHandler + 0x000002e0 I2C0_IRQHandler + 0x000002e0 SysTick_Handler + 0x000002e0 PWM1_IRQHandler + 0x000002e0 PendSV_Handler + 0x000002e0 I2C1_IRQHandler + 0x000002e0 EINT2_IRQHandler + 0x000002e0 UART1_IRQHandler + 0x000002e0 EINT3_IRQHandler + 0x000002e0 TIMER3_IRQHandler + 0x000002e0 UART0_IRQHandler + 0x000002e0 UsageFault_Handler + 0x000002e0 PLL0_IRQHandler + 0x000002e0 CAN_IRQHandler + 0x000002e0 PLL1_IRQHandler + 0x000002e0 SSP0_IRQHandler + 0x000002e0 I2S_IRQHandler + 0x000002e0 I2C2_IRQHandler + 0x000002e0 RTC_IRQHandler + 0x000002e0 TIMER0_IRQHandler + 0x000002e0 SPI_IRQHandler + 0x000002e0 EINT1_IRQHandler + 0x000002e0 TIMER1_IRQHandler + 0x000002e0 UART2_IRQHandler + 0x000002e0 Default_Handler + 0x000002e0 ADC_IRQHandler + 0x000002e0 SSP1_IRQHandler + 0x000002e0 USB_IRQHandler + 0x000002e0 BOD_IRQHandler + 0x000002e0 MemManage_Handler + 0x000002e0 WDT_IRQHandler + 0x000002e0 SVC_Handler + 0x000002e0 QEI_IRQHandler + 0x000002e0 EINT0_IRQHandler + 0x000002e0 DMA_IRQHandler + 0x000002e0 BusFault_Handler + 0x000002e0 UART3_IRQHandler + 0x000002e0 MCPWM_IRQHandler + 0x000002e0 ENET_IRQHandler + .text.SystemInit + 0x000002e4 0xe8 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + 0x000002e4 SystemInit + .text.bsp_uart_init + 0x000003cc 0xa8 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x000003cc bsp_uart_init + .text.bsp_init + 0x00000474 0x58 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x00000474 bsp_init + .text.consoleputc + 0x000004cc 0x10 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x000004cc consoleputc + .text.uartputc + 0x000004dc 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000004dc uartputc + .text.uartsetpclkfactor + 0x000004e8 0xc0 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000004e8 uartsetpclkfactor + .text.uartsetbaudrate + 0x000005a8 0x180 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x000005a8 uartsetbaudrate + .text.uartsetup + 0x00000728 0x3c /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000728 uartsetup + .text.uartopen + 0x00000764 0x14 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + 0x00000764 uartopen + .text.coresetCpuFreq + 0x00000778 0x120 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000778 coresetCpuFreq + .text.coregetCpuFreq + 0x00000898 0x84 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + 0x00000898 coregetCpuFreq + .text.libucprintf + 0x0000091c 0x5d0 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + 0x0000091c libucprintf + *(.gnu.linkonce.t.*) + *(.glue_7) + .glue_7 0x00000000 0x0 linker stubs + *(.glue_7t) + .glue_7t 0x00000000 0x0 linker stubs + *(.gcc_except_table) + *(.rodata .rodata*) + .rodata.str1.4 + 0x00000eec 0xc main.o + .rodata.CSWTCH.5 + 0x00000ef8 0x10 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.0.5885 + 0x00000f08 0xc /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata.C.2.5916 + 0x00000f14 0x4 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .rodata 0x00000f18 0xc /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + *(.gnu.linkonce.r.*) + +.vfp11_veneer 0x00000f24 0x0 + .vfp11_veneer 0x00000000 0x0 linker stubs + +.v4_bx 0x00000f24 0x0 + .v4_bx 0x00000000 0x0 linker stubs + +.ctors 0x00000f24 0x0 + 0x00000f24 . = ALIGN (0x4) + 0x00000f24 PROVIDE (__ctors_start, .) + *(SORT(.ctors.*)) + *(.ctors) + 0x00000f24 PROVIDE (__ctors_end, .) + +.dtors 0x00000f24 0x0 + 0x00000f24 . = ALIGN (0x4) + 0x00000f24 PROVIDE (__dtors_start, .) + *(SORT(.dtors.*)) + *(.dtors) + 0x00000f24 PROVIDE (__dtors_end, .) + 0x00000f24 . = ALIGN (0x4) + 0x00000f24 _etext = . + 0x00000f24 _sifastcode = . + +.fastcode 0x10000000 0x0 load address 0x00000f24 + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sfastcode = . + *(.glue_7t) + *(.glue_7) + *(.fastcode) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _efastcode = . + 0x10000000 _sidata = . + +.usb_ram + *.o(USB_RAM) + +.data 0x10000000 0xc load address 0x00000f24 + 0x00000f24 _sidata = LOADADDR (.data) + 0x10000000 . = ALIGN (0x4) + 0x10000000 _sdata = . + *(vtable vtable.*) + *(.data .data.*) + .data.OSC0 0x10000000 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000000 OSC0 + .data.INTOSC 0x10000004 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000004 INTOSC + .data.RTCOSC 0x10000008 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000008 RTCOSC + *(.gnu.linkonce.d*) + 0x1000000c . = ALIGN (0x4) + 0x1000000c _edata = . + +.bss 0x1000000c 0xc load address 0x00000f30 + 0x1000000c . = ALIGN (0x4) + 0x1000000c _sbss = . + *(.bss .bss.*) + .bss.UART2 0x1000000c 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x1000000c UART2 + .bss.currentCpuFreq + 0x10000010 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000010 currentCpuFreq + .bss.UART0 0x10000014 0x4 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + 0x10000014 UART0 + *(.gnu.linkonce.b*) + *(COMMON) + 0x10000018 . = ALIGN (0x4) + 0x10000018 _ebss = . + +.stackarea 0x10000018 0x800 load address 0x00000f30 + 0x10000018 . = ALIGN (0x8) + 0x10000018 _sstack = . + *(.stackarea .stackarea.*) + .stackarea 0x10000018 0x800 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + 0x10000018 pulStack + 0x10000818 . = ALIGN (0x8) + 0x10000818 _estack = . + 0x10000818 . = ALIGN (0x4) + 0x10000818 _end = . + 0x10000818 PROVIDE (end, .) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges + *(.debug_aranges) + +.debug_pubnames + *(.debug_pubnames) + +.debug_info + *(.debug_info .gnu.linkonce.wi.*) + +.debug_abbrev + *(.debug_abbrev) + +.debug_line + *(.debug_line) + +.debug_frame + *(.debug_frame) + +.debug_str + *(.debug_str) + +.debug_loc + *(.debug_loc) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) +LOAD main.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o +LOAD /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o +LOAD /opt/libuc2/bsp/bin/LandTiger/libbsp.a +LOAD /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a +LOAD /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a +LOAD /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a +OUTPUT(lpc1768_uart.elf elf32-littlearm) + +.comment 0x00000000 0x2a + .comment 0x00000000 0x2a main.o + 0x2b (size before relaxing) + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .comment 0x00000000 0x2b /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .comment 0x00000000 0x2b /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .comment 0x00000000 0x2b /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) + +.ARM.attributes + 0x00000000 0x31 + .ARM.attributes + 0x00000000 0x31 main.o + .ARM.attributes + 0x00000031 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/startup_LPC17xx.o + .ARM.attributes + 0x00000062 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.o + .ARM.attributes + 0x00000093 0x31 /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.o + .ARM.attributes + 0x000000c4 0x31 /opt/libuc2/bsp/bin/LandTiger/libbsp.a(bsp.o) + .ARM.attributes + 0x000000f5 0x31 /opt/libuc2/lib/bin/lpc17XX/UART/libuart.a(uart.o) + .ARM.attributes + 0x00000126 0x31 /opt/libuc2/lib/bin/lpc17XX/CORE/libcore.a(core.o) + .ARM.attributes + 0x00000157 0x31 /opt/libuc2/lib/bin/lpc17XX/STRINGS/libucstrings.a(libucstrings.o) diff --git a/examples/lpc1768_uart_LandTiger/lpc1768_uart.pro b/examples/lpc1768_uart_LandTiger/lpc1768_uart.pro new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart_LandTiger/lpc1768_uart.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +ARCH = lpc17XX-arm-noabi-gcc +TARGET = lpc1768_uart +BSP = LandTiger + +LIBS += UART CORE UCSTRINGS + +SOURCES += main.c + + +HEADERS += + diff --git a/examples/lpc1768_uart_LandTiger/main.c b/examples/lpc1768_uart_LandTiger/main.c new file mode 100644 --- /dev/null +++ b/examples/lpc1768_uart_LandTiger/main.c @@ -0,0 +1,64 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ + +#include "LPC17xx.h" +#include "bsp.h" +#include "core.h" +#include "uart.h" +#include "libucstrings.h" +#define __delay(t) for(volatile int i=0;i7fK6n?Y2aW?LPe@KJ_ZdfN4ga$TiXA{bgz|`O^iZ~!OluM*7Nv{=YnpWgcsc_@A1|lsOseQ9vE9;e!7-{Cs_ue<( zn|V8Ua`I<`jU$Ld0#SdOcZ6?;~qs(N!FOx`~bjUzeW3WK~syWo}Qb} zXzFdC@J2n93cU@p^vhJcIwoX!U_e1TAS<;j3+G2Ngb=7T0^P8K03I;5X;N&{4ZFY( z=5lKE%*bDskl3_@&>oWw@W!d^$uVNG&4RHn|HZ4I_O~TmB)z2S>8C2XL@*} zKbsihk)dRNu9$DGbv&^+asfzZdA~n8EH7_Zix;q`HY_f*ft8|F;*7o7NWLxmrzOM~ zlNG|lD`gVEXpA>PS?b}9NPeZvAage|{m3j~Rwf{GTP)d!jI}O{>~naj>UH9GTHoF)1e!lH7MxNgfszsb5OMSsCd$H8(W_ z4K)KcaDzsfzRJO+QNjnR?54&%uf(&Nw#a z@YoOVYVY6>cK#!Ha)Z30>oIYTJ%YW(wZ0V>M9_ZXa5yL5kVkJ4!J=zjP4B!%?}$s! z=hD0C=*bT68G;_qIcUF8J?mV}&tkz64bB^aotoI^Mc!8pc+@g3|1wvti-7Z8&i;bV z8QglCO#o*a=y{vl&q4V=cZ~I{V(WH7G3&vcT`RYu{awfouIKwae4owNUAUgldvFWv zcFsU+5=Q+`U2$5MxCbBh;M%>TcOy*m**}D7i0cr)4xV>6G&VUtkp}ECT$)VNx#s}_ bk75jNN}x7?IjF@%ccAM38mj&hRQ>-0z(p=| diff --git a/lib/bin/lpc17XX/IIC/libiic.a b/lib/bin/lpc17XX/IIC/libiic.a new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..6c078aa3f3063fde80a55a2a03f44e50d83c842b GIT binary patch literal 5126 zc$~eLe{2)y8OPt(cX7^%^UHOD6O!V@BsL>8 zj0PLh96%k?qAJ^%6t!$h)k=jfe^^~6^$*&3C4bO~Kb#J&nG~d|YIV>u%_X3o1S)&q z^JC}y;w(s&cGBz5`@GNhectzd-n)B!tvjW7NZwV^WiP&b-Tr{Lx7+V~#%}j&E&5;L z@9Bk_Sb-3t<+CR#WB$<3<70`4ALVPb5|2n>%85wgM2uD<$EDGz<_eEZqKe_HOF*vR>g!3TyeTWxJjfiCh27q+Z2~i5OLR{iqea!ZF>7nyxXGU&0EBzQt-@D&)pT=+dw=C zv-hQIw?T>YH`9g_0&PrHvIfAWy5*E)&u|c#DbZ}yhIosfRZNV@! zqS_I%Q=2}$*8OKvl`{VQQ$sU-)fw*o`L^l4O_@4kRb`OFa2bEanVVJKY)Hih&HIzjIfcV)mhneI`1Z{al|r(?YC<44?9nRabpoYi=5fJX^1t&Hqs6>dxT4FEP5R z&S7d9pngl?-+7^t&VlH5l6lm<&h-=DbuuGjwQ^q?FsawwQ25IS8;wIm)k*tX%04MI zzrXSWXH!)Jw!b|3=G#Y`_tShdkvVPE@^PWBBV*HMNb>Q{lC4hVuSXrJ2M@pf;KBX- z#{|wjv%t3p+g#*XY?mTZn>Z_RDewD`A)2r5&lKUgkIDFdBe`2q${>$;y5bmJw>i+R~B68Awup1dG$`6_h7T${M@g~lO8*vkU+JHP0r;a70QNlz# zM>$_39TUhyj~3(^otQwLcqFPdde+Xh$JKV5|r(i0!2bx*&i+tc&?fKS)pBMrVCYYihmKHR_0(~CTz@ngp#$4N5wJb%z5 zB@*$m(G!Wt1bXsoGeX)~Y6LsL_zl2T&~fYN^5?OW6yXVU-V)kf4u*hz{>*FRN* z(0QV30u2x2J=w{9(-Q5SE7iRU5l$CDV{JkeQ8=wgiS8kZY~ z)g>8SW*yxh7~S$Zd@M=Mz4EBw+lb6)6b1w7b;0`F8BO* z!u)8SOiVnUJa3mvjLTm7b{>8GNblpAUR=>ksLe4pkIIW$cw=olX6EFEITD#&2T$CdOaE_$wHHCF8GT{AR{))*{sE>|%X2qpxQ2Rn6#Y z8GWs$pVryMdJChsX!_GSyI5~!R%}I8P@_AAi{4aJU(e|4Q3KRWn!cXVH!%7Jv;}Hr zP2a%iH!-%2d?n`Y*;g^0J&*ighc(-%eJ@daN?VNz&fif@(i~$qClfcu!B=8*YJa7s)4ZHxH0bT^o z0^b5&0?q+bzQdO3VaCE_QeGIVuF1! a!M>Ps&#%D=`EP}MY|Wht6+0l0r2W57pZ-$- diff --git a/lib/bin/lpc17XX/STRINGS/libucstrings.a b/lib/bin/lpc17XX/STRINGS/libucstrings.a new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..539727035819dfa6b9f06d2241b6bc2557eb822b GIT binary patch literal 7622 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 i{j5!lgX3eSalXM(mwy8}s5XfJ diff --git a/lib/includes/lpc17XX/CORE/core.h b/lib/includes/lpc17XX/CORE/core.h new file mode 100644 --- /dev/null +++ b/lib/includes/lpc17XX/CORE/core.h @@ -0,0 +1,48 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "LPC17xx.h" + + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + + +extern void coresetCpuFreq(unsigned int freq); +extern unsigned int coregetCpuFreq(); + + + + + + + + + + + + + diff --git a/lib/includes/lpc17XX/IIC/iic.h b/lib/includes/lpc17XX/IIC/iic.h new file mode 100644 --- /dev/null +++ b/lib/includes/lpc17XX/IIC/iic.h @@ -0,0 +1,70 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef IIC_H +#define IIC_H +#include "LPC17xx.h" + +enum iicctrlvals +{ + i2noerr, + i2noack, + i2arbloss, + i2busy, + i2timeout +}; + +typedef enum iicctrlvals i2ctrl; + +struct lpc17XXi2cRegs +{ + unsigned long I2CONSET; + unsigned long I2STAT; + unsigned long I2DAT; + unsigned long I2ADR; + unsigned long I2SCLH; + unsigned long I2SCLL; + unsigned long I2CONCLR; +}; + +typedef volatile struct lpc17XXi2cRegs i2cDev; + +extern i2ctrl i2cwrite(i2cDev* dev,char address,char*data,int* cnt); +extern i2ctrl i2cwrite2(i2cDev* dev,char address,char*cmd,int* cmdcnt,char*data,int* datcnt); +extern i2ctrl i2cread(i2cDev* dev,char address,char*data,int* cnt); +extern i2cDev* i2copen(int count); +extern void i2cenable(i2cDev* dev); +extern void i2cdisable(i2cDev* dev); +extern void i2csetup(i2cDev* dev,int clkH,int clkL); +extern unsigned char i2cgetpclkfactor(i2cDev* dev); +extern void i2csetpclkfactor(i2cDev* dev,unsigned char pclkfactor); +extern void i2csetdatarate(i2cDev* dev,unsigned int dataRate); + +#endif + + + + + + + + + diff --git a/lib/includes/lpc17XX/STRINGS/libucstrings.h b/lib/includes/lpc17XX/STRINGS/libucstrings.h new file mode 100644 --- /dev/null +++ b/lib/includes/lpc17XX/STRINGS/libucstrings.h @@ -0,0 +1,28 @@ +#/*------------------------------------------------------------------------------ +#-- This file is a part of the libuc, microcontroler library +#-- Copyright (C) 2011, Alexis Jeandet +#-- +#-- This program is free software; you can redistribute it and/or modify +#-- it under the terms of the GNU General Public License as published by +#-- the Free Software Foundation; either version 3 of the License, or +#-- (at your option) any later version. +#-- +#-- This program is distributed in the hope that it will be useful, +#-- but WITHOUT ANY WARRANTY; without even the implied warranty of +#-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#-- GNU General Public License for more details. +#-- +#-- You should have received a copy of the GNU General Public License +#-- along with this program; if not, write to the Free Software +#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#------------------------------------------------------------------------------- +#-- Author : Alexis Jeandet +#-- Mail : alexis.jeandet@gmail.com +#-------------------------------------------------------------------------------*/ + + + +void clearstr(char* a); +void int2hex(unsigned long a,char*b); +int libucprintf(const char*,...); +int libucscanf(const char*,...); diff --git a/lib/lib.pro b/lib/lib.pro new file mode 100644 --- /dev/null +++ b/lib/lib.pro @@ -0,0 +1,3 @@ +TEMPLATE = dir +SUBDIRS += src + diff --git a/lib/src/Makefile b/lib/src/Makefile new file mode 100644 --- /dev/null +++ b/lib/src/Makefile @@ -0,0 +1,13 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C lpc17XX + @echo Code compiled + +clean: + make clean -C lpc17XX + @echo Code compiled + diff --git a/lib/src/lib.pro b/lib/src/lib.pro new file mode 100644 --- /dev/null +++ b/lib/src/lib.pro @@ -0,0 +1,5 @@ +TEMPLATE = dir +SUBDIRS += lpc17XX \ + lpc21XX \ + LEON3 + diff --git a/lib/src/lpc17XX/CORE/Makefile b/lib/src/lpc17XX/CORE/Makefile new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/CORE/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/CORE +HEADERS += core.h +LIBSOURCES += core.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libcore +LIBUC_INCLUDES= +LIBUC_LIBRARIES= +TARGETINSTALLPATH=$(LIBUC_LIBS_DIR)/CORE +HEADERSINSTALLPATH=$(LIBUC_INC_DIR)/CORE +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/lib/src/lpc17XX/CORE/core.c b/lib/src/lpc17XX/CORE/core.c new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/CORE/core.c @@ -0,0 +1,82 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "core.h" +extern unsigned int OSC0; +extern unsigned int INTOSC; +extern unsigned int RTCOSC; + +void coresetCpuFreq(unsigned int freq) +{ + unsigned int inputFreq = 10000,PLLFREQ=300000000; + unsigned int M0=6,N0=1; + if(pll0getClksrc==pll0useInternal) + { + inputFreq=INTOSC; + } + if(pll0getClksrc==pll0useMainOsc) + { + inputFreq=OSC0; + } + if(pll0getClksrc==pll0useRTC) + { + inputFreq=RTCOSC; + } + LPC_SC->CCLKCFG = (PLLFREQ/freq)-1; + while(N0<33) + { + M0=(PLLFREQ*N0)/(2*inputFreq); + if((6PLL0CFG = (M0-1)+((N0-1)<<16); + LPC_SC->PLL0FEED = 0xAA; + LPC_SC->PLL0FEED = 0x55; + LPC_SC->PLL0CON = 1; + LPC_SC->PLL0FEED = 0xAA; + LPC_SC->PLL0FEED = 0x55; + while (!(LPC_SC->PLL0STAT & (1<<26))); + LPC_SC->PLL0CON = 3; + LPC_SC->PLL0FEED = 0xAA; + LPC_SC->PLL0FEED = 0x55; + while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24)))); + break; + } + N0++; + } + +} + + + + +unsigned int coregetCpuFreq() +{ + unsigned int inputFreq; + unsigned int M0,N0,CPUDIV; + M0 = (LPC_SC->PLL0CFG & 0x3FFF) + 1; + N0 = ((LPC_SC->PLL0CFG>>16) & 0xFF) + 1; + CPUDIV = LPC_SC->CCLKCFG + 1; + if(pll0getClksrc==pll0useInternal){ inputFreq=INTOSC;} + if(pll0getClksrc==pll0useMainOsc) {inputFreq=OSC0;} + if(pll0getClksrc==pll0useRTC) {inputFreq=RTCOSC;} + if((LPC_SC->PLL0CON & 2)==2) {return ((inputFreq*M0*2)/(N0*CPUDIV));} + return inputFreq; +} diff --git a/lib/src/lpc17XX/CORE/core.d b/lib/src/lpc17XX/CORE/core.d new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/CORE/core.d @@ -0,0 +1,11 @@ +core.o: core.c core.h /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h + +core.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h: diff --git a/lib/src/lpc17XX/CORE/core.h b/lib/src/lpc17XX/CORE/core.h new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/CORE/core.h @@ -0,0 +1,48 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "LPC17xx.h" + + +#define pll0useInternal 0 +#define pll0useMainOsc 1 +#define pll0useRTC 2 + + +#define pll0setClksrc(src) if((unsigned int)(src)<3) LPC_SC->CLKSRCSEL=(src) +#define pll0getClksrc (LPC_SC->CLKSRCSEL & 3) + + +extern void coresetCpuFreq(unsigned int freq); +extern unsigned int coregetCpuFreq(); + + + + + + + + + + + + + diff --git a/lib/src/lpc17XX/CORE/core.pro b/lib/src/lpc17XX/CORE/core.pro new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/CORE/core.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libcore +TARGETINSTALLPATH = $(LIBUC_LIBS_DIR)/CORE +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/CORE + +LIBS += + +SOURCES += core.c + + +HEADERS += core.h diff --git a/lib/src/lpc17XX/IIC/Makefile b/lib/src/lpc17XX/IIC/Makefile new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/IIC/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/IIC +HEADERS += iic.h +LIBSOURCES += iic.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libiic +LIBUC_INCLUDES=$(LIBUC_INC_DIR_CORE) +LIBUC_LIBRARIES=$(LIBUC_LIBS_DIR_CORE) $(LIBUC_LIBS_CORE) +TARGETINSTALLPATH=$(LIBUC_LIBS_DIR)/IIC +HEADERSINSTALLPATH=$(LIBUC_INC_DIR)/IIC +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/lib/src/lpc17XX/IIC/iic.c b/lib/src/lpc17XX/IIC/iic.c new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/IIC/iic.c @@ -0,0 +1,319 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#include "iic.h" +#include "core.h" + +#define iicputdata(iicdev,W,IICONSET,IICONCLR) (iicdev)->I2DAT = (W);\ + (iicdev)->I2CONSET = (IICONSET);\ + (iicdev)->I2CONCLR = (IICONCLR); + +#define iicgetdata(iicdev,W,IICONSET,IICONCLR) (W) = (iicdev)->I2DAT;\ + (iicdev)->I2CONSET = (IICONSET);\ + (iicdev)->I2CONCLR = (IICONCLR); + + + +i2ctrl i2cwrite2(i2cDev* dev,char address,char*cmd,int* cmdcnt,char*data,int* datcnt) +{ + char iicdat=0; + dev->I2CONCLR = 0x28; + iicdat = (address<<1) & 0xFE; + int count = (*datcnt) + 2; + *datcnt = 0; + while(dev->I2STAT != 0xF8); //waiting for device to be ready /!\ should add timeout + dev->I2CONSET = (1<<5); //initiate transfert + while(count>0) + { + while((dev->I2CONSET & 0x08)!=0x08); + switch(dev->I2STAT) + { + case 0x08: + iicputdata(dev,iicdat,(1<<2),0x28); + iicdat = *cmd++; + break; + case 0x10: + iicputdata(dev,iicdat,(1<<2),0x28); + iicdat = *cmd++; + *cmdcnt = (*cmdcnt) - 1; + break; + case 0x18: + iicputdata(dev,iicdat,0,0x08); + if((*cmdcnt)>1) + { + iicdat = *cmd++; + *cmdcnt = (*cmdcnt) - 1; + } + else + { + count--; + iicdat = *data++; + } + break; + case 0x28: + iicputdata(dev,iicdat,(1<<2),0x08); + if((*cmdcnt)>1) + { + iicdat = *cmd++; + *cmdcnt = (*cmdcnt) - 1; + } + else + { + count--; + *datcnt = (*datcnt)+1; + iicdat = *data++; + } + break; + case 0x20: + count = 0; + break; + case 0x30: + count = 0; + break; + case 0x38: + count = 0; + break; + default: + break; + } + + } + dev->I2CONSET = (1<<4) + (1<<2); + dev->I2CONCLR = 1<<3; + return i2noerr; +} + + + +i2ctrl i2cwrite(i2cDev* dev,char address,char*data,int* cnt) +{ + char iicdat=0; + dev->I2CONCLR = 0x28; + iicdat = (address<<1) & 0xFE; + int count = (*cnt) + 1; + *cnt = 0; + while(dev->I2STAT != 0xF8); //waiting for device to be ready /!\ should add timeout + dev->I2CONSET = (1<<5); //initiate transfert + while(count>0) + { + while((dev->I2CONSET & 0x08)!=0x08); + switch(dev->I2STAT) + { + case 0x08: + iicputdata(dev,iicdat,(1<<2),0x28); + iicdat = *data++; + break; + case 0x10: + iicputdata(dev,iicdat,(1<<2),0x28); + iicdat = *data++; + break; + case 0x18: + iicputdata(dev,iicdat,0,0x08); + count--; + iicdat = *data++; + break; + case 0x28: + iicputdata(dev,iicdat,(1<<2),0x08); + *cnt = (*cnt)+1; + count--; + iicdat = *data++; + break; + case 0x20: + return i2noack; + count = 0; + break; + case 0x30: + return i2noack; + count = 0; + break; + case 0x38: + return i2arbloss; + count = 0; + break; + default: + break; + } + + } + dev->I2CONSET = (1<<4) + (1<<2); + dev->I2CONCLR = 1<<3; + return i2noerr; +} + + +i2ctrl i2cread(i2cDev* dev,char address,char*data,int* cnt) +{ + char iicdat=0; + dev->I2CONCLR = 0x28; + iicdat = (address<<1) + 1; + int count = (*cnt) + 1; + *cnt = 0; + while(dev->I2STAT != 0xF8); //waiting for device to be ready /!\ should add timeout + dev->I2CONSET = (1<<5); //initiate transfert + while(count>0) + { + while((dev->I2CONSET & 0x08)!=0x08); + switch(dev->I2STAT) + { + case 0x08: + iicputdata(dev,iicdat,(1<<2),0x28); + break; + case 0x10: + iicputdata(dev,iicdat,(1<<2),0x28); + break; + case 0x40: + dev->I2CONSET = (1<<2); + dev->I2CONCLR = (1<<3); + count--; + break; + case 0x50: + iicgetdata(dev,iicdat,(1<<2),(1<<3)); + count--; + *cnt = (*cnt) + 1; + *data++ = iicdat; + break; + case 0x48: + return i2noack; + break; + case 0x58: + count = 0; + return i2noack; + break; + default: + break; + } + + } + dev->I2CONSET = (1<<4) + (1<<2); + dev->I2CONCLR = 1<<3; + return i2noerr; +} + + +void i2csetup(i2cDev* dev,int clkH,int clkL) +{ + dev->I2CONCLR = 0x6C; + dev->I2SCLH = clkH; + dev->I2SCLL = clkL; + dev->I2CONSET = 1<<6; //enable I2C block + dev->I2CONCLR = 0x28; +} + + +void i2cenable(i2cDev* dev) +{ + dev->I2CONSET = 1<<6; +} + + +void i2cdisable(i2cDev* dev) +{ + dev->I2CONCLR = (1<<6); +} + + +i2cDev* i2copen(int count){ + i2cDev* dev; + switch(count) + { + case 0: + dev = (i2cDev*)((unsigned long)LPC_I2C0_BASE); + break; + case 1: + dev = (i2cDev*)((unsigned long)LPC_I2C1_BASE); + break; + case 2: + dev = (i2cDev*)((unsigned long)LPC_I2C2_BASE); + break; + default: + dev = (i2cDev*)0; + break; + } + return dev; +} + + + +unsigned char i2cgetpclkfactor(i2cDev* dev) +{ + unsigned int clksel=0; + const char clkselDec[]={4,1,2,8}; + switch((int)dev) + { + case (int)LPC_I2C0_BASE: + clksel = (LPC_SC->PCLKSEL0>>14) & 3; + break; + case (int)LPC_I2C1_BASE: + clksel = (LPC_SC->PCLKSEL1>>6) & 3; + break; + case (int)LPC_I2C2_BASE: + clksel = (LPC_SC->PCLKSEL1>>20) & 3; + break; + default: + break; + } + return clkselDec[clksel]; +} + + +void i2csetpclkfactor(i2cDev* dev,unsigned char pclkfactor) +{ + const char clkselDec[]={1,1,2,2,0,0,0,0,3}; + unsigned int clksel=0; + switch((int)dev) + { + case (int)LPC_I2C0_BASE: + LPC_SC->PCLKSEL0 |= clkselDec[pclkfactor]<<14; + LPC_SC->PCLKSEL0 &= clkselDec[pclkfactor]<<14; + break; + case (int)LPC_I2C1_BASE: + LPC_SC->PCLKSEL1 |= clkselDec[pclkfactor]<<6; + LPC_SC->PCLKSEL1 &= clkselDec[pclkfactor]<<6; + break; + case (int)LPC_I2C2_BASE: + LPC_SC->PCLKSEL1 |= clkselDec[pclkfactor]<<20; + LPC_SC->PCLKSEL1 &= clkselDec[pclkfactor]<<20; + break; + default: + break; + } + +} + + +void i2csetdatarate(i2cDev* dev,unsigned int dataRate) +{ + unsigned int pclk = 0; + unsigned int cpuclk=0; + unsigned int i2csclkl=0; + if(dev==0)return; + cpuclk = coregetCpuFreq(); + pclk = cpuclk / i2cgetpclkfactor(dev); + i2csclkl = (pclk / dataRate)>>1; + if(i2csclkl<4) i2csclkl = 4; + i2csetup(dev,i2csclkl,i2csclkl); +} + + + + + + diff --git a/lib/src/lpc17XX/IIC/iic.d b/lib/src/lpc17XX/IIC/iic.d new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/IIC/iic.d @@ -0,0 +1,14 @@ +iic.o: iic.c iic.h /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h \ + /opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h \ + /opt/libuc2/lib/includes/lpc17XX/CORE/core.h + +iic.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/LPC17xx.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/core_cm3.h: + +/opt/libuc2/rules/lpc17XX-arm-noabi-gcc/system_LPC17xx.h: + +/opt/libuc2/lib/includes/lpc17XX/CORE/core.h: diff --git a/lib/src/lpc17XX/IIC/iic.h b/lib/src/lpc17XX/IIC/iic.h new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/IIC/iic.h @@ -0,0 +1,70 @@ +/*------------------------------------------------------------------------------ +-- This file is a part of the libuc, microcontroler library +-- Copyright (C) 2011, Alexis Jeandet +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Author : Alexis Jeandet +-- Mail : alexis.jeandet@gmail.com +-------------------------------------------------------------------------------*/ +#ifndef IIC_H +#define IIC_H +#include "LPC17xx.h" + +enum iicctrlvals +{ + i2noerr, + i2noack, + i2arbloss, + i2busy, + i2timeout +}; + +typedef enum iicctrlvals i2ctrl; + +struct lpc17XXi2cRegs +{ + unsigned long I2CONSET; + unsigned long I2STAT; + unsigned long I2DAT; + unsigned long I2ADR; + unsigned long I2SCLH; + unsigned long I2SCLL; + unsigned long I2CONCLR; +}; + +typedef volatile struct lpc17XXi2cRegs i2cDev; + +extern i2ctrl i2cwrite(i2cDev* dev,char address,char*data,int* cnt); +extern i2ctrl i2cwrite2(i2cDev* dev,char address,char*cmd,int* cmdcnt,char*data,int* datcnt); +extern i2ctrl i2cread(i2cDev* dev,char address,char*data,int* cnt); +extern i2cDev* i2copen(int count); +extern void i2cenable(i2cDev* dev); +extern void i2cdisable(i2cDev* dev); +extern void i2csetup(i2cDev* dev,int clkH,int clkL); +extern unsigned char i2cgetpclkfactor(i2cDev* dev); +extern void i2csetpclkfactor(i2cDev* dev,unsigned char pclkfactor); +extern void i2csetdatarate(i2cDev* dev,unsigned int dataRate); + +#endif + + + + + + + + + diff --git a/lib/src/lpc17XX/IIC/iic.pro b/lib/src/lpc17XX/IIC/iic.pro new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/IIC/iic.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libiic +TARGETINSTALLPATH = $(LIBUC_LIBS_DIR)/IIC +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/IIC + +LIBS += CORE + +SOURCES += iic.c + + +HEADERS += iic.h diff --git a/lib/src/lpc17XX/Makefile b/lib/src/lpc17XX/Makefile new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 +include $(LIBUC)/rules/common/rules.mk + +all:subdir + make -C UART + make -C IIC + make -C CORE + make -C STRINGS + @echo Code compiled + +clean: + make clean -C UART + make clean -C IIC + make clean -C CORE + make clean -C STRINGS + @echo Code compiled + diff --git a/lib/src/lpc17XX/STRINGS/Makefile b/lib/src/lpc17XX/STRINGS/Makefile new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/STRINGS/Makefile @@ -0,0 +1,19 @@ + +PROJECTDIR = `pwd` +LIBUC = /opt/libuc2 + +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/STRINGS +HEADERS += libucstrings.h +LIBSOURCES += libucstrings.c +OBJECTFILES = $(LIBSOURCES:.c=.o) +ARCH = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc +TARGET=libucstrings +LIBUC_INCLUDES= +LIBUC_LIBRARIES= +TARGETINSTALLPATH=$(LIBUC_LIBS_DIR)/STRINGS +HEADERSINSTALLPATH=$(LIBUC_INC_DIR)/STRINGS +BSP=generic +include $(ARCH)/rules.mk + +all:lib + @echo Code compiled diff --git a/lib/src/lpc17XX/STRINGS/libucstrings.c b/lib/src/lpc17XX/STRINGS/libucstrings.c new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/STRINGS/libucstrings.c @@ -0,0 +1,318 @@ +#/*------------------------------------------------------------------------------ +#-- This file is a part of the libuc, microcontroler library +#-- Copyright (C) 2011, Alexis Jeandet +#-- +#-- This program is free software; you can redistribute it and/or modify +#-- it under the terms of the GNU General Public License as published by +#-- the Free Software Foundation; either version 3 of the License, or +#-- (at your option) any later version. +#-- +#-- This program is distributed in the hope that it will be useful, +#-- but WITHOUT ANY WARRANTY; without even the implied warranty of +#-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#-- GNU General Public License for more details. +#-- +#-- You should have received a copy of the GNU General Public License +#-- along with this program; if not, write to the Free Software +#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#------------------------------------------------------------------------------- +#-- Author : Alexis Jeandet +#-- Mail : alexis.jeandet@gmail.com +#-------------------------------------------------------------------------------*/ +#include +#include "libucstrings.h" +extern void consoleputc(char); +extern char consolegetc(); +#define _x_prtconv_(a) printhexfromint((a),39) +#define _X_prtconv_(a) printhexfromint((a),7) +#define _d_prtconv_(a) printdecfromint((a)) + +#define _x_scnconv_() scanintfromhex() +#define _d_scnconv_() scanintfromdec() + +void clearch(char* a) +{ + while((*a)) + *a++=' '; + a--; + *a='\n'; +} + + +int scanintfromdec() +{ + char c[8]=" "; + int e=0; + int result=0; + do + { + c[e] = consolegetc(); + consoleputc(c[e]); + if(((c[e] & 0xF0) == 0x30)) + e++; + }while( (c[e]!='\n') && (e<8)); + libucprintf("\n%d number(s) read\n",e); + int i=0; + while((i9) + { + c[e] = c[e]+caseoffset; + } + c[e] = c[e] + 0x30; + a=a>>4; + e++; + } + while(c[--e]=='0'); + e++; + while(e-->0) + consoleputc(c[e]); +} + + +void printdecfromint(int a) +{ + char c[10]=" "; + int e=0; + int d=a; + if((d & 0x80000000) == 0x80000000) + { + d ^= -1; + d++; + consoleputc('-'); + } + while(d>0 && e<10) + { + c[e++] = 0x30 + (d % 10); + d = d / 10; + } + while(e-->0) + consoleputc(c[e]); +} + +void int2hex(unsigned long a,char*b) +{ + char*d = b; + char c[16]=" "; + int e=0; + while(e<8) + { + c[e] = a & 0xF; + if(c[e]>9) + { + c[e] = c[e]+7; + } + c[e] = c[e] + 0x30; + a=a>>4; + e++; + } + for(e=(e-1);e>=0;e--) + { + *d=c[e]; + d = d +1; + } +} + +/// Partialy implemented printf function capable to compute %d,x,X conversions +int libucprintf(const char* format,...) +{ + int nout=0; + va_list ap; + va_start(ap,format); + while(*format) + { + if(*format!='%') + { + consoleputc(*format++); + nout++; + } + else + { + format++; + if(*format!='%') + { + switch(*format) + { + case 'c': + consoleputc((char)va_arg(ap,int)); + format++; + break; + case 'd': + _d_prtconv_(va_arg(ap,int)) ; + format++; + break; + case 'e': + va_arg(ap,int); + format++; + break; + case 'E': + va_arg(ap,int); + format++; + break; + case 'f': + va_arg(ap,int); + format++; + break; + case 's': + va_arg(ap,int); + format++; + break; + case 'x': + _x_prtconv_(va_arg(ap,int)) ; + format++; + break; + case 'X': + _X_prtconv_(va_arg(ap,int)) ; + format++; + break; + case '%': + consoleputc(*format++); + break; + default: + va_arg(ap,int); + format++; + break; + } + } + else + { + consoleputc(*format++); + nout++; + } + } + } + va_end(ap); + return nout; +} + + +int libucscanf(const char* format,...) +{ + int nin=0; + int* value; + va_list ap; + va_start(ap,format); + while(*format) + { + while(*format!='%')format++; + format++; + libucprintf("find %%%c\n",*format); + switch(*format) + { + case 'c': + va_arg(ap,int*); + format++; + break; + case 'd': + value = (int*)va_arg(ap,int*); + *value=_d_scnconv_() ; + format++; + break; + case 'e': + va_arg(ap,int*); + format++; + break; + case 'E': + va_arg(ap,int*); + format++; + break; + case 'f': + va_arg(ap,int*); + format++; + break; + case 's': + va_arg(ap,int*); + format++; + break; + case 'u': + va_arg(ap,int*); + format++; + break; + case 'x': + value = (int*)va_arg(ap,int*); + *value = _x_scnconv_(); + format++; + break; + case 'X': + value = (int*)va_arg(ap,int*); + *value = _x_scnconv_(); + format++; + break; + default: + va_arg(ap,int*); + format++; + break; + } + + } + va_end(ap); + return nin; +} + + + + + + + + + + + + + + diff --git a/lib/src/lpc17XX/STRINGS/libucstrings.d b/lib/src/lpc17XX/STRINGS/libucstrings.d new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/STRINGS/libucstrings.d @@ -0,0 +1,3 @@ +libucstrings.o: libucstrings.c libucstrings.h + +libucstrings.h: diff --git a/lib/src/lpc17XX/STRINGS/libucstrings.h b/lib/src/lpc17XX/STRINGS/libucstrings.h new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/STRINGS/libucstrings.h @@ -0,0 +1,28 @@ +#/*------------------------------------------------------------------------------ +#-- This file is a part of the libuc, microcontroler library +#-- Copyright (C) 2011, Alexis Jeandet +#-- +#-- This program is free software; you can redistribute it and/or modify +#-- it under the terms of the GNU General Public License as published by +#-- the Free Software Foundation; either version 3 of the License, or +#-- (at your option) any later version. +#-- +#-- This program is distributed in the hope that it will be useful, +#-- but WITHOUT ANY WARRANTY; without even the implied warranty of +#-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#-- GNU General Public License for more details. +#-- +#-- You should have received a copy of the GNU General Public License +#-- along with this program; if not, write to the Free Software +#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#------------------------------------------------------------------------------- +#-- Author : Alexis Jeandet +#-- Mail : alexis.jeandet@gmail.com +#-------------------------------------------------------------------------------*/ + + + +void clearstr(char* a); +void int2hex(unsigned long a,char*b); +int libucprintf(const char*,...); +int libucscanf(const char*,...); diff --git a/lib/src/lpc17XX/STRINGS/strings.pro b/lib/src/lpc17XX/STRINGS/strings.pro new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/STRINGS/strings.pro @@ -0,0 +1,12 @@ +TEMPLATE = lib +ARCH = lpc17XX-arm-noabi-gcc +TARGET = libucstrings +TARGETINSTALLPATH = $(LIBUC_LIBS_DIR)/STRINGS +HEADERSINSTALLPATH = $(LIBUC_INC_DIR)/STRINGS + +LIBS += + +SOURCES += libucstrings.c + + +HEADERS += libucstrings.h diff --git a/lib/src/lpc17XX/lpc17XX.pro b/lib/src/lpc17XX/lpc17XX.pro new file mode 100644 --- /dev/null +++ b/lib/src/lpc17XX/lpc17XX.pro @@ -0,0 +1,9 @@ +TEMPLATE = dir +SUBDIRS += UART\ + SPI \ + ADC \ + IIC \ + CORE \ + STRINGS + + diff --git a/libuc2.pro b/libuc2.pro new file mode 100644 --- /dev/null +++ b/libuc2.pro @@ -0,0 +1,5 @@ +TEMPLATE = dir +SUBDIRS += bsp\ + examples \ + lib + diff --git a/libuc2.pro~ b/libuc2.pro~ new file mode 100644 --- /dev/null +++ b/libuc2.pro~ @@ -0,0 +1,5 @@ +TEMPLATE = dir +SUBDIRS += bsp\ + examples \ + lib +