TI Autonomous Driving Algorithms (TIADALG) Library User Guide
tiadalg_common_utils.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) {2015 - 2018} Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 #include <stdint.h>
63 #include <stdlib.h>
64 
65 #ifndef TIADALG_COMMONUTILS_H
66 #define TIADALG_COMMONUTILS_H
67 #define TIADALG_FILE_NAME_SIZE (256)
68 
69 int32_t tiadalg_read_f32_data_from_file(float* dest, int32_t num_elements, const char * filename);
70 int32_t tiadalg_read_s16_data_from_file(int16_t* dest, int32_t num_elements, const char * filename);
71 int32_t tiadalg_read_s8_data_from_file(int8_t* dest, int32_t num_elements, const char * filename);
72 int32_t tiadalg_comp_f32_data(float* src, float* dst, int32_t num_elements, float tolerance);
73 int32_t tiadalg_comp_s32_data(int32_t* src, int32_t* dst, int32_t num_elements, int32_t tolerance);
74 int32_t tiadalg_comp_s16_data(int16_t* src, int16_t* dst, int32_t num_elements, int16_t tolerance);
75 int32_t tiadalg_comp_u16_data(uint16_t* src, uint16_t* dst, int32_t num_elements, uint16_t tolerance);
76 int32_t tiadalg_read_bin_file(void* dest, int32_t num_bytes, char * file_name);
77 int32_t tiadalg_write_bin_file(void* dest, int32_t num_bytes, char * file_name);
78 int32_t tiadalg_fill_buffer_random(uint8_t* buf, int32_t size);
79 int32_t tiadalg_fill_buffer_range_random_16u(uint16_t* buf, int32_t size, uint16_t low, uint16_t high);
80 int32_t tiadalg_fill_buffer_range_random_8u(uint8_t* buf, int32_t size, uint8_t low, uint8_t high);
81 
82 void tiadalg_init_cache();
83 
84 #define L2CFG (volatile unsigned int *)0x01840000
85 #define L1PCFG (volatile unsigned int *)0x01840020
86 #define L1DCFG (volatile unsigned int *)0x01840040
87 
88 
89 static int32_t inline gen_rand(int32_t min, int32_t max)
90 {
91  int32_t range = max - min + 1;
92 
93  int32_t cur_rand = (rand() % range) - ((max + min) >> 1);
94 
95  if(cur_rand < min) cur_rand = min;
96 
97  if(cur_rand > max) cur_rand = max;
98 
99  return(cur_rand);
100 }
101 
102 #if defined(__C7100__) || defined(__C7120__)
103 #include <c7x.h>
104 void displaySEParam(void *baseAddr, __SE_TEMPLATE_v1 seTemplate);
105 #endif
106 
107 #endif
void tiadalg_init_cache()
int32_t tiadalg_read_bin_file(void *dest, int32_t num_bytes, char *file_name)
int32_t tiadalg_write_bin_file(void *dest, int32_t num_bytes, char *file_name)
int32_t tiadalg_comp_u16_data(uint16_t *src, uint16_t *dst, int32_t num_elements, uint16_t tolerance)
int32_t tiadalg_read_f32_data_from_file(float *dest, int32_t num_elements, const char *filename)
int32_t tiadalg_comp_s16_data(int16_t *src, int16_t *dst, int32_t num_elements, int16_t tolerance)
int32_t tiadalg_fill_buffer_range_random_8u(uint8_t *buf, int32_t size, uint8_t low, uint8_t high)
static int32_t gen_rand(int32_t min, int32_t max)
Definition: tiadalg_common_utils.h:89
int32_t tiadalg_read_s8_data_from_file(int8_t *dest, int32_t num_elements, const char *filename)
int32_t tiadalg_fill_buffer_random(uint8_t *buf, int32_t size)
int32_t tiadalg_comp_s32_data(int32_t *src, int32_t *dst, int32_t num_elements, int32_t tolerance)
int32_t tiadalg_comp_f32_data(float *src, float *dst, int32_t num_elements, float tolerance)
int32_t tiadalg_read_s16_data_from_file(int16_t *dest, int32_t num_elements, const char *filename)
int32_t tiadalg_fill_buffer_range_random_16u(uint16_t *buf, int32_t size, uint16_t low, uint16_t high)

© Copyright 2018 Texas Instruments Incorporated. All rights reserved.
Document generated by doxygen 1.8.6