Thursday, May 24th 2018, 8:29am UTC+2

You are not logged in.

  • Login
  • Register

Dear visitor, welcome to SEGGER Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

ItsMe

Beginner

Date of registration: May 11th 2018

Posts: 2

1

Friday, May 11th 2018, 12:28pm

OZONE FreeRTOS HALT EmptyCallStack when using Float

I am using OZONE(V2.56i) to debug FreeRTOS on a STM32F437, Compiler GCC (Atollic TrueStudio for STM32 Version: 9.0.0 )




Starting the Programm In the Ozone-Debugger and Pause it(== crtl+F5), i can see the complete List of all FreeRTOS Tasks
and by clicking the Task, i see the assoceated CallStack of the Task.
- OK


BUG:
=======
The CallStack of one Task disappeares compleatly after some time (Only a Null- Pointer is shown)

This happens exactly after the first use of any FLOAT in this Threat - and stays until the next restart of the System.

Changeing the Code to Integer-Aritmetic (Fixpoint-Integer/ Q31) helps to overcome the Problem - for some time.

---
The critical Threat is my GUI-Thread.

I am using emWin. (ST-library version)

when opening a Window, that uses a Circle or ARC (In AA-Mode) the problem is back (- no CallStack shown in OZON ) for this thread (after pausing the thread).
- I suppose there are some trigonometric functions like SIN inside the Draw-Circle(==using floats)


By elininating the Circles, the OZONE works fine, and i have the CallStack.


==> I tried to switch emWin to Software-Floats, but i could not manage.


INFO:
=====
When using a Breakpoint in the Thread, the Call-Stack is correct shown - the effect only occurs, when pausing the System in the Ozone-Debugger.



I need the pause-functionality in Ozone with the Call-Stack, because the Thread hangs some times (Closed-Loop), and i do not know where --> (No Place to set the Breakpoint)




I would be nice, if i can debug the Threads in Ozone, when Hardware-Supportet Float aritmetic is enabled

SEGGER - Nino

Super Moderator

Date of registration: Jan 2nd 2017

Posts: 1,052

2

Wednesday, May 16th 2018, 12:00pm

Hello,

Thank you for your inquiry.
Such an issue is now known to us.
Could your provide us with a reproduction example project?
Any STM32F4 eval board as baseboard would suffice.

Best regards,
Nino
Please read the forum rules before posting: Forum Rules

Keep in mind, this is not a support forum. Its main purpose is user to user interaction.
Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
Should you be entitled to support contact us per e-mail.
The following contact form can be used for this: https://www.segger.com/about-us/contact-us/


ItsMe

Beginner

Date of registration: May 11th 2018

Posts: 2

3

Wednesday, May 16th 2018, 4:47pm

Also reproduceable in Atollic with FreeRTOS --> Seams a Problem of the J-Link FreeRTOS Awarenes

During preparing an Example for You, i discovered, that it is the same in Atollic-Debugger.

--> seems to be a Problem with the FreeRTOS awareness of the J-Link, not a Problem of Ozone

Test-Constellation:
1) STM32F429I-DISCO, ST-Link changed to "J-Link On Board" with J-Link Reflash utility to enable FreeRTOS-Awareness
2) CubeMX Project generated Project with 2 aditional Tasks, one calling a Subroutine with a Float
3) Pressing Pause --> You will get the Pictures in the attachement: The CallStack of myTask02/StartTask02 is empty
ItsMe has attached the following images:
  • EmptyFreeRtosCallStack_InAtollic.png
  • MainWithFloat_InAtollic.png
ItsMe has attached the following file:
  • CubeMX_Main.zip (10.45 kB - 8 times downloaded - Last download: Today, 4:59am)