Commit Graph

502 Commits (69a2803319998cf637f1b4c4f8d53de4c3645f99)

Author SHA1 Message Date
Jimmy Brisson c273de6545 Test and correct GCC version check 2018-06-26 09:25:33 -05:00
Jimmy Brisson c174ca3f85 Test and correct ARMCC version check 2018-06-26 09:15:01 -05:00
Jimmy Brisson f87fab5f33 Use via file for ASM macros in IAR 2018-06-26 08:44:37 -05:00
Jimmy Brisson a775e6992e Refactor via files to use a common method 2018-06-26 08:44:37 -05:00
Jimmy Brisson a855281633 Use preinclude of mbed_config.h in all toolchains 2018-06-26 08:44:37 -05:00
TTornblom dcd17935e3 IAR: Fixed #6670 2018-06-26 08:44:37 -05:00
Jimmy Brisson 0e56c18058 Check for no match in version check 2018-06-25 18:04:11 -05:00
Jimmy Brisson 59e8631d3a Escape '.' in regex 2018-06-25 17:58:11 -05:00
Jimmy Brisson 1a9474e4d9 Search all stdout for version regex; check > 1 matches 2018-06-25 14:41:37 -05:00
Jimmy Brisson 2aea6c39f7 Improve ARM compiler regex 2018-06-25 11:33:44 -05:00
Cruz Monrreal 95d2b3d55c
Merge pull request #7133 from OpenNuvoton/nuvoton_support_tz_partition
Override ROM/RAM start/size for TrustZone targets
2018-06-21 17:49:47 -05:00
Jimmy Brisson 52e640fc1d Add Rom config info getter and rom defines
* MBED_ROM_START = start of current rom (independent of BL modes)
 * MBED_ROM_SIZE = size of current rom (independent of BL modes)
2018-06-20 10:47:04 -05:00
Jimmy Brisson a87575fec5 Use Non-blocking Error and LooseVersion 2018-06-19 10:41:08 -05:00
Jimmy Brisson 6f54a8fdd7 Check version of Mbed CLI compile 2018-06-18 14:03:09 -05:00
Jimmy Brisson 86b7adbd30 Force small lib usage when using uARM tc 2018-06-15 10:38:23 -05:00
Jimmy Brisson 34792e60c6 Correct "defalut" typo 2018-06-13 09:51:50 -05:00
Jimmy Brisson 1d9fd830af Compute ARM_STD and ARM_MICRO labels with target attrs 2018-06-12 09:54:34 -05:00
Jimmy Brisson b922201a9c Heed default_lib in arm compiler 2018-06-12 09:29:10 -05:00
Jimmy Brisson 09cdc0631d Move from tc constructor to config vars 2018-06-08 09:59:19 -05:00
ccli8 ae16aa2fb7 Fix overridden MBED_ROM_START/MBED_ROM_SIZE/MBED_RAM_START/MBED_RAM_SIZE don't pass to linker 2018-06-08 18:03:56 +08:00
Cruz Monrreal a25b9f390f
Merge pull request #6999 from evva-sfw/feature/extend_error_warning_msg_as_link
Extend feature which displays errors/warnings as Link
2018-06-07 10:11:23 -05:00
ccli8 58f1521623 Pass fixed SRAM information (MBED_RAM_START/MBED_RAM_SIZE) to compiler/linker
This fix relies on target configuration options (mbed_ram_start/mbed_ram_size) defined.
2018-06-06 09:49:44 +08:00
ccli8 f48f30ceb2 Pass fixed flash information (MBED_ROM_START/MBED_ROM_SIZE) to compiler/linker
This fix relies on target configuration options (mbed_rom_start/mbed_rom_size) defined.
2018-06-06 09:46:59 +08:00
Cruz Monrreal 4fcaa56b77
Merge pull request #6914 from 0xc0170/fix_build_notifier
build: fix notifier typo and passing to builds API
2018-06-05 10:59:47 -05:00
Cruz Monrreal II e65537790e Modified LazyDict to inherit from object instead of dict, and removed iteration over values.
Py3 no longer supports dictionaries that self-modify their item lists during iteration.
2018-06-04 09:21:43 -05:00
PHST af1e482f52 Correct Bug 2018-05-23 16:19:14 +02:00
PHST b9217d6be0 correct imports 2018-05-23 16:13:50 +02:00
PHST 03422a9df5 Extend show error/warning as Link
PR #6270 added a parameter which allows the user to decide in case of an error or warning to print the output as a link.
This extension of this option also prints the ARM-GCC output in a link format.
2018-05-23 15:40:00 +02:00
Martin Kojtal 0bbfc6199c build: fix notifier typo and passing to builds API
Notifier should be passed to build libs functions, otherwise it's
none and fails.

Missing notify object in toolchain also fixed.
2018-05-16 13:30:06 +01:00
Bartek Szatkowski 00a321846d Rename __DOMAIN_NS to DOMAIN_NS to match CMSIS 2018-05-14 12:18:21 +01:00
Cruz Monrreal 53d3c4344f
Merge pull request #6781 from theotherjimmy/refactor-notify
tools: Refactor notification API
2018-05-07 10:48:48 -05:00
Cruz Monrreal 2ddce27a42
Merge pull request #6769 from theotherjimmy/fix-subtract-basepath
Move subtract basepath into the resources class
2018-05-07 10:33:36 -05:00
Martin Kojtal e43d21d4ef
Merge pull request #6713 from theotherjimmy/arm-no-asm-inc
Drop include paths for ARM assembler
2018-05-03 16:31:04 +01:00
Jimmy Brisson d338e672de Apply subtract basepath to features
A bug, #6755, was the result of the `subtract_basepath` function not
being applied to a resources object's children (it's features). This PR
fixes this bug by moving this functionality into the resources class.
Then, I applied the `subtract_basepath` method to the children resource
objects recursively. This has been tested on Partnerbeta and is to
upstream the fix.
2018-05-03 08:54:55 -05:00
Jimmy Brisson b6b6866d38 Extend a local version of the asm cmd list
I was extending an object-local one instead of a call-local one
2018-04-30 09:34:32 -05:00
Jimmy Brisson beb6d7802a Cleanup extraneous spaces on empty lines 2018-04-30 09:30:32 -05:00
Jimmy Brisson fcf7dbf4c6 Use notification API in BL modes 2018-04-26 09:54:01 -05:00
Jimmy Brisson 56ec4677b5 Clean up notifier API usage in compilers 2018-04-26 09:35:47 -05:00
Jimmy Brisson 3bd691a342 Move terminal notifier to it's own file 2018-04-26 09:04:26 -05:00
Jimmy Brisson 72beee7e90 Refactor notification logic into it's own class 2018-04-26 09:04:26 -05:00
Jimmy Brisson da69f0165b Correct test finding behavior
Scan resources ignores the build dir so we can't set it to something
dumb like the directory we want to scan
2018-04-24 10:07:16 -05:00
Jimmy Brisson d8becaa652 Remove ASM include paths for ARM compiler 2018-04-23 15:23:00 -05:00
Jimmy Brisson bc8b98358d Correct exporting with cortex-M23 and M33 2018-04-17 12:02:08 -05:00
ccli8 b81c0e5986 Fix build tool with ARMC6/ARMv8M
1. Add linking time preprocessor macro __DOMAIN_NS for non-secure build
2. For output .hex format, combine multiple .hex files (for multiple load regions) into one
   This can help for Greentea test.
3. Fix 'None' build_dir with cmse_lib.o on Greentea test
2018-04-16 16:10:57 +08:00
Jimmy Brisson 018596446e Exclude files like `.main.cpp` from builds 2018-04-03 11:23:42 -05:00
Martin Kojtal 7125c8ad0b
Merge pull request #6344 from tung7970/fix-tools
armcc - remove fromelf output before regenerating one
2018-03-21 14:12:00 +01:00
Tony Wu cca1d5581a armcc - remove fromelf output before regenerating
Fix armcc recompile errors during elf2bin stage. Errors shown as follows:

