Commit Graph

662 Commits (refactor_hal_greentea_cmake)

Author SHA1 Message Date
MarceloSalazar 4ae7b0e814 Remove VBLUNO targets 2020-04-09 15:32:41 +01:00
George Beckstein d8727510e7 Remove unused internal state enum 2020-04-03 05:38:23 -04:00
George Beckstein 907ae1b67e Implement I2CSLAVE in the i2c_api for nRF52 targets 2020-04-03 05:38:21 -04:00
George Beckstein 85a17293d3 Enable I2CSLAVE for nRF52 targets 2020-04-03 05:01:22 -04:00
George Beckstein e1178be65e Applying changes to only specific targets for stop-gap. 2020-04-03 04:45:43 -04:00
George Beckstein 382a55487f Added object extensions configuration parameter to HAL 2020-04-03 04:38:21 -04:00
Przemyslaw Stekiel 32311b7ca5 i2c_api.c: fix style 2020-02-24 14:59:07 +01:00
Przemyslaw Stekiel e18a800e7c NRF52840 I2C driver: Initialise I2C pins before transmission
By default D0 - D3 pins are used for the bit-banged SPI com channel between mbed target and the FPGA-test-shield.
For some reason, if pins were used as GPIOs and then reconfigured to I2C pins the I2C com does not work on NRF52840.

This commit modifies i2c_configure_twi_instance() function and adds proper initialization of the I2C pins.
2020-02-24 14:59:06 +01:00
Martin Kojtal 1f8778b15b
Merge pull request #12449 from eavelardev/patch-2
Add missing pins def for ARDUINO_NANO33BLE
2020-02-19 14:32:51 +00:00
Martin Kojtal 664000ac82
Merge pull request #12431 from the-real-blackh/master
Nordic NRF52 GPIO API: Fix non-deterministic failure to configure interrupt handling
2020-02-19 12:54:58 +00:00
Eduardo Avelar 5984f02203
Add missing pins def for ARDUINO_NANO33BLE
We add pins def for the sense version of the board.

https://content.arduino.cc/assets/Pinout-NANOsense_latest.pdf
https://content.arduino.cc/assets/NANO33BLE_V2.0_sch.pdf
2020-02-17 01:01:33 -08:00
Martin Kojtal a8188bfd4d
Merge pull request #12166 from hugueskamba/hk-baremetal-NRF52840_DK-fix
NRF52840_DK: Fix baremetal linker error
2020-02-14 08:21:27 +00:00
Stephen Blackheath e9dd6020b5 Nordic NRF52 GPIO API: Fix failure to clear the field 'skip_gpio_setup' in a local
gpiote input configuration data structure, resulting in non-deterministic failure
to initialize interrupt handling.
2020-02-14 10:08:23 +13:00
Przemyslaw Stekiel d541b461c9 Disable restricted uart peripheral for NRF52840
While testing it has been found that all tests are skipped in the FPGA uart test on the NRF52840 target.

This is caused by the following change:
https://github.com/ARMmbed/mbed-os/pull/12379 - Add STDIO UART as restricted for FPGA testing for all targets

NRF targets have MUXed pins and mainly do not provide pin-maps. There are only dummy pin-maps for testing.
These pin-maps hold only pins and do not specify the peripheral or function of the pin (always 0). Because of that if we restrict STDIO uart peripheral (0) all FPGA uart test cases will be skipped.
To fix this we will remove this restriction for NRF52840. Restriction for testing the USBTX, USBRX pins is sufficient in this case.
2020-02-11 15:24:17 +01:00
Hugues Kamba 65fbee1d33 NRF52840_DK: Fix baremetal linker error
Compile in the inclusion of cryptocell310 only if the library is included
in the build
2020-02-10 15:18:46 +00:00
Martin Kojtal a8e87236de
Merge pull request #12368 from mprse/NRF_Serial_Fpga_fix
Fix NRF52840_DK UART driver and adapt FPGA test
2020-02-10 14:26:31 +00:00
Martin Kojtal d847f9f164
Merge pull request #12305 from kivaisan/remove_multi_athandler_support_v2
Cellular: Remove support for multiple ATHandlers
2020-02-07 11:00:41 +00:00
Przemyslaw Stekiel 6a9b4bb64f TARGET_NRF52/serial_api.c: Fix style 2020-02-05 08:47:09 +01:00
Przemyslaw Stekiel fbe8a8e327 NRF52 serial: Trigger TxIrq interrupt manually on enabling
It is required by Mbed HAL API to generate TxIrq interrupt when TXD register is empty (also after enabling TxIrq interrupt):
f73a62afbf/hal/serial_api.h (L144-L147)

The driver uses DMA to perform uart transfer and TxIrq is generated after the transfer is finished.
While enabling TxIrq we will check if TXD reg is empty and manually trigger the interrupt.
2020-02-05 08:47:09 +01:00
Przemyslaw Stekiel 575f9c2d64 Fix NRF51, NRF52 gpio_irq_init() function
Acording to the description in `gpio_irq_hal_api.h` file `gpio_irq_init()` should return 0 on success.
Currently, it returns 1 causing the FPGA test to fail.
2020-02-03 14:23:41 +01:00
Kevin Bracey ba5dd4d8c1
Merge pull request #12153 from mprse/spi_fpga_test_extend
Hackathon: Increase coverage of the SPI master FPGA test
2020-01-31 15:00:02 +02:00
Anna Bridge 0d48a26f82
Merge pull request #12154 from hugueskamba/hk-baremetal-nrf51822-fix
NRF51822: Fix baremetal linker error
2020-01-24 11:21:25 +00:00
Kimmo Vaisanen bd0f939277 Cellular: Remove support for multiple ATHandlers
Major changes:
- Dependency to FileHandle removed from base classes
- AT_CellularDevice owns the default FileHandle and shares it with AT -classes
- Hang-up -detection moved as CellularContext::configure_hup(). Cannot be configured via CellularDevice any more.

Result on NRF52840_DK + BG96:
GCC:
Total Static RAM memory (data + bss): 29360(+296) bytes
Total Flash memory (text + data): 130660(-832) bytes

ARM:
Total Static RAM memory (data + bss): 261554(+8) bytes
Total Flash memory (text + data): 127573(-1193) bytes

IAR:
Total Static RAM memory (data + bss): 25479(+296) bytes
Total Flash memory (text + data): 102418(-527) bytes

