commit | 23605a30f6ffd133c6392e7c9311006a0e0253ec | [log] [tgz] |
---|---|---|
author | Lars-Peter Clausen <lars@metafoo.de> | Wed Nov 15 12:23:54 2017 |
committer | Gwendal Grignou <gwendal@chromium.org> | Wed May 01 19:52:15 2019 |
tree | ff08f2eae163f94b9977bb0122055fdcd79787ed | |
parent | 55526438ad1084c477846d3499048c5916771afa [diff] |
local: Track requested and allocated number of blocks independently The set_kernel_buffers_count() API allows to request the number of blocks that are going to be allocated for the buffer. There are two cases when this number is overwritten: * In the cyclic buffer case where only 1 is allocated * When not enough system memory is available the number of blocks is reduced to the number of blocks that the system was able to allocate Both cases overwrite the through set_kernel_buffers_count() set value (or the default) for the number of blocks to allocate. This means that for example allocating a non-cyclic buffer on a device for which previously a cyclic buffer had been allocated the number of blocks is 1 without an additional explicit call to set_kernel_buffers_count(). Similar behavior will occur for the case where not all blocks could be allocated. This is unexpected and non-intentional behavior. To avoid this track the maximum number of blocks configured through set_kernel_buffers_count() independently of the number of blocks allocated. This makes sure that when a new buffer is allocated it still uses the correct number of blocks regardless of what happened for the previous buffer. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Library for interfacing with Linux IIO devices
libiio is used to interface to the Linux Industrial Input/Output (IIO) Subsystem. The Linux IIO subsystem is intended to provide support for devices that in some sense are analog to digital or digital to analog converters (ADCs, DACs). This includes, but is not limited to ADCs, Accelerometers, Gyros, IMUs, Capacitance to Digital Converters (CDCs), Pressure Sensors, Color, Light and Proximity Sensors, Temperature Sensors, Magnetometers, DACs, DDS (Direct Digital Synthesis), PLLs (Phase Locked Loops), Variable/Programmable Gain Amplifiers (VGA, PGA), and RF transceivers. You can use libiio natively on an embedded Linux target (local mode), or use libiio to communicate remotely to that same target from a host Linux, Windows or MAC over USB or Ethernet or Serial.
Although libiio was primarily developed by Analog Devices Inc., it is an active open source library, which many people have contributed to. It released under the GNU Lesser General Public License, version 2.1 or later, this open-source license allows anyone to use the library, on any vendors processor/FPGA/SoC, which may be controlling any vendors peripheral device (ADC, DAC, etc) either locally or remotely. This includes closed or open-source, commercial or non-commercial applications (subject to the LGPL license freedoms, obligations and restrictions).
License : Latest Release : Downloads :
As with many open source packages, we use GitHub to do develop and maintain the source, and Travis CI and Appveyor for continuous integration.
If you use it, and like it - please let us know. If you use it, and hate it - please let us know that too. The goal of the project is to try to make Linux IIO devices easier to use on a variety of platforms. If we aren't doing that - we will try to make it better.
Feedback is appreciated (in order of preference):
Weblinks: