openSUSE:ARM microcontroller howto
How to develop for ARM microcontrollers on openSUSE
A Hackweek Interstellar project and a demo at ARM Tech Symposium Europe 2014 have demonstrated how openSUSE on ARM can be used to develop for ARM based microcontrollers. This page gives a brief overview of some development tools available in openSUSE.
Note that at this time openSUSE itself is only available for Cortex-A, not Cortex-M or Cortex-R.
openSUSE's gcc and gcc48 (4.8.3) compiler packages on armv7l are known to produce working kernel code for ARMv7-M.
- Compiling old Linux kernel or U-Boot versions (e.g., Linux 3.0.x or 2.6.33) with recent compilers may expose alignment bugs at runtime. You can then try older gcc versions from devel:gcc. Or try to forward-port or rewrite any downstream code for recent upstream versions that are more likely to work, of course.
The openocd package can be used both for flashing code onto the microcontroller and for debugging its execution together with gdb.
A python-pyOCD package is being created.
Together with a suitable server, openSUSE's gdb package is known to be able to debug ARMv7-M code.
- Using gdb 7.8 with openocd 0.8.0 as server, breakpoints could not always be set for the STM32F429-Discovery. Possibly some Thumb vs. ARM instruction set issue?
Remote file editing
As alternative to doing all coding on an ARM device itself, sshfs is a quickly set up way to remotely edit your source code files from your openSUSE desktop on x86_64 instead. Of course, NFS would be more performant.