[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bluetooth-dev] Re: Porting to ARM



Barton Meeks wrote:

>
> Gordon McNutt <gmcnutt@xxxxxxx.com> wrote:
>
> > I've been trying to get the Bluetooth stack running on an ARM
> > processor.  I've discovered that unfortunately the Axis
> > stack is using struct overlays onto byte arrays as a way
> > to fill out the protocol headers.
>
> Our biggest pain right now is in this area as well.  Our compiler (MRI
> C or C++) doesn't allow the zero-length arrays in structures.  These
> are used in many structures that are used to overlay the byte array.
> Changing the size of the structure by changing data[0] to *data or data[1]
> would seem to be dangerous.
>
> We are looking at removing these zero length arrays completely, but that
> is going to involve changing a fair bit of code to use pointer arithmetic.
>

Even though the compiler directives solve the alignment problem on the ARM,
I'm still going to have to deal with the endianness issue for a port to MIPS.
Converting to pointer arithmetic and using shift operations on multi-byte
values should solve the alignment issues, your compiler issues, and the
endianness issues.

I have to admit that I'm a bit new to the open source development process,
but it seems like we could all benefit if we had
a) a central repository to merge in changes (CVS)
b) some way to test these changes so we don't break people using different
hardware, etc (stable/unstable revs like Linux?)
c) some one to administer a & b (is Axis planning to do this? If not, do they
mind if someone else volunteers to take over?)

Just my 2 cents.

--Gordon