本帖最后由 传说中的**灰哥 于 2019-5-30 22:56 编辑
作为一个重度Linux系统使用者,平时开发相关的工作都是在Ubuntu下进行,最近有个项目需要用到Atmel 32位的Cortex-M7 MCU,所以花时间研究下如何在Ubuntu下搭建起ARM MCU的开发调试环境! 如果你也是想使用 Code::Blocks 进行ARM MCU相关的开发工作,可以参照这篇博客所列出的步骤指引搭建起开发调试环境。
1、安装Code::Blocks
Code::Blocks 是作者非常喜欢和推荐的一款多平台的软件开发IDE,尤其对C/C++的支持做的特别好,整个软件对电脑资源的消耗很少,轻便快捷,程序员最看中的代码补齐和搜索功能丝毫不弱于Source Insight和vs code。
作者使用的Code::Blocks 版本是17.12,自己去官网下载源码手动编译安装的,动手能力强的可以尝试手动编译下,或者省事的点就在命令终端输入 sudo apt-get install codeblocks. (Ubuntu默认支持的版本是16.x的旧版本)
如果需要更新版本的,可以尝试:
sudo add-apt-repository ppa:damien-moore/codeblocks-stable
sudo apt update
sudo apt install codeblocks codeblocks-contrib
2、下载arm-none-eabi-gcc编译器
直接去ARM官网就可以下载,记得下载for Linux的版本。
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
演示时使用的是2018-q4版本:Version 8-2018-q4-major Linux 64-bit
将下载后的编译器工具包解压到用户目录下,比如作者将工具解压到 /home/kevin/opt 目录
3、安装OpenOCD工具
OpenOCD(Open On-Chip Debugger) 开源片上调试器,是一款开源软件,最初是由Dominic Rath同学还在大学期间发起的(2005年)项目。OpenOCD 旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。
OpenOCD 的功能是在仿真器的辅助下完成的,仿真器是能够提供调试目标的电信号的小型硬件单元。仿真器是必须的,因为调试主机(运行OpenOCD 的主机)通常不具备这种电信号的直接解析功能。在Linux主机环境下,我们可以用GDB + OpenOCD 就可以进行代码的下载和调试。
说道这里得致敬下10几年前国内大牛做的一个非常好用的调试器叫 H-JTAG, 可惜的是后来停止更新。在当时那个ARM调试工具非常稀缺的年代,H-JTAG的出现还是帮助到了很多早期ARM开发人员。
4、在Code::Blocks创建一个新的Debugger配置
打开Code::Blocks,选择Settings -> Debugger., 然后选择Create Config, 新创建一个名叫配置OpenOCD的配置,点击OK保存新的配置。
接着对新创建的Debugger进行配置,需要指定GDB工具路径:
5、在Code::Blocks配置Compiler 打开Code::Blocks,选择Settings -> Compiler., 在Selected Compiler下拉框里面选择GNU GCC Compiler for ARM, 我们需要配置下arm-none-eabi-gcc编译工具路径等内容,Debugger选择新创建的OpenOCD,最后点击OK保存配置。
另外还可以配置系统编译器头文件查找路径:
6、start.atmel.com下载官方例程 Atmel官网例程在线配置网站start.atmel.com,可以在线配置所需要的MCU外设,外设驱动参数等信息,用起来还是非常方便,关键配置的工程最后下载支持多种集成开发环境,比如它官方的Atmel Studio 7,通用的IAR/Keil,还有Linux用户可以用的GCC Makefile。 由于Code::Blocks直接支持导入用户Makefile文件进行编译(敲下小黑板划重点-这点很重要),这样很多开源项目可以直接通过此类的方法进行配置导入Code::Blocks中进行编译和调试仿真。源码具体的下载过程就请参考后面提供的视频链接。 7、在Code::Blocks新建工程并导入atmel官方例程
操作教程视频: 优酷视频 (普通清晰度) 腾讯视频 (1080P)
|