Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    Bsec buffer issues for cortex m33

    Bsec buffer issues for cortex m33

    suads
    New Poster

    Hello,

    I ported the bme-680 and bsec library and using the bsec_integration.c on a erf32xg22 board with cortex m33. I managed it to get it working but I m having some issues with the local buffers in the function bsec_iot_init my code stops executing it goes into the default handler(infinte loop) when this buffers are local.

    uint8_t bsec_state[BSEC_MAX_STATE_BLOB_SIZE] = {0};
    uint8_t bsec_config[BSEC_MAX_PROPERTY_BLOB_SIZE] = {0};
    uint8_t work_buffer[BSEC_MAX_WORKBUFFER_SIZE] = {0};

    But If I dynamicaly alocate them or move them as global static variables it works.

    suads_0-1697534431896.png

    I want also to implement the  state_load and state_save functions writing to internal flash. And yet again I m having issues with the buffers when it needs to call the function state_save it just stops working. If I increase the bsec_state buffer size it goes through, but then I can not load the state.

    What could cause this issues?

    What are the sizes for BSEC_MAX_STATE_BLOB_SIZE,BSEC_MAX_PROPERTY_BLOB_SIZE,BSEC_MAX_WORKBUFFER_SIZE?

    Regards, suad

     

     

    5 REPLIES 5

    BSTRobin
    Community Moderator
    Community Moderator

    Hi suads,

    If you don't want to modify variables to global variables, you can increase the stack size of the system in your compiler. In my MDK-ARM Keil project, I can modify the stack size in *. s.
    ; Amount of memory (in bytes) allocated for Stack
    ; Tailor this value to your application needs
    ; <h> Stack Configuration
    ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
    ; </h>

    Stack_Size EQU 0x8000

    BSEC_MAX_STATE_BLOB_SIZE,BSEC_MAX_PROPERTY_BLOB_SIZE,BSEC_MAX_WORKBUFFER_SIZE were defined in the file bsec_datatypes.h.

    What version of BSEC do you use? What output values do you need from BSEC for your application?

    Hi, @BSTRobin

    I'm using the latest version 2.4.0.0 and using the normal_version/bin/gcc/Cortex_M33 static library libalgobsec.a and using the Simplicity studio version 5 from Silicon labs.

    BSTRobin
    Community Moderator
    Community Moderator

    Hi suads,

    As you use BSEC2.4.0.0, if you would like to get IAQ output, you can refer attached example code on STM32, enable macro definition in the file user_define.h.
    //#define BME68X_OUTPUT_GAS_ESTIMATE
    #define BME68X_OUTPUT_GAS_IAQ

    Hi, @BSTRobin 

    It was an issue on my side. I  increased the stack size also there was a Bug when writing to the flash, the size of the buffer needs to be aligned by 4, so when writing to the internal flash  bsec_state  with len =221 it just froze even the debugger was not working, and I was not sure what was hapenning.

    And I was so sure that my flash read and write was working, because the way I tested I used a buffer of the size 4096(aligned by 4) wrote on an address and read it and it was always good.

    Thanks, regards Suad

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist