55 #ifndef FOXBMS__GENERAL_H_
56 #define FOXBMS__GENERAL_H_
72 #define GEN_SET_BIT(register, bit) ((register) |= (uint32)((uint32)1U << (bit)))
78 #define GEN_CLEAR_BIT(register, bit) ((register) &= ~(uint32)((uint32)1U << (bit)))
87 #define GEN_MUST_CHECK_RETURN __attribute__((warn_unused_result))
91 #define GEN_ALWAYS_INLINE __attribute__((always_inline))
94 #ifdef UNITY_UNIT_TEST
95 #define UNIT_TEST_WEAK_IMPL __attribute__((weak))
97 #define UNIT_TEST_WEAK_IMPL
119 #define GEN_REPEAT_U1u(x) (x)
120 #define GEN_REPEAT_U2u(x) GEN_REPEAT_U1u(x), (x)
121 #define GEN_REPEAT_U3u(x) GEN_REPEAT_U2u(x), (x)
122 #define GEN_REPEAT_U4u(x) GEN_REPEAT_U3u(x), (x)
123 #define GEN_REPEAT_U5u(x) GEN_REPEAT_U4u(x), (x)
124 #define GEN_REPEAT_U6u(x) GEN_REPEAT_U5u(x), (x)
125 #define GEN_REPEAT_U7u(x) GEN_REPEAT_U6u(x), (x)
126 #define GEN_REPEAT_U8u(x) GEN_REPEAT_U7u(x), (x)
127 #define GEN_REPEAT_U9u(x) GEN_REPEAT_U8u(x), (x)
128 #define GEN_REPEAT_U10u(x) GEN_REPEAT_U9u(x), (x)
129 #define GEN_REPEAT_U11u(x) GEN_REPEAT_U10u(x), (x)
130 #define GEN_REPEAT_U12u(x) GEN_REPEAT_U11u(x), (x)
131 #define GEN_REPEAT_U13u(x) GEN_REPEAT_U12u(x), (x)
132 #define GEN_REPEAT_U14u(x) GEN_REPEAT_U13u(x), (x)
133 #define GEN_REPEAT_U15u(x) GEN_REPEAT_U14u(x), (x)
134 #define GEN_REPEAT_U16u(x) GEN_REPEAT_U15u(x), (x)
135 #define GEN_REPEAT_U17u(x) GEN_REPEAT_U16u(x), (x)
136 #define GEN_REPEAT_U18u(x) GEN_REPEAT_U17u(x), (x)
137 #define GEN_REPEAT_U19u(x) GEN_REPEAT_U18u(x), (x)
138 #define GEN_REPEAT_U20u(x) GEN_REPEAT_U19u(x), (x)
139 #define GEN_REPEAT_U21u(x) GEN_REPEAT_U20u(x), (x)
140 #define GEN_REPEAT_U22u(x) GEN_REPEAT_U21u(x), (x)
141 #define GEN_REPEAT_U23u(x) GEN_REPEAT_U22u(x), (x)
142 #define GEN_REPEAT_U24u(x) GEN_REPEAT_U23u(x), (x)
143 #define GEN_REPEAT_U25u(x) GEN_REPEAT_U24u(x), (x)
144 #define GEN_REPEAT_U26u(x) GEN_REPEAT_U25u(x), (x)
145 #define GEN_REPEAT_U27u(x) GEN_REPEAT_U26u(x), (x)
146 #define GEN_REPEAT_U28u(x) GEN_REPEAT_U27u(x), (x)
147 #define GEN_REPEAT_U29u(x) GEN_REPEAT_U28u(x), (x)
148 #define GEN_REPEAT_U30u(x) GEN_REPEAT_U29u(x), (x)
149 #define GEN_REPEAT_U31u(x) GEN_REPEAT_U30u(x), (x)
150 #define GEN_REPEAT_U32u(x) GEN_REPEAT_U31u(x), (x)
151 #define GEN_REPEAT_U33u(x) GEN_REPEAT_U32u(x), (x)
152 #define GEN_REPEAT_U34u(x) GEN_REPEAT_U33u(x), (x)
153 #define GEN_REPEAT_U35u(x) GEN_REPEAT_U34u(x), (x)
154 #define GEN_REPEAT_U36u(x) GEN_REPEAT_U35u(x), (x)
155 #define GEN_REPEAT_U37u(x) GEN_REPEAT_U36u(x), (x)
156 #define GEN_REPEAT_U38u(x) GEN_REPEAT_U37u(x), (x)
157 #define GEN_REPEAT_U39u(x) GEN_REPEAT_U38u(x), (x)
158 #define GEN_REPEAT_U40u(x) GEN_REPEAT_U39u(x), (x)
159 #define GEN_REPEAT_U41u(x) GEN_REPEAT_U40u(x), (x)
160 #define GEN_REPEAT_U42u(x) GEN_REPEAT_U41u(x), (x)
161 #define GEN_REPEAT_U43u(x) GEN_REPEAT_U42u(x), (x)
162 #define GEN_REPEAT_U44u(x) GEN_REPEAT_U43u(x), (x)
163 #define GEN_REPEAT_U45u(x) GEN_REPEAT_U44u(x), (x)
164 #define GEN_REPEAT_U46u(x) GEN_REPEAT_U45u(x), (x)
165 #define GEN_REPEAT_U47u(x) GEN_REPEAT_U46u(x), (x)
166 #define GEN_REPEAT_U48u(x) GEN_REPEAT_U47u(x), (x)
167 #define GEN_REPEAT_U49u(x) GEN_REPEAT_U48u(x), (x)
168 #define GEN_REPEAT_U50u(x) GEN_REPEAT_U49u(x), (x)
169 #define GEN_REPEAT_U51u(x) GEN_REPEAT_U50u(x), (x)
170 #define GEN_REPEAT_U52u(x) GEN_REPEAT_U51u(x), (x)
171 #define GEN_REPEAT_U53u(x) GEN_REPEAT_U52u(x), (x)
172 #define GEN_REPEAT_U54u(x) GEN_REPEAT_U53u(x), (x)
173 #define GEN_REPEAT_U55u(x) GEN_REPEAT_U54u(x), (x)
174 #define GEN_REPEAT_U56u(x) GEN_REPEAT_U55u(x), (x)
175 #define GEN_REPEAT_U57u(x) GEN_REPEAT_U56u(x), (x)
176 #define GEN_REPEAT_U58u(x) GEN_REPEAT_U57u(x), (x)
177 #define GEN_REPEAT_U59u(x) GEN_REPEAT_U58u(x), (x)
178 #define GEN_REPEAT_U60u(x) GEN_REPEAT_U59u(x), (x)
179 #define GEN_REPEAT_U61u(x) GEN_REPEAT_U60u(x), (x)
180 #define GEN_REPEAT_U62u(x) GEN_REPEAT_U61u(x), (x)
181 #define GEN_REPEAT_U63u(x) GEN_REPEAT_U62u(x), (x)
182 #define GEN_REPEAT_U64u(x) GEN_REPEAT_U63u(x), (x)
183 #define GEN_REPEAT_U65u(x) GEN_REPEAT_U64u(x), (x)
184 #define GEN_REPEAT_U66u(x) GEN_REPEAT_U65u(x), (x)
185 #define GEN_REPEAT_U67u(x) GEN_REPEAT_U66u(x), (x)
186 #define GEN_REPEAT_U68u(x) GEN_REPEAT_U67u(x), (x)
187 #define GEN_REPEAT_U69u(x) GEN_REPEAT_U68u(x), (x)
188 #define GEN_REPEAT_U70u(x) GEN_REPEAT_U69u(x), (x)
189 #define GEN_REPEAT_U71u(x) GEN_REPEAT_U70u(x), (x)
190 #define GEN_REPEAT_U72u(x) GEN_REPEAT_U71u(x), (x)
191 #define GEN_REPEAT_U73u(x) GEN_REPEAT_U72u(x), (x)
192 #define GEN_REPEAT_U74u(x) GEN_REPEAT_U73u(x), (x)
193 #define GEN_REPEAT_U75u(x) GEN_REPEAT_U74u(x), (x)
194 #define GEN_REPEAT_U76u(x) GEN_REPEAT_U75u(x), (x)
195 #define GEN_REPEAT_U77u(x) GEN_REPEAT_U76u(x), (x)
196 #define GEN_REPEAT_U78u(x) GEN_REPEAT_U77u(x), (x)
197 #define GEN_REPEAT_U79u(x) GEN_REPEAT_U78u(x), (x)
198 #define GEN_REPEAT_U80u(x) GEN_REPEAT_U79u(x), (x)
199 #define GEN_REPEAT_U81u(x) GEN_REPEAT_U80u(x), (x)
200 #define GEN_REPEAT_U82u(x) GEN_REPEAT_U81u(x), (x)
201 #define GEN_REPEAT_U83u(x) GEN_REPEAT_U82u(x), (x)
202 #define GEN_REPEAT_U84u(x) GEN_REPEAT_U83u(x), (x)
203 #define GEN_REPEAT_U85u(x) GEN_REPEAT_U84u(x), (x)
204 #define GEN_REPEAT_U86u(x) GEN_REPEAT_U85u(x), (x)
205 #define GEN_REPEAT_U87u(x) GEN_REPEAT_U86u(x), (x)
206 #define GEN_REPEAT_U88u(x) GEN_REPEAT_U87u(x), (x)
207 #define GEN_REPEAT_U89u(x) GEN_REPEAT_U88u(x), (x)
208 #define GEN_REPEAT_U90u(x) GEN_REPEAT_U89u(x), (x)
209 #define GEN_REPEAT_U91u(x) GEN_REPEAT_U90u(x), (x)
210 #define GEN_REPEAT_U92u(x) GEN_REPEAT_U91u(x), (x)
211 #define GEN_REPEAT_U93u(x) GEN_REPEAT_U92u(x), (x)
212 #define GEN_REPEAT_U94u(x) GEN_REPEAT_U93u(x), (x)
213 #define GEN_REPEAT_U95u(x) GEN_REPEAT_U94u(x), (x)
214 #define GEN_REPEAT_U96u(x) GEN_REPEAT_U95u(x), (x)
215 #define GEN_REPEAT_U97u(x) GEN_REPEAT_U96u(x), (x)
216 #define GEN_REPEAT_U98u(x) GEN_REPEAT_U97u(x), (x)
217 #define GEN_REPEAT_U99u(x) GEN_REPEAT_U98u(x), (x)
220 #define GEN_REPEAT_Ux(x, n) GEN_REPEAT_U##n(x)
225 #define GEN_REPEAT_MAXIMUM_REPETITIONS (99u)
250 #define GEN_REPEAT_U(x, n) GEN_REPEAT_Ux(x, n)
257 #define GEN_GET_ARGS(...) __VA_ARGS__
258 #define GEN_STRIP_PARENS(x) x
261 #define GEN_STRIP(x) GEN_STRIP_PARENS(GEN_GET_ARGS x)
265 #if defined(__TI_COMPILER_VERSION__) && defined(__ARM_32BIT_STATE) && defined(__TMS470__)
266 #define GEN_BYTES_PER_WORD (4u)
267 #elif defined(UNITY_UNIT_TEST)
270 #define GEN_BYTES_PER_WORD (4u)
272 #warning "Unspecified platform default to 4 bytes per word."
273 #define GEN_BYTES_PER_WORD (4u)
281 #ifdef UNITY_UNIT_TEST
Assert macro implementation.
Definition of foxBMS standard types.
FAS_STATIC_ASSERT(false==0, "false seems to have been modified.")