libparanut
A Hardware Abstraction Layer for ParaNut Architectures.
Macros
libparanut Compile Time Parameters

Group contains defines that inform the application writer how the libparanut was compiled. More...

Macros

#define PN_CACHE_LINESIZE
 Size of a cache line in bit. More...
 
#define PN_RWIDTH   32
 Register width in bit. More...
 
#define PN_COMPILE_RAW
 All security checks in libparanut are dropped if this is set to 1. More...
 
#define PN_WITH_BASE
 libparanut was compiled with Base Module. Also check Modules of the libparanut for more information.
 
#define PN_WITH_CACHE
 libparanut was compiled with Cache Module. Also check Modules of the libparanut for more information.
 
#define PN_WITH_LINK
 libparanut was compiled with Link Module. Also check Modules of the libparanut for more information.
 
#define PN_WITH_THREAD
 libparanut was compiled with Thread Module. Also check Modules of the libparanut for more information.
 
#define PN_WITH_EXCEPTION
 libparanut was compiled with Exception Module. Also check Modules of the libparanut for more information.
 
#define PN_WITH_SPINLOCK
 libparanut was compiled with Spinlock Module. Also check Modules of the libparanut for more information.
 

Detailed Description

Group contains defines that inform the application writer how the libparanut was compiled.

The libparanut is a very flexible piece of software. Some modules may have been compiled in, others may not. The cache line size could have a fixed value to improve speed, or it could be set on auto which is more compatible. Find out by including pn_config.h in your application and checking the defines listed in here!

Macro Definition Documentation

◆ PN_CACHE_LINESIZE

#define PN_CACHE_LINESIZE

Size of a cache line in bit.

This decides which assembly file was included during compilation of the Cache Module. If "auto" was chosen, the file that contains functions for all possible cache line sizes is included. This means great binary compatibility, but terribly big code size. When your application is deployed, you should definitely compile and link a version of libparanut with this parameter set to the cache line size you want to use eventually.

Also check documentation of pn_cache_RV32I_buildscript.py.

◆ PN_COMPILE_RAW

#define PN_COMPILE_RAW

All security checks in libparanut are dropped if this is set to 1.

Since functions in this library may be timing critical, you can compile the libparanut with this parameter and disable all the security checks.

While you are developing, it is recommended you don't do this, as the security checks will tell you when you are giving input that does not make sense. You can enable it when you properly tested your system to get optimal performance. Or don't. I mean, it's not like I'm the code police.

◆ PN_RWIDTH

#define PN_RWIDTH   32

Register width in bit.

Was set to 32 bit in this documentation to enable Doxygen to properly write down the typedefs in the Typedefs section of paranut.h. This should not be of interest at the moment since there is only a 32 bit version of the ParaNut, but it may become relevant in the future.