iLLD_TC27xD  1.0
Files and Configuration

Folder structure

Starting from src/ifx/$(VERIF_DUT):

  • _Reg contains the header files
  • _Impl contains derivative specific configuration which could also be adapted by the user
  • _PinMap contains I/O configurations in pin tables
  • _Lib contains derivative dependent library functions
  • <module> contains the actual peripheral driver

In addition derivative independent service software sources are located under:

  • src/ifx/SrvSw

Include Paths

Following include paths should be specified in the compile script (resp. Makefile) to compile the drivers:

-I$(VERIF_LLD)/src/ifx/$(VERIF_DUT)
-I$(VERIF_LLD)/src/ifx/$(VERIF_DUT)/_Reg
-I$(VERIF_LLD)/src/ifx/SrvSw
  • VERIF_LLD stands for the directory to the iLLD version
  • VERIF_DUT stands for the derivative which should be selected

IfxCfg.h

Please create a configuration file with the name "IfxCfg.h" in your application to configure the iLLD library components.

Currently it only requires to select the external oscillator frequency (XTAL) and the desired system frequency.

In addition, this file allows you to specify how assertions should be print out.

Minimal IfxCfg.h file:

#ifndef IFX_CFG_H
#define IFX_CFG_H
// XTAL/PLL frequency
#define IFX_CFG_SCU_XTAL_FREQUENCY (20000000)
#define IFX_CFG_SCU_PLL_FREQUENCY (200000000)
// Assertions
#define IFX_ASSERT(level, expr)
#endif /* IFX_CFG_H */

Example for Assertion output via printf:

#ifdef __cplusplus
extern "C" {
#endif
// defined in $VERIF_SRC/lib/main.c
extern const char* verboseLevelStr[6];
#define IFX_ASSERT(level, expr) (((expr) || (level > IFX_VERBOSE_LEVEL_ERROR)) ? ((void)0) : (void)printf("[ASSERT:%s] '%s' in %s:%d (function '%s')\n", verboseLevelStr[level], #expr, __FILE__, __LINE__, __func__))
#endif

And in your main.c file (or somewhere else):

//! this global array is used by IFX_ASSERT of iLLDs
const char* verboseLevelStr[6] = {
"OFF",
"FAILURE",
"ERROR",
"WARNING",
"INFO",
"DEBUG"
};

Minimal Set of Driver sources

If you prefer to use (resp. compile) only a minimal set of drivers for your application, please add at least following "infrastructural resources":

  • src/ifx/$(VERIF_DUT)/_Reg directory
  • src/ifx/$(VERIF_DUT)/_Lib directory
  • src/ifx/SrvSw directory
  • CPU driver: src/ifx/$(VERIF_DUT)/Cpu and src/ifx/$(VERIF_DUT)/_Impl/IfxCpu_cfg.*
  • DMA driver: src/ifx/$(VERIF_DUT)/Dma and src/ifx/$(VERIF_DUT)/_Impl/IfxDma_cfg.*
  • Port driver: src/ifx/$(VERIF_DUT)/Port, src/ifx/$(VERIF_DUT)/_Impl/IfxPort_cfg.* and src/ifx/$(VERIF_DUT)/_PinMap/IfxPort_PinMap.*
  • SCU driver: src/ifx/$(VERIF_DUT)/Scu and src/ifx/$(VERIF_DUT)/_Impl/IfxScu_cfg.*
  • Src driver: src/ifx/$(VERIF_DUT)/Src and src/ifx/$(VERIF_DUT)/_Impl/IfxSrc_cfg.*
  • Stm driver: src/ifx/$(VERIF_DUT)/Stm and src/ifx/$(VERIF_DUT)/_Impl/IfxStm_cfg.*

Whenever additional drivers should be added, you typically have to copy following files/directories:

  • src/ifx/$(VERIF_DUT)/<driver>
  • src/ifx/$(VERIF_DUT)/_Impl/<driver>_cfg.*
  • src/ifx/$(VERIF_DUT)/_PinMap/<driver>_cfg.*

Special Notes to the AGENtiX Setup

  • include paths are already defined in $VERIF_SRC/include/$VERIF_DUT/build/build_defaults.inc and don't need to be defined again in testcase specific project.cfg file
  • the default IfxCfg.h file is located under $VERIF_SRC/lld/include and doesn't need to be added to the testcase
  • whenever a driver package should be included into a testcase, add 'MK_LLD $(VERIF_LLD)/src/ifx/$(VERIF_DUT)/_Build/<driver>.xml' to the BUILD section of the project.cfg file. There is no need (and it isn't recommended) to specify individual source files of a driver, since names or required files might change over time.
  • for Aurix HE and LE derivatives, please add 'DEFINE USE_ILLD_LIBRARY 1' to the header of your project.cfg file to select the iLLD library. This isn't required for the Aurix Plus anymore, since iLLDs are an integral part of the development platform.
  • example testcases and templates are located under $VERIF_SRC/lld/testcases/<module>

[Previous page] [Next page]