在官网教程中有几个 NXP RT1062 的 demo 工程,用推荐的 MCUXpresso IDE 试了下还是比较容易上手的,但美中不足的是编辑功能不够强大。
IDE 提供了很多嵌入式开发的必备功能,如编译工具链、代码编辑器、调试器、固件下载工具,但在代码编辑器上较为薄弱,主要体现在无法自动补全,即输入函数开始的几个字符,自动补全函数名(IDE 可以实现函数跳转,但自动补全功能需要输入.
号或::
号触发,对嵌入式 c 编程用处不大)。
平时编码大多采用 CLion,所以考虑换用 CLion 作为代码编辑器(vscode 也可以,更好的代码补全功能需要 clangd 支持),其他功能嵌入式特有的功能(编译、调试)使用官方 IDE。
C/C++ 工程目前有两种流行的构建方式:make 或者 cmake,在嵌入式编程中以 make 为主。换用编辑器时,必须存在 makefile 才能找到头文件路径、源码路径、链接库路径,进而做代码分析以便支持代码跳转与补全。
打开示例工程,点击构建项目,IDE 会生成 makefile,如下图所示:
编译数据库是一个 json 文件,详细描述了工程的编译步骤以及源码路径,在大型工程中可以实现精准的代码补全与跳转。make 工程与 cmake 工程均可以生成编译数据库,并在 CLion 或者 vscode 应用编译数据库。
首先安装 compiledb 工具
pip3 install compiledb
在 makefile 所在的目录下运行命令,就会在当前目录下生成 compile_commands.json
compiledb -n make
编译数据库的文件内容示意如下:
因为 makefile 默认用
arm-none-eabi-gcc
工具链,在 CLion 中暂时未找到支持方法,故可通过批量替换为gcc
的方式避免加载工程出错。
因为该 makefile 以项目根目录为基准,所以可以直接拷贝 compile_commands.json
到项目根目录,然后用 CLion 打开该 json 文件,会提示 open as project
,随后就能索引所有符号,并带来比较完善的代码补全、跳转功能。
CLion 确实已经支持了 makefile 工程,但不支持 MCUXpresso IDE 生成的 makfile。
观察 MCUXpresso IDE 的构建过程,发现是 makefile 文件在 工程根目录/Debug
目录下,而且该目录仅有构建所需的脚本,没有源码。使用 CLion(2021.2 版本)打开项目目录后,打开 makefile 文件,选择 load makefile
,load 成功但是无法自动跳转,自动补全功能也不全。复制全量的编译脚本到源码目录工作量太大,故考虑使用编译数据库的方式。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。