cancel
Showing results for 
Search instead for 
Did you mean: 

SPBTLE-RF + FreeRTOS

attemptx
Associate II

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:

  1. Is it possible to use FreeRTOS in combination with the BLE additional software?
  2. Where can I get some detailed guides on how to create custom applications with BLE?

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!

2 REPLIES 2
Winfred LU
ST Employee

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)

https://www.st.com/resource/en/user_manual/dm00162667.pdf

Kolab
Senior

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?