ConOpSys V2970  P004.07
ANVILEX control operating system
Public Member Functions | Private Attributes | List of all members
AVM2020 Class Reference

Anvilex vertual machine class. More...

#include <AVM2020.h>

Collaboration diagram for AVM2020:
Collaboration graph

Public Member Functions

 AVM2020 ()
 Class constructor method. More...
 
 ~AVM2020 ()
 Application destructor method. More...
 
VOID Init ()
 Application initialisation method. More...
 
VOID Execute ()
 Vertual machine cyclic execution method. More...
 
VOID Assign_Inputs (TConOpSys_Variant_Data *struct_Input_Memory, U32 u32_Size)
 Vertual machine cyclic assign input method. More...
 
VOID Assign_Outputs (TConOpSys_Variant_Data *struct_Output_Memory, U32 u32_Size)
 Vertual machine cyclic assign output method. More...
 
VOID Assign_Data_Memory (TConOpSys_Variant_Data *struct_Data_Memory, U32 u32_Size)
 Vertual machine cyclic assign data memory method. More...
 
VOID Assign_Program_Memory (TConOpSys_Variant_Data *struct_Program_Memory, U32 u32_Size)
 Vertual machine cyclic assign program memory method. More...
 
VOID Assign_Parameter (TConOpSys_Variant_Data *struct_Parameter_Memory, U32 u32_Size)
 Vertual machine cyclic assign parameters method. More...
 
VOID Load_Operand_1 ()
 
VOID Load_Operand_2 ()
 
VOID Store_Result ()
 
VOID Execute_MUL_F32 ()
 
VOID Execute_DIV_F32 ()
 
VOID Execute_ADD_F32 ()
 
VOID Execute_SUB_F32 ()
 
VOID Execute_JL_F32 ()
 
VOID Execute_JG_F32 ()
 
VOID Execute_JLE_F32 ()
 
VOID Execute_JGE_F32 ()
 
VOID Execute_EQUL_F32 ()
 
VOID Execute_NOT_EQUL_F32 ()
 
VOID Execute_COPY_F32 ()
 
VOID Execute_GO_TO ()
 
VOID Execute_IF_GO_TO ()
 
VOID Execute_HALT ()
 
VOID Execute_CALL ()
 
VOID Execute_RET ()
 
VOID Done ()
 Application finalisation method. More...
 

Private Attributes

U32 u32_Program_Counter
 Program counter. More...
 
U32 u32_Program_Counter_Offset
 Programm counter immediate data offset. More...
 
U32 u32_Stack_Pointer
 Stack pointer. More...
 
TConOpSys_Variant_Datastruct_Operand_1_Value = (TConOpSys_Variant_Data*)NULL
 Operand 1 value. More...
 
TConOpSys_Variant_Datastruct_Operand_2_Value = (TConOpSys_Variant_Data*)NULL
 Operand 2 value. More...
 
TConOpSys_Variant_Datastruct_Result_Value = (TConOpSys_Variant_Data*)NULL
 Result value. More...
 
TConOpSys_Variant_Data struct_Stack [MAX_STACK_INDEX]
 Stack. More...
 
TConOpSys_Variant_DataInput = (TConOpSys_Variant_Data*)NULL
 Pointer to the input memory. More...
 
TConOpSys_Variant_DataOutput = (TConOpSys_Variant_Data*)NULL
 Pointer to the output memory. More...
 
TConOpSys_Variant_DataData_Memory = (TConOpSys_Variant_Data*)NULL
 Pointer to the data memory. More...
 
TConOpSys_Variant_DataProgram_Memory = (TConOpSys_Variant_Data*)NULL
 Pointer to the program code memory. More...
 
TConOpSys_Variant_DataParameter = (TConOpSys_Variant_Data*)NULL
 Pointer to the parameter data memory. More...
 
U32 u32_Input_Memory_Size
 Input memory size. More...
 
U32 u32_Output_Memory_Size
 Output memory size. More...
 
U32 u32_Data_Memory_Size
 Data memory size. More...
 
U32 u32_Program_Memory_Size
 Program code memory size. More...
 
U32 u32_Parameter_Memory_Size
 Parameter data memory size. More...
 

Detailed Description

Anvilex vertual machine class.

None

Constructor & Destructor Documentation

◆ AVM2020()

AVM2020::AVM2020 ( )

Class constructor method.


Note
The method create application object.
Returns
None
Override
Not allowed
Attention
Don't call this method directly.

References Data_Memory, Input, NULL, Output, Parameter, Program_Memory, u32_Program_Counter, u32_Program_Counter_Offset, and u32_Stack_Pointer.

