Commit Graph

370 Commits (d1d6bf51b387ef39f97320b2febd5d79231682ba)

Author SHA1 Message Date
Przemyslaw Stekiel 3d719f7e35 K64F, NUCLEO_F429ZI: Use explicit pinmap for console 2019-11-28 08:32:00 +01:00
Przemyslaw Stekiel e82e190a66 K64F serial driver: Add explicit pinmap support 2019-11-28 08:32:00 +01:00
Przemyslaw Stekiel e0fdee9f0d TARGET_MCUXpresso_MCUS I2C driver: Add explicit pinmap support 2019-11-28 08:31:59 +01:00
Przemyslaw Stekiel 4a79e59ef6 K64F Analogout driver: Add explicit pinmap support 2019-11-28 08:31:58 +01:00
Przemyslaw Stekiel 640c0a0160 K64F Analogin driver: Add explicit pinmap support 2019-11-28 08:31:57 +01:00
Przemyslaw Stekiel 53d59adc11 K64F PWM driver: Add explicit pinmap support 2019-11-28 08:31:56 +01:00
Przemyslaw Stekiel 31bff30b64 K64F SPI driver: Add explicit pinmap support 2019-11-28 08:31:55 +01:00
Martin Kojtal 5f7ecea00b
Revert "MbedCRC and CRC HAL revisions" 2019-11-26 13:45:37 +00:00
Martin Kojtal 83fc580f79
Merge pull request #11773 from fkjagodzinski/fix-watchdog_reset_test
Fix watchdog reset test
2019-11-22 22:26:44 +01:00
Kevin Bracey 1f94428a56 Update HAL CRC API
* Change "is supported" check to be a macro, so it can be done at
  compile-time.
* Eliminate weird shift on 7-bit CRCs.
* Add support for 32-bit CRCs and reversals to TMPM3HQ.
2019-11-13 14:31:49 +02:00
Filip Jagodzinski 945a9b3ad5 K64F: Fix the watchdog mode settings
Enable the Watchdog Timer for the low-power stop modes of operation,
including the VLPS used in deepsleep.
Enable the Watchdog Timer for the Debug mode.
2019-11-04 19:35:01 +01:00
Martin Kojtal eea83007be
Merge pull request #11203 from Tharazi97/Watchdog_lower_limit_timeout_test
Add watchdog lower limit timeout test
2019-10-31 14:25:52 +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
int_szyk 82e5952693 Add watchdog clock accuracy to Freescale targets. 2019-09-30 08:10:24 +02:00
Michal Paszta 551bc8a1f5 Enable async serial for K66F
Added DMA definitions and usage for UART, based on K64F's code.
2019-09-09 18:43:43 +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 6eca8d2e2e MCUXpresso: Change the Kinetis deep sleep implementation
The code checks if any of the UART's is still transmitting.
If so then prevent from entering deepsleep

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-09-05 13:58:58 -05:00
Martin Kojtal 27571bc2d7
Merge pull request #11309 from NXPmicro/Fix_Kinetis_Spi
MCUXpresso Kinetis SPI drive: Add a delay between CS assertion and first sclk edge
2019-08-29 08:49:49 +02:00
Martin Kojtal 7e0fb8fab9
Merge pull request #11293 from NXPmicro/K82F_Add_USBDevice
K82F: Add USBDEVICE support
2019-08-28 07:27:40 +02: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 c249d5fd54 K82F: Add USBDEVICE support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 11:17:35 -05:00
Mahesh Mahadevan a85f0824be MCUXpresso: Update EDMA drivers to fix warnings
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 10:47: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 33b66ffa60 MCUXpresso: Update Kinetis SPI SDK drivers
Added dummy data setup API to allow users to configure
the dummy data to be transferred.

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
Martin Kojtal edcde1ce8c
Merge pull request #10796 from NXPmicro/tickless
NXP: Enable MBED_TICKLESS on various NXP platforms
2019-08-22 10:30:14 +02:00
Hugues Kamba 5cbc3e0497 Relocate USB target specific code to root `targets` directory
All target specific source and header files should be in the `targets`
directory located at the root of the Mbed OS repository.
2019-08-16 15:42:43 +01:00
Mahesh Mahadevan d68d8009d9 K64F: Update UART aynchronous API for tickless implementation
Do not allow entry to deep sleep mode when UART transfer is active

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:17 -05:00
Mahesh Mahadevan 72e1f415a9 K64F: Update SPI aynchronous API for tickless implementation
Do not allow entry to deep sleep mode when SPI transfer is active

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:14 -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
Mahesh Mahadevan df64e32aa3 MCUXpresso: Update Kinetis Sleep implementation
1. Use the updated API's provided by the SMC driver
2. Wait till debug UART has finished transmitting data

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:56:52 -05:00
Martin Kojtal fd931a169d
Merge pull request #11168 from maciejbocianski/fix_qspi_write_k82f
Xpresso: qspi_write fix
2019-08-09 08:23:21 +01:00
Maciej Bocianski f2599f43eb Xpresso: qspi_write fix
Due to the data buffer is loaded in two steps the whole block needs protection from being interrupted
2019-08-06 14:55:29 +02:00
Maciej Bocianski b788541308 freescale: fix i2c_byte_read function 2019-07-31 19:44:23 +02: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
Tymoteusz Bloch 878c93673b Reverted "K64F, STM32F429: IAR linker scripts dynamic heap fix"
due to side effect with K64F bootloader application jump after three consecutive HW resets.
2019-07-10 13:30:40 +02:00
Przemyslaw Stekiel 7d7c1416af K64F SPI driver: Add the delay between CS assertion and first sclk edge
FPGA test shield requires at lease half slck period delay between CS assertion and first sclk edge.
2019-07-08 14:54:33 +02:00
Arto Kinnunen 3d65ace77a
Merge pull request #10950 from artokin/Update_freescale_K6xF_linker_files
Enable split heap in K64F/K66F devices
2019-07-08 11:46:30 +03:00
Arto Kinnunen d7190c8af4 Adjust K66F GCC_ARM linker file
Move heap_0 after .data as it is also placed to m_data.
2019-07-05 14:59:35 +03:00
Martin Kojtal 608e4c245f
Merge pull request #10938 from tymoteuszblochmobica/iar
K64F, STM32F429: IAR linker scripts dynamic  heap fix
2019-07-03 12:00:35 +01:00
Martin Kojtal ccb63d771e
Merge pull request #10857 from ARMmbed/feature-watchdog
Add Watchdog and ResetReason
2019-07-03 11:43:52 +01:00
Kevin Bracey 810cb8de4a Enable split heap in K64F/K66F devices
-Enable MBED_SPLIT_HEAP for K64F and K66F
-Allow GCC_ARM toolchain to utilize remaining 64K memory area
-Make ARM toolchain to start memory filling from 64K region to leave
 more space to bigger 192K region.
