目前在使用Verimake生产的opench(赤菟CH32V307VCT6)做RTT的学习。
因为之前都是在MounRiver上进行学习,自己新建的文件夹,只要在项目目录内,就会自动显示出来,右击项目名-属性-C/C++构建-设置-GNU-RISC-V Cross C Compiler-includes里面直接点+号添加文件夹路径,就可以保证自己新建的文件夹及里面的文件被编译进来。
但似乎在RT-Thread Studio里好像不是这么设置的,看了一圈,似乎对于RTT来说构建系统分为Kconfig、SCons、env工具这三部分,一时觉得蛮绝望,感觉学习成本还蛮高。但实际了解了一下以后,感觉RTT Studio还是给了一种比较简易的解决方法?
以下介绍一下自己的解决方法。
1、问题复现:
在applications文件夹下建立了peripherals文件夹,并将写好的lcd.c和lcd.h,移动到文件夹中,此时可以编译,下载的程序也是正常的,但是!!!我在RT-Thread Settings里关闭了LCD,并选择了更新,peripherals文件夹直接被排除了编译,文件夹也直接消失了。。。然后开始找问题。。。
2、找回被排除的文件
选择过滤器和定制,禁止过滤被排除的文件,可以发现可以在applications文件夹中看到被排除的peripherals文件夹
3、将文件夹加入编译
右键文件夹-属性,取消勾选“将资源从构建排除”,这时程序可以正常编译,就我个人的情况来说,下载了也正常,我设置的led也正常闪烁,但由于没有配置完,应该还是存在不可预期的结果,就我个人的发现是,RT-Thread Settings里配置并保存后,文件夹又会进入被排除编译的状态(猜想应该是和SCons有关吧?)
4、配置Sconscript
因为新增的文件夹在applications文件夹下,因此需要对applications文件夹下的Sconscript做一定的修改,如下所示,因为对scons了解不深,不做过多解释
并在peripherals文件夹下添加这样的Sconscript
5、至此程序恢复正常,因此在RT-Thread中Scons的作用似乎是非常大的,想必后续也要恶补吧。
原作者:喵小黑
更多回帖