You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After looking at the libmetal API I still have a basic question:
In my case libmetal only will be used in an RTOS and in a baremetal environment, to that regard any Linux related API is not important so far for me.
However, I am still struggling with difference of certain functions: metal_io_init, metal_decive_open,
metal_io_init is metioned to open a metal I/O region. Whereas metal_device_open opens a device which is formerly
declared in a struct (can be done in a header or at the beginning of my application), this struct has parameters which
are very similar and also used in metal_io_int. So it seems to me that metal_io_init is used in case of more dynamic I/O
access for sharing data whereas metal_device_open is more static and requires a device list which first is declared in a
struct.
To that regard a device can be anything mapped to memory region and also I/O can be everything mapped to memory
region.
For example I can reach the IPI in ZynqUltrascale+ also as a device or I can use the I/O API to get access to the IPI. In all
the examples currently on Github only device API is used to open a region. For accessing the data the I/O read and write API
is used then.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
After looking at the libmetal API I still have a basic question:
In my case libmetal only will be used in an RTOS and in a baremetal environment, to that regard any Linux related API is not important so far for me.
However, I am still struggling with difference of certain functions: metal_io_init, metal_decive_open,
metal_io_init is metioned to open a metal I/O region. Whereas metal_device_open opens a device which is formerly
declared in a struct (can be done in a header or at the beginning of my application), this struct has parameters which
are very similar and also used in metal_io_int. So it seems to me that metal_io_init is used in case of more dynamic I/O
access for sharing data whereas metal_device_open is more static and requires a device list which first is declared in a
struct.
To that regard a device can be anything mapped to memory region and also I/O can be everything mapped to memory
region.
For example I can reach the IPI in ZynqUltrascale+ also as a device or I can use the I/O API to get access to the IPI. In all
the examples currently on Github only device API is used to open a region. For accessing the data the I/O read and write API
is used then.
Is my assumption correct to some degree?
Beta Was this translation helpful? Give feedback.
All reactions