RAM increase is because now ATHandler is no longer created with new -operator but is now member of AT_CellularDevice,
so image tool is able to count it. Actually total RAM consumption has decreased due to removed variables.
2020-01-23 09:27:44 +02:00
Martin Kojtal b7c961c4ac
Merge pull request #12220 from hugueskamba/hk-replace-uartserial-nordic
NRF5x targets: Replace UARTSerial references with BufferedSerial
2020-01-17 09:59:56 +00:00
Martin Kojtal 4c4ed0ab78
Merge pull request #12258 from trowbridgec/disable-ep_agora-cell-aux-uart-by-default
Disable the cell AUX UART by default on EP_AGORA
2020-01-15 13:07:28 +01:00
Chris Trowbridge a21a0062af Disable the cell AUX UART by default on EP_AGORA 2020-01-14 12:55:16 -05:00
George Beckstein d8fbfbfeb4 Replace macro "UART1_ENABLED" with corresponding "NRFX_UARTE1_ENABLED". 2020-01-10 11:33:11 -05:00
George Beckstein dd98d0102f Update SDK config for nRF52840 to disable UART1 instance (Mbed serial port uses UARTE peripheral) 2020-01-10 11:32:47 -05:00
aglass0fmilk dc19460fa3 Remove use of deprecated UART driver (as opposed to UARTE). Disable unused TWIM peripheral (deprecated TWI peripheral is currently used for I2C master mode operation). 2020-01-09 16:35:06 -05:00
George Beckstein b6befee4cf Properly configure PRS API so it actually delegates the shared interrupt slot to the appropriate peripheral 2020-01-09 16:35:06 -05:00
Hugues Kamba efd3763467 NRF5x targets: Replace UARTSerial references with BufferedSerial
`BufferedSerial` is `UARTSerial` renamed to convey the original purpose
of the class. It is the recommended buffered I/O serial class.
2020-01-08 15:42:07 +00:00
Hugues Kamba e0c628cbb7 NRF51822: Fix baremetal linker error
Ensure the NRF51822 `us_ticker.c` module content is compiled in only if
the target supports USTICKER.
2020-01-08 15:33:01 +00:00
Martin Kojtal c42125f890
Merge pull request #12151 from hugueskamba/hk-nrf-fix-baremetal-build
NRF5x: Fix baremetal linker error
2020-01-08 14:41:26 +01:00
Hugues Kamba 6afca2460e NRF5x: Fix baremetal linker error
DEBUG_NRF_USER gets defined for build profiles (develop, debug)
which do not define NDEBUG (see nrf_assert.h). Therefore the definition
of the function should also be visible if DEBUG_NRF_USER is defined.
2020-01-03 15:14:09 +00:00
Martin Kojtal a387985c7c
Merge pull request #12144 from hugueskamba/hk-nrf52840-two-mem-region-model
NRF52840: Use 2 region memory model for the ARM toolchain
2020-01-02 10:08:58 +00:00
Antti Kauppila ca7848d854 Refactored away onboard_modem_api because it is not needed at all
All targets must implement soft_- and hard_power_on/off() functions which are practically same what onboard_modem_api offered.
These were seen as a duplicate features and therefore we removed this.
All targets involved have been updated to reflect the changes
2019-12-27 16:04:10 +01:00
Przemyslaw Stekiel 769b7c5256 NRF52x SPI capabilities: rx/tx buffers can have different sizes 2019-12-20 12:56:09 +01:00
Hugues Kamba c3c6cfa8d6 NRF52840: Use 2 region memory model for the ARM toolchain 2019-12-19 15:13:44 +00:00
Przemyslaw Stekiel b2dad08387 Change explicit pinmap to static pinmap 2019-11-28 08:32:12 +01:00
Przemyslaw Stekiel 0e0952fadc NRF52840_DK: Add explicit pinmap support 2019-11-28 08:32:06 +01:00
Martin Kojtal d0d3462781
Merge pull request #11846 from manchoz/manchoz_makerdiary-nrf52840-mdk
Add support for Makerdiary nRF52840-MDK
2019-11-21 10:54:21 +01:00
Martin Kojtal 699372421a
Merge pull request #11790 from 0xc0170/master-rob
nrf52: reset UARTE peripheral in serial_free
2019-11-14 10:42:08 +01:00
Giampaolo Mancini 1804b40fac Fix indentation 2019-11-12 14:48:54 +01:00
Giampaolo Mancini fd3088867e Add support for Makerdiary nRF52840-MDK 2019-11-12 09:56:04 +01:00
Przemyslaw Stekiel b24afed5ae SPI fpga test: use get_capabilities() function to skip test cases for unsupported features 2019-11-06 10:09:20 +01:00
Rob Vlaar 6f31229f48 Workaround to reset UARTE peripheral to be able to go into deep sleep 2019-10-31 15:29:30 +00:00
Przemyslaw Stekiel c83307e96c NRF52: Fix PWM driver
Fix pwm nrf
2019-10-30 14:37:30 +01:00
Martin Kojtal 4b21157085
Merge pull request #11739 from maciejbocianski/nrf52_i2c_byte_rw_fix
Nrf52 i2c byte rw fix
2019-10-28 13:16:49 +01:00
Maciej Bocianski 703348acc8 NRF52: fix i2c byte read/write implementation
i2c_byte_write implementation was broken.
Data sending was inside addressing block

Changed from:
i2c_byte_write
{
   if (start) {
      if (read_address)
         start read;
      esle
         start write;
      write byte;
   }
}

to:
i2c_byte_write
{
   if (start) {
      // if first call after start
      // address for reading or writing
      if (read_address)
         start read;
      esle
         start write;
      } else {
         // send data byte
         write byte;
   }
}
2019-10-28 08:41:12 +01:00
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
Maciej Bocianski 7d5f6cf4a9 NRF52: fix i2c timeouts
add tick to us conversion
2019-10-23 15:00: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
Giampaolo Mancini c30ca66e2b Add SPDX identifier 2019-10-21 15:41:41 +02:00
Giampaolo Mancini f9674adaad Fix overflow calculation for reload_value.
Please,  note that this patch fixes upstream bug. See:

