Sam Grove
8e76bf6da6
Merge pull request #4508 from kegilbert/kg-doxygen-framework-hal-rtos
...
Doxygen combined HAL, RTOS, and features/Framework updates to not produce warnings and errors [DOC Changes Only]
2017-06-08 23:52:33 -05:00
Deepika
6478e88808
Fix doxygen warnings in 'drivers'
2017-06-08 15:53:53 -05:00
Kevin Gilbert
7e2e80588d
Removed bad \ref tag, but left in the tag name. Updated old param names in gpio_api.h and added new params in ticker_api.h
2017-06-08 15:52:31 -05:00
Sam Grove
fa0cd205a2
Merge pull request #4094 from pan-/fix_hal_ticker
...
[HAL] Add support for 64 bit us timestamp
2017-06-01 23:25:26 -05:00
Martin Kojtal
e229a49182
Merge pull request #4207 from geky/spi-remove-byte-locking
...
spi: Add SPI block-write to C++ and HAL for performance
2017-06-01 14:03:36 +02:00
Russ Butler
58041a215d
Deprecate config store and related libraries
...
Deprecate configuration-store, flash-journal and
storage-volume-manager for the 5.5 release. Also disable the
storage tests.
2017-05-31 12:08:11 -05:00
Christopher Haster
31bf0d5099
spi: Added block-level SPI writes at the HAL level
...
Poking the block-level SPI writes through the HAL level gives more
freedom to targets to improve SPI transaction speed.
2017-05-25 12:04:58 -05:00
Vincent Coubard
ab09a1722f
ticker api: Schedule immediately event in the past.
2017-05-16 10:37:35 +01:00
Vincent Coubard
aeffd738c7
ticker_api: Code clarification
...
* update_interrupt renamed into schedule_interrupt
* update_current_timestamp renamed into update_present_time
* ticker_event_queue_t::timestamp renamed into
* ticker_event_queue_t::present_time
* Fix doxygen comments in ticker_api.h
* Update comments internal comments in mbed_ticker_api.c
2017-05-16 10:37:35 +01:00
Vincent Coubard
c20a1ccd4f
ticker api: format code to meet mbed standards.
2017-05-16 10:37:35 +01:00
Vincent Coubard
e119357822
[HAL] Ensure us_ticker and lp_ticker queue are correctly initialized.
2017-05-16 10:35:11 +01:00
Vincent Coubard
1057720114
[HAL] Add support of 64 bits timestamp in ticker API implementation.
2017-05-16 10:35:11 +01:00
Vincent Coubard
20149dfcf5
[HAL] Ad primitives for long lived timestamp to the ticker API.
...
- A new 64 timestamp type has been added: us_timestamp_t.
- Changed type of timestamp in ticker_events iinto us_timestamp_t.
- Event queue now have a to store a current, absolute timestamp.
- Add alternative versions of ticker_insert_event and ticker_read which accept
in input us_timestamp_t.
- Add documentation explaining the limitation and behavior of ticker_read and
ticker_insert_event.
2017-05-16 10:35:11 +01:00
adustm
f740d2f3bc
Add an mbed API that allows the initialization of the CAN at the correct
...
CAN bus frequency
2017-05-15 14:14:26 +02:00
mjrgh
094d9ac909
Fix crash with events in the past
...
ticker_insert_event() can crash on KLXX (and probably other platforms) if an event is inserted with a timestamp before the current real time.
The problem is easy to trigger: you just need to set up a Ticker object, and then disable interrupts for slightly longer than the Ticker object's interval. It's generally bad practice to disable interrupts for too long, but there are some cases where it's unavoidable, and anyway it would be better for the core library function not to crash. The case where I had an unavoidably long interrupts-off interval was writing flash with the FTFA. The FTFA hardware prohibits flash reads while an FTFA command is in progress, so interrupts must be disabled for the whole duration of each command to ensure that there are no instruction fetches from flash-resident ISRs in the course of the execution. An FTFA "erase sector" command takes a fairly long time (milliseconds), and I have a fairly high frequency Ticker (1ms).
The problem and the fix are pretty straightforward. ticker_insert_event() searches the linked list to figure out where to insert the new event, looking for a spot earlier than any event currently queued. If the event is in the past, it'll usually end up at the head of the list. When the routine sees that the new event belongs at the head of the list, it calls data->interface->set_interrupt() to schedule the interrupt for the event, since it's the new soonest event. The KLXX version of us_ticker_set_interrupt() then looks to see if the event is in the past, which we've stipulated that it is, so rather than actually setting the interrupt, it simply calls the handler directly. The first thing the Ticker interrupt handler does is re-schedule itself, so we re-enter ticker_insert_event() at this point. This is where the problem comes in: we didn't finish updating the linked list before we called set_interrupt() and thus before we recursed back into ticker_insert_event(). We set the head of the list to the new event but we didn't set the new event's 'next' pointer.
The fix is simply to finish updating the list before we call set_interrupt(), which we can do by moving the obj->next initialization ahead of the head pointer update.
2017-03-21 12:02:33 -07:00
Christopher Haster
aff49d8d1e
Renamed files in platform to match source names
...
critical.h -> mbed_critical.h
sleep.h -> mbed_sleep.h
toolchain.h -> mbed_toolchain.h
rtc_time.h -> mbed_rtc_time.h
semihost_api.h -> mbed_semihost_api.h
wait_api.h -> mbed_wait_api.h
2017-02-22 18:17:54 -06:00
0xc0170
bae0f97bc9
flash: add flash algo common layer
...
If target supports flash algo, it can get common HAL implementation, providing
feature "HAL_FLASH_CMSIS_ALGO". This simplifies target code, and having
one implementation that can be shared by many targets.
Be careful with flash cmsis algo, in some cases they execute code that
can affect the system. For instance, it can disable cache, or affect
some system clocks. Therefore this feature should be well tested.
2017-02-21 14:08:33 -06:00
0xc0170
fdfb82030c
hal: add flash hal api
...
Add a flash api with functions to erase and program. The api also
includes functions to query flash start, flash size, page size and
sector size.
2017-02-21 14:08:09 -06:00
Bartek Szatkowski
6a045a49a9
Platform: Add sleep/deepsleep user facing functions
...
Add sleep/deepsleep functions to platform layer which are replacing HAL
functions with the same name, rename existing symbols in HAL layer
to hal_sleep/hal_deepsleep. This way sleep functions
are always available, even if target doesn't implement them, which makes
the code using sleep clearer. It also enables us to make decision on in
which builds (debug/release) the sleep will be enabled.
2017-01-19 09:39:29 +00:00
Martin Kojtal
72b1fa71b5
Merge pull request #3301 from 0xc0170/fix_issue#2725
...
I2C - correct return values for write functions (docs) - part 1
2016-12-02 15:47:08 +01:00
0xc0170
11d6f388d2
I2C - correct return values for write functions
...
The correction was made based on the i2c hal, and some target implementations
(early implementations like nxp 1768, freescale KLXX).
2016-11-21 11:26:02 +00:00
Christopher Haster
b09ca768b6
Moved emac_api.h to the appropriate folder
...
Previously in hal/hal/emac_api.h, the emac_api must have
been missed during restructuring
2016-11-17 13:52:42 -06:00
Martin Kojtal
f8b682c943
lwip-interface: fix issue #2993
...
DEVICE_ are passed as command line -D, thus no inclusion is required.
``platform.h`` is C++ header file, should not be pulled in C files
2016-10-13 11:42:31 +01:00
Sam Grove
3a16ca9855
Merge pull request #2911 from theotherjimmy/docs-generation
...
[Tools] Add documentation generation script
2016-10-06 15:57:08 -05:00
Jimmy Brisson
f1a78027d3
Add tags to our code
2016-10-04 15:02:44 -05:00
Christopher Haster
5cd2d7869e
Merge remote-tracking branch 'upstream/master' into feature_wifi_ublox_merge
2016-10-02 07:29:07 -05:00
Christopher Haster
13bf0bd470
Merge commit 'upstream/master~' into feature_wifi_ublox
2016-10-02 06:35:12 -05:00
Martin Kojtal
3f66a62f87
UBLOX_C029: remove emac implementation
...
It depends on the driver that will come separately, therefore this will be
enabled once driver is in place.
2016-10-01 19:35:10 +01:00
Sam Grove
301b77c4b2
For drivers, events, hal, platform, rtos and mbed.h add one level of path to make sure specific and unique includes files are found.
2016-10-01 02:11:36 -05:00
Sam Grove
b7fcfd93d8
Move can_helper.h into hal/ given its a requirement of the can c hal.
2016-10-01 01:44:08 -05:00
Christopher Haster
15904b7544
restructure - Split hal into drivers+platform+hal
...
hal/common/AnalogIn.cpp -> drivers/AnalogIn.cpp
hal/api/AnalogIn.h -> drivers/AnalogIn.h
hal/api/AnalogOut.h -> drivers/AnalogOut.h
hal/common/BusIn.cpp -> drivers/BusIn.cpp
hal/api/BusIn.h -> drivers/BusIn.h
hal/common/BusInOut.cpp -> drivers/BusInOut.cpp
hal/api/BusInOut.h -> drivers/BusInOut.h
hal/common/BusOut.cpp -> drivers/BusOut.cpp
hal/api/BusOut.h -> drivers/BusOut.h
hal/common/CAN.cpp -> drivers/CAN.cpp
hal/api/CAN.h -> drivers/CAN.h
hal/api/CircularBuffer.h -> drivers/CircularBuffer.h
hal/api/DigitalIn.h -> drivers/DigitalIn.h
hal/api/DigitalInOut.h -> drivers/DigitalInOut.h
hal/api/DigitalOut.h -> drivers/DigitalOut.h
hal/api/DirHandle.h -> drivers/DirHandle.h
hal/common/Ethernet.cpp -> drivers/Ethernet.cpp
hal/api/Ethernet.h -> drivers/Ethernet.h
hal/common/FileBase.cpp -> drivers/FileBase.cpp
hal/api/FileBase.h -> drivers/FileBase.h
hal/api/FileHandle.h -> drivers/FileHandle.h
hal/common/FileLike.cpp -> drivers/FileLike.cpp
hal/api/FileLike.h -> drivers/FileLike.h
hal/common/FilePath.cpp -> drivers/FilePath.cpp
hal/api/FilePath.h -> drivers/FilePath.h
hal/common/FileSystemLike.cpp -> drivers/FileSystemLike.cpp
hal/api/FileSystemLike.h -> drivers/FileSystemLike.h
hal/common/I2C.cpp -> drivers/I2C.cpp
hal/api/I2C.h -> drivers/I2C.h
hal/common/I2CSlave.cpp -> drivers/I2CSlave.cpp
hal/api/I2CSlave.h -> drivers/I2CSlave.h
hal/common/InterruptIn.cpp -> drivers/InterruptIn.cpp
hal/api/InterruptIn.h -> drivers/InterruptIn.h
hal/common/InterruptManager.cpp -> drivers/InterruptManager.cpp
hal/api/InterruptManager.h -> drivers/InterruptManager.h
hal/common/LocalFileSystem.cpp -> drivers/LocalFileSystem.cpp
hal/api/LocalFileSystem.h -> drivers/LocalFileSystem.h
hal/api/LowPowerTicker.h -> drivers/LowPowerTicker.h
hal/api/LowPowerTimeout.h -> drivers/LowPowerTimeout.h
hal/api/LowPowerTimer.h -> drivers/LowPowerTimer.h
hal/api/PortIn.h -> drivers/PortIn.h
hal/api/PortInOut.h -> drivers/PortInOut.h
hal/api/PortOut.h -> drivers/PortOut.h
hal/api/PwmOut.h -> drivers/PwmOut.h
hal/common/RawSerial.cpp -> drivers/RawSerial.cpp
hal/api/RawSerial.h -> drivers/RawSerial.h
hal/common/SPI.cpp -> drivers/SPI.cpp
hal/api/SPI.h -> drivers/SPI.h
hal/common/SPISlave.cpp -> drivers/SPISlave.cpp
hal/api/SPISlave.h -> drivers/SPISlave.h
hal/common/Serial.cpp -> drivers/Serial.cpp
hal/api/Serial.h -> drivers/Serial.h
hal/common/SerialBase.cpp -> drivers/SerialBase.cpp
hal/api/SerialBase.h -> drivers/SerialBase.h
hal/common/Stream.cpp -> drivers/Stream.cpp
hal/api/Stream.h -> drivers/Stream.h
hal/common/Ticker.cpp -> drivers/Ticker.cpp
hal/api/Ticker.h -> drivers/Ticker.h
hal/common/Timeout.cpp -> drivers/Timeout.cpp
hal/api/Timeout.h -> drivers/Timeout.h
hal/common/Timer.cpp -> drivers/Timer.cpp
hal/api/Timer.h -> drivers/Timer.h
hal/common/TimerEvent.cpp -> drivers/TimerEvent.cpp
hal/api/TimerEvent.h -> drivers/TimerEvent.h
hal/api/Transaction.h -> drivers/Transaction.h
hal/api/can_helper.h -> drivers/can_helper.h
hal/.yotta_ignore
hal/CMakeLists.txt
hal/hal/analogin_api.h -> hal/analogin_api.h
hal/hal/analogout_api.h -> hal/analogout_api.h
hal/hal/buffer.h -> hal/buffer.h
hal/hal/can_api.h -> hal/can_api.h
hal/hal/dma_api.h -> hal/dma_api.h
hal/hal/ethernet_api.h -> hal/ethernet_api.h
hal/hal/gpio_api.h -> hal/gpio_api.h
hal/hal/gpio_irq_api.h -> hal/gpio_irq_api.h
hal/hal/i2c_api.h -> hal/i2c_api.h
hal/hal/lp_ticker_api.h -> hal/lp_ticker_api.h
hal/common/mbed_gpio.c -> hal/mbed_gpio.c
hal/common/mbed_lp_ticker_api.c -> hal/mbed_lp_ticker_api.c
hal/common/mbed_pinmap_common.c -> hal/mbed_pinmap_common.c
hal/common/mbed_ticker_api.c -> hal/mbed_ticker_api.c
hal/common/mbed_us_ticker_api.c -> hal/mbed_us_ticker_api.c
hal/module.json
hal/hal/pinmap.h -> hal/pinmap.h
hal/hal/port_api.h -> hal/port_api.h
hal/hal/pwmout_api.h -> hal/pwmout_api.h
hal/hal/rtc_api.h -> hal/rtc_api.h
hal/hal/serial_api.h -> hal/serial_api.h
hal/hal/sleep_api.h -> hal/sleep_api.h
hal/hal/spi_api.h -> hal/spi_api.h
hal/hal/storage_abstraction/Driver_Common.h -> hal/storage_abstraction/Driver_Common.h
hal/hal/storage_abstraction/Driver_Storage.h -> hal/storage_abstraction/Driver_Storage.h
hal/hal/ticker_api.h -> hal/ticker_api.h
hal/hal/trng_api.h -> hal/trng_api.h
hal/hal/us_ticker_api.h -> hal/us_ticker_api.h
hal/api/mbed.h -> mbed.h
hal/api/CThunk.h -> platform/CThunk.h
hal/common/CallChain.cpp -> platform/CallChain.cpp
hal/api/CallChain.h -> platform/CallChain.h
hal/api/Callback.h -> platform/Callback.h
hal/api/FunctionPointer.h -> platform/FunctionPointer.h
hal/api/PlatformMutex.h -> platform/PlatformMutex.h
hal/api/SingletonPtr.h -> platform/SingletonPtr.h
hal/api/critical.h -> platform/critical.h
hal/common/mbed_alloc_wrappers.cpp -> platform/mbed_alloc_wrappers.cpp
hal/common/mbed_assert.c -> platform/mbed_assert.c
hal/api/mbed_assert.h -> platform/mbed_assert.h
hal/common/mbed_board.c -> platform/mbed_board.c
hal/common/mbed_critical.c -> platform/mbed_critical.c
hal/api/mbed_debug.h -> platform/mbed_debug.h
hal/common/mbed_error.c -> platform/mbed_error.c
hal/api/mbed_error.h -> platform/mbed_error.h
hal/common/mbed_interface.c -> platform/mbed_interface.c
hal/api/mbed_interface.h -> platform/mbed_interface.h
hal/common/mbed_mem_trace.c -> platform/mbed_mem_trace.c
hal/api/mbed_mem_trace.h -> platform/mbed_mem_trace.h
hal/common/mbed_rtc_time.cpp -> platform/mbed_rtc_time.cpp
hal/common/mbed_semihost_api.c -> platform/mbed_semihost_api.c
hal/api/mbed_stats.h -> platform/mbed_stats.h
hal/common/mbed_wait_api_no_rtos.c -> platform/mbed_wait_api_no_rtos.c
hal/common/mbed_wait_api_rtos.cpp -> platform/mbed_wait_api_rtos.cpp
hal/api/platform.h -> platform/platform.h
hal/common/retarget.cpp -> platform/retarget.cpp
hal/api/rtc_time.h -> platform/rtc_time.h
hal/api/semihost_api.h -> platform/semihost_api.h
hal/api/toolchain.h -> platform/toolchain.h
hal/api/wait_api.h -> platform/wait_api.h
2016-09-30 19:18:09 -05:00
Christopher Haster
0bad622a16
restructure - Moved targets out to top level
...
hal/targets -> targets
hal/targets.json -> targets/targets.json
2016-09-30 19:18:09 -05:00
Sam Grove
7f8cadae7f
Merge pull request #2869 from geky/callback-fix-overloads
...
callback - Remove problematic callback overloads
2016-09-30 15:39:13 -05:00
Sam Grove
20756cbf77
Merge pull request #2860 from ARMmbed/event_loop_mbed_events_new
...
Event loop with mbed-events
2016-09-30 15:24:24 -05:00
Sam Grove
4c79daf576
Merge pull request #2857 from MultiTechSystems/mtq-mdot-rtos-fixes
...
resolve multiple STM32F411RE configurations in mbed_rtx.h
2016-09-30 15:01:53 -05:00
Sam Grove
b0b7b3cf9c
Merge pull request #2849 from pan-/fix_nordic_critical_section
...
Fix nordic critical section entry and exit
2016-09-30 15:00:43 -05:00
Martin Kojtal
56a223e3f4
emac interface - typedef should be available for non-emac targets
...
As it's required by lwip_bringup function
2016-09-30 19:06:02 +01:00
Bogdan Marinescu
53218f9be8
Include events library headers in mbed.h
...
The inclusion is conditioned by the presence of the events library
(`MBED_CONF_EVENTS_PRESENT`). This ensures backward compatibility with
SDK builds.
2016-09-30 17:12:00 +03:00
Martin Kojtal
bad51a56a1
targets: remove emac for k64f, not supported yet
2016-09-30 09:42:14 +01:00
Christopher Haster
f8917e1cd9
callback - Removed problematic callback overloads
...
Unfortunately, it is very difficult to infer the parameters of
function-objects generically in C++03 without any additional type
information. The current implementation fails to do so, and the compiler
simply bails with "unable to deduce template parameter".
Rather than leaving the user with a small novel of error messages, this
patch removes the problematic callback overloads, leaving only callback
overloads for the original pointer types.
2016-09-29 16:30:49 -05:00
andreas.larsson
f8ad018e14
Added
2016-09-29 12:01:35 +01:00
andreas.larsson
31a1a7fe9b
Fixed bug in packetIndication for packetInfo->rxData + use mutexes + cleanup
2016-09-29 11:57:15 +01:00
andreas.larsson
2ce9039a1a
Added wifi_emac_api.cpp
2016-09-29 11:51:44 +01:00
andreas.larsson
05974a6578
Added EMAC
2016-09-29 11:50:59 +01:00
Vincent Coubard
dcf03310d0
NRF5 - Fix usage of volatile variable in nordic critical section implementations.
2016-09-29 10:05:02 +01:00
Martin Kojtal
f12676dfc7
Merge branch 'master' into feature_wifi
...
Conflicts:
features/net/FEATURE_IPV4/lwip-interface/lwip_stack.c
hal/targets.json
2016-09-29 09:20:46 +01:00
svastm
d37e4d876d
STM32L4 - Rename RTC_LSI
2016-09-29 10:00:48 +02:00
svastm
f361a430ef
STM32L1 - Rename RTC_LSI
2016-09-29 10:00:45 +02:00
svastm
da44e99a1c
STM32L0 - Rename RTC_LSI
2016-09-29 10:00:41 +02:00
svastm
57208bb651
STM32F7 - Rename RTC_LSI
2016-09-29 10:00:38 +02:00