由于众所周知的原因,需要将之前由Keil开发的项目转换成RT-Thread Studio项目。RT-Thread Studio除了调试不能实时观察变量变化,寄存器没那么直观外,其他功能基本都有,就是使用习惯的问题。本方法是基于由ST的CubeMX生成的Keil工程:
用RT-Thread Studio新建一个通用项目,按实际情况选择各项内容即可
新建的项目目录如下图所示。箭头所指内容可根据实际需要删除或保留,本示例是删除的,否则会与CubeMX生成的内容冲突。
拷贝CubeMX项目文件至上面建好的项目文件夹,注意CubeMX的工程文件不能放在RT-Thread Studio项目的根目录,否则重新生成之后RT-Thread Studio项目会无法识别。用CubeMX重新生成makefile工程,设置如下图。需要设置Copy only necessary library files,正好可以把需要的文件加载到RT-Thread Studio项目中。
项目目录建好以后按F5刷新一下,然后按照Keil中的包含路径,设置RT-Thread Studio项目的包含路径。
设置生成的可执行文件名称,可以改成如下图所示的项目名称。然后把Debug设置里的名称也改为项目名称,否则调试和下载的时候找不到程序。
如果项目中用到了RT-Thread操作系统,就使用项目默认的链接脚本。这个链接脚本包含了RT-Thread中section的设置。如果没用这个操作系统,也可以使用CubeMX生成的链接脚本。
如果项目中用到了RT-Thread操作系统,并且使用的是CubeMX生成的启动文件,则需要修改下图中的位置,才能成功运行操作系统。
修改完就可以编译了。如果有报错,可以找到对应的文件或者目录,这些文件在Keil项目的时候是没有被编译的,但是RT-Thread Studio默认是把项目目录下的文件全部编译进去的,就有可能找不到头文件或者依赖,右键选择排除构建即可。