FreeJoy Custom Firmware Works on Windows but Fails in Linux Configurator #270
Replies: 1 comment
|
I discovered that the FreeJoy firmware compiled with arm-none-eabi-gcc on Linux was causing problems, while the same project worked correctly when compiled with the Keil ARM compiler. After several tests, I concluded that the issue is related to compiler compatibility and version differences. The original FreeJoy project appears to have been developed and optimized for the Keil ARM Compiler (ARMCC), especially version 5.x, which handles some optimizations, memory alignment, and compiler-specific extensions differently from modern GCC toolchains. When I used the compiler version included in Keil, the firmware behaved correctly again. The GNU ARM Embedded Toolchain (arm-none-eabi-gcc) may generate different code depending on the GCC version, optimization flags, ABI compatibility, and handling of volatile variables or packed structures. Some embedded projects, especially older STM32 projects, rely on behavior that is compiler-specific. Because of this, compiling FreeJoy with a newer GCC version on Linux can introduce unexpected runtime issues, while compiling with the original Keil ARM compiler version maintains compatibility with the project's original assumptions and generated binary behavior. |
Uh oh!
There was an error while loading. Please reload this page.
Discussion topic: FreeJoy custom compiled firmware works on Windows but not properly on Linux
I am experiencing an issue with my custom compiled version of FreeJoy.
The firmware works correctly on Windows:
However, on Linux:
lsusb,Additional observations:
.hexfirmware works correctly on Linux,This suggests the issue may be related to:
.binand.hexfirmware outputs.Linux appears to be more strict regarding USB/HID descriptor validation, while Windows still accepts the device.
I also noticed encoder-related behavior differences during testing, which may indicate timing or firmware structure inconsistencies between builds.
Has anyone experienced similar compatibility problems between Windows and Linux with custom FreeJoy builds?
All reactions