So, the assert being where it is, would your bet be on a controller bug, a
host bug, or the app corrupting os memory in some way? (I've certainly done
my fair share of the latter ;)



On Thu, Jul 7, 2016 at 6:06 PM, will sanfilippo <[email protected]> wrote:

> There are a few of them actually. Note that we returned an error code when
> the block being freed was not part of the memory pool or either the block
> or pool is NULL. There was some debate on whether to return an error in the
> latter two cases, but not any debate about the former.
>
> What does being part of the pool mean? It means that the address of the
> block being freed is within the memory range of the memory pool and also
> that the address is on a “block boundary”. For example, say you have 100,
> 20 byte memory blocks and the memory block is at address 0x1000. If you
> attempt to free something that is at an address that is less than 0x1000 or
> greater than 0x1000 + (100*20) an error will be returned. Also, if the
> address is not on a 20-byte boundary (starting from the beginning address
> of the memory pool) an error will be returned.
>
> Will
>
> NOTE: the “true block size” is based on the value of OS_ALIGNMENT.
> Currently this is 4 for our architectures but if you change it the block
> size may change as all memory blocks are padded to “OS_ALIGNMENT”
> boundaries (for example, you allocate a 21 byte block, you get a 24 byte
> block).
>
> > On Jul 7, 2016, at 5:52 PM, Simon Ratner <[email protected]> wrote:
> >
> > I've been seeing this semi-regularly lately, can't make sense of it.
> >
> >    66490:Assert ; failed in ble_ll_hci.c:999
> >    66490:Unhandled interrupt (2), exception sp 0x20001788
> >    66490: r0:0x00000000  r1:0x2000179c  r2:0x80000000  r3:0xe000ed00
> >    66490: r4:0x00000000  r5:0x000003e7  r6:0x00021fec  r7:0x20001823
> >    66490: r8:0xffffffff  r9:0xffffffff r10:0x1fff8000 r11:0x00000000
> >    66490:r12:0x00000000  lr:0x0000e2fd  pc:0x0001fd60 psr:0x81000000
> >    66490:ICSR:0x00411002
> >
> > The line points to
> >
> https://github.com/apache/incubator-mynewt-core/blob/develop/net/nimble/controller/src/ble_ll_hci.c#L998
> > (I am on the tip of develop). Under what circumstances would returning a
> > memblock to the pool fail?
> >
> > Cheers,
> > simon
>
>

Reply via email to