Przeglądaj źródła

【修改】增加对 Nrf51822 和 Nrf52840 的支持

EvalZero 6 lat temu
rodzic
commit
823ac3980d

+ 15 - 4
SConscript

@@ -117,8 +117,21 @@ else:
 if GetDepend(['PKG_NIMBLE_CTLR']):
     path += [
         cwd + '/nimble/transport/ram/include',
-        cwd + '/nimble/controller/include',
-        cwd + '/nimble/drivers/nrf52/include']
+        cwd + '/nimble/controller/include']
+        
+
+    if GetDepend(['PKG_NIMBLE_BSP_NRF51']):
+        path += [cwd + '/nimble/drivers/nrf51/include']
+        src += Split("""
+            nimble/drivers/nrf51/src/ble_hw.c
+            nimble/drivers/nrf51/src/ble_phy.c
+            """)
+    else:
+        path += [cwd + '/nimble/drivers/nrf52/include']
+        src += Split("""
+            nimble/drivers/nrf52/src/ble_hw.c
+            nimble/drivers/nrf52/src/ble_phy.c
+            """)
 
     src += Split("""
         nimble/transport/ram/src/ble_hci_ram.c
@@ -137,8 +150,6 @@ if GetDepend(['PKG_NIMBLE_CTLR']):
         nimble/controller/src/ble_ll_scan.c
         nimble/controller/src/ble_ll_dtm.c
         nimble/controller/src/ble_ll_hci_ev.c
-        nimble/drivers/nrf52/src/ble_hw.c
-        nimble/drivers/nrf52/src/ble_phy.c
         porting/nimble/src/os_cputime.c
         porting/nimble/src/os_cputime_pwr2.c
         porting/nimble/src/hal_timer.c

+ 2 - 2
nimble/drivers/nrf51/src/ble_hw.c

@@ -27,7 +27,7 @@
 #include "nimble/nimble_opt.h"
 #include "nrfx.h"
 #include "controller/ble_hw.h"
-#include "mcu/cmsis_nvic.h"
+#include "os/os_trace_api.h"
 
 /* Total number of resolving list elements */
 #define BLE_HW_RESOLV_LIST_SIZE     (16)
@@ -325,7 +325,7 @@ ble_hw_rng_init(ble_rng_isr_cb_t cb, int bias)
     /* If we were passed a function pointer we need to enable the interrupt */
     if (cb != NULL) {
         NVIC_SetPriority(RNG_IRQn, (1 << __NVIC_PRIO_BITS) - 1);
-        NVIC_SetVector(RNG_IRQn, (uint32_t)ble_rng_isr);
+        ble_npl_hw_set_isr(RNG_IRQn, ble_rng_isr);
         NVIC_EnableIRQ(RNG_IRQn);
         g_ble_rng_isr_cb = cb;
     }

+ 2 - 2
nimble/drivers/nrf51/src/ble_phy.c

@@ -23,13 +23,13 @@
 #include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "ble/xcvr.h"
-#include "mcu/cmsis_nvic.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
 #include "controller/ble_phy.h"
 #include "controller/ble_phy_trace.h"
 #include "controller/ble_ll.h"
 #include "nrfx.h"
+#include "os/os_trace_api.h"
 
 #if MYNEWT
 #include "mcu/nrf51_clock.h"
@@ -903,7 +903,7 @@ ble_phy_init(void)
 
     /* Set isr in vector table and enable interrupt */
     NVIC_SetPriority(RADIO_IRQn, 0);
-    NVIC_SetVector(RADIO_IRQn, (uint32_t)ble_phy_isr);
+    ble_npl_hw_set_isr(RADIO_IRQn, ble_phy_isr);
     NVIC_EnableIRQ(RADIO_IRQn);
 
     /* Register phy statistics */

+ 5 - 5
porting/nimble/include/syscfg/syscfg.h

@@ -25,12 +25,12 @@
 #define MYNEWT_VAL_TINYCRYPT_UECC_RNG_USE_TRNG (0)
 #endif
 
-/*** hw/bsp/nordic_pca10040 */
-#ifndef MYNEWT_VAL_BSP_NRF52
-#define MYNEWT_VAL_BSP_NRF52 (1)
+#ifndef MYNEWT_VAL_BSP_NRF51
+#define MYNEWT_VAL_BSP_NRF51 (0)
 #endif
-#ifndef MYNEWT_VAL_MCU_NRF52832
-#define MYNEWT_VAL_MCU_NRF52832 (1)
+
+#ifndef MYNEWT_VAL_BSP_NRF52
+#define MYNEWT_VAL_BSP_NRF52 (0)
 #endif
 
 #ifndef MYNEWT_VAL_MCU_NRF52840

+ 4 - 0
porting/npl/rtthread/include/config/config.h

@@ -94,6 +94,10 @@
 #define MYNEWT_VAL_BLE_CTLR_THREAD_PRIORITY     (PKG_NIMBLE_CTLR_THREAD_PRIORITY)
 #endif
 
+#ifdef PKG_NIMBLE_BSP_NRF51
+#define MYNEWT_VAL_BSP_NRF51                     (1)
+#endif
+
 #ifdef PKG_NIMBLE_BSP_NRF52
 #define MYNEWT_VAL_BSP_NRF52                     (1)
 #endif