vlx lib
Diff: platform.h
- Revision:
- 0:bc9f26b5dadf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/platform.h Sun Feb 08 14:26:51 2015 +0000 @@ -0,0 +1,210 @@ +/******************************************************************************* +################################################################################ +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License version 2 and only version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +#------------------------------------------------------------------------------ +# Imaging Division +################################################################################ +********************************************************************************/ + +/** + * @file platform.h + * + * @brief All platform specific declarations to be used by the High Level API are defined here. + * The developer is responsible for providing the implementation of the prototypes declared. + * + */ + +#ifndef _PLATFORM +#define _PLATFORM +#ifndef __KERNEL__ +#include <stdbool.h> +#include <stdint.h> +#endif +/** @brief Typedef defining .\n + * The developer should modify this to suit the platform being deployed. + */ +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +/** @brief Typedef defining 8 bit unsigned char type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef unsigned char bool_t; + +#ifndef _STDINT_H + +/** @brief Typedef defining 64 bit unsigned long type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef unsigned long long uint64_t; + +/** @brief Typedef defining 64 bit long type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef long long long64_t; + +/** @brief Typedef defining 32 bit unsigned int type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef unsigned int uint32_t; + +/** @brief Typedef defining 32 bit int type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef int int32_t; + +/** @brief Typedef defining 16 bit unsigned short type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef unsigned short uint16_t; + +/** @brief Typedef defining 16 bit short type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef short int16_t; + +/** @brief Typedef defining 8 bit unsigned char type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef unsigned char uint8_t; + +/** @brief Typedef defining 8 bit char type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef signed char int8_t; + +#endif //_STDINT_H + +/** @brief Typedef defining 64 bit double type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef double double_t; + +/** @brief Typedef defining 32 bit float type.\n + * The developer should modify this to suit the platform being deployed. + */ +typedef float float_t; + +#ifndef NULL +#define NULL 0 +#endif + +/** + * @brief Method to print a given string to the program output. + */ +void debug1_print(char *pBuffer); + +/** + * @brief Method to print a given string to the program output. + */ +void debug2_print(char *pBuffer); + +/** + * Method to initialise a given I2C device for a given I2C + * address. + */ +void i2c_initialise(uint32_t addr); + +/** + * Method to close device if opened. + */ +void i2c_close(); + +/** + * Method to write a single byte to a given I2C reg index. + * Throws WriteFail upon failure. + */ +void i2c_write_byte(uint32_t reg, uint8_t data, uint8_t baseAddr); + +/** + * Method to write a single word to a given I2C reg index. + * Throws WriteFail upon failure. + */ +void i2c_write_word(uint32_t reg, uint16_t data, uint8_t baseAddr); + +/** + * Method to write an array of bytes to a given I2C reg index. + * Throws WriteFail upon failure. + */ +void i2c_write(uint32_t reg, uint8_t *data, int32_t size, uint8_t baseAddr); + +/** + * Method to read a single byte from a given I2C reg index. + * Throws ReadFail upon error. + */ +uint8_t i2c_read_byte(uint32_t reg, uint8_t baseAddr); + +/** + * Method to read a two byte word from a given I2C reg index. + * Throws ReadFail upon error. + */ +uint16_t i2c_read_word(uint32_t reg, uint8_t baseAddr); + +/** + * Method to read an int32 from a given I2C reg index. + * Throws ReadFail upon error. + */ +uint32_t i2c_read_uint32(uint32_t reg, uint8_t baseAddr); + +/** + * Method to read multiple bytes from a given I2C reg index. + * Throws ReadFail upon error. + */ +void i2c_read(uint32_t reg, uint8_t* data, int32_t size, uint8_t baseAddr); + +/** + * Method to start the timer. + */ +void timer_start(); + +/** + * Method reporting the number of seconds elapsed since the timer was started. + */ +double_t timer_elapsedTime(); + +/** + * Method to stop the timer. + */ +void timer_stop(); + +/** + * Method to wait a given number of ms. + */ +void timer_wait_ms(int32_t ms); + +/** + * Method to wait a given number of us + */ +void timer_wait_us(int32_t us); + +/** + * Method to report the current clock time in us. + */ +uint32_t timer_get_clock_time_usecs(); + +/** + * Method to report the current clock time in ms. + */ +uint32_t timer_get_clock_time_msecs(); + +#endif /* _PLATFORM */ + +