Commit Graph

6049 Commits (ea432a8c3a1ed195fcf4df923511ae71697cd443)

Author SHA1 Message Date
Stephen Kyle 8ace7a4283 Added missing pyelftools to setup.py 2016-05-24 10:16:26 +01:00
Stephen Kyle 36624a5ecc Add missing pyelftools to requirements. 2016-05-24 09:39:17 +01:00
Sam Grove 42624d06af Merge pull request #89 from bridadan/test-build-reporting
Test build reporting
2016-05-24 08:18:25 +08:00
Sam Grove 61fb65b7fd Merge pull request #90 from bridadan/split-uploads
Upload test result script update
2016-05-24 08:18:10 +08:00
Brian Daniels 40cc3eef9e Splitting the upload of tests.
Added a parameter '-l' to control how many project runs are uploaded at a
time. The default is 1000. The prevents HTTP errors when the POST request
is too large.
2016-05-23 10:51:52 -05:00
Brian Daniels bc86aa92a0 Adding JUnit build reporting option to test.py 2016-05-23 10:50:22 -05:00
Brian Daniels ec2e4a1d6a Adding default id for the build report if no id is provided 2016-05-23 10:50:21 -05:00
Sam Grove 6c3ce1ea64 Merge pull request #112 from SeppoTakalo/master
Implement the .mbedignore functionality.
2016-05-23 23:30:44 +08:00
Bogdan Marinescu 5e5e1568be Fixed description on 'default_toolchain' in the documentation 2016-05-23 17:37:09 +03:00
Sam Grove 20a80cd0da Merge pull request #109 from adbridge/utest_tests
Port utest unit tests from Yotta / Minar based environment to Morpheus /
2016-05-23 17:01:29 +08:00
Sam Grove 59f5751b6d Merge pull request #113 from theotherjimmy/error-bad-source
added a check for existance of sources
2016-05-20 16:40:52 -05:00
Sam Grove 23d77e4423 Merge pull request #97 from geky/compiler-polyfill
Add useful attributes supported by supported compilers
2016-05-20 16:16:23 -05:00
Sam Grove 02a23c22ad Merge pull request #103 from geky/esp8266-non-blocking
Add non-blocking support to ESP8266Interface
2016-05-20 16:03:40 -05:00
Sam Grove c4ed177930 Merge pull request #68 from 0xc0170/dev_gcc_sizes
gcc - print section sizes
2016-05-20 15:49:28 -05:00
Sam Grove 373fb55441 Merge pull request #114 from c1728p9/iar_vla
Turn on variable length arrays in C for IAR
2016-05-20 15:36:21 -05:00
Sam Grove 3fe60fdf1b Merge pull request #118 from c1728p9/map_file
Create map file when building
2016-05-20 15:35:33 -05:00
Bogdan Marinescu cdfa46c790 Fixes to the new targets code
It is now possible to remove a macro using "_remove" for both macros
without vale (MACRO) and macros with value (MACRO=VALUE) simply by
specifying the macro name.
2016-05-20 17:27:43 +03:00
Bogdan Marinescu 1467a7c6a2 Merge pull request #116 from simonqhughes/master
Resubmission of https://github.com/ARMmbed/mbed-os/pull/92 but with SHA's in .lib files
2016-05-20 14:18:08 +03:00
Simon Hughes d4bd394330 Updating SHA's in configuration-store.lib and flash-abstraction.lib 2016-05-20 10:54:09 +01:00
Russ Butler c4986eed9f Create map file when building
Add compiler flags to ARM, GCC and IAR so map files get created.
2016-05-19 15:52:02 -05:00
Anna Bridge 15e372f6ef Review comment:
Removed superfluous debug prints from harness.cpp.
2016-05-19 16:56:01 +01:00
Anna Bridge 710421d3e8 Code review rework:
Updated include files within tests to use subdirectory/header.h
Updated global variables within tests to be static
Fixed indentation issue.
Renamed Timeout class variables to be more meaningful
Moved definition of utest_trace into stack_trace.cpp
Removed unecessary call to .clear() method in utest_add_to_trace()
Changed UTEST_LOG_FUNCTION macro to UTEST_LOG_FUNCTION();
2016-05-19 16:56:00 +01:00
Anna Bridge 4cd34b1235 Port utest unit tests from Yotta / Minar based environment to Morpheus /
us ticker based environment
2016-05-19 16:51:00 +01:00
Marcus Shawcroft 720e8e77d0 Merge pull request #110 from c1728p9/client_update
Update mbed-client repos
2016-05-19 13:38:18 +01:00
Russ Butler 080f9e2371 Turn on variable length arrays in C for IAR
Turn on support for variable length arrays for the IAR C compiler.
This provides greater compatibility with GCC and ARMCC.

Note: The current version of iccarm at the time of this patch
(V7.40.3.8902) does not support variable length arrays in C++.
2016-05-18 19:58:46 -05:00
Jimmy Brisson f44b8fc9bf added a check for existance of sources
I ran into this earlier today and yesterday:
If you spelled something wrong/forgot to tab complete and had build succesfully before it woild silently and incorrectly build successfully
2016-05-18 17:28:33 -05:00
Seppo Takalo 3d3b0a771f Implement the .mbedignore functionality.
Check the content of `.mbedignore` files and try to match the file
patterns against the directories and source files found while travelling
the directory structure.

Every line in `.mbedignore` file is treated as a unix style glob pattern.
Before matching, the pattern is appended with its directory location, so
it will match only folder on same level, or deeper in the directory structure.

