Skip to content

Commit

Permalink
[nRF52] build with Arduino Core for Zephyr OS
Browse files Browse the repository at this point in the history
  • Loading branch information
lyusupov committed Feb 5, 2025
1 parent bb9629c commit eea1a59
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 23 deletions.
3 changes: 2 additions & 1 deletion software/firmware/source/SoftRF/src/driver/radio/nordic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ static bool nrf905_probe()

SoC->SPI_begin();

#if defined(ARDUINO) && !defined(RASPBERRY_PI) && !defined(ARDUINO_ARCH_MBED)
#if defined(ARDUINO) && !defined(RASPBERRY_PI) && \
!defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_ZEPHYR)
RadioSPI.setClockDivider(SPI_CLOCK_DIV2);
#endif /* ARDUINO */

Expand Down
20 changes: 15 additions & 5 deletions software/firmware/source/SoftRF/src/platform/nRF52.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840)
#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840) || \
(defined(ARDUINO_ARCH_ZEPHYR) && defined(NRF52840_XXAA))

#ifndef PLATFORM_NRF52_H
#define PLATFORM_NRF52_H

#include <avr/dtostrf.h>
#if !defined(ARDUINO_ARCH_MBED)
#if !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_ZEPHYR)
#include <pcf8563.h>
#endif /* ARDUINO_ARCH_MBED */

Expand Down Expand Up @@ -53,7 +54,11 @@

#define SerialOutput Serial1
#define USBSerial Serial
#if !defined(ARDUINO_ARCH_ZEPHYR)
#define Serial_GNSS_In Serial2
#else
#define Serial_GNSS_In Serial1 /* TBD */
#endif /* ARDUINO_ARCH_ZEPHYR */
#define Serial_GNSS_Out Serial_GNSS_In
#define UATSerial Serial1

Expand Down Expand Up @@ -258,7 +263,7 @@ struct rst_info {
#define USE_OGN_ENCRYPTION
#define ENABLE_ADSL
#define ENABLE_PROL
#if !defined(ARDUINO_ARCH_MBED)
#if !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_ZEPHYR)
#define USE_BLE_MIDI
#define ENABLE_REMOTE_ID
#define USE_EXT_I2S_DAC
Expand All @@ -277,6 +282,11 @@ struct rst_info {
#define USE_ARDUINOBLE
#define EXCLUDE_IMU
#define EXCLUDE_BME280AUX
#if defined(ARDUINO_ARCH_ZEPHYR)
#define EXCLUDE_BLUETOOTH
#define EXCLUDE_EEPROM
#undef USE_NMEALIB
#endif /* ARDUINO_ARCH_ZEPHYR */
#endif /* ARDUINO_ARCH_MBED */
//#define EXCLUDE_PMU

Expand All @@ -302,11 +312,11 @@ struct rst_info {
extern Adafruit_NeoPixel strip;
#endif /* EXCLUDE_LED_RING */

#if !defined(PIN_SERIAL2_RX) && !defined(PIN_SERIAL2_TX)
#if !defined(PIN_SERIAL2_RX) && !defined(PIN_SERIAL2_TX) && !defined(ARDUINO_ARCH_ZEPHYR)
extern Uart Serial2;
#endif

#if !defined(ARDUINO_ARCH_MBED)
#if !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_ZEPHYR)
extern PCF8563_Class *rtc;
#endif /* ARDUINO_ARCH_MBED */
extern const char *nRF52_Device_Manufacturer, *nRF52_Device_Model, *Hardware_Rev[];
Expand Down
3 changes: 2 additions & 1 deletion software/firmware/source/SoftRF/src/system/SoC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ byte SoC_setup()
SoC = &STM32_ops;
#elif defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X)
SoC = &PSoC4_ops;
#elif defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840)
#elif defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840) || \
(defined(ARDUINO_ARCH_ZEPHYR) && defined(NRF52840_XXAA))
SoC = &nRF52_ops;
#elif defined(HACKRF_ONE)
SoC = &LPC43_ops;
Expand Down
3 changes: 2 additions & 1 deletion software/firmware/source/SoftRF/src/system/SoC.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ extern const SoC_ops_t STM32_ops;
#if defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X)
extern const SoC_ops_t PSoC4_ops;
#endif
#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840)
#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840) || \
(defined(ARDUINO_ARCH_ZEPHYR) && defined(NRF52840_XXAA))
extern const SoC_ops_t nRF52_ops;
#endif
#if defined(HACKRF_ONE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_AVR) || \
defined(ARDUINO_ARCH_RP2040) || defined(HACKRF_ONE) || \
defined(ARDUINO_ARCH_RENESAS) || defined(ARDUINO_ARCH_SILABS) || \
defined(ARDUINO_ARCH_CH32)) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_CH32) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR))
#include <Adafruit_Sensor.h>
#endif

Expand Down
3 changes: 2 additions & 1 deletion software/firmware/source/libraries/OGN/manchester.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
(defined(ARDUINO_ARCH_RP2040) && defined(ARDUINO_ARCH_MBED)) || \
(defined(ARDUINO_ARCH_NRF52840) && defined(ARDUINO_ARCH_MBED)) || \
defined(ARDUINO_ARCH_RENESAS) || defined(ARDUINO_ARCH_SAMD) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32)
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_ZEPHYR)
#include <avr/pgmspace.h>
#endif

Expand Down
3 changes: 2 additions & 1 deletion software/firmware/source/libraries/libmodes/src/mode-s.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@

