Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c')
-rw-r--r--Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c356
1 files changed, 177 insertions, 179 deletions
diff --git a/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c b/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c
index 7e6372c52..b56e6a765 100644
--- a/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c
+++ b/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci/lhci.c
@@ -4,17 +4,16 @@
* @author MCD Application Team
* @brief HCI command for the system channel
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2018-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
*/
@@ -36,92 +35,92 @@ extern uint32_t FW_Version;
/* Functions Definition ------------------------------------------------------*/
void LHCI_C1_Write_Register( TL_CmdPacket_t *pcmd )
{
- LHCI_C1_Write_Register_cmd_t * p_param;
- uint32_t primask_bit;
+ LHCI_C1_Write_Register_cmd_t * p_param;
+ uint32_t primask_bit;
- primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
- p_param = (LHCI_C1_Write_Register_cmd_t *) pcmd->cmdserial.cmd.payload;
+ p_param = (LHCI_C1_Write_Register_cmd_t *) pcmd->cmdserial.cmd.payload;
- switch (p_param->busw)
- {
- case LHCI_8bits:
- __disable_irq();
+ switch (p_param->busw)
+ {
+ case LHCI_8bits:
+ __disable_irq();
- *(uint8_t *) (p_param->add) = ((*(uint8_t *) (p_param->add)) & (~(p_param->mask)))
- | (p_param->val & p_param->mask);
+ *(uint8_t *) (p_param->add) = ((*(uint8_t *) (p_param->add)) & (~(p_param->mask)))
+ | (p_param->val & p_param->mask);
- __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
- break;
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+ break;
- case LHCI_16bits:
- __disable_irq();
+ case LHCI_16bits:
+ __disable_irq();
- *(uint16_t *) (p_param->add) = ((*(uint16_t *) (p_param->add)) & (~(p_param->mask)))
- | (p_param->val & p_param->mask);
+ *(uint16_t *) (p_param->add) = ((*(uint16_t *) (p_param->add)) & (~(p_param->mask)))
+ | (p_param->val & p_param->mask);
- __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
- break;
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+ break;
- default: /**< case SHCI_32BITS */
- __disable_irq();
+ default: /**< case SHCI_32BITS */
+ __disable_irq();
- *(uint32_t *) (p_param->add) = ((*(uint32_t *) (p_param->add)) & (~(p_param->mask)))
- | (p_param->val & p_param->mask);
+ *(uint32_t *) (p_param->add) = ((*(uint32_t *) (p_param->add)) & (~(p_param->mask)))
+ | (p_param->val & p_param->mask);
- __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
- break;
- }
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+ break;
+ }
- ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_CS_PAYLOAD_SIZE;
- ;
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_WRITE_REG;
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload[0]= 0x00;
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_CS_PAYLOAD_SIZE;
+ ;
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_WRITE_REG;
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload[0]= 0x00;
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
- return;
+ return;
}
void LHCI_C1_Read_Register( TL_CmdPacket_t *pcmd )
{
- LHCI_C1_Read_Register_cmd_t * p_param;
- uint32_t rsp_val;
- uint8_t busw;
-
- p_param = (LHCI_C1_Read_Register_cmd_t *) pcmd->cmdserial.cmd.payload;
- busw = p_param->busw;
-
- switch (busw)
- {
- case LHCI_8bits:
- rsp_val = *(uint8_t *) (p_param->add);
- break;
-
- case LHCI_16bits:
- rsp_val = *(uint16_t *) (p_param->add);
- break;
-
- default: /**< case SHCI_32BITS */
- rsp_val = *(uint32_t *) (p_param->add);
- break;
- }
-
- ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_HDR_SIZE + sizeof(LHCI_C1_Read_Register_ccrp_t);
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_READ_REG;
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
- ((LHCI_C1_Read_Register_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->status =
- 0x00;
-
- memcpy(
- (void*)&(((LHCI_C1_Read_Register_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->val),
- &rsp_val,
- 4);
-
- return;
+ LHCI_C1_Read_Register_cmd_t * p_param;
+ uint32_t rsp_val;
+ uint8_t busw;
+
+ p_param = (LHCI_C1_Read_Register_cmd_t *) pcmd->cmdserial.cmd.payload;
+ busw = p_param->busw;
+
+ switch (busw)
+ {
+ case LHCI_8bits:
+ rsp_val = *(uint8_t *) (p_param->add);
+ break;
+
+ case LHCI_16bits:
+ rsp_val = *(uint16_t *) (p_param->add);
+ break;
+
+ default: /**< case SHCI_32BITS */
+ rsp_val = *(uint32_t *) (p_param->add);
+ break;
+ }
+
+ ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_HDR_SIZE + sizeof(LHCI_C1_Read_Register_ccrp_t);
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_READ_REG;
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
+ ((LHCI_C1_Read_Register_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->status =
+ 0x00;
+
+ memcpy(
+ (void*)&(((LHCI_C1_Read_Register_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->val),
+ &rsp_val,
+ 4);
+
+ return;
}
void LHCI_C1_Read_Device_Information( TL_CmdPacket_t *pcmd )
@@ -132,104 +131,103 @@ void LHCI_C1_Read_Device_Information( TL_CmdPacket_t *pcmd )
ipccdba = READ_BIT(FLASH->IPCCBR, FLASH_IPCCBR_IPCCDBA);
p_ref_table = (MB_RefTable_t*)((ipccdba<<2) + SRAM2A_BASE);
- ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
- ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_HDR_SIZE + sizeof(LHCI_C1_Device_Information_ccrp_t);
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_DEVICE_INF;
- ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
-
-
- /**
- * status
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->status =
- 0x00;
-
- /**
- * revision id
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->rev_id =
- (uint16_t)LL_DBGMCU_GetRevisionID();
-
- /**
- * device code id
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->dev_code_id =
- (uint16_t)LL_DBGMCU_GetDeviceID();
-
- /**
- * package type
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->package_type =
- (uint8_t)LL_GetPackageType();
-
- /**
- * device type id
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->device_type_id =
- (uint8_t)LL_FLASH_GetDeviceID();
-
- /**
- * st company id
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->st_company_id =
- LL_FLASH_GetSTCompanyID();
-
- /**
- * UID64
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid64 =
- LL_FLASH_GetUDN();
-
- /**
- * UID96_0
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_0 =
- LL_GetUID_Word0();
-
- /**
- * UID96_1
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_1 =
- LL_GetUID_Word1();
-
- /**
- * UID96_2
- */
- ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_2 =
- LL_GetUID_Word2();
-
- /**
- * SafeBootInf
- */
- memcpy(
- &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->SafeBootInf),
- &(p_ref_table->p_device_info_table->SafeBootInfoTable),
- sizeof(MB_SafeBootInfoTable_t));
-
- /**
- * FusInf
- */
- memcpy(
- &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->FusInf),
- &(p_ref_table->p_device_info_table->FusInfoTable),
- sizeof(MB_FusInfoTable_t));
-
- /**
- * WirelessFwInf
- */
- memcpy(
- &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->WirelessFwInf),
- &(p_ref_table->p_device_info_table->WirelessFwInfoTable),
- sizeof(MB_WirelessFwInfoTable_t));
-
- /**
- * AppFwInf
- */
- (((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->AppFwInf) =
- FW_Version;
-
- return;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.type = TL_LOCRSP_PKT_TYPE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.evtcode = TL_BLEEVT_CC_OPCODE;
+ ((TL_EvtPacket_t*) pcmd)->evtserial.evt.plen = TL_EVT_HDR_SIZE + sizeof(LHCI_C1_Device_Information_ccrp_t);
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->cmdcode = LHCI_OPCODE_C1_DEVICE_INF;
+ ((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->numcmd = 1;
+
+
+ /**
+ * status
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->status =
+ 0x00;
+
+ /**
+ * revision id
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->rev_id =
+ (uint16_t)LL_DBGMCU_GetRevisionID();
+
+ /**
+ * device code id
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->dev_code_id =
+ (uint16_t)LL_DBGMCU_GetDeviceID();
+
+ /**
+ * package type
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->package_type =
+ (uint8_t)LL_GetPackageType();
+
+ /**
+ * device type id
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->device_type_id =
+ (uint8_t)LL_FLASH_GetDeviceID();
+
+ /**
+ * st company id
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->st_company_id =
+ LL_FLASH_GetSTCompanyID();
+
+ /**
+ * UID64
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid64 =
+ LL_FLASH_GetUDN();
+
+ /**
+ * UID96_0
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_0 =
+ LL_GetUID_Word0();
+
+ /**
+ * UID96_1
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_1 =
+ LL_GetUID_Word1();
+
+ /**
+ * UID96_2
+ */
+ ((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->uid96_2 =
+ LL_GetUID_Word2();
+
+ /**
+ * SafeBootInf
+ */
+ memcpy(
+ &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->SafeBootInf),
+ &(p_ref_table->p_device_info_table->SafeBootInfoTable),
+ sizeof(MB_SafeBootInfoTable_t));
+
+ /**
+ * FusInf
+ */
+ memcpy(
+ &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->FusInf),
+ &(p_ref_table->p_device_info_table->FusInfoTable),
+ sizeof(MB_FusInfoTable_t));
+
+ /**
+ * WirelessFwInf
+ */
+ memcpy(
+ &(((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->WirelessFwInf),
+ &(p_ref_table->p_device_info_table->WirelessFwInfoTable),
+ sizeof(MB_WirelessFwInfoTable_t));
+
+ /**
+ * AppFwInf
+ */
+ (((LHCI_C1_Device_Information_ccrp_t *) (((TL_CcEvt_t *) (((TL_EvtPacket_t*) pcmd)->evtserial.evt.payload))->payload))->AppFwInf) =
+ FW_Version;
+
+ return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/