Commit Graph

2091 Commits (e1c3de649dd9c16d9548f73b4bbb71858af904f7)

Author SHA1 Message Date
Martin Kojtal 8637069b36
Merge pull request #11698 from kjbracey-arm/armstack
Clean up ARM toolchain heap+stack setup in targets
2019-10-24 11:37:11 +02:00
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
Martin Kojtal 9db54bc1ee
Merge pull request #11672 from ABOSTM/I2C_FASTMODEPLUS
STM32F767ZI - I2C FastModePlus not properly enabled
2019-10-22 09:46:16 +02:00
Martin Kojtal cd415cfb41
Merge pull request #11708 from ABOSTM/FIX_SPI_COMPILATION_WARNING
TARGET_STM: remove warning and fix typo on SPI
2019-10-21 09:40:23 +02:00
Martin Kojtal 42cb19b6d8
Merge pull request #11679 from jeromecoutant/PR_L4_TRNG
STM32L4 TRNG clock configuration
2019-10-21 09:39:24 +02:00
Martin Kojtal 4af05bb370
Merge pull request #11648 from rohfle/target-olimex-stm32e407
OLIMEX_STM32E407_F407ZG: Added new target platform
2019-10-18 16:05:05 +02:00
Martin Kojtal d851a63e46
Merge pull request #11602 from kyle-cypress/pr/qspi-arbitrary-alt-size
Allow for arbitrary QSPI alt sizes
2019-10-18 15:48:16 +02:00
Martin Kojtal 8ff5cf9216
Merge pull request #11700 from toyowata/arch_max_bootloader
Add bootloader support for Seeed Arch-MAX
2019-10-18 10:32:00 +02:00
Alexandre Bourdiol bca9d9500e TARGET_STM: remove warning and fix typo on SPI 2019-10-18 09:48:30 +02:00
Rohan Fletcher 4b971fbb8f OLIMEX_STM32E407_F407ZG: Added definitions for missing LEDs 2019-10-18 06:37:09 +13:00
Martin Kojtal dba8e77b8c
Merge pull request #11688 from LMESTM/Clearing_UART_TC_Flag_prevents_deepsleep
Clearing UART TC Flag prevents deep sleep, so do not clear it
2019-10-17 14:17:15 +02:00
jeromecoutant 7db11e0b20 STM32 TRNG clock configuration 2019-10-17 13:51:33 +02:00
toyowata 5389536953 Add bootloader support for Seeed Arch-MAX 2019-10-17 10:05:03 +09:00
Kyle Kearney 8e9877c212 Update STM driver changes for clarity
- Use a switch statement rather than shifting and masking to compute
  the AlternateBytes value.
- Rename rounded_size to alt_bytes to clarify its purpose.
2019-10-16 09:37:27 -07:00
Martin Kojtal 16568da47f
Merge pull request #11605 from ABOSTM/DISCO_H747I_DUALCORE_SUPPORT
DISCO_H747I dualcore support
2019-10-16 17:35:25 +08: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
Alexandre Bourdiol 728a1c4383 STM32F767ZI - I2C FastModePlus not properly enabled 2/2
Warning: sometimes I2C_FASTMODEPLUS_I2Cx is defined,
even if not supported by some chip within the family
2019-10-15 13:46:29 +02:00
Janne Kiiskila 02c139f27a stm32f4xx_hal_pcd.c@346,22: unused variable 'ep'
Compiler warning fix, trivial. One function has an unused
variable, delete that line.
2019-10-15 09:49:09 +03:00
Alexandre Bourdiol 6397a1d555 Mbed patch of STM32cube for bootloader: use NVIC_FLASH_VECTOR_ADDRESS 2019-10-14 18:03:47 +02:00
Alexandre Bourdiol 02cdac5fe3 Update HAL/LL EXTI to have default API applied on current core and nott CPU1 2019-10-14 18:03:28 +02:00
Alexandre Bourdiol 48aba33204 SystemCoreClock should correspond to current core clock and not D1 clock. 2019-10-14 18:03:06 +02:00
Alexandre Bourdiol adcf0e2fa5 DISCO_H747I Dualcore support
Add 2 targets for DISCO_H747I dualcore:
* DISCO_H747I      -> for CM7 core
* DISCO_H747I_CM4  -> for CM4 core

Current restrictions:
* TICKLESS deactivated
* DeepSleep not supported (DeepSleep wrapped to sleep)

Warning: use of the same IP (example I2C1) by both core at the same time is not prevented,
but is strongly not recommended.
Some Hardware Semaphore are use for common IP, to manage concurrent access by both cores: Flash, GPIO, RCC.

Warning: Drag and drop of binary to DISCO_H747I will flash CM7.
         In order to flash CM4, one can use STM32 CubeProgrammer tool.