https://devzone.nordicsemi.com/f/nordic-q-a/51674/maximum-reload-time-for-wdt
2019-10-21 15:41:41 +02:00
Giampaolo Mancini c79f54c67b Remove default conf macro because typo in nRF SDK 2019-10-21 15:41:41 +02:00
Giampaolo Mancini 92a316711e Fix timeout limits 2019-10-21 15:41:41 +02:00
Giampaolo Mancini 10c78f41e8 Add support for nRF52 Watchdog 2019-10-21 15:41:40 +02:00
Martin Kojtal c94ae909a8
Merge pull request #11622 from trowbridgec/increase-nrfx-gpiote-config-num-of-low-power-events
nRF52 SDK 15.0 - Enable more than 1 interrupt
2019-10-16 14:26:04 +08:00
Martin Kojtal ea3ead0349
Merge pull request #11676 from maciejbocianski/nrf5X_fix_i2c_twi_sdk
nrf52 - fix i2c/twi driver
2019-10-15 22:16:19 +08:00
Maciej Bocianski 7cc0b614bb nrf52 - fix i2c/twi driver
Sync TWI driver to sdk version 15.3.0 to get rid of data length limitation
2019-10-12 08:59:57 +02:00
Maciej Bocianski 98939e2749 nrf5x - add missing gpio_set implementation 2019-10-11 08:55:23 +02:00
Chris Trowbridge 26ebc997e0 Increase NRFX_GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS from a default of 1 to 4 2019-10-03 08:56:39 -04:00
Martin Kojtal fda544a14c
Merge pull request #11566 from trowbridgec/add-default-connectivity-config-for-ep-agora
EP_AGORA: Add config logic to enable BLE, cell, and LoRa by default
2019-10-01 13:17:59 +02:00
Martin Kojtal 7e62cafc82
Merge pull request #11585 from marcemmers/nrf_port_api
NRF52: Fixed missing guard in port_api.c
2019-09-30 14:46:31 +02:00
Marc Emmers a02c50d768 Add newline at end of file 2019-09-30 11:20:56 +02:00
Marc Emmers 4c1067b8b8 Fixed missing #if in port_api.c 2019-09-27 14:44:20 +02:00
Chris Trowbridge eb6a474ba8 EP_AGORA: Add config logic to enable BLE, cell, and LoRa by default 2019-09-25 12:28:04 -04:00
Martin Kojtal 530f1e9a24 NRF52: fix config
remove lib config and use target configuration instead. To avoid duplication of symbols, etc.

