Commit Graph

699 Commits (56cb1582bef242d8a5c47fa67ef04c86de858fb3)

Author SHA1 Message Date
arostm 781db4f265 DISCO_F413ZH: add some files and modification (targets.json, rtx...) 2017-06-22 09:16:32 +02:00
arostm 5e3350ce38 DISCO_F413ZH: Modification needed to build 2017-06-22 09:07:00 +02:00
arostm af6f9aaee0 DISCO_F413ZH: Creation folders and files (pinout, startup, etc...) 2017-06-22 09:07:00 +02:00
jeromecoutant 18572cc65b STM32 : mbed_overrides.c is common for all families 2017-06-21 16:03:05 +02:00
Martin Kojtal d121a43e37 Merge pull request #4597 from theotherjimmy/travis-upcase-asm
Assert that all assembly files are named correctly in travis
2017-06-21 09:50:47 +02:00
Jimmy Brisson c7d6bbe295 Upcase all assembler file extensions 2017-06-20 14:50:08 -05:00
Anna Bridge 525debc63b Merge pull request #4567 from u-blox/ublox_odin_driver_os_5_v2.1_rc1
Updated u-blox ODIN-W2 driver binaries to 2.1 rc1
2017-06-20 17:09:13 +01:00
bcostm 2d294495e1 DISCO_L072CZ_LRWAN1: Update HSI clock config for USB 2017-06-20 16:07:07 +02:00
Anna Bridge 810e16f88e Merge pull request #4337 from u-blox/cellular_feature_br_ublox_pr1
Platform support for new CellularInterface in UBLOX_C027 and UBLOX_C030_U201.
2017-06-20 14:00:11 +01:00
Anna Bridge c5e1fa70d9 Merge pull request #4242 from bcostm/dev_disco-l475-iot
DISCO_L475VG_IOT01A : Add new target
2017-06-20 11:41:42 +01:00
Jimmy Brisson 3f464217f1 Merge pull request #4554 from LMESTM/L476RG_ld_file
Fix NUCLEO_L476RG linker scripts
2017-06-19 11:04:10 -05:00
Jimmy Brisson 737a64c988 Merge pull request #4502 from LMESTM/issue_899
STM32: serial: clear Overrun flag if it is set when checking if readable
2017-06-19 11:00:23 -05:00
Mike Fiore 1403dfc086 [XDOT_L151CC] enable HSI after waking from stop mode so ADC functions properly 2017-06-16 10:52:44 -05:00
andreas.larsson e12efc073d Moved u-blox ODIN-W2 cb_cert_utils.h to the correct place 2017-06-16 11:18:37 +02:00
andreas.larsson a33f65d5f5 Updated binaries to 2.1 rc1 2017-06-16 10:44:16 +02:00
Laurent MEUNIER 20bd774a6c STM32 SPI specific mode for higher performance
This commit implements a SPI mode which will offer better performance
thanks to usage of Lower Layer API which use fewer registers access,
at the cost of lower robustness (no error management).
2017-06-16 10:23:48 +02:00
Rob Meades fdf8a7980f Platform support for OnboardCellular modem and u-blox cellular interface drivers. This change allows the u-blox C027 and C030 boards to use both the mbed-os OnboardCellular modem driver and the u-blox cellular interface drivers (which support both PPP and AT data modes). 2017-06-15 14:32:09 +01:00
Andreas Larsson 6a270fb348 Moved ODIN target files into STM32F439xI folder to avoid duplicate code 2017-06-14 13:21:04 -05:00
Laurent MEUNIER 73eebaad19 NUCLEO_L476RG: FLASH size of 1MB, not 2MB
MBED_APP_SIZE was erroneously defined to 2MB for this target,
while it's only 1MB.
2017-06-14 16:52:08 +02:00
Laurent MEUNIER 1d802028cf NUCLEO_L476RG: GCC_ARM ld file fix
Following
Merge pull request #4063 from LMESTM/17q2_L4_bootloader
the NUCLEO_L476RG binairies could not boot anymore.