For example:
Directory ./source/test contains .mbedignore with content:
`unittest/*`

Then everything under ./source/test/unittest/ is ignored, including the
unittest folder itself.

Another example:
When .mbedignore file contains just `*`, then everything under the folder
it is located, is ignored. It won't even be added to include paths.
2016-05-19 00:23:37 +03:00
Martin Kojtal c357216217 Add static ram/rom info
After a build has been completed print out ram and rom usage.
The sizes shown are the same as those reported by
arm-none-eabi-size.exe.  The output looks like:

Memory sections sizes:
text                 37244
data                 60
bss                  7800
2016-05-18 15:55:10 -05:00
Russ Butler e920f247bf Update mbed-client repos
Update the mbed-client repos to bring in the latest changes.  With
this PR the mbed-client repos now point to commits mirrored from
the real repo rather than a morpheus fork.
2016-05-18 09:42:59 -05:00
Sam Grove 3c08e7b7b3 Merge pull request #72 from ARMmbed/enable_irq
Restore IRQ status on exit; don't always enable
2016-05-18 08:52:02 -05:00
Kevin Bracey 640116123c Use critical section helper in HAL
Routines using __disable_irq and __enable_irq had the effect of
enabling interrupts if called with interrupts disabled.

Some versions of __disable_irq do not return old status to restore it.

Change to use the critical section helper functions instead.
2016-05-18 14:50:31 +03:00
Marcus Shawcroft c24e3e4178 Merge pull request #102 from adbridge/utest_namespace
Added full namespacing to instances of status_t to prevent namespace
2016-05-18 09:32:25 +01:00
Marcus Shawcroft d29c33e73e Merge pull request #100 from meriac/master
Updated to latest uvisor-mbed-lib version
2016-05-18 09:26:13 +01:00
Sam Grove 7d541a9cbd Merge pull request #104 from theotherjimmy/buffered-serial-printf
removed warning about unsigned to signed cast
2016-05-18 02:02:59 -05:00
Sam Grove f77d9e73ad Merge pull request #95 from screamerbg/master
Build system exclude folders containing .buildignore file
2016-05-18 01:59:56 -05:00
Bogdan Marinescu 7634adbf8c Merge pull request #105 from ARMmbed/revert-92-master
Revert "Adding configuration-store & flash-abstraction components for CFSTORE integration"
2016-05-17 23:21:18 +03:00
Bogdan Marinescu 09913f8859 Revert "Adding configuration-store & flash-abstraction components for CFSTORE integration" 2016-05-17 23:20:39 +03:00
Mihail Stoyanov faa9ce76af Removed fixes intended for different PR 2016-05-17 19:46:42 +01:00
Jimmy Brisson 59ed1bef61 removed warning about unsigned to signed cast 2016-05-17 13:35:24 -05:00
Milosch Meriac c5a5774b60 updated to latest uvisor-mbed-lib version 2016-05-17 18:27:27 +01:00
Anna Bridge 3de4514068 Added full namespacing to instances of status_t to prevent namespace
collisions with the same type in global C namespace.
2016-05-17 17:58:05 +01:00
Bogdan Marinescu a5800ef975 Merge pull request #92 from simonqhughes/master
Adding configuration-store & flash-abstraction components for CFSTORE integration
2016-05-17 18:53:14 +03:00
geky 6ccb19304d Merge pull request #99 from c1728p9/fix_ipv6_addr
Fix SocketAddress constructor to support ipv6
2016-05-17 10:46:23 -05:00
Simon Hughes aebc3f8433 Changing lib files:
- configuration-store.lib points to branch sdh_dev_mx2_20160513 of armmbed/configuration-store.git
- flash-abstraction.lib points to branch master of fork simonqhughes/flash-abstraction.git
2016-05-17 16:25:45 +01:00
Bogdan Marinescu 96b03b92a3 Added documentation for JSON target descriptions 2016-05-17 17:26:49 +03:00
Russ Butler 64cd1f3dfb Fix SocketAddress constructor to support ipv6
Fix typo causing ipv6 addresses in the constructor to fail.
2016-05-17 08:24:10 -05:00
Simon Hughes e812489000 New versions of configuration-store and flash-abstraction lib files restructuring mbedosV3 test into TESTS directories. 2016-05-17 11:10:22 +01:00
Bogdan Marinescu 7c57269dcf 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 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, a separate commit that
documents how to write target definitions will follow later):

- "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.
Unfortunately, since mbed-os only compiles for K64F, I didn't have many
chances to try to compile mbed-os with different targets. I did it for
K64F in different scenarios (pretending that it has hooks, for example),
but there's definitely a lot more to be done there. The threaded blinky
example for K64F compiles and works.

I 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/4caf3a11613dcec834b05d5ab87c65dc

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

F51_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 old
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 11:34:02 +03:00
Christopher Haster 4f8e8f5d75 Add non-blocking support to ESP8266Interface
requires changes in the following
- BufferedSerial
- ESP8266
- ESP8266Interface
2016-05-16 20:40:57 -05:00
Christopher Haster 018e2571e6 Added other attributes on supported compilers
tested on GCC, Clang, online compiler, and IAR

attributes
- PACK
- ALIGN
- UNUSED
- WEAK
- PURE
- FORCEINLINE
- NORETURN
- UNREACHABLE
- DEPRECATED
2016-05-16 18:59:23 -05:00