您的位置:首页 > 其它

为RT-Thread实现一个傻瓜式的工程向导工具(二)

2014-07-20 22:55 916 查看
在深入了解了scons创建目标工程的内部机制,按着导师的要求,先画整个工程的数据流图,对整个项目的实现有个总体的把握。

这段时间主要做了如下工作:

使用qt-designer做向导界面(暂时是demo)。
写脚本实现编译库的功能。
画出项目的数据流图。
暂时代码框架如下所示:用户最终的配置都写入_rtrc文件以及对应的相应功能单元的头文件中。
import os
import sys
import subprocess
import pickle
from log import *
from ui_wizard import Ui_MainWindow
from PyQt4 import QtGui

SETTINGS = {}

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):
pass

if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)
widget = Ui()
widget.show()
sys.exit(app.exec_())

u
4000
serSetting()

'''
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)


最终实现的数据流图如图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: