vlx lib

platform.cpp

Committer:
vijaynvr
Date:
2015-02-08
Revision:
0:bc9f26b5dadf

File content as of revision 0:bc9f26b5dadf:

/*******************************************************************************
################################################################################
#                             (C) STMicroelectronics 2014
#
# 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
################################################################################
********************************************************************************/

#include "definitions.h"
#include "platform.h"
#include "debug.h"
#include "i2c_log.h"
#ifndef __KERNEL__
#include "i2c_stm32_mbed.h"
#include "timer_stm32_mbed.h"
#else
#include <linux/i2c.h>
#define I2C_M_WR			0x00
#endif
static char time_str[255];

void debug1_print(char* pBuffer)
{
    //output to UART
    serial_printf(pBuffer);
}

void debug2_print(char* pBuffer)
{
    //output to UART
    serial_printf(pBuffer);
}

void i2c_initialise(uint32_t addr)
{
    stm32_i2c_initialise(addr);
}

void i2c_close()
{
    stm32_i2c_close();
}

void i2c_write_byte(uint32_t reg, uint8_t data, uint8_t baseAddr)
{
    stm32_i2c_write_byte(reg, data, baseAddr);
    i2c_log_outputWriteByteMsg(data, reg);
}


void i2c_write_word(uint32_t reg, uint16_t data, uint8_t baseAddr)
{
    stm32_i2c_write_word(reg, data, baseAddr);
    i2c_log_outputWriteWordMsg(data, reg);
}

void i2c_write(uint32_t reg, uint8_t *data, int32_t size, uint8_t baseAddr)
{
    stm32_i2c_write(reg, data, size, baseAddr);
    i2c_log_outputWriteMsg(data, reg, size);
}

uint8_t i2c_read_byte(uint32_t reg, uint8_t baseAddr)
{
    uint8_t data = stm32_i2c_read_byte(reg, baseAddr);
    i2c_log_outputReadByteMsg(data, reg);
    return data;
}

uint16_t i2c_read_word(uint32_t reg, uint8_t baseAddr)
{
    uint16_t data = stm32_i2c_read_word(reg, baseAddr);
    i2c_log_outputReadWordMsg(data, reg);
    return data;
}

uint32_t i2c_read_uint32(uint32_t reg, uint8_t baseAddr)
{
    uint32_t data = stm32_i2c_read_int(reg, baseAddr);
    i2c_log_outputReadIntMsg(data, reg);
    return data;
}

void i2c_read(uint32_t reg, uint8_t *dataOut, int32_t size, uint8_t baseAddr)
{
    stm32_i2c_read(reg, dataOut, size, baseAddr);
    i2c_log_outputReadMsg(dataOut, reg, size);
}

void timer_start()
{
    stm32_timer_start();
}

double_t timer_elapsedTime()
{
    return stm32_timer_elapsed_time();
}

void timer_stop()
{
    stm32_timer_stop();
}

void timer_wait_ms(int32_t ms)
{
    stm32_timer_wait_ms((int)ms);
}

void timer_wait_us(int32_t us)
{
    stm32_timer_wait_us((int)us);
}

uint32_t timer_get_clock_time_usecs()
{
    return stm32_timer_get_clock_time_usecs();
}

uint32_t timer_get_clock_time_msecs()
{
    return stm32_timer_get_clock_time_msecs();
}

char* timer_get_clock_timestamp()
{
    stm32_timer_get_clock_timestamp(time_str);
    return time_str;
}