The change done in #4063 was derived from work on NUCLEO_L429ZI target
which supports uvisor. The VECTORS defintiion is introduced as part of
uvisor support and requires further changes in ld file which were missing.
As uvisor is not considered yet, we remove VECTORS for now and will
introduce only when needed.
2017-06-14 16:48:29 +02:00
Russ Butler 47b78a2d17 Fix STM32 crashes on boot due to unset VTOR
Remove HAL_Init and related code from SystemInit and move it to
mbed_sdk_init. The function SystemInit is called early in the boot
sequence before RAM is initialized or the VTOR is setup, so it should
not be used to perform the HAL initialization.

This fixes crashes due the vector table being used before it has been
relocated.
2017-06-13 12:12:20 -05:00
jeromecoutant 8301ee04ca STM32 Add USB pins name in PinNames.h files 2017-06-13 17:15:27 +02:00
bcostm 8ede14dac1 DISCO_L475VG_IOT01A: Add include of LL timer file 2017-06-12 17:12:57 +02:00
bcostm 66cbc8b452 DISCO_L475VG_IOT01A: Update device files after CubeL4 update 2017-06-12 17:03:12 +02:00
bcostm af2078f38d DISCO_L475VG_IOT01A: Update cmsis_nvic files 2017-06-12 17:03:12 +02:00
bcostm f6a48838ad DISCO_L475VG_IOT01A: Move USB device config files 2017-06-12 17:03:12 +02:00
bcostm 3519d535a0 DISCO_L475VG_IOT01A: Add generic buttons declaration 2017-06-12 17:03:12 +02:00
bcostm 2ed207efd4 DISCO_L475VG_IOT01A: change comment for 8-byte aligned adress for IAR .icf file 2017-06-12 17:03:12 +02:00
bcostm 7a2d1bd74a DISCO_L475VG_IOT01A: Move ADC internal channels in dedicated table. 2017-06-12 17:03:12 +02:00
bcostm 05c023bcad DISCO_L475VG_IOT01A: Add all pins even those not available on connectors. 2017-06-12 17:03:12 +02:00
bcostm a8ab839e2c DISCO_L475VG_IOT: Re-organize folder
- Move TARGET_DISCO_L475VG_IOT01A/ in TARGET_STM32L475xG/
- Add STM32L475xG extra label in targets.json
2017-06-12 17:03:12 +02:00
bcostm b40591f1e1 DISCO_L475VG_IOT: Add USB Device files 2017-06-12 17:03:12 +02:00
bcostm 2871545bd7 Assign LED4 definition same as LED3 2017-06-12 17:03:12 +02:00
bcostm b9cf7dbe69 Set ADC pins to MODE_ANALOG_ADC_CONTROL 2017-06-12 17:03:12 +02:00
bcostm ac27f8288d Add back PB_6/PB_7 pins definition used by STDIO_UART_TX/RX 2017-06-12 17:03:12 +02:00
bcostm 23140da035 Update PeripheralPins: add _ALTx pins and remove pins not available on connectors 2017-06-12 17:03:12 +02:00
bcostm 8c7000cce4 Add "01A" suffix in target name 2017-06-12 17:03:12 +02:00
bcostm 116d35ad9b Update PinNames.h and remove PortNames.h after rebase with master 2017-06-12 17:03:12 +02:00
bcostm 374f71ca66 Add DISCO_L475VG_IOT in mbed_rtx.h 2017-06-12 17:03:12 +02:00
bcostm 074e11dcc1 Add DISCO_L475VG_IOT specific files 2017-06-12 17:03:12 +02:00
Fahrzin Hemmati 28e8bc04e9 do while -> while 2017-06-12 05:12:45 -07:00
Fahrzin Hemmati 53f5f662ca Fix add -> adds typo 2017-06-12 05:11:48 -07:00
Fahrzin Hemmati 38b64ab927 Improve the startup code on the STM32F070
This reduces the number of loads inside of the .data copy loop by 3 by using one more register. It should work on any STM32 with at least 5 general-purpose registers. If only 4 are available, then 1 load could still be removed from the original implementation.
2017-06-12 05:05:41 -07:00
Martin Kojtal ecc737e14f Merge pull request #4484 from c1728p9/workshop_rebase_4058
STM32L4 Flash support
2017-06-09 15:05:46 +01:00
Laurent MEUNIER f77ecf4e12 STM32: Put some serial code in common between families 2017-06-09 13:30:54 +02:00
Russ Butler 805374ed89 Restore cmsis_nvic for Cortex-M0 targets
Restore cmsis_nvic (cmsis_nvic.c and cmsis_nvic.h) files for the
implementations which use a mechanism other than the VTOR to set
interrupts. These are vendor specific and were done for M0 devices
which do not have a VTOR.

Note - There were two cmsis_nvic files which did not use the VTOR that
which not restored in this patch. This is because these targets were
not M0 devices and could use the new unified implementation instead.
These files are:
targets\TARGET_ARM_SSG\TARGET_MPS2\TARGET_MPS2_M0P\device\cmsis_nvic.c
targets\TARGET_ONSEMI\TARGET_NCS36510\device\cmsis_nvic.c

Note - cmsis_nvic.c and cmsis_nvic.h were initial removed in
(and restored from) the commit:
b97ffe8fdc -
"CMSIS5: Replace target defined NVIC_Set/GetVector with CMSIS implementation"
2017-06-08 22:50:23 -05:00
Sam Grove ee8bd05ff6 Merge pull request #4481 from kegilbert/add_bootloader_support_stm32f439xI-rebase
Add bootloader support stm32f439xI - Rebase
2017-06-08 15:55:59 -05:00
Sam Grove 434787b9a8 Merge pull request #4499 from c1728p9/fix_rtc_api_time_conversion
Fix rtc api time conversion
2017-06-08 15:49:00 -05:00
Sam Grove 64c6214f03 Merge pull request #4474 from kegilbert/stm32_l0_flash_api-rebase
STM32 L0: Add Flash API support - Rebase
2017-06-08 11:39:08 -05:00
Sam Grove 1607c83d77 Merge pull request #4469 from kegilbert/17q2-l4-bootloader-rebase
17q2 l4 bootloader - Rebase
2017-06-08 11:38:25 -05:00
Laurent MEUNIER c5c33f1d0f STM32: serial: clear Overrun flag if it is set when checking if readable
Note that this could have side effects on the application as it would
not be aware that data has been missed. This may be later solved by
adding an error management parameter to the Serial API in mbed.

The advantage is that the serial link can work again.
2017-06-08 17:01:30 +02:00
Sam Grove 547320e99c Rename function st_rtc_localtime with _rtc_localtime 2017-06-07 23:24:48 -05:00
Vincent Coubard f880e44145 remove usage of mktime/localtime in favor of dedicated functions.
The use of mktime was causing a fault when called in interrupt handler because on GCC it lock the mutex protecting the environment, To overcome this issue, this patch add dedicated routine to convert a time_t into a tm and vice versa.
In the process mktime has been optimized and is now an order of magnitude faster than the routines present in the C library.
2017-06-07 22:06:22 -05:00
Sam Grove 8232afa53e Merge pull request #4216 from fmanno/issue-4189
STM32s Serial: Correct handling of parity bits
2017-06-06 20:00:19 -05:00
Sam Grove 72de85c62f Merge pull request #4417 from monkiineko/master
STM32: Fix 32-bit us ticker interrupt scheduling
2017-06-06 19:59:52 -05:00
Sam Grove 3c3e35dd44 Merge pull request #4423 from arostm/nucleo_f412zg_remove_hal_conf
NUCLEO_F412ZG: Remove hal_conf file from NUCLEO_F412ZG
2017-06-06 19:59:31 -05:00
Sam Grove 4d7c045753 Merge pull request #4424 from LMESTM/STM32_16bits_tickers
Fix corner cases in STM32 16bit tickers
2017-06-06 19:59:08 -05:00
Laurent MEUNIER 1c57df37d4 STM32 L4: Flash API typo 2017-06-06 18:10:38 -05:00
Laurent MEUNIER a9d237012c Removing duplicate defines
Those defines are already available in STM32 L4 SDK and don't need to
be (re)defined here.
2017-06-06 18:10:18 -05:00
Laurent MEUNIER ec89ea8ac9 Fix L432KC compilation error 2017-06-06 18:09:53 -05:00
Laurent MEUNIER b1ae8a9f9d STM32L4 : add Flash API support 2017-06-06 18:09:12 -05:00
Andreas Larsson 7a0778b7d2 Fixed wrong stack size start 2017-06-06 17:09:01 -05:00
Andreas Larsson 7e58474a4e Fixed comment, 439ZI to more generic 439xI 2017-06-06 17:08:51 -05:00
Andreas Larsson fe8afae0c1 Fixed comment alignments 2017-06-06 17:08:43 -05:00
Andreas Larsson 6f1a8a8515 Added MBED_APP_START and MBED_APP_SIZE used by the app when a boot loader is present 2017-06-06 17:08:28 -05:00
Laurent MEUNIER affab79f13 STM32 L0: Add Flash API support
This is the introduction of Flash API support for STM32 L0 family.
2017-06-06 15:47:54 -05:00
Laurent MEUNIER 7ec9fe23c1 Update stm32l476rg linker scripts for bootloader
Add MBED_APP_START and MBED_APP_SIZE to the linker scripts
so the start and size of an image can be specified. This allows the
ROM to be split into a bootloader region and an application region.
2017-06-06 15:43:54 -05:00
Laurent MEUNIER 5fbe3299d7 Rebase of: e51c40c061
Fix vector table

