[opus] OPUS on bare metal ARM

Thomas Daede tdaede at mozilla.com
Tue Aug 25 09:17:26 PDT 2015


On 08/25/2015 01:45 AM, Andrew Lentvorski wrote:
> On 8/25/15, 12:25 AM, Treuillard, Benjamin wrote:
>> The aim of my project is to transmit voice over CAN bus.
> 
> CAN?  8 byte transactions.  CRC.  Bit stuffing on 5 bit repeats.
> Automatic retransmits.  No ordering.
> 
> Really?  I guess if you *have* to, but I would pick pretty much *any*
> interface standard *other* than CAN for audio.

Eh, it can work. CAN bus can actually guarantee ordering, and while it
can't guarantee no packet loss, it does have built in retransmits. So
it's not as bad as you think.

>> The main issue I have is that opus fail to allocate memory, the ALLOC
>> macro always return a NULL pointer.
> 
> If you are on bare metal, does malloc even work in your *own* code?
> 
> I suspect your environment may not even have a valid malloc()
> implementation if you are on bare metal.

I have a lot of experience with the STM32 series, I can probably help
you out here, but it seems your current problems are unrelated to Opus
in general. Can you do a simple test with malloc() and see if it works
at all? What toolchain and libc are you using?

You can actually use Opus without a malloc() at all, but I would expect
most toolchains to have a working one.


More information about the opus mailing list