EasyManuals Logo

Analog Devices ADRV9002 User Manual

Analog Devices ADRV9002
338 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #35 background imageLoading...
Page #35 background image
Preliminary Technical Data UG-1828
Rev. PrC | Page 35 of 338
SOFTWARE INTEGRATION
The ADRV9001 API package was developed using the ZC706 Evaluation platform. This section describes how to use the provided
ADRV9001 API in a custom hardware/software environment. This is readily accomplished because the API was developed abiding by
C99 constructs while maintaining Linux system call transparency. The TES package can be used to produce C99 code to replicate a
customer’s application while maintaining agnostic processor and operating system integration with the ADRV9001 API code.
Figure 18. Evaluation System Software Stack
HARDWARE ABSTRACTION LAYER
Users who develop code to target custom hardware platforms use different drivers for the peripherals such as the SPI and GPIO compared
to the drivers chosen for the ADI evaluation platform. The hardware abstraction layer (HAL) interface is a set of function pointers that
the ADRV9001 API uses when it needs to access the target platform hardware. Each device driver (ADM1293, ADRV9001, FPGA9001)
has its own HAL, defined in their respective adi_<device>_hal.h files. This allows a user to select only the components which are desired.
The user is responsible for implementing the interface defined in each HAL in order to use the corresponding device driver with their
specific platform. The adi_platform.c file maps function pointers to the platform-specific HAL implementations. The implementation of
this interface is platform dependent and needs to be implemented by the end user. The function pointers associated with the user HAL
layer needs to be set in adi_platform.c.
Below is a code snippet from the beginning of adi_platform.c:
#include "adi_platform.h"
#ifndef CUSTOMER_PLATFORM
#include "adi_linux_uio_logging.h"
#include "adi_linux_uio_timer.h"
#include "adi_adm1293_hal_linux_uio.h"
#include "adi_adrv9001_hal_linux_uio.h"
#include "adi_fpga9001_hal_linux_uio.h"
/* Logging interface */
int32_t(*adi_hal_LogWrite)(void *devHalCfg, uint32_t logLevel, const char *comment, va_list args) = linux_uio_LogWrite;
/* Timer interface */
LOGGING
DEVICE LAYER
ADRV9001
COMMON
PLATFORM LAYER
adi_platform
HARDWARE ABSTRACTION LAYER
APPLICATION HAL
IMPLEMENTATION
APPLICATION USES
PLATFORM LAYER
AS AN INTERFACE
TO MAP TO
THEIR HAL
MODIFICATION BY
APPLICATION IS
FORBIDDEN
ERROR
HAL
PLATFORM
SPI LOGGING
TIMER
PLATFORM SPI LOGGING
TIMER
24159-015

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Analog Devices ADRV9002 and is the answer not in the manual?

Analog Devices ADRV9002 Specifications

General IconGeneral
BrandAnalog Devices
ModelADRV9002
CategoryTransceiver
LanguageEnglish

Related product manuals