Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BME688 library linking fails in STM32MP1

    BME688 library linking fails in STM32MP1

    Biswajeet
    New Poster

    Hi, 

    I am trying to use the BME688 sensor which is present in our custom hardware based on STM32MP1.After going thrrough all the documentation I have added the following files into my source code "From BME68x-Sensor-API repo, took bme68x.c, bme68x.h, bme68x_defs.h and from bsec_2-0-6-1_generic_release_04302021.zip using two files bsec_datatypes.h, bsec_interface.h

    Using the bme68x_dev structure, added intf, write, read and delay_us. called bme68x_init() and bsec_init(). 

    In my Makefile, when I try to link the static libray available in "BSEC_2.0.6.1_Generic_Release_04302021-> algo->normal_version->bin->gcc->Cortex_A7->libalgobsec.a" in my application, I get thrown with a lot of errors. I have attached the error logs. NOTE: The device is based on Yocto and uses OpenSTlinux(arm-openstlinux_weston-linux-gnueabi-gcc).

    Kindly help with the which libray I have to use ? Is there any otherfiles that I need to include in my source ?

    15 REPLIES 15

    Hi BSTRobin, 

    I am not able to get the BME688 up and running and facing issues and need your help. 

    Here are the list of things I have done so far following the "BST-BME688-Integration-Guide-AN008-06.pdf" document. 

    1. Took following files from "BSEC_2.0.6.1_Generic_Release_04302021" repo : bme68x.c, bme68x.h, bme68x_defs.h, bsec_datatypes.h, bsec_interface.h, bsec_serialized_configurations_selectivity.c, bsec_serialized_configurations_selectivity.h
    2. As our source code is written in C and in the above repo has "bsec.cpp" file present so I had to convert this file from .cpp to .c. (Attached)
    3. Execution sequence : 
      1. "bsec_init()" is successfull and able to read the BSEC version information.
      2. "bsec_set_configuration" returns -34 (BSEC_E_CONFIG_VERSIONMISMATCH) insted of 0(BSEC_OK). 
      3. "bsec_update_subscription" returns 0(BSEC_OK). 
      4. "bme68x_init" returns 0(BSEC_OK).
      5. In a infinite loop, executing "read_sensor_and_process_data" or "Bsec::run"(in bsec.cpp). 
        1. Inside "set_bme68x_parallel_mode" is called and "bme68x_set_heatr_conf" functions returns -2 (BSEC_E_DOSTEPS_VALUELIMITS) after which it exits the function and runs in a loop. 

    Can you please let me know where is the issue ? 

    I have attached the converted c file and logs for your reference. 

     

    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