04-19-2023 04:11 PM - edited 04-21-2023 11:59 AM
Hi,
We are trying to interface the BME688 sensor which is present in our custom hardware based on STM32MP1. After going through all the documentation, we have added the following files into my source code: from BSEC2.4.0.0_Generic_Release_23012023/examples/BSEC_Integration_Examples/src/bme68x/ , added three bme68x.c, bme68x.h, bme68x_defs.h and from BSEC2.4.0.0_Generic_Release_23012023/algo/normal_version/inc/ added two files bsec_datatypes.h, bsec_interface.h.
Using the bme68x_dev structure, added i2c interface, write, read and delay_us function pointers. Next called bme68x_init() and bsec_init().
When we tried to link the bsec static C library, downloaded from https://www.bosch-sensortec.com/software-tools/software/bme688-software/ (BSEC2.4.0.0_Generic_Release_23012023/algo/normal_version/bin/gcc/Cortex_A7/libalgobsec.a) with the application, we got lot of errors. I have attached the error log.
The device is based on Yocto and uses openstlinux (arm-openstlinux_weston-linux-gnueabi-gcc).
We had faced the same issue previously too for which you provided the library(BSEC2.1.0) which was built for arm-openstlinux_weston-linux-gnueabi-gcc https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BME688-library-linking-fails-in-STM32MP1...
We appreciate the support your team provided during those times. Kindly help us with this issue too. We are stuck with this issue.
[ attaching the build/error log along with this ]
Thank you
Deepak S
Solved! Go to Solution.
04-24-2023 09:31 AM
Hi BSTRobin,
I am sorry I couldn't find the above mentioned library for STM32MP1 that you have uploaded. I checked in the website too https://www.bosch-sensortec.com/software-tools/software/bme688-software/ but couldn't find it.
Can you provide a direct link to it or if possible, please attach it in this conversation.
Thank you
04-25-2023 07:19 AM
04-25-2023 09:18 AM
Hi BSTRobin,
I just checked the attached library. We are now able to compile our application successfully. Thanks to you and your team.
But still, we got some warnings regarding the variable-size enums. I have attached the log file for your reference. Please refer to it and please update us if it can be a problem.
Thank you for your support BSTRobin.
05-04-2023 04:29 AM
Hi Deepak,
We can't find the warning in your log when we compile it.
Did you use the compiling options provided by us or your previous comment?
The following compiler and compling option you commended:
The compiling options are: arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -O2 -pipe
The compiler that we use is - arm-openstlinux_weston-linux-gnueabi-gcc or arm-ostl-linux-gnueabi-gcc . Both are same, just the gcc version is different.
Download the SDKv1.2.0 or you can download directly from this link: https://www.st.com/en/embedded-software/stm32mp1dev.html
Select the Yocto SDK and also the version 1.2.0 and then download it.
After downloading extract the file and run the st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-2.6-openstlinux-20-02-19.sh script for installation and it will install in the default path /opt/st/stm32mp1/2.6-openstlinux-20-02-19.
To make the environment setup please run as below:
$ source /opt/st/stm32mp1/2.6-openstlinux-20-02-19/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
05-04-2023 09:59 AM
Hi BSTRobin,
We had previously tried the compiling options that you send in the previous reply. We modified the environment file and used the options that you send but, we got some errors while using them to compile, and were not able to generate the executable file.
CC="arm-openstlinux_weston-linux-gnueabi-gcc -c -std=c99 -march=armv7-a -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 --sysroot=$SDKTARGETSYSROOT"
CFLAGS=" -O2 -fdata-sections -fno-builtin -fno-common -pipe -g -feliminate-unused-debug-types "
We are using the below options to compile :
CC="arm-openstlinux_weston-linux-gnueabi-gcc -march=armv7ve -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT"
CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types "
Can you please check it by compiling with the above options ?
Thank you