mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Remove all references and use of code sourcery GCC in docs, build and export scripts
							parent
							
								
									66c0620619
								
							
						
					
					
						commit
						018cdb928a
					
				| 
						 | 
				
			
			@ -104,7 +104,6 @@ Compiler               | Mbed SDK Abbreviation | Example Version
 | 
			
		|||
-----------------------|-----------------------|-----------
 | 
			
		||||
Keil ARM Compiler      | ARM, uARM             | ARM C/C++ Compiler, 5.03 [Build 117]
 | 
			
		||||
GCC ARM                | GCC_ARM               | gcc version 4.8.3 20131129 (release)
 | 
			
		||||
GCC CodeSourcery       | GCC_CS                | gcc version 4.8.1 (Sourcery CodeBench Lite 2013.11-24)
 | 
			
		||||
GCC CodeRed            | GCC_CR                | gcc version 4.6.2 20121016 (release)
 | 
			
		||||
IAR Embedded Workbench | IAR                   | IAR ANSI C/C++ Compiler V6.70.1.5641/W32 for ARM
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -174,9 +173,6 @@ MY_ARM_CLIB = join(ARM_PATH, "lib", "microlib")
 | 
			
		|||
# GCC ARM
 | 
			
		||||
GCC_ARM_PATH = "C:/Work/toolchains/gcc_arm_4_8/4_8_2013q4/bin"
 | 
			
		||||
 
 | 
			
		||||
# GCC CodeSourcery
 | 
			
		||||
GCC_CS_PATH = "C:/Work/toolchains/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
 | 
			
		||||
 
 | 
			
		||||
# GCC CodeRed
 | 
			
		||||
GCC_CR_PATH = "C:/Work/toolchains/LPCXpresso_6.1.4_194/lpcxpresso/tools/bin"
 | 
			
		||||
 
 | 
			
		||||
