2019-10-19 07:31 AM
Hallo,
I'm a student and I would like to design a product with the SPBTLE-RF module.
I have a Nucleo64-401RE and the X-NUCLEO-IDB05A1 board.
Using CubeMX I can successfully recreate the SensorDemo application.
For my own design I started gethering some code lines from multiple demo applications and it seems that I am kind of successful because my PC with a Bluetooth dongle can find and connect to the module with the chosen password. Hoever it does not work with my smartphone.
Nevertheless I am missing quite a lot of understanding about the functionality of the Bluetooth HCI.
What I would like to do is to connect to the module via a smartphone to transmit short packages of data. Also the firmware of the host microcontroller should use the FreeRTOS given through CubeMX. I tried to generate the SensorDemo application with FreeRTOS enabled but then it does not work anymore.
So my questions are:
A few months ago I already asked something similar in this community and got no response.
Even If you don't know a detailed answer, any hint on how I could continue would be great!
Thank you!
2019-11-10 09:02 PM
It is possible to use FreeRTOS with BLE.
> I tried to generate the SensorDemo application with FreeRTOS enabled but then it does not work anymore.
Please firstly make sure the HCI (SPI) interface works properly.
> Where can I get some detailed guides on how to create custom applications with BLE?
Please refer to PM0237 - BlueNRG, BlueNRG-MS stacks programming guidelines
https://www.st.com/resource/en/programming_manual/dm00141271.pdf
UM1865 - The BlueNRG-MS Bluetooth® LE stack application command interface (ACI)
2020-03-25 06:32 AM
Hello @Winfred LU I have such as problem when I added freeRTOS to BLE. I checked SPI and seems that all right with him. In Keil I get errors:
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol vPortSetupTimerInterrupt multiply defined (by port.o and freertos_port.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol OTP_Read multiply defined (by otp_1.o and otp.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_init_head multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_insert_tail multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_is_empty multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_remove_head multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_dbg_trace_c_0a3726df____REV16 multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_dbg_trace_c_0a3726df____REVSH multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_dbg_trace_c_0a3726df____RRX multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol DbgTraceBuffer multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol DbgTraceGetFileName multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol DbgTraceInit multiply defined (by dbg_trace_1.o and dbg_trace.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___5_otp_c_OTP_Read____REV16 multiply defined (by otp_1.o and otp.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___5_otp_c_OTP_Read____REVSH multiply defined (by otp_1.o and otp.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___5_otp_c_OTP_Read____RRX multiply defined (by otp_1.o and otp.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___10_stm_list_c_64162740____REV16 multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___10_stm_list_c_64162740____REVSH multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___10_stm_list_c_64162740____RRX multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_get_next_node multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_get_prev_node multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_get_size multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_insert_head multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_insert_node_after multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_insert_node_before multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_remove_node multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol LST_remove_tail multiply defined (by stm_list_1.o and stm_list.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_stm_queue_c_ae3b15be____REV16 multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_stm_queue_c_ae3b15be____REVSH multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol __asm___11_stm_queue_c_ae3b15be____RRX multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Add multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Empty multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Init multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_NbElement multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Remove multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Remove_Copy multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Sense multiply defined (by stm_queue_1.o and stm_queue.o).
wb55_ble_freertos\wb55_ble_freertos.axf: Error: L6200E: Symbol CircularQueue_Sense_Copy multiply defined (by stm_queue_1.o and stm_queue.o).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 0 warning and 37 error messages.
"wb55_ble_freertos\wb55_ble_freertos.axf" - 37 Error(s), 8 Warning(s).
Target not created.
Build Time Elapsed: 00:05:03
How to fix it?