Re: [Bluetooth mesh]CONFIG_BT_PERIPHERAL, what does it mean?

Kai Ren

Hi Johan,

Thank you for the proposal, I've tested it.

I copied microbit_gatt.conf  and reduced CONFIG_BT_L2CAP_TX_BUF_COUNT to 2, RAM usage is 99.93%, which can make it fit micro:bit RAM size, but when I use BlueZ to provision it, after OOB output on micro:bit, it seems to be corrupted, a HARD FAULT as below.

OOB Number: 549

***** HARD FAULT *****

  Executing thread ID (thread): 0x20001670

  Faulting instruction address:  0x200014dc

Fatal fault in ISR! Spinning...



I guess that there may be two causes:

  • RAM reach to limit, 99.93% is not safe for application even if it’s passed build phase;
  • CONFIG_BT_L2CAP_TX_BUF_COUNT is too small to fit the provisioning process.

So, I have a question that can I enable optimization level for source code compiling? I had used Keil or IAR, their GUI support to configure optimization level, but how can I configure it on Zephyr? I hope it may save some valuable bytes in RAM of micro:bit.







On 22/03/2018, 11:39 PM, "Johan Hedberg" <johan.hedberg@...> wrote:


    Hi Kai,


    On Thu, Mar 22, 2018, Kai Ren wrote:

    > I’m try to run ./sample/Bluetooth/mesh/ on micro:bit, I found that

    > current source code for micro:bit just support PB-ADV, don’t support

    > PB-GATT. So, I want to add PB-GATT on it, but I found that it’s really

    > hard to pass the build process because it runs out of RAM if I

    > modified prj_bbc_microbit.conf.

    > Meanwhile, I also found that there is a configuration flag,

    > CONFIG_BT_PERIPHERAL, it consumes about 2KB RAM when I enable it, so

    > I’m just curious that what function does this flag provide? And is it

    > necessary for PB-GATT on micro:bit?  Thanks!


    There's actually a samples/bluetooth/mesh/microbit_gatt.conf

    configuration that's intended to be used for a GATT-based build of the

    mesh sample. That said, I just tried it and it actually overflows the

    RAM by 300 bytes. That's much less than 2k however, and hopefully easily

    to fix. Looking into it now. It might e.g. be possible that the

    CONFIG_BT_L2CAP_TX_BUF_COUNT=5 variable can be lowered since there was

    recently an extra segmentation buffer introduced for outgoing ACL



    Note: you can select microbit_gatt.conf e.g. by passing the following

    to cmake: -DCONF_FILE=microbit_gatt.conf




Join to automatically receive all group messages.