Linux环境下ARM开发工具TrueSTUDIO初体验

TrueSTUDIO是Atollic公司出品的ARM开发工具,号称“The best FREE C/C++ IDE for ARM® development”,从7.0版本开始推出了Linux版,后续还会推出Mac OS X版。截止今日(2017年1月25日)TrueSTUDIO for Linux 最新版本仍然是Alpha1。

http://blog.csdn.net/zoomdy/article/details/54728479
mingdu.zheng at gmail dot com

下载TrueSTUDIO for Linux

官方下载页面:https://atollic.com/resources/download/linux/ ,截止今日(2017年1月25日)还处于Beta状态,因此要点击 Join Beta Program 填写表单,然后下载链接会发送到表单中填写的邮箱中。也可以试试这个链接,不保证有效,http://info.atollic.com/atollic-beta-program-download 。

配置要求

硬件配置要求

  • 2GB内存,推荐4GB
  • 4G硬盘空间

支持的Linux发行版

  • Ubuntu 16.04 LTS 64-bit,包括其它Ubuntu分支,如Xubuntu
  • Fedora 24 64-bit
  • 理论上也支持其它发行版,但最好使用推荐的发行版

我选用的是Xubuntu 16.04 64位版本,因为我使用VirtualBox虚拟机运行,因此选择比较省资源的Xubuntu。

安装TrueSTUDIO

解压下载到压缩包

 $ sudo tar -C /opt -xvf ~/Downloads/Atollic_TrueSTUDIO_for_ARM_linux_x86_64_v7.0.1_20161219-1526-alpha1.tar.gz

执行安装脚本

$ cd /opt/Atollic_TrueSTUDIO_for_ARM_7.0.1 && sudo ./install.sh

运行TrueSTUDIO

$ cd /opt/Atollic_TrueSTUDIO_for_ARM_7.0.1/ide && ./TrueSTUDIO

TrueSTUDIO免费试用版启动后会展示升级到TrueSTUDIO Pro的广告,点击Close Window关闭广告窗口,该窗口会通过网络获取显示内容,有时候会比较慢。关掉该窗口后才能操作主窗口的其它部分。

使用STM32CubeMX生成TrueSTUDIO工程

打开STM32CubeMX,点击 New Project ,点击 Board Selector 选项卡, 选择 NUCLEO-F042K6 开发板,点击 OK 创建工程。

通过菜单 Project>>Settings… 打开 Project Settings 对话框,填入 Project Name 工程名称,选择 Project Location 选择工程保存目录,Toolchain/IDE 选择 TrueSTUDIO ,点击 OK 完成工程设置 。

通过菜单 Project>>Generate Code 生成代码和工程文件。

完成后会弹出对话框,询问要不要打开工程,目前这个版本(7.0.1alpha1)点击 Open Project 会用浏览器打开TrueSTUDIO的工程文件,而不是用TrueSTUDIO打开,所以这里点击 Close 关闭对话框即可,后面用TrueSTUDIO的导入功能导入工程即可。

TrueSTUDIO导入工程

回到TrueSTUDIO,选择菜单 File>>Import… ,打开 Import 对话框,选择 General 分类下的 Existing Project into Workspace ,点击 Next

Select root directory 选择STM32CubeMX导出工程的目录,点击 Finish 完成工程导入。

关掉TrueSTUDIO的Infomation Center子窗口,就可以看到刚导入的工程了。打开Src/main.c文件后的TrueSTUDIO如下图所示。

TrueSTUDIO编译工程

由于使用STM32CubeMX生成的工程文件,因此编译参数都已经正确配置,所以选择菜单 Project>>Build Project 立即开始编译工程。

编译的过程会通过Console视图输出编译器的输出,可以看到调用的编译器、编译参数等。从编译输出可以看到TrueSTUDIO使用的编译器是arm-atollic-eabi-gcc,Atollic自己编译的GCC,随TrueSTUDIO一起安装,在TrueSTUDIO安装目录的ARMTools子目录下。

TrueSTUDIO调试工程

