openSUSE:ARM microcontroller howto
openSUSE 上如何进行 ARM 微控制器开发
一个 黑客周兴趣项目 和一个 ARM Tech Symposium Europe 2014 演示 发起了 openSUSE on ARM 如何用于开发 ARM 微控制器。本页简要展示了 openSUSE 上提供的一些开发工具。
需要注意的是,目前 openSUSE 本身近可用于 Cortex-A,不支持 Cortex-M 或者 Cortex-R。
GCC
openSUSE 的 gcc 和 gcc48 (4.8.3) armv7l 编译器包可用于构建 ARMv7-M 的内核。
已知问题
- 使用近期的编译器编译老的 Linux 内核或者 U-Boot 版本 (例如 Linux 3.0.x or 2.6.33) 会导致运行时对齐问题。您可以尝试老的 gcc 版本 devel:gcc。或者尝试向前移植,或者为上游版本重写所有下游代码,当然它们也可以工作。
OpenOCD
版本:13.2 最新打包
openocd 包可以用于下载代码到微控制器,以及用于通过 gdb 调试程序运行。
pyOCD
一个 python-pyOCD 包由 创建.
GDB
于对应的 OpenOCD 服务配合, openSUSE 的 gdb 包已知可用于调试 ARMv7-M 代码。
已知问题
- 使用 gdb 7.8 配合 openocd 0.8.0 作为服务,对于 STM32F429-Discovery, 断点无法总是可设。可能是 Thumb 与 ARM 指令集问题?
其他
远程文件编辑
为了可以在 ARM 设备本身完成所有代码过程, sshfs 提供了一种快速的方式,通过 x86_64 的 openSUSE 桌面进行远程编辑源代码文件。当然,NFS 可能会更加高效。