HW layer for the Nucleo board, it only work with old BLE_API
Dependents: Hello_BLE F446RE-BLE
Fork of X_NUCLEO_IDB0XA1 by
Diff: BlueNRG_HCI/includes/hal.h
- Revision:
- 64:6d7b775c3f6d
- Parent:
- 60:b0b2d639c0f5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BlueNRG_HCI/includes/hal.h Wed Nov 19 11:24:37 2014 +0000 @@ -0,0 +1,84 @@ +/******************** (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_byt//es2 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__ */