Fixes #10655
2019-09-05 11:02:05 +01:00
Hugues Kamba f3df1c1d1e Relocate TARGET_MCU_NRF52840 to TARGET_NRF5x/TARGET_NRF52 2019-08-16 15:42:43 +01: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
Martin Kojtal be23d3c871
Merge pull request #11137 from facchinm/nano33ble_public
Add Arduino Nano 33 BLE target
2019-08-13 10:51:12 +02:00
Martino Facchin bd0988416e [TARGET] Add Arduino NANO33BLE 2019-08-08 17:24:56 +02:00
Seppo Takalo 5f6379a55d
Merge pull request #11119 from Reda-RM/master
Riot Micro cellular device
2019-08-07 14:07:27 +03:00
Seppo Takalo 6436f11335
Merge pull request #11123 from desmond-blue/fix-nrf52-us-ticker-free
NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption
2019-08-06 11:33:55 +03:00
Reda Maher ef1d9778a9 [Riot Micro] Add Riot Micro cellular module targets 2019-08-05 18:57:43 +02:00
desmond.chen 7b5366f7a3 NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption 2019-07-30 17:20:08 +08:00
Chris Trowbridge 04ca01d16f Update PinNames.h with the pinout for EP_AGORA HW rev 1.1 2019-07-26 11:48:36 -04:00
Seppo Takalo c505d25186
Merge pull request #11077 from bentcooke/52840_align
NRF52840: remove align instructions from gcc linker for ARM.extab exi…
2019-07-23 11:37:47 +03:00
Seppo Takalo 13873f388c
Merge pull request #11062 from AGlass0fMilk/fix-nrf52-saadc-res-again
Fix SAADC resolution for nRF52-based targets... again
2019-07-22 15:30:11 +03:00
Ben Cooke 36bd06c00a NRF52840: enable TRNG in Nordic SDK config 2019-07-19 13:24:12 -05:00
Ben Cooke 892adc6e91 nrf52840: remove align instructions from gcc linker for ARM.extab exidx sections 2019-07-19 10:22:05 -05:00
George Beckstein 7ff707c9b4 Fix SAADC resolution for nRF52-based targets... again 2019-07-17 11:43:20 -04:00
Martin Kojtal b47064ae65
Merge pull request #10933 from tymoteuszblochmobica/chache
Nordic NRF52832 cache ON
2019-07-05 10:09:59 +01:00
George Beckstein f2b88362fb Apply same resolution fix to nRF52832 targets 2019-07-01 12:22:04 -04:00
George Beckstein b08a26bfa0 Fix SAADC resolution set in sdk_config. analogin_read_u16 assumes 12-bit range but config was set to 10 bit range causing incorrect readings to be returned. 2019-07-01 12:09:27 -04:00
Tymoteusz Bloch 1af0fe89b8 Nordic NRF52832 onboard instruction cache is turned ON to increase MCU performance 2019-07-01 15:08:53 +02:00
Martin Kojtal d71db32154
Merge pull request #10881 from AGlass0fMilk/fix-nrf52-critical-region-api
Fix Nordic/Mbed Critical Section API Inconsistency (In Builds w/o Softdevice)
2019-07-01 09:18:10 +01:00
George Beckstein 15cd907d35
Fix alignment 2019-06-24 08:34:54 -04:00
George Beckstein f548f558da Fixed bug causing Nordic drivers to use a different critical section API from Mbed. This caused conflicts when Nordic's critical section API would globally reenable interrupts while Mbed still expected to be in a critical section. 2019-06-20 14:54:10 -04:00
Maciej Bocianski fcde82ba4f HAL I2C: adds missing DEVICE_I2C guards 2019-06-19 23:08:55 +02:00
Anna Bridge 07f1e068a9
Merge pull request #10689 from AGlass0fMilk/nrf52840-usbphy-implementation
nRF52840 USB Device Implementation
2019-06-18 16:28:20 +01:00
Anna Bridge 378e997e25
Merge pull request #10753 from desmond-blue/feature-fix-nrf52-uart-count
Fix nrf52 enabled uart count and enable uart0/1
2019-06-12 14:50:12 +01:00
desmond.chen d5624b6ec6 Fix nrf52 enabled uart count and enable uart0/1 2019-06-12 15:36:09 +08:00
Martin Kojtal 489bd10626
Merge pull request #10629 from trowbridgec/add-target-ep-agora
Add support for the Embedded Planet Agora target
2019-06-06 14:50:14 +01:00
Chris Trowbridge 7531c2bb56 Remove unneeded custom_board.h file 2019-05-30 14:16:29 -04:00
George Beckstein 5386b87693 Removing systick edit from sdk_config.h 2019-05-28 10:48:09 -04:00
George Beckstein d8fbdfcac3 Disabling systick 2019-05-28 10:48:09 -04:00
George Beckstein 002df471e0 Changed formatting, check if endpoint is stalled in unstall. Added errata header 2019-05-28 10:48:09 -04:00
George Beckstein 1ab27aff1f Finished compatibility changes for nrfx renaming 2019-05-28 10:48:09 -04:00
George Beckstein 2bd024d174 Fixing compatibilities with new nrfx drivers 2019-05-28 10:48:09 -04:00
George Beckstein bd2605cce9 Configured sdk for enabling USB. Preliminary implementation of USB for nRF52840 2019-05-28 10:48:09 -04:00
Chris Trowbridge f81130dd23 Update licenses for EP_AGORA target 2019-05-23 11:30:25 -04:00
RFulchiero 3343022f70 Remove redundant legacy files and definition of PACKED
* The following v14.2 files are removed from nrfx/legacy:
  nrf_drv_clock.h
  nrf_drv_common.h
  nrf_drv_gpiote.h
  nrf_drv_spi.h
  nrf_drv_twi.h
  nrf_drv_uarth.h
