2021-04-22 03:57 AM
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
Software Configuration
2022-04-07 01:02 AM
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...
2023-09-28 05:08 AM
Hello,
Can you kinda elaborate more on this topic? i am kinda facing exactly the same issue...
Thanks in advance!