static mag_t maglut[129*129];

#if (defined(ENERGIA_ARCH_CC13X2) || defined(ARDUINO_ARCH_SILABS)) && !defined(M_PI)
#if (defined(ENERGIA_ARCH_CC13X2) || defined(ARDUINO_ARCH_SILABS) || \
defined(ARDUINO_ARCH_ZEPHYR)) && !defined(M_PI)
#define M_PI 3.14159265358979323846
#endif /* ENERGIA_ARCH_CC13X2 */
#else
Expand Down
5 changes: 3 additions & 2 deletions software/firmware/source/libraries/nRF905/nRF905.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
!defined(ARDUINO_ARCH_ASR650X) && !defined(ARDUINO_ARCH_ASR6601) && \
!defined(ARDUINO_ARCH_RP2040) && !defined(ARDUINO_ARCH_RENESAS) && \
!defined(ARDUINO_ARCH_SILABS) && !defined(ARDUINO_ARCH_CH32) && \
!defined(ARDUINO_ARCH_RP2350)
!defined(ARDUINO_ARCH_RP2350) && !defined(ARDUINO_ARCH_ZEPHYR)

#include <avr/io.h>
#include <avr/interrupt.h>
Expand All @@ -32,6 +32,7 @@
defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_RP2040) || \
defined(ARDUINO_ARCH_RENESAS) || defined(ARDUINO_ARCH_SILABS) || \
defined(ARDUINO_ARCH_CH32) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR) || \
(defined(ARDUINO_ARCH_STM32) && defined(ARDUINO_WisDuo_RAK3172_Evaluation_Board))
#define _BV(bit) (1 << (bit))
#endif /* ENERGIA_ARCH_CC13XX || ENERGIA_ARCH_CC13X2 || ARDUINO_ARCH_NRF52 */
Expand Down Expand Up @@ -190,7 +191,7 @@ void nRF905_init()
!defined(ARDUINO_ARCH_ASR650X) && !defined(ARDUINO_ARCH_ASR6601) && \
!defined(ARDUINO_ARCH_RP2040) && !defined(ARDUINO_ARCH_RENESAS) && \
!defined(ARDUINO_ARCH_SILABS) && !defined(ARDUINO_ARCH_MBED) && \
!defined(ARDUINO_ARCH_RP2350)
!defined(ARDUINO_ARCH_RP2350) && !defined(ARDUINO_ARCH_ZEPHYR)
SPI.setClockDivider(SPI_CLOCK_DIV2);
#endif /* RASPBERRY_PI */
#else
Expand Down
24 changes: 16 additions & 8 deletions software/firmware/source/libraries/nRF905/nRF905_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_INTERRUPTS 0
#else
#define NRF905_INTERRUPTS 1
Expand Down Expand Up @@ -58,7 +59,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_AM_SW 1
#else
#define NRF905_AM_SW 0
Expand All @@ -77,7 +79,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_COLLISION_AVOID 0
#else
#define NRF905_COLLISION_AVOID 1
Expand Down Expand Up @@ -204,7 +207,8 @@

#elif defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_RP2040) || \
defined(ARDUINO_ARCH_RENESAS) || defined(ARDUINO_ARCH_SILABS) || \
defined(ARDUINO_ARCH_CH32) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_CH32) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)

// TBD
#define TRX_EN 0 // Enable/standby pin
Expand Down Expand Up @@ -347,7 +351,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_FREQ 868400000UL
#else
#define NRF905_FREQ 433200000UL
Expand All @@ -364,7 +369,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_BAND NRF905_BAND_868
#else
#define NRF905_BAND NRF905_BAND_433
Expand Down Expand Up @@ -415,7 +421,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_ADDR_SIZE NRF905_ADDR_SIZE_3
//#define NRF905_ADDR_SIZE NRF905_ADDR_SIZE_2
#else
Expand All @@ -430,7 +437,8 @@
defined(ARDUINO_ARCH_ASR650X) || defined(ARDUINO_ARCH_ASR6601) || \
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ARCH_RENESAS) || \
defined(ARDUINO_ARCH_SILABS) || defined(ARDUINO_ARCH_CH32) || \
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350)
defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_RP2350) || \
defined(ARDUINO_ARCH_ZEPHYR)
#define NRF905_PAYLOAD_SIZE 24
#else
#define NRF905_PAYLOAD_SIZE 32 //NRF905_MAX_PAYLOAD
Expand Down
4 changes: 2 additions & 2 deletions software/firmware/source/libraries/nmealib/src/local.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#if !defined(ENERGIA_ARCH_CC13XX) && !defined(ENERGIA_ARCH_CC13X2) && \
!defined(ARDUINO_ARCH_NRF52) && !defined(ARDUINO_ARCH_NRF52840) && \
!defined(ARDUINO_ARCH_SAMD)
!defined(ARDUINO_ARCH_SAMD) && !defined(ARDUINO_ARCH_ZEPHYR)
#include <pgmspace.h>
#if defined(ARDUINO_ARCH_ESP32)
#include "esp_idf_version.h"
Expand All @@ -19,7 +19,7 @@
#else
#include <avr/pgmspace.h>
#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840) || \
defined(ARDUINO_ARCH_SAMD)
defined(ARDUINO_ARCH_SAMD) || defined(ARDUINO_ARCH_ZEPHYR)
#define _AND ,
#define _CONST const
#define _EXFUN(name, proto) name proto
Expand Down

0 comments on commit eea1a59

Please sign in to comment.