Просмотр исходного кода

[FL-3302] Part 2 of hooking C2 IPC (#2662)

hedger 2 лет назад
Родитель
Сommit
9914aa40bd
2 измененных файлов с 19 добавлено и 1 удалено
  1. 15 0
      firmware/targets/f7/ble_glue/ble_glue.c
  2. 4 1
      lib/stm32wb.scons

+ 15 - 0
firmware/targets/f7/ble_glue/ble_glue.c

@@ -2,6 +2,7 @@
 #include "app_common.h"
 #include "app_common.h"
 #include "ble_app.h"
 #include "ble_app.h"
 #include <ble/ble.h>
 #include <ble/ble.h>
+#include <hci_tl.h>
 
 
 #include <interface/patterns/ble_thread/tl/tl.h>
 #include <interface/patterns/ble_thread/tl/tl.h>
 #include <interface/patterns/ble_thread/shci/shci.h>
 #include <interface/patterns/ble_thread/shci/shci.h>
@@ -72,6 +73,20 @@ void shci_register_io_bus(tSHciIO* fops) {
     fops->Send = ble_glue_TL_SYS_SendCmd;
     fops->Send = ble_glue_TL_SYS_SendCmd;
 }
 }
 
 
+static int32_t ble_glue_TL_BLE_SendCmd(uint8_t* buffer, uint16_t size) {
+    if(furi_hal_bt_get_hardfault_info()) {
+        furi_crash("ST(R) Copro(R) HardFault");
+    }
+
+    return TL_BLE_SendCmd(buffer, size);
+}
+
+void hci_register_io_bus(tHciIO* fops) {
+    /* Register IO bus services */
+    fops->Init = TL_BLE_Init;
+    fops->Send = ble_glue_TL_BLE_SendCmd;
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
 
 void ble_glue_init() {
 void ble_glue_init() {

+ 4 - 1
lib/stm32wb.scons

@@ -48,7 +48,10 @@ sources += Glob(
 )
 )
 sources += Glob(
 sources += Glob(
     "stm32wb_copro/wpan/interface/patterns/ble_thread/tl/*_tl*.c",
     "stm32wb_copro/wpan/interface/patterns/ble_thread/tl/*_tl*.c",
-    exclude="stm32wb_copro/wpan/interface/patterns/ble_thread/tl/shci_tl_if.c",
+    exclude=[
+        "stm32wb_copro/wpan/interface/patterns/ble_thread/tl/hci_tl_if.c",
+        "stm32wb_copro/wpan/interface/patterns/ble_thread/tl/shci_tl_if.c",
+    ],
     source=True,
     source=True,
 )
 )
 sources += [
 sources += [