Commit Graph

144 Commits (ec4c33ca8057da3169923e98bf5daa6663a14e50)

Author SHA1 Message Date
Nir Sonnenschein ec4c33ca80
Merge pull request #7735 from deepikabhavnani/crc_lfs
Optimized CRC implementation - (32-bit ANSI polynomial)
2018-08-14 19:45:03 +03:00
deepikabhavnani f593555cbb Guard hardware related implementation into DEVICE_CRC 2018-08-09 17:28:19 -05:00
deepikabhavnani 531a83ebd2 Add optimized implementation of 32-bit ANSI CRC 2018-08-09 17:27:07 -05:00
David Saada 535b196ab2 FlashIAP: Add a ROM end macro 2018-08-06 15:54:10 +03:00
Kevin Bracey 0f98338153 Improve efficiency and formatting of ITM output
SerialWireOutput was outputting 1 character per 32-bit write to the
ITM stimulus port. This is inefficient, and causes processing problems
with some viewers due to them receiving 3 NUL bytes between each
desired character.

Rework to allow us to be more efficient, and eliminate those NUL bytes:

* Retain existing mbed_itm_send() and clarify it's a single 32-bit write.
* Add new mbed_itm_send_block() that is appropriate for sending
  character data, and modify SerialWireOutput to use it.
* Move "wait for FIFO ready" check to before the write, rather than
  after.

One minor correction - FIFOREADY is a single bit of the register read.
Don't interpret reserved bits.
2018-07-04 10:16:28 +03:00
Martin Kojtal 700e6df834 drivers: astyle update 2018-06-29 10:36:36 +01:00
deepikabhavnani e19f6ac4dd Suppress warning for IAR compiler as well 2018-06-19 11:36:42 -05:00
ccli8 f51d036ecd Fix mbed_crc_ctor is missing in some MbedCRC constructor
This error leaves MbedCRC/_mode uninitialized and may cause mbed-os-tests-mbed_drivers-crc/
Test SD CRC polynomials failed.
2018-06-01 09:49:33 +08:00
Bartek Szatkowski 6e9f04bf2f Rename DEVICE_LOWPOWERTIMER to DEVICE_LPTICKER
That's to match DEVICE_USTICKER.
2018-05-25 12:20:09 -05:00
Steven Cartmell d53ffb7022 HAL CRC: Fix inverted CRC mode selection 2018-05-24 17:51:49 +01:00
Steven Cartmell 8e14b5977b HAL CRC: Add bit width parameter to crc_config_t 2018-05-24 17:51:49 +01:00
Steven Cartmell e1ca2b32fc Add CRC configuration options to HAL API 2018-05-24 17:51:49 +01:00
Steven Cartmell 5847f0c975 Fix CRC class coding conventions 2018-05-24 17:51:48 +01:00
Steven Cartmell e0d98bfe2c Adapt MbedCRC class to support Hardware CRC
- Move CRC polynomial enum into HAL layer, so it's accessible from platform
  implementations

- Add enum to CRC class to indicate which mode the CRC class should use:
  HARDWARE, TABLE, or BITWISE

- Add calls to HAL Hardware CRC API to each of the compute functions when the
  class is in HARDWARE mode.

- Add missing constructor call to template constructor, and remove const from
  delegating constructor.
2018-05-24 17:50:12 +01:00
Cruz Monrreal a301db5d43
Merge pull request #6791 from kjbracey-arm/fcntl
Add POSIX fcntl flag support
2018-05-21 17:17:02 -05:00
David Saada 9cdecf4d5a FlashIAP: Fix problem of programming source buffer not aligned to uint32_t 2018-05-10 12:00:29 +03:00
Kevin Bracey 59f49e2b96 Add `is_blocking()` method to FileHandle
There was no way to check current blocking state, so no way to modify
and restore status.

Also have default FileHandle::set_blocking() used by real files return a
correct error code when asked for non-blocking, and success when asked
for blocking.

These were minor omissions that are required to implement POSIX fcntl
properly.

fixup! Add `is_blocking()` method to FileHandle
2018-05-03 15:38:33 +03:00
Paul Thompson d6c5f16fd3 Eliminate complier warning and remove superfluous call to empty()
Appears when complied with -O3 optimization level

Compile: UARTSerial.cpp
../drivers/UARTSerial.cpp: In member function 'void mbed::UARTSerial::tx_irq()':
../drivers/UARTSerial.cpp:314:31: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]
         SerialBase::_base_putc(data);
2018-04-16 07:23:47 -07:00
Martin Kojtal 501953b1a4
Merge pull request #6442 from deepikabhavnani/crc_test
Add test for MbedCRC.h
2018-04-06 10:46:52 +02:00
Martin Kojtal 3328ecd92a
Merge pull request #6531 from SenRamakri/sen_DeprecatedFixes
Fix doxygen comments to reflect the deprecated functions
2018-04-06 10:06:31 +02:00
Russ Butler 1b58e58e1a Fix deep sleep locking for Timeout class
Detach in the Timeout::handler so deep sleep is properly unlocked.
2018-04-03 15:46:10 -05:00
Senthil Ramakrishnan 194b89cce6 Fix doxygen comments to reflect the deprecated functions 2018-04-03 14:10:39 -05:00
Deepika 331620e1d0 Default constructor for template class should be part of header file 2018-03-23 14:55:07 -05:00
Cruz Monrreal 801f27efcf
Merge pull request #6239 from bmcdonnell-ionx/interrupt-in-pin-mode
Interrupt in pin mode
2018-03-23 12:00:36 -05:00
George Beckstein d3ab5c7e59
Added SerialWireOutput to mbed namespace 2018-03-22 12:35:54 -04:00
Brendan McDonnell 8d2214fa6e linebreaks 2018-03-21 11:18:54 -04:00
Brendan McDonnell 895e19ae0f Restore single-param InterruptIn ctor, to maintain binary compatibility (for Wi-Fi drivers).
Revert "simplify InterruptIn - default parameter instead of multiple constructors"; add comment.

