Commit Graph

72 Commits (2f410b0ce2231efe91b8af8a4a6bd6a073e406a1)

Author SHA1 Message Date
Cruz Monrreal 53d3c4344f
Merge pull request #6781 from theotherjimmy/refactor-notify
tools: Refactor notification API
2018-05-07 10:48:48 -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 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 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
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
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
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
Jimmy Brisson 9b8ba4dd98 Use relative path to scatter for include path 2018-02-02 11:53:51 -06: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
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 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
Jimmy Brisson 4de448142b Merge pull request #5125 from theotherjimmy/improve-memap-performance
Refactor memap for speed
2017-09-21 11:40:41 -05: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 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 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
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
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 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
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
Jimmy Brisson 81df273849 Move sys_libs into mbedToolchain class 2017-01-17 11:57:35 -06:00
Brian Daniels 8f649493a3 Removing extra paths for standard the library for the ARM compiler 2016-12-09 11:29:36 -06:00
Brian Daniels 64d09e1879 Adding uARM support default build profiles 2016-09-30 17:24:11 -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
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
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
Jimmy Brisson 924d242b39 Add documentation about profiles to the toolcahins 2016-09-15 15:03:10 -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