Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
scons吐槽太多,说下看法
发布于 2012-10-17 14:55:23 浏览:18283
订阅该版
因为scons是命令行方式,而且有时候还需要修改编译脚本,随之而来是吐槽太多 难道这个会阻碍RT-thread的发展? 首先一个,RT-thread应用了scons还是比较有亮点,例如: 1. 基于python技术,可以借助python脚本的力量,这基本上是Makefile很难比拟的; 2. 使得基于rtconfig.h的自动裁剪变成可能; 3. 生成相应的一些工程文件(例如Keil MDK、IAR); 但命令行方式、修改脚本文件方式还是极大的阻碍了这个技术的普及(也有吐槽过scons速度慢的问题)。 一个好的系统应该是对开发人员友好的,特别是这个好的系统能够帮助开发人员快速的开发出自己想要的产品,这样的系统才是有生命力的系统。所以对于scons,还需要好好思考,应该做如何的转变才能适应新的形式。 欢迎大家继续吐槽! ![build_wizard.png](https://oss-club.rt-thread.org/uploads/53_1c82752d68a22b4a5e77748c09e0d287.png)
查看更多
42
个回答
默认排序
按发布时间排序
bernard
2012-10-17
这家伙很懒,什么也没写!
发完,才发觉,自己的看法没发。先听听大家的意见吧。 元芳,你怎么看。
aozima
2012-10-17
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
元芳表示:既然命令行不友好,就写个稍微友好点的前端来调用命令行。 [s:175]
Arda
2012-10-17
这家伙很懒,什么也没写!
命令行不友好,但是方便二次开发。做个输入输出通道的重定向,就可以用任何语言接上去。 倒是真的应该考虑如何做个方便的修改工具,维护整个代码的编译选择。
eyeye
2012-10-18
这家伙很懒,什么也没写!
Scons确实对入门者是一道坎呀! 而有经验的工程师又没有那么多时间去折腾, 就会存在很多的不确定性, 不知深浅就不敢决定正式产品敢不敢应用。 很多公司有实力的就那么一两个人,本身负担就重。再引入一个新的复杂的流程会加重负担,都不愿意的! 所以还是要IDE友好的,开箱即用最好不过了。 遵从简单原则,有时候自由度少一些还更加好。 其实RTT本身还是很友好的, 不过大家开发讨论都倾向于各种脚本命令行方式, 接触的人很容易考虑到上手的时间成本了。 总之,操作和交流都人性化一些还是比较好的!
wizardxbl
2012-10-18
这家伙很懒,什么也没写!
楼上eyeye说的“上手的时间成本”。 我估计大家使用scons的对python语言和scons脚本的理解基本都算是零。对于一个新接触rt-thread的普通人来讲,我想他所想的第一件事情就是去哪儿能够下到代码,然后编译出镜像,能够烧到板子上看看效果了。 他可能不会关心python语言的优雅简洁,也不会关心scons对于工程管理的能力。 当一个开发人员熟悉了rt-thread之后,他可能需要考虑的就是如何管理自己的工程,添加一些跟自己项目相关的代码进去,虽然出于各种可能,代码不会提交到svn上去,但是,开发人员还是希望能够使用rt-thread的系统架构的。这时候,他可能就会比较关心,这个工程的代码结构是如何管理的了。就像是在linux下面混的都会或多或少的学习makefile语法一样。开发人员应该也会想知道scons是如何管理整个工程的。
bernard
2012-10-18
这家伙很懒,什么也没写!
个人的感触: 使用scons也很长一段时间了,从RT-Thread 0.4(或者说RT-Thread 1.0 pre)就开始着重引入。开始时,很多人不理解。既然有Make & Makefile,为什么还需要scons,担心scons的学习代价太高。 然后到了RT-Thread 1.0.x中逐渐确立scons在RT-Thread中的地位。对于已经使用习惯scons的开发者来说,变为了一个不可或缺的功能。但是,当推荐给不熟悉RT-Thread的用户去使用时,还真的不敢~~会折腾一大圈!但路总是要走,得有个解决办法。 问题在于,初学者对命令行、配置比较抗拒。所以折衷的办法,类似aozima、arda说的,弄个前端工具出来(Arda原来就做过一个,使用C#编写的)。既然scons的脚本都是Python,并且scons的脚本中也能够自如的引用Python脚本,那么选择Python来编写这个前端工具无疑是最理想的。 在目前的RT-Thread目录中,每个具体的bsp目录下都有一个rtconfig.py,并且还有一个tools目录。那么就在这个里面做文章吧: 假设初学者按照RT-Thread WIKI安装了Python和scons,当使用RT-Thread发布版本时,在Windows下双击下rtconfig.py或Linux下执行下rtconfig.py,则启动RT-Thread Building Wizard程序。 在这个程序中,可以: 1. 使用指定的编译器路径(并确认存在这个工具链),或智能探测安装的工具链路径; 2. 探测或指定RT-Thread的根路径; 3. 编译RT-Thread; 4. 编译RT-Thread出错,可使用指定的Editor打开出错的文件,并跳转到指定的行号; 5. 选择工程类型,然后转换成相应的工程文件; 这个是一个完整的程序,所以它实际上不可能放在rtconfig.py中去实现,而是引用tools目录下的Python库。所以在tools目录下也会有一个程序,运行它时,能够选择不同的bsp,不同的参数进行编译(并且这些参数会保存到rtconfig.py文件中)。 按照这样的思路,那么SConstruct文件将会标准化,不再需要修改,修改的仅集中在rtconfig.py文件中(并且可以使用UI工具去修改)。当然,最重要的,命令行方式不会改变。
bernard
2012-10-18
这家伙很懒,什么也没写!
[attach]1464[/attach] 实现时采用Python + TKinter实现,从而也具备了UI的跨平台性(Win、Linux下都可以使用)。
eyeye
2012-10-18
这家伙很懒,什么也没写!
简化流程吧,如果1、2、3就可以跑起来,就不要1、2、3、4、5、6、7 。。。
leafmaple
2012-10-19
这家伙很懒,什么也没写!
一个简单易用的工具,前面的图片看起来不错 我认为一个工程有一个总的配置文件,能被配置工具反复使用: 1、可以随时用配置工具修改项目参数 2、RT-Thread中的不需要程序员修改的代码直接引用到生成的项目配置文件,而不是复制 3、RT-Thread中的每个组件应该单独一个配置文件,说明功能与相关源文件的引用关系 4、可以管理多个编译配置,比如Debug、Release 5、每个编译配置可以自由配置需要的组件。配置方法可以参考程序安装时的目录树选项,操作方便 6、每个编译配置可以自由配置目标处理器 7、具备针对不同编译器生成对应的项目文件的功能,主要是为了调试仿真方便 如果能完成上面的功能,SCONS都可以不需要了。 比如:rtconfig.h等等实际的配置文件由配置工具动态生成。 我用习惯了VISUAL STUDIO
grissiom
2012-10-19
这家伙很懒,什么也没写!
>简化流程吧,如果1、2、3就可以跑起来,就不要1、2、3、4、5、6、7 。。。 --- 最简化的流程就是 C:Python27Scriptsscons.bat
撰写答案
登录
注册新账号
关注者
0
被浏览
18.3k
关于作者
bernard
这家伙很懒,什么也没写!
提问
414
回答
5948
被采纳
77
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1518
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
813
个答案
177
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
5
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
3
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部