Facing Queue send/ receive issue after migrating with FreeRtos V10.0.0

poulamee wrote on Friday, February 09, 2018:

I have migrated FreeRtos with V10.0.0, In EFM32GG395F1024 microcontroller, Previously I was using V7.5.2 , I have changed with v10.0.0, It was successfully installed and working , only one issue I’ve faced. When I’m sending the notification from queue send the global variable got change when its goes to Queue receive. From changing the version V7.5.2 to V10.0.0 any macro or some value we need to set for queue send to queue receive function working properly ?

Have anyone faced this kind of issue ?
Any help for resolving this issue would be much appreciated!

Thanks in advance,

rtel wrote on Friday, February 09, 2018:

I can try and help - but need some more information.

First, after updating the source files to V10, did you update all the files, including the port layer files and all header files, and did you perform a complete re-build so all old object files were re-created?

Is the global variable that gets corrupted anything to do with the queue send process? Are you saying that sending to and receiving from the queue is working but a global variable somewhere else is getting corrupted? Or are you saying something to do with the queue is getting corrupted?

poulamee wrote on Friday, February 09, 2018:

I have updated the all files and folder under Contain the FreeRTOS real time kernel source. Means I have taken the all contain from this folder"…\freertos-10.0.0.zip\freertos-10.0.0\FreeRTOS\Source"

I’m trying sending a payload and getting the notification via BLE. But When I’m sending the notification it will receive the notification and go to the Queue send after that when it’s going to the queue receive this value got changed. So I can conclude that somewhere in queue send and queue receive this value getting corrupted but only one byte of payload got changed. The same scenario I have checked with previous version (v7.5.2), there I didn’t such type of issue .

rtel wrote on Friday, February 09, 2018:

Ok - so if I understand correctly now the value you get out of the queue
is different to the value you put in - so it is the queued data that
gets corrupted.

FreeRTOS V10 has many more configASSERT() calls than the V7.x you were
using before. Do you have configASSERT() defined to something that will
halt execution, so you know it has been called?

poulamee wrote on Saturday, February 10, 2018:

The Queue value is not changed, the Global variable got changed . Whatever value I’m sending via Queue when it is going to Queuereceive, the Global variable got changed
I’m using the configASSERT for handling the queue. And also I have defined configASSERT(expression) oin FreeRTOSConfig.h , but this issue is there .