AsDevices
Page under construction... Informations on this page are not guaranteed !!
AsDevices is an ARMadeus specific library that simplify APF-board devices usage for developers. This library is written to be used with C, C++, Python, LUA, (Java?) languages. The core is written in C and other languages support is done with "wrappers".
Contents
Install AsDevices on target
The library is included in Buildroot menu, to use it just select it in «make menuconfig» :
Package Selection for the target ---> *** Armadeus specific packages *** [*] as_devices [*] wrapper C++ [*] wrapper Python
The base library is in C, to use it with C++ or Python, select the wrapper you want.
Use library in an application
In C
To use AsDevices library in a C program, include the header of the device needed (all C headers are under ${ARMADEUS_PATH}/target/package/as_devices/c/ directory ). For example with apf27_pwm :
#include "as_apf27_pwm.h"
And compile with following command :
arm-linux-gcc prog.c ${ARMADEUS_PATH}/buildroot/build_arm5vt/as_devices-1.0/c/libas_devices.so -o prog -I${ARMADEUS_PATH}/buildroot/build_arm5vt/as_devices-1.0/c/
An example of code can be found in ${ARMADEUS_PATH}/target/package/as_devices/ directory, take a look of test_c.h and main.c.
In C++
To use AsDevices library in a C++ program, include the header of the class needed (all C++ headers are under ${ARMADEUS_PATH}/target/package/as_devices/cpp/ directory). For example with apf27 pwm :
#include "as_apf27_pwm.hpp"
And compile with following command :
${CXX} ${CFLAGS} prog.cpp ${C_LIB} ${CPP_LIB} -I${C_INCLUDE} -I${CPP_INCLUDE} -o prog
An example of code canbe found in ${ARMADEUS_PATH}/target/package/as_devices/ directory, take a look at test_cpp.h and main.c.
In Python
To use AsDevices library with python, select the Python wrapper in menuconfig then, on platform, import the module :
>>> import AsDevices
All python classes available in the module can be found with the dir() function :
>>> dir(AsDevices)
['Apf27Pwm', 'Apf27PwmError', 'NUMBER_OF_PWM', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__path__', '__versionTime__', '__version__', 'wrappers']
In LUA
TODO
Devices supported by library
PWM
Development planning
AsDevices is not finished, following table indicates the remaining work:
Name | C functions | C++ wrapper | Python wrapper | Python class | LUA wrapper | description |
---|---|---|---|---|---|---|
apf27_pwm | To be rewritten | To be rewritten | To be rewritten | To be rewritten | NOK | Drive imx27 pwm |
i2c | Compile | Written but doesn't compile | NOK | NOK | compile | Drive I2C |
spi | Compile and tested but API not fully wrote | NOK | NOK | NOK | NOK | Drive SPI |
apf27_gpio | Compile | Compile | NOK | NOK | NOK | Drive imx27 GPIO |
ad5258 | NOK | NOK | NOK | NOK | NOK | Drive Digital potentiometer AD5258 |
ds1374 | NOK | NOK | NOK | NOK | NOK | Drive RTC chip DS1374 |
max1027 | NOK | NOK | NOK | NOK | NOK | Drive Analog to Digital chip MAX1027 |
max5821 | NOK | NOK | NOK | NOK | NOK | Drive Digital to Analog chip MAX5821 |
93LCxx | Compile and tested | NOK | NOK | NOK | NOK | EEPROM memory on SPI |