CLion
CLion相关笔记
clion各种开发环境配置
51开发
安装插件
通过https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py 下载get-platformio.py
文件后使用python运行。随后在设置->语言和框架
中设置platformiod的路径。
windows和linux稍有不同
Windows在C:/Users/UserName/.platformio/penv/Scripts/platformio
Linux在~/.platformio/penv/bin/platformio
官网链接:https://docs.platformio.org/en/latest/core/installation/methods/index.html
配置Shell命令
- Windows在系统环境变量Path附加 C:\Users\UserName.platformio\penv\Scripts
- Linux可通过在~/.profile中添加
1
export PATH=$PATH:$HOME/.local/bin
然后
1
2
3
ln -s ~/.platformio/penv/bin/platformio ~/.local/bin/platformio
ln -s ~/.platformio/penv/bin/pio ~/.local/bin/pio
ln -s ~/.platformio/penv/bin/piodebuggdb ~/.local/bin/piodebuggdb
或着直接
1
2
3
4
mkdir -p /usr/local/bin
ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio
ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
编写程序
- 选择芯片
以STC89C52
为例
待环境构建完成后(第一次需下载文件有点慢)
在CMakeListsPrivate.txt文件中
windows在include_directories后添加
1
2
include_directories("${ENV_HOME_PATH}/.platformio/packages/toolchain-sdcc/include")
include_directories("${ENV_HOME_PATH}/.platformio/packages/toolchain-sdcc/non-free/include")
linux在include_directories后添加
1
2
include_directories("$ENV{HOME}/.platformio/packages/toolchain-sdcc/share/sdcc/include")
include_directories("$ENV{HOME}/.platformio/packages/toolchain-sdcc/share/sdcc/non-free/include")
跳转到8052.h
头文件中,将#include <8051.h>
改为#include "8051.h"
并添加#include "lint.h"
跳转到8051.h
头文件中,在开头添加上#include "lint.h"
然后可正常编写程序。
注意,位定义和中断与keil不同!
烧录程序
platformio原生的烧录很慢,改为使用stcgal烧录。
首先,安装stcgal
1
pip install stcgal
然后在platformio.ini添加
1
2
3
4
5
6
upload_flags =
-P
stc89a
-p
$UPLOAD_PORT
upload_command = stcgal $UPLOAD_FLAGS $SOURCE
即可使用stcgal烧录程序。
写在最后
1.6版本的stcgal因为stc89c52芯片的固件原因有部分芯片会烧录失败,在 https://github.com/nrife/stcgal.git 下载源码后
- Windows
1
python ./setup.py install
- Linux
1
sudo ./setup.py install
安装stcgal,同时将stc89改为stc89a
1.8版本的stcgal已添加对不同固件stc8952的支持,可以直接pip安装。
附录
1.8支持的芯片类型如下
stc89 | stc89a | stc12a | stc12b | stc12 | stc15a | stc15 | stc8 | stc8d | stc8g | usb15 |
ROS1开发
启动CLion
首先在命令行激活ros环境
1
2
catkin_make
source ./devel/setup.zsh
在同一终端下启动clion
1
clion .
CLion中打开ROS项目
点击文件->打开
并在ROS工作区的src目录中选择CMakeLists.txt,然后选择作为项目打开。
设置build路径
默认情况下,CLion将生成输出放在自动创建的cmake-build-debug
或cmake-build-release
目录中。因此需要将CLion构建路径设置为catkin工作区目录。
在文件->设置->构建、执行、部署->CMake
中将CMake options
修改如下,PATH
后面是ROS的devel目录
1
-DCATKIN_DEVEL_PREFIX:PATH=<WORKSPACE_DIRECTORY>/devel
构建目录修改如下,路径是ROS的build目录
1
<WORKSPACE_DIRECTORY>/build
###
ROS2开发
启动CLion
1
colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja
此时在build目录下会生成文件compile_commands.json
,然后
1
2
source install/setup.zsh
clion .
在文件->打开
选择工作空间下build
文件夹下compile_commands.json
。作为项目打开
然后在工具->编译数据库->更改项目根
选择工作空间作为根目录
编译工程
在文件->设置->工具->外部工具
点击+
号,新增一个工具。具体填写内容就是之前编译ros2工作空间的命令。程序填写colcon
,实参填写build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja
,工作目录选择ros2的工作空间。
保存后在工具->外部工具
选择colcon build
,此时可以编译整个工作空间。
编译调试功能包
1、创建命令脚本
在功能包下新建一个文件命名为cmake_commands.bat
,填写如下内容
1
2
3
/usr/bin/cmake /home/duxinyi/Code/ROS/ROS2/HelloWorld/src/cpp_pubsub -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja -DCMAKE_INSTALL_PREFIX=/home/duxinyi/Code/ROS/ROS2/HelloWorld/install/cpp_pubsub
/usr/bin/cmake --build /home/duxinyi/Code/ROS/ROS2/HelloWorld/build/cpp_pubsub -- -j8 -l8
/usr/bin/cmake --install /home/duxinyi/Code/ROS/ROS2/HelloWorld/build/cpp_pubsub
第一行为构建命令,第一个路径为功能包路径,第二个路径为功能包的安装目录;第二行为编译命令,路径为功能包的构建目录;第三行为安装命令,路径为功能包的构建目录。
2、创建自定义构建目标
在文件->设置->构建、执行、部署->自定义构建目标
点击+
号,新增一个目标。在构建
中添加外部工具,选择功能包下的cmake_commands.bat
,并将工作目录选择为功能包的构建目录
3、配置run/debug功能
在添加配置->编辑配置
点击+
号,选择自定义构建应用程序,在目标
选择上一步生成的构建目标,在可执行文件
选择功能包编译出的可执行文件,删除执行前
中的构建。
4、断点调试
在功能包的CMakeLists.txt中添加SET(CMAKE_BUILD_TYPE "Debug")