cancel
Showing results for 
Search instead for 
Did you mean: 

STM32WL55 Hard Fault (NOCP) when using TouchGFX scrollable container

Andy1
Associate

Hi,

My TouchGFX project causes a hard fault. When the container is scrolled and released slowly everything is fine. However if the container is released so that it springs back into place, a hard fault is generated. I have tried using a Scroll Wheel and a Scroll List and they exhibit the same bug. I believe that this is due to the easing out logic. The fault always happens at the same location on the same instruction. If I change to a scroll wheel and select a different easing animation, the fault will happen on the same assembly instruction in the alternative easing function. This led me to believe this is a hardware / library issue.

I am using an M4 with no FPU and I have linked against the ":libtouchgfx.a" library located in "Middlewares/ST/touchgfx/lib/core/cortex_m4f/gcc". It seems odd that this library is in a M4F directory. However since there is a "libtouchgfx-float-abi-hard.a" library I assume that ":libtouchgfx.a" is compiled to use floating point implemented in software.

Hardware Configuration

  • NUCLEO-WL55JC1 development board
  • 320 x 240 SPI Display (ILI9431)
  • FT6206 Touch Screen (I2C)

Software Configuration

  • TouchGFX V4.16.1
  • STM32CubeIDE V1.6.1

2 REPLIES 2
Aksl
Associate III

Hi,

Indeed, vmov is an FPU instruction (see https://developer.arm.com/documentation/ddi0439/b/Floating-Point-Unit/FPU-Functional-Description/FPU-instruction-set?lang=en), and s15 is an FPU register. If you try to access s15, you probably end up dereferencing an invalid memory address, resulting in a bus fault, which is probably what happened to you.

Maybe you should compile with -mfloat-abi=soft and avoid linking to libtouchgfx-float-abi-hard.a...

Hello, 

 

Can you kinda elaborate more on this topic? i am kinda facing exactly the same issue...

 

Thanks in advance!