AsDevices

From ArmadeusWiki
Revision as of 09:37, 14 December 2009 by FabienM (Talk | contribs) (Development planning)

Jump to: navigation, search

Page under construction... Construction.png 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".

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.