Skip to content

Conversation

@adbridge
Copy link
Contributor

No description provided.

geky and others added 30 commits November 18, 2016 12:17
Added MBED_STATIC_ASSERT for compile-time assertions, results in
compile-time error if condition is false

The assertion acts as a declaration that can be placed at file scope, in
a code block (except after a label), or as a member of
a C++ class/struct/union.

Unfortunately, there does not exist a backup construct for use in
C class/struct/union contexts. An alternative macro,
MBED_STRUCT_STATIC_ASSERT provides this ability to avoid disabling
static assertions for the majority of mbed-supported C compilers.
When the floating-point calculation is executed into the processing which is called from IRQ handlers, VFP register is overwritten.
Therefore, we fixed the issue. we added the process to execute the saving (Push) and the returning (Pop) of VFP register in before and after the appropriate processing.
….30} in PinNames.h

Change-Id: I8d7ff6fe5ff5377f7ec8d3bc790dde0b0627f072
Change-Id: I0e080a30717ee0bcfa2db3f134acb08be851d767
Resolved issue: #2713

Removed pins p{0..30} definitions
Defined pins P{0..20} as per micro:bit DAL's mappings:
(https://github.com/lancaster-university/microbit-dal/blob/master/inc/drivers/MicroBitPin.h)

Developers can now use the pin names as they appear on the mbed micro:bit pinout
in https://developer.mbed.org/platforms/Microbit/#pinout

Change-Id: I72b81dbe23b11d5ef215583adb211f364b4a5e91
The value of `start` is taken from before that wait call, so the value
of `us` shouldn't be changed
Allow compile-time tests on the version of mbed-os to cope with
e.g. API changes across versions.

To distinguish between mbed OS 2 and mbed OS 5, we use the
MBED_CONF_RTOS_PRESENT macro.

Note: mbed OS 2 versioning is 2.0.MBED_LIBRARY_VERSION
This adds an example clone and deploy step that allows you to modify
each top level repository before pulling in the rest of the example's
dependencies. This allows us to not pull in a copy of mbed-os for each
example in CI and instead symbolic link the already cloned copy, saving
valuable time and disk space
NUM_TX_FRAG should be used instead of NUM_RX_FRAG
- test_dns_query
- test_dns_query_pref
- test_dns_literal
- test_dns_literal_pref
The non-irq timer functionality provided by the RtosTimer is now
duplicated by the EventQueue. See RtosTimer.h for more info.
1. With GCC_ARM and uARM, some greentea tests fail due to no support for this.
2. Bind UART H/W module to correct serial S/W object for interrupt.
LMESTM and others added 18 commits November 18, 2016 12:18
With this new implementation, the slave use the Interrupt
to be notified of a request from master, instead of
accessing to registers continuously.

This has 2 main advantages:
- this shall improve performances overall and allows for sleep
time in the future
- this also removes some direct registers access from this
layer of code and makes it more generic among families
The timeout values are based on for loops and therefore should depend
on the core frequency and the I2C interface frequency.

This patch introduces this computation and base the timeout on the time
it should take to send a byte over the I2C interface. When sending a
number of bytes, this value can also be used.

In the loops, the timeout should also be decreased before the while
condition so that its value is 0 in case the timeout elapsed and this
can be treated as an error.
This is to avoid an IP / bus deadlock.

This requires to store scl and sda in order to call the init function.
With this new implementation, as in slave implementaiton, we use the
interrupts instead of accessing to registers continuously.

This has 2 main advantages:
- this shall improve performances overall and allows for sleep
time in the future
- this also removes some direct registers access from this
layer of code and makes it more generic among families
in case of 2 consecutives calls to HAL_I2C_Master_Sequential_Receive_IT
with the Xfer mode I2C_FIRST_AND_LAST_FRAME, the second trasnfer does
not start at all.

It seems this is because the previous state is maintained as I2C_STATE_MASTER_BUSY_RX
and therefore the START condition will not be generated
The cbmaster_done function is a callback which will be called from
the asynch I2C interrupt handler. Calling to printf from this context
sometimes lead to missing interrupts on the slave side. This was at least
encountered on STM32F3 MCUs.
As reported during review, this was not understandable as it is.
the get_i2c_obj allows to get a pointer to i2c_s struct from the
handle pointer. This therefore makes a hard-coded assumption
about the struct itself
The type deduction for the callback constructors was to strict and
prevented implicit casts for the context pointer stored internally.

As noted by @pan-, relaxing the contraints on the templated
parameters allows C++ to correctly infer implicit casts such as
conversions between child and parent classes when inheritance is
involved.

As an additional benefit, this may help the user experience by
defering invalid type errors to when the types are expanded,
limiting the number of error messages presented to users.
Adopting relaxed type-deduction in bound functions better aligns with
the same overloads for member functions, and provides an alternative
solution for the void pointer cast issue, which removes a large amount
of cruft.
Including HAL and CMSIS udpate
Enable the interrupt for the OS tick when the OS tick is enabled rather than
all the time. Otherwise, the interrupt will be triggered bu never handled.
In "core_caFunc.c" Renesas added the following API of IAR compiler version.
- __v7_clean_dcache_all()
- __v7_clean_inv_dcache_all()
@adbridge
Copy link
Contributor Author

/morph test

@adbridge
Copy link
Contributor Author

adbridge commented Nov 18, 2016

continuous-integration/jenkins/branch and
continuous-integration/jenkins/pr-head both failing with:
[8023] 13:04:42.805 | TC MainThread: Test Case fails because of: Resource instance has no attribute 'is_power_switchable'

@mbed-bot
Copy link

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 1121

All builds and test passed!

@adbridge
Copy link
Contributor Author

adbridge commented Nov 18, 2016

mbed-os 5 has passed Camb/Austin ci. Has failed Oulu ci.
mbed-os-2 results generally look good :
One new regression on LPC1768 -

HOST: Property 'description' = 'Timeout Int us'
HOST: Property 'test_id' = 'MBED_24'
HOST: Start test...
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 0.41 sec (0.59) [FAIL]
* in 1.61 sec (0.61) [FAIL]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
* in 1.01 sec (0.01) [OK]
Consecutive OK timer reads: 3
Completed in 13.13 sec

But improved results for K22F, and NUCLEO_L053R8 which were all green this time (previous release had failures here)
Thus this looks good to me
@sg- @0xc0170 please confirm acceptance to merge

@adbridge
Copy link
Contributor Author

Let's give it a longer test over the weekend!
/morph test-nightly

@0xc0170
Copy link
Contributor

0xc0170 commented Nov 18, 2016

LGTM

@mbed-bot
Copy link

Result: FAILURE

Your command has finished executing! Here's what you wrote!

/morph test-nightly

Output

mbed Build Number: 1123

Build failed!

@bridadan
Copy link
Contributor

Sorry for the abort, just making some pretty awesome upgrades right now :) I'll restart it when everything is done!

@bridadan
Copy link
Contributor

/morph test-nightly

@mbed-bot
Copy link

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test-nightly

Output

mbed Build Number: 1128

All builds and test passed!

@adbridge adbridge merged commit 342e565 into mbed-os-5.2 Nov 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.