STM32CubeMX生成的工程已经添加了一个默认调试配置,使用ST-Link作为仿真器,但是TrueSTUDIO当前版本(7.0.1alpha1)并不支持ST-Link,还好TrueSTUDIO支持OpenOCD,可以选用OpenOCD作为ST-Link的GDB Server。

安装OpenOCD

首先需要安装OpenOCD,Ubuntu下使用下面的命令安装OpenOCD。

sudo apt install openocd

配置TrueSTUDIO中的OpenOCD路径

选择TrueSTUDIO菜单 Window>>Preferences 打开首选项对话框,选择 Run/Debug>>Embedded C/C++ Application>>Debug Hardware>>OpenOCD ,在 Server 输入框内输入 /usr/bin/openocd ,在 Working directory 内输入当前用户的home路径。点击 OK 完成配置。

解决LIBUSB_ERROR_ACCESS问题

默认情况下,普通用户不能直接访问USB设备,为了让普通用户可以访问USB设备(ST-Link),需要创建文件/etc/udev/rules.d/98-stlink.rules,文件内容如下,注意得用sudo创建该文件,重启系统让该文件生效。

SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3744", MODE="666"

连接NUCLEO-F042K6

使用数据线将NUCLEO-F042K6连接到电脑。如果和我一样将开发环境建在VirtualBox虚拟机中,那么还需要将USB设备映射到虚拟机内,选择VirtualBox虚拟机菜单 设备>>分配USB设备>>STMicroelectronics STM32 STLink[0100] 将STLink映射到虚拟机内。

修改TrueSTUDIO调试配置

选择TrueSTUDIO菜单 Run>>Debug configurations… ,打开调试配置对话框,可以看到 Embedded C/C++ Application>>test.elf 调试配置,这是STM32CubeMX自动生成的,切换到 Debugger 选项卡,Debug probe 选择 OpenOCDGDB server arguments: 输入框内输入 -f board/st_nucleo_f0.cfg 。配置完成后,点击 Debug 就可以开始调试了。

OpenOCD输出到 Console 视图的信息,看到这些,说明环境配置成功了。

调试TrueSTUDIO工程

调试连接创建后,点击调试工具栏的按钮开始调试,调试工具栏见下图。按钮从左到右分别是:复位目标机(Restart)、连续执行(Resume)、暂停(Suspend)、停止调试(Terminate)、停止当前会话重新开启一个新会话(Terminate and relaunch)、进入单步(Step Into)、单步(Step Over)、返回当前函数(Step Return)、汇编单步(Instruction Stepping Mode)。和其它IDE差不多,就不多说了。

SFRs视图

SFRs视图提供了外设寄存器的查看和修改,包括核心外设和MCU外设,这对调试外设驱动是非常有帮助的。

总结

除了不支持ST-Link外,Linux版的TrueSTUDIO总体上与Windows版没有太大差异。还好TrueSTUDIO支持OpenOCD,弥补了不支持ST-Link的缺陷,如果没法调试那这个开发工具就显得很鸡肋了。后续的版本或许会完善ST-Link的支持。

Linux环境下ARM开发工具TrueSTUDIO初体验相关推荐

  1. 10 款你不知道的 Linux 环境下的替代工具

    作者:JackTian 来源:公众号「杰哥的IT之旅」 ID:Jake_Internet 转载请联系授权(微信ID:Hc220088) 原文地址:10 款你不知道的 Linux 环境下的替代工具! 大 ...

  2. 【第83期】10 款你不知道的 Linux 环境下的替代工具!

    大家好,我是华章妹. 在 Linux 操作系统下,我们经常使用 cat 命令去连接多个文件并打印到标准输出,合成几个文件为一个目标文件,追加几个文件到目标文件中. 最近我在 GitHub 上发现了一个 ...

  3. Linux环境下Arm端源码编译OpenCV+ncnn目标检测模型实例运行调试完整实践记录

    今天需要在嵌入式设备端运行C的程序,里面有依赖OpenCV的部分,这就需要编译安装好OpenCV才行,这个对于我来说还是比较陌生的,我很少用C,所以这里面也没少折腾,一路上遇上了很多的报错,这里我将完 ...

  4. 【Linux】三、Linux 环境基础及开发工具使用(上篇)|开发工具|编辑器-vim使用|sudo提升权限问题|编译器 - gcc/g++使用|项目自动化构建工构建工具-make/Makefile

    目录 一.开发工具 二.Linux编辑器 - vim使用 2.1 vim 的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2. ...

  5. Linux环境下Android开发环境的搭建

    本文主要介绍在Ubuntu下Android开发环境的搭建,所使用的IDE为Eclipse(Android Studio同理,且可省去配置SDK以及安装adt插件的步骤). 1.安装JDK (1)JDK ...

  6. 【开发工具】Windows环境下 IDEA 开发工具安装配置(无错完整)

    目录 一.开发工具下载: 二.IDE统一管理工具: 三.IDEA配置: 设置主题: 设置代码颜色: 设置编译字符编码(全部设置为UTF-8): 开启模糊匹配: 设置背景壁纸: 自动导包移包: 方法分割 ...

  7. Linux环境下2410开发板串口读写关键代码

    今天偶然整理原来的项目开发文档,找到了曾经在2410开发板上做的串口读写程序的代码. 现在贴出来供大家参考. #include <qtopia/qpeapplication.h> /*** ...

  8. linux环境下java开发_Linux Ubuntu系统下Java开发环境搭建

    软件151田杰中 2. 在合适的路径下创建文件夹用来存储Java JDK,本例选择在/opt目录下新建JVM子文件夹.操作如下 打开Terminal(后文成为T1),输入: cd /opt       ...

  9. WSL+VSCODE体验UBUNTU环境下的开发

    首先安装 WSL,我这里选择的是 ubuntu18.04 这个应用. 切换 WSL 的默认用户为 root 用户 切换成 root 用户主要是避免后续开发中遇到权限问题比较麻烦,直接默认 root 解 ...

最新文章

  1. 特征提取,转换和选择
  2. Redis以及Redis的php扩展安装无错版
  3. LNK1136报错解决方法
  4. java gridbag_java – 调整Gridbag布局
  5. 每日英语:Why is Ye Shiwen’s Swim “Disturbing”?
  6. 聊一聊 cookie
  7. ACM训练总结(大二)
  8. 用css3和ico图片实现火狐社区的分享图标
  9. 大数据之-Hadoop3.x_了解一下hive和hbase的区别---大数据之hadoop3.x工作笔记0084
  10. html怎么加漂浮物,全面开展水面漂浮物清理专项行动
  11. 【Computer Organization笔记26】总线 bus :多个部件之间进行数据传送的共享通道,总线设计 - 总线仲裁、数据传输模式、提高总线性能
  12. rundeck 内存溢出
  13. word创建Pdf时嵌入字体 Creating a PDF with Embedded Fonts for MS Word
  14. iOS App常用的宏
  15. Trajan/强连通(石油大学组队赛 B: Thrall’s Dream)
  16. js将两张图片合成一张图片
  17. 攻防世界(练习小题)
  18. 基于android的二维码会议签到app管理系统
  19. 服务器修复oxc0000098,Win10系统无法开机0xc0000098错误怎么办_win10无法开机提示0xc0000098错误代码如何修复...
  20. 大数据统计分析毕业设计_大数据时代的成绩管理与数据分析 毕业设计论文

热门文章

  1. 亚马逊Dash永久下架:智能购物按钮究竟犯了什么错?
  2. 雷达传统的干扰方式(二次更新)
  3. 2022-VS2015-ACE+TAO(7.0.5)+CIAO+OpenDDS 3.16 编译
  4. android根目录无权访问,关于android:已注册为Git根目录,但未在其中找到任何Git存储库...
  5. 计算机概论在线阅读,计算机科学概论(Python版)
  6. 做前端的:你有没有觉得很吃力?
  7. 音视频怎样入门?带你入门基础+学习思路
  8. python自然语言处理学习笔记一
  9. PHP + QQ邮箱发送邮箱验证码
  10. caj格式如何转成pdf格式