2019-10-14 18:02:57 +02:00
Martin Kojtal 8ff444ff80
Merge pull request #11621 from jeromecoutant/PR_L1_VREFINT_CAL_ADDR
STM32L151: update calibration memory address
2019-10-14 09:23:16 +02:00
Martin Kojtal 379787a127
Merge pull request #11626 from jeromecoutant/PR_DISCO_L4R_STMOD
DISCO_L4R9I: update default STMOD+ pin
2019-10-14 09:22:35 +02:00
Anna Bridge 489c30f569
Merge pull request #11297 from kyle-cypress/pr/qspi-dummy-cycles
Differentiate alt and dummy cycles in QSPIF
2019-10-11 14:34:17 +01:00
Alexandre Bourdiol 66765332e0 STM32F767ZI - I2C FastModePlus not properly enabled
Fixes #11659
2019-10-10 10:26:59 +02:00
Rohan Fletcher 02df759c37 OLIMEX_STM32E407_F407ZG: Added new target platform
Added Olimex STM32-E407 (STM32F407ZG) evaluation board.
USB, UART, External HS XTAL and Ethernet are all working correctly.
2019-10-10 09:20:28 +13:00
Anna Bridge f1295b9aa7
Merge pull request #11573 from felser/add_413_dragonfly
Add 413 dragonfly
2019-10-07 16:48:07 +01:00
jeromecoutant fc5b91a36f DISCO_L4R9I: update default STMOD+ pin 2019-10-07 16:01:16 +02:00
jeromecoutant 1673e8aa1b STM32L151: update calibration memory address 2019-10-03 14:17:04 +02:00
Kyle Kearney 9b32c0f316 Fix possible negative QSPI alt count on STM
Remove an extraneous decrement operation in cases where the alt
bits size is a multiple of 8.
2019-09-30 16:00:24 -07:00
Matthew Macovsky baf375f8cb Allow for arbitrary QSPI alt sizes
The QSPI spec allows alt to be any size that is a multiple of the
number of data lines. For example, Micron's N25Q128A uses only a
single alt cycle for all read modes (1, 2, or 4 bits depending on
how many data lines are in use).
2019-09-30 14:45:08 -07:00
Ben Cooke dd778c4126 Add MTS_DRAGONFLY_F413RH platform to mbed-os 2019-09-30 13:50:40 -05:00
jeromecoutant fff88617b7 STM32H7 ST CUBE V1.5.0 update 2019-09-27 11:39:06 +02:00
Martin Kojtal fff888b118
Merge pull request #11562 from VVESTM/vve_h7_memmap
STM32H7: memory relocation
2019-09-26 14:01:23 +02:00
jeromecoutant 8c1f94f7cb STM32WB : LSI clock selection when LSE is not available 2019-09-19 13:07:54 +02:00
jeromecoutant 5cfee65881 STM32H7: LSI clock selection when LSE is not available 2019-09-19 13:07:54 +02:00
Martin Kojtal 83fca603f0
Merge pull request #11454 from Tharazi97/LSI_VALUE_STM
ST: Change the LSI_VALUE according to documentation
2019-09-18 13:49:38 +02:00
Vincent Veron 82e89add61 STM32H7 : use RAM instead of DTCMRAM (GCC_ARM toolchain) 2019-09-18 10:57:21 +02:00
Vincent Veron ac30a70092 STM32H7 : use RAM instead of DTCMRAM (ARM toolchain) 2019-09-18 10:57:20 +02:00
Vincent Veron d241eef5d4 STM32H7 : use RAM instead of DTCMRAM (IAR toolchain)
Keep vector table and crash data ram in 0x20000000 for
tests-mbed_platform-crash_reporting test.
Move the rest in RAM (0x24000000). This is needed for ethernet and allows
user to use more RAM (512k).

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-09-18 10:57:19 +02:00
int_szyk 48040cf687 Change the LSI_VALUE according to documentation 2019-09-17 12:01:32 +02:00
mahanthgouda 1780a08d54 Add OKDO platform (#11407)
Add OKDO platform
2019-09-16 16:58:54 +02:00
Martin Kojtal f51bbe01c8
Merge pull request #11471 from jeromecoutant/PR_WB_ADC
STM32WB ADC : consecutive VBAT reading
2019-09-16 13:19:09 +02:00
jeromecoutant ee8489f4e9 STM32WB ADC : Consecutive VBAT values reading was not possible
Add Stop after read
2019-09-12 12:55:41 +02:00
Martin Kojtal c897e041c8
Merge pull request #11384 from jeromecoutant/PR_H747_CM7
ST DISCO-H747I introduction
2019-09-10 19:43:57 +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
jeromecoutant 535dbe87af STM32H747 license update 2019-09-10 11:46:52 +02:00
jeromecoutant c28d5f17e5 DISCO_H747I single core M7 introduction 2019-09-10 11:46:50 +02:00
jeromecoutant 73a00e953d STM32H747xI introduction 2019-09-10 11:46:47 +02:00