Board logo

标题: Linux环境下ARM开发工具TrueSTUDIO初体验 [打印本页]

作者: look_w    时间: 2017-10-24 17:07     标题: Linux环境下ARM开发工具TrueSTUDIO初体验

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。

配置要求硬件配置要求支持的Linux发行版我选用的是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 && ./TrueSTUDIOTrueSTUDIO免费试用版启动后会展示升级到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的支持。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0