@@ -0,0 +1,1 | |||
|
1 | extern int bsp_init(); |
@@ -0,0 +1,14 | |||
|
1 | TEMPLATE = lib | |
|
2 | ||
|
3 | lpc17XX.ARCH = sparc-elf-gcc | |
|
4 | lpc17XX.TARGET = libbsp | |
|
5 | lpc17XX.TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/LFR-142200 | |
|
6 | lpc17XX.HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/LFR-142200 | |
|
7 | lpc17XX.LIBS += | |
|
8 | lpc17XX.SOURCES += bsp.c | |
|
9 | lpc17XX.HEADERS += bsp.h | |
|
10 | ||
|
11 | ||
|
12 | ||
|
13 | ||
|
14 |
@@ -0,0 +1,12 | |||
|
1 | TEMPLATE = app | |
|
2 | ARCH = sparc-elf-gcc | |
|
3 | TARGET = helloWorld | |
|
4 | BSP = LFR-142200 | |
|
5 | ||
|
6 | LIBS += APB | |
|
7 | ||
|
8 | SOURCES += main.c | |
|
9 | ||
|
10 | ||
|
11 | HEADERS += | |
|
12 |
@@ -0,0 +1,15 | |||
|
1 | #include <stdio.h> | |
|
2 | #include <bsp.h> | |
|
3 | ||
|
4 | ||
|
5 | int main(void) | |
|
6 | { | |
|
7 | bsp_init(); | |
|
8 | printf("hello world"); | |
|
9 | return 0; | |
|
10 | } | |
|
11 | ||
|
12 | ||
|
13 | ||
|
14 | ||
|
15 |
@@ -0,0 +1,122 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "apb.h" | |
|
23 | #include <stdio.h> | |
|
24 | ||
|
25 | ||
|
26 | ||
|
27 | int* apbgetdevice(int PID,int VID,int count) | |
|
28 | { | |
|
29 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD + sizeof(struct apbPnPreg)); | |
|
30 | int id; | |
|
31 | id = (PID<<12) | (VID<<24); | |
|
32 | while(dev != (struct apbPnPreg*)(APB_TBL_HEAD|0xFFF)) | |
|
33 | { | |
|
34 | if((dev->idReg & 0xFFFFF000) == id) | |
|
35 | { | |
|
36 | if(count == 0) | |
|
37 | { | |
|
38 | return (int*) (APB_BASE_ADDRS | (dev->bar&0xFFF00000)>>12); | |
|
39 | } | |
|
40 | count-=1; | |
|
41 | } | |
|
42 | dev += 1; | |
|
43 | } | |
|
44 | return NULL; | |
|
45 | } | |
|
46 | ||
|
47 | ||
|
48 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo) | |
|
49 | { | |
|
50 | ||
|
51 | devinfo->productID = (dev->idReg>>12) & 0xFFF; | |
|
52 | devinfo->vendorID = (dev->idReg>>24) & 0xFF; | |
|
53 | devinfo->address = ((dev->bar>>12) & 0xFFF00)|APB_BASE_ADDRS; | |
|
54 | devinfo->irq = dev->idReg & 0x1F; | |
|
55 | devinfo->mask = (dev->bar>>4)&0xFFF; | |
|
56 | devinfo->version = (dev->idReg>>5)&0x1F; | |
|
57 | } | |
|
58 | ||
|
59 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo) | |
|
60 | { | |
|
61 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD + sizeof(struct apbPnPreg)); | |
|
62 | int id; | |
|
63 | id = (PID<<12) | (VID<<24); | |
|
64 | while(dev != (struct apbPnPreg*)(APB_TBL_HEAD|0xFFF)) | |
|
65 | { | |
|
66 | if((dev->idReg & 0xFFFFF000) == id) | |
|
67 | { | |
|
68 | if(count == 0) | |
|
69 | { | |
|
70 | devinfo->productID = PID; | |
|
71 | devinfo->vendorID = VID; | |
|
72 | devinfo->address = ((dev->bar>>12) & 0xFFF00)|APB_BASE_ADDRS; | |
|
73 | devinfo->irq = dev->idReg & 0x1F; | |
|
74 | devinfo->mask = (dev->bar>>4)&0xFFF; | |
|
75 | devinfo->version = (dev->idReg>>5)&0x1F; | |
|
76 | return; | |
|
77 | } | |
|
78 | count-=1; | |
|
79 | } | |
|
80 | dev += 1; | |
|
81 | } | |
|
82 | } | |
|
83 | ||
|
84 | ||
|
85 | ||
|
86 | void apbprintdeviceinfo(struct apbdevinfo devinfo) | |
|
87 | { | |
|
88 | printf("Vendor ID = 0x%x\n",devinfo.vendorID); | |
|
89 | printf("Product ID = 0x%x\n",devinfo.productID); | |
|
90 | printf("Device address = 0x%x\n",devinfo.address); | |
|
91 | printf("Device Irq = %d\n",devinfo.irq); | |
|
92 | printf("Device mask = 0x%x\n",devinfo.mask); | |
|
93 | printf("Device Version = %d\n",devinfo.version); | |
|
94 | } | |
|
95 | ||
|
96 | ||
|
97 | void apbprintdeviceslist() | |
|
98 | { | |
|
99 | struct apbdevinfo devinfo; | |
|
100 | struct apbPnPreg* dev = (struct apbPnPreg*)(APB_TBL_HEAD );//+ sizeof(struct apbPnPreg)); | |
|
101 | int i =0; | |
|
102 | int fisrtBAR; | |
|
103 | while((dev->idReg == 0) && (i<APB_MAX_DEVICES)) | |
|
104 | { | |
|
105 | dev += 1; | |
|
106 | i+=1; | |
|
107 | } | |
|
108 | fisrtBAR = dev->bar; | |
|
109 | for(i=i;i<APB_MAX_DEVICES;i++) | |
|
110 | { | |
|
111 | if((dev->idReg != 0 )) | |
|
112 | { | |
|
113 | apbgetdeviceinfofromdevptr(dev,&devinfo); | |
|
114 | printf("\n\n======= new device found========\n"); | |
|
115 | apbprintdeviceinfo(devinfo); | |
|
116 | } | |
|
117 | dev += 1; | |
|
118 | if(dev->bar == fisrtBAR) | |
|
119 | break; | |
|
120 | } | |
|
121 | } | |
|
122 |
@@ -0,0 +1,135 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the LPP VHDL IP LIBRARY | |
|
3 | -- Copyright (C) 2009 - 2010, Laboratory of Plasmas Physic - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 3 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@lpp.polytechnique.fr | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef LPP_APB_FUNCTIONS_H | |
|
23 | #define LPP_APB_FUNCTIONS_H | |
|
24 | ||
|
25 | #define APB_TBL_HEAD 0x800FF000 /**< Start address of APB devices list on AHB2APB bridge*/ | |
|
26 | #define APB_BASE_ADDRS 0x80000000 /**< Start address of APB bus*/ | |
|
27 | #define APB_MAX_DEVICES 256 /**< Maximun device count on APB bus*/ | |
|
28 | ||
|
29 | #include "apb_devices_list.h" | |
|
30 | ||
|
31 | ||
|
32 | /*! \file lpp_apb_functions.h | |
|
33 | \brief General purpose APB functions. | |
|
34 | ||
|
35 | This library is written to work with AHB2APB VHDL module from Gaisler's GRLIB. It help you to find your device | |
|
36 | on the APB bus by providing scan functions, it extract information such as device Version, IRQ value, Address mask. | |
|
37 | You can use it to print the APB devices list on your SOC. | |
|
38 | ||
|
39 | \author Alexis Jeandet alexis.jeandet@lpp.polytechnique.fr | |
|
40 | \todo implemente a descriptor structure for any APB device | |
|
41 | ||
|
42 | */ | |
|
43 | ||
|
44 | ||
|
45 | /*! \struct apbPnPreg | |
|
46 | \brief Structure representing a device descriptor register on Grlib's AHB2APB brige with plug and play feature | |
|
47 | */ | |
|
48 | struct apbPnPreg | |
|
49 | { | |
|
50 | int idReg; /**< \brief id register composed of Vendor ID [31:24], Device ID [23:12], CT [11:10], Version [9:5], IRQ [4:0] */ | |
|
51 | int bar; /**< \brief Bank Address Register composed of Device's ADDRESS [31:20], MASK [14:4], TYPE [3:0] */ | |
|
52 | }; | |
|
53 | ||
|
54 | ||
|
55 | /*! \struct apbdevinfo | |
|
56 | \brief Structure holding an APB device informations | |
|
57 | ||
|
58 | This information are extracted from the descriptor registers on Grlib's AHB2APB brige with plug and play feature | |
|
59 | */ | |
|
60 | struct apbdevinfo | |
|
61 | { | |
|
62 | int vendorID; /**< \brief Stores the Vendor ID of the current device */ | |
|
63 | int productID; /**< \brief Stores the Product ID of the current device */ | |
|
64 | int version; /**< \brief Stores the Version of the current device */ | |
|
65 | int irq; /**< \brief Stores the interrupt Number of the current device */ | |
|
66 | int address; /**< \brief Stores the base address of the current device */ | |
|
67 | int mask; /**< \brief Stores the address mask of the current device, it gives the address space of this device */ | |
|
68 | }; | |
|
69 | ||
|
70 | ||
|
71 | ||
|
72 | ||
|
73 | /*! \fn int* apbgetdevice(int PID,int VID,int count); | |
|
74 | \brief Find device with given VID/PID | |
|
75 | ||
|
76 | This Function scans APB devices table and returns counth device according to VID and PID | |
|
77 | ||
|
78 | \param PID The PID of the device you whant to get. | |
|
79 | \param VID The VID of the device you whant to get. | |
|
80 | \param count The number of the device you whant to get. For example if you have 3 UARTS on your SOC you whant | |
|
81 | to use UART1 so count = 2. | |
|
82 | ||
|
83 | \return The pointer to the device. | |
|
84 | */ | |
|
85 | int* apbgetdevice(int PID,int VID,int count); | |
|
86 | ||
|
87 | /*! \fn void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); | |
|
88 | \brief Record device informations with given VID/PID | |
|
89 | ||
|
90 | This Function scans APB devices table and returns counth device informations according VID and PID. | |
|
91 | ||
|
92 | \param PID The PID of the device you whant to get. | |
|
93 | \param VID The VID of the device you whant to get. | |
|
94 | \param count The number of the device you whant to get. For example if you have 3 UARTS on your SOC you whant | |
|
95 | to use UART1 so count = 2. | |
|
96 | \param devinfo The device information structure to be populated. | |
|
97 | \example scanAPB.c | |
|
98 | */ | |
|
99 | void apbgetdeviceinfofromid(int PID,int VID,int count,struct apbdevinfo* devinfo); | |
|
100 | ||
|
101 | ||
|
102 | /*! \fn void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); | |
|
103 | \brief Record device informations with given AHB2APB Plugn'Play register. | |
|
104 | ||
|
105 | This Function extract device informations from the given AHB2APB Plugn'Play register end write them in devinfo. | |
|
106 | ||
|
107 | \param dev AHB2APB Plugn'Play register corresponding to the device. | |
|
108 | \param devinfo The device information structure to be populated. | |
|
109 | */ | |
|
110 | void apbgetdeviceinfofromdevptr(const struct apbPnPreg* dev,struct apbdevinfo* devinfo); | |
|
111 | ||
|
112 | ||
|
113 | ||
|
114 | /*! \fn void apbprintdeviceinfo(struct apbdevinfo devinfo); | |
|
115 | \brief Print given device informations in stdout. | |
|
116 | ||
|
117 | \param devinfo The device information structure to be printed. | |
|
118 | */ | |
|
119 | void apbprintdeviceinfo(struct apbdevinfo devinfo); | |
|
120 | ||
|
121 | ||
|
122 | ||
|
123 | /*! \fn void apbprintdeviceslist(); | |
|
124 | \brief Print APB devices informations in stdout. | |
|
125 | ||
|
126 | This function list all devices on APB bus and print theirs informations. | |
|
127 | ||
|
128 | \example scanAPB.c | |
|
129 | */ | |
|
130 | void apbprintdeviceslist(); | |
|
131 | ||
|
132 | ||
|
133 | ||
|
134 | #endif // LPP_APB_FUNCTIONS_H | |
|
135 |
@@ -0,0 +1,16 | |||
|
1 | TEMPLATE = lib | |
|
2 | ARCH = sparc-elf-gcc | |
|
3 | TARGET = libapb | |
|
4 | TARGETINSTALLPATH = $(LIBUC_LIBS_DIR_APB) | |
|
5 | HEADERSINSTALLPATH = $(LIBUC_INC_DIR_APB) | |
|
6 | ||
|
7 | LIBS += | |
|
8 | ||
|
9 | SOURCES += apb.c | |
|
10 | ||
|
11 | ||
|
12 | HEADERS += apb.h \ | |
|
13 | apb_devices_list.h | |
|
14 | ||
|
15 | ||
|
16 |
@@ -0,0 +1,25 | |||
|
1 | ||
|
2 | ||
|
3 | /*=============================================================================== | |
|
4 | ||
|
5 | THIS FILE IS GENERATED BY A SCRIPT, DON'T TRY TO EDIT | |
|
6 | ||
|
7 | TAKE A LOOK AT VHD_LIB/APB_DEVICES FOLDER TO ADD A DEVICE ID OR VENDOR ID | |
|
8 | ||
|
9 | ===============================================================================*/ | |
|
10 | #define VENDOR_LPP 0x19 | |
|
11 | ||
|
12 | #define ROCKET_TM 0x1 | |
|
13 | #define otherCore 0x2 | |
|
14 | #define LPP_SIMPLE_DIODE 0x3 | |
|
15 | #define LPP_MULTI_DIODE 0x4 | |
|
16 | #define LPP_LCD_CTRLR 0x5 | |
|
17 | #define LPP_UART 0x6 | |
|
18 | #define LPP_CNA 0x7 | |
|
19 | #define LPP_APB_ADC 0x8 | |
|
20 | #define LPP_CHENILLARD 0x9 | |
|
21 | #define LPP_IIR_CEL_FILTER 0x10 | |
|
22 | #define LPP_FIFO_PID 0x11 | |
|
23 | #define LPP_FFT 0x12 | |
|
24 | #define LPP_MATRIX 0x13 | |
|
25 | #define LPP_BALISE 0x14 |
@@ -8,6 +8,7 all:subdir | |||
|
8 | 8 | make -C LandTiger |
|
9 | 9 | make -C LandTigerdualssp |
|
10 | 10 | make -C mbed |
|
11 | make -C LFR-142200 | |
|
11 | 12 | @echo Code compiled |
|
12 | 13 | |
|
13 | 14 | clean: |
@@ -15,5 +16,6 clean: | |||
|
15 | 16 | make clean -C LandTiger |
|
16 | 17 | make clean -C LandTigerdualssp |
|
17 | 18 | make clean -C mbed |
|
19 | make clean -C LFR-142200 | |
|
18 | 20 | @echo Code compiled |
|
19 | 21 |
@@ -2,4 +2,12 TEMPLATE = dir | |||
|
2 | 2 | SUBDIRS += generic \ |
|
3 | 3 | LandTiger \ |
|
4 | 4 | LandTigerdualssp \ |
|
5 | mbed | |
|
5 | mbed \ | |
|
6 | LFR-142200 | |
|
7 | ||
|
8 | ||
|
9 | ||
|
10 | ||
|
11 | ||
|
12 | ||
|
13 |
@@ -2,29 +2,8 | |||
|
2 | 2 | PROJECTDIR = `pwd` |
|
3 | 3 | LIBUC = /opt/libuc2 |
|
4 | 4 | |
|
5 | HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/generic | |
|
6 | HEADERS += bsp.h | |
|
7 | LIBSOURCES += bsp.c | |
|
8 | OBJDIR = obj | |
|
9 | BINDIR = bin | |
|
10 | OBJECTFILES = $(LIBSOURCES:.c=.o) | |
|
11 | OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES)) | |
|
12 | ARCH = lpc17XX-arm-noabi-gcc | |
|
13 | ARCHFOLDER = $(LIBUC)/rules/lpc17XX-arm-noabi-gcc | |
|
14 | TARGET=libbsp | |
|
15 | LIBUC_INCLUDES= | |
|
16 | LIBUC_LIBRARIES= | |
|
17 | TARGETINSTALLPATH=$(LIBUC_BSP_BIN_DIR)/generic | |
|
18 | HEADERSINSTALLPATH=$(LIBUC_BSP_INC_DIR)/generic | |
|
19 | BSP=generic | |
|
20 | include $(ARCHFOLDER)/rules.mk | |
|
21 | ||
|
22 | all:lib | |
|
23 | @echo Code compiled | |
|
5 | all: | |
|
6 | make -f lpc17XX.mk | |
|
24 | 7 | |
|
25 | 8 | clean: |
|
26 | rm -f $(OBJDIR)/*.o | |
|
27 | rm -f $(TARGETINSTALLPATH)/*.a | |
|
28 | rm -f $(HEADERSINSTALLPATH)/*.h | |
|
29 | rm -f $(DEVSOURCESND) | |
|
30 | rm -f *.d | |
|
9 | make clean -f lpc17XX.mk |
@@ -0,0 +1,1 | |||
|
1 | extern int bsp_init(); |
@@ -1,12 +1,14 | |||
|
1 | 1 | TEMPLATE = lib |
|
2 | ARCH = lpc17XX-arm-noabi-gcc | |
|
3 | TARGET = libbsp | |
|
4 | TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/generic | |
|
5 | HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/generic | |
|
6 | 2 | |
|
7 | LIBS += | |
|
8 | ||
|
9 | SOURCES += bsp.c | |
|
3 | lpc17XX.ARCH = lpc17XX-arm-noabi-gcc | |
|
4 | lpc17XX.TARGET = libbsp | |
|
5 | lpc17XX.TARGETINSTALLPATH = $(LIBUC_BSP_BIN_DIR)/generic | |
|
6 | lpc17XX.HEADERSINSTALLPATH = $(LIBUC_BSP_INC_DIR)/generic | |
|
7 | lpc17XX.LIBS += | |
|
8 | lpc17XX.SOURCES += bsp.c | |
|
9 | lpc17XX.HEADERS += bsp.h | |
|
10 | 10 | |
|
11 | 11 | |
|
12 | HEADERS += bsp.h | |
|
12 | ||
|
13 | ||
|
14 |
@@ -8,6 +8,7 all:subdir | |||
|
8 | 8 | make -C SDCARD |
|
9 | 9 | make -C SDCARD2 |
|
10 | 10 | make -C MP3Player |
|
11 | make -C LFR | |
|
11 | 12 | @echo Code compiled |
|
12 | 13 | |
|
13 | 14 | clean: |
@@ -15,5 +16,6 clean: | |||
|
15 | 16 | make clean -C SDCARD |
|
16 | 17 | make clean -C SDCARD2 |
|
17 | 18 | make clean -C MP3Player |
|
19 | make clean -C LFR | |
|
18 | 20 | @echo Code compiled |
|
19 | 21 |
@@ -2,4 +2,11 TEMPLATE = dir | |||
|
2 | 2 | SUBDIRS += lpc17XX \ |
|
3 | 3 | SDCARD \ |
|
4 | 4 | SDCARD2 \ |
|
5 | MP3Player | |
|
5 | MP3Player \ | |
|
6 | LFR | |
|
7 | ||
|
8 | ||
|
9 | ||
|
10 | ||
|
11 | ||
|
12 |
@@ -30,16 +30,26 | |||
|
30 | 30 | #define ledspos2 LED1_ON;LED2_OFF;LED3_ON;LED4_OFF;LED5_ON;LED6_OFF;LED7_ON;LED8_OFF |
|
31 | 31 | #define tableSize 256 |
|
32 | 32 | |
|
33 | #define data0Size 3 | |
|
34 | volatile int16_t data0[data0Size] __attribute__ ((section (".testData"))) = {0x1234,0x4567,0xFF00}; | |
|
35 | const int* const test1[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; | |
|
33 | 36 | |
|
34 | 37 | void eepromTest(); |
|
35 | 38 | |
|
36 | 39 | int main (void) |
|
37 | 40 | { |
|
41 | int i=0; | |
|
42 | volatile int16_t* testptr = 0x2007C000 + (16*1024) - 6; | |
|
38 | 43 | bsp_init(); |
|
39 | 44 | uartsetbaudrate(UART0,38400); |
|
40 | 45 | eepromTest(); |
|
41 | 46 | libucprintf("CPU Freq =%dMHz\n\r",currentCpuFreq/1000000); |
|
42 | 47 | libucprintf("IIC Freq =%dKHz\n\r",i2cgetdatarate(IIC0)/1000); |
|
48 | libucprintf("data0 = %x",data0); | |
|
49 | for(i=0;i<data0Size;i++) | |
|
50 | libucprintf("data0[%d] = %x",i,0xFFFF&data0[i]); | |
|
51 | for(i=0;i<20;i++) | |
|
52 | libucprintf("test1[%d] = %x",i,test1[i]); | |
|
43 | 53 | while(1) |
|
44 | 54 | { |
|
45 | 55 | ledspos1; |
@@ -7,6 +7,7 all:subdir | |||
|
7 | 7 | make -C common/UHANDLE |
|
8 | 8 | make -C lpc21XX |
|
9 | 9 | make -C lpc17XX |
|
10 | make -C LEON3 | |
|
10 | 11 | make -C common |
|
11 | 12 | make -C apps |
|
12 | 13 | @echo Code compiled |
@@ -15,6 +16,7 clean: | |||
|
15 | 16 | make clean -C common/UHANDLE |
|
16 | 17 | make clean -C lpc21XX |
|
17 | 18 | make clean -C lpc17XX |
|
19 | make clean -C LEON3 | |
|
18 | 20 | make clean -C common |
|
19 | 21 | make clean -C apps |
|
20 | 22 | @echo Code compiled |
@@ -2,103 +2,124 | |||
|
2 | 2 | # LIBRARY DEFINITIONS |
|
3 | 3 | #--------------------------------------------------------------------------------- |
|
4 | 4 | LIBUC_LIBS = |
|
5 | LIBUC_LIBS_CORE = -static -lcore | |
|
6 |
LIBUC_LIBS_ |
|
|
7 | LIBUC_LIBS_UART = -static -luart | |
|
8 | LIBUC_LIBS_SPI = -static -lspi | |
|
9 | LIBUC_LIBS_SSP = -static -lssp | |
|
5 | ||
|
6 | LIBUC_LIBS_CORE = -static -lcore | |
|
7 | LIBUC_LIBS_DIR_CORE = $(LIBUC_LIBS_DIR)/CORE | |
|
8 | LIBUC_LIBS_DIR_CORE_CMD = -L $(LIBUC_LIBS_DIR_CORE) | |
|
9 | LIBUC_INC_DIR_CORE = $(LIBUC_INC_DIR)/CORE | |
|
10 | LIBUC_INC_DIR_CORE_CMD = -I $(LIBUC_INC_DIR_CORE) | |
|
11 | ||
|
12 | LIBUC_LIBS_APB = -static -lapb | |
|
13 | LIBUC_LIBS_DIR_APB = $(LIBUC_LIBS_DIR)/APB | |
|
14 | LIBUC_LIBS_DIR_APB_CMD = -L $(LIBUC_LIBS_DIR_APB) | |
|
15 | LIBUC_INC_DIR_APB = $(LIBUC_INC_DIR)/APB | |
|
16 | LIBUC_INC_DIR_APB_CMD = -I $(LIBUC_INC_DIR_APB) | |
|
17 | ||
|
18 | LIBUC_LIBS_UCSTRINGS = -static -lucstrings | |
|
19 | LIBUC_LIBS_DIR_UCSTRINGS = $(LIBUC_LIBS_DIR)/STRINGS/$(ARCH) | |
|
20 | LIBUC_LIBS_DIR_UCSTRINGS_CMD = -L $(LIBUC_LIBS_DIR_UCSTRINGS) | |
|
21 | LIBUC_INC_DIR_UCSTRINGS = $(LIBUC_INC_DIR)/STRINGS/$(ARCH) | |
|
22 | LIBUC_INC_DIR_UCSTRINGS_CMD = -I $(LIBUC_INC_DIR_UCSTRINGS) | |
|
23 | ||
|
24 | LIBUC_LIBS_UART = -static -luart | |
|
25 | LIBUC_LIBS_DIR_UART = $(LIBUC_LIBS_DIR)/UART | |
|
26 | LIBUC_LIBS_DIR_UART_CMD = -L $(LIBUC_LIBS_DIR_UART) | |
|
27 | LIBUC_INC_DIR_UART = $(LIBUC_INC_DIR)/UART | |
|
28 | LIBUC_INC_DIR_UART_CMD = -I $(LIBUC_INC_DIR_UART) | |
|
29 | ||
|
30 | LIBUC_LIBS_SPI = -static -lspi | |
|
31 | LIBUC_LIBS_DIR_SPI = $(LIBUC_LIBS_DIR)/SPI | |
|
32 | LIBUC_LIBS_DIR_SPI_CMD = -L $(LIBUC_LIBS_DIR_SPI) | |
|
33 | LIBUC_INC_DIR_SPI = $(LIBUC_INC_DIR)/SPI | |
|
34 | LIBUC_INC_DIR_SPI_CMD = -I $(LIBUC_INC_DIR_SPI) | |
|
35 | ||
|
36 | LIBUC_LIBS_SSP = -static -lssp | |
|
37 | LIBUC_LIBS_DIR_SSP = $(LIBUC_LIBS_DIR)/SSP | |
|
38 | LIBUC_LIBS_DIR_SSP_CMD = -L $(LIBUC_LIBS_DIR_SSP) | |
|
39 | LIBUC_INC_DIR_SSP = $(LIBUC_INC_DIR)/SSP | |
|
40 | LIBUC_INC_DIR_SSP_CMD = -I $(LIBUC_INC_DIR_SSP) | |
|
41 | ||
|
10 | 42 | LIBUC_LIBS_IIC = -static -liic |
|
43 | LIBUC_LIBS_DIR_IIC = $(LIBUC_LIBS_DIR)/IIC | |
|
44 | LIBUC_LIBS_DIR_IIC_CMD = -L $(LIBUC_LIBS_DIR_IIC) | |
|
45 | LIBUC_INC_DIR_IIC = $(LIBUC_INC_DIR)/IIC | |
|
46 | LIBUC_INC_DIR_IIC_CMD = -I $(LIBUC_INC_DIR_IIC) | |
|
47 | ||
|
11 | 48 | LIBUC_LIBS_ADC = -static -ladc |
|
12 | LIBUC_LIBS_24LC0X = -static -l24lc0X | |
|
13 | LIBUC_LIBS_SDCARD = -static -lsdcard | |
|
14 | LIBUC_LIBS_BLKDEVICE = -static -lblkdevice | |
|
15 | LIBUC_LIBS_FAT32 = -static -lfat32 | |
|
16 | LIBUC_LIBS_VS10XX = -static -lvs10XX | |
|
17 | LIBUC_LIBS_UHANDLE = -static -luhandle | |
|
18 | LIBUC_LIBS_HEXVIEWER = -static -lhexviewer | |
|
19 | LIBUC_LIBS_MBR = -static -lmbr | |
|
20 | LIBUC_LIBS_UCDIRENT = -static -lucdirent | |
|
21 | LIBUC_LIBS_FS = -static -lfs | |
|
22 | LIBUC_LIBS_ALLFS = $(LIBUC_LIBS_UCDIRENT) $(LIBUC_LIBS_FS) $(LIBUC_LIBS_MBR) $(LIBUC_LIBS_FAT32) $(LIBUC_LIBS_SDCARD) $(LIBUC_LIBS_BLKDEVICE) | |
|
23 | LIBUC_LIBS_FSEXPLORER = -static -lfsexplorer | |
|
49 | LIBUC_LIBS_DIR_ADC = $(LIBUC_LIBS_DIR)/ADC | |
|
50 | LIBUC_LIBS_DIR_ADC_CMD = -L $(LIBUC_LIBS_DIR_ADC) | |
|
51 | LIBUC_INC_DIR_ADC = $(LIBUC_INC_DIR)/ADC | |
|
52 | LIBUC_INC_DIR_ADC_CMD = -I $(LIBUC_INC_DIR_ADC) | |
|
24 | 53 | |
|
25 | LIBUC_LIBS_DIR_CORE = $(LIBUC_LIBS_DIR)/CORE | |
|
26 | LIBUC_LIBS_DIR_UCSTRINGS = $(LIBUC_LIBS_DIR)/STRINGS/$(ARCH) | |
|
27 | LIBUC_LIBS_DIR_UART = $(LIBUC_LIBS_DIR)/UART | |
|
28 | LIBUC_LIBS_DIR_SPI = $(LIBUC_LIBS_DIR)/SPI | |
|
29 | LIBUC_LIBS_DIR_SSP = $(LIBUC_LIBS_DIR)/SSP | |
|
30 | LIBUC_LIBS_DIR_IIC = $(LIBUC_LIBS_DIR)/IIC | |
|
31 | LIBUC_LIBS_DIR_ADC = $(LIBUC_LIBS_DIR)/ADC | |
|
54 | LIBUC_LIBS_24LC0X = -static -l24lc0X | |
|
32 | 55 | LIBUC_LIBS_DIR_24LC0X = $(LIBUC_LIBS_DIR)/24LCXX/24LC0X |
|
33 |
LIBUC_LIBS_DIR_ |
|
|
34 |
LIBUC_ |
|
|
35 |
LIBUC_ |
|
|
36 | LIBUC_LIBS_DIR_FAT32 = $(LIBUC_LIBS_DIR)/FAT32 | |
|
37 | LIBUC_LIBS_DIR_UHANDLE = $(LIBUC_LIBS_DIR)/UHANDLE | |
|
38 | LIBUC_LIBS_DIR_HEXVIEWER = $(LIBUC_LIBS_DIR)/HEXVIEWER | |
|
39 | LIBUC_LIBS_DIR_MBR = $(LIBUC_LIBS_DIR)/MBR | |
|
40 | LIBUC_LIBS_DIR_UCDIRENT = $(LIBUC_LIBS_DIR)/UCDIRENT | |
|
41 | LIBUC_LIBS_DIR_FS = $(LIBUC_LIBS_DIR)/FS | |
|
42 | LIBUC_LIBS_DIR_FSEXPLORER = $(LIBUC_LIBS_DIR)/FSEXPLORER | |
|
56 | LIBUC_LIBS_DIR_24LC0X_CMD = -L $(LIBUC_LIBS_DIR_24LC0X) | |
|
57 | LIBUC_INC_DIR_24LC0X = $(LIBUC_INC_DIR)/24LCXX/24LC0X | |
|
58 | LIBUC_INC_DIR_24LC0X_CMD = -I $(LIBUC_INC_DIR_24LC0X) | |
|
43 | 59 | |
|
44 | LIBUC_LIBS_DIR_CORE_CMD = -L $(LIBUC_LIBS_DIR_CORE) | |
|
45 |
LIBUC_LIBS_DIR_ |
|
|
46 |
LIBUC_LIBS_DIR_ |
|
|
47 |
LIBUC_ |
|
|
48 |
LIBUC_ |
|
|
49 | LIBUC_LIBS_DIR_IIC_CMD = -L $(LIBUC_LIBS_DIR_IIC) | |
|
50 | LIBUC_LIBS_DIR_ADC_CMD = -L $(LIBUC_LIBS_DIR_ADC) | |
|
51 |
LIBUC_LIBS_DIR_ |
|
|
52 |
LIBUC_LIBS_DIR_ |
|
|
53 |
LIBUC_ |
|
|
54 |
LIBUC_ |
|
|
55 | LIBUC_LIBS_DIR_FAT32_CMD = -L $(LIBUC_LIBS_DIR_FAT32) | |
|
56 | LIBUC_LIBS_DIR_UHANDLE_CMD = -L $(LIBUC_LIBS_DIR_UHANDLE) | |
|
57 |
LIBUC_LIBS_DIR_ |
|
|
58 |
LIBUC_LIBS_DIR_ |
|
|
59 | LIBUC_LIBS_DIR_UCDIRENT_CMD = -L $(LIBUC_LIBS_DIR_UCDIRENT) | |
|
60 |
LIBUC_ |
|
|
61 | LIBUC_LIBS_DIR_ALLFS_CMD = $(LIBUC_LIBS_DIR_UCDIRENT_CMD) $(LIBUC_LIBS_DIR_FS_CMD) $(LIBUC_LIBS_DIR_MBR_CMD) $(LIBUC_LIBS_DIR_FAT32_CMD) $(LIBUC_LIBS_DIR_SDCARD_CMD) $(LIBUC_LIBS_DIR_BLKDEVICE_CMD) | |
|
62 | LIBUC_LIBS_DIR_FSEXPLORER_CMD = -L $(LIBUC_LIBS_DIR_FSEXPLORER) | |
|
60 | LIBUC_LIBS_SDCARD = -static -lsdcard | |
|
61 | LIBUC_LIBS_DIR_SDCARD = $(LIBUC_LIBS_DIR)/SDCARD | |
|
62 | LIBUC_LIBS_DIR_SDCARD_CMD = -L $(LIBUC_LIBS_DIR_SDCARD) | |
|
63 | LIBUC_INC_DIR_SDCARD = $(LIBUC_INC_DIR)/SDCARD | |
|
64 | LIBUC_INC_DIR_SDCARD_CMD = -I $(LIBUC_INC_DIR_SDCARD) | |
|
65 | ||
|
66 | LIBUC_LIBS_VS10XX = -static -lvs10XX | |
|
67 | LIBUC_LIBS_DIR_VS10XX = $(LIBUC_LIBS_DIR)/VS10XX | |
|
68 | LIBUC_LIBS_DIR_VS10XX_CMD = -L $(LIBUC_LIBS_DIR_VS10XX) | |
|
69 | LIBUC_INC_DIR_VS10XX = $(LIBUC_INC_DIR)/VS10XX | |
|
70 | LIBUC_INC_DIR_VS10XX_CMD = -I $(LIBUC_INC_DIR_VS10XX) | |
|
71 | ||
|
72 | LIBUC_LIBS_BLKDEVICE = -static -lblkdevice | |
|
73 | LIBUC_LIBS_DIR_BLKDEVICE = $(LIBUC_LIBS_DIR)/BLKDEVICE | |
|
74 | LIBUC_LIBS_DIR_BLKDEVICE_CMD = -L $(LIBUC_LIBS_DIR_BLKDEVICE) | |
|
75 | LIBUC_INC_DIR_BLKDEVICE = $(LIBUC_INC_DIR)/BLKDEVICE | |
|
76 | LIBUC_INC_DIR_BLKDEVICE_CMD = -I $(LIBUC_INC_DIR_BLKDEVICE) | |
|
77 | ||
|
78 | LIBUC_LIBS_FAT32 = -static -lfat32 | |
|
79 | LIBUC_LIBS_DIR_FAT32 = $(LIBUC_LIBS_DIR)/FAT32 | |
|
80 | LIBUC_LIBS_DIR_FAT32_CMD = -L $(LIBUC_LIBS_DIR_FAT32) | |
|
81 | LIBUC_INC_DIR_FAT32 = $(LIBUC_INC_DIR)/FAT32 | |
|
82 | LIBUC_INC_DIR_FAT32_CMD = -I $(LIBUC_INC_DIR_FAT32) | |
|
83 | ||
|
84 | LIBUC_LIBS_UHANDLE = -static -luhandle | |
|
85 | LIBUC_LIBS_DIR_UHANDLE = $(LIBUC_LIBS_DIR)/UHANDLE | |
|
86 | LIBUC_LIBS_DIR_UHANDLE_CMD = -L $(LIBUC_LIBS_DIR_UHANDLE) | |
|
87 | LIBUC_INC_DIR_UHANDLE = $(LIBUC_INC_DIR)/UHANDLE | |
|
88 | LIBUC_INC_DIR_UHANDLE_CMD = -I $(LIBUC_INC_DIR_UHANDLE) | |
|
63 | 89 | |
|
64 | LIBUC_INC_DIR_CORE = $(LIBUC_INC_DIR)/CORE | |
|
65 | LIBUC_INC_DIR_UCSTRINGS = $(LIBUC_INC_DIR)/STRINGS/$(ARCH) | |
|
66 | LIBUC_INC_DIR_UART = $(LIBUC_INC_DIR)/UART | |
|
67 |
LIBUC_INC_DIR_ |
|
|
68 |
LIBUC_INC_DIR_ |
|
|
69 | LIBUC_INC_DIR_IIC = $(LIBUC_INC_DIR)/IIC | |
|
70 | LIBUC_INC_DIR_ADC = $(LIBUC_INC_DIR)/ADC | |
|
71 |
LIBUC_ |
|
|
72 |
LIBUC_ |
|
|
73 |
LIBUC_INC_DIR_ |
|
|
74 |
LIBUC_INC_DIR_ |
|
|
75 | LIBUC_INC_DIR_FAT32 = $(LIBUC_INC_DIR)/FAT32 | |
|
76 | LIBUC_INC_DIR_UHANDLE = $(LIBUC_INC_DIR)/UHANDLE | |
|
77 | LIBUC_INC_DIR_HEXVIEWER = $(LIBUC_INC_DIR)/HEXVIEWER | |
|
78 | LIBUC_INC_DIR_MBR = $(LIBUC_INC_DIR)/MBR | |
|
79 | LIBUC_INC_DIR_UCDIRENT = $(LIBUC_INC_DIR)/UCDIRENT | |
|
80 | LIBUC_INC_DIR_FS = $(LIBUC_INC_DIR)/FS | |
|
81 | LIBUC_INC_DIR_FSEXPLORER = $(LIBUC_INC_DIR)/FSEXPLORER | |
|
90 | LIBUC_LIBS_HEXVIEWER = -static -lhexviewer | |
|
91 | LIBUC_LIBS_DIR_HEXVIEWER = $(LIBUC_LIBS_DIR)/HEXVIEWER | |
|
92 | LIBUC_LIBS_DIR_HEXVIEWER_CMD = -L $(LIBUC_LIBS_DIR_HEXVIEWER) | |
|
93 | LIBUC_INC_DIR_HEXVIEWER = $(LIBUC_INC_DIR)/HEXVIEWER | |
|
94 | LIBUC_INC_DIR_HEXVIEWER_CMD = -I $(LIBUC_INC_DIR_HEXVIEWER) | |
|
95 | ||
|
96 | LIBUC_LIBS_MBR = -static -lmbr | |
|
97 | LIBUC_LIBS_DIR_MBR = $(LIBUC_LIBS_DIR)/MBR | |
|
98 | LIBUC_LIBS_DIR_MBR_CMD = -L $(LIBUC_LIBS_DIR_MBR) | |
|
99 | LIBUC_INC_DIR_MBR = $(LIBUC_INC_DIR)/MBR | |
|
100 | LIBUC_INC_DIR_MBR_CMD = -I $(LIBUC_INC_DIR_MBR) | |
|
82 | 101 | |
|
83 | LIBUC_INC_DIR_CORE_CMD = -I $(LIBUC_INC_DIR_CORE) | |
|
84 |
LIBUC_ |
|
|
85 |
LIBUC_ |
|
|
86 |
LIBUC_INC_DIR_ |
|
|
87 |
LIBUC_INC_DIR_ |
|
|
88 | LIBUC_INC_DIR_IIC_CMD = -I $(LIBUC_INC_DIR_IIC) | |
|
89 | LIBUC_INC_DIR_ADC_CMD = -I $(LIBUC_INC_DIR_ADC) | |
|
90 |
LIBUC_ |
|
|
91 |
LIBUC_ |
|
|
92 |
LIBUC_INC_DIR_ |
|
|
93 |
LIBUC_INC_DIR_ |
|
|
94 | LIBUC_INC_DIR_FAT32_CMD = -I $(LIBUC_INC_DIR_FAT32) | |
|
95 | LIBUC_INC_DIR_UHANDLE_CMD = -I $(LIBUC_INC_DIR_UHANDLE) | |
|
96 |
LIBUC_ |
|
|
97 |
LIBUC_ |
|
|
98 |
LIBUC_INC_DIR_ |
|
|
99 |
LIBUC_INC_DIR_FS_CMD |
|
|
100 | LIBUC_INC_DIR_ALLFS_CMD = $(LIBUC_INC_DIR_UCDIRENT_CMD) $(LIBUC_INC_DIR_FS_CMD) $(LIBUC_INC_DIR_MBR_CMD) $(LIBUC_INC_DIR_FAT32_CMD) $(LIBUC_INC_DIR_SDCARD_CMD) $(LIBUC_INC_DIR_BLKDEVICE_CMD) | |
|
101 | LIBUC_INC_DIR_FSEXPLORER_CMD = -I $(LIBUC_INC_DIR_FSEXPLORER) | |
|
102 | LIBUC_LIBS_UCDIRENT = -static -lucdirent | |
|
103 | LIBUC_LIBS_DIR_UCDIRENT = $(LIBUC_LIBS_DIR)/UCDIRENT | |
|
104 | LIBUC_LIBS_DIR_UCDIRENT_CMD = -L $(LIBUC_LIBS_DIR_UCDIRENT) | |
|
105 | LIBUC_INC_DIR_UCDIRENT = $(LIBUC_INC_DIR)/UCDIRENT | |
|
106 | LIBUC_INC_DIR_UCDIRENT_CMD = -I $(LIBUC_INC_DIR_UCDIRENT) | |
|
107 | ||
|
108 | LIBUC_LIBS_FS = -static -lfs | |
|
109 | LIBUC_LIBS_DIR_FS = $(LIBUC_LIBS_DIR)/FS | |
|
110 | LIBUC_LIBS_DIR_FS_CMD = -L $(LIBUC_LIBS_DIR_FS) | |
|
111 | LIBUC_INC_DIR_FS = $(LIBUC_INC_DIR)/FS | |
|
112 | LIBUC_INC_DIR_FS_CMD = -I $(LIBUC_INC_DIR_FS) | |
|
113 | ||
|
114 | LIBUC_LIBS_FSEXPLORER = -static -lfsexplorer | |
|
115 | LIBUC_LIBS_DIR_FSEXPLORER = $(LIBUC_LIBS_DIR)/FSEXPLORER | |
|
116 | LIBUC_LIBS_DIR_FSEXPLORER_CMD = -L $(LIBUC_LIBS_DIR_FSEXPLORER) | |
|
117 | LIBUC_INC_DIR_FSEXPLORER = $(LIBUC_INC_DIR)/FSEXPLORER | |
|
118 | LIBUC_INC_DIR_FSEXPLORER_CMD = -I $(LIBUC_INC_DIR_FSEXPLORER) | |
|
119 | ||
|
120 | LIBUC_LIBS_DIR_ALLFS_CMD = $(LIBUC_LIBS_DIR_UCDIRENT_CMD) $(LIBUC_LIBS_DIR_FS_CMD) $(LIBUC_LIBS_DIR_MBR_CMD) $(LIBUC_LIBS_DIR_FAT32_CMD) $(LIBUC_LIBS_DIR_SDCARD_CMD) $(LIBUC_LIBS_DIR_BLKDEVICE_CMD) | |
|
121 | LIBUC_INC_DIR_ALLFS_CMD = $(LIBUC_INC_DIR_UCDIRENT_CMD) $(LIBUC_INC_DIR_FS_CMD) $(LIBUC_INC_DIR_MBR_CMD) $(LIBUC_INC_DIR_FAT32_CMD) $(LIBUC_INC_DIR_SDCARD_CMD) $(LIBUC_INC_DIR_BLKDEVICE_CMD) | |
|
122 | LIBUC_LIBS_ALLFS = $(LIBUC_LIBS_UCDIRENT) $(LIBUC_LIBS_FS) $(LIBUC_LIBS_MBR) $(LIBUC_LIBS_FAT32) $(LIBUC_LIBS_SDCARD) $(LIBUC_LIBS_BLKDEVICE) | |
|
102 | 123 | |
|
103 | 124 | |
|
104 | 125 | |
@@ -110,3 +131,21 LIBUC_INC_DIR_FSEXPLORER_CMD = -I $(LI | |||
|
110 | 131 | |
|
111 | 132 | |
|
112 | 133 | |
|
134 | ||
|
135 | ||
|
136 | ||
|
137 | ||
|
138 | ||
|
139 | ||
|
140 | ||
|
141 | ||
|
142 | ||
|
143 | ||
|
144 | ||
|
145 | ||
|
146 | ||
|
147 | ||
|
148 | ||
|
149 | ||
|
150 | ||
|
151 |
@@ -45,6 +45,15 SECTIONS | |||
|
45 | 45 | *(.rodata .rodata*) |
|
46 | 46 | *(.gnu.linkonce.r.*) |
|
47 | 47 | } >IROM |
|
48 | .testData : | |
|
49 | { | |
|
50 | _sitestdata = LOADADDR (.testData); | |
|
51 | . = ALIGN(4); | |
|
52 | _stestdata = .; | |
|
53 | *(.testData .testData.*) | |
|
54 | . = ALIGN(4); | |
|
55 | _etestdata = . ; | |
|
56 | } >IRAM1 AT >IROM | |
|
48 | 57 | |
|
49 | 58 | /******************************************/ |
|
50 | 59 | /* .ctors .dtors are used for c++ constructors/destructors */ |
@@ -85,6 +85,10 extern unsigned long _etext; | |||
|
85 | 85 | extern unsigned long _sidata; /* start address for the initialization values of the .data section. defined in linker script */ |
|
86 | 86 | extern unsigned long _sdata; /* start address for the .data section. defined in linker script */ |
|
87 | 87 | extern unsigned long _edata; /* end address for the .data section. defined in linker script */ |
|
88 | extern unsigned long _sitestdata; /* start address for the initialization values of the .data section. defined in linker script */ | |
|
89 | extern unsigned long _stestdata; /* start address for the .data section. defined in linker script */ | |
|
90 | extern unsigned long _etestdata; | |
|
91 | ||
|
88 | 92 | |
|
89 | 93 | extern unsigned long _sifastcode; /* start address for the initialization values of the .fastcode section. defined in linker script */ |
|
90 | 94 | extern unsigned long _sfastcode; /* start address for the .fastcode section. defined in linker script */ |
@@ -199,6 +203,12 void Reset_Handler(void) | |||
|
199 | 203 | *(pulDest++) = *(pulSrc++); |
|
200 | 204 | } |
|
201 | 205 | } |
|
206 | if (&_sitestdata != &_stestdata) { // only if needed | |
|
207 | pulSrc = &_sitestdata; | |
|
208 | for(pulDest = &_stestdata; pulDest < &_etestdata; ) { | |
|
209 | *(pulDest++) = *(pulSrc++); | |
|
210 | } | |
|
211 | } | |
|
202 | 212 | |
|
203 | 213 | // Copy the .fastcode code from ROM to SRAM |
|
204 | 214 |
@@ -1,92 +1,156 | |||
|
1 | #/*------------------------------------------------------------------------------ | |
|
2 | #-- This file is a part of the libuc, microcontroler library | |
|
3 | #-- Copyright (C) 2011, Alexis Jeandet | |
|
4 | #-- | |
|
5 | #-- This program is free software; you can redistribute it and/or modify | |
|
6 | #-- it under the terms of the GNU General Public License as published by | |
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |
|
8 | #-- (at your option) any later version. | |
|
9 | #-- | |
|
10 | #-- This program is distributed in the hope that it will be useful, | |
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | #-- GNU General Public License for more details. | |
|
14 | #-- | |
|
15 | #-- You should have received a copy of the GNU General Public License | |
|
16 | #-- along with this program; if not, write to the Free Software | |
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | #------------------------------------------------------------------------------- | |
|
19 | #-- Author : Alexis Jeandet | |
|
20 | #-- Mail : alexis.jeandet@gmail.com | |
|
21 | #-------------------------------------------------------------------------------*/ | |
|
22 | ||
|
23 | #--------------------------------------------------------------------------------- | |
|
24 | # GCC EXECUTABLES | |
|
25 | #--------------------------------------------------------------------------------- | |
|
26 | LIBUC_PREFIX = sparc-elf- | |
|
27 | LIBUC_CC = $(LIBUC_PREFIX)gcc | |
|
28 | LIBUC_CXX = $(LIBUC_PREFIX)g++ | |
|
29 | LIBUC_AR = $(LIBUC_PREFIX)ar | |
|
30 |
LIBUC_ |
|
|
31 |
LIBUC_ |
|
|
32 |
LIBUC_ |
|
|
33 | ||
|
34 | ||
|
35 | ||
|
36 | #--------------------------------------------------------------------------------- | |
|
37 | # GCC FLAGS | |
|
38 | #--------------------------------------------------------------------------------- | |
|
39 | LIBUC_FMCU = | |
|
40 | LIBUC_CFLAGS = $(LIBUC_FMCU) | |
|
41 | LIBUC_CFLAGS_WARN_ON = -Wall | |
|
42 | LIBUC_CFLAGS_WARN_OFF = -w | |
|
43 | LIBUC_CFLAGS_RELEASE = -O2 | |
|
44 | LIBUC_CFLAGS_DEBUG = -g | |
|
45 | LIBUC_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g | |
|
46 | LIBUC_CFLAGS_STATIC_LIB += -fPIC | |
|
47 | LIBUC_CFLAGS_SOFT_FPU = -msoft-float | |
|
48 | LIBUC_CFLAGS_HARD_FPU = | |
|
49 | ||
|
50 | LIBUC_CXXFLAGS = $(LIBUC_FMCU) | |
|
51 |
LIBUC_C |
|
|
52 |
LIBUC_C |
|
|
53 |
LIBUC_C |
|
|
54 |
LIBUC_C |
|
|
55 | LIBUC_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g | |
|
56 | LIBUC_CXXFLAGS_STATIC_LIB = -fPIC | |
|
57 |
LIBUC_C |
|
|
58 | LIBUC_CXXFLAGS_HARD_FPU = | |
|
59 | ||
|
60 | LIBUC_LIBS = | |
|
61 | LIBUC_LIBS_UART = -luart | |
|
62 | LIBUC_LIBS_SPI = -lspi | |
|
63 | LIBUC_LIBS_IIC = -liic | |
|
64 | LIBUC_LIBS_ADC = -ladc | |
|
65 | LIBUC_LIBS_APB = -ladc | |
|
66 | ||
|
67 | LIBUC_LIBS_DIR = $(LIBUC)/lib/bin/LEON3 | |
|
68 | LIBUC_LIBS_DIR_UART = -L $(LIBUC_LIBS_DIR)/UART | |
|
69 | LIBUC_LIBS_DIR_SPI = -L $(LIBUC_LIBS_DIR)/SPI | |
|
70 | LIBUC_LIBS_DIR_IIC = -L $(LIBUC_LIBS_DIR)/IIC | |
|
71 | LIBUC_LIBS_DIR_ADC = -L $(LIBUC_LIBS_DIR)/ADC | |
|
72 | LIBUC_LIBS_DIR_APB = -L $(LIBUC_LIBS_DIR)/APB | |
|
73 | ||
|
74 | ||
|
75 |
LIBUC_ |
|
|
76 |
LIBUC_INC_DIR |
|
|
77 | LIBUC_INC_DIR_SPI = -L $(LIBUC_INC_DIR)/SPI | |
|
78 | LIBUC_INC_DIR_IIC = -L $(LIBUC_INC_DIR)/IIC | |
|
79 | LIBUC_INC_DIR_ADC = -L $(LIBUC_INC_DIR)/ADC | |
|
80 | LIBUC_INC_DIR_APB = -L $(LIBUC_INC_DIR)/APB | |
|
81 | ||
|
82 | ||
|
83 | ||
|
84 | ||
|
85 | ||
|
86 | ||
|
87 | ||
|
88 | ||
|
89 | ||
|
90 | ||
|
91 | ||
|
92 | ||
|
1 | #/*------------------------------------------------------------------------------ | |
|
2 | #-- This file is a part of the libuc, microcontroler library | |
|
3 | #-- Copyright (C) 2011, Alexis Jeandet | |
|
4 | #-- | |
|
5 | #-- This program is free software; you can redistribute it and/or modify | |
|
6 | #-- it under the terms of the GNU General Public License as published by | |
|
7 | #-- the Free Software Foundation; either version 3 of the License, or | |
|
8 | #-- (at your option) any later version. | |
|
9 | #-- | |
|
10 | #-- This program is distributed in the hope that it will be useful, | |
|
11 | #-- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | #-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | #-- GNU General Public License for more details. | |
|
14 | #-- | |
|
15 | #-- You should have received a copy of the GNU General Public License | |
|
16 | #-- along with this program; if not, write to the Free Software | |
|
17 | #-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | #------------------------------------------------------------------------------- | |
|
19 | #-- Author : Alexis Jeandet | |
|
20 | #-- Mail : alexis.jeandet@gmail.com | |
|
21 | #-------------------------------------------------------------------------------*/ | |
|
22 | ||
|
23 | #--------------------------------------------------------------------------------- | |
|
24 | # GCC EXECUTABLES | |
|
25 | #--------------------------------------------------------------------------------- | |
|
26 | LIBUC_PREFIX = sparc-elf- | |
|
27 | LIBUC_CC = $(LIBUC_PREFIX)gcc | |
|
28 | LIBUC_CXX = $(LIBUC_PREFIX)g++ | |
|
29 | LIBUC_AR = $(LIBUC_PREFIX)ar | |
|
30 | LIBUC_AS = $(LIBUC_PREFIX)as | |
|
31 | LIBUC_LD = $(LIBUC_PREFIX)ld | |
|
32 | LIBUC_SIZE = $(LIBUC_PREFIX)size | |
|
33 | LIBUC_STRIP = $(LIBUC_PREFIX)strip -s | |
|
34 | LIBUC_READELF = $(LIBUC_PREFIX)readelf | |
|
35 | LIBUC_OBJCOPY=$(LIBUC_PREFIX)objcopy | |
|
36 | LIBUC_OBJDUMP=$(LIBUC_PREFIX)objdump | |
|
37 | ||
|
38 | ||
|
39 | ||
|
40 | #--------------------------------------------------------------------------------- | |
|
41 | # GCC FLAGS | |
|
42 | #--------------------------------------------------------------------------------- | |
|
43 | LIBUC_FMCU = | |
|
44 | LIBUC_CFLAGS = $(LIBUC_FMCU) | |
|
45 | LIBUC_CFLAGS = --std=gnu99 -fgnu89-inline | |
|
46 | LIBUC_CFLAGS += | |
|
47 | LIBUC_LDFLAGS = | |
|
48 | LIBUC_ODFLAGS = -x --syms | |
|
49 | LIBUC_CPFLAGS = | |
|
50 | LIBUC_CFLAGS_WARN_ON = -Wall | |
|
51 | LIBUC_CFLAGS_WARN_OFF = -w | |
|
52 | LIBUC_CFLAGS_RELEASE = -O2 | |
|
53 | LIBUC_CFLAGS_DEBUG = -g | |
|
54 | LIBUC_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g | |
|
55 | LIBUC_CFLAGS_STATIC_LIB = -fPIC | |
|
56 | LIBUC_CFLAGS_SOFT_FPU = -msoft-float | |
|
57 | LIBUC_CFLAGS_HARD_FPU = | |
|
58 | ||
|
59 | LIBUC_CXXFLAGS = $(LIBUC_FMCU) | |
|
60 | LIBUC_CXXFLAGS += -g -gdwarf-2 | |
|
61 | LIBUC_CXXFLAGS += -Wextra -Wundef -Wcast-align -msoft-float | |
|
62 | LIBUC_CXXFLAGS_WARN_ON = -Wall | |
|
63 | LIBUC_CXXFLAGS_WARN_OFF = -w | |
|
64 | LIBUC_CXXFLAGS_RELEASE = -O2 | |
|
65 | LIBUC_CXXFLAGS_DEBUG = -g | |
|
66 | LIBUC_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g | |
|
67 | LIBUC_CXXFLAGS_STATIC_LIB = -fPIC | |
|
68 | LIBUC_CXXFLAGS_SOFT_FPU = -msoft-float | |
|
69 | LIBUC_CXXFLAGS_HARD_FPU = | |
|
70 | ||
|
71 | #--------------------------------------------------------------------------------- | |
|
72 | # LIBRARY DEFINITIONS | |
|
73 | #--------------------------------------------------------------------------------- | |
|
74 | ||
|
75 | LIBUC_LIBS_DIR = $(LIBUC)/lib/bin/LEON3 | |
|
76 | LIBUC_INC_DIR = $(LIBUC)/lib/includes/LEON3 | |
|
77 | include $(LIBUC)/rules/common/libsrules.mk | |
|
78 | ||
|
79 | #--------------------------------------------------------------------------------- | |
|
80 | # BOARD SUPORT PACKAGES | |
|
81 | #--------------------------------------------------------------------------------- | |
|
82 | LIBUC_BSP_DIR=$(LIBUC)/bsp | |
|
83 | LIBUC_BSP_BIN_DIR= $(LIBUC_BSP_DIR)/bin | |
|
84 | LIBUC_BSP_INC_DIR= $(LIBUC_BSP_DIR)/includes | |
|
85 | LIBUC_BSP = -L $(LIBUC_BSP_BIN_DIR)/$(BSP) -static -lbsp | |
|
86 | LIBUC_BSP_INC = -I $(LIBUC_BSP_INC_DIR)/$(BSP) | |
|
87 | #--------------------------------------------------------------------------------- | |
|
88 | # DEVICE SPECIAL FILES | |
|
89 | #--------------------------------------------------------------------------------- | |
|
90 | ||
|
91 | ||
|
92 | ||
|
93 | #--------------------------------------------------------------------------------- | |
|
94 | # RULES | |
|
95 | #--------------------------------------------------------------------------------- | |
|
96 | ||
|
97 | all: | |
|
98 | @echo "sparc-elf-gcc rules" | |
|
99 | ||
|
100 | ||
|
101 | bin: $(BINDIR)/$(TARGET).bin $(BINDIR)/$(TARGET).hex | |
|
102 | @echo "compile bin" | |
|
103 | ||
|
104 | ||
|
105 | ||
|
106 | lib: $(TARGETINSTALLPATH)/$(TARGET).a | |
|
107 | @echo "compile lib" | |
|
108 | ||
|
109 | %.a: $(OBJECTFILES) | |
|
110 | mkdir -p $(TARGETINSTALLPATH) | |
|
111 | mkdir -p $(HEADERSINSTALLPATH) | |
|
112 | $(LIBUC_AR) rcs $@ $(OBJECTFILES) #$(LIBUC_AR) rcs $(TARGETINSTALLPATH)/$@ $(OBJECTFILES) | |
|
113 | cp -f $(HEADERS) $(HEADERSINSTALLPATH)/ | |
|
114 | ||
|
115 | ||
|
116 | ||
|
117 | $(OBJECTFILES) : $(OBJDIR)/%.o : %.c $(INC_LIBS_DEPS) $(HEADERS) | |
|
118 | mkdir -p $(OBJDIR) | |
|
119 | $(LIBUC_CC) -O3 -I $(LIBUC_INCLUDES) $(LIBUC_BSP_INC) -c $(LIBUC_CFLAGS) $< -o $@ | |
|
120 | ||
|
121 | ||
|
122 | %.elf: $(OBJECTFILES) | |
|
123 | mkdir -p $(BINDIR) | |
|
124 | $(LIBUC_CC) $(LIBUC_LDFLAGS) $^ -o $@ $(LIBUC_BSP) $(LIBUC_LIBRARIES) | |
|
125 | ||
|
126 | ||
|
127 | %.bin: %.elf $(BIN_LIBS_DEPS) | |
|
128 | $(LIBUC_OBJCOPY) $(LIBUC_CPFLAGS) -O binary $< $*.bin | |
|
129 | ||
|
130 | ||
|
131 | %.hex: %.elf | |
|
132 | $(LIBUC_OBJCOPY) $(LIBUC_CPFLAGS) -O ihex $< $*.hex | |
|
133 | ||
|
134 | ||
|
135 | clean: | |
|
136 | rm -f *.o *.d *.bin *.hex *.dump *.map *.a | |
|
137 | rm -f $(OBJECTFILES) | |
|
138 | rm -f $(BINDIR)/*.bin | |
|
139 | rm -f $(BINDIR)/*.hex | |
|
140 | rm -f $(BINDIR)/*.dump | |
|
141 | rm -f $(BINDIR)/*.map | |
|
142 | rm -f $(BINDIR)/*.a | |
|
143 | rm -f $(DEVSOURCESND) | |
|
144 | ||
|
145 | distclean: | |
|
146 | rm -f $(TARGETINSTALLPATH)/*.bin | |
|
147 | rm -f $(TARGETINSTALLPATH)/*.a | |
|
148 | ||
|
149 | ||
|
150 | ||
|
151 | ||
|
152 | ||
|
153 | ||
|
154 | ||
|
155 | ||
|
156 |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed | |
This diff has been collapsed as it changes many lines, (530 lines changed) Show them Hide them |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed, binary diff hidden |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now