2019-07-03 11:47:32 +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
Tymoteusz Bloch 83057c95d0 IAR icf linker scripts modified to use dynamic heap allocation of all available memory. 2019-07-01 17:57:40 +02: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
Martin Kojtal b0073bb70d
Merge pull request #10774 from fkjagodzinski/fix-uart_irq
Fix serial IRQ handling
2019-06-25 15:49:41 +01:00
Maciej Bocianski fcde82ba4f HAL I2C: adds missing DEVICE_I2C guards 2019-06-19 23:08:55 +02: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 8e3ca20817 K82F: 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:47:59 +02:00
Filip Jagodzinski 3119d69f0e KL27Z: 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:46:53 +02:00
Filip Jagodzinski 9efaabe404 K66F: 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:41:36 +02:00
Filip Jagodzinski 68269672c4 KL43Z: 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:41:09 +02:00
Filip Jagodzinski 5f95c5fc85 KL82Z: 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:37:49 +02:00
Filip Jagodzinski 0b33e8f976 KW24D: 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:35:36 +02: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 01e130ba83 K24F: 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:19:25 +02:00
Filip Jagodzinski f60850ad50 K22F: 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:17:07 +02:00
Filip Jagodzinski 94c27aa750 K64F: 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:07 +02:00
Filip Jagodzinski 61f9a1c362 KW41Z: Add a GPIO pinmap for testing 2019-05-27 14:57:01 +02:00
Filip Jagodzinski 1a9b635e7d KW24D: Add a GPIO pinmap for testing 2019-05-27 13:21:43 +02:00
Filip Jagodzinski a326db8b77 K64F: Use a common peripheral name in GPIO pinmap
This was unnecessary since all the pins may be used independently.
2019-05-24 16:33:01 +02:00
Steve Cartmell 7f47b0a65c fix(hal-watchdog): Add feature guards to K64F watchdog implementation 2019-05-24 12:23:35 +02:00
Filip Jagodzinski 4ed0b948f4 K64F: watchdog HAL: Fix init() and stop()
Added a missing wait for the WCT window end. Without it, consecutive
init() or stop() calls were ignored.
2019-05-24 11:35:30 +02:00
Steven Cartmell 2fb9fc2a8e Rename watchdog.c -> watchdog_api.c to prevent name collision with Platform API 2019-05-24 11:35:25 +02:00
Filip Jagodzinski 90bb2929e0 K64F: watchdog HAL: Fix max_timeout.
Limit MAX_TIMEOUT_MS to UINT32_MAX.
Improve MAX_TIMEOUT_MS handling.
Fix hal_watchdog_get_platform_features() returning
.max_timeout = 0xfffffff8 instead of 0xffffffff.
2019-05-24 11:35:23 +02:00
Steven Cartmell 2ab738fc66 Fix Watchdog::stop on K64F target
WDOG_Disable will suspend the watchdog until a reset is triggered instead of stopping it altogether. Deinit will disable it until it is reinitialized.
2019-05-24 11:35:22 +02:00
Steven Cartmell e7761a1d39 Move watchdog parameter validation into the driver layer 2019-05-24 11:35:22 +02:00
Steven Cartmell 31924b2481 Add missing license headers 2019-05-24 11:35:21 +02:00
Steven Cartmell 7c392a16d4 Remove window and sleep mode options for watchdog API 2019-05-24 11:35:13 +02:00
Steven Cartmell 8fa38bb25b Add Watchdog driver API 2019-05-24 11:20:26 +02:00
Steven Cartmell 6b3d790fc1 Add function to fetch platform specific reset reason register values 2019-05-24 11:20:24 +02:00
Steven Cartmell 8a97101988 Fix watchdog API issues
- Fix typo in module comment
- Redefine the default system behaviour in sleep mode
- Guard K64F enableWait flag
- Remove bit shifts from reset reason enum
2019-05-24 11:20:22 +02:00
Steven Cartmell c258acc222 Add simple watchdog reference implementation for K64F
- Add preprocessor guard to watchdog api that errors if the reset reason api is not also implemented
- Add RESET_REASON and WATCHDOG to K64F targets.json
- Add watchdog reference implementation
2019-05-24 11:20:21 +02:00
Steven Cartmell efcdca8b0f Add K64F reset reason reference implementation 2019-05-24 11:20:20 +02:00
Filip Jagodzinski 5bc873239e K64F: Add a GPIO pinmap for testing 2019-05-23 14:29:26 +02:00
DESKTOP-UBVDC3M\Sachin 0897f6c196 K66F: Update to SDK 2.5 2019-05-15 21:54:48 -07:00
JarekParal bd59a4cdf5 Fix code alignment 2019-04-29 17:33:28 +02:00
JarekParal 484c8a59b9 Add missing ADC pins mapping for FRMD-K66F 2019-04-29 10:54:39 +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 0ff2d42143 Heap and stack size picked from linker files,export symbols not needed 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 4b95b51e1b Target_Freescale: 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:38 -06:00
Deepika 49266c161c Remove TOOLCHAIN_GCC_CW_NEWLIB files 2019-02-22 11:31:18 -06:00
deepikabhavnani dab2a30c29 Target_Freescale: Add heap section in linker files 2019-02-20 16:01:40 -06:00
deepikabhavnani c5ad5f6c94 Target_Freescale:Add heap section 2019-02-19 15:49:49 -06:00
deepikabhavnani f518a696de Remove unused heap_size define 2019-02-19 15:49:49 -06:00
deepikabhavnani 38e9314ddd Add missing space in linker script 2019-02-19 15:49:49 -06:00
Deepika e7e9e0734c Update K64F linker files for general solution of 2-ram regions 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
deepikabhavnani 818d38b6ae Only GCC_ARM toolchain is supported, removing legacy code 2019-02-13 16:26:22 -06:00
Martin Kojtal 8f932a476f
Merge pull request #9449 from c1728p9/pinmap-extension
Pinmap extensions
2019-02-11 18:24:19 +01:00
Martin Kojtal fd5a6af137
Merge pull request #9613 from mprse/stack_heap_fix_k64f_only
K64/ARM: Update to 2-region model for HEAP and Stack Memory
2019-02-11 17:55:30 +01: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