* Remove unneeded references to "nrfx_glue.h" and "nrf_drv_common.h"
* Remove the definition of PACKED from app_util_platform.h (already defined
  in mbed_toolchain.h)
2019-05-23 11:31:40 +08:00
RFulchiero 8550fd0ed2 Fix preprocessor conditionals for AC6 build 2019-05-23 11:31:39 +08:00
RFulchiero 5c276f2c0e Fix SOFTDEVICE_NONE builds and clean up
* Update all scatterfiles to define MBED_RAM_START and MBED_RAM_SIZE.  These
get defined in mbed_lib.json when building with a SoftDevice but were missing
when no SoftDevice is brought in.
* Remove SDK 14.2 SoftDevice files.
* Add missing header file to qspi_api.c.
2019-05-23 11:31:38 +08:00
RFulchiero 2690f0f8bc Update QSPI in the SDK to support long frame mode
* Carry forward changes made to v14.2SDK to support long frame mode
(from commit 2a72bb67a3).
* Fixed a few driver calls from rebase
2019-05-23 11:31:35 +08:00
RFulchiero 8237229530 Rebase to master in preparation for v5.12.0 2019-05-23 11:31:35 +08:00
Desmond Chen 4e8eed07e5 Fix nrf section iter macro check 2019-05-23 11:31:33 +08:00
Naveen Kaje e8e1ef2a70 NRF52: reloc_vector_table: check the RTS pin settings in code
Move the check from preprocessor to the if condition
2019-05-23 11:31:33 +08:00
Desmond Chen c048a34e00 Add BLE feature to mbed_lib.json of SoftDevice 2019-05-23 11:31:32 +08:00
RFulchiero f8e2b7e679 Update file header at TARGET_NRF52 level
- Update (c) year and company name
 - Add SPDX-License-Identifier
 - Impacted files:
    - Files touched for SDK15 port
    - Files added in 2018
2019-05-23 11:31:32 +08:00
RFulchiero cf162cdbab Remove duplicate file 2019-05-23 11:31:31 +08:00
Desmond Chen d20ca05a68 Fix SoftDevice configuration on NRF52_DK 2019-05-23 11:31:31 +08:00
Desmond Chen b69dc2bdae Update BLE SoftDevice from SDK14 to SDK15
- Adjust memory for SoftDevice
    - Enable PRIO=5 for interrupt priority check
    - Change NRF_SD_BLE_API_VERSION to 6
    - Add handle and buffer for advertising and scanning
    - Remove guard for phy update
    - Change scatter files and mbed_lib.json for PR #8607
2019-05-23 11:31:31 +08:00
Desmond Chen 2fbc20f9b1 Fix timer1 irq configuration 2019-05-23 11:31:30 +08:00
Naveen Kaje b17601ef43 NRF52: Cleanup unused code 2019-05-23 11:31:29 +08:00
Naveen Kaje 8eaf87cd50 NRF52: serial: fix build warnings 2019-05-23 11:31:29 +08:00
RFulchiero e9a3ca6259 Set the PWM clock prescaler back to default (1MHz clock) 2019-05-23 11:31:29 +08:00
RFulchiero 501000e6a2 Changes required for rebase:
- Brought in new nrfx APIs
 - Brought in PPI additions
 - Removed dead code for RTC
2019-05-23 11:31:28 +08:00
RFulchiero 36c70a1c78 Enabling NRFX_PPI_ENABLED for serial_api updates 2019-05-23 11:31:26 +08:00
RFulchiero 74cb69873c Cleanup for feature release
* Update TARGET_NRF5x/README.md to improve "Changing SoftDevice" section
  and added section on NRF52840 CryptoCell310 Support