◆ ~AVM2020()

AVM2020::~AVM2020 ( )

Application destructor method.


Note
The method destroys application object.
Returns
None
Override
Not allowed
Attention
Don't call this method directly.

Member Function Documentation

◆ Assign_Data_Memory()

VOID AVM2020::Assign_Data_Memory ( TConOpSys_Variant_Data struct_Data_Memory,
U32  u32_Size 
)

Vertual machine cyclic assign data memory method.


Note
None
Parameters
[in]*struct_Data_Memory- Pointer to data memory array
[in]u32_Size- Size of data memory array
Override
Not allowed
Attention
Don't call this method directly.

References Data_Memory, and u32_Data_Memory_Size.

◆ Assign_Inputs()

VOID AVM2020::Assign_Inputs ( TConOpSys_Variant_Data struct_Input_Memory,
U32  u32_Size 
)

Vertual machine cyclic assign input method.


Note
None
Parameters
[in]*struct_Input_Memory- Pointer to input memory array
[in]u32_Size- Size of input memory array
Override
Not allowed
Attention
Don't call this method directly.

References Input, and u32_Input_Memory_Size.

◆ Assign_Outputs()

VOID AVM2020::Assign_Outputs ( TConOpSys_Variant_Data struct_Output_Memory,
U32  u32_Size 
)

Vertual machine cyclic assign output method.


Note
None
Parameters
[in]*struct_Output_Memory- Pointer to output memory array
[in]u32_Size- Size of output memory array
Override
Not allowed
Attention
Don't call this method directly.

References Output, and u32_Output_Memory_Size.

◆ Assign_Parameter()

VOID AVM2020::Assign_Parameter ( TConOpSys_Variant_Data struct_Parameter_Memory,
U32  u32_Size 
)

Vertual machine cyclic assign parameters method.


Note
None
Parameters
[in]*struct_Input_Memory- Pointer to parameter memory array
[in]u32_Size- Size of parameter memory array
Override
Not allowed
Attention
Don't call this method directly.

References Parameter, and u32_Parameter_Memory_Size.

◆ Assign_Program_Memory()

VOID AVM2020::Assign_Program_Memory ( TConOpSys_Variant_Data struct_Program_Memory,
U32  u32_Size 
)

Vertual machine cyclic assign program memory method.


Note
None
Parameters
[in]*struct_Program_Memory- Pointer to program memory array
[in]u32_Size- Size of program memory array
Override
Not allowed
Attention
Don't call this method directly.

References Program_Memory, and u32_Program_Memory_Size.

◆ Done()

VOID AVM2020::Done ( )

Application finalisation method.


Note
The method prepare hardware and system objects for the system shutdown.
Returns
None
Override
Allowed
Attention
Don't call this method directly.

◆ Execute()

VOID AVM2020::Execute ( )

◆ Execute_ADD_F32()

VOID AVM2020::Execute_ADD_F32 ( )

References TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_CALL()

VOID AVM2020::Execute_CALL ( )

References Increment_Saturated(), Load_Operand_1(), struct_Operand_1_Value, struct_Stack, u32_Program_Counter, u32_Stack_Pointer, and TConOpSys_Variant_Data::u32_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_COPY_F32()

VOID AVM2020::Execute_COPY_F32 ( )

References TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Store_Result(), struct_Operand_1_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_DIV_F32()

VOID AVM2020::Execute_DIV_F32 ( )

References TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_EQUL_F32()

VOID AVM2020::Execute_EQUL_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_GO_TO()

VOID AVM2020::Execute_GO_TO ( )

References Load_Operand_1(), struct_Operand_1_Value, u32_Program_Counter, and TConOpSys_Variant_Data::u32_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_HALT()

VOID AVM2020::Execute_HALT ( )

Referenced by Execute().

Here is the caller graph for this function:

◆ Execute_IF_GO_TO()

VOID AVM2020::Execute_IF_GO_TO ( )

References TConOpSys_Variant_Data::bool_Value, Load_Operand_1(), Load_Operand_2(), struct_Operand_1_Value, struct_Operand_2_Value, u32_Program_Counter, and TConOpSys_Variant_Data::u32_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_JG_F32()

VOID AVM2020::Execute_JG_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_JGE_F32()

VOID AVM2020::Execute_JGE_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_JL_F32()

VOID AVM2020::Execute_JL_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_JLE_F32()

VOID AVM2020::Execute_JLE_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_MUL_F32()

VOID AVM2020::Execute_MUL_F32 ( )

References TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_NOT_EQUL_F32()

VOID AVM2020::Execute_NOT_EQUL_F32 ( )

