Commit Graph

318 Commits (feature-bluetooth-unit-test)

Author SHA1 Message Date
Kevin Bracey fe22bc023e 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-12-02 14:45:37 +02:00
Przemyslaw Stekiel b2dad08387 Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
Przemyslaw Stekiel d75cc97d80 Explicit pinmap - fix style 2019-11-28 08:32:02 +01:00
Przemyslaw Stekiel 211356f307 K64F: Add constexpr pinmap tables 2019-11-28 08:32:01 +01:00
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
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 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
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
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 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
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
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
Russ Butler 2ed1dc2bfa Add HAL API for qspi pinmap
Add the functions qspi_master_sclk_pinmap, qspi_master_ssel_pinmap and
qspi_master_data0_pinmap-qspi_master_data3_pinmap to all targets with
qspi support.
2019-02-08 09:10:25 -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 22a89773fa Add HAL API for i2c pinmap
Add the functions i2c_master_sda_pinmap, i2c_master_scl_pinmap,
i2c_slave_sda_pinmap and i2c_slave_scl_pinmap to all targets.
2019-02-08 09:10:12 -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
Przemyslaw Stekiel 292f1a155d K64/ARM: Update to 2-region model for HEAP and Stack Memory 2019-02-05 14:13:58 +01: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
Russ Butler 82b131aa59 Use dedicated PinMap for each QSPI data line
Split PinMap_QSPI_DATA into PinMap_QSPI_DATA0 - PinMap_QSPI_DATA3.
This allows pins to be selected more accurately.
2019-01-22 12:11:15 -06:00
Martin Kojtal 5212cc6544
Merge pull request #6622 from NXPmicro/Add_KW41Z_Thread
Add nanostack support for KW41Z
2019-01-14 14:00:14 +01:00
Mahesh Mahadevan 585a4b6ddd Add nanostack support for KW41Z
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-01-09 07:43:41 -06:00