scons构建mdk工程

Posted 超凡东皇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scons构建mdk工程相关的知识,希望对你有一定的参考价值。

通过scons构建出的不带操作系统的工程,可通过如下链接下载:

scons-mdk.zip-嵌入式文档类资源-CSDN下载

早就发现scons构建工程很方便也很省事,用起来很爽,但之前试过多次都没成功,网上也很少介绍这方面的资料,最近闲的蛋疼又捣鼓了一阵,终于成功了,记录一下之前遇到的坑!

No module named building

之前一直不成功,比如遇到如下这种情况:

scons: Reading SConscript files ...
ImportError: No module named building:

因为本人对python也只是一知半解,开始我以为缺少的这个building模块是个公用的模块,网上一阵苦找,通过各种方法去导入这个模块,都没成功,实际上这个模块就在工程的tools目录下,之所以找不到是import这个模块的地方设置的路径不对,就在创建工程的目录下SConstruct文件中设置路径,如下:

 上面执行的是RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')这条语句,意思就是是获取当前路径之后往后退两级目录,实际就到了tools这个文件夹的目录,路径设置对了就可以成功导入building模块

template模板作用

其次需要说明一下的就是template.uvprojx这个模板,开始并不知道这个模板用来干嘛,但是没有这个模板又构建不了,后来捣鼓一通大概摸清了,scons就是在这个模板上进行构建工程的,比如里边选择的mcu型号,编译选项,设置的编译参数等等都会原封不动的以它为标准进行构建工程,当然这些参数也是可以修改的,比如在rtconfig.py文件中就可以对这些进行修改,只要在rtconfig.py中没有修改的就以template.uvprojx模板的为准,rtconfig.py中如下参数要注意。

 building.py文件作用

这个文件是scons构建工程的关键文件,包含了构建方法,构建指令,生成目标等,其中构建方法一般是引用其它模块的,比如keil.py,具体可以看代码,包含的指令如下:

 生成目标工程:

 如果在tools这个文件的同级增加文件夹或者文件,需要修改building.py这个地方:

 其它地方增加文件与文件夹只需要照葫芦画瓢,增加相应的源码文件与SConscript文件就可以了,增加后重新

scons构建工程

方法一:在工程目录下双击startcmd.bat

方法二、按住shift键单击鼠标右键打开命令窗口,输入scons --target=mdk5

 

构建成功。。。

 工程测试

 下载进板子验证

参考文献:

ChangeLog.md · RT-Thread/rt-thread - Gitee.com

终于用scons创建了一个MDK工程 - fwindpeak - 博客园

 perfect...

以上是关于scons构建mdk工程的主要内容,如果未能解决你的问题,请参考以下文章

scons构建mdk工程

RT-Thread&ART-PI硬件RTC+软件RTC外设

RT-Thread&ART-PI硬件RTC+软件RTC外设

RT-Thread&ART-PI硬件RTC+软件RTC外设

MDK5新建工程

STM32开发-MDK新建工程及配置