References TConOpSys_Variant_Data::bool_Value, TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_RET()

VOID AVM2020::Execute_RET ( )

References Decrement_Saturated(), struct_Stack, u32_Program_Counter, u32_Stack_Pointer, and TConOpSys_Variant_Data::u32_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Execute_SUB_F32()

VOID AVM2020::Execute_SUB_F32 ( )

References TConOpSys_Variant_Data::f32_Value, Load_Operand_1(), Load_Operand_2(), Store_Result(), struct_Operand_1_Value, struct_Operand_2_Value, and struct_Result_Value.

Referenced by Execute().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Init()

VOID AVM2020::Init ( )

Application initialisation method.


Note
The method initialise hardware and system objects.
Returns
None
Override
Allowed
Attention
Don't call this method directly.

References u32_Program_Counter, u32_Program_Counter_Offset, and u32_Stack_Pointer.

◆ Load_Operand_1()

VOID AVM2020::Load_Operand_1 ( )

◆ Load_Operand_2()

VOID AVM2020::Load_Operand_2 ( )

◆ Store_Result()

VOID AVM2020::Store_Result ( )

Member Data Documentation

◆ Data_Memory

TConOpSys_Variant_Data* AVM2020::Data_Memory = (TConOpSys_Variant_Data*)NULL
private

Pointer to the data memory.

Referenced by Assign_Data_Memory(), AVM2020(), Load_Operand_1(), Load_Operand_2(), and Store_Result().

◆ Input

TConOpSys_Variant_Data* AVM2020::Input = (TConOpSys_Variant_Data*)NULL
private

Pointer to the input memory.

Referenced by Assign_Inputs(), AVM2020(), Load_Operand_1(), and Load_Operand_2().

◆ Output

TConOpSys_Variant_Data* AVM2020::Output = (TConOpSys_Variant_Data*)NULL
private

Pointer to the output memory.

Referenced by Assign_Outputs(), AVM2020(), and Store_Result().

◆ Parameter

TConOpSys_Variant_Data* AVM2020::Parameter = (TConOpSys_Variant_Data*)NULL
private

Pointer to the parameter data memory.

Referenced by Assign_Parameter(), AVM2020(), Load_Operand_1(), Load_Operand_2(), and Store_Result().

◆ Program_Memory

TConOpSys_Variant_Data* AVM2020::Program_Memory = (TConOpSys_Variant_Data*)NULL
private

Pointer to the program code memory.

Referenced by Assign_Program_Memory(), AVM2020(), Execute(), Load_Operand_1(), Load_Operand_2(), and Store_Result().

◆ struct_Operand_1_Value

TConOpSys_Variant_Data* AVM2020::struct_Operand_1_Value = (TConOpSys_Variant_Data*)NULL
private

◆ struct_Operand_2_Value

TConOpSys_Variant_Data* AVM2020::struct_Operand_2_Value = (TConOpSys_Variant_Data*)NULL
private

◆ struct_Result_Value

TConOpSys_Variant_Data* AVM2020::struct_Result_Value = (TConOpSys_Variant_Data*)NULL
private

◆ struct_Stack

TConOpSys_Variant_Data AVM2020::struct_Stack[MAX_STACK_INDEX]
private

Stack.

Referenced by Execute_CALL(), and Execute_RET().

◆ u32_Data_Memory_Size

U32 AVM2020::u32_Data_Memory_Size
private

Data memory size.

Referenced by Assign_Data_Memory().

◆ u32_Input_Memory_Size

U32 AVM2020::u32_Input_Memory_Size
private

Input memory size.

Referenced by Assign_Inputs().

◆ u32_Output_Memory_Size

U32 AVM2020::u32_Output_Memory_Size
private

Output memory size.

Referenced by Assign_Outputs().

◆ u32_Parameter_Memory_Size

U32 AVM2020::u32_Parameter_Memory_Size
private

Parameter data memory size.

Referenced by Assign_Parameter().

◆ u32_Program_Counter

U32 AVM2020::u32_Program_Counter
private

◆ u32_Program_Counter_Offset

U32 AVM2020::u32_Program_Counter_Offset
private

Programm counter immediate data offset.

Referenced by AVM2020(), Execute(), Init(), Load_Operand_1(), and Load_Operand_2().

◆ u32_Program_Memory_Size

U32 AVM2020::u32_Program_Memory_Size
private

Program code memory size.

Referenced by Assign_Program_Memory().

◆ u32_Stack_Pointer

U32 AVM2020::u32_Stack_Pointer
private

Stack pointer.

Referenced by AVM2020(), Execute_CALL(), Execute_RET(), and Init().


The documentation for this class was generated from the following files: