libfixmath for cortex m0
GoogleCodeExporter opened this issue · comments
Google Code Exporter commented
What steps will reproduce the problem?
1. keil uvision
2. #define FIXMATH_NO_64BIT
3. code does not use the available 32 x 32 HW 1cycle multiply
Cortex M0+ does not have the M3 4 multipy, however it has a 32bit HW multiply
Windows 7
In reality the FIXMATH_NO_64BIT does not compile with Keil uVusuib. It's OK
with std 64 mul (after a few changes to make the compiler happy)
I was thinking of maybe changing fix16_mul, although I'm not sure how.
But are there other places where the same thing happens?
Thanks!
Original issue reported on code.google.com by AGorge2...@gmail.com
on 7 Sep 2013 at 11:33
Google Code Exporter commented
I think the above message was confusing, basically when compiling with
FIXMATH_NO_64BIT,
I get 2 errors on this line (and all the similar ones):
static __inline __int64_t int64_const(int32_t hi, uint32_t lo) { return
(__int64_t){ hi, lo }; }
int64.h(40): error: #119: cast to type "__int64_t" is not allowed
int64.h(40): error: #29: expected an expression
any ideas how to get his to work?
Thanks!
Original comment by AGorge2...@gmail.com
on 8 Sep 2013 at 12:19
Google Code Exporter commented
Yeah, the problem is that you're using a compiler which doesn't support the
same features as gcc or that I didn't realize that this way of initializing a
struct was not standard C. To fix that problem just change it to:
static __inline __int64_t int64_const(int32_t hi, uint32_t lo) { __int64_t r;
r.hi = hi; r.lo = lo; return r; }
Original comment by Flatmush@googlemail.com
on 8 Sep 2013 at 1:06