| 
						 | 
				
			
			@ -194,17 +190,15 @@ MUTs = {
 | 
			
		|||
Note: You need to provide the absolute path to your compiler(s) installed on your host machine. Replace corresponding variable values with paths to compilers installed in your system:
 | 
			
		||||
* ```ARM_PATH``` for armcc compiler.
 | 
			
		||||
* ```GCC_ARM_PATH``` for GCC ARM compiler.
 | 
			
		||||
* ```GCC_CS_PATH``` for GCC CodeSourcery compiler.
 | 
			
		||||
* ```GCC_CR_PATH``` for GCC CodeRed compiler.
 | 
			
		||||
* ```IAR_PATH``` for IAR compiler. 
 | 
			
		||||
 | 
			
		||||
If for example you do not use ```IAR``` compiler you do not have to modify anything. Workspace tools will use ```IAR_PATH`` variable only if you explicit ask for it from command line. So do not worry and replace only paths for your installed compilers.
 | 
			
		||||
 | 
			
		||||
Note: Because this is a Python script and ```ARM_PATH```, ```GCC_ARM_PATH```, ```GCC_CS_PATH```, ```GCC_CR_PATH```, ```IAR_PATH``` are Python string variables please use double backlash or single slash as path's directories delimiter to avoid incorrect path format. For example:
 | 
			
		||||
Note: Because this is a Python script and ```ARM_PATH```, ```GCC_ARM_PATH```, ```GCC_CR_PATH```, ```IAR_PATH``` are Python string variables please use double backlash or single slash as path's directories delimiter to avoid incorrect path format. For example:
 | 
			
		||||
```python
 | 
			
		||||
ARM_PATH = "C:/Work/toolchains/ARMCompiler_5.03_117_Windows"
 | 
			
		||||
GCC_ARM_PATH = "C:/Work/toolchains/gcc_arm_4_8/4_8_2013q4/bin"
 | 
			
		||||
GCC_CS_PATH = "C:/Work/toolchains/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
 | 
			
		||||
GCC_CR_PATH = "C:/Work/toolchains/LPCXpresso_6.1.4_194/lpcxpresso/tools/bin"
 | 
			
		||||
IAR_PATH = "C:/Work/toolchains/iar_6_5/arm"
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			@ -263,7 +257,7 @@ Volume serial number is 006C006F 6243:3EA9
 | 
			
		|||
 | 
			
		||||
Note: Why ```LCP1768```? For this example we are using ```LPC1768``` because this platform supports all compilers so you are sure you only need to specify proper compiler.
 | 
			
		||||
 | 
			
		||||
If you are not using ARM Compiler replace ```ARM``` with your compiler nickname: ```GCC_ARM```, ```GCC_CS```, ```GCC_CR``` or ```IAR```. For example if you are using IAR type command:
 | 
			
		||||
If you are not using ARM Compiler replace ```ARM``` with your compiler nickname: ```GCC_ARM```, ```GCC_CR``` or ```IAR```. For example if you are using IAR type command:
 | 
			
		||||
```
 | 
			
		||||
$ python build.py -m LPC1768 -t IAR
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			@ -335,17 +329,17 @@ Build successes:
 | 
			
		|||
* If you’re unsure which platforms and toolchains are supported please use switch ```-S``` to print simple matrix of platform to compiler dependencies.
 | 
			
		||||
```
 | 
			
		||||
$ python build.py -S
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| Platform                |    ARM    |    uARM   |  GCC_ARM  |    IAR    |   GCC_CR  |   GCC_CS  | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| APPNEARME_MICRONFCBOARD | Supported |  Default  | Supported |     -     |     -     |     -     |     -      |       -       |
 | 
			
		||||
| ARCH_BLE                |  Default  |     -     | Supported | Supported |     -     |     -     |     -      |       -       |
 | 
			
		||||
| ARCH_GPRS               | Supported |  Default  | Supported | Supported | Supported |     -     |     -      |       -       |
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| Platform                |    ARM    |    uARM   |  GCC_ARM  |    IAR    |   GCC_CR  | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| APPNEARME_MICRONFCBOARD | Supported |  Default  | Supported |     -     |     -     |     -      |       -       |
 | 
			
		||||
| ARCH_BLE                |  Default  |     -     | Supported | Supported |     -     |     -      |       -       |
 | 
			
		||||
| ARCH_GPRS               | Supported |  Default  | Supported | Supported | Supported |     -      |       -       |
 | 
			
		||||
...
 | 
			
		||||
| UBLOX_C029              | Supported |  Default  | Supported | Supported |     -     |     -     |     -      |       -       |
 | 
			
		||||
| WALLBOT_BLE             |  Default  |     -     | Supported | Supported |     -     |     -     |     -      |       -       |
 | 
			
		||||
| XADOW_M0                | Supported |  Default  | Supported | Supported | Supported |     -     |     -      |       -       |
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| UBLOX_C029              | Supported |  Default  | Supported | Supported |     -     |     -      |       -       |
 | 
			
		||||
| WALLBOT_BLE             |  Default  |     -     | Supported | Supported |     -     |     -      |       -       |
 | 
			
		||||
| XADOW_M0                | Supported |  Default  | Supported | Supported | Supported |     -      |       -       |
 | 
			
		||||
+-------------------------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
*Default - default on-line compiler
 | 
			
		||||
*Supported - supported off-line compiler
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -356,19 +350,19 @@ Total permutations: 297
 | 
			
		|||
Above list can be overwhelming so please do not hesitate to use switch ```-f``` to filter ```Platform``` column.
 | 
			
		||||
```
 | 
			
		||||
$ python build.py -S -f ^K
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+--------+------------+---------------+
 | 
			
		||||
| Platform     |    ARM    |   uARM  |  GCC_ARM  |    IAR    | GCC_CR | GCC_CS | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+--------+------------+---------------+
 | 
			
		||||
| K20D50M      |  Default  |    -    | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| K22F         |  Default  |    -    | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| K64F         |  Default  |    -    | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| KL05Z        | Supported | Default | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| KL25Z        |  Default  |    -    | Supported | Supported |   -    |   -    | Supported  |   Supported   |
 | 
			
		||||
| KL43Z        |  Default  |    -    | Supported |     -     |   -    |   -    |     -      |       -       |
 | 
			
		||||
| KL46Z        |  Default  |    -    | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| NRF51_DK     |  Default  |    -    | Supported | Supported |   -    |   -    |     -      |       -       |
 | 
			
		||||
| NRF51_DK_OTA |  Default  |    -    | Supported |     -     |   -    |   -    |     -      |       -       |
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+--------+------------+---------------+
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+------------+---------------+
 | 
			
		||||
| Platform     |    ARM    |   uARM  |  GCC_ARM  |    IAR    | GCC_CR | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+------------+---------------+
 | 
			
		||||
| K20D50M      |  Default  |    -    | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| K22F         |  Default  |    -    | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| K64F         |  Default  |    -    | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| KL05Z        | Supported | Default | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| KL25Z        |  Default  |    -    | Supported | Supported |   -    | Supported  |   Supported   |
 | 
			
		||||
| KL43Z        |  Default  |    -    | Supported |     -     |   -    |     -      |       -       |
 | 
			
		||||
| KL46Z        |  Default  |    -    | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| NRF51_DK     |  Default  |    -    | Supported | Supported |   -    |     -      |       -       |
 | 
			
		||||
| NRF51_DK_OTA |  Default  |    -    | Supported |     -     |   -    |     -      |       -       |
 | 
			
		||||
+--------------+-----------+---------+-----------+-----------+--------+------------+---------------+
 | 
			
		||||
*Default - default on-line compiler
 | 
			
		||||
*Supported - supported off-line compiler
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -378,11 +372,11 @@ Total permutations: 28
 | 
			
		|||
or just give platform name:
 | 
			
		||||
```
 | 
			
		||||
$ python build.py -S -f LPC1768
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| Platform |   ARM   |    uARM   |  GCC_ARM  |    IAR    |   GCC_CR  |   GCC_CS  | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| LPC1768  | Default | Supported | Supported | Supported | Supported | Supported |     -      |       -       |
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| Platform |   ARM   |    uARM   |  GCC_ARM  |    IAR    |   GCC_CR  | GCC_CW_EWL | GCC_CW_NEWLIB |
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
| LPC1768  | Default | Supported | Supported | Supported | Supported |     -      |       -       |
 | 
			
		||||
+----------+---------+-----------+-----------+-----------+-----------+------------+---------------+
 | 
			
		||||
*Default - default on-line compiler
 | 
			
		||||
*Supported - supported off-line compiler
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -148,7 +148,7 @@ Below we can see how sample ```test_spec.json``` file content could look like. (
 | 
			
		|||
```json
 | 
			
		||||
{
 | 
			
		||||
    "targets": {
 | 
			
		||||
        "LPC1768" : ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"],
 | 
			
		||||
        "LPC1768" : ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"],
 | 
			
		||||
        "KL25Z" : ["ARM", "GCC_ARM"],
 | 
			
		||||
        "NUCLEO_F103RB" : ["ARM", "uARM"]
 | 
			
		||||
     }
 | 
			
		||||
| 
						 | 
				
			
			@ -156,7 +156,7 @@ Below we can see how sample ```test_spec.json``` file content could look like. (
 | 
			
		|||
```
 | 
			
		||||
Above example configuration will force tests for LPC1768, KL25Z, NUCLEO_F103RB platforms and:
 | 
			
		||||
 | 
			
		||||
* Compilers: ```ARM```, ```uARM```, ```GCC_ARM```, ```GCC_CS```, ```GCC_CR``` and ```IAR``` will be used to compile tests for NXP's ```LPC1768```.
 | 
			
		||||
* Compilers: ```ARM```, ```uARM```, ```GCC_ARM```, ```GCC_CR``` and ```IAR``` will be used to compile tests for NXP's ```LPC1768```.
 | 
			
		||||
* Compilers: ```ARM``` and ```GCC_ARM``` will be used for Freescales' ```KL25Z``` platform.
 | 
			
		||||
* Compilers: ```ARM``` and ```uARM``` will be used for STMicro's ```NUCLEO_F103RB``` platform.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ def build_library(src_paths, build_path, target, toolchain_name,
 | 
			
		|||
    """ src_path: the path of the source directory
 | 
			
		||||
    build_path: the path of the build directory
 | 
			
		||||
    target: ['LPC1768', 'LPC11U24', 'LPC2368']
 | 
			
		||||
    toolchain: ['ARM', 'uARM', 'GCC_ARM', 'GCC_CS', 'GCC_CR']
 | 
			
		||||
    toolchain: ['ARM', 'uARM', 'GCC_ARM', 'GCC_CR']
 | 
			
		||||
    library_paths: List of paths to additional libraries
 | 
			
		||||
    clean: Rebuild everything if True
 | 
			
		||||
    notify: Notify function for logs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,9 +31,9 @@ from workspace_tools.test_exporters import ReportExporter, ResultExporterType
 | 
			
		|||
 | 
			
		||||
OFFICIAL_MBED_LIBRARY_BUILD = (
 | 
			
		||||
    ('LPC11U24',     ('ARM', 'uARM', 'GCC_ARM', 'IAR')),
 | 
			
		||||
    ('LPC1768',      ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')),
 | 
			
		||||
    ('UBLOX_C027',   ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')),
 | 
			
		||||
    ('ARCH_PRO',     ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')),
 | 
			
		||||
    ('LPC1768',      ('ARM', 'GCC_ARM', 'GCC_CR', 'IAR')),
 | 
			
		||||
    ('UBLOX_C027',   ('ARM', 'GCC_ARM', 'GCC_CR', 'IAR')),
 | 
			
		||||
    ('ARCH_PRO',     ('ARM', 'GCC_ARM', 'GCC_CR', 'IAR')),
 | 
			
		||||
    ('LPC2368',      ('ARM', 'GCC_ARM')),
 | 
			
		||||
    ('LPC2460',      ('GCC_ARM',)),
 | 
			
		||||
    ('LPC812',       ('uARM','IAR')),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ c['slavePortnum'] = 9989
 | 
			
		|||
####### OFFICIAL_MBED_LIBRARY_BUILD
 | 
			
		||||
 | 
			
		||||
OFFICIAL_MBED_LIBRARY_BUILD = (
 | 
			
		||||
    ('LPC1768', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')),
 | 
			
		||||
    ('LPC1768', ('ARM', 'GCC_ARM', 'GCC_CR', 'IAR')),
 | 
			
		||||
    ('KL05Z', ('ARM', 'uARM', 'GCC_ARM')),
 | 
			
		||||
    ('KL25Z', ('ARM', 'GCC_ARM')),
 | 
			
		||||
    ('LPC11U24', ('ARM', 'uARM')),
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = (
 | 
			
		|||
    ('NUCLEO_L152RE', ('ARM', 'uARM')),
 | 
			
		||||
    ('NUCLEO_F401RE', ('ARM', 'uARM')),
 | 
			
		||||
    ('NUCLEO_F030R8', ('ARM', 'uARM')),
 | 
			
		||||
    ('UBLOX_C027', ('ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR')),
 | 
			
		||||
    ('UBLOX_C027', ('ARM', 'GCC_ARM', 'GCC_CR', 'IAR')),
 | 
			
		||||
    # ('NRF51822', ('ARM',)),
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,60 +0,0 @@
 | 
			
		|||
"""
 | 
			
		||||
mbed SDK
 | 
			
		||||
Copyright (c) 2011-2013 ARM Limited
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
"""
 | 
			
		||||
from exporters import Exporter
 | 
			
		||||
from os.path import splitext, basename
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CodeSourcery(Exporter):
 | 
			
		||||
    NAME = 'CodeSourcery'
 | 
			
		||||
    TOOLCHAIN = 'GCC_CS'
 | 
			
		||||
 | 
			
		||||
    TARGETS = [
 | 
			
		||||
        'LPC1768',
 | 
			
		||||
        'UBLOX_C027',
 | 
			
		||||
        'ARCH_PRO',
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    DOT_IN_RELATIVE_PATH = True
 | 
			
		||||
 | 
			
		||||
    def generate(self):
 | 
			
		||||
        # "make" wants Unix paths
 | 
			
		||||
        self.resources.win_to_unix()
 | 
			
		||||
 | 
			
		||||
        to_be_compiled = []
 | 
			
		||||
        for r_type in ['s_sources', 'c_sources', 'cpp_sources']:
 | 
			
		||||
            r = getattr(self.resources, r_type)
 | 
			
		||||
            if r:
 | 
			
		||||
                for source in r:
 | 
			
		||||
                    base, ext = splitext(source)
 | 
			
		||||
                    to_be_compiled.append(base + '.o')
 | 
			
		||||
 | 
			
		||||
        libraries = []
 | 
			
		||||
        for lib in self.resources.libraries:
 | 
			
		||||
            l, _ = splitext(basename(lib))
 | 
			
		||||
            libraries.append(l[3:])
 | 
			
		||||
 | 
			
		||||
        ctx = {
 | 
			
		||||
            'name': self.program_name,
 | 
			
		||||
            'to_be_compiled': to_be_compiled,
 | 
			
		||||
            'object_files': self.resources.objects,
 | 
			
		||||
            'include_paths': self.resources.inc_dirs,
 | 
			
		||||
            'library_paths': self.resources.lib_dirs,
 | 
			
		||||
            'linker_script': self.resources.linker_script,
 | 
			
		||||
            'libraries': libraries,
 | 
			
		||||
            'symbols': self.get_symbols()
 | 
			
		||||
        }
 | 
			
		||||
        self.gen_file('codesourcery_%s.tmpl' % self.target.lower(), ctx, 'Makefile')
 | 
			
		||||
| 
						 | 
				
			
			@ -1,56 +0,0 @@
 | 
			
		|||
# This file was automagically generated by mbed.org. For more information, 
 | 
			
		||||
# see http://mbed.org/handbook/Exporting-to-CodeSourcery
 | 
			
		||||
 | 
			
		||||
GCC_BIN = 
 | 
			
		||||
PROJECT = {{name}}
 | 
			
		||||
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
 | 
			
		||||
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
 | 
			
		||||
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
 | 
			
		||||
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
 | 
			
		||||
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
 | 
			
		||||
LINKER_SCRIPT = {{linker_script}}
 | 
			
		||||
 | 
			
		||||
############################################################################### 
 | 
			
		||||
CC = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
CPP = $(GCC_BIN)arm-none-eabi-g++
 | 
			
		||||
CC_FLAGS = -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -fno-rtti -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -fomit-frame-pointer
 | 
			
		||||
ONLY_C_FLAGS = -std=gnu99
 | 
			
		||||
ONLY_CPP_FLAGS = -std=gnu++98
 | 
			
		||||
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AS = $(GCC_BIN)arm-none-eabi-as
 | 
			
		||||
 | 
			
		||||
LD = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
LD_FLAGS = -mcpu=cortex-m3 -mthumb -Wl,--gc-sections
 | 
			
		||||
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc
 | 
			
		||||
 | 
			
		||||
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
 | 
			
		||||
 | 
			
		||||
ifeq ($(DEBUG), 1)
 | 
			
		||||
  CC_FLAGS += -DDEBUG -O0
 | 
			
		||||
else
 | 
			
		||||
  CC_FLAGS += -DNDEBUG -Os
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
all: $(PROJECT).bin
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f $(PROJECT).bin $(PROJECT).elf $(OBJECTS)
 | 
			
		||||
 | 
			
		||||
.s.o:
 | 
			
		||||
	$(AS)  $(CC_FLAGS) $(CC_SYMBOLS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC)  $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_C_FLAGS)   $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_CPP_FLAGS) $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
 | 
			
		||||
	$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
 | 
			
		||||
 | 
			
		||||
$(PROJECT).bin: $(PROJECT).elf
 | 
			
		||||
	$(OBJCOPY) -O binary $< $@
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,56 +0,0 @@
 | 
			
		|||
# This file was automagically generated by mbed.org. For more information, 
 | 
			
		||||
# see http://mbed.org/handbook/Exporting-to-CodeSourcery
 | 
			
		||||
 | 
			
		||||
GCC_BIN = 
 | 
			
		||||
PROJECT = {{name}}
 | 
			
		||||
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
 | 
			
		||||
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
 | 
			
		||||
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
 | 
			
		||||
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
 | 
			
		||||
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
 | 
			
		||||
LINKER_SCRIPT = {{linker_script}}
 | 
			
		||||
 | 
			
		||||
############################################################################### 
 | 
			
		||||
CC = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
CPP = $(GCC_BIN)arm-none-eabi-g++
 | 
			
		||||
CC_FLAGS = -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -fno-rtti -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -fomit-frame-pointer
 | 
			
		||||
ONLY_C_FLAGS = -std=gnu99
 | 
			
		||||
ONLY_CPP_FLAGS = -std=gnu++98
 | 
			
		||||
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AS = $(GCC_BIN)arm-none-eabi-as
 | 
			
		||||
 | 
			
		||||
LD = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
LD_FLAGS = -mcpu=cortex-m3 -mthumb -Wl,--gc-sections
 | 
			
		||||
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc
 | 
			
		||||
 | 
			
		||||
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
 | 
			
		||||
 | 
			
		||||
ifeq ($(DEBUG), 1)
 | 
			
		||||
  CC_FLAGS += -DDEBUG -O0
 | 
			
		||||
else
 | 
			
		||||
  CC_FLAGS += -DNDEBUG -Os
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
all: $(PROJECT).bin
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f $(PROJECT).bin $(PROJECT).elf $(OBJECTS)
 | 
			
		||||
 | 
			
		||||
.s.o:
 | 
			
		||||
	$(AS)  $(CC_FLAGS) $(CC_SYMBOLS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC)  $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_C_FLAGS)   $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_CPP_FLAGS) $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
 | 
			
		||||
	$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
 | 
			
		||||
 | 
			
		||||
$(PROJECT).bin: $(PROJECT).elf
 | 
			
		||||
	$(OBJCOPY) -O binary $< $@
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,56 +0,0 @@
 | 
			
		|||
# This file was automagically generated by mbed.org. For more information, 
 | 
			
		||||
# see http://mbed.org/handbook/Exporting-to-CodeSourcery
 | 
			
		||||
 | 
			
		||||
GCC_BIN = 
 | 
			
		||||
PROJECT = {{name}}
 | 
			
		||||
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
 | 
			
		||||
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
 | 
			
		||||
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
 | 
			
		||||
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
 | 
			
		||||
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
 | 
			
		||||
LINKER_SCRIPT = {{linker_script}}
 | 
			
		||||
 | 
			
		||||
############################################################################### 
 | 
			
		||||
CC = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
CPP = $(GCC_BIN)arm-none-eabi-g++
 | 
			
		||||
CC_FLAGS = -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -fno-rtti -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections -fomit-frame-pointer
 | 
			
		||||
ONLY_C_FLAGS = -std=gnu99
 | 
			
		||||
ONLY_CPP_FLAGS = -std=gnu++98
 | 
			
		||||
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
AS = $(GCC_BIN)arm-none-eabi-as
 | 
			
		||||
 | 
			
		||||
LD = $(GCC_BIN)arm-none-eabi-gcc
 | 
			
		||||
LD_FLAGS = -mcpu=cortex-m3 -mthumb -Wl,--gc-sections
 | 
			
		||||
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc
 | 
			
		||||
 | 
			
		||||
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
 | 
			
		||||
 | 
			
		||||
ifeq ($(DEBUG), 1)
 | 
			
		||||
  CC_FLAGS += -DDEBUG -O0
 | 
			
		||||
else
 | 
			
		||||
  CC_FLAGS += -DNDEBUG -Os
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
all: $(PROJECT).bin
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f $(PROJECT).bin $(PROJECT).elf $(OBJECTS)
 | 
			
		||||
 | 
			
		||||
.s.o:
 | 
			
		||||
	$(AS)  $(CC_FLAGS) $(CC_SYMBOLS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC)  $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_C_FLAGS)   $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) $(ONLY_CPP_FLAGS) $(INCLUDE_PATHS) -o $@ $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
 | 
			
		||||
	$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
 | 
			
		||||
 | 
			
		||||
$(PROJECT).bin: $(PROJECT).elf
 | 
			
		||||
	$(OBJCOPY) -O binary $< $@
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -53,9 +53,6 @@ MY_ARM_CLIB = join(ARM_PATH, "lib", "microlib")
 | 
			
		|||
# GCC ARM
 | 
			
		||||
GCC_ARM_PATH = ""
 | 
			
		||||
 | 
			
		||||
# GCC CodeSourcery
 | 
			
		||||
GCC_CS_PATH = "C:/Program Files (x86)/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin"
 | 
			
		||||
 | 
			
		||||
# GCC CodeRed
 | 
			
		||||
GCC_CR_PATH = "C:/code_red/RedSuite_4.2.0_349/redsuite/Tools/bin"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ File format example: test_spec.json:
 | 
			
		|||
{
 | 
			
		||||
    "targets": {
 | 
			
		||||
        "KL46Z": ["ARM", "GCC_ARM"],
 | 
			
		||||
        "LPC1768": ["ARM", "GCC_ARM", "GCC_CR", "GCC_CS", "IAR"],
 | 
			
		||||
        "LPC1768": ["ARM", "GCC_ARM", "GCC_CR", "IAR"],
 | 
			
		||||
        "LPC11U24": ["uARM"],
 | 
			
		||||
        "NRF51822": ["ARM"]
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ def benchmarks():
 | 
			
		|||
    csv_data.writerow(['Toolchain', "Target", "Benchmark", "code", "data", "bss", "flash"])
 | 
			
		||||
 | 
			
		||||
    # Build
 | 
			
		||||
    for toolchain in ['ARM', 'uARM', 'GCC_CR', 'GCC_CS', 'GCC_ARM']:
 | 
			
		||||
    for toolchain in ['ARM', 'uARM', 'GCC_CR', 'GCC_ARM']:
 | 
			
		||||
        for mcu in ["LPC1768", "LPC11U24"]:
 | 
			
		||||
            # Build Libraries
 | 
			
		||||
            build_mbed_libs(mcu, toolchain)
 | 
			
		||||
| 
						 | 
				
			
			@ -118,4 +118,4 @@ def compare(t1, t2, target):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    compare("GCC_CR", "GCC_CS", "LPC1768")
 | 
			
		||||
    compare("GCC_CR", "LPC1768")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -275,7 +275,7 @@ class LPC1768(LPCTarget):
 | 
			
		|||
        LPCTarget.__init__(self)
 | 
			
		||||
        self.core = "Cortex-M3"
 | 
			
		||||
        self.extra_labels = ['NXP', 'LPC176X', 'MBED_LPC1768']
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
 | 
			
		||||
        self.detect_code = ["1010"]
 | 
			
		||||
        self.progen_target = 'mbed-lpc1768'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -284,7 +284,7 @@ class ARCH_PRO(LPCTarget):
 | 
			
		|||
        LPCTarget.__init__(self)
 | 
			
		||||
        self.core = "Cortex-M3"
 | 
			
		||||
        self.extra_labels = ['NXP', 'LPC176X']
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
 | 
			
		||||
        self.macros = ['TARGET_LPC1768']
 | 
			
		||||
        self.supported_form_factors = ["ARDUINO"]
 | 
			
		||||
        self.progen_target ='arch-pro'
 | 
			
		||||
| 
						 | 
				
			
			@ -294,7 +294,7 @@ class UBLOX_C027(LPCTarget):
 | 
			
		|||
        LPCTarget.__init__(self)
 | 
			
		||||
        self.core = "Cortex-M3"
 | 
			
		||||
        self.extra_labels = ['NXP', 'LPC176X']
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
 | 
			
		||||
        self.macros = ['TARGET_LPC1768']
 | 
			
		||||
        self.supported_form_factors = ["ARDUINO"]
 | 
			
		||||
        self.progen_target ='ublox-c027'
 | 
			
		||||
| 
						 | 
				
			
			@ -304,7 +304,7 @@ class XBED_LPC1768(LPCTarget):
 | 
			
		|||
        LPCTarget.__init__(self)
 | 
			
		||||
        self.core = "Cortex-M3"
 | 
			
		||||
        self.extra_labels = ['NXP', 'LPC176X', 'XBED_LPC1768']
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
 | 
			
		||||
        self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
 | 
			
		||||
        self.macros = ['TARGET_LPC1768']
 | 
			
		||||
        self.detect_code = ["1010"]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -153,11 +153,11 @@ class Resources:
 | 
			
		|||
# had the knowledge of a list of these directories to be ignored.
 | 
			
		||||
LEGACY_IGNORE_DIRS = set([
 | 
			
		||||
    'LPC11U24', 'LPC1768', 'LPC2368', 'LPC4088', 'LPC812', 'KL25Z',
 | 
			
		||||
    'ARM', 'GCC_ARM', 'GCC_CR', 'GCC_CS', 'IAR', 'uARM'
 | 
			
		||||
    'ARM', 'GCC_ARM', 'GCC_CR', 'IAR', 'uARM'
 | 
			
		||||
])
 | 
			
		||||
LEGACY_TOOLCHAIN_NAMES = {
 | 
			
		||||
    'ARM_STD':'ARM', 'ARM_MICRO': 'uARM',
 | 
			
		||||
    'GCC_ARM': 'GCC_ARM', 'GCC_CR': 'GCC_CR', 'GCC_CS': 'GCC_CS',
 | 
			
		||||
    'GCC_ARM': 'GCC_ARM', 'GCC_CR': 'GCC_CR',
 | 
			
		||||
    'IAR': 'IAR',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -740,14 +740,13 @@ class mbedToolchain:
 | 
			
		|||
        self.notify({'type': 'var', 'key': key, 'val': value})
 | 
			
		||||
 | 
			
		||||
from workspace_tools.settings import ARM_BIN
 | 
			
		||||
from workspace_tools.settings import GCC_ARM_PATH, GCC_CR_PATH, GCC_CS_PATH, CW_EWL_PATH, CW_GCC_PATH
 | 
			
		||||
from workspace_tools.settings import GCC_ARM_PATH, GCC_CR_PATH, CW_EWL_PATH, CW_GCC_PATH
 | 
			
		||||
from workspace_tools.settings import IAR_PATH
 | 
			
		||||
 | 
			
		||||
TOOLCHAIN_BIN_PATH = {
 | 
			
		||||
    'ARM': ARM_BIN,
 | 
			
		||||
    'uARM': ARM_BIN,
 | 
			
		||||
    'GCC_ARM': GCC_ARM_PATH,
 | 
			
		||||
    'GCC_CS': GCC_CS_PATH,
 | 
			
		||||
    'GCC_CR': GCC_CR_PATH,
 | 
			
		||||
    'GCC_CW_EWL': CW_EWL_PATH,
 | 
			
		||||
    'GCC_CW_NEWLIB': CW_GCC_PATH,
 | 
			
		||||
| 
						 | 
				
			
			@ -755,7 +754,7 @@ TOOLCHAIN_BIN_PATH = {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
from workspace_tools.toolchains.arm import ARM_STD, ARM_MICRO
 | 
			
		||||
from workspace_tools.toolchains.gcc import GCC_ARM, GCC_CS, GCC_CR
 | 
			
		||||
from workspace_tools.toolchains.gcc import GCC_ARM, GCC_CR
 | 
			
		||||
from workspace_tools.toolchains.gcc import GCC_CW_EWL, GCC_CW_NEWLIB
 | 
			
		||||
from workspace_tools.toolchains.iar import IAR
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -763,7 +762,6 @@ TOOLCHAIN_CLASSES = {
 | 
			
		|||
    'ARM': ARM_STD,
 | 
			
		||||
    'uARM': ARM_MICRO,
 | 
			
		||||
    'GCC_ARM': GCC_ARM,
 | 
			
		||||
    'GCC_CS': GCC_CS,
 | 
			
		||||
    'GCC_CR': GCC_CR,
 | 
			
		||||
    'GCC_CW_EWL': GCC_CW_EWL,
 | 
			
		||||
    'GCC_CW_NEWLIB': GCC_CW_NEWLIB,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ import re
 | 
			
		|||
from os.path import join, basename, splitext
 | 
			
		||||
 | 
			
		||||
from workspace_tools.toolchains import mbedToolchain
 | 
			
		||||
from workspace_tools.settings import GCC_ARM_PATH, GCC_CR_PATH, GCC_CS_PATH, CW_EWL_PATH, CW_GCC_PATH
 | 
			
		||||
from workspace_tools.settings import GCC_ARM_PATH, GCC_CR_PATH, CW_EWL_PATH, CW_GCC_PATH
 | 
			
		||||
from workspace_tools.settings import GOANNA_PATH
 | 
			
		||||
from workspace_tools.hooks import hook_tool
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -214,11 +214,6 @@ class GCC_CR(GCC):
 | 
			
		|||
        self.ld += ["-nostdlib"]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GCC_CS(GCC):
 | 
			
		||||
    def __init__(self, target, options=None, notify=None, macros=None, silent=False, extra_verbose=False):
 | 
			
		||||
        GCC.__init__(self, target, options, notify, macros, silent, GCC_CS_PATH, extra_verbose=extra_verbose)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GCC_CW(GCC):
 | 
			
		||||
    ARCH_LIB = {
 | 
			
		||||
        "Cortex-M0+": "armv6-m",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue