编辑
2024-10-05
电子
0

目录

从CCS中导入C2000工程
为什么要先使用CCS导入工程
如何导入工程
在CCS中修改工程
将工程导入VSCODE
让VSCODE正常跳转和补全
让VSCODE正常编译
将gmake添加到环境变量中
创建编译脚本
创建清理脚本
添加工作区

在进行C2000开发时,能选择的IDE很少,只有TI自家的Code Composer Studio(CCS),是基于Eclipse魔改的。新人在一开始上手使用CCS的时候可能会一头雾水,而且CCS的代码补全功能非常鸡肋,所以在这里介绍一种在宇宙最强编辑器VSCODE上编辑并编译C2000工程的方法。

从CCS中导入C2000工程

在将工程导入VSCODE之前,我们需要先要将工程导入CCS中。

为什么要先使用CCS导入工程

CCS编译工程靠的是makefile加gmake的方式。gmake是TI自己弄的编译器。在makefile文件中包括了编译C2000工程所需要的所有信息,包括编译器路径、编译器参数、编译顺序等等。每个子文件夹还有自己的subdir_rules.mk和subdir_vars.mk文件,用来告诉编译器如何编译子文件夹中的文件。在makefile和各种.mk文件中,编译器所需要知道的文件路径大部分都是以相对路径表示的,但是像项目路径,编译器路径,C2000专用的头文件路径等,都是以绝对路径表示的。在将例程或者别人的工程导入CCS之前,这些绝对路径都是错误的,所以我们需要先使用CCS导入工程,CCS会自动修改这些路径,使得工程可以在CCS中正常编译。
第二个原因则是像C2000ware中的例程中是不包含driverlib驱动库文件的,使用CCS导入后,CCS会将这些文件添加到工程中,并生成对应的makefile文件。

如何导入工程

  1. 打开CCS,点击菜单栏中的Project -> Import CCS Project,选择要导入的工程文件夹。
  2. 选择文件夹
    这里导入280049的空工程 注意事项:
    在导入的时候记得勾上下面两个选项。
  3. 选择C语言工程
    我们开发的时候一般使用C语言,所以选择C语言工程。勾选第二个工程选项。然后点击finish完成导入。

    完成导入后,CCS中就有我们的工程了,可以对比一下,CCS导入后比原文件夹多了不少东西。

在CCS中修改工程

在导入工程后,我们需要在CCS中修改工程,比如重命名工程,新增文件夹,设置代码烧录位置等等。
但是要记住,以上的操作都要在CCS中进行,因为CCS在每次编译时都会会自动修改makefile文件,使得工程可以在CCS中正常编译。如果你在文件资源管理器里面直接修改文件名或文件夹名,makefile文件中的路径是不会自动更新的,编译器找不到文件,就会报错。
在修改完工程后,可以点击菜单栏上面的小锤子编译一下,看看有没有报错。

将工程导入VSCODE

在导入工程的文件夹的空白处右键,选择在VSCODE中打开。

在VSCODE中的操作分为两步,一个是能让VSCODE正常跳转和补全,另一个是能在VSCODE的终端里面正常编译。

让VSCODE正常跳转和补全

在工程根目录下新建.vscode文件夹,在.vscode文件夹下新建c_cpp_properties.json文件,文件内容如下:

{ "configurations": [ { "name": "TI C2000", "includePath": [ "${workspaceFolder}/**", "${workspaceFolder}/CPU1_FLASH/syscfg", "${workspaceFolder}/device/", "${workspaceFolder}/device/driverlib", "${workspaceFolder}/device/driverlib/inc", "C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-c2000_22.6.1A23259/include" ], "defines": [ "UNICODE", "_UNICODE", "__TMS320C28XX__", "__interrupt=" // 定义为空,消除红色波浪线 ], "cStandard": "c11", "compilerPath": "C:/ti/ccstheia150/ccs/tools/compiler/ti-cgt-c2000_22.6.1A23259/bin/cl2000.exe", "intelliSenseMode": "clang-x64" } ], "version": 4 }

第6行到第21行是我们要根据工程修改的地方,其余的都是文件框架,直接复制就行。
"includePath"中填写的是编译器搜索头文件的路径。${workspaceFolder}表示工程根目录,然后依次添加你自己新添加的包括.h文件的文件夹路径(我这里没有新建.h文件以及文件夹,所以只有第6行)。
第7行的CPU1_FLASH/syscfg是为了包含syscfg生成的board.h文件。如果你设置的是烧录到RAM,那路径应该改成CPU1_RAM/syscfg。双核CPU同理。 下面的三行是包括的driverlib文件夹的路径。
includePath的最后一行的路径是C2000的C标准函数库头文件路径。这个要到CCS的安装目录里面找。或者你可以在工程文件里面包含一下标准库的头文件的路径,然后跳转进去,CCS的标题就会变成该头文件的路径,就像下面这样:

"defines"中填写的是编译器预定义的宏。这里定义了三个宏,第一个是UNICODE,第二个是_UNICODE,第三个是__TMS320C28XX__。这三个宏在driverlib中会使用到。
"compilerPath"是编译器的路径,添加这个是为了防止VSCODE无法跳转某些标准库的头文件,实际上并没有什么用。这个要根据你的安装路径来修改。
"intelliSenseMode"是智能提示模式,这里选择clang-x64。
将c_cpp_properties.json文件修改好之后,应该就能正常跳转和补全了,而且不会有红色波浪线报错。

让VSCODE正常编译

将gmake添加到环境变量中

要在VSCODE中编译C2000的工程,本质上还是调用CCS的编译器,也就是gmake。所以我们首先要把gmake添加到环境变量中,然后才在VSCODE中调用gmake。
gmake的安装路径也在CCS的安装目录下,路径为:
然后添加到环境变量中:
然后重启电脑,在VSCODE中打开终端,输入gmake -v,如果出现gmake的版本信息,说明添加成功。

创建编译脚本

接下来就是创建一个调用gmake的编译脚本,在工程根目录新建一个build.ps1文件,文件内容如下:

cd ./CPU1_FLASH gmake -k -j32 all -O cd ..

这个脚本是在powershell中执行上述三条代码。其中cd ./CPU1_FLASH是进入CPU1_FLASH文件夹,因为makefile文件在这个目录里面,如果你设置的是烧录到RAM,就改成cd ./CPU1_RAM,双核的我暂时还没试过。gmake -k -j32 all -O是调用gmake编译工程。cd ..是返回上一级目录。
添加完文件后在VSCODE中打开终端,输入.\build.ps1,如果出现编译信息,说明脚本创建成功。
如果出现报错,查看报错信息,是否存在语法错误;如果报错是找不到变量或函数,而且变量或函数正好在你新添加的文件夹里面,CCS编译设置中也有包含这个文件夹,可以在CCS中先编译一遍,把旧的makefile文件路径更新一下,就可以在VSCODE中编译了。

创建清理脚本

和上面的编译脚本类似,在工程根目录新建一个clean.ps1文件,文件内容如下:

cd ./CPU1_FLASH gmake clean cd ..

添加工作区

在VSCODE中打开你的工程,然后在菜单栏上点击文件->将工作区另存为,将工作区保存到你的工程根目录。 以后再要打开工程,直接双击打开这个.workspace后缀的工作区文件即可。

原文链接:https://zxcli.github.io/2024/10/03/如何在VSCODE上编辑并编译C2000工程/

本文由原作者本人授权于本站联合发布

本文作者:自行车等等我

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 Polari_S_tation 版权所有 许可协议。转载请注明出处!