Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Committer:
dflet
Date:
Tue Sep 15 16:45:04 2015 +0000
Revision:
22:f9b5e0b80bf2
Parent:
0:50cedd586816
Removed some debug.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dflet 0:50cedd586816 1 /*
dflet 0:50cedd586816 2 * Platform abstraction layer
dflet 0:50cedd586816 3 *
dflet 0:50cedd586816 4 * Copyright (C) 2006-2014, ARM Limited, All Rights Reserved
dflet 0:50cedd586816 5 *
dflet 0:50cedd586816 6 * This file is part of mbed TLS (https://tls.mbed.org)
dflet 0:50cedd586816 7 *
dflet 0:50cedd586816 8 * This program is free software; you can redistribute it and/or modify
dflet 0:50cedd586816 9 * it under the terms of the GNU General Public License as published by
dflet 0:50cedd586816 10 * the Free Software Foundation; either version 2 of the License, or
dflet 0:50cedd586816 11 * (at your option) any later version.
dflet 0:50cedd586816 12 *
dflet 0:50cedd586816 13 * This program is distributed in the hope that it will be useful,
dflet 0:50cedd586816 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dflet 0:50cedd586816 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dflet 0:50cedd586816 16 * GNU General Public License for more details.
dflet 0:50cedd586816 17 *
dflet 0:50cedd586816 18 * You should have received a copy of the GNU General Public License along
dflet 0:50cedd586816 19 * with this program; if not, write to the Free Software Foundation, Inc.,
dflet 0:50cedd586816 20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
dflet 0:50cedd586816 21 */
dflet 0:50cedd586816 22
dflet 0:50cedd586816 23 #if !defined(POLARSSL_CONFIG_FILE)
dflet 0:50cedd586816 24 #include "polarssl/config.h"
dflet 0:50cedd586816 25 #else
dflet 0:50cedd586816 26 #include POLARSSL_CONFIG_FILE
dflet 0:50cedd586816 27 #endif
dflet 0:50cedd586816 28
dflet 0:50cedd586816 29 #if defined(POLARSSL_PLATFORM_C)
dflet 0:50cedd586816 30
dflet 0:50cedd586816 31 #include "polarssl/platform.h"
dflet 0:50cedd586816 32
dflet 0:50cedd586816 33 #if defined(POLARSSL_PLATFORM_MEMORY)
dflet 0:50cedd586816 34 #if !defined(POLARSSL_PLATFORM_STD_MALLOC)
dflet 0:50cedd586816 35 static void *platform_malloc_uninit( size_t len )
dflet 0:50cedd586816 36 {
dflet 0:50cedd586816 37 ((void) len);
dflet 0:50cedd586816 38 return( NULL );
dflet 0:50cedd586816 39 }
dflet 0:50cedd586816 40
dflet 0:50cedd586816 41 #define POLARSSL_PLATFORM_STD_MALLOC platform_malloc_uninit
dflet 0:50cedd586816 42 #endif /* !POLARSSL_PLATFORM_STD_MALLOC */
dflet 0:50cedd586816 43
dflet 0:50cedd586816 44 #if !defined(POLARSSL_PLATFORM_STD_FREE)
dflet 0:50cedd586816 45 static void platform_free_uninit( void *ptr )
dflet 0:50cedd586816 46 {
dflet 0:50cedd586816 47 ((void) ptr);
dflet 0:50cedd586816 48 }
dflet 0:50cedd586816 49
dflet 0:50cedd586816 50 #define POLARSSL_PLATFORM_STD_FREE platform_free_uninit
dflet 0:50cedd586816 51 #endif /* !POLARSSL_PLATFORM_STD_FREE */
dflet 0:50cedd586816 52
dflet 0:50cedd586816 53 void * (*polarssl_malloc)( size_t ) = POLARSSL_PLATFORM_STD_MALLOC;
dflet 0:50cedd586816 54 void (*polarssl_free)( void * ) = POLARSSL_PLATFORM_STD_FREE;
dflet 0:50cedd586816 55
dflet 0:50cedd586816 56 int platform_set_malloc_free( void * (*malloc_func)( size_t ),
dflet 0:50cedd586816 57 void (*free_func)( void * ) )
dflet 0:50cedd586816 58 {
dflet 0:50cedd586816 59 polarssl_malloc = malloc_func;
dflet 0:50cedd586816 60 polarssl_free = free_func;
dflet 0:50cedd586816 61 return( 0 );
dflet 0:50cedd586816 62 }
dflet 0:50cedd586816 63 #endif /* POLARSSL_PLATFORM_MEMORY */
dflet 0:50cedd586816 64
dflet 0:50cedd586816 65 #if defined(POLARSSL_PLATFORM_SNPRINTF_ALT)
dflet 0:50cedd586816 66 #if !defined(POLARSSL_PLATFORM_STD_SNPRINTF)
dflet 0:50cedd586816 67 /*
dflet 0:50cedd586816 68 * Make dummy function to prevent NULL pointer dereferences
dflet 0:50cedd586816 69 */
dflet 0:50cedd586816 70 static int platform_snprintf_uninit( char * s, size_t n,
dflet 0:50cedd586816 71 const char * format, ... )
dflet 0:50cedd586816 72 {
dflet 0:50cedd586816 73 ((void) s);
dflet 0:50cedd586816 74 ((void) n);
dflet 0:50cedd586816 75 ((void) format);
dflet 0:50cedd586816 76 return( 0 );
dflet 0:50cedd586816 77 }
dflet 0:50cedd586816 78
dflet 0:50cedd586816 79 #define POLARSSL_PLATFORM_STD_SNPRINTF platform_snprintf_uninit
dflet 0:50cedd586816 80 #endif /* !POLARSSL_PLATFORM_STD_SNPRINTF */
dflet 0:50cedd586816 81
dflet 0:50cedd586816 82 int (*polarssl_snprintf)( char * s, size_t n,
dflet 0:50cedd586816 83 const char * format,
dflet 0:50cedd586816 84 ... ) = POLARSSL_PLATFORM_STD_SNPRINTF;
dflet 0:50cedd586816 85
dflet 0:50cedd586816 86 int platform_set_snprintf( int (*snprintf_func)( char * s, size_t n,
dflet 0:50cedd586816 87 const char * format,
dflet 0:50cedd586816 88 ... ) )
dflet 0:50cedd586816 89 {
dflet 0:50cedd586816 90 polarssl_snprintf = snprintf_func;
dflet 0:50cedd586816 91 return( 0 );
dflet 0:50cedd586816 92 }
dflet 0:50cedd586816 93 #endif /* POLARSSL_PLATFORM_SNPRINTF_ALT */
dflet 0:50cedd586816 94
dflet 0:50cedd586816 95 #if defined(POLARSSL_PLATFORM_PRINTF_ALT)
dflet 0:50cedd586816 96 #if !defined(POLARSSL_PLATFORM_STD_PRINTF)
dflet 0:50cedd586816 97 /*
dflet 0:50cedd586816 98 * Make dummy function to prevent NULL pointer dereferences
dflet 0:50cedd586816 99 */
dflet 0:50cedd586816 100 static int platform_printf_uninit( const char *format, ... )
dflet 0:50cedd586816 101 {
dflet 0:50cedd586816 102 ((void) format);
dflet 0:50cedd586816 103 return( 0 );
dflet 0:50cedd586816 104 }
dflet 0:50cedd586816 105
dflet 0:50cedd586816 106 #define POLARSSL_PLATFORM_STD_PRINTF platform_printf_uninit
dflet 0:50cedd586816 107 #endif /* !POLARSSL_PLATFORM_STD_PRINTF */
dflet 0:50cedd586816 108
dflet 0:50cedd586816 109 int (*polarssl_printf)( const char *, ... ) = POLARSSL_PLATFORM_STD_PRINTF;
dflet 0:50cedd586816 110
dflet 0:50cedd586816 111 int platform_set_printf( int (*printf_func)( const char *, ... ) )
dflet 0:50cedd586816 112 {
dflet 0:50cedd586816 113 polarssl_printf = printf_func;
dflet 0:50cedd586816 114 return( 0 );
dflet 0:50cedd586816 115 }
dflet 0:50cedd586816 116 #endif /* POLARSSL_PLATFORM_PRINTF_ALT */
dflet 0:50cedd586816 117
dflet 0:50cedd586816 118 #if defined(POLARSSL_PLATFORM_FPRINTF_ALT)
dflet 0:50cedd586816 119 #if !defined(POLARSSL_PLATFORM_STD_FPRINTF)
dflet 0:50cedd586816 120 /*
dflet 0:50cedd586816 121 * Make dummy function to prevent NULL pointer dereferences
dflet 0:50cedd586816 122 */
dflet 0:50cedd586816 123 static int platform_fprintf_uninit( FILE *stream, const char *format, ... )
dflet 0:50cedd586816 124 {
dflet 0:50cedd586816 125 ((void) stream);
dflet 0:50cedd586816 126 ((void) format);
dflet 0:50cedd586816 127 return( 0 );
dflet 0:50cedd586816 128 }
dflet 0:50cedd586816 129
dflet 0:50cedd586816 130 #define POLARSSL_PLATFORM_STD_FPRINTF platform_fprintf_uninit
dflet 0:50cedd586816 131 #endif /* !POLARSSL_PLATFORM_STD_FPRINTF */
dflet 0:50cedd586816 132
dflet 0:50cedd586816 133 int (*polarssl_fprintf)( FILE *, const char *, ... ) =
dflet 0:50cedd586816 134 POLARSSL_PLATFORM_STD_FPRINTF;
dflet 0:50cedd586816 135
dflet 0:50cedd586816 136 int platform_set_fprintf( int (*fprintf_func)( FILE *, const char *, ... ) )
dflet 0:50cedd586816 137 {
dflet 0:50cedd586816 138 polarssl_fprintf = fprintf_func;
dflet 0:50cedd586816 139 return( 0 );
dflet 0:50cedd586816 140 }
dflet 0:50cedd586816 141 #endif /* POLARSSL_PLATFORM_FPRINTF_ALT */
dflet 0:50cedd586816 142
dflet 0:50cedd586816 143 #if defined(POLARSSL_PLATFORM_EXIT_ALT)
dflet 0:50cedd586816 144 #if !defined(POLARSSL_PLATFORM_STD_EXIT)
dflet 0:50cedd586816 145 /*
dflet 0:50cedd586816 146 * Make dummy function to prevent NULL pointer dereferences
dflet 0:50cedd586816 147 */
dflet 0:50cedd586816 148 static void platform_exit_uninit( int status )
dflet 0:50cedd586816 149 {
dflet 0:50cedd586816 150 ((void) status);
dflet 0:50cedd586816 151 }
dflet 0:50cedd586816 152
dflet 0:50cedd586816 153 #define POLARSSL_PLATFORM_STD_EXIT platform_exit_uninit
dflet 0:50cedd586816 154 #endif /* !POLARSSL_PLATFORM_STD_EXIT */
dflet 0:50cedd586816 155
dflet 0:50cedd586816 156 void (*polarssl_exit)( int status ) = POLARSSL_PLATFORM_STD_EXIT;
dflet 0:50cedd586816 157
dflet 0:50cedd586816 158 int platform_set_exit( void (*exit_func)( int status ) )
dflet 0:50cedd586816 159 {
dflet 0:50cedd586816 160 polarssl_exit = exit_func;
dflet 0:50cedd586816 161 return( 0 );
dflet 0:50cedd586816 162 }
dflet 0:50cedd586816 163 #endif /* POLARSSL_PLATFORM_EXIT_ALT */
dflet 0:50cedd586816 164
dflet 0:50cedd586816 165 #endif /* POLARSSL_PLATFORM_C */
dflet 0:50cedd586816 166