Commit Graph

142 Commits (d1d6bf51b387ef39f97320b2febd5d79231682ba)

Author SHA1 Message Date
sarahmarshy cf4ebf56c2 [Exporter docs] index.json update instructions 2016-12-01 11:09:51 +08:00
Sarah Marsh 406ddf0674 Exporter documentation 2016-11-03 11:53:23 -05:00
Sam Grove 4e1aea4fc9 Merge pull request #2958 from bridadan/mbed-app-config-testing
Allowing mbed_app.json files to be discovered for tests.
2016-11-03 02:11:38 -05:00
Russ Butler 0d51f18f02 New build profile and docs
Add a small build profile and general docs for build profiles.
2016-10-18 09:23:01 -05:00
Brian Daniels f3d20141a3 Allowing mbed_app.json files to be discovered for tests.
Before, mbed_app.json files were explicitly ignored when building tests.
This was mostly because you could have multiple mbed_app.json files in the
tree (for instance, in test case folders) and the behavior would be
undefined. Now the tools explicitly ensure that there aren't multiple
mbed_app.json files in your source files. So auto discovery of
mbed_app.json for testing is being reintroduced.
2016-10-06 17:40:25 -05:00
Sarah Marsh 9a02bfb7a3 Additional device names. mbed_targets.md update 2016-10-04 14:13:36 -05:00
andreas.larsson 1d3c63d9bb Changed name for the target UBLOX_C029 to UBLOX_EVK_ODIN_W2 2016-10-03 12:10:50 +02:00
Sam Grove 20756cbf77 Merge pull request #2860 from ARMmbed/event_loop_mbed_events_new
Event loop with mbed-events
2016-09-30 15:24:24 -05:00
Bogdan Marinescu 0abd141bf9 A few improvements to the events documentation 2016-09-29 20:48:21 +03:00
Bogdan Marinescu 8545bf1212 Added initial documentation for the event loop 2016-09-29 19:47:32 +03:00
Jimmy Brisson c86ad6646d Add documentation of the Toolchain Profile system 2016-09-29 10:20:05 -05:00
Brian Daniels aeca796641 Fixing constant cleaning when compiling tests
This addresses the issue where building tests via test.py always triggered
a clean build. This is because the mbed_config.h file was being deleted from
the shared OS build to ensure that the correct config was always being
used. However, this contanstly triggered a rebuild of the OS since the
config file was not present.

