![Analog Devices ADRV9001 User Manual Download Page 33](http://html1.mh-extra.com/html/analog-devices/adrv9001/adrv9001_user-manual_2939807033.webp)
Preliminary Technical Data
UG-1828
Rev. PrC | Page 33 of 338
The majority of the “Minor Edits” occur in the “main.c” and “initialize.c” files of the generated codebase. For example, near the beginning
of the main(…) function, the linux_uio_initialize(…) function is called. This function is defined in linux_uio_init.c, found under
platforms\linux_uio\. Inspecting this function, the following code snippet is found early in definition:
if (NULL != fpga9001)
{
fpga9001->common.devHalInfo = linux_uio_fpga9001_open();
if (NULL != adrv9001)
{
((adi_adrv9001_hal_linux_uio_Cfg_t *)adrv9001->common.devHalInfo)->fpga9001 = fpga9001;
}
if (NULL == fpga9001->common.devHalInfo)
{
return -1;
}
}
In more simple English, this code snippet uses the linux_uio FPGA codebase to define an FPGA structure if the fpga pointer argument
was not NULL. The application uses this structure to interact with the DMA, the SSI ports and other elements of functionality. Figure 17
highlights the areas of the file structure that customers will focus on during their platform development phase. The edits required for
custom platform development involve replacing functions such as linux_uio_initialize(…) with custom code that performs the same tasks
relative to the platform device in these highlighted folders.
The adi_platform.c file is where the Hardware Abstraction Layer (HAL) is chosen. In the case of the default HAL provided by Analog
Devices, it is also implemented in the adi_platform.c file, however no edits should be made to the default HAL stored under linux_uio\.
Customers have been given placeholder files in the customer\ folder. Here all necessary functions have been declared and left empty for
customers to fill with their platform-specific code.