Elf2Bin: mbed-os-example-wifi
Error: Q0147E: Failed to create Directory .\BUILD\REALTEK_RTL8195AM\ARM\mbed-os-example-wifi.bin\IMAGE2_TABLE: File exists
Finished: 0 information, 0 warning and 1 error messages.
[ERROR] Error: Q0147E: Failed to create Directory .\BUILD\REALTEK_RTL8195AM\ARM\mbed-os-example-wifi.bin\IMAGE2_TABLE: File exists
Finished: 0 information, 0 warning and 1 error messages.

Signed-off-by: Tony Wu <tonywu@realtek.com>
2018-03-20 16:01:22 +08:00
Jimmy Brisson 14255ca113 Correct syntax for mbed export in Py3 2018-03-16 13:08:20 -05:00
Cruz Monrreal 0828727643
Merge pull request #6270 from evva-sfw/error_warning_msg_as_link
Add parameter in tools settings to show error/warning as Link
2018-03-15 11:49:33 -05:00
Cruz Monrreal b84627feab
Merge pull request #6146 from theotherjimmy/fix-m33-fp
Correct gcc m33 floating point handling
2018-03-06 08:20:20 -06:00
PHST 3e59bdcbf5 Add parameter in tools settings to show error/warning as Link
Per default mbed compile prints errors/warnings on output not in a link format, therefore it is not possible to click, i.e. in an IDE, on the errors/warnings and jump to the position in the file.

The settings parameter lets you decide in witch format do you want to have it.
If it is enabled then the output will look like:
[Error/Warning] [absolute\path\to\file.ext]:[line]:[column]: [msg]

with this format nearly every common known IDE can deal with this link and lets you jump to the file
2018-03-05 15:44:49 +01:00
Jimmy Brisson c29207a4f4 Correct gcc m33 floating point handling 2018-03-01 09:40:47 -06:00
Cruz Monrreal 8b6a7aacc5
Merge pull request #6229 from hug-dev/fix-elf-output-extension
Fix a bug using ELF as output extension
2018-02-27 16:32:40 -06:00
Christopher Haster 24bb556127 tools: Removed outdated (and broken) toolchain initialization test
Also moved the access of build_dir into condition on secure in ARMC6

per theotherjimmy
2018-02-27 09:39:00 -06:00
Hugues de Valon b0027c1e81 Fix a bug using ELF as output extension
When overriding the OUTPUT_EXT variable in compilation configuration,
bugs appear:

* The bin variable is not None as the 'elf' string is not interned.
* When that is fixed, the function returns None instead of returning the
path of the ELF file.

Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2018-02-27 14:08:02 +00:00
Jimmy Brisson 166a463639 Correct single file excludes for some exporters 2018-02-20 12:09:11 -06:00
Martin Kojtal 636ced8ed0
Merge pull request #5915 from DBS06/gcc_msg_parsing
Simplify and Improve error/warning parser for gcc_arm
2018-02-19 17:34:43 +01:00
Cruz Monrreal 4145cc0cf0
Merge pull request #6029 from deepikabhavnani/update_context_switch_files
RTX5: Pre-processor defines used for assembly
2018-02-16 10:15:03 -06:00
Cruz Monrreal df4ceee4e1
Merge pull request #6096 from deepikabhavnani/secure_lib_creation
Generate/Link secure object file
2018-02-15 11:27:19 -06:00
deepikabhavnani b21e93ba32 Generate/Link secure object file
Cortex v8 architecture based devices support secure/non-secure builds.
Secure build should generate the object file/library from elf during link
process which is used by non-secure binary during linking.

--out-implib=file specifies output library in which symbols are exported
--cmse-implib requests libraries mentioned above are secure gateway
libraries

Creation of secure library is done as part of linking process in GCC/ARMC6/IAR
Non-Secure project should add this secure object file as part of the
linking process.
Secure library is named as cmse_lib.o.
2018-02-14 12:48:33 -06:00
deepikabhavnani 4076788d51 Non Secure flag is required for pre-processing of linker file 2018-02-07 22:48:47 -06:00
Cruz Monrreal 02eeb7af41
Merge pull request #6030 from deepikabhavnani/correct_arch
M33: -march not required if -mcpu is set
2018-02-07 20:07:11 -06:00
Cruz Monrreal c679dee286
Merge pull request #5848 from theotherjimmy/compile-py3
Python2+3: mbed compile, mbed test --compile,  python unit tests
2018-02-07 15:48:18 -06:00
Cruz Monrreal 779ee843ea
Merge pull request #5797 from hosse005/master
ARMC5+6: Specify CPU for ARM scatter file preprocessor
2018-02-07 14:50:44 -06:00
deepikabhavnani c50518e11c -march not required if -mcpu is set
GCC_ARM throws warning if both architecture and core are set (though
correct). If CPU option is set correctly, architecture is set by compiler
itself.
2018-02-06 22:46:04 -06:00
Jimmy Brisson db4c380b2b Python2+3: build_travis.py and Travis tests 2018-02-05 11:07:37 -06:00
Jimmy Brisson 1dd39fbe80 Python2+3: mbed test --compile 2018-02-05 11:07:37 -06:00
Jimmy Brisson c93a2bfa4c Python2+3: Use absolute import where possible 2018-02-05 11:07:37 -06:00
Jimmy Brisson cca4425af6 Python2+3: iteritems -> items 2018-02-05 11:04:36 -06:00
Jimmy Brisson 7abeec9744 Python2+3: clean argparse 2018-02-05 11:04:35 -06:00
Jimmy Brisson 10a91216f5 Python2+3: The rest of mbed compile 2018-02-05 11:04:01 -06:00
Jimmy Brisson 380ecb1b0e Python2+3: working through many has_attr exceptions 2018-02-05 11:04:01 -06:00
Jimmy Brisson 68737f2762 Python2+3: Things import 2018-02-05 11:03:44 -06:00
Jimmy Brisson 9b8ba4dd98 Use relative path to scatter for include path 2018-02-02 11:53:51 -06:00
Jimmy Brisson a92d0df4ae Move region adding to mbedToolchain 2018-01-31 10:04:34 -06:00
PHST 3ce173b5ce Simplify and Improve error/warning parser for arm_gcc 2018-01-24 08:48:15 +01:00
Evan Hosseini 9245b50a54 ARM: ARMC6: Update scatter file shebang include directory 2018-01-12 13:43:20 -06:00
Evan Hosseini 6b21a5539a ARM: ARMC6: Copy headers along with the updated linker scatter file
* Need to copy headers into the build directory as well when also
  writing an updated linker scatter file to the build directory