* Update the file list in TARGET_SDK_15_0/TARGET_SOFTDEVICE_COMMON/README.md
* Add missing CR-LF to Nordic-provided SDK file
* Rename a header file in the TARGET_SOFTDEVICE_S112 tree
2019-05-23 11:31:26 +08:00
RFulchiero 2a968d4d35 Revert "NRF52: Fix vector table"
This reverts commit 3d2fa535a71b7bad08c6a91a31d74f4492c8948c.

This was a breaking change for the "MBR" and "NONE" builds.
After testing it was also determined that copying the vector
table a second time wasn't required for the "FULL" build.
2019-05-23 11:31:26 +08:00
Ralph F 742d10fcc2 Add missing SoftDevice build support (MBR, NONE, OTA)
- Add MBR, NONE and OTA SoftDevice build options for S132 and S140
- Add S112 SoftDevice (single build option)
- Some folder restructuring in TARGET_SOFTDEVICE_COMMON was required
2019-05-23 11:31:25 +08:00
RFulchiero 3e3ac27698 Remove dead #define PORT_SHIFT
nRF5x PinNames.h never utilized PORT_SHIFT so removed for clarity after
user commented on it.
2019-05-23 11:31:24 +08:00
RFulchiero fa84352752 Fix build for nRF51 (fewer common files with nRF52)
The 15.0 SDK doesn't support the nRF51 so it must continue to use the legacy
NRF drivers.  Thus the original common_rtc.c, gpio_api.c and us_ticker.c are
restored and placed under TARGET_NRF5x/TARGET_NRF51.

Likewise the modified common_rtc.c, gpio_api.c and us_ticker.c are moved to
TARGET_NRF5x/TARGET_NRF52 so they are excluded from nRF51 builds.
2019-05-23 11:31:23 +08:00
RFulchiero e85106129a Updates after rebase with Mbed master (circa OS v5.10.1)
* Remove NRF_SDH_CLOCK parameters from mbed_lib.json
* Bring in QSPI for nRF52840
* Migrate legacy QSPI driver to SDK v15 (nrfx_qspi.h)
* Remove outdated comment in i2c_api.c
2019-05-23 11:31:23 +08:00
Naveen Kaje 6064ef30e9 NRF52: Fix vector table
Ensure that vector table gets initialized properly. The table that we
initialize in startup_nrf52840.S gets wiped out as the section is
declared as noinit. Fix this by implementing the weak function mbed_sdk_init
that inits the vector table.
2019-05-23 11:31:22 +08:00
RFulchiero f79531414f nRF52_DK: Use mbed_lib.json to set app_offset (MBED_APP_START)
When the SoftDevice (SD) is enabled we need to set the app_offset
to 0x26000 to make room for the SoftDevice.  If we let the build
tools self-manage this, MBED_APP_START is coming out at 0x25000
which is not correct for the Nordic 15.0 SDK.

