소스 검색

add Kconfig for path reset pin

li.tao 9 달 전
부모
커밋
5b34c8bf1a
2개의 변경된 파일50개의 추가작업 그리고 16개의 파일을 삭제
  1. 31 14
      Kconfig
  2. 19 2
      port/posix-h4-bcm/btstack_main.c

+ 31 - 14
Kconfig

@@ -6,20 +6,22 @@ menuconfig PKG_USING_BTSTACK
     select RT_USING_POSIX_FS if RT_VER_NUM >= 0x40100
     select RT_USING_PTHREADS
     select RT_USING_POSIX_TERMIOS
+    select RT_USING_POSIX_SELECT if RT_VER_NUM >=0x50200
+    select RT_USING_FAL if RT_VER_NUM >=0x50200
     bool "BTSTACK: embedded btstack"
     default n
 
 if PKG_USING_BTSTACK
     if RT_VER_NUM < 0x50200
-		config _GNU_SOURCE
-		int
-		default 1
-		config HAVE_DIRENT_STRUCTURE
-		int
-		default 1
-		config HAVE_DIR_STRUCTURE
-		int
-		default 1
+        config _GNU_SOURCE
+        int
+        default 1
+        config HAVE_DIRENT_STRUCTURE
+        int
+        default 1
+        config HAVE_DIR_STRUCTURE
+        int
+        default 1
     endif
     config PKG_BTSTACK_PATH
         string
@@ -27,6 +29,24 @@ if PKG_USING_BTSTACK
 
 
 if PKG_BTSTACK_VER_NUM >= 0x10000
+menu "BTSTACK stack HARDWARE config"
+    config BTSTACK_BT_RESET_PIN
+        int "btstack pin value (port-a)*16+pin for stm32 "
+        default 139  if SOC_STM32H750_ARTPI
+        default 55  if BOARD_SERIES_STM32_NUCLEO_144
+
+    config BTSTACK_BT_UART_PORT_DEV_NAME
+        string "The device name of the uart port"
+        default "/dev/uart3" if SOC_STM32H750_ARTPI
+        default "/dev/uart2" if BOARD_SERIES_STM32_NUCLEO_144
+
+    config BTSTACK_BT_PATCH_NAME
+        string "The patch file name of device"
+        default "/dev/bt_image" if SOC_STM32H750_ARTPI
+        default "BCM43430A1.hcd" if BOARD_SERIES_STM32_NUCLEO_144
+
+endmenu
+
 #  btstack office config
 menu "BTSTACK stack config"
     config ENABLE_LOG_ERROR
@@ -202,13 +222,10 @@ menuconfig PKG_BTSTACK_SMP
             default y
         endif
 
-
-
-
 # example
 choice
-    prompt "BTSTACK example ALL"
-    default PKG_BTSTACK_SAMPLE_LE_BLUFI_SERVER
+    prompt "BTSTACK example select"
+    default PKG_BTSTACK_SAMPLE_LE_COUNTER
     help
         select the BTSTACK samples
 

+ 19 - 2
port/posix-h4-bcm/btstack_main.c

@@ -173,14 +173,21 @@ void bt_stack_main(void *param)
     btstack_run_loop_init(btstack_run_loop_posix_get_instance());
 
     // pick serial port and configure uart block driver
+#ifdef BTSTACK_BT_UART_PORT_DEV_NAME
+    transport_config.device_name = BTSTACK_BT_UART_PORT_DEV_NAME; //"/dev/uart2"; // RedBear IoT pHAT breakout board
+#else
     transport_config.device_name = "/dev/uart3"; // RedBear IoT pHAT breakout board
-
+#endif
     // get BCM chipset driver
     const btstack_chipset_t *chipset = btstack_chipset_bcm_instance();
     chipset->init(&transport_config);
 
     // set chipset name
+#ifdef BTSTACK_BT_PATCH_NAME
+    btstack_chipset_bcm_set_device_name(BTSTACK_BT_PATCH_NAME);
+#else
     btstack_chipset_bcm_set_device_name("/dev/bt_image");
+#endif
 
     // setup UART driver
     const btstack_uart_block_t *uart_driver = btstack_uart_block_posix_instance();
@@ -190,6 +197,14 @@ void bt_stack_main(void *param)
     uart_config.flowcontrol = transport_config.flowcontrol;
     uart_config.device_name = transport_config.device_name;
     uart_driver->init(&uart_config);
+#ifdef BTSTACK_BT_RESET_PIN
+    rt_pin_mode(BTSTACK_BT_RESET_PIN, PIN_MODE_OUTPUT);
+
+    rt_pin_write(BTSTACK_BT_RESET_PIN, PIN_LOW);
+    HAL_Delay(1000);
+    rt_pin_write(BTSTACK_BT_RESET_PIN, PIN_HIGH);
+    HAL_Delay(1000);
+#else
 #ifdef SOC_FAMILY_STM32
 #define BT_AP6212_PIN GET_PIN(I, 11)
     rt_pin_mode(BT_AP6212_PIN, PIN_MODE_OUTPUT);
@@ -198,8 +213,10 @@ void bt_stack_main(void *param)
     HAL_Delay(1000);
     rt_pin_write(BT_AP6212_PIN, PIN_HIGH);
     HAL_Delay(1000);
+#else
+#error "Please set the reset pin 
+#endif
 #endif
-
     // setup HCI (to be able to use bcm chipset driver)
     // init HCI
     const hci_transport_t *transport = hci_transport_h4_instance(uart_driver);