使用 ARM-GCC + OpenOCD 开发 stm32 程序
对于习惯了现代编译环境的人来说,可能 keil 的用户界面体验和新鲜感比较差。这篇文章介绍了如何利用ARM-GCC 对 arm 嵌入式设备开发和利用 OpenOCD 进行下载和调试。
arm-none-eabi-gcc
ARM architecture,no vendor,not target an operating system,complies with the ARM EABI
Arm官方用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux应用),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。
-
从官网 下载 arm-none-eabi-gcc,不同的平台可以选择不同的安装包,linux 也可以通过命令安装
sudo apt-get install arm-none-eabi-gcc
-
安装
-
配置环境变量
-
测试
OpenOCD
OpenOCD是一个运行于PC上的开源调试软件,它可以控制包括Wiggler之内的很多JTAG硬件;我们可以将它理解为一种GDB服务程序。最初是由Dominic Rath同学还在大学期间发起的(2005年)项目。OpenOCD旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。OpenOCD的功能是在仿真器的辅助下完成的,仿真器是能够提供调试目标的电信号的小型硬件单元。仿真器是必须的,因为调试主机(运行OpenOCD的主机)通常不具备这种电信号的直接解析功能。
-
下载
OpenOCD 只能通过源码编译安装,可以下载其他开发者编译好的版本。
windows可以在这里下载
-
安装
-
设置环境变量
-
测试
Zadig
Zadig is a Windows application that installs generic USB drivers, such as WinUSB, libusb-win32/libusb0.sys or libusbK, to help you access USB devices.