Naming rules
The prefix "goal_" is used by the GOAL system for:
- global variables
- GOAL function names
The prefix "GOAL_CONFIG_" is used by the GOAL system for:
- compiler-defines to configure the GOAL system by the user
The prefix "GOAL_TARGET_" is used by the GOAL system for:
- compiler-defines to configure hardware-dependent settings
The prefix "GOAL_" is used by the GOAL system for:
- compiler-defines for configuration
- compiler-defines for GOAL status values
- compiler-defines for specific constant values
- GOAL data types
- macros used by the GOAL system
GOAL data types
The GOAL system uses different classes of data types:
- GOAL basic data types: used in the source code
- CM-variable data types: used for CM-variables
- LM-parameter data types: used for parameters in a log message
GOAL basic data type |
CM-variable data type |
LM-parameter data type |
Description |
|||
---|---|---|---|---|---|---|
int8_t |
GOAL_CM_VAR_INT8 |
INT8 |
signed integer, 8 bit |
|||
int16_t |
GOAL_CM_VAR_INT16 |
INT16 |
signed integer, 16 bit |
|||
int32_t |
GOAL_CM_VAR_INT32 |
INT32 |
signed integer, 32 bit |
|||
int64_t |
– |
– |
signed integer, 64 bit |
|||
uint8_t |
GOAL_CM_VAR_UINT8 |
UINT8 |
unsigned integer, 8 bit |
|||
uint16_t |
GOAL_CM_VAR_UINT16 |
UINT16 |
unsigned integer, 16 bit |
|||
uint32_t |
GOAL_CM_VAR_UINT32 |
UINT32 |
unsigned integer, 32 bit |
|||
uint64_t |
– |
– |
unsigned integer, 64 bit |
|||
GOAL_BOOL_T |
– |
– |
boolean: 0 = GOAL_FALSE, 1 = GOAL_TRUE |
|||
PtrCast |
– |
– |
pointer casting helper |
|||
– |
STRING |
– |
char array, not zero terminated |
|||
– |
– |
STRING0 |
char array, zero terminated |
|||
– |
IPV4 |
IPV4 |
IP-addresses vvv.xxx.yyy.zzz as uint32_t value: |
(xxx << 16) |
(yyy << 8) |
zzz) |
– |
– |
MAC |
MAC-address ss-tt-uu-xx-yy-zz as byte array value |
|||
– |
GENERIC |
GENERIC |
byte array |
Please do not rely on generic data types like char or int because the behavior and the width is compiler-specific and platform-specific and use the GOAL basic data types in the source code!
GOAL status
GOAL defines the data type GOAL_STATUS_T most used as function return value. The values of GOAL status are defined in …\goal\goal\goal_types.h. GOAL provides the following macros for the symbolic evaluation:
- GOAL_RES_OK():
0: The GOAL status reports an error.
1: The GOAL status reports success.
- GOAL_RES_ERR():
0: The GOAL status reports success.
1: The GOAL status reports an error.
Alignment
The alignment can be specified:
- for the processor about the compiler-define GOAL_TARGET_MEM_ALIGN_CPU or
- for network transfers about the compiler-define GOAL_TARGET_MEM_ALIGN_NET
Only the values 2, 4 and 8 are supported.
Heap memory size
The size of the heap memory must be specified about the compiler-define GOAL_CONFIG_HEAP_SIZE.
The heap memory size is determined by the GOAL system according to the following order:
- The heap memory size can be specified application-specific. The compiler-define GOAL_CONFIG_HEAP_SIZE must be set in …\goal\appl\...\goal_config.h or in the compiler-project to guarantee that the definition is taken first.
- The heap memory size is specified platform-specific in …\goal\plat\arch\...\goal_target.h. This value is valid if there is no application-specific setting.
- The heap memory size is specified module-specific in …\goal\goal*.h if necessary. This value is valid if there is no application-specific and no platform-specific setting.