This commit integrates configuration data with exporters, in a similar
way to the integration in build_project or build_library in
tools/build_api.py.
Only a very simple test was done for this PR: define a configuration
parameter in the mbed_app.json of a blinky example, export it to uvision
and check if the corresponding macro made it into the project file. If
there are better tests to be performed, please let me know.
and armcc.
1. Remove use of printf from all code that may be directly or indirectly
invoked from an interrupt context,
2. For occasions where a printf is required and the code in question may
run both inside and outside an interrupt context, add a new interrupt safe
version of printf, utest_printf(). This function will only pass its
arguments down to printf if interrupts are not disabled.
3. In harness.cpp, is_busy() , fix a bug where the function can return
leaving interrupts disabled.
4. In unity_handler.cpp add a new function, utest_safe_putc(), This is
used to override the default putc() function used by Unity. This version
checks that the current code does not have interrupts disabled prior to
outputting the character to the serial port. This overriding is enabled by
adding unity_config.h to the unity code and redefining UNITY_OUTPUT_CHAR
to utest_safe_putc(). The new config file is included in the build by
adding the define UNITY_INCLUDE_CONFIG_H. The Unity changes are submitted
under a separate PR. This change ensures that any Unity ASSERTS executed from
within interrupt context are safe.
from an interrupt context. Where required add flags to functions and check
the values in the case teardowns. This allows validation that the case
callback was invoked without the need for an ASSERT or printf directly in
the callback.
In cases where a printf is still required in a test case but it is unclear
whether the code may or may not get called from interrupt context, a new
printf alternative, utest_printf() should be used instead. This just
checks whether the code is executing in interrupt context and only passes
its arguments to printf if not.
Connect semaphore was being constructed and consuming RAM even if
Nanostack isn't in use. Avoid this by moving it into the class, where it
should be anyway.
There was an issue when compiling with GCC_ARM, the tools would
print the incorrect file where the error was present. This modifies the
regular expression and matching logic used to find the error. This was
tested with the 4.9 q2 release of GCC ARM.
Fix locking - can't lock until the system is initialised. So initialise
on first entry to connect().
Run randLIB initialisation after starting the radio driver - means you
get MAC and RF noise out.