Skip to content

Conversation

@VenkatZilogic
Copy link

Description

Pull request type

[ ] Fix
[ ] Refactor
[ ] Target update
[ ] Feature
[ ] Breaking change

adbridge and others added 30 commits October 21, 2016 17:43
Update MBED_LIBRARY_VERSION to 128
Changes from 5.1 to 5.2
Signed-off-by: Mahadevan Mahesh <[email protected]>
… than setting the clock mode.

Signed-off-by: Mahadevan Mahesh <[email protected]>
…HAL drivers after updates to the mbed startup code

Signed-off-by: Mahadevan Mahesh <[email protected]>
# Conflicts:
#	hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/serial_api.c
#	hal/targets/hal/TARGET_NORDIC/TARGET_NRF5/us_ticker.c
…uce size of no-init section to precisely fit to size of vector in RAM.
…" includes from "target cmsis" sources move form the path target/cmsis... and rename dispatch_IRQn_handler.c to the path target/.. and beter name.
…1822 targets. Applied proper changes to ARM5's scatter files of nRF5 regular targets. Improvement: Remove hardcoding of FLASH vector address, now FLASH vector address is imported form linker to C code.

Signed-off-by: Andrzej Puzdrowski <[email protected]>
…ve to one IAR startup code for both varaint of RAM (16 KB & 32 KB).
…y rebase). ad applied them to to regular targets. Fix a typo and polish nordic's code.
An active IRQ from the FPU can prevent the micro to go to sleep, even if this
IRQ is not enabled and not implemented. As a workaround, the FPU IRQ is cleared
before enterring sleep.
bridadan and others added 28 commits November 18, 2016 12:18
Before, the get_config function was checking the equality of a set and a
list. However the list's equality depends on order, so this change casts
it to set to prevent an infinite loop.
Initially these assertions were added to protected simultaneous
send/recv from the same socket when similarly purposed mutexes were
removed.

However, simultaneous send/recv can still be useful for UDP if the
payload is guaranteed to be less than the MTU across the entire
connection.
Instead of direct registers access, let's use HAL API.
This makes the code more generic accross STM32 families.
so that it can be used as well in sync mode
No need to store the init status of each IP.
Init can be called again in case we try to recover.
With this commit we define I2C irq handlers that can be used by the driver
in sync mode. This also provides a mecanism for enabling and/or disabling
these handlers

Those handlers will be superseded by MBED ones in case of async mode usage.
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()
Release candidate for mbed-os-5.2.3
MBED_PATCH_VERSION should have been updated to 3 for this release.
@0xc0170
Copy link
Contributor

0xc0170 commented Aug 10, 2018

I believe this was unintentional pull request . I'll close this one.

@0xc0170 0xc0170 closed this Aug 10, 2018
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.