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 > >
