Commit Graph

62 Commits (tools-release-6.1.0)

Author SHA1 Message Date
Marcelo Salazar 81a92e3cb5 Re-enable K82F target 2020-04-30 09:56:37 +01:00
MarceloSalazar 3fa7f03508 Remove RAPIDIOT targets 2020-04-30 09:56:33 +01:00
MarceloSalazar a58de82a7f Remove KL82Z target 2020-04-30 09:56:33 +01:00
Przemyslaw Stekiel d36f2aacb2 KW24D, KW41Z: Remove GPIO pin-maps (use restricted GPIO pins if needed) 2020-02-24 14:56:54 +01: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
Mahesh Mahadevan e65012e549 MCUXpresso: Update the Kinetis Serial driver for MBED_TICKLESS
We should not block in case the UART is busy transmitting. The
API has been updated to check the status of all UART's and return
1 in case any of them is busy transmitting.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-09-05 13:58:59 -05:00
Mahesh Mahadevan 5af80db8b6 MCUXpresso Kinetis SPI drive: Add a delay between CS assertion and first sclk edge
1. FPGA test shield requires at least half sclk period delay between
CS assertion and first sclk edge
2. Update Kinetis SPI drivers to match what is already done for K64F

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-23 07:11:43 -05:00
Mahesh Mahadevan a184a86e90 MCUXpresso: Update the SDK LPUART drivers
Use the latest driver from K66F

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 08:26:11 -05:00
Mahesh Mahadevan bff287580c MCUXpresso: Update I2C SDK driver
Use the K66F driver that has the latest

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 07:48:29 -05:00
Mahesh Mahadevan 23bf7b74b0 MCUXpresso: Update SDK EDMA driver
Update to the latest version from K66F

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 07:48:29 -05:00
Mahesh Mahadevan 382696fc50 MCUXpresso: Use SDK API for spi_master_block_write
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 07:48:28 -05:00
Mahesh Mahadevan 4102114a72 MCUXpresso: Update Kinetis DSPI SDK drivers
- Added dummy data setup API to allow users to configure
  the dummy data to be transferred.
- Added new APIs for half-duplex transfer function. Users
  can send and receive data by one API in the polling/interrupt/EDMA way,
  and they can choose either to transmit first or to receive first.
  Additionally, the PCS pin can be configured as assert status in
  transmission (between transmit and receive) by setting the
  isPcsAssertInTransfer to true.
- Fix for MISRA issues

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 07:48:28 -05:00
Mahesh Mahadevan eaace297dc MCUXpresso: Provide an API to wait till TX complete
Wait till the data is flushed out of TX buffer

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:04 -05:00
Mahesh Mahadevan 75608f6db2 MCUXpresso: Updated SMC SDK driver
Update includes allocating RAM region for code to enter
stop modes and execute this code in RAM, thus the flash
is idle and no prefetch is performed while entering stop
mode.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:56:56 -05:00
Seppo Takalo 3d5489a6f8
Merge pull request #10644 from fkjagodzinski/hal-gpio_pinmap
Add a gpio pinmap
2019-07-17 14:39:40 +03:00
Martin Kojtal 8b49ffc0c3
Merge pull request #10920 from NXPmicro/Update_Kinetis_SDK_Clock_Driver
Kinetis MCUXpresso: Update the clock drivers
2019-07-02 12:44:09 +01:00
Mahesh Mahadevan 6c674ec0c7 Kinetis MCUXpresso: Update the clock drivers
Updated driver includes
1. Bug fixes
2. Formatting updates.
3. Fix for warnings
4. Better code commenting

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-06-28 10:09:52 -05:00
Martin Kojtal 85c477c1dc
Merge pull request #10609 from kjbracey-arm/us_ticker_optimise
wait_us optimization
2019-06-28 14:29:00 +01:00
Kevin Bracey e5e2e0ac22 Freescale MCUXpresso: optimize us_ticker
Provide new optimizations for us_ticker and wait_us.
2019-06-14 10:22:08 +03:00
Filip Jagodzinski 96b6cd3ee6 KW41Z: 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 16:33:42 +02:00
Filip Jagodzinski 61f9a1c362 KW41Z: Add a GPIO pinmap for testing 2019-05-27 14:57:01 +02:00
Arto Kinnunen 647ac06f04 Use Mbed OS coding style
Run astyle 3.0 for the changed c-files.
2019-03-11 16:59:54 +02:00
Arto Kinnunen e1deb88471 Add spi_get_peripheral_name to MCUEpresso spi_api
Fix issue https://github.com/ARMmbed/mbed-os/issues/9149.

Port changes from https://github.com/ARMmbed/mbed-os/pull/9845 also
to targets: K64F, K66F, KW24D and KW41Z
2019-03-11 14:18:41 +02:00
deepikabhavnani c5ad5f6c94 Target_Freescale:Add heap section 2019-02-19 15:49:49 -06:00
Deepika e03455a920 Target_Freescale: Set the heap size and limit 2019-02-19 15:49:49 -06:00
Russ Butler 8669417e7b Add HAL API for spi pinmap
Add the functions to get spi pinmaps to all targets.
2019-02-08 09:10:37 -06:00
Russ Butler 34c176654d Add HAL API for serial pinmap
Add the functions serial_tx_pinmap, serial_rx_pinmap, serial_cts_pinmap
and serial_rts_pinmap to all targets.
2019-02-08 09:10:28 -06:00
Russ Butler be492fe07a Add HAL API for pwmout pinmap
Add the function pwm_pinmap to all targets.
2019-02-08 09:10:19 -06:00
Russ Butler 66b8ca2599 Define A0 to NC for the TARGET_KW41Z
Set A0 to NC so it is defined on the KW41Z platform.
2019-02-02 09:44:20 -06:00
Przemyslaw Stekiel 08004e141d [Freescale] Support boot stack size configuration option 2019-01-08 15:32:03 +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
Mahesh Mahadevan 3d8d65be6a Rapid-IoT: Add support for the KW41Z side of the platform
Add support for the KW41Z side of the RapidIoT platform. This requires the latest
DAPLink binary to be programmed on the RapidIoT platform, binary can be downloaded
from the below link:
https://armmbed.github.io/DAPLink/

Also, the KW41Z side on RapidIoT does not have a serial port connected to the Debug
terminal. Therefore a SerialPassThrough program should be flashed and running on the
K64F side of RapidIoT platform for the mbed tests to pass.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-12-14 06:35:43 -06:00
Mahesh Mahadevan dcc8b659bc MCUXpresso: Ensure the RTC OSC is running at bootup on Kinetis platforms
This is a fix for Issue 5348.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-11-28 10:31:58 -06:00
Cruz Monrreal II a5bef60afe Revert "Merge pull request #8272 from NXPmicro/Ensure_RTC_OSC_Start"
This reverts commit 3d859ca1d6, reversing
changes made to 03f4623b80.
2018-11-20 16:58:11 -06:00
Mahesh Mahadevan 76930c0979 KW41Z: Add Bootloader support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-11-06 12:03:26 -06:00
Mahesh Mahadevan ebf31c67f0 MCUXpresso: Ensure the RTC OSC is running at bootup on Kinetis platforms
This is a fix for Issue 5348.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-10-18 08:55:48 -05:00
Deepika 525545c7b0 Freescale: Fix alignment of execute region to 8-byte boundary
--legacyalign, --no_legacyalign are deprecated from ARMC6 compiler, in order to
remove deprecated flags all linker files (GCC and IAR as well to have uniformity)
should strictly align to 8-byte boundary
2018-09-19 09:35:59 -05:00
Oren Cohen 787317b7eb Remove uVisor from mbed-os 2018-08-22 16:36:59 +03:00
Przemyslaw Stekiel ace821017f Add implementation of ticker_free() function to CI boards.
This PR provides implementation of ticker_free() function for the following boards:
ARCH_PRO
EV_COG_AD3029LZ
EV_COG_AD4050LZ
K22F
K64F
K82F
KW24D
KW41Z
LPC546XX
NRF51_DK
NRF52_DK
NUCLEO_F207ZG
NUCLEO_F401RE
NUCLEO_F429ZI
NUCLEO_F746ZG
REALTEK_RTL8195AM
2018-08-02 09:48:10 +02:00
Przemyslaw Stekiel c0ee843d63 Add lp/us ticker_free() functions stub.
This patch adds only empty stubs of `us_ticker_free()` and `lp_ticker_free()` for all boards where these functions are not implemented.
2018-07-25 08:58:38 +02:00
David Saada 714d025f6c Rename text region in ARM linker file for a few NXP CPUs 2018-06-18 17:32:01 +03:00
Mahesh Mahadevan 62254c2bae KW41Z: Update usticker to use TPM instead of LPTMR for ticker
This will free up the LPTMR to be used as lpticker

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-05-25 12:33:41 -05:00
Mahesh Mahadevan 87244a969b KW41Z: Update SDK TPM driver
Certain instances of the TPM are missing some registers, updated
TPM driver handles this variation. This issue was discovered when
running the PWMOUT tests using the ci-test-shield

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-05-01 14:48:12 -05:00
Mahesh Mahadevan e163a2769f MCUXpresso: Update Kinetis flash driver
Flash functions needed to be called before entering deepsleep mode

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-04-10 08:16:41 -05:00
Mahesh Mahadevan 7ed36e4986 MCUXpresso_MCUS: Apply K64F us_ticker fix across all MCU's
Applied changes from commit b6a01de070
for other MCUXpresso MCUs

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2018-03-07 07:27:04 -06:00
Mahadevan Mahesh 168bdc8803 MCUXpresso: Fix issue of ticker interrupt incorrectly firing
Fix for Issue #5279

Signed-off-by: Mahadevan Mahesh <Mahesh.Mahadevan@nxp.com>
2017-10-18 15:29:57 +01:00
Jimmy Brisson cd4fd86f1f Correct Freescale + NXP compiler detection macros
Also removes duplication of common files
2017-09-11 13:20:32 -05:00
Jimmy Brisson 15a9a0382b Enable Compiling with ARMC6 across all targets
remove duplicate sys.cpp
2017-09-11 13:20:32 -05:00
Jimmy Brisson 1f94ede86c Merge pull request #4744 from deepikabhavnani/spi_issue_4743
Allow user to set default transfer byte for block read
2017-07-24 14:45:30 -05:00
Deepika 1b797e9081 Closed review comments
1. Doxygen and Grammar related
2. Change dummy to spi_fill
3. Remove NXP driver and add default loop in spi block read (same as all
other drivers)
2017-07-21 09:46:22 -05:00