GOAL model
GOAL is designed for the usage on
single-core or multi-core systems
systems with an operating system in single- or multithreaded design
embedded systems without an operating system
Figure: GOAL model shows the relationship between the GOAL components.
Figure: GOAL model
The colored arrows demonstrate different possibilities to apply GOAL components.
GOAL defines several types of components with a specific functionality:
GOAL core
The GOAL core modules provide basic middleware functionality as memory handling, timers, tasks, list etc. Those modules can be used from all GOAL components and from the application.
GOAL media adapter
Media adapter define an interface for drivers. Drivers in GOAL create a media adapter during registration. Upper layers use drivers through this unified interface, thus drivers and platforms are replaceable. Media adapters do not implement any additional logic, only provide a generic interface.
GOAL media interface
Media interfaces implement functionality based on media adapters or other media interfaces. This functionality may be a filesystem, an RPC implementation or even a communication stack. Media interfaces can be used by applications or other GOAL components.
GOAL extension modules
GOAL extension modules are additional software components, that implement application functions based on goal. These are for example:
Communication stacks (TCP/IP, PROFINET, EtherNet/IP, EtherCAT, …)
GOAL firewall
GOAL log emitter
GOAL Device Detection
GOAL Web Server
GOAL architectures
These modules implent the architecture adaption layer between GOAL and the actual targets. There the platform specific parts of GOAL core module functionality are implemented.
GOAL boards
A board represents an actual hardware implementation of a CPU with additional peripherals and connectors, e.g. a development board. The code within this board file initializes peripherals and registers used drivers.
GOAL drivers
Drivers implement hardware access and provide the functionality through a media adapter to other layers of the stack.