The address of the vector table is hardcoded to the start of flash.
This patch updates make it properly handle updating the VTOR with
a bootloader.
2017-06-06 15:43:17 -05:00
Anna Bridge a41e08c7bf Merge pull request #4365 from LMESTM/fix_i2C_pcf_F1F2F4L1
Fix i2c communication with pcf8574 on stm32 targets of f1, f2, f4 and l1 families
2017-06-05 14:41:36 +01:00
Laurent MEUNIER ea2cc1d0e1 STM32 16bits tickers: consider all corner cases in us_ticker_set_interrupt
The present commit comes from monkiineko mbed contributor.
The comments in code explains in details all the possible case and
how they are handled.
2017-06-05 13:12:20 +02:00
Laurent MEUNIER fbfbb5e982 STM32 16 bits ticker: fix grammar issues in comments 2017-06-05 13:12:20 +02:00
Laurent MEUNIER 572a096c08 STM32 16 bits tickers: save useless instance init
TimMasterHandle.Instance initialization can be removed from here,
because it will either have been already done previously,
or it will be done in the us_ticker_init() call immediately below.
2017-06-05 13:12:20 +02:00
Laurent MEUNIER 7bcabf7cc0 STM32 16 bits tickers: remove unused prototype
Since rework, this prototype is not needed anymore.
2017-06-05 13:12:20 +02:00
Laurent MEUNIER 27be2e1884 STM32 16 bits ticker: don't check FLAG just clear it
Not having the check will make the code more efficient.
2017-06-05 13:12:20 +02:00
Laurent MEUNIER 1b684ca4e9 STM32 16 bits tickers, no need to check TIM_FLAG_CC1OF FLAG
Following previous fixes on 16 tickers handling, the overflow flag
condition will not happen anymore, so the work-around in place is
not needed anymore
2017-06-05 13:12:20 +02:00
Laurent MEUNIER 35c68859c0 STM32: 16 bits ticker, fixes in set function and handler
This commit simplifies ticker interrupt set function and handler.

There were issues around the 16 bits timer wrap-around timing as we were
aligning interrupts with wrap-around limits (0xFFFF) and then reading
TIM_MST->CNT again in timer_update_irq_handler which could lead
to crossing case with the wrap-around (TIM_FLAG_UPDATE) case.

Now we're using the 16 lower bits of the timestamp as the reference from
using in set_compare and never changing it. There is also no need to set
comparator again in timer_update_irq_handler. This is more robust and
also more efficient.
2017-06-05 13:12:20 +02:00
Laurent MEUNIER b9b5f0b929 STM32 16bits ticker: rework us_ticker_read()
Move to a single more reliable implementation of us_ticker_read()
There were historically 2 versions of us_ticker_read() implementation.