This reverts commit d28dbf6702.
2018-03-21 11:18:42 -04:00
Cruz Monrreal 9cac3b2f6b
Merge pull request #6149 from bmcdonnell-ionx/typos
Fix typos in the files
2018-03-15 10:53:03 -05:00
Cruz Monrreal 9ddb092d43
Merge pull request #6230 from bulislaw/system_reset
Add system_reset call
2018-03-01 10:31:07 -06:00
Brendan McDonnell 087b4281f6 linebreak 2018-03-01 11:13:22 -05:00
Brendan McDonnell e4bf6c47ff add doxygen param info 2018-03-01 11:13:19 -05:00
Brendan McDonnell d28dbf6702 simplify InterruptIn - default parameter instead of multiple constructors 2018-02-28 14:42:43 -05:00
Brendan McDonnell dfa6a7aa97 factor out common function 2018-02-28 14:02:05 -05:00
Brendan McDonnell 35308c1937 overload InterruptIn constructor to allow PinMode control 2018-02-28 14:00:50 -05:00
Cruz Monrreal 3d1174a215
Merge pull request #5911 from deepikabhavnani/common_crc
CRC class implementation
2018-02-28 11:53:54 -06:00
Bartek Szatkowski 4cb47df40a Add system_reset() function to Mbed OS 2018-02-28 16:42:34 +00:00
deepikabhavnani b60eb1d001 Updated table to be const and small fixes 2018-02-27 09:35:55 -06:00
Cruz Monrreal 3d37d819e9
Merge pull request #5046 from fkjagodzinski/timerevent_tests
TimerEvent tests
2018-02-26 15:02:52 -06:00
Filip Jagodzinski 7f73785b9a Drivers: TimerEvent: Update API docs 2018-02-23 09:13:35 +01:00
David Saada 0aeeece97d FlashIAP driver modifications:
- Support programming across sectors.
- Support program size not aligned to page size.
- Fix validations on sector erase.
2018-02-22 22:48:29 +02:00
Brendan McDonnell c4f10aafee typos 2018-02-20 20:11:19 -05:00
Cruz Monrreal cd7595e5a7
Merge pull request #6076 from mprse/remove_ticker_interface_init_while_Ticker_creation
Remove ticker interface initialization while Ticker creation.
2018-02-20 13:21:20 -06:00
deepikabhavnani af0982295f Moved specialized functions to CPP file
Template specialized functions are moved to cpp file, to add MbedCRC.h
in mbed.h. Else linker shall multiple definition error.
2018-02-20 08:12:44 -06:00
Marcus Chang bbf92fdf0d Instrumented Trace Macrocell (ITM) HAL API
HAL API for initializing the ITM and setting SWO debug output.
Actual debug output implemented as SWO FileHandle.
2018-02-16 08:24:31 -08:00
Przemyslaw Stekiel 17dece407a Remove ticker interface initialization while Ticker creation.
Ticker constructor calls directly target specific ticker init function. Currently there is no problem, since ticker interface initialization functions are protected against multi-calls and simply returns if not called for the first time (interface initialization can be performed only once). According to the new Thicker HAL API requirements:
The function ticker_init allows the ticker to keep counting and disables the ticker interrupt.

Disabling interrupts while some Ticker interrupts are already scheduled for sure will destroy the schedule. Ticker interface should be initialized only once and it is already done by: static void initialize(const ticker_data_t *ticker) function in /m-bed/hal/mbed_ticker_api.c file.
2018-02-13 09:11:16 +00:00
deepikabhavnani 8e537115c5 Removed init/deinit and added cpp file for tables 2018-02-02 09:43:06 -06:00
deepikabhavnani afe8834bb8 CRC class implementation
CRC class `MbedCRC.h` is templated class created to support hardware/software
CRCs. Default CRC will be hardware CRC when support for HAL is available.

Polynomial tables are available for 8/16 bit CCITT, 7/16 bit for SD card and
32-bit ANSI. Polynomial table implementation will be used if Hardware CRC is
not available.

In case device does not have hardware CRC and polynomial table is not supported,
CRC is still available and is computed runtime bit by bit for all data input.
2018-01-24 13:26:41 -06:00
Cruz Monrreal 31f59b9fb4
Merge pull request #5721 from scartmell-arm/bug-i2c-abort-deep-sleep
Fix bug allowing I2C::abort_transfer to incorrectly unlock deep sleep mode
2018-01-11 10:30:53 -06:00
Steven Cartmell c2670870dc Fix bug allowing SPI::abort_transfer to incorrectly unlock deep sleep mode
- Add flag to SPI class to track if the SPI instance has locked deep sleep mode.
- Wrap call to sleep_manager_lock_deep_sleep to only be called if SPI instance
  hasn't already locked deep sleep.
- Wrap call to sleep_manager_unlock_deep_sleep to only be called if SPI has
  currently locked deep sleep mode.
2018-01-04 09:39:39 +00:00
Steven Cartmell 26f01d6c25 Fix bug allowing I2C::abort_transfer to incorrectly unlock deep sleep mode
- Add flag to I2C class to track if the I2C instance has locked deep sleep mode.
- Wrap call to sleep_manager_lock_deep_sleep to only be called if I2C instance
  hasn't already locked deep sleep.
- Wrap call to sleep_manager_unlock_deep_sleep to only be called if I2C has
  currently locked deep sleep mode.
2018-01-04 09:37:44 +00:00