Commit Graph

75 Commits (feature-sdio)

Author SHA1 Message Date
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
Kevin Bracey a522dcfa0a Replace deprecated wait calls 2019-07-15 10:13:50 +03: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
jeromecoutant d919498745 STM32: common cmsis.h and device.h 2019-05-27 16:27:41 +02:00
Bilal Qamar defc244db2 +UPSND sent to poll activation status 2019-05-22 16:52:03 +05:00
mudassar-ublox 5f55eedfae cellular target name change for ublox cellular instance 2019-05-03 11:21:38 +05:00
Martin Kojtal 1bbf7d69d1
Merge pull request #9902 from wajahat-ublox/r412m_reset
Remove assertion of MDMRST in case of SARA-R4
2019-03-14 09:40:44 +01:00
Martin Kojtal 76fe7267e7
Merge pull request #9637 from u-blox/C030_N211_Cellular_Driver
Cellular: UBLOX_C030_N211 Cellular API's
2019-03-14 09:11:06 +01:00
Wajahat Abbas b7b083e6a2 do not assert MDMRST in case of SARA-R4 2019-03-01 15:33:26 +05:00
mudassar-ublox 6c347eafe5 C030_N211 cellular api refactoring 2019-02-26 17:28:01 +05: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
Fahim Alavi 3549083f9c Default behavior of C030-R412M should be to use modem IP stack 2019-02-11 16:12:29 +05:00
Nir Sonnenschein 8c2ad14ace
Merge pull request #9568 from ARMmbed/feature-cellular-refactor
Merge feature cellular refactor
2019-02-07 18:17:32 +02:00
Ari Parkkila 7578d5b174 Cellular: Fix mbed2-build of onboard-modems 2019-01-29 01:08:17 -08:00
Fahim Alavi 03996da125 Fixed modem reset functionality to avoid low time to trigger module switch off 2019-01-24 11:37:32 +05:00
Ari Parkkila c4de2f2f0e Cellular: Power API updated to match onboard_modem_api 2019-01-22 02:24:45 -08:00
Ari Parkkila 269d151b12 Cellular: Default modem drivers with FF_ARDUINO 2019-01-22 02:24:45 -08:00
Ari Parkkila 75caa75a96 Cellular: Add get_target_default_instance in CellularDevice 2019-01-22 02:24:45 -08:00
Fahim Alavi 1bcbd40c0e PB_1 is not connected to D4 in R412M above 2019-01-18 13:56:48 +05:00
Fahim Alavi 5caeaed6db Set target C030-R412M in mbed 2019-01-14 17:34:50 +05:00
Przemyslaw Stekiel 58f6bf7292 [STM] Support boot stack size configuration option 2019-01-08 15:32:06 +01:00
mudassar-ublox a7ccb65e80 Ublox C030 ADC internal channels added 2018-12-20 11:00:36 +05:00
test user 5de7fac91c ublox c030 pinName updated 2018-12-12 04:08:17 -12:00
Senthil Ramakrishnan ef8c1c3cb6 Linker script modifications for crash data region 2018-11-16 13:59:59 -06: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
Wajahat Abbas a93ff7c931 Added PC2 pin to ADC pin map 2018-08-30 15:19:50 +05:00
mudassar-ublox ffb4f926e9 Artistic style applied and updated power function 2018-07-30 19:41:02 +05:00
mudassar-ublox a8abeccdac UBLOX cellular api's for UDP and TCP 2018-07-26 19:20:38 +05: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 f50720e2a4 TARGET_STM32F4 astyle 2018-06-27 14:42:28 +02:00
bcostm b087390a1a Remove HAL_TICK_DELAY (no more used) 2018-06-05 16:53:40 +02:00
bcostm e09e1147d8 Cleanup
- Remove calls to HAL_SuspendTick and HAL_ResumeTick
- Rename stm_common.c in hal_tick_common.c
2018-06-05 14:48:54 +02:00
Rob Meades c53fb9dc64 Call i2c_init() before i2c_frequency() (since i2c_frequency() requires the object to be set up) and zero the I2C object before giving it to i2c_init() as i2_init() has to set up a default frequency for its timeouts to work and it will only do this if the hz field in the object was zero to begin with (otherwise you end up with a random but usually very large indeed timeout). 2018-03-01 14:52:42 +00:00
Fahim Alavi 192250af87 Support added for R410M Changes
target added r410m

Spaces removed

Trace updated
2018-02-20 10:32:14 +05:00
Martin Kojtal 105da034a3
Merge pull request #6117 from u-blox/i2c_read_write
UBLOX C030: I2C avoid any RTOS waits
2018-02-19 17:16:59 +01:00
Bilal 8ebb234d51 Formatting change - II 2018-02-19 12:32:54 +05:00
Bilal c91b61e03c Formatting change 2018-02-16 17:20:10 +05:00
Bilal 46d84b7ebb Replacing i2c_xxxx(...) calls to reduce binary size and avoid any RTOS waits 2018-02-16 15:24:50 +05:00
jeromecoutant ea9c1f29a1 STM32F4 Cube v1.19.0 update : ST CMSIS files
Previous version was v1.16.0
2018-02-15 16:33:32 +01:00
jeromecoutant 9c6e7c0fa0 STM32F4: STDIO_UART_TX and STDIO_UART_RX can be now user defined
NB for UBLOX targets: usb_rx and usb_tx config name are still available
in order to not break current applications.
2018-01-08 11:42:46 +01:00
Bilal 0469dfb892 Bracket moved to next line 2017-12-13 16:37:19 +05:00
Bilal 5c1623c9e1 Licenses added in header files 2017-12-08 19:51:25 +05:00
Bilal a40469e7c5 C030 Battery Charger Voltage Fix 2017-12-08 17:39:21 +05:00
Jimmy Brisson cc0b3d05aa Merge pull request #5130 from bcostm/freeze_timer_in_debug
STM32: Freeze master timer on stop/breakpoint
2017-10-02 10:38:57 -05:00
Jimmy Brisson a2cdb10bf7 Merge pull request #4932 from LMESTM/can_reset
Fix STM32 CAN reset to not lose context
2017-09-20 16:24:40 -05:00
bcostm 9f86a32baf Add freeze timer on debug for all STM32 devices
This is a continuation of the work done on the STM32F401xE devices only.
2017-09-18 13:31:46 +02:00
Jimmy Brisson 0b7a9033b5 Enable many STM devices with ARMC6
Yet another incorrect arm vs gcc discriminant
2017-09-11 13:20:32 -05:00