The one removed here was not reliable because us_ticker_read() can be
called in interrupt context which means that TIM_MST->CNT would have
wrapped around while SlaveCounter is not yet updated. So there is a need
to check the TIM_FLAG_UPDATE inside this function, which was not done in
the implementation that is removed here.
2017-06-05 13:12:20 +02:00
Sam Grove 5f138810a9 Merge pull request #4294 from ARMmbed/feature_cmsis5
Update CMSIS-Core and RTX to version 5
2017-06-02 23:44:32 -05:00
Laurent MEUNIER a1f7a36461 STM32 HAL I2C fix RXNE case
As reported in issue #4214, there are seen issues seen first on
NUCLEO_F103RB in case of successive Reads of 1 byte at a time.

This issue is due to a wrong state management in the end of read sequence.
Also F1 i2c driver was not fully aligned to others, which is updated here.
2017-06-02 17:28:48 +02:00
Laurent MEUNIER 5af0c59588 STM32 F1: Only set GPIO pin speed in case of Output mode
There were still side effects, in particular on I2C master slave test,
when setting by default the Pin Speed for F1 family. So for F1 family,
let's do it only in case of Output which is the only case where this
actually applies on this family.
2017-06-02 17:24:01 +02:00
Bradley Scott 260378e774 STM32: Fix 32-bit us ticker interrupt scheduling
For STM32 targets using a 32-bit timer for the microsecond ticker, the
driver did not properly handle timestamps that are in the past.  It
would just blindly set the compare register to the requested timestamp,
resulting in the interrupt being serviced up to 4295 seconds late
(i.e. after the 32-bit timer counts all the way around to hit the
timestamp again).

This problem can easily be reproduced by creating a Timeout object
then calling the timeout's attach_us() member function to attach a
callback with a timeout of 0 us.  The callback will not get called for
over 2147 seconds, and possibly up to 4295 seconds late if no other
microsecond ticker events are getting scheduled in the meantime.

Now, after the compare register has been set, the timestamp is checked
against the current time to see if the timestamp is in the past, and
if so, the compare event is manually set.

NOTE: By checking if the timestamp is in the past after configuring the
capture register, we ensure proper handling in the case where the timer
updates past the timestamp while setting the capture register.
2017-06-01 12:52:03 -04:00
arostm ab87e7a65c NUCLEO_F412ZG: Remove hal_conf file
The board have to use th hal_conf file from F4/device directory
2017-06-01 16:52:22 +02:00
jeromecoutant 476d2e6be5 STM32F4 set HSE timeout value to 100ms 2017-06-01 14:11:34 +02: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
Martin Kojtal 8a870a66c0 Merge pull request #4119 from hasnainvirk/cellular_feature_br
Cellular feature br
2017-06-01 14:01:17 +02:00
mickeyln dc9cd2eaab Update system_stm32f0xx.c 2017-06-01 11:56:07 +08:00
Jimmy Brisson 944a17fe3c Merge pull request #4402 from LMESTM/STM32_F2_CUBE_v160
Stm32 f2 cube sdk update to v1.6.0
2017-05-31 11:28:36 -05:00
Hasnain Virk 24de27c989 Major Refactoring & extensions
For keep supporting external APIs with the same name (supposedly there are a larger
number of users of those APIs), BufferedSerial and ATParser are being renamed.
BufferedSerial becomes UARTSerial, will complement a  future USBSerial etc.
ATParser becomes ATCmdParser.

* UARTSerial moves to /drivers

* APN_db.h is moved from platform to cellular/util/.

* Original CellularInterface is restored for backward compatability (again, supposedly there
  are users of that).

* A new file, CellularBase is added which will now servce as the base class for all
  upcoming drivers.

* Special restructuring for the driver has been undertaken. This makes a clear cut distinction
  between an on-board or an off-board implementation.
  	- PPPCellularInterface is a generic network interface that works with a generic FileHandle
          and PPP. A derived class is needed to pass that FileHandle.
        - PPPCellularInterface provides some base functionality like network registration, AT setup,
          PPP connection etc. Lower level job is delegated to the derived classes and various modem
          specific APIs are provided which are supposed to be overridden.
        - UARTCellularInterface is derived from PPPCellularInterface. It constructs a FileHandle and
          passes it back to PPPCellularInterface as well as provides modem hangupf functionality.
          In future we could proive a USBInterface that would derive from PPPCellularInterface and could
          pass the FileHandle back.
	- OnboardCellularInterface is derived from UARTCellularInterfae and provides hooks to
          the target provided implementation of onbard_modem_api.h. An off-board modem, i.e, a modem on
          a shield has to override the modem_init(), modem_power_up() etc as it cannot use
          onboard_modem_api.h.
2017-05-31 15:02:11 +03:00
Hasnain Virk ccbf00571f Introducing hal/modem_api.h
This provides a HAL layer for Modem bearing devices.
Provides a standard interface to upper layer drivers.
Platform providers will be implementing this API under their
specific targets.

As a reference, two implementations are provided under TARGET_C027 (UBLOX)
and TARGET_MTS_DRAGONFLY_F411RE (MultiTech).

targets.json now contains a tag "MODEM" which tells that this target
has a modem and the modem_api is protected by a flag DEVICE_MODEM
(following the DEVICE_SERIAL fashion ).
2017-05-31 15:02:11 +03:00
Hasnain Virk fcbcfafec5 Preparing grounds for modem api
* Lays down ground for mbed modem_api
* Standardizes pin names relating to modem device for UBLOX C027 and MTS_DRAGONFLY_F411RE
  devices
* Ublox modem api is changed to use a standard, platform independent name so that same
  api could be used with multiple ubloc modems.
* DCD Polarity macro is added to assist the driver in knowing correct polarity
2017-05-31 15:02:11 +03:00
Hasnain Virk 925f54bfce Heap size reduced to 64k for IAR
IAR heap sizes were hard configured to be 96k which is 75% of the
total RAM available. Reduced it to be 64k which is half of the available RAM.
2017-05-31 15:02:11 +03:00
Sam Grove e65bb8d1a2 spi: Added default spi_master_block_write implementation to stm targets
There is an easy default implementation of spi_master_block_write that
just calls spi_master_write in a loop, so the default implementation
of spi_master_block_write has been added to all targets.
2017-05-30 23:11:24 -05:00
Bartek Szatkowski 85cc9c8381 Remove deprecated RTX4 config options 2017-05-30 18:55:55 +01:00
andreas.larsson abcae6f01e Updated driver binaries for feature_cmsis5 as v2.0 rc1 2017-05-30 18:55:55 +01:00
Bartek Szatkowski f194ea7be9 Remove redefinitions of register macros from target code 2017-05-30 18:55:53 +01:00
Bartek Szatkowski b793a3fb89 Update codebase for CMSIS5/RTX5
Update all of mbed-os to use RTX5.
2017-05-30 18:55:52 +01:00
Bartek Szatkowski b97ffe8fdc CMSIS5: Replace target defined NVIC_Set/GetVector with CMSIS implementation 2017-05-30 18:55:51 +01:00
Francisco J. Manno 5e98da14d3 STM32s Serial does not properly handle parity bits
Reworked the serial_format() function for STM32F0x
devices to take the format in the form:
data_bits - parity - stop_bits

E.g. 8 - N - 1

where data_bits exclude the parity bit.
Added a case for 7 bits data as at least the chips
STM32F0x1/STM32F0x2/STM32F0x8 support 7 bits data.

Consolidated serial_format() and uart_init()
functions into a general TARGET_STM serial_api.c
file since the functions are common to all STM targets.

Fixes #4189
2017-05-30 17:17:20 +01:00
Anna Bridge 45b4d41bbd Merge pull request #4329 from adustm/can_sync_error
Fix for #3863: STM Check can sync error
2017-05-30 16:52:09 +01:00
Anna Bridge 9c6a068d48 Merge pull request #4324 from monkiineko/master
STM32F3: Remove dependence upon a specific flash vector table location
2017-05-30 16:50:45 +01:00