为RT-Thread实现一个傻瓜式的工程向导工具(二)
来源:互联网 发布:数据库测试包括什么 编辑:程序博客网 时间:2024/06/03 11:32
在深入了解了scons创建目标工程的内部机制,按着导师的要求,先画整个工程的数据流图,对整个项目的实现有个总体的把握。
这段时间主要做了如下工作:
- 使用qt-designer做向导界面(暂时是demo)。
- 写脚本实现编译库的功能。
- 画出项目的数据流图。
暂时代码框架如下所示:用户最终的配置都写入_rtrc文件以及对应的相应功能单元的头文件中。import osimport sysimport subprocessimport picklefrom log import *from ui_wizard import Ui_MainWindowfrom PyQt4 import QtGuiSETTINGS = {}def userSetting(): global SETTINGS SETTINGS['CC'] = 'armcc'def storeSetting(): global SETTINGS fp = open(os.path.join(SETTINGS['BSP_DIR'], "_rtrc"), "w") pickle.dump(SETTINGS, fp) fp.close()class Ui(QtGui.QMainWindow): def __init__(self, parent=None): super(Ui, self).__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.toolPage.setLayout(self.ui.verticalLayout) self.ui.MainWidget.setLayout(self.ui.horizontalLayout) def changePage(self, pre, cur): passif __name__ == '__main__': app = QtGui.QApplication(sys.argv) widget = Ui() widget.show() sys.exit(app.exec_()) userSetting() ''' if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') else: RTT_ROOT = SETTINGS['RTT_ROOT'] ''' #what we add here should be done through userSetting() SETTINGS['RTT_ROOT'] = os.path.normpath('F:/rt-thread') SETTINGS['BSP_DIR'] = os.path.normpath(SETTINGS['RTT_ROOT'] + '/bsp/stm32f20x') SETTINGS['PROJECT_TYPE'] = 'mdk4' SETTINGS['CROSS_TOOL'] = 'keil' SETTINGS['STM32_TYPE'] = 'STM32F20X_CL' #SETTINGS['DEVICE_DRIVERS'] = [': sys.path = sys.path + [os.path.join(SETTINGS['RTT_ROOT'], 'tools'), SETTINGS['BSP_DIR']] logging.debug(SETTINGS['BSP_DIR']) logging.debug(SETTINGS['RTT_ROOT']) storeSetting() #after configuration, use scons to construct project os.chdir(SETTINGS["BSP_DIR"]) #subprocess.call('scons --target=' + SETTINGS['PROJECT_TYPE'] + ' -s', shell=True) #subprocess.call('scons --target=' + SETTINGS['PROJECT_TYPE'], shell=True) subprocess.call('scons --buildlib=Kernel', shell = True) subprocess.call('scons --target=' + SETTINGS['PROJECT_TYPE'], shell=True)
最终实现的数据流图如图所示:
0 0
- 为RT-Thread实现一个傻瓜式的工程向导工具(二)
- 为RT-Thread实现一个傻瓜式的工程向导工具(一)
- 为RT-Thread实现一个傻瓜式的工程向导工具(三)
- 为RT-Thread实现一个傻瓜式的工程向导工具(中期报告)
- 为RT-Thread实现一个傻瓜式的工程向导工具(末期总结)
- 创建独立的rt-thread工程
- RT-Thread V2.1.0 重构工程(IAR为例)
- RT-Thread 学习笔记(二)---配置github代码版本控制工具
- stm32f103应用rt-thread 1.2.5搭建的Keil工程
- RT-Thread从开源代码生成自己的工程
- RT-Thread的线程(任务)处理
- VS中创建自定义一个VC工程为基础的开发向导的总结
- 推荐一个不错的嵌入式实时系统RT-Thread
- RT-Thread的线程(任务)处理【RT-Thread学习笔记 2】
- 【RT-Thread学习笔记 2】RT-Thread的线程(任务)处理
- WebGIS:一个图层的傻瓜式完整发布过程(二)
- RT-Thread的优先级算法
- RT-Thread LwIP的使用
- UVALive 6091 - Trees (并查集)
- 数据结构之线性表一
- 排位赛第二场E题以及排位赛第三场题解
- hdu 4857 逃生 (拓扑排序+保证最小在前面)
- UDK——VS开发环境配置:nFringe 与 UnrealScriptIDE
- 为RT-Thread实现一个傻瓜式的工程向导工具(二)
- UItableView编辑的使用edit, UItableView的一些常用方法
- java 类库分析之HashMap
- RGB图像旋转90度编程完成-视频处理基础(3)
- 解决相册图片旋转的问题
- 虚函数重载的相关问题
- node之版本升级和管理
- linux 内存管理系列2
- 比较大小-类模板