HW layer for the Nucleo board, it only work with old BLE_API
Dependents: Hello_BLE F446RE-BLE
Fork of X_NUCLEO_IDB0XA1 by
hci/inc/hal.h
- Committer:
- mridup
- Date:
- 2014-07-16
- Revision:
- 0:309c845d289d
- Child:
- 60:b0b2d639c0f5
File content as of revision 0:309c845d289d:
/******************** (C) COPYRIGHT 2012 STMicroelectronics ******************** * File Name : hal.h * Author : AMS - HEA&RF BU * Version : V1.0.0 * Date : 19-July-2012 * Description : Header file which defines Hardware abstraction layer APIs * used by the BLE stack. It defines the set of functions * which needs to be ported to the target platform. ******************************************************************************** * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. *******************************************************************************/ #ifndef __HAL_H__ #define __HAL_H__ /****************************************************************************** * Includes *****************************************************************************/ #include <hal_types.h> #include <ble_status.h> /****************************************************************************** * Macros *****************************************************************************/ /* Little Endian buffer to Controller Byte order conversion */ #define LE_TO_NRG_16(ptr) (uint16) ( ((uint16) \ *((tHalUint8 *)ptr)) | \ ((tHalUint16) \ *((tHalUint8 *)ptr + 1) << 8 ) ) #define LE_TO_NRG_32(ptr) (tHalUint32) ( ((tHalUint32) \ *((tHalUint8 *)ptr)) | \ ((tHalUint32) \ *((tHalUint8 *)ptr + 1) << 8) | \ ((tHalUint32) \ *((tHalUint8 *)ptr + 2) << 16) | \ ((tHalUint32) \ *((tHalUint8 *)ptr + 3) << 24) ) /* Store Value into a buffer in Little Endian Format */ #define STORE_LE_16(buf, val) ( ((buf)[0] = (tHalUint8) (val) ) , \ ((buf)[1] = (tHalUint8) (val>>8) ) ) #define STORE_LE_32(buf, val) ( ((buf)[0] = (tHalUint8) (val) ) , \ ((buf)[1] = (tHalUint8) (val>>8) ) , \ ((buf)[2] = (tHalUint8) (val>>16) ) , \ ((buf)[3] = (tHalUint8) (val>>24) ) ) /****************************************************************************** * Types *****************************************************************************/ /****************************************************************************** * Function Prototypes *****************************************************************************/ /** * Writes data to a serial interface. * * @param[in] data1 1st buffer * @param[in] data2 2nd buffer * @param[in] n_bytes1 number of bytes in 1st buffer * @param[in] n_bytes2 number of bytes in 2nd buffer */ void Hal_Write_Serial(const void* data1, const void* data2, tHalInt32 n_bytes1, tHalInt32 n_bytes2); /** * Enable interrupts from HCI controller. */ void Enable_SPI_IRQ(void); /** * Disable interrupts from BLE controller. */ void Disable_SPI_IRQ(void); #endif /* __HAL_H__ */