118 lines
3.7 KiB
C
118 lines
3.7 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef _BB_CPU_HW_RING_H_
|
|
#define _BB_CPU_HW_RING_H_
|
|
|
|
/* os shim includes */
|
|
#include "os_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief base on phr select ring,
|
|
* and return payload rx buffer
|
|
* @param phr_info: rx phr info
|
|
* @retval: payload rx buffer address.
|
|
* for packet with no payload, return NULL.
|
|
*/
|
|
uint8_t *bb_cpu_hw_ring_select(void *phr_info);
|
|
|
|
/**
|
|
* @brief all or packet data rx compelet, then fill ring desc
|
|
* @retval: error code. see ERR_XXX.
|
|
*/
|
|
uint32_t bb_cpu_hw_ring_rx_complete_cfg_desc(void);
|
|
|
|
/**
|
|
* @brief trigger ring buffer rx done flow.
|
|
* update ring buffer write index, and set rx done
|
|
* isr to plc cpu。
|
|
* @retval: error code. see ERR_XXX.
|
|
*/
|
|
uint32_t bb_cpu_hw_ring_rx_done_set(void);
|
|
|
|
/**
|
|
* @brief set snr to ring buffer
|
|
* @param snr: snr value
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_snr_set(int8_t snr);
|
|
|
|
/**
|
|
* @brief set raw snr to ring buffer
|
|
* @param snr: raw snr value
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_raw_snr_set(uint16_t snr);
|
|
|
|
/**
|
|
* @brief set rssi to ring buffer
|
|
* @param rssi: rssi value
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_rssi_set(int8_t rssi);
|
|
|
|
/**
|
|
* @brief set rx gain to ring buffer
|
|
* @param rx_gain: rx gain value
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_rx_gain_set(uint8_t rx_gain);
|
|
|
|
/**
|
|
* @brief set rx ppmhz to ring buffer
|
|
* @param rx_ppm: rx ppm hz value
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_rx_ppmhz_set(int32_t rx_ppm_hz);
|
|
|
|
/**
|
|
* @brief set raw snr/rssi reigster to ring buffer
|
|
* @param raw_snr_rssi_reg1: raw snr/rssi register1 value
|
|
* @param raw_snr_rssi_reg2: raw snr/rssi register2 value
|
|
* @param raw_snr_rssi_reg3: raw snr/rssi register3 value
|
|
* @retval: void.
|
|
*/
|
|
void bb_cpu_hw_ring_raw_snr_rssi_set(uint32_t raw_snr_rssi_reg1,
|
|
uint32_t raw_snr_rssi_reg2, uint32_t raw_snr_rssi_reg3);
|
|
|
|
/**
|
|
* @brief init hw ring buffer context
|
|
* @retval: none.
|
|
*/
|
|
void bb_cpu_hw_ring_init(void);
|
|
|
|
/**
|
|
* @brief set ring status
|
|
* @param rx_status: rx status
|
|
* @retval: error code. see ERR_XXX.
|
|
*/
|
|
uint32_t bb_cpu_hw_ring_set_rx_status(uint32_t rx_status);
|
|
|
|
/**
|
|
* @brief set ring tx sack status
|
|
* @param tx_sack_status: tx sack status
|
|
* @retval: error code. see ERR_XXX.
|
|
*/
|
|
uint32_t bb_cpu_hw_ring_set_tx_sack_status(uint32_t tx_sack_status);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _BB_CPU_HW_RING_H_
|