Due to the shared build, having multiple app configurations that could
override the OS settings is not possible. For this reason, we now ignore
app config files unless explicitly set via the command line option
'--app-config'. Though there will now be two mbed_config.h files in the
include path of the build, it shouldn't matter since the contents will be
the same.
2016-09-22 08:30:21 -04:00
Bogdan Marinescu d7899b4b2b Removed custom targets from config system
Custom targets were the origin of a number of issues with the mbed
tools, so it was decided that they need to be removed. This PR does just
that (and moves the "custom_targets" part of the config system tests
into a separate, per-test "targets.json" file to preserve the test
functionality).
2016-09-13 15:54:44 +03:00
kclin 4081f506ac Fix docs/BUILDING.md error command issue 2016-08-07 00:01:19 +08:00
Brian Daniels ebd3e0b602 Fixing typos, grammar, and general English in mbed OS 5 testing doc 2016-08-04 11:24:30 -05:00
Brian Daniels 78b9c39f9d Adding docs for the testing process for mbed OS 5 2016-08-03 18:00:42 -05:00
Bogdan Marinescu 4d8cbdc48c Merge pull request #2279 from geky/docs-ca
[docs] Added documentation over the cumulative attributes
2016-07-28 13:43:47 +03:00
Christopher Haster 38cd901b9d [docs] Added documentation over the cumulative attributes 2016-07-27 17:40:51 -05:00
Bogdan Marinescu a43919eafa Documentation updates for the configuration system
The configuration system uses `mbed_config.h` to export configuration
data, but when this change was made, the documentation was not properly
updated. This commit updates the documentation with the correct
behaviour of the configuration system.
2016-07-27 22:47:38 +03:00
Sam Grove 542fcca670 Merge pull request #2137 from sg-/operators
Remove macro for operators. Enable these as default behavior
2016-07-22 19:01:24 -05:00
Seppo Takalo a68eadd7cc Document the .mbedignore file 2016-07-14 13:06:10 +03:00
Sam Grove 254ae0e109 Remove macro for operators. Enable these as default behavior 2016-07-10 13:47:13 -05:00
Mihail Stoyanov b70d901ef9 Merge pull request #1984 from mbedmicro/config_system_docs
Added documentation for the configuration system
2016-06-30 18:00:22 +01:00
Marcelo Salazar 86aea775c4 memap doc minor fixes 2016-06-29 08:28:33 +01:00
Marcelo Salazar 2594c4946b Minor tweaks 2016-06-27 16:59:00 +01:00
Marcelo Salazar f1dd7c5fbd Adding memap documentation 2016-06-27 16:45:29 +01:00
Bogdan Marinescu 3bc7d40a74 Added documentation for the configuration system 2016-06-22 11:16:57 +03:00
Mihail Stoyanov 87a978c4e8 Move private_settings.py to root mbed_settings.py. Various updates to reflect the path changes 2016-06-09 22:24:05 +01:00
Mihail Stoyanov 42c62abed1 Further changes to reflect workspace_tools to tools rename 2016-06-09 21:40:54 +01:00
Irit Arkin 9e32456929 Adding a blank line to commit
Because the encoding is wrong, and we can't build the API docs like that. GitHub said a commit will fix the encoding, so I'm comitting.
2016-06-09 10:19:08 +01:00
Jimmy Brisson ff11e7f022 updated readme to include a basic description of features. 2016-06-03 14:08:50 -05:00
Bogdan Marinescu b53c7eb128 Fixed description on 'default_toolchain' in the documentation 2016-05-23 17:30:20 +03:00
Bogdan Marinescu bc063a3903 Moved target definitions to JSON format
(long commit message ahead. Sorry about that, it can't be helped.)

This commit changs targets definition from Python to JSON format, as
part of the configuration mechanism implementation. There is a new file
under workspace_tools/ called "targets.json" which contains the target
definitions. "targets.py" remains, but becomes a wrapper on top of
"targets.json", with the same interface as before. This has the
advantage of not requiring code changes outside "targets.py".

Most of the JSON definitions of targets were automatically generated by a
script (available upon request since it doesn't make a lot of sense to
include it here), only those targets that had more than one parent in
the Python implementation were converted by hand. The target definitions
should be pretty self-explanatory. A number of things are different in
the JSON implementation (this is just a summary, check docs/mbed_targets.md
(also part of this PR) for a more complete description):

- "program_cycle_s" is now a value (as opposed to a function in the
Python implementation), since it only returned a number in all the
Python target implementations. The main definition that actually contains
some code (in class "Target") remains in target.py
- array values in "macros" and "extra_labels" can be modified
dynamically. Values can be added using "macros_add" and
"extra_labels_add" or removed using "macros_remove" and
"extra_labels_remove". This mechanism is available for all attributes
with a list type, but it's currently enabled only for "macros" and
"extra_labels" to keep things simple.
- "init_hooks"/"binary_hook" are now implemented in terms of a single
JSON key valled "post_binary_hook". The corresponding code is also in
"targets.py", under the various TargetCode classes (see for example
LPC4088Code in targets.py).

Just like in the Python implementation, a target can inherit from zero,
one or more targets. The resolution order for the target's attributes
follows the one used by the Python code (I used
http://makina-corpus.com/blog/metier/2014/python-tutorial-understanding-python-mro-class-search-path
as a reference for the implementation of resolution order).

This is obviously a very dangerous commit, since it affects all targets.
I tested compilation for a number of targets (K64F, LPC1768, NRF51822)
but there's definitely a lot more to be done in terms of testing.

I also tried to test in a different way: I wrote a script that imports the
old (Python) and the new (JSON) implementations and verifies that the
attributes in the old implementations exist and have the same values
in the new implementations (it also verifies that the attribute
resolution order is the same in the two implementations). If you're
interested, the script is here:

https://gist.github.com/bogdanm/c9d8cf34214109a4b9079befed6b3c0c

And the results of running the script are below (note that the script
outputs only the target names that were found to be problematic):

NRF51_MICROBIT_BOOT:
    Resolution order is different in old and new
        old: ['NRF51_MICROBIT_BOOT', 'MCU_NRF51_16K_BOOT_S110', 'MCU_NRF51_16K_BOOT_BASE', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target', 'MCU_NRF51_S110']
        new: ['NRF51_MICROBIT_BOOT', 'MCU_NRF51_16K_BOOT_S110', 'MCU_NRF51_S110', 'MCU_NRF51_16K_BOOT_BASE', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target']
    'extra_labels' has different values in old and new
        old: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NORDIC_16K', 'MCU_NRF51_16K', 'MCU_NRF51_16K_BOOT', 'MCU_NRF51_16K_S110', 'NRF51_MICROBIT']
        new: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NORDIC_16K', 'MCU_NRF51_16K', 'MCU_NRF51_16K_S110', 'MCU_NRF51_16K_BOOT', 'NRF51_MICROBIT']
    'macros' has different values in old and new
        old: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_MCU_NRF51_16K_BOOT', 'TARGET_OTA_ENABLED', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_NRF51_MICROBIT', 'TARGET_NRF_LFCLK_RC']
        new: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_MCU_NRF51_16K_BOOT', 'TARGET_OTA_ENABLED', 'TARGET_NRF51_MICROBIT', 'TARGET_NRF_LFCLK_RC']
NRF51_MICROBIT:
    Resolution order is different in old and new
        old: ['NRF51_MICROBIT', 'MCU_NRF51_16K_S110', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target', 'MCU_NRF51_S110']
        new: ['NRF51_MICROBIT', 'MCU_NRF51_16K_S110', 'MCU_NRF51_S110', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target']
    'extra_labels' has different values in old and new
        old: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NORDIC_16K', 'MCU_NRF51_16K', 'MCU_NRF51_16K_S110']
        new: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NRF51_16K_S110', 'MCU_NORDIC_16K', 'MCU_NRF51_16K']
    'macros' has different values in old and new
        old: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_NRF_LFCLK_RC']
        new: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_NRF_LFCLK_RC']
NRF51_MICROBIT_OTA:
    Resolution order is different in old and new
        old: ['NRF51_MICROBIT_OTA', 'MCU_NRF51_16K_OTA_S110', 'MCU_NRF51_16K_OTA_BASE', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target', 'MCU_NRF51_S110']
        new: ['NRF51_MICROBIT_OTA', 'MCU_NRF51_16K_OTA_S110', 'MCU_NRF51_S110', 'MCU_NRF51_16K_OTA_BASE', 'MCU_NRF51_16K_BASE', 'MCU_NRF51', 'Target']
    'extra_labels' has different values in old and new
        old: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NORDIC_16K', 'MCU_NRF51_16K', 'MCU_NRF51_16K_OTA', 'MCU_NRF51_16K_S110', 'NRF51_MICROBIT']
        new: ['NORDIC', 'MCU_NRF51', 'MCU_NRF51822', 'MCU_NORDIC_16K', 'MCU_NRF51_16K', 'MCU_NRF51_16K_S110', 'MCU_NRF51_16K_OTA', 'NRF51_MICROBIT']
    'macros' has different values in old and new
        old: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_MCU_NRF51_16K_OTA', 'TARGET_OTA_ENABLED', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_NRF51_MICROBIT', 'TARGET_NRF_LFCLK_RC']
        new: ['NRF51', 'TARGET_NRF51822', 'TARGET_MCU_NORDIC_16K', 'TARGET_MCU_NRF51_16K', 'TARGET_MCU_NRF51_16K_S110', 'TARGET_MCU_NRF51_16K_OTA', 'TARGET_OTA_ENABLED', 'TARGET_NRF51_MICROBIT', 'TARGET_NRF_LFCLK_RC']
NOT OK: ['NRF51_MICROBIT', 'NRF51_MICROBIT_BOOT', 'NRF51_MICROBIT_OTA']

The reasons for the above output are subtle and related to the
extremely weird way in which we defined target data in the Python
implementation: we used both class attributes and instance attributes.
This can complicate resolution order quite a bit and those two levels
don't exist in JSON: there's only one attribute type (equivalent to
Python's instance attributes). To make that work, I had to change the
inheritance order of the above targets (that use multiple inheritance)
which in turn changed the order of some macros and extra_labels (and of
course the resolution order). No harm done: the values are the same,
only their ordering is different. I don't believe this causes any
problems for 'extra_labels' and 'macros'.

This method of testing has its limitations though; in particular, it
can't test the hooks. I'm opened to ideas about how to test this better,
but I think that we need to remember that this commit might break some
targets and keep an eye out for "weird errors" in the future.
2016-05-17 21:42:55 +03:00
sg- c7f84c86f7 Remove all references and use of code warrior GCC in docs, build and
exporters¦
2016-02-11 01:07:58 -06:00
sg- 018cdb928a Remove all references and use of code sourcery GCC in docs, build and export scripts 2016-02-10 23:27:33 -06:00
Nabil Bendafi a89d27229c Fix typo in documentation 2015-09-15 20:52:44 +02:00
Nabil Bendafi 88029f4c02 Fix typo in documentation 2015-09-10 20:47:00 +02:00
Przemek Wirkus 2f184eb457 Add note how to use requirements.txt
We want to use (apparently) requirements.txt to store mbed's Python package dependencies.
Users can use this file with pip to install those requirements.
2015-08-20 14:28:58 +01:00
Yoong Hor Meng 14d40041c4 Minor spelling correction 2015-05-13 10:30:34 +08:00
Przemek Wirkus 4dbafc757d Update BUILDING.md 2015-03-10 20:56:32 +00:00
Przemek Wirkus 8e454c3b1e Added setuptools instructions as Sam G. proposed 2015-03-10 20:53:12 +00:00
Przemek Wirkus d6fde524d1 Initial doc structure added
Still documentation is not 100% updated

Update TESTING.md

Update TESTING.md

Update BUILDING.md

Update BUILDING.md

Update CONTRIBUTING.md

Update TESTING.md

Update TESTING.md

Update CONTRIBUTING.md

Update CONTRIBUTING.md
2015-03-10 16:25:08 +00:00