PAL related APIs.
Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
#include "compiler.h"
#include "pal_generic.h"
#include "return_val.h"
#include "common_sw_timer.h"
#include "board.h"
#include "asf.h"
#include "trx_access.h"
Macros | |
#define | DISABLE_GLOBAL_IRQ() Disable_global_interrupt() |
#define | ENABLE_GLOBAL_IRQ() Enable_global_interrupt() |
#define | ENTER_CRITICAL_REGION() {uint8_t flags = cpu_irq_save(); |
#define | LEAVE_CRITICAL_REGION() cpu_irq_restore(flags); } |
#define | MIN_TIMEOUT (0x80) |
#define | pal_timer_delay(delay) delay_us(delay) |
Generates blocking delay. More... | |
#define | pal_trx_irq_dis() DISABLE_TRX_IRQ() |
Disables the transceiver main interrupt. More... | |
#define | pal_trx_irq_dis_tstamp() DISABLE_TRX_IRQ_TSTAMP() |
Disables the transceiver timestamp interrupt. More... | |
#define | pal_trx_irq_en() ENABLE_TRX_IRQ() |
Enables the transceiver main interrupt. More... | |
#define | pal_trx_irq_en_tstamp() ENABLE_TRX_IRQ_TSTAMP() |
Enables the transceiver timestamp interrupt. More... | |
#define | pal_trx_irq_flag_clr() CLEAR_TRX_IRQ() |
Clears the transceiver main interrupt. More... | |
#define | pal_trx_irq_flag_clr_tstamp() CLEAR_TRX_IRQ_TSTAMP() |
Clears the transceiver timestamp interrupt. More... | |
#define | PAL_WAIT_1_US() delay_us(1); |
#define | PAL_WAIT_65_NS() {nop(); nop(); } |
#define | STACK_FLASH_SIZE (1024) |
#define | TIMER_SRC_DURING_TRX_AWAKE() |
Timer clock source while radio is awake. More... | |
#define | TIMER_SRC_DURING_TRX_SLEEP() |
Timer clock source while radio is sleeping. More... | |
#define | U16_TO_TARGET(x) (x) |
This macro is used for handling endianness among the different CPUs. More... | |
Typedefs | |
typedef enum ps_id_tag | ps_id_t |
IDs for persistence storage access. More... | |
typedef enum pwr_mode_tag | pwr_mode_t |
Power modes. More... | |
typedef enum source_type_tag | source_type_t |
Timer clock source type. More... | |
Enumerations | |
enum | ps_id_tag { PS_IEEE_ADDR, PS_XTAL_TRIM } |
IDs for persistence storage access. More... | |
enum | pwr_mode_tag { SYSTEM_SLEEP } |
Power modes. More... | |
enum | source_type_tag { TMR_CLK_SRC_DURING_TRX_SLEEP, TMR_CLK_SRC_DURING_TRX_AWAKE } |
Timer clock source type. More... | |
Functions | |
static uint32_t | pal_add_time_us (uint32_t a, uint32_t b) |
Adds two time values. More... | |
bool | pal_calibrate_rc_osc (void) |
Calibrates the internal RC oscillator. More... | |
static void | pal_global_irq_disable (void) |
Disables the global interrupt. More... | |
static void | pal_global_irq_enable (void) |
Enables the global interrupt. More... | |
retval_t | pal_init (void) |
Initialization of PAL. More... | |
static uint32_t | pal_sub_time_us (uint32_t a, uint32_t b) |
Subtracts two time values. More... | |
void | pal_timer_source_select (source_type_t source) |
Selects timer clock source. More... | |
void | pal_trx_irq_init (FUNC_PTR trx_irq_cb) |
Initializes the transceiver main interrupt. More... | |
void | pal_trx_irq_init_tstamp (FUNC_PTR trx_irq_cb) |
Initializes the transceiver timestamp interrupt. More... | |
void | pal_trx_read_timestamp (uint32_t *timestamp) |
Provides timestamp of the last received frame. More... | |