Jump to content
  • 0




first i must say, that i'am not glad about the way to handle device issues. It seems to be very complicated when using linux. If i use a bare metal System, then i have a very simple and Logical System which is easy to use.

What i want is an easy way, similar to a bare metal System, where i can use the customized Hardware in a zync (FPGA) Environment.

While i'am discovered my Project Folder i found a Subfolder where example c-source code was stored. In this example is a peek and poke app included. When i look at the Details i found, that the "mem" device was used and similar to "uio" interfacing - Memory mapped Access was used.

Now my questions:

- What is the difference between "mem" and "uio" devices?

- Are "mem" devices still installed and ready to use?

- Is there a disadvantage, if i use "mem" devices?


Thank you...

Link to comment
Share on other sites

1 answer to this question

Recommended Posts


It is true that you can use /dev/mem and uio drivers to accomplish the same functionality.



It is almost always a better idea to use uio as a opposed to /dev/mem

Here is why:

  • using /dev/mem directly opens your system up to security risks. You could be potentially accessing memory that can be harmful to your system. Additionally, other people may be able to exploit this to access memory that they would otherwise not be able to access.
  • UIO provides kernel interrupt functionality. That is: UIO drivers can register interrupts with the kernel and the kernel can recognize when an interrupt has occurred and carry out the assigned task. Currently, the only way you would do this using /dev/mem is through polling of an interrupt register. Polling usually is not always the best approach, especially when you are trying to catch interrupts from FPGA hardware.



Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...