Commit Graph

6 Commits (65b79502020d0d364cc90b32c86b254b53ba6cd9)

Author SHA1 Message Date
Martin Kojtal 4e0d07d50f
Merge pull request #12897 from kjbracey-arm/tickeropt
Optimise mbed_ticker_api.c
2020-11-30 16:15:37 +00:00
rogeryou 48524f25ae add opsi driver 2020-09-16 11:27:23 +08:00
Kevin Bracey 65bc41a96b Optimise mbed_ticker_api.c
The generic code in mbed_ticker_api.c uses run-time polymorphism to
handle different tickers, and has generic run-time calculations for
different ticker widths and frequencies, with a single special-case for
1MHz.

Extend the run-time special casing to handle any conversion cases where
either the multiply or divide can be done as a shift. This is a speed
optimisation for certain platforms.

Add a new option `target.custom-tickers`. If turned off, it promises
that only USTICKER and LPTICKER devices will be used. This then permits
elimination and/or simplification of runtime calculations, saving size
and speed. If either both USTICKER and LPTICKER have the same width, or
same period numerator or denominator, or only one of them exists, then
operations can be hard-coded. This is a significant ROM space saving,
and a minor speed and RAM saving.

We get to optimise all the calculations, but the run-time polymorphism
is retained even if there is only one ticker, as it doesn't
significantly affect code size versus direct calls, and the existence of
lp_ticker_wrapper and various us_ticker optimisations requires it, even
if only LPTICKER is available.
2020-09-14 13:25:10 +03:00
Kevin Bracey 6423633122 Add documentation for LP_TICKER defines
They're now potentially useful, so document them as per the US_TICKER
defines.
2020-09-14 13:25:08 +03:00
talorion e55421aaa4 pwmout - add read methods for period and pulsewidth 2020-09-02 13:39:08 +02:00
Rajkumar Kanagaraj 993ed3b975 Refactor hal directory 2020-08-25 14:57:07 +01:00