The app_offset value is translated to MBED_APP_START by the build
infrastructure.  We were hard coding MBED_APP_START in the scatter
and ld files as a temporary measure while testing.  This now sets
it properly if the SD is being brought in.
2019-05-23 11:31:22 +08:00
RFulchiero 317598604a nRF52832 needs NRFX_RNG_ENABLED to use the legacy driver 2019-05-23 11:31:22 +08:00
Naveen Kaje 35c14ebbe3 NRF52832: enable UART 2019-05-23 11:31:21 +08:00
Naveen Kaje d875c2ba2e NRF: enable PRS (Peripheral Resource Sharing) for NRF52832 and NRF52840 2019-05-23 11:31:21 +08:00
Naveen Kaje 976ba7d4da NRF52: i2c_api: port from Softdevice 14.2 to 15.0 2019-05-23 11:31:20 +08:00
Naveen Kaje 4f9782dfeb NRF52: spi_api: port from Softdevice 14.2 to 15.0 2019-05-23 11:31:20 +08:00
RFulchiero a1d5a4d973 Updates for IOTDEV-1576 (only TRNG API)
- Added legacy nrf_drv_rng.c as there is no merit in fully adopting nrfx_rng.c
- Added nrf_queue library component
- Removed apply_old_config.h (unused for some time now)
- Updated sdk_config.h for queue and RNG support for nRF52832
- Brought back RNG into targets.json for nRF52832
Note: nRF52840 still uses CryptoCell 310 for TRNG
2019-05-23 11:31:20 +08:00
RFulchiero 38c68e0a45 Updates for IOTDEV-1575 and nRF52_DK builds
- Use new NRFX header file
- Fix nRF52832 linker script/ld files (hardcoded addresses for now)
- Temporarily remove DEVICE_TRNG for nRF52832 (which broke the build)
- Improve serial_putc() fix so we don't rely on "extra" functions
2019-05-23 11:31:19 +08:00
Naveen Kaje 8123b5128d serial_api: Fix the interrupt registration for Nordic Serial Device
Using the nrfx_get_irq_number only works with the handle. Since we
know the IRQ numbers for UART0, RTC2 and EGU0, use them directly.
2019-05-23 11:31:19 +08:00
Naveen Kaje 52c6048dc8 Nordic sdk_config: Configure UART instances
Enable UART interfaces to enable serial debug prints.
2019-05-23 11:31:19 +08:00
Naveen Kaje 3ee440c9db serial_api: add changes to port from Softdevice 14.2 to 15.0 2019-05-23 11:31:18 +08:00
Naveen Kaje af8d171a73 serial_api: Fixes to compile with SDK15.0 2019-05-23 11:31:18 +08:00
RFulchiero 9593a53e25 Updates to PWM for IOTDEV-1573
- Missed some NRFX defines that needed to changed
- Set PWM base clock to 125kHz (needs to be reverted back to 1 MHz)
- Updated sdk_config.h for nRF52_DK builds
- Brought in updates from PR7779 (fix for nRF52 PWM issues)
2019-05-23 11:31:18 +08:00
RFulchiero cc54611f02 Ported analogin and pwm_out for IOTDEV-1573.
Also addressed:
- removed dependency on legacy config (excluded apply_old_config.h)
- removed legacy pwm and saadc headers
- Arm Compiler 5 linking issue (a band-aid for now... needs to
  be properly addressed for peripheral sharing)
- added missing header in SoftDevice file
2019-05-23 11:31:17 +08:00
RFulchiero 9ac7fe7ac9 First porting effort covered by JIRA IOTDEV-1572:
- top level files ported from TARGET_NORDIC/TARGET_NRF5x/

Also addressed:
- fixed linking issue for gcc
- added support for nRF52-DK builds, but reverted to using nRF52840 sdk_config.h (must be updated)
- introduced "RTC" to targets.json (might need to be removed eventually)
2019-05-23 11:31:17 +08:00
RFulchiero cd5b451320 Bringing in Softdevice but excluding BLE feature and improvements in feature defines 2019-05-23 11:31:13 +08:00
RFulchiero 511f8ebbd7 Mods for baseline 15.0 support 2019-05-23 11:31:13 +08:00
RFulchiero 6bd89e7939 Baseline legacy build using 14.2 drivers. 2019-05-23 11:31:12 +08:00
Chris Trowbridge 225f1de5ac Add support files for target EP_AGORA 2019-05-21 11:18:43 -04:00
Kevin Bracey 87396e0bf6 Assembler atomics
Reimplement atomic code in inline assembly. This can improve
optimisation, and avoids potential architectural problems with using
LDREX/STREX intrinsics.

API further extended:
* Bitwise operations (fetch_and/fetch_or/fetch_xor)
* fetch_add and fetch_sub (like incr/decr, but returning old value -
  aligning with C++11)
* compare_exchange_weak
* Explicit memory order specification
* Basic freestanding template overloads for C++

This gives our existing C implementation essentially all the functionality
needed by C++11.

An actual Atomic<T> template based upon these C functions could follow.
2019-04-26 13:12:35 +03:00
j3hill f4b4ac76ea Data that is written to/read from external flash using QSPI needs to be in RAM and WORD aligned. 2019-04-11 13:24:33 -05:00
Martin Kojtal e75794ec6e
Merge pull request #9888 from ARMmbed/feature-armc6
ARM Toolchain update to ARM Compiler 6.11(ARMC6)
2019-03-04 12:23:38 +01:00
Senthil Ramakrishnan 84785ae086 Check for __ARMCC_VERSION only 2019-02-28 11:53:00 -06:00