vlx lib
platform.cpp@0:bc9f26b5dadf, 2015-02-08 (annotated)
- Committer:
- vijaynvr
- Date:
- Sun Feb 08 14:26:51 2015 +0000
- Revision:
- 0:bc9f26b5dadf
working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vijaynvr | 0:bc9f26b5dadf | 1 | /******************************************************************************* |
vijaynvr | 0:bc9f26b5dadf | 2 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 3 | # (C) STMicroelectronics 2014 |
vijaynvr | 0:bc9f26b5dadf | 4 | # |
vijaynvr | 0:bc9f26b5dadf | 5 | # This program is free software; you can redistribute it and/or modify it under |
vijaynvr | 0:bc9f26b5dadf | 6 | # the terms of the GNU General Public License version 2 and only version 2 as |
vijaynvr | 0:bc9f26b5dadf | 7 | # published by the Free Software Foundation. |
vijaynvr | 0:bc9f26b5dadf | 8 | # |
vijaynvr | 0:bc9f26b5dadf | 9 | # This program is distributed in the hope that it will be useful, but WITHOUT |
vijaynvr | 0:bc9f26b5dadf | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
vijaynvr | 0:bc9f26b5dadf | 11 | # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
vijaynvr | 0:bc9f26b5dadf | 12 | # details. |
vijaynvr | 0:bc9f26b5dadf | 13 | # |
vijaynvr | 0:bc9f26b5dadf | 14 | # You should have received a copy of the GNU General Public License along with |
vijaynvr | 0:bc9f26b5dadf | 15 | # this program; if not, write to the Free Software Foundation, Inc., |
vijaynvr | 0:bc9f26b5dadf | 16 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
vijaynvr | 0:bc9f26b5dadf | 17 | # |
vijaynvr | 0:bc9f26b5dadf | 18 | #------------------------------------------------------------------------------ |
vijaynvr | 0:bc9f26b5dadf | 19 | # Imaging Division |
vijaynvr | 0:bc9f26b5dadf | 20 | ################################################################################ |
vijaynvr | 0:bc9f26b5dadf | 21 | ********************************************************************************/ |
vijaynvr | 0:bc9f26b5dadf | 22 | |
vijaynvr | 0:bc9f26b5dadf | 23 | #include "definitions.h" |
vijaynvr | 0:bc9f26b5dadf | 24 | #include "platform.h" |
vijaynvr | 0:bc9f26b5dadf | 25 | #include "debug.h" |
vijaynvr | 0:bc9f26b5dadf | 26 | #include "i2c_log.h" |
vijaynvr | 0:bc9f26b5dadf | 27 | #ifndef __KERNEL__ |
vijaynvr | 0:bc9f26b5dadf | 28 | #include "i2c_stm32_mbed.h" |
vijaynvr | 0:bc9f26b5dadf | 29 | #include "timer_stm32_mbed.h" |
vijaynvr | 0:bc9f26b5dadf | 30 | #else |
vijaynvr | 0:bc9f26b5dadf | 31 | #include <linux/i2c.h> |
vijaynvr | 0:bc9f26b5dadf | 32 | #define I2C_M_WR 0x00 |
vijaynvr | 0:bc9f26b5dadf | 33 | #endif |
vijaynvr | 0:bc9f26b5dadf | 34 | static char time_str[255]; |
vijaynvr | 0:bc9f26b5dadf | 35 | |
vijaynvr | 0:bc9f26b5dadf | 36 | void debug1_print(char* pBuffer) |
vijaynvr | 0:bc9f26b5dadf | 37 | { |
vijaynvr | 0:bc9f26b5dadf | 38 | //output to UART |
vijaynvr | 0:bc9f26b5dadf | 39 | serial_printf(pBuffer); |
vijaynvr | 0:bc9f26b5dadf | 40 | } |
vijaynvr | 0:bc9f26b5dadf | 41 | |
vijaynvr | 0:bc9f26b5dadf | 42 | void debug2_print(char* pBuffer) |
vijaynvr | 0:bc9f26b5dadf | 43 | { |
vijaynvr | 0:bc9f26b5dadf | 44 | //output to UART |
vijaynvr | 0:bc9f26b5dadf | 45 | serial_printf(pBuffer); |
vijaynvr | 0:bc9f26b5dadf | 46 | } |
vijaynvr | 0:bc9f26b5dadf | 47 | |
vijaynvr | 0:bc9f26b5dadf | 48 | void i2c_initialise(uint32_t addr) |
vijaynvr | 0:bc9f26b5dadf | 49 | { |
vijaynvr | 0:bc9f26b5dadf | 50 | stm32_i2c_initialise(addr); |
vijaynvr | 0:bc9f26b5dadf | 51 | } |
vijaynvr | 0:bc9f26b5dadf | 52 | |
vijaynvr | 0:bc9f26b5dadf | 53 | void i2c_close() |
vijaynvr | 0:bc9f26b5dadf | 54 | { |
vijaynvr | 0:bc9f26b5dadf | 55 | stm32_i2c_close(); |
vijaynvr | 0:bc9f26b5dadf | 56 | } |
vijaynvr | 0:bc9f26b5dadf | 57 | |
vijaynvr | 0:bc9f26b5dadf | 58 | void i2c_write_byte(uint32_t reg, uint8_t data, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 59 | { |
vijaynvr | 0:bc9f26b5dadf | 60 | stm32_i2c_write_byte(reg, data, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 61 | i2c_log_outputWriteByteMsg(data, reg); |
vijaynvr | 0:bc9f26b5dadf | 62 | } |
vijaynvr | 0:bc9f26b5dadf | 63 | |
vijaynvr | 0:bc9f26b5dadf | 64 | |
vijaynvr | 0:bc9f26b5dadf | 65 | void i2c_write_word(uint32_t reg, uint16_t data, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 66 | { |
vijaynvr | 0:bc9f26b5dadf | 67 | stm32_i2c_write_word(reg, data, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 68 | i2c_log_outputWriteWordMsg(data, reg); |
vijaynvr | 0:bc9f26b5dadf | 69 | } |
vijaynvr | 0:bc9f26b5dadf | 70 | |
vijaynvr | 0:bc9f26b5dadf | 71 | void i2c_write(uint32_t reg, uint8_t *data, int32_t size, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 72 | { |
vijaynvr | 0:bc9f26b5dadf | 73 | stm32_i2c_write(reg, data, size, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 74 | i2c_log_outputWriteMsg(data, reg, size); |
vijaynvr | 0:bc9f26b5dadf | 75 | } |
vijaynvr | 0:bc9f26b5dadf | 76 | |
vijaynvr | 0:bc9f26b5dadf | 77 | uint8_t i2c_read_byte(uint32_t reg, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 78 | { |
vijaynvr | 0:bc9f26b5dadf | 79 | uint8_t data = stm32_i2c_read_byte(reg, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 80 | i2c_log_outputReadByteMsg(data, reg); |
vijaynvr | 0:bc9f26b5dadf | 81 | return data; |
vijaynvr | 0:bc9f26b5dadf | 82 | } |
vijaynvr | 0:bc9f26b5dadf | 83 | |
vijaynvr | 0:bc9f26b5dadf | 84 | uint16_t i2c_read_word(uint32_t reg, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 85 | { |
vijaynvr | 0:bc9f26b5dadf | 86 | uint16_t data = stm32_i2c_read_word(reg, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 87 | i2c_log_outputReadWordMsg(data, reg); |
vijaynvr | 0:bc9f26b5dadf | 88 | return data; |
vijaynvr | 0:bc9f26b5dadf | 89 | } |
vijaynvr | 0:bc9f26b5dadf | 90 | |
vijaynvr | 0:bc9f26b5dadf | 91 | uint32_t i2c_read_uint32(uint32_t reg, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 92 | { |
vijaynvr | 0:bc9f26b5dadf | 93 | uint32_t data = stm32_i2c_read_int(reg, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 94 | i2c_log_outputReadIntMsg(data, reg); |
vijaynvr | 0:bc9f26b5dadf | 95 | return data; |
vijaynvr | 0:bc9f26b5dadf | 96 | } |
vijaynvr | 0:bc9f26b5dadf | 97 | |
vijaynvr | 0:bc9f26b5dadf | 98 | void i2c_read(uint32_t reg, uint8_t *dataOut, int32_t size, uint8_t baseAddr) |
vijaynvr | 0:bc9f26b5dadf | 99 | { |
vijaynvr | 0:bc9f26b5dadf | 100 | stm32_i2c_read(reg, dataOut, size, baseAddr); |
vijaynvr | 0:bc9f26b5dadf | 101 | i2c_log_outputReadMsg(dataOut, reg, size); |
vijaynvr | 0:bc9f26b5dadf | 102 | } |
vijaynvr | 0:bc9f26b5dadf | 103 | |
vijaynvr | 0:bc9f26b5dadf | 104 | void timer_start() |
vijaynvr | 0:bc9f26b5dadf | 105 | { |
vijaynvr | 0:bc9f26b5dadf | 106 | stm32_timer_start(); |
vijaynvr | 0:bc9f26b5dadf | 107 | } |
vijaynvr | 0:bc9f26b5dadf | 108 | |
vijaynvr | 0:bc9f26b5dadf | 109 | double_t timer_elapsedTime() |
vijaynvr | 0:bc9f26b5dadf | 110 | { |
vijaynvr | 0:bc9f26b5dadf | 111 | return stm32_timer_elapsed_time(); |
vijaynvr | 0:bc9f26b5dadf | 112 | } |
vijaynvr | 0:bc9f26b5dadf | 113 | |
vijaynvr | 0:bc9f26b5dadf | 114 | void timer_stop() |
vijaynvr | 0:bc9f26b5dadf | 115 | { |
vijaynvr | 0:bc9f26b5dadf | 116 | stm32_timer_stop(); |
vijaynvr | 0:bc9f26b5dadf | 117 | } |
vijaynvr | 0:bc9f26b5dadf | 118 | |
vijaynvr | 0:bc9f26b5dadf | 119 | void timer_wait_ms(int32_t ms) |
vijaynvr | 0:bc9f26b5dadf | 120 | { |
vijaynvr | 0:bc9f26b5dadf | 121 | stm32_timer_wait_ms((int)ms); |
vijaynvr | 0:bc9f26b5dadf | 122 | } |
vijaynvr | 0:bc9f26b5dadf | 123 | |
vijaynvr | 0:bc9f26b5dadf | 124 | void timer_wait_us(int32_t us) |
vijaynvr | 0:bc9f26b5dadf | 125 | { |
vijaynvr | 0:bc9f26b5dadf | 126 | stm32_timer_wait_us((int)us); |
vijaynvr | 0:bc9f26b5dadf | 127 | } |
vijaynvr | 0:bc9f26b5dadf | 128 | |
vijaynvr | 0:bc9f26b5dadf | 129 | uint32_t timer_get_clock_time_usecs() |
vijaynvr | 0:bc9f26b5dadf | 130 | { |
vijaynvr | 0:bc9f26b5dadf | 131 | return stm32_timer_get_clock_time_usecs(); |
vijaynvr | 0:bc9f26b5dadf | 132 | } |
vijaynvr | 0:bc9f26b5dadf | 133 | |
vijaynvr | 0:bc9f26b5dadf | 134 | uint32_t timer_get_clock_time_msecs() |
vijaynvr | 0:bc9f26b5dadf | 135 | { |
vijaynvr | 0:bc9f26b5dadf | 136 | return stm32_timer_get_clock_time_msecs(); |
vijaynvr | 0:bc9f26b5dadf | 137 | } |
vijaynvr | 0:bc9f26b5dadf | 138 | |
vijaynvr | 0:bc9f26b5dadf | 139 | char* timer_get_clock_timestamp() |
vijaynvr | 0:bc9f26b5dadf | 140 | { |
vijaynvr | 0:bc9f26b5dadf | 141 | stm32_timer_get_clock_timestamp(time_str); |
vijaynvr | 0:bc9f26b5dadf | 142 | return time_str; |
vijaynvr | 0:bc9f26b5dadf | 143 | } |
vijaynvr | 0:bc9f26b5dadf | 144 |