Kevin Bracey
fb6aa3ef4f
Clean up ARM toolchain heap+stack setup in targets
...
ARM Compiler 6.13 testing revealed linker errors pointing out
conflicting use of `__user_setup_stackheap` and
`__user_initial_stackheap` in some targets. Remove the unwanted
`__user_initial_stackheap` from the targets - the setup is
centralised in the common platform code.
Looking into this, a number of other issues were highlighted
* Almost all targets had `__initial_sp` hardcoded in assembler,
rather than getting it from the scatter file. This was behind
issue #11313 . Fix this generally.
* A few targets' `__initial_sp` values did not match the scatter
file layout, in some cases meaning they were overlapping heap
space. They now all use the area reserved in the scatter file.
If any problems are seen, then there is an error in the
scatter file.
* A number of targets were reserving unneeded space for heap and
stack in their startup assembler, on top of the space reserved in
the scatter file, so wasting a few K. A couple were using that
space for the stack, rather than the space in the scatter file.
To clarify expected behaviour:
* Each scatter file contains empty regions `ARM_LIB_HEAP` and
`ARM_LIB_STACK` to reserve space. `ARM_LIB_STACK` is sized
by the macro `MBED_BOOT_STACK_SIZE`, which is set by the tools.
`ARM_LIB_HEAP` is generally the space left over after static
RAM and stack.
* The address of the end of `ARM_LIB_STACK` is written into the
vector table and on reset the CPU sets MSP to that address.
* The common platform code in Mbed OS provides `__user_setup_stackheap`
for the ARM library. The ARM library calls this during startup, and
it calls `__mbed_user_setup_stackheap`.
* The default weak definition of `__mbed_user_setup_stackheap` does not
modify SP, so we remain on the boot stack, and the heap is set to
the region described by `ARM_LIB_HEAP`. If `ARM_LIB_HEAP` doesn't
exist, then the heap is the space from the end of the used data in
`RW_IRAM1` to the start of `ARM_LIB_STACK`.
* Targets can override `__mbed_user_setup_stackheap` if they want.
Currently only Renesas (ARMv7-A class) devices do.
* If microlib is in use, then it doesn't call `__user_setup_stackheap`.
Instead it just finds and uses `ARM_LIB_STACK` and `ARM_LIB_HEAP`
itself.
2019-10-23 14:53:49 +03:00
jeromecoutant
01e798fd6a
STM32 clock configuration depending on USB
2019-10-21 17:11:59 +02:00
jeromecoutant
a54fdf7585
STM32L0 USB pins addition
2019-10-21 17:11:52 +02:00
Laurent Meunier
e862438fad
Clearing UART TC Flag prevents deep sleep, so do not clear it
...
The TC flag is used in function serial_is_tx_ongoing to check if there is
an ongoing serial transmission. So this Flag must not be cleared at the
end of the transmission, otherwise, serial_is_tx_ongoing will notify that
TX is ongoing.
The impact is that it may prevent deep sleep to be entered.
Also there is no need to clear this flag at the end of the transaction
because it will be cleared automatically by HW when a new transmission
starts.
2019-10-15 15:59:51 +02:00
jeromecoutant
db7efabfd5
STM license file update
...
Some code have been copied from ST Cube deliveries.
ST copyright is then needed.
2019-09-10 14:24:48 +02:00
Alexandre Bourdiol
7647b39adc
TARGET_STM: I2C sequential communication revert PR #3324 to original cube HAL
2019-08-22 10:44:20 +02:00
Martin Kojtal
de84004be1
Merge pull request #11189 from LMESTM/pwmout_cpp_guard
...
__cplusplus guard fixed pwmout_device.h for STM32 families
2019-08-13 11:19:24 +02:00
Laurent Meunier
319223ac16
__cplusplus guard fixed pwmout_device.h for STM32 families
...
This bug prevented using this header in cpp code directly.
2019-08-09 09:51:39 +02:00
Yuan Cao
6ed21ee1c0
Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing
2019-07-13 00:05:25 -04:00
Martin Kojtal
ccb63d771e
Merge pull request #10857 from ARMmbed/feature-watchdog
...
Add Watchdog and ResetReason
2019-07-03 11:43:52 +01:00
Martin Kojtal
61c4d05ce9
Merge pull request #10824 from ABOSTM/PRSTM32_PWMWRTIE_GLITCH_10734
...
STM32: pwmout_write: configure channel only when not already enabled
2019-06-28 14:24:14 +01:00
Martin Kojtal
924af9481e
Merge pull request #10841 from VVESTM/vve_10827_spi_count
...
TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference
2019-06-26 09:09:38 +01:00
Martin Kojtal
b0073bb70d
Merge pull request #10774 from fkjagodzinski/fix-uart_irq
...
Fix serial IRQ handling
2019-06-25 15:49:41 +01:00
Alexandre Bourdiol
a339084684
STM32: pwmout_write: configure channel only when not already enabled
...
Fix PWM glitch on write(), TARGET_STM/pwmout_api.c, #10734
2019-06-20 17:49:16 +02:00
Vincent Veron
31eb49b918
TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference
...
Extend to all STM targets the work done on PR10752.
Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-06-14 14:15:56 +02:00
Martin Kojtal
94d2a42fd5
Merge pull request #10793 from jeromecoutant/PR_STM32WARNING
...
STM32: remove compilation warnings
2019-06-11 07:36:47 +01:00
jeromecoutant
daf8d114c4
STM32L0 warning compilation
...
[-Wparentheses-equality]
2019-06-07 18:10:17 +02:00
Filip Jagodzinski
b88b94eb75
STM32L0: Fix serial IRQ handling
...
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:17:22 +02:00
Teijo Kinnunen
728c01f9e3
STM32L0: Add DEVICE_SPI_COUNT to DISCO_L072CZ_LRWAN1 + MTB_MURATA_ABZ
...
Enables simultaneous use of both SPIs without interference.
2019-06-04 09:38:20 +03:00
jeromecoutant
d919498745
STM32: common cmsis.h and device.h
2019-05-27 16:27:41 +02:00
jeromecoutant
feec85cc37
STM32 WATCHDOG : update STM32L0 HAL_IWDG_Init to a newest version
2019-05-24 11:35:41 +02:00
jeromecoutant
e29d64fc19
STM32 WATCHDOG : compilation issue with typed define
2019-05-24 11:35:40 +02:00
jeromecoutant
ec00ea5655
STM32 ADC INTERNAL CHANNEL reset after read
...
Internal channels use is enabling ADC "internal path"
which needs to be disabled after measurement
2019-03-29 14:30:49 +01:00
Sarah Marsh
c668472f01
NUCLEO_L073RZ: IAR linker script issue
2019-03-07 13:55:55 +01:00
deepikabhavnani
944483b0f7
Add missing SHEBANG = #! armcc -E
2019-02-28 19:54:38 -06:00
deepikabhavnani
0dc5561991
Guard RAM start and size defines
2019-02-28 19:54:38 -06:00
deepikabhavnani
b598dc1f46
Target_STM: Add ARM_LIB_STACK and ARM_LIB_HEAP section
...
Instead of user defined symbols in assembly files or C files,
use linker scripts to add heap and stack - this is inconsistent
with ARM std linker scripts
2019-02-28 19:54:28 -06:00
Cruz Monrreal
4b9d07a1da
Merge pull request #9792 from sarahmarshy/nucleo-gcc-bootloader
...
NUCLEO_L073RZ Bootloader support
2019-02-28 18:21:14 -06:00
Sarah Marsh
22abea324d
Modify linker scripts for IAR and ARM compilers to support bootloader on NUCLEO_L073RZ
2019-02-22 11:06:29 +00:00
Sarah Marsh
44bc123483
Add bootlader support for NUCLEO_L073RZ on GCC
2019-02-21 16:14:16 +00:00
Deepika
e522c4691e
Target_STM:_sbrk updated to use limits from linker files no need to set defines
...
_sbrk uses the exports from linker file __end and __HeapLimit to allocate memory
in heap. Linker scripts were updated accordingly to set the limits.
2019-02-19 15:49:49 -06:00
Russ Butler
3bd3aca6db
Add HAL API for analog out pinmap
...
Add the function analogout_pinmap to all targets.
2019-02-08 09:10:05 -06:00
Russ Butler
4818f88d73
Add HAL API for analog in pinmap
...
Add the function analogin_pinmap to all targets.
2019-02-08 09:09:51 -06:00
Martin Kojtal
ed53fe1ed4
Merge pull request #9534 from jeromecoutant/PR_FLOW
...
STM32 Serial Flow Control
2019-02-04 14:35:47 +01:00
jeromecoutant
eec7126d37
STM32 Serial Flow Control
...
Crash occured when RTS=CTS=NC
Now we chek if used pins are the same UART as TX and RX
2019-01-31 17:11:23 +01:00
Rob Vlaar
fa68d43ebd
fixed indentation
2019-01-31 08:55:51 +01:00
Rob Vlaar
4378689944
Reset internal vref buffer after an ADC conversion using the config channel function
2019-01-30 14:43:05 +01:00
Martin Kojtal
d92febe700
Merge pull request #9327 from jeromecoutant/PR_IFDEF
...
STM32: replace missing #ifdef DEVICE_xxx
2019-01-11 14:07:28 +00:00
Cruz Monrreal
2454b25eba
Merge pull request #9092 from mprse/stack_unification_sec_try
...
Interrupt stack size unification + test
2019-01-10 16:08:44 -06:00
jeromecoutant
877a3a13e1
STM32: replace missing #ifdef DEVICE_xxx
2019-01-10 11:02:52 +01:00
Martin Kojtal
c27dabe765
Merge pull request #9256 from jeromecoutant/PR_FLASHEEPROM
...
STM32L0 & STM32L1: FLASH is EEPROM
2019-01-08 15:06:50 +00:00
Przemyslaw Stekiel
58f6bf7292
[STM] Support boot stack size configuration option
2019-01-08 15:32:06 +01:00
Martin Kojtal
63eca294a1
Merge pull request #9163 from InfernoEmbedded/fix-8913-partner
...
Don't use define checks on DEVICE_FOO macros (partner code)
2019-01-07 16:37:24 +00:00
jeromecoutant
ef2fcebf57
STM32 L0 & L1: FLASH is EEPROM
2019-01-04 15:37:16 +01:00
jeromecoutant
087cd26dd4
STM32L0 ADC TEMPERATURE CHANNEL rework
2019-01-03 17:03:07 +01:00
Alastair D'Silva
aa80b7c70a
Don't use define checks on DEVICE_FOO macros (partner code)
...
The DEVICE_FOO macros are always defined (either 0 or 1).
This patch replaces any instances of a define check on a DEVICE_FOO
macro with value test instead.
Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2018-12-20 20:02:29 +11:00
jeromecoutant
6b226ffcef
STM32 RTC update for easy maintenance
2018-12-04 11:08:30 +01:00
Cruz Monrreal
3cc7530039
Merge pull request #8844 from jeromecoutant/PR_HTML
...
STM32 : Remove html release notes files
2018-11-30 19:20:44 -06:00
jeromecoutant
baec3b9e90
STM32 remove html release notes files
2018-11-22 16:27:59 +01:00
bcostm
df74f64a4a
DISCO_L072CZ: remove ADC_VBAT pin definition
2018-11-20 16:03:12 +01:00
David Saada
542744d03c
Support erase value in Flash HAL drivers, FlashIAP and block devices
2018-11-07 14:23:07 +02:00
Deepika
bf1a2c8485
[ST]: Fix alignment of execute region to 8-byte boundary in ARM linker files
...
--legacyalign, --no_legacyalign are deprecated from ARMC6 compiler, in order to
remove deprecated flags all linker files should strictly align to 8-byte boundary
2018-10-09 14:47:14 -05:00
jeromecoutant
12522210a2
STM32L0 internal channel ADC_TEMP
...
Temperature measurement was not stable
2018-09-12 17:21:36 +02:00
jeromecoutant
5bbe62889a
STM32L072 : ADC internal channels correction
2018-09-12 17:21:30 +02:00
Yossi Levy
acfda5895e
Changes in PR #7774 of PinNames.h should be reverted. This commit reverts those files excpet for K82F and K64F which are left as an example
2018-09-05 14:13:05 +03:00
Yossi Levy
ed8e170d15
Moving SD, SPIF and FLASHIAP into mbedos and refactoring features storage directory structure.
2018-08-29 12:01:11 +03:00
jeromecoutant
220d033468
STM32L0 assert in SetSysClock replaced
2018-08-13 15:55:51 +02:00
Laurent Meunier
402f3f1c3f
STM32: check for UART ongoing transfers before entering deepsleep
...
As suggested by Russ Butler in mbed-os issue #7328 , and until there is an
implementation of mbed-os issue #4408 , we are implementing a workaround
at HAL level to check if there is any ongoing serial transfer (which happens
if HW FIFO is not yet empty).
In case a transfer is ongoing, we're not entering deep sleep and
return immediately.
2018-08-07 11:30:53 +02:00
bcostm
7097e07b62
stm32 ticker: typo corrections
2018-07-11 14:43:36 +02:00
bcostm
d8e839a789
stm32 ticker: change license
2018-07-11 14:43:16 +02:00
bcostm
32031cbab3
stm32 ticker: rename hal_tick.h in us_ticker_data.h
2018-07-11 14:42:44 +02:00
bcostm
fbd7a97e19
stm32 ticker: rename macro and update ST HAL Tick functions
...
- rename TIM_MST_16BIT in TIM_MST_BIT_WIDTH in order to use it directly in ticker info structure
- change HAL_InitTick() and HAL_GetTick()
2018-07-11 14:39:42 +02:00
jeromecoutant
3721ac44d2
STM32 serial RX/TX active patch
...
In serial_tx_active and serial_rx_active functions,
we check the internal state value with
HAL_UART_STATE_BUSY_TX = 0x21U,
HAL_UART_STATE_BUSY_RX = 0x22U,
It seems that value can also be :
HAL_UART_STATE_BUSY_TX_RX = 0x23U,
2018-06-28 18:05:52 +02:00
jeromecoutant
baf97d78aa
TARGET_STM32L0 astyle
2018-06-27 14:43:59 +02:00
bcostm
b087390a1a
Remove HAL_TICK_DELAY (no more used)
2018-06-05 16:53:40 +02:00
Cruz Monrreal
07fb7c1adc
Merge pull request #6987 from jeromecoutant/PR_ADC
...
STM32 ADC update
2018-06-02 19:52:51 -05:00
jeromecoutant
4d3a54443d
STM32L0 ADC internal channels update
2018-05-22 13:17:16 +02:00
jeromecoutant
b30f3abf11
STM32 PeripheralPins.c second update after review
...
genpinmap script version 1.1
2018-05-17 17:58:09 +02:00
jeromecoutant
3e56a68eca
STM32L0 DISCO : PeripheralPins.c and PinNames.h files alignment
2018-05-16 17:05:10 +02:00
jeromecoutant
b308d5cb71
STM32L0 NUCLEO : PeripheralPins.c and PinNames.h files alignment
2018-05-16 17:04:31 +02:00
bcostm
893b759663
L0 ST CUBE V1.10.0: change adc sampling time
2018-04-18 14:06:21 +02:00
bcostm
61576f8131
L0 ST CUBE V1.10.0: spi and i2c corrections
2018-04-18 14:06:20 +02:00
bcostm
8191487a4d
L0 ST CUBE V1.10.0
2018-04-18 14:06:20 +02:00
jeromecoutant
eeca430b23
STM32L0 : correct compilation warnings
2018-04-12 10:55:11 +02:00
Wilfried Chauveau
d1a0ff9964
remove magic calibration value for HSI in ST's targets
2018-02-12 16:47:35 +00:00
Martin Kojtal
8e8b3d3bbd
Merge pull request #6036 from bcostm/dev_move_DISCO_L072CZ
...
DISCO_L072CZ_LRWAN1: move target folder
2018-02-08 15:19:08 +00:00
bcostm
7630874b9c
Move TARGET_DISCO_L072CZ_LRWAN1 folder
2018-02-07 16:23:09 +01:00
Wilfried Chauveau
6c9fcf3dd8
rename MURATA type ABZ & WISE_1510 to their expected name
2018-02-06 21:23:37 +00:00
Cruz Monrreal
f907012e55
Merge pull request #5962 from bcostm/fix_usart_irq_index
...
STM32: Fix usart irq index
2018-01-31 12:16:17 -06:00
Cruz Monrreal
097966b8c7
Merge pull request #5905 from ithinuel/add-CMWX1ZZABZ-078-support
...
add support for the murata's module CMWX1ZZABZ-078 based on STM32L0
2018-01-31 12:14:29 -06:00
bcostm
e8454ff522
STM32 serial: improve irq index management for L0 devices
2018-01-29 17:23:21 +01:00
jeromecoutant
8f647beacb
STM32 : set all PinMap structures as weak
...
This allow custom overwrites
2018-01-29 09:26:49 +01:00
Wilfried Chauveau
f8e88d7443
add support for the murata's module based on STM32L0
2018-01-26 12:26:25 +00:00
jeromecoutant
6086c51234
STM32LX : HAL_RCC_OscConfig update in PLL configuration
...
check PLL settings before retuuning error
2018-01-22 13:35:11 +01:00
jeromecoutant
06e9fb6c9b
STM32L0: STDIO_UART_TX and STDIO_UART_RX can be now user defined
2018-01-08 11:12:17 +01:00
Jimmy Brisson
62a7ecddd3
Merge pull request #5570 from jeromecoutant/PR_STDIO
...
STM32 UART init update
2018-01-04 09:50:18 -06:00
jeromecoutant
6d64c2fbf4
STM32 UART init update
...
- serial_init, serial_free and serial_baud function moved from serial_device.c (specific to each STM32 family) to serial_api.c (common STM32 file)
- default baudrate value was hardcoded to 9600
- Value is set now to MBED_CONF_PLATFORM_STDIO_BAUD_RATE for STDIO
- Value is set now to MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE for other use
- UART init will not be stopped before calling serial_baud function
2017-11-23 14:47:54 +01:00
Jimmy Brisson
ced2f74f16
Merge pull request #5513 from bcostm/fix_adc_inited
...
STM32: Initialize ADC peripheral for each AnalogIn object creation
2017-11-22 10:16:14 -06:00
Jimmy Brisson
800be4e90d
Merge pull request #5512 from jeromecoutant/PR_L072
...
DISCO_L072CZ_LRWAN1 can use LSE from LORA module
2017-11-20 10:53:20 -06:00
bcostm
c54e9079b8
STM32 ADC: replace flags type from int to bool
2017-11-17 13:50:59 +01:00
bcostm
1d3eb508bf
STM32: fix linker error with adc_read()
2017-11-17 13:50:59 +01:00
bcostm
34fdcc926b
STM32: move analogin_read functions in a common file
2017-11-17 13:50:59 +01:00
bcostm
4dbe95dded
STM32: rename analogin_api.c in analogin_device.c
2017-11-17 13:50:59 +01:00
bcostm
4b82479175
STM32L0 ADC: remove adc_inited flag
2017-11-17 13:50:59 +01:00
jeromecoutant
5f86ae5757
STM32L072CZ error in ARM sct file name
2017-11-16 15:12:51 +01:00
bcostm
f0aed41991
DISCO_L072CZ: remove dead code
2017-11-15 08:59:50 +01:00
bcostm
c0f6b25eba
DISCO_L072CZ: align SetSysClock_PLL_HSE() with SetSysClock_PLL_HSI()
2017-11-13 11:34:56 +01:00
bcostm
ad55bc26dc
STM32: Remove GCC_ARM compilation warnings
2017-10-17 14:04:59 +02:00
Jimmy Brisson
de3784f6da
Merge pull request #5288 from bcostm/NUCLEO32_add_ALT_pins
...
STM32: Add alternate pins on NUCLEO 32pins boards
2017-10-13 09:27:53 -05:00
bcostm
e46beb659f
NUCLEO_L011K4: add ALT pins + cleanup
2017-10-10 14:44:01 +02:00