TI Autonomous Driving Algorithms (TIADALG) Library User Guide
tiadalg_alg_int_interface.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) {2015 - 2017} 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 
63 
72 #ifndef TIADALG_ALG_INT_INTERFACE_H
73 #define TIADALG_ALG_INT_INTERFACE_H
74 
75 #include <stdint.h>
76 #include <stdlib.h>
77 #include <math.h>
78 
79 #define TIADALG_PI (3.14159265358f)
80 
81 // TMS320C66X flag needed for c66x host emulation package and it is set in make file
82 // flag TMS320C66X is equivalent to HOST_EMULATION
83 #if defined(TMS320C66X)
84 #include "./../common/c_intrinsics_host_port/c6xsim/C6xSimulator.h"
85 #endif
86 
87 #if defined(_TMS320C6600)
88 #include <c6x.h>
89 #endif
90 
91 #if defined(__C7100__) || defined(__C7120__)
92 #include <c7x.h>
93 #include <c6x_migration.h>
94 #endif
95 
96 #ifdef HOST_EMULATION
97 #ifndef restrict
98 #define restrict
99 #endif
100 #define _nassert assert
101 #endif
102 
103 #ifndef mmax
104 #define mmax(a,b) (((a)>(b))?(a):(b))
105 #endif
106 
107 #ifndef mmin
108 #define mmin(a,b) (((a)<(b))?(a):(b))
109 #endif
110 
111 #ifndef msign
112 #define msign(x) (x >= 0)?1:0
113 #endif
114 
115 #ifndef SWAP_ME
116 #define SWAP_ME(a,b) a=a+b;b=a-b;a=a-b;
117 #endif
118 
119 #define TIADALG_oneByXF32(x) 1/x
120 
121 #define VXLIB_STATUS int32_t
122 #define VXLIB_SUCCESS (1)
123 #define VXLIB_ERR_FAILURE (0)
124 #define VXLIB_F32 float
125 #define VXLIB_D64 double
126 
127 static size_t inline addr_align(void* addr, int32_t num_byte_align)
128 {
129  size_t new_addr = (size_t)(addr);
130  size_t mask = ~(num_byte_align-1);
131  new_addr = new_addr + num_byte_align - 1;
132  new_addr = new_addr & mask;
133  return(new_addr);
134 }
135 
136 #endif
static size_t addr_align(void *addr, int32_t num_byte_align)
Definition: tiadalg_alg_int_interface.h:127

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