Go to file
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
docs Merge pull request #1984 from mbedmicro/config_system_docs 2016-06-30 18:00:22 +01:00
features/FEATURE_UVISOR uVisor: Add a quick-start guide to use uVisor in mbed OS 2016-07-06 14:54:43 +01:00
hal Merge pull request #2029 from adustm/b_fix_MBED_16_STM32F4 2016-07-11 11:07:40 +01:00
libraries [STM32F4xx][NUCLEO_F429ZI] Add on for NUCLEO_F429ZI export and tests 2016-07-04 15:20:12 +02:00
rtos Modify the timing at which mbed_main() is called in IAR compiler. 2016-07-07 21:58:01 +09:00
tools Exporters - progen TARGETS lazy evaluated 2016-07-15 14:02:57 +01:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore Move private_settings.py to root mbed_settings.py. Various updates to reflect the path changes 2016-06-09 22:24:05 +01:00
.travis.yml Adding config tests to travis script 2016-06-21 19:09:15 -05:00
CONTRIBUTING.md Mentioned the Contributor Agreement in Contributing.md 2015-04-16 11:47:51 -04:00
LICENSE Add Apache v2 LICENSE file 2013-08-06 12:05:04 +01:00
MANIFEST.in Further changes to reflect workspace_tools to tools rename 2016-06-09 21:40:54 +01:00
README.md update Nucleo-F410RB 2016-06-14 22:09:21 +02:00
mbed_lib.json Added default value for MBED_CONF_CORE_STDIO_CONVERT_NEWLINES 2016-06-17 03:54:39 -05:00
requirements.txt adding project_generator_definitions to setup.py and requirements.txt 2016-07-11 10:55:02 +02:00
setup.py adding project_generator_definitions to setup.py and requirements.txt 2016-07-11 10:55:02 +02:00

README.md

mbed SDK

Build Status

The mbed Software Development Kit (SDK) is a C/C++ microcontroller software platform relied upon by tens of thousands of developers to build projects fast.

The SDK is licensed under the permissive Apache 2.0 licence, so you can use it in both commercial and personal projects with confidence.

The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.

Documentation

Supported Microcontrollers and Boards

View all on the mbed Platforms page.

NXP:

Freescale:

STMicroelectronics:

Nordic:

Renesas:

Silicon Labs:

Atmel:

Supported Toolchains and IDEs

The current mbed exporters scripts (IDE support) will be replaced by Project generator (=progen). Any new IDEs support, should be implemented using progen API - add IDE to progen, use progen API to generate a mbed project.

API Documentation

Community

For discussing the development of the mbed SDK itself (Addition/support of microcontrollers/toolchains, build and test system, Hardware Abstraction Layer API, etc) please join our mbed-devel mailing list.

For every topic regarding the use of the mbed SDK, rather than its development, please post on the mbed.org forum, or the mbed.org Q&A.

For reporting issues in the mbed libraries please open a ticket on the issue tracker of the relevant mbed official library.

Setup

Skip any step where a compatible tool already exists

  1. Install Python 2.7.9 or above and make sure it's added to path
  2. Install Git and make sure it's added to path
  3. Install virtualenv in python
> git clone https://github.com/mbedmicro/mbed
> pip install virtualenv
> virtualenv venv
> 

Develop

  1. Update dependencies and start virtual environment. This should be done everytime you pull new changes
> "venv/Scripts/activate"
> pip install -r requirements.txt
> cd tools
> ... do things ...
> "venv/Scripts/deactivate"