Martin Kojtal
7251a8ccae
Merge pull request #2176 from 0xc0170/fix_#2171
...
Exporters - progen TARGETS lazy evaluated
2016-07-15 23:55:48 +01:00
Russ Butler
348b32c3c6
Create singleton class and update code to use it
...
Create the wrapper class SingletonPtr. This provides a safe way to
declare and use singletons. This class allows both the lazy
initialization of a singleton, and allows the singleton to be
garbage collected by the linker if it is never referenced.
This patch also updates the HAL to use SingletonPtr when declaring
singleton mutexes.
2016-07-15 14:37:43 -05:00
Russ Butler
d4627176da
Update ARMCC pre_main to be in C
...
Switch pre_main from assembly to C for ARMCC. This function does not
need to be in assembly.
2016-07-15 14:12:37 -05:00
Sarah Marsh
b969fa5bb1
IDE build tests with progen
2016-07-15 13:25:35 -05:00
Russ Butler
59e2f9621c
Suppress warnings about deprecated __ldrex/strex
...
Suppress warnings about ARMCC warnings about the __ldrex and __strex
intrinsics to match CMSIS 5.
2016-07-15 11:10:38 -05: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
69eb3cabc8
Add the toolchain api test to the travis CI
...
I would like to test that the Toolchains API remains stable. Therfore,
I have added a test to the travis CI that checks that each exposed
toolchain class implements the API that the mbedToolchain base class
uses to compile.
2016-07-15 10:12:31 -05:00
Jimmy Brisson
f6b8cf05b0
Add a test that exercises the abstract base class checking
...
The test simply tries to instantiate each class exposed as part of the
TOOLCHAIN_CLASSES map. This is a test that each toolchain class
implements the required API, as the mbedToolchain will not allow the
instantiation of a subclass without a part of that API.
2016-07-15 10:10:40 -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
Martin Kojtal
38ae4f9289
Merge pull request #2128 from LMESTM/fix_F4_serial_it_issue2119
...
[STM32] Serial interrupt TC vs. TXE
2016-07-15 15:21:49 +01:00
Martin Kojtal
1201f4a09c
Merge pull request #2127 from svastm/fix_rtc_min_year
...
[STM32XX] Fix RTC minimum date
2016-07-15 15:03:14 +01: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
0xc0170
f95265f38d
Exporters - progen TARGETS lazy evaluated
...
To speed up project.py, use @property for TARGETS.
When exporters are used, it would ask progen for all targets support
(number of tools x number of targets), this takes a lot of time, thus
lazily evaluated, and TARGETS are for backaward compatibility, not currently
used by project.py but by other scripts to check if a target is supported.
Profiling:
```
python tools\project.py -m K64F -i uvision -n MBED_10 -b
Before the change:
1 0.000 0.000 0.010 0.010 definitions.py:113(get_tool_definition)
824 0.004 0.000 2.990 0.004 definitions.py:124(is_supported)
1 0.000 0.000 0.000 0.000 definitions.py:145(get_debugger)
1 0.002 0.002 0.044 0.044 definitions.py:15(<module>)
384 0.002 0.000 2.986 0.008 definitions.py:26(_load_record)
1 0.000 0.000 0.000 0.000 definitions.py:32(ProGenMcus)
992 0.055 0.000 1.959 0.002 definitions.py:34(__init__)
1376 0.002 0.000 0.003 0.000 definitions.py:40(get_mcus)
384 0.001 0.000 1.070 0.003 definitions.py:43(get_mcu_record)
1 0.000 0.000 0.000 0.000 definitions.py:50(ProGenTargets)
992 0.000 0.000 0.000 0.000 definitions.py:52(__init__)
1196 0.002 0.000 0.004 0.000 definitions.py:55(get_targets)
204 0.001 0.000 1.922 0.009 definitions.py:58(get_mcu_record)
1 0.000 0.000 0.000 0.000 definitions.py:67(get_debugger)
1 0.000 0.000 0.000 0.000 definitions.py:74(ProGenDef)
992 0.008 0.000 1.973 0.002 definitions.py:83(__init__)
Days : 0
Hours : 0
Minutes : 0
Seconds : 4
Milliseconds : 723
Ticks : 47237302
TotalDays : 5.46728032407407E-05
TotalHours : 0.00131214727777778
TotalMinutes : 0.0787288366666667
TotalSeconds : 4.7237302
TotalMilliseconds : 4723.7302
After the change:
1 0.000 0.000 0.010 0.010 definitions.py:113(get_tool_definition)
2 0.000 0.000 0.025 0.012 definitions.py:124(is_supported)
1 0.000 0.000 0.000 0.000 definitions.py:145(get_debugger)
1 0.002 0.002 0.042 0.042 definitions.py:15(<module>)
3 0.000 0.000 0.035 0.012 definitions.py:26(_load_record)
1 0.000 0.000 0.000 0.000 definitions.py:32(ProGenMcus)
2 0.000 0.000 0.005 0.002 definitions.py:34(__init__)
5 0.000 0.000 0.000 0.000 definitions.py:40(get_mcus)
3 0.000 0.000 0.000 0.000 definitions.py:43(get_mcu_record)
1 0.000 0.000 0.000 0.000 definitions.py:50(ProGenTargets)
2 0.000 0.000 0.000 0.000 definitions.py:52(__init__)
5 0.000 0.000 0.000 0.000 definitions.py:55(get_targets)
3 0.000 0.000 0.035 0.012 definitions.py:58(get_mcu_record)
1 0.000 0.000 0.000 0.000 definitions.py:67(get_debugger)
1 0.000 0.000 0.000 0.000 definitions.py:74(ProGenDef)
2 0.000 0.000 0.005 0.003 definitions.py:83(__init__)
Days : 0
Hours : 0
Minutes : 0
Seconds : 1
Milliseconds : 178
Ticks : 11780618
TotalDays : 1.3634974537037E-05
TotalHours : 0.000327239388888889
TotalMinutes : 0.0196343633333333
TotalSeconds : 1.1780618
TotalMilliseconds : 1178.0618
```
2016-07-15 14:02:57 +01:00
Andrzej Puzdrowski
62543f1337
remove unrichable return statment
2016-07-15 13:16:01 +02:00
Andrzej Puzdrowski
d433b55763
changes from CR of IAR fixes for nRF5x port
2016-07-15 13:10:20 +02:00
Martin Kojtal
ee2f9174ad
Merge pull request #2097 from jamike/STM32F3
...
Target STM32F3
2016-07-15 11:05:02 +01:00
Martin Kojtal
829289bdd9
Merge pull request #2129 from jamike/Fix_for_#2124
...
Fix issue #2124 : IAR no rtos
2016-07-15 10:48:53 +01:00
Martin Kojtal
46057c5d70
Merge pull request #2103 from LMESTM/fix_pwmout_period
...
Fix pwmout period
2016-07-15 10:26:08 +01:00
Martin Kojtal
3d20b10b4d
Merge pull request #2172 from theotherjimmy/enfoce-supported-toolchains
...
[tools-build.py]Enforce supported toolchains
2016-07-15 09:02:14 +01:00
Martin Kojtal
3a2b752169
Merge pull request #2174 from theotherjimmy/return-from-build
...
[tools/build_api] Retrun truthy value on success from build_*
2016-07-15 09:01:31 +01:00
Sam Grove
eca0c69e6c
Merge pull request #2141 from theotherjimmy/project-argparse
...
[Project.py] Make -i and -m optional
2016-07-14 18:00:20 -05:00
Jimmy Brisson
6aa2bbb801
[tools/build_api] Retrun truthy value on success from build_*
...
before:
```
$ python tools/build.py -m NRF51_DK --source . -t GCC_ARM,ARM --build build --silent
[SNIP]
Completed in: (3.39)s
Build skipped:
* GCC_ARM::NRF51_DK
* ARM::NRF51_DK
```
after:
```
$ python tools/build.py -m NRF51_DK --source . -t GCC_ARM,ARM --build build --silent
[SNIP]
Completed in: (3.43)s
Build successes:
* GCC_ARM::NRF51_DK
* ARM::NRF51_DK
```
2016-07-14 13:55:51 -05:00
Jimmy Brisson
24fcb4700b
[tools-build.py]Enforce supported toolchains
...
by skipping unsupported combinations
2016-07-14 13:29:55 -05:00
Andrzej Puzdrowski
7eaef66ba2
rename scater file for nRF52 ARM_5
2016-07-14 17:09:30 +02:00
Andrzej Puzdrowski
5d7c5cf9c1
Corect nRF51 IAR scatre files in order to be compatible with softdevice 130 2.0.0
2016-07-14 17:03:06 +02:00
Andrzej Puzdrowski
7861cefb05
Fix: IAR build for NRF5x produce proper combined intel-hex file.
2016-07-14 16:37:02 +02:00
0xc0170
125754bf31
Exporter uvision - fix build_dir, only windows slashes allowed
...
uvision errors otherwise, not possible to create a path.
2016-07-14 14:21:05 +01:00
Andrzej Puzdrowski
f281ecd4be
Comand IAR toolchain to provide intel-hex as a build product.
2016-07-14 13:01:22 +02:00
Martin Kojtal
8d1d836387
Merge pull request #2164 from SeppoTakalo/master
...
Document the .mbedignore file
2016-07-14 11:14:34 +01:00
Seppo Takalo
a68eadd7cc
Document the .mbedignore file
2016-07-14 13:06:10 +03:00
Martin Kojtal
edd539b499
Merge pull request #2123 from jamike/remove_uARM_sys_cpp
...
[TARGET_STM] : remove sys.cpp not used in TOOLCHAIN_ARM_MICRO
2016-07-14 10:08:41 +01: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
0xc0170
9c3801b7b5
Config - fix - use basetring to check if a target is string
2016-07-13 14:59:48 +01:00
Bogdan Marinescu
d0d023ab58
Merge pull request #2122 from theotherjimmy/colorized-output
...
Colorized the short Warnings/Errors generated by the toolchains
2016-07-13 14:21:15 +03:00
Andrzej Puzdrowski
3c8c82b06c
make posible IAR compilation
...
IAR dosen't support "flexible array member" in c++ compilation
pm_peer_data_local_gatt_db_t::data[] -> pm_peer_data_local_gatt_db_t::data[1]
2016-07-13 13:16:36 +02:00
Vincent Coubard
9745eff74c
Merge commit 'ce830296d0297a8da543c24134bf859710fd7698' into epr_integration
...
Merge the EPR tag and the nordic branch together.
2016-07-13 12:06:02 +01:00
Przemek Wirkus
bba13ddad2
Replace in memap CSV report fields
...
Changes:
* This change impacts #2047
* In code summary columns were shortened and names changed a bit,
see [here](https://github.com/mbedmicro/mbed/pull/2047/files?w=1#diff-f9cb941bde5647a5763e18fc220efc51R410 )
* There is a need to allign memap CSV report fields (summary columns) with what
is in code now. This discrapency may create problems when generating reports
in the future. All columns should have the same name.
* memap CSV sumamry fields names changes:
'total_static_ram' -> 'static_ram'
'allocated_heap' -> 'heap'
'allocated_stack' -> 'stack'
See example of discrepancy:
'total_static_ram' vs 'static_ram'
'allocated_heap' vs 'heap'
'allocated_stack' vs 'stack'
What is in code and presented with prettytable:
+----------------------------------------+--------+-----------+------------+-------+-------+-----------+-------------+
| name | target | toolchain | static_ram | stack | heap | total_ram | total_flash |
+----------------------------------------+--------+-----------+------------+-------+-------+-----------+-------------+
| tests-mbed_drivers-c_strings | K64F | GCC_ARM | 11468 | 32768 | 65540 | 109776 | 74182 |
| tests-mbed_drivers-callback | K64F | GCC_ARM | 11980 | 32768 | 65540 | 110288 | 88406 |
| tests-mbedmicro-rtos-mbed-threads | K64F | GCC_ARM | 11468 | 32768 | 65540 | 109776 | 75918 |
| tests-mbedmicro-rtos-mbed-timer | K64F | GCC_ARM | 10788 | 32768 | 65540 | 109096 | 68534 |
+----------------------------------------+--------+-----------+------------+-------+-------+-----------+-------------+
vs CSV:
```
total_static_ram,allocated_heap,allocated_stack,total_ram,total_flash
10788,65540,32768,109096,67486
```
vs memstats_map.JSON:
```json
[
{
"module": "Fill",
"size": {
".data": 4,
".bss": 2257,
".text": 173
}
},
{
"summary": {
"total_flash": 67486,
"allocated_stack": 32768,
"total_static_ram": 10788,
"total_ram": 109096,
"allocated_heap": 65540
}
}
]
```
2016-07-13 11:25:04 +01:00
jeromecoutant
616494bcc1
Minor updates after ST internal review
2016-07-13 11:35:27 +02:00
Bogdan Marinescu
e9d225bb96
Merge pull request #2151 from mbedmicro/verbose_json_errors
...
More verrbose errors for JSON parsing
2016-07-13 10:29:31 +03:00
Bogdan Marinescu
99dbc8be4c
Merge pull request #2148 from mbedmicro/fix_targets_py
...
Fix targets py
2016-07-12 19:37:50 +03:00
Bogdan Marinescu
33dd3fe8ad
More verrbose errors for JSON parsing
...
This commit adds information about the location of problematic JSON
files when reporting a JSON parsing error.
Before this commit:
```
[ERROR] Expecting property name: line 7 column 9 (char 188)
```
After this commit:
```
Error parsing 'core/mbed_lib.json':
[ERROR] Expecting property name: line 7 column 9 (char 188)
```
2016-07-12 18:52:34 +03:00
jeromecoutant
d32c215f4e
Add new NUCLEO_F207ZG (CMSIS)
...
source: STM32Cube_FW_F2_V1.4.0
- CMSIS v2.1.1 => v2.1.2
- HAL v1.1.2 => v1.1.3
2016-07-12 16:40:30 +02:00
jeromecoutant
4f579ecf7f
Add new NUCLEO_F207ZG (HAL)
2016-07-12 16:38:23 +02:00
jeromecoutant
7ab31e8524
Add new STM32F2 family (HAL)
2016-07-12 16:38:19 +02:00
jeromecoutant
680a1c2c6d
libraries update to add NUCLEO_F207ZG
2016-07-12 16:38:15 +02:00
jeromecoutant
8d3cdfea59
tools update to add NUCLEO_F207ZG
2016-07-12 16:38:11 +02:00
jeromecoutant
9fc0a625bd
rtos update to add NUCLEO_F207ZG
2016-07-12 16:38:07 +02:00
jeromecoutant
cc729709fb
Update targets.json to add NUCLEO_F207ZG
2016-07-12 16:38:02 +02:00
Andrzej Puzdrowski
eaa9d3ba4f
Merge pull request #19 from nvlsianpu/add_nrf52_pwm_rebase
...
Add nrf52 PWM implementation.
2016-07-12 15:31:26 +02:00