Эх сурвалжийг харах

🌈 style(stack): 改变文件组织方式

Jackistang 4 жил өмнө
parent
commit
62218f9655

+ 9 - 5
SConscript

@@ -2,6 +2,8 @@ from building import *
 
 cwd  = GetCurrentDir()
 
+inc = []
+
 src = Split('''
     src/hci_transport_h4.c
     src/hci_transport_h4_uart.c
@@ -11,9 +13,11 @@ src = Split('''
 
 # For stack choice
 src += [
-	'porting/stack/btstack.c',
-    'porting/stack/btstack_rtthread_hm.c',
-    # 'porting/stack/nimble.c'
+	'porting/btstack/btstack.c',
+    'porting/btstack/btstack_rtthread_hm.c',
+]
+inc += [
+    cwd + '/porting/btstack'
 ]
 
 # For chipset choice
@@ -29,7 +33,7 @@ src += [
 #     'tests/chipset.c'
 # ]
 
-CPPPATH = [cwd + '/include']
+inc += [cwd + '/include']
 
-group = DefineGroup('hci-middleware', src, depend = [''], CPPPATH = CPPPATH)
+group = DefineGroup('hci-middleware', src, depend = [''], CPPPATH = inc)
 Return ('group')

+ 0 - 0
porting/stack/btstack.c → porting/btstack/btstack.c


+ 55 - 0
porting/btstack/btstack_config.h

@@ -0,0 +1,55 @@
+//
+// btstack_config.h for generic POSIX H4 port
+//
+
+#ifndef BTSTACK_CONFIG_H
+#define BTSTACK_CONFIG_H
+
+// Port related features
+#define HAVE_ASSERT
+#define HAVE_BTSTACK_STDIN
+#define HAVE_MALLOC
+#define HAVE_POSIX_FILE_IO
+#define HAVE_POSIX_TIME
+
+// BTstack features that can be enabled
+#define ENABLE_BLE
+#define ENABLE_HFP_WIDE_BAND_SPEECH
+#define ENABLE_LE_CENTRAL
+#define ENABLE_LE_DATA_CHANNELS
+#define ENABLE_LE_DATA_LENGTH_EXTENSION
+#define ENABLE_LE_PERIPHERAL
+#define ENABLE_LE_PRIVACY_ADDRESS_RESOLUTION
+#define ENABLE_LE_SECURE_CONNECTIONS
+#define ENABLE_LOG_ERROR
+#define ENABLE_LOG_INFO
+#define ENABLE_MICRO_ECC_FOR_LE_SECURE_CONNECTIONS
+#define ENABLE_PRINTF_HEXDUMP
+#define ENABLE_SCO_OVER_HCI
+#define ENABLE_SDP_DES_DUMP
+
+// BTstack configuration. buffers, sizes, ...
+#define HCI_ACL_PAYLOAD_SIZE (1691 + 4)
+#define HCI_INCOMING_PRE_BUFFER_SIZE 14 // sizeof benep heade, avoid memcpy
+
+// #define NVM_NUM_DEVICE_DB_ENTRIES      20
+#define MAX_NR_LE_DEVICE_DB_ENTRIES 20
+
+// Mesh Configuration
+#define ENABLE_MESH
+#define ENABLE_MESH_ADV_BEARER
+#define ENABLE_MESH_GATT_BEARER
+#define ENABLE_MESH_PB_ADV
+#define ENABLE_MESH_PB_GATT
+#define ENABLE_MESH_PROVISIONER
+#define ENABLE_MESH_PROXY_SERVER
+
+#define MAX_NR_MESH_SUBNETS            2
+#define MAX_NR_MESH_TRANSPORT_KEYS    16
+#define MAX_NR_MESH_VIRTUAL_ADDRESSES 16
+
+// allow for one NetKey update
+#define MAX_NR_MESH_NETWORK_KEYS      (MAX_NR_MESH_SUBNETS+1)
+
+#endif
+

+ 6 - 17
porting/stack/btstack_rtthread_hm.c → porting/btstack/btstack_rtthread_hm.c

@@ -58,7 +58,7 @@
 #include "btstack_run_loop_rtthread.h"
 #include "btstack_uart.h"
 #include "bluetooth_company_id.h"
-#include "ble/le_device_db_tlv.h"
+#include "ble/le_device_db.h"
 #include "hci.h"
 #include "hci_dump.h"
 #include "hci_dump_rtthread_stdout.h"
@@ -67,16 +67,9 @@
 #include "hm_hci_transport_h4.h"
 #include "btstack_stdin.h"
 #include "btstack_chipset_zephyr.h"
-#include "btstack_tlv_posix.h"
 
 int btstack_main(int argc, const char * argv[]);
 
-#define TLV_DB_PATH_PREFIX "/tmp/btstack_"
-#define TLV_DB_PATH_POSTFIX ".tlv"
-static char tlv_db_path[100];
-static const btstack_tlv_t * tlv_impl;
-static btstack_tlv_posix_t   tlv_context;
-
 static btstack_packet_callback_registration_t hci_event_callback_registration;
 
 static const uint8_t read_static_address_command_complete_prefix[] = { 0x0e, 0x1b, 0x01, 0x09, 0xfc };
@@ -88,13 +81,9 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
         case BTSTACK_EVENT_STATE:
             if (btstack_event_state_get_state(packet) != HCI_STATE_WORKING) break;
             printf("BTstack up and running as %s\n",  bd_addr_to_str(static_address));
-            // setup TLV
-            strcpy(tlv_db_path, TLV_DB_PATH_PREFIX);
-            strcat(tlv_db_path, bd_addr_to_str(static_address));
-            strcat(tlv_db_path, TLV_DB_PATH_POSTFIX);
-            tlv_impl = btstack_tlv_posix_init_instance(&tlv_context, tlv_db_path);
-            btstack_tlv_set_instance(tlv_impl, &tlv_context);
-            le_device_db_tlv_configure(tlv_impl, &tlv_context);
+            
+            le_device_db_init();
+
             break;
         case HCI_EVENT_COMMAND_COMPLETE:
             if (memcmp(packet, read_static_address_command_complete_prefix, sizeof(read_static_address_command_complete_prefix)) == 0){
@@ -113,8 +102,8 @@ static int rt_btstack_main(int argc, const char * argv[]){
 	btstack_memory_init();
     btstack_run_loop_init(btstack_run_loop_rtthread_get_instance());
 
-    const hci_dump_t * hci_dump_impl = hci_dump_rtthread_stdout_get_instance();
-    hci_dump_init(hci_dump_impl);
+    // const hci_dump_t * hci_dump_impl = hci_dump_rtthread_stdout_get_instance();
+    // hci_dump_init(hci_dump_impl);
 
     // init HCI
     const hci_transport_t *transport = hci_transport_h4_instance(NULL);

+ 0 - 0
porting/stack/nimble.c → porting/nimble/nimble.c