2018-01-10 15:46:20 -06:00
Evan Hosseini 3c21f1edfb ARM: ARMC6: Fix for ARM linker script cpu formatting 2018-01-08 09:50:33 -06:00
Evan Hosseini 453a1d79f1 ARM: ARMC6: Specify CPU for ARM scatter file preprocessor
Fixes #5796
2018-01-05 15:16:57 -06:00
Cruz Monrreal II 65dd31489a
Merge pull request #5755 from jorisa/fix-make-paths
Fix for #5676 make.py generates duplicate file entries in link_files.txt
2017-12-28 20:57:20 +00:00
Joris Aerts d3f6ea4ed2 Fix for #5676 make.py generates duplicate file entries in link_files.txt 2017-12-21 13:53:19 +01:00
TomoYamanaka 8e854b1c89 Add Cortex-A9 for ARMCC and ARMC6
I added the definition of "Cortex-A9" for core support of ARMCC and ARMC6 in arm.py.
2017-12-21 14:09:24 +09:00
Jimmy Brisson ab8a8de1a7 Merge pull request #5317 from theotherjimmy/fix-arm-supported-check
Tools: Check for toolchain and core support for Arm Compilers
2017-10-23 10:33:22 -05:00
Jimmy Brisson b0fc103de6 Check for core support in ARM toolchain 2017-10-20 10:05:37 -05:00
Jimmy Brisson 4673fb6580 Check for uARM support when compiling with uARM 2017-10-17 11:08:58 -05:00
Christopher Haster 9fd6c5ae56 Fix behaviour of empty .mbedignore
Should ignore nothing, currently ignores everything
An empty .mbedignore is easy to create when tinkering with a local repo
2017-10-13 11:52:13 -05:00
Jimmy Brisson b9b4bb5c25 Move IAR flag passing to constructor 2017-09-26 08:59:01 -05:00
Jimmy Brisson 4de448142b Merge pull request #5125 from theotherjimmy/improve-memap-performance
Refactor memap for speed
2017-09-21 11:40:41 -05:00
Anna Bridge 02a10e5974 Merge pull request #5094 from deepikabhavnani/m23_armc6
ARMC6 support for Cortex-M23
2017-09-19 10:25:33 +01:00
Jimmy Brisson 8c54c4efa8 Display full paths in armlink output 2017-09-18 16:40:52 -05:00
Deepika eea29d34a7 Corrected check for ARM/ARMC6 toolchain
ARMC6 support required ARM compiler support as mandatory requirement which
should not be the case. Cortex-M23/M33 devices are not suuported by ARM compiler5

Adding ARMC6 without ARM in target.json should work now.
2017-09-14 14:14:35 -05:00
Deepika 60c600ac11 ARMC6 support for Cortex-M23 2017-09-13 17:07:05 -05:00
Jimmy Brisson 58372d3fdf Allow ARMC6 to run post-binary-hooks marked for ARM 2017-09-13 14:50:06 -05:00
Anna Bridge 7b428916f5 Merge pull request #4949 from theotherjimmy/feature-armc5+armc6
NEW TOOLCHAIN: Add the ARMC6 Compiler
2017-09-13 10:39:15 +01:00
Jimmy Brisson d56c19f253 Detect test skips with armc6 2017-09-11 13:20:33 -05:00
Jimmy Brisson 887d29372b Check for support in ARMC6 2017-09-11 13:20:33 -05:00
Jimmy Brisson f4b7d8ba77 Avoid forcing preprocessing
We avoid forcing preprocessing by not replacing the first line when it's
not a shebang (#!). Should work pretty darn well.
2017-09-11 13:20:32 -05:00
Jimmy Brisson e9d3166a5e Expose present get_compile_options API in Toolcahins 2017-09-11 13:20:32 -05:00
Jimmy Brisson 1fef5553b4 Parse deps the same for GCC_ARM and ARMC6 2017-09-11 13:17:54 -05:00
Jimmy Brisson 98b4768434 Initial toolchain class for ARMC6
While ARMC6 does use the same linker (armlink) as ARM Compiler 5, it
is not compatible.

The reason for this incompatibility are twofold:
 * armlink may invoke the C preprocessor by adding a shebang
   (`#!`) to the top of their input files.
 * ARMC6 and ARMC5 differ in how you invoke the preprocessor:
   * ARMC5: `#! armcc -E`
   * ARMC6: `#! armclang -E`

This forces the tools to rewrite the shebang if it's wrong.

This does not yet handle dependencies properly
2017-09-11 13:17:54 -05:00
Deepika ca1f24cc0e Add -mcmse flag for GCC and improved logic for cpu core 2017-09-11 11:49:28 -05:00
Deepika 9422c351e4 Initial RTX and tools support for Cortex M-23/M-33 devices 2017-09-11 11:43:26 -05:00
Shrikant Tudavekar ddc9e0840a disable -f option for assembly files for IAR 2017-08-25 16:59:21 -05:00
Marcelo Salazar 5469be4de0 Fix to generate memory_usage key in report 2017-08-06 14:03:09 +01:00
Jimmy Brisson 8b31078d58 Add missing collect_include passing 2017-08-01 10:29:11 -05:00
Jimmy Brisson 2305a8c7e4 Merge pull request #4783 from theotherjimmy/refactor-exporter-ignores
Collect ignored directories in scan and use in exporters
2017-07-31 15:25:07 +00:00
Jimmy Brisson c8e6cf5bdd Collect ignores from scan resources and use in exporetrs 2017-07-26 14:31:22 -05:00
Jimmy Brisson 10a06a7083 Merge pull request #4733 from theotherjimmy/fix-old-builds
Prevent double define in very old builds
2017-07-17 11:07:59 -05:00
Martin Kojtal 441fda979d tools: fix toolchain extend inc paths
inc paths might be a list or might not be (just single string). If they don't, we are ending up with non valid include paths (one letter include paths).
This as result would not compile.
2017-07-12 16:24:06 +01:00
Jimmy Brisson d25560324c Prevent double define in very old builds
Partially reverts 2ddf4b33cb
2017-07-10 15:59:54 -05:00
Jimmy Brisson 99b37b28bb Merge pull request #4468 from moonchen/quote-include-paths
Put quotes around include files
2017-07-06 10:13:27 -05:00
Mo Chen 1b63202c27 Put quotes around include files
This fixes a problem when the path to include files have spaces.
See https://github.com/ARMmbed/mbed-os-example-uvisor/issues/31 for an
example of this problem.

Signed-off-by: Mo Chen <mo.chen@arm.com>
2017-06-20 14:00:38 -05:00
Jimmy Brisson bf1a69b9be Fill out remainder of LazyDict dict compatibility 2017-06-16 15:52:30 -05:00
Jimmy Brisson 7513d4f897 Correct len and iter operators for LazyDict 2017-06-16 15:28:10 -05:00
Jimmy Brisson 27c55d5c8d Delay relative_to and win_to_unix operations over features 2017-06-16 15:16:24 -05:00
Jimmy Brisson 85748dbd21 Delay feature scan until it's rquired 2017-06-16 14:58:58 -05:00
Jimmy Brisson 55801b619d Improve speed of .mbedignore processing 2017-06-16 13:36:56 -05:00
Yuguo Zou 02687b5ec5 A fix to enum issue 2017-06-03 20:14:54 +01:00
Yuguo Zou 7867a816d7 WiFi test fix for GCC
right now still need to add flag in gcc.py, we are fixing!
2017-06-03 20:14:51 +01:00
Yuguo Zou 53e837bce2 add support for REALTEK_RTL8195AM 2017-06-03 20:14:45 +01:00
Jimmy Brisson 4806229090 Fix bug in dependency handling 2017-05-31 09:54:09 -05:00
Jimmy Brisson 3123a1d394 Switch dependencies to their respective CIL flags 2017-05-19 16:30:49 -05:00
Jimmy Brisson 5152c1c7ac Make object files depend on compiler flags 2017-05-19 16:29:55 -05:00
Sam Grove 94b67de439 Merge pull request #4202 from theotherjimmy/rom-size-injection
Add support for Unmanaged Bootloader
2017-05-18 09:34:13 -05:00
Sam Grove 943ef8648b Merge pull request #4325 from theotherjimmy/fix-unicode
Decode STDERR from compiler
2017-05-18 09:26:06 -05:00
Jimmy Brisson 4ed87e2f3c Decode STDERR from compiler 2017-05-15 14:13:50 -05:00
Bartek Szatkowski 2ddf4b33cb CMSIS5: Remove ARM7 support and targets 2017-05-12 13:48:43 -05:00
Jimmy Brisson 58167a2071 All C files depend on mbed_app.json 2017-05-11 14:20:09 -05:00
Jimmy Brisson bbde3797cb Make binary depend on config directly 2017-05-08 13:33:37 -05:00
Jimmy Brisson da9c10be48 Expand build reports in the tools 2017-04-20 11:03:15 -05:00
Jimmy Brisson 7c40343e74 Fix include paths for Windows builds 2017-04-11 14:26:14 -05:00
Sam Grove cef31a7fa6 Merge pull request #4106 from theotherjimmy/fix-typo-toolchain
Fix a scoping typo in toolchains
2017-04-10 10:51:07 -05:00
Jimmy Brisson d5ecd7adf8 Fix a scoping typo in toolchains 2017-04-03 15:43:22 -05:00
Jimmy Brisson 09afe23762 Upgrade OUTPUT_EXT and use it to pick binary type
targets.json contained a key for some targets, `OUTPUT_EXT`, which I
moved to `Target`, the root of all targets. Following on that, the tools
now use this extension provided by `OUTPUT_EXT` to determine the file
type of the output executable.
2017-03-29 16:46:21 -05:00
Anna Bridge ae10ca8787 Merge pull request #3895 from theotherjimmy/find-exec-in-path
Use PATH env variable when gcc found in PATH
2017-03-14 14:41:32 +00:00
Jimmy Brisson d20bcba89b Remove static analysis scan
An earlier patch in this series relies on the assumption that all
toolchain construction goes through `prepare_toolchain`. This is still
not the case. The only remaining user of the `mbedToolchain` object that
does not go through `prepare_toolchain` is the static analysis scanner.
It's basically dead-code at this point. I say we remove it. So this
patch removes it.
2017-03-06 18:29:46 -06:00
Jimmy Brisson fbb6f71be8 Ignore build directory from scan resources
This is a bug fix for the following bug (Github issue #437):

If two builds were run specifying a non-default build folder, the second
build would fail to link with duplicate symbols and may not fit on the
device. The root of this problem is that these non-default build folders
are not ignored by scan-resources, and therefore included in the build.

We fix this bug by ignoring the build directory passed into the tools.
2017-03-06 17:10:57 -06:00
Jimmy Brisson a5745cadd9 Use PATH env variable when gcc found in PATH
Resolves the github issue #3790: Blinky fails to build (on Mac) after
addition of linker script preprocessing feature. Paraphrasing, this
issue is that Homebrew on mac does not install `arm-none-eabi-gcc` in
the same location as `arm-none-eabi-cpp`, the C Pre-Processor. The tools
prior to this commit, and after turning on the pre-processing of the
linker-script will fail on any Mac homebrew installed toolchains.

This commit resolves the above issue by allowing the toolchain's path to
the executable to remain empty after a call to `check_executable`. When
this path is empty, the tools will search the PATH environment variable
for the executable.
2017-03-06 15:24:58 -06:00
Sam Grove 067f5a0fef Merge pull request #3791 from theotherjimmy/remove-cr
Remove GCC_CR and refurbish LPCXpresso exporter
2017-02-22 13:33:14 -06:00
Jimmy Brisson 1d95604275 Remove GCC_CR
It has not worked since the introduction of build profiles
2017-02-16 15:03:24 -06:00
Liviu Ionescu 47b164b00b Merge remote-tracking branch 'ARMmbed/master' 2017-02-09 19:11:44 +02:00
Sam Grove 9ae6f7aa49 Merge pull request #3730 from c1728p9/redirect_support
Add redirect support to toolchains
2017-02-09 09:51:32 -06:00
Sam Grove 2de453c8fa Merge pull request #3706 from c1728p9/pre_process
Use the C Pre-Processor on GCC Linker scripts
2017-02-09 09:40:36 -06:00
Liviu Ionescu b2638646b8 Merge remote-tracking branch 'ARMmbed/master' 2017-02-09 05:17:22 +02:00
Jimmy Brisson c0f27597ec Add redirect support to toolchains
We create an API for generating the linker flags needed to redirect
functions in an application
2017-02-08 17:34:35 -06:00
Jimmy Brisson af4d848144 Use the C Pre-Processor on GCC Linker scirpts
This allows us to define parts of the linker script outside of the
linker script itself. In particular, we are interested in restricting
ROM to a subsection.
2017-02-08 17:26:36 -06:00
Brian Daniels b0739d7520 Fixing Cortex-A and SARA_NBIOT_EVK build failures (#3)
* Adding Cortex-A support for gnuarmeclipse
* Preventing '-mthumb' from being added to Cortex-A builds.
Previously, both '-mthumb' and '-marm' were being supplied to the
compiler (in that order). Because '-marm' came last, the compiler
respected this option. This change makes it so '-mthumb' is added for
all 'Cortex-M' targets only.
* Renaming to capital .S for Eclipse compatibility
2017-02-07 21:18:18 +02:00
Brian Daniels 6be8278246 Adding case insensitive 'error' detection
GCC Assembler errors were being missed because it prints 'error'
with a captial 'E'. This change allows the 'e' to be either lower
case or upper case.
2017-02-02 12:27:59 -06:00
Sam Grove 65956d108e Merge pull request #3677 from c1728p9/armcc_linker_flags
ARM - pass linker flags along to the linker
2017-02-02 11:05:59 -06:00
Russ Butler 660b221285 ARM - pass linker flags along to the linker
On the ARM toolchain linker flags specified in the build profile do
not get passed to armlink. This patch adds these flags to the
arguments sent to armlink.
2017-02-01 09:23:31 -06:00
Brian Daniels 3ad3a9f1d5 Adding fatal error detection to toolchians.
Before the toolchains would ignore error messages that contained the
string "Fatal error". This would lead to a silent failure unless the
compile command was ran with verbose options. This is now fixed.
2017-01-27 12:07:13 +02:00
Martin Kojtal 7316b89c1d Merge pull request #3600 from theotherjimmy/refactor-sys-libs
[toolchains] Refactor sys libs
2017-01-26 10:30:27 +02:00
Jimmy Brisson 81df273849 Move sys_libs into mbedToolchain class 2017-01-17 11:57:35 -06:00
Jimmy Brisson c14a5b94ec Add docstrings 2017-01-13 12:01:26 -06:00
Jimmy Brisson 39a5caacab Refactor scan resources to account for base_paths 2017-01-13 12:01:19 -06:00
Brian Daniels 105a9b3ea6 Removing aboslute path to Dlib config for IAR compiler
This fixes an issue where the absolute path causes a file error if the
compiler paths are configured incorrectly. It uses a relative path
instead now (the files appears to be in the default search path).
2016-12-09 12:02:55 -06:00
Brian Daniels 8f649493a3 Removing extra paths for standard the library for the ARM compiler 2016-12-09 11:29:36 -06:00
Martin Kojtal 9a61ef0368 Fix DEBUG target keyword for GCC_ARM
Fixes mbed-cli#402 bug. -g flag was changed to g3, thus this caused
a regression in producing TARGET_DEBUG for GCC_ARM.
2016-12-06 11:32:45 +00:00
Jimmy Brisson c3915215e4 Allow dependency parsing to fail, gracefully continuing 2016-11-10 10:04:36 -06:00
Sam Grove 6bd44c59d3 Merge pull request #2990 from bridadan/parallel-test-build
[tools] Parallel building of tests
2016-10-19 05:41:24 -05:00
Russ Butler 9f6b346c88 Properly set flags for default_lib = small
Use newlib nano for targets which have the key "default_lib" set to
"small". Also support the legacy key of "default_build".
2016-10-12 20:36:09 -05:00
Brian Daniels 0e4b841cb3 Removing need for memap to printed through toolchains 2016-10-11 18:24:01 -05:00
Brian Daniels 655c37715c Handling output of parallelized test building.
This makes use of the reports generated by the building of tests to
prevent output from interleaving when the build is parallelized. This
required some changes to memap to return a generated string from
the 'generate_output' function. I also had an option to stop the prints
from memap to prevent text from interleaving
2016-10-11 15:34:20 -05:00
Brian Daniels 14aff069b1 Modifying behavior of 'silent' option in toolchains
The 'silent' option has always been present in the toolchains API, however
it did not actually stop anything from being printed. Instead, it just
changed what was added to the build log. This make the 'silent' stop all
prints, but ensures that the output for the toolchain is still preserved
and accessible via the 'get_output' function.
2016-10-11 14:31:06 -05:00
Sam Grove 872363d809 Merge pull request #2854 from theotherjimmy/find-duplicates
[Tools] Find and report duplicates
2016-09-30 18:30:00 -05:00
Brian Daniels 64d09e1879 Adding uARM support default build profiles 2016-09-30 17:24:11 -05:00
Jimmy Brisson 5f8fbac56f Add documentation of exposed functions 2016-09-30 15:14:22 -05:00
Jimmy Brisson e012185602 Use toolchain notify for printing when finding dupes 2016-09-30 15:14:22 -05:00
Jimmy Brisson 9f7c82a37f Deduplicate find-duplicate functionality 2016-09-30 15:13:53 -05:00
Jimmy Brisson a85a384973 Add duplicate detection to project compilation 2016-09-30 15:13:53 -05:00
Jimmy Brisson e2b248a4aa Correct percent printing 2016-09-30 15:09:54 -05:00
Sam Grove 761ec4423b Merge pull request #2856 from bridadan/fixing-missed-build-error-prints
[Tools] Making all toolchains print final compiler message
2016-09-30 15:01:20 -05:00
Sam Grove 1047ab4562 Merge pull request #2834 from bridadan/memap-consolidate
[tools] Making memap output consistent across output formats
2016-09-30 14:59:31 -05:00
Jimmy Brisson 7348b0131b Add Debug or Release to labels depending on flags
This is a policy decision and it should /really/ be in the config system
ATM it's here for backward compatibility
2016-09-30 13:01:16 -05:00
Jimmy Brisson fd04ea2125 Added property based regression test to travis 2016-09-29 10:20:05 -05:00
Jimmy Brisson d88852d150 Replace -o with profiles 2016-09-29 10:20:05 -05:00
Jimmy Brisson ceda396e18 Add simple build profiles to toolchains 2016-09-28 17:25:24 -05:00
Brian Daniels 10534019b9 Making all toolchains print final compiler message.
This functionality was already present in the ARM toolchain script, but
this commit adds this across all toolchain scripts. Solves an issue that
cropped up where a build error wasn't being printed unless the verbose
flag was used. This should now print any existing error messages that have
been printed when the compiler output is being parsed.
2016-09-28 14:42:35 -05:00
Brian Daniels e8b06874a3 Making memap output consistent across output formats
This commit fixes an issue where the output from memap.py was not
consistent across all output formats. This issue stemmed from the fact
that a few important calculations were being performed at output
generation time. This has been moved to the 'parse' function and saved for
future use by the 'generate' functions.

Because this commit saves more data to the MemapParser instance, there
were some name collisions. The public member 'mem_summary' has been
renamed to 'mem_report'. 'mem_report' contains the data structure used by
the json generator. This includes both the section data and the memory
summary. The 'mem_summary' member now just contains the summary. The
summary includes total allocated heap, total static RAM, etc.
2016-09-27 16:51:16 -05:00
Sam Grove 28f9b27918 Merge pull request #2788 from theotherjimmy/print-percent
Print percent complete when building
2016-09-24 16:48:03 -05:00
Sam Grove e9c556d356 Merge pull request #2757 from theotherjimmy/non-global-config
Refactor Target and Config away from global variables
2016-09-22 17:23:04 -05:00
Jimmy Brisson 2fe201cf10 Print percent complete when building 2016-09-22 15:10:03 -05:00
Sam Grove 0c0455bf3f Merge pull request #2745 from pan-/disable_global_objects_destruction
Disable global objects destruction
2016-09-22 00:48:08 -05:00
Jimmy Brisson d4f9820577 Refactor Target and Config away from global variables 2016-09-20 16:09:22 -05:00
Vincent Coubard f4f8b491d1 Override exit and atexit functions from newlib.
This change simplify the exit and initialization process.
It also reduce the number of hidden memory allocation made by atexit.
2016-09-19 15:17:39 +01:00
Vincent Coubard 2f0b772c77 Disable destruction of global C++ objects when IAR is used.
This behavior is realized by enabling the flag --no_static_destruction
when the compilerin the invoked.
2016-09-19 11:59:24 +01:00
Brian Daniels ba5ab753b1 Fixing missing import for os.path.exists 2016-09-17 21:12:47 -05:00
Sam Grove 663fdb796f Merge pull request #2721 from theotherjimmy/profile-documentation
tools - Add documentation about profiles to the toolcahins
2016-09-16 17:38:13 -05:00
Sam Grove a6f4b58405 Merge pull request #2675 from sarahmarshy/toolchain_path_check
Revise checking toolchain path
2016-09-16 17:31:41 -05:00
Sam Grove 054f232431 Merge pull request #2674 from theotherjimmy/correct_repo_files
tools - Correct adding repo_files
2016-09-16 17:30:13 -05:00
Jimmy Brisson 924d242b39 Add documentation about profiles to the toolcahins 2016-09-15 15:03:10 -05:00
Jimmy Brisson 00d2a45b91 Generalize make exporters for all toolchains 2016-09-15 11:42:52 -05:00
Sarah Marsh 8670598115 Abstract check_executable added 2016-09-13 16:26:58 -05:00
Sarah Marsh ab92a5ace2 Toolchain check generic in mbedToolchain 2016-09-13 13:59:11 -05:00
Sarah Marsh 8b74c5b3c7 Docstrings. Empty executable search path handling. 2016-09-13 12:06:01 -05:00
Sarah Marsh 61dee45dca Revise checking toolchain path 2016-09-12 18:54:39 -05:00
Jimmy Brisson f48aa248b7 Correct adding repo_files 2016-09-12 16:19:55 -05:00
Tony Wu c50b5c6651 Tools - Fix fill section size variation
The linking order of object files affects the actual code placement,
which in turn affects the size of fill section due to the number of
zeros required to maintain appropriate data/code alignment may change.
This is observed when building on Mac and Linux host.

example: mbed compile -m K64F -t GCC_ARM (build 1)
+---------------------+-------+-------+-------+
| Module              | .text | .data |  .bss |
+---------------------+-------+-------+-------+
| Fill                |   120 |     4 |  2381 |
| Misc                | 28755 |  2216 |    84 |
| features/frameworks |  4236 |    52 |   744 |
| hal/common          |  2745 |     4 |   325 |
| hal/targets         | 12116 |    12 |   200 |
| rtos/rtos           |   119 |     4 |     0 |
| rtos/rtx            |  5721 |    20 |  6786 |
| Subtotals           | 53812 |  2312 | 10520 |
+---------------------+-------+-------+-------+

example: mbed compile -m K64F -t GCC_ARM (build 2)
+---------------------+-------+-------+-------+
| Module              | .text | .data |  .bss |
+---------------------+-------+-------+-------+
| Fill                |   128 |     4 |  2381 |
| Misc                | 28755 |  2216 |    84 |
| features/frameworks |  4236 |    52 |   744 |
| hal/common          |  2745 |     4 |   325 |
| hal/targets         | 12116 |    12 |   200 |
| rtos/rtos           |   119 |     4 |     0 |
| rtos/rtx            |  5721 |    20 |  6786 |
| Subtotals           | 53820 |  2312 | 10520 |
+---------------------+-------+-------+-------+

This patch fixes fill section size variation by sorting object
files before passing to linker.

Signed-off-by: Tony Wu <tung7970@gmail.com>
2016-09-10 08:30:01 +08:00
Sarah Marsh f6a15fd3c8 Refactor export subsystem
Makes several broad changes:
 - removes dead code that dealt with the online build system
 - replaces export function with a much simpler one that:
   - does not copy any sources
   - the zip file hits the disk
   - the mbed_config.h hits the disk
   - the project files hit the disk
   - nothing else hits the disk
 - exporters use Resource object scanned with a toolchain
 - progen exporters don't optionally build a project instead they have a
   build function that may be called afterwards
 - much of the code passes pylint (have a score of 9 or above):
   - project.py
   - project_api.py
   - export/__init__.py
   - export/exporters.py
   - test/export/build_test.py
2016-09-06 14:24:00 -05:00
Sam Grove fe1f2b6066 Merge pull request #2563 from sarahmarshy/path_error_rev
Check if executble exists
2016-08-26 18:05:50 -05:00
Sarah Marsh bd0acdc527 Check executable 2016-08-26 17:32:57 -05:00
Sam Grove ea3526d657 Merge pull request #2418 from sarahmarshy/path_error_rev
Readable error when toolchain paths not set. Allow IAR and ARM toolchains to be set in user's PATH.
2016-08-26 13:10:48 -05:00
Vincent Coubard fe322adc9c Make selection of c library used consistent.
* rename "default_build" property into "default_lib"
* rename "standard" value for "default_build" into "std".
2016-08-23 16:04:56 +01:00
Vincent Coubard 73a925810c Improve naming of the command line option which select the c library to use.
* rename 'small-build' into 'small-lib'
* rename 'standard-build' into 'std-lib'
2016-08-23 15:42:08 +01:00
Vincent Coubard afde624a26 Rename big-build option into standard-build.
With this change, the name is more descriptive and aligned with the targets
definitions in hal/targets.json.
2016-08-23 15:38:44 +01:00
Russ Butler 6a31ffbf3e Heap statistics
Keep track of the current size allocated, maximum size allocated,
number of allocations, failed allocations and total size allocated for
both GCC and ARM. Report the maximum size allocated at the end of
testing.

Also, add a test to verify heap metrics are working as expected.
2016-08-22 18:32:51 -05:00
Martin Kojtal 862db41be3 Merge pull request #2468 from bridadan/fix-gcc-diagnostic-pattern
Tools - Fixing issue where GCC fails to report compile errors when non-verbose
2016-08-19 13:48:54 +01:00
Sarah Marsh cd229bacc3 Allow users to set armcc and iccarm in path.
Raise exceptin instead of exit.
Corrected error for arm-none-eabi-gcc/g++ set in path.
2016-08-17 09:14:05 -05:00
Brian Daniels 20ddba6e90 Fixing issue where GCC fails to report compile errors when non-verbose
The output of the GCC compiler is such that the toolchain regex sometimes
got hung up on the ':' charcter being printed in front of the drive letter when
running on Windows. This PR changes the matching logic to be more flexible
by using 'search' to check the entire string for a match, not just the
beginning of the string.
2016-08-16 12:34:18 -05:00
Jimmy Brisson cb5e61028d Format and add docstrings to memmap 2016-08-16 11:48:39 -05:00
Sarah Marsh 51245ceb7a Exit non-zero for invalid toolchain path 2016-08-10 12:04:11 -05:00
Sarah Marsh 1445886844 Readable error when toolchain paths not set.
Fixes #2360.

New error:
[Error] Toolchain path does not exist for IAR.
Current value: /default/path/that/doesnt/exist
(System exit before any build system calls)
2016-08-10 11:52:45 -05:00
Sam Grove 9d1fbda9fe Merge pull request #2377 from sarahmarshy/flag_revision
Pass only relevant defines at each stage of compilation
2016-08-04 22:10:58 -05:00
Mihail Stoyanov 88564a9ac3 Differentiate ASM and CXX symbols as they are not treated the same in ARMCC and IAR compilers 2016-08-04 18:19:08 +01:00
Mihail Stoyanov a4c3469b7b Empty the multiprocessing queue before terminating it 2016-08-02 16:53:58 +01:00
Sam Grove 381b352df5 Merge pull request #2168 from c1728p9/remove_float_printf
Remove floating point formatting in newlib nano
2016-07-26 00:20:45 -05:00
Sam Grove aec3695cc5 Merge pull request #2188 from screamerbg/build-common
[Tools] Unify common routines in build_api.py
2016-07-22 17:04:25 -05:00
Mihail Stoyanov ac86584c42 Unify common routines in build_api.py
Introduce prepare_toolchain() which handles:
 * deduplication of src_paths
 * config initialization
 * toolchain initialization
 * toolchain flags
 * returns toolchain
Introduce scan_resources() which handles:
 * scanning of sources
 * scanning of include dirs
 * inclusion of addition include dirs
 * returns resources
2016-07-22 22:21:39 +01:00
Sam Grove b10276cbef Merge pull request #2173 from theotherjimmy/abstract-base-class
[toolchains]Abstractify the mbedToolchain base class.
2016-07-21 22:10:49 -05:00
Bogdan Marinescu 51540d08d5 Merge pull request #2177 from mbedmicro/build_on_config_change
Rebuild sources if configuration is changed
2016-07-20 14:52:08 +03:00
Bogdan Marinescu fd757d3b84 Merge pull request #2180 from mbedmicro/online-build-system
[Tools] mbed Online Build System support and improvements
2016-07-19 16:30:48 +03:00
Mihail Stoyanov ad87f9da34 Document code and mark which methods are used by the online build system 2016-07-19 11:16:05 +01:00
Mihail Stoyanov 74b7f9e923 mbed Online Build System support:
* added/improved global chroot support
* added RESPONSE_FILES flag to support optional response files (on linux the cmd param length is 2 megabytes). Default True
* added unified handling for archive and link response file (similar to includes)
* added COMPILE_C_AS_CPP flag to support compiling of c files as cpp. Default False
* added mbedToolchain.init() for post __init__ hooks
* added caching to mbedToolchain.need_update() to reduce IO hits
* added support to identify compiler warning/error column (supports ARMCC, GCC and IAR). Errors/warnings now report file@line,col
* added global TOOLCHAIN_PATHS which allows overriding/changing of the toolchain paths. Also simplified ARM-related paths
* added target.json to mbed library release (by @0xc0170)* migrated compile_worker() to utils.py for lightweight thread initialization
* improved run_cmd() performance by removing unnecessary check about the command being executed (should be checked once in the relevant toolchain instead)
* removed remnants of Goanna support (should be reimplemented as hooks to compile/link/archive instead)
* fixes for Python 2.7 compatibility (by @0xc0170)
* fixes for Exporters (by @0xc0170)
2016-07-19 11:14:42 +01:00
Martin Kojtal 5cd73170ba Merge pull request #2185 from yogpan01/master
Changing -O2 parameter to -Os
2016-07-19 10:42:34 +01:00
0xc0170 edf015ad92 Merge branch 'master' into release
Conflicts:
	tools/export/uvision4.py
	tools/export/uvision5.py
2016-07-19 08:44:34 +01:00
Yogesh Pande e6043daa04 Changing -O2 parameter to -Os
This commit includes
- Changing build option parameter from -O2 to -Os to reduce flash size of the
  final binary pacakge.
  The original parameter of -O2 is kept to circumvent the error
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46762 .
 But this error has been long fixed and released in latest 4.9.x GCC compiler.

 This change is necessary to reduce the generated binary size of mbed Client component to
avoid problem of getting images over 512 kB which is causing application to crash because of
Configuration Store problem https://github.com/ARMmbed/configuration-store/issues/21
2016-07-18 13:59:39 +03:00
Jimmy Brisson bccbe48f3f Updated all docstrings to be compatible with PEP 257
It's nicer to be compatible with the standards.

I have added one more field to the description of each function:
Side effects. This feild contains the expected side effects of
running a particular method. If the side effects of a method are
None, it is expected that the function does not change anything in
any envoronment and that running it multiple times with the same
arguments will produce the same result every time. That is when
Side effects is non, the method is expected to be pure.
2016-07-15 10:51:47 -05:00
Jimmy Brisson 4fc8c56410 Replace pass with rais NotImplemented in each abstact method
The methods themselfes do nothing within the abstract base class
mbedToolchain. This change enforces that toolchains do not call
these methods that contain no implementation.
2016-07-15 10:17:35 -05:00
Jimmy Brisson 17833e8f58 Abstractify the mbedToolchain base class
The mbedToolchain class calls many members of it's subclasses, expecting
them to implement a particular API. This change adds a requirement to
each subclass that requires them to implement this expected API.

The API consists of these methods:
 - parse_dependencies
 - parse_ouptut
 - get_config_option
 - compile_c
 - compile_cpp
 - link
 - archive
 - binary
2016-07-15 10:07:56 -05:00
Bogdan Marinescu a558c49240 Rebuild sources if configuration is changed
This commit adds a check for configuration data changes. If a change in
configuration data is detected, all the sources in the tree are rebuilt.

This is a fix for #2073. #2162 was originally proposed as a fix, but it
was agreed that `--preinclude` is a more convenient way to include
configuration data, since it can be used to change the behaviour of
source files that don't include "mbed_config.h" directly, which is a big
advantage when importing 3rd party source trees. Compared to #2162, this
commit has the disadvantage of rebuilding all the source files if a
configuration change is detected, but it was agreed that the advantage
of using `--preinclude` outweighs the disadvantage of the increased
compilation time.
2016-07-15 16:37:46 +03:00
Russ Butler 546b5dec7c Remove floating point formatting in newlib nano
Remove special case targets which have floating point enabled in
Newlib Nano from gcc.py.  To enable floating point printf/scanf
for a target configure it to use the 'standard' default build in
targets.json rather than 'small'.
2016-07-13 18:48:43 -05:00
Jimmy Brisson bac254c7a3 Add documentation of the notify parameter to mbedToolchain 2016-07-11 09:41:23 -05:00
Jimmy Brisson 6b8bde9471 Update event dict with toolchain, use toolchain for wrapping 2016-07-11 09:41:23 -05:00
0xc0170 359d33cc16 Revert part of the FPU change
We keep target.core names, it defines if CPU contains FPU, as it's common - Cortex M4F/M7F.
We add Cortex M7FD for double precision FPU.
2016-07-11 10:39:23 +01:00
Przemek Wirkus 12a01f61ca Add summary for test building
When users are building tests with `mbed compile --tests` whey will by default
get memory map breakdown report.
This can be suppresed in the future with command line switch. For now it is
visible each time users build test cases.
List is sorted by project name created with `build_project` API.

Changes:
* `build_project` now returns tuple (this breaks build_api.build_project API!)
* Memmap script got a aggregation function to print summary from small 'JSON'
  partial reports.
* Report is generated by `test_api.build_tests` function only!

Example:
```
+----------------------------------------------------------------------+--------+-----------+-------------+------------+-------+-------+-----------+
| name                                                                 | target | toolchain | total_flash | static_ram | stack |  heap | total_ram |
+----------------------------------------------------------------------+--------+-----------+-------------+------------+-------+-------+-----------+
| features-feature_ipv4-tests-mbedmicro-net-nist_internet_time_service | K64F   | GCC_ARM   |      132136 |      62288 | 32768 | 65536 |    160592 |
| features-feature_ipv4-tests-mbedmicro-net-tcp_client_echo            | K64F   | GCC_ARM   |      125613 |      62448 | 32768 | 65540 |    160756 |
| features-feature_ipv4-tests-mbedmicro-net-tcp_client_hello_world     | K64F   | GCC_ARM   |      125949 |      62448 | 32768 | 65540 |    160756 |
| features-feature_ipv4-tests-mbedmicro-net-udp_echo_client            | K64F   | GCC_ARM   |      123613 |      62276 | 32768 | 65536 |    160580 |
| features-storage-tests-cfstore-add_del                               | K64F   | GCC_ARM   |       96080 |      13052 | 32768 | 65540 |    111360 |
| features-storage-tests-cfstore-close                                 | K64F   | GCC_ARM   |       95520 |      12004 | 32768 | 65540 |    110312 |
| features-storage-tests-cfstore-create                                | K64F   | GCC_ARM   |       99144 |      13036 | 32768 | 65540 |    111344 |
| features-storage-tests-cfstore-example1                              | K64F   | GCC_ARM   |       98592 |      12368 | 32768 | 65536 |    110672 |
| features-storage-tests-cfstore-example2                              | K64F   | GCC_ARM   |       95232 |      12012 | 32768 | 65540 |    110320 |
| features-storage-tests-cfstore-example3                              | K64F   | GCC_ARM   |       95264 |      11856 | 32768 | 65536 |    110160 |
| features-storage-tests-cfstore-example4                              | K64F   | GCC_ARM   |       92632 |      12012 | 32768 | 65540 |    110320 |
| features-storage-tests-cfstore-example5                              | K64F   | GCC_ARM   |       92344 |      11856 | 32768 | 65536 |    110160 |
| features-storage-tests-cfstore-find                                  | K64F   | GCC_ARM   |       96344 |      13028 | 32768 | 65540 |    111336 |
| features-storage-tests-cfstore-find2                                 | K64F   | GCC_ARM   |       93192 |      12004 | 32768 | 65540 |    110312 |
| features-storage-tests-cfstore-flash                                 | K64F   | GCC_ARM   |       97784 |      12532 | 32768 | 65540 |    110840 |
| features-storage-tests-cfstore-flush                                 | K64F   | GCC_ARM   |       96464 |      12012 | 32768 | 65540 |    110320 |
| features-storage-tests-cfstore-flush2                                | K64F   | GCC_ARM   |       95056 |      12004 | 32768 | 65540 |    110312 |
| features-storage-tests-cfstore-init                                  | K64F   | GCC_ARM   |       93120 |      12012 | 32768 | 65540 |    110320 |
| features-storage-tests-cfstore-misc                                  | K64F   | GCC_ARM   |       96808 |      12516 | 32768 | 65540 |    110824 |
| features-storage-tests-cfstore-open                                  | K64F   | GCC_ARM   |       98632 |      12540 | 32768 | 65540 |    110848 |
| features-storage-tests-cfstore-read                                  | K64F   | GCC_ARM   |       94112 |      12540 | 32768 | 65540 |    110848 |
| features-storage-tests-cfstore-write                                 | K64F   | GCC_ARM   |       94488 |      12004 | 32768 | 65540 |    110312 |
| features-storage-tests-flash_journal-basicapi                        | K64F   | GCC_ARM   |      104712 |      21236 | 32768 | 65540 |    119544 |
| frameworks-utest-tests-unit_tests-basic_test                         | K64F   | GCC_ARM   |       71534 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-case_async_validate                | K64F   | GCC_ARM   |       74598 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-case_control_async                 | K64F   | GCC_ARM   |       74630 |      11476 | 32768 | 65540 |    109784 |
| frameworks-utest-tests-unit_tests-case_control_repeat                | K64F   | GCC_ARM   |       72790 |      11452 | 32768 | 65540 |    109760 |
| frameworks-utest-tests-unit_tests-case_selection                     | K64F   | GCC_ARM   |       72302 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-case_setup_failure                 | K64F   | GCC_ARM   |       72630 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-case_teardown_failure              | K64F   | GCC_ARM   |       72790 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-control_type                       | K64F   | GCC_ARM   |       82462 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-minimal_async_scheduler            | K64F   | GCC_ARM   |       72182 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-minimal_scheduler                  | K64F   | GCC_ARM   |       71998 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-test_assertion_failure_test_setup  | K64F   | GCC_ARM   |       71710 |      11460 | 32768 | 65540 |    109768 |
| frameworks-utest-tests-unit_tests-test_setup_case_selection_failure  | K64F   | GCC_ARM   |       71702 |      11468 | 32768 | 65540 |    109776 |
| frameworks-utest-tests-unit_tests-test_setup_failure                 | K64F   | GCC_ARM   |       71710 |      11468 | 32768 | 65540 |    109776 |
| tests-integration-basic                                              | K64F   | GCC_ARM   |       67566 |      10780 | 32768 | 65540 |    109088 |
| tests-integration-threaded_blinky                                    | K64F   | GCC_ARM   |       68326 |      10780 | 32768 | 65540 |    109088 |
| tests-mbed_drivers-c_strings                                         | K64F   | GCC_ARM   |       74438 |      11468 | 32768 | 65540 |    109776 |
| tests-mbed_drivers-callback                                          | K64F   | GCC_ARM   |       88310 |      11972 | 32768 | 65540 |    110280 |
| tests-mbed_drivers-dev_null                                          | K64F   | GCC_ARM   |       90213 |      10784 | 32768 | 65540 |    109092 |
| tests-mbed_drivers-echo                                              | K64F   | GCC_ARM   |       71918 |      11468 | 32768 | 65540 |    109776 |
| tests-mbed_drivers-generic_tests                                     | K64F   | GCC_ARM   |       77624 |      11468 | 32768 | 65540 |    109776 |
| tests-mbed_drivers-rtc                                               | K64F   | GCC_ARM   |       85854 |      11308 | 32768 | 65540 |    109616 |
| tests-mbed_drivers-stl_features                                      | K64F   | GCC_ARM   |       80726 |      11476 | 32768 | 65540 |    109784 |
| tests-mbed_drivers-ticker                                            | K64F   | GCC_ARM   |       70974 |      11308 | 32768 | 65540 |    109616 |
| tests-mbed_drivers-ticker_2                                          | K64F   | GCC_ARM   |       70790 |      11308 | 32768 | 65540 |    109616 |
| tests-mbed_drivers-ticker_3                                          | K64F   | GCC_ARM   |       71038 |      11308 | 32768 | 65540 |    109616 |
| tests-mbed_drivers-timeout                                           | K64F   | GCC_ARM   |       70886 |      11308 | 32768 | 65540 |    109616 |
| tests-mbed_drivers-wait_us                                           | K64F   | GCC_ARM   |       70414 |      11308 | 32768 | 65540 |    109616 |
| tests-mbedmicro-mbed-attributes                                      | K64F   | GCC_ARM   |       71534 |      11460 | 32768 | 65540 |    109768 |
| tests-mbedmicro-mbed-call_before_main                                | K64F   | GCC_ARM   |       73112 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-mbed-cpp                                             | K64F   | GCC_ARM   |       73400 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-mbed-div                                             | K64F   | GCC_ARM   |       73176 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-basic                                      | K64F   | GCC_ARM   |       68390 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-isr                                        | K64F   | GCC_ARM   |       74480 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-mail                                       | K64F   | GCC_ARM   |       74992 |      11300 | 32768 | 65540 |    109608 |
| tests-mbedmicro-rtos-mbed-mutex                                      | K64F   | GCC_ARM   |       74048 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-queue                                      | K64F   | GCC_ARM   |       74912 |      11300 | 32768 | 65540 |    109608 |
| tests-mbedmicro-rtos-mbed-semaphore                                  | K64F   | GCC_ARM   |       74296 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-signals                                    | K64F   | GCC_ARM   |       74328 |      10780 | 32768 | 65540 |    109088 |
| tests-mbedmicro-rtos-mbed-threads                                    | K64F   | GCC_ARM   |       75214 |      11460 | 32768 | 65540 |    109768 |
| tests-mbedmicro-rtos-mbed-timer                                      | K64F   | GCC_ARM   |       68430 |      10780 | 32768 | 65540 |    109088 |
| tests-storage_abstraction-basicapi                                   | K64F   | GCC_ARM   |      107808 |      28908 | 32768 | 65540 |    127216 |
+----------------------------------------------------------------------+--------+-----------+-------------+------------+-------+-------+-----------+
```

Refactored after code review

Refactored parse() function

Polishing

Moved memory usage reporting function call to test.py to group all reporters in one place

Bug-fix: on ARM toolchain we were not fetching statistics from last element of memap result list
2016-07-07 08:35:20 +01:00
Sam Grove 36ff1f73ce Merge pull request #2106 from theotherjimmy/fix-makefile
[Exporter-gcc_arm] do builds from project directory when --source is specified
2016-07-06 15:33:28 -05:00
Olaf Hagendorf bd614a2a11 [bugfix gcc_arm] build+make <-> export project+make: different results
when in target.json "default_build": "small" is configured
- build.py+make.py
  - uses linker option --specs=nano.specs
  - macro MBED_RTOS_SINGLE_THREAD is defined
- exporting with project.py + make Makefile
  - doesn't use the linker option --specs=nano.specs
  - doesn't contain macro MBED_RTOS_SINGLE_THREAD
2016-07-06 13:35:09 +02:00
Jimmy Brisson 4b7f591d33 Fix the makefile template
- Corrects a python barf when something in features is None
 - Corrects makefile to prevent barf when using make -f
2016-07-05 10:16:50 -05:00
Olaf Hagendorf 4fe41d4edd fpu with single/double precision - removing redundancy
- removing redundancy as discussed in PR #2087:
 - in target.json the core option can have only this values : "Cortex-M0", "Cortex-M0+", "Cortex-M1", "Cortex-M3", "Cortex-M4", "Cortex-M7", "Cortex-A9" - Cortex-M4F and Cortex-M7F removed
 - in target.json an additional fpu option with values: "single" and "double" can be used
- build and export scripts are changed to handle this

- tested (compiling, running on hardware) with nucleo_f767 (cortex-m7 with double precision fpu), nucleo_f746 (cortex-m7 with single precision fpu), nucleo_f446 and nucleo_l467 (cortex-m4 with single precision fpu), teensy31 (cortex-m4 without fpu - only build test), nucleo_l073 (cortex-m0)
- singletest results are added to PR #2087 comments
2016-07-04 22:08:31 +02:00
Olaf Hagendorf ea196e2adb fpu with single/double precision - bugfix and extension
- creating new core name Cortex_M7F_DP for a target with a double precision fpu
- adding new core name to arm.py to set compiler/linker flags to a double precision fpu when configured in target.json
- up to now: gcc wrote flag for a double precision fpu -> target with STM32F746 didn't run when using double variables - mcu has only single precision fpu
- changing gcc.py to use single precision for Cortex-M7 und double precision for Cortex_M7F_DP

tested with NUCLEO_F746, NUCLEO_F767 and build.py+make.py and exporting with project.py + compiling/flashing

- iar.py need a similar extention - I didn't change that yet because
  - did not run at the moment - python exception
  - currently worked on in PR #1948
2016-07-04 22:08:30 +02:00
Erwan Gouriou 9bb08291ce [STM32F4xx] Add support for NUCLEO_F429ZI 2016-07-04 14:00:41 +02:00
Laurent Meunier 4e1a3351b2 [NUCLEO_F446ZE] Add to build and export scripts 2016-07-04 11:44:28 +02:00
Sam Grove 472ac772f9 Merge pull request #2056 from theotherjimmy/pass-files-to-source
Enable passing individual files to --source options
2016-06-29 17:08:30 -05:00
Jimmy Brisson cd9261d168 Add documentation 2016-06-29 11:20:34 -05:00
Jimmy Brisson ce1cddcd8b Prefix non-public api with an underscore 2016-06-29 11:11:54 -05:00
Jimmy Brisson c7acb7c293 Enable passing individual files to scan_resources 2016-06-29 11:10:12 -05:00
Jimmy Brisson feea8d59e1 Fix a bug that caused the gcc_arm exporter to fail
Resolves #2048
2016-06-28 11:11:03 -05:00
0xc0170 29f806bb64 armcc - remove libpath from ld flags
libpath is not required for exporters, as they provide default paths.
This caused problems when paths are not correct for mbed tools, a project
fails to build as path is not found.
2016-06-28 14:58:26 +02:00
Jimmy Brisson 8e11fa2071 Undelete defines from IAR 2016-06-27 14:36:35 -05:00