引言我们做单片机开发,用得比较多的stm32f1xx,stm32f4xx等等,基本上都是用keil(或者说称为mdk)这个集成开发环境IDE比较多,插上调试器,连接板子,编译,下载,调试,方便得很。大家有没有想过一个问题,如果没有IDE了,我们还能做单片机开发吗???大家难道就不想知道IDE到底干了啥吗??? IDE运行过程一个现代IDE,大致可以分为如下几个功能:
我们可以发现,IDE所做的事,都是由已有软件来完成,其实就是组织这些已有的软件,让他们协同工作起来,方便了我们开发者使用嘛。所以嘛,IDE叫做集成开发环境。看完后,是不是觉得自己也能做一个IDE啦,哈哈哈~,我最近就在做这个事情,如果有志同道合的兴趣,可以交流讨论喔 qq:2488890051 这里看一下市面上非常常见的基于eclipse改造的嵌入式IDE都有哪些基本功能: eclipse是一个支持插件的通用型IDE,啥程序都能开发,java,c/c++,网站开发,html等,无所不能。当然官方就为其开发了一个嵌入式开发的插件,来实现嵌入式开发功能,插件名字:Eclipse Embedded C/C++ Development Tools,Eclipse Embedded CDT | Eclipse Embedded CDT (C/C++ Development Tools)™ 然后,其中包含如下几个exe,就实现了嵌入式开发功能了。 很明显,需要make进行makefile执行(其实windows系统也有个叫mingw32-make.exe,我试了也行的),arm的gcc编译器,OpenOCD用于连接板子的硬件调试器,QEMU实现板子的纯软件模拟仿真功能。也就是说,自己搞嵌入式IDE(不是基于eclipse),也至少支持这几个exe即可,事实上我就是这样干的。 注意:OpenOCD只是通用的连接硬件调试器的工具而已,其实针对每一款调试器人家官方也都给出了对应的连接这个调试器的工具,比如st的stlink,就有stlink这个开源库(驱动单片机硬件调试器的一些开源库总结(包含stlink调试器)_标biao的博客-CSDN博客_stlink 开源),而且我在rtthread studio的使用中,发现它还有SDK包文件夹有
而关于,jlink调试器,也有自己的: 大家可以去研究研究。 这里重点介绍 OpenOCD 是什么 OpenOCD 是什么从上面IDE的步骤中可以看出,OpenOCD 就是一个连通gdb和硬件调试器的工具,linux,macos,windows都可用。OpenOCD 支持大量的硬件调试器,常见的比如stm32常用的stlink,jlink调试器等。OpenOCD是一个运行于PC上的开源调试软件,最初是由Dominic Rath同学还在大学期间发起的(2005年)项目。OpenOCD旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。 这里演示如何在windows系统上利用 OpenOCD 实现正点原子stm32f407单片机开发板的调试。 我们可以下载 OpenOCD 的源代码,自己编译成exe。还可以下载编译好的exe,我们选这个。 1. 下载OpenOCDhttps:///arm-eabi/openocd/ 下载最新版即可。解压即可,不用安装。然后把这个bin文件夹路径添加到系统环境变量即可。 文件夹内容介绍: bin文件夹:openOCD.exe等可执行文件 drivers文件夹:常见的硬件调试器的驱动,这里要注意,硬件调试器第一步是需要安装驱动的,否则设备管理器识别不到的,那当然OpenOCD就压根没法驱动它了。硬件调试器插上电脑usb口,如果驱动安装的了,设备管理器会显示设备的,否则会有黄色感叹号。我这个就是驱动之前已经按照过了的。
share文件夹:OpenOCD连接硬件调试器的一些脚本协议文件,不同调试器,不同板子,选择对应的即可。 2. 运行OpenOCD由于是gdb给OpenOCD发调试命令的,先确保自己安装了 arm-none-eabi-gcc 编译器工具链(而且把bin文件夹路径添加到系统环境变量),里面会有arm-none-eabi-gdb.exe。
3. 调试板子程序OpenOCD中,gdb常见的输入命令:
关于如何通过OpenOCD把程序下载到板子上,还没有研究,但是跟调试时候可能不一样了,猜测是不需要gdb了,直接命令行给OpenOCD发下载目标文件的命令即可。 参考文章: 使用GDB(二):调试程序常用命令_七妹要奈斯的博客-CSDN博客_gdb常用调试命令 gdb调试常用命令_Zbb的笔记的博客-CSDN博客_gdb调试命令大全 利用openocd 在windows环境下GDB调试(调试器 stlinkv2)STM32_春夜喜小雨的博客-CSDN博客_openocd windows |
|