Issue 25 in libfixmath: libfixmath for cortex m0

17 views
Skip to first unread message

libfi...@googlecode.com

unread,
Sep 7, 2013, 7:33:54 PM9/7/13
to libfi...@googlegroups.com
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 25 by AGorge2...@gmail.com: libfixmath for cortex m0
http://code.google.com/p/libfixmath/issues/detail?id=25

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!



--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

libfi...@googlecode.com

unread,
Sep 7, 2013, 8:19:31 PM9/7/13
to libfi...@googlegroups.com

Comment #1 on issue 25 by AGorge2...@gmail.com: libfixmath for cortex m0
http://code.google.com/p/libfixmath/issues/detail?id=25

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?

libfi...@googlecode.com

unread,
Sep 8, 2013, 9:06:47 AM9/8/13
to libfi...@googlegroups.com

Comment #2 on issue 25 by Flat...@googlemail.com: libfixmath for cortex m0
http://code.google.com/p/libfixmath/issues/detail?id=25

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; }
Reply all
Reply to author
Forward
0 new messages