def __init__(self, ksdkProj): """ Init class :param ksdkProj: Instance of a KSDK project """ self.parent = ksdkProj.workSpace self.userName = ksdkProj.userName self.date = ksdkProj.date self.name = ksdkProj.name self.isLinked = ksdkProj.isLinked self.device = ksdkProj.device self.parentProject = ksdkProj self.projRelPath = '' self.wsRelPath = '' ## Determine if this is a USB or standard project self.projType = 'usb' if ksdkProj.useUSB else 'std' # Create local copies of the tag dictionaries if self.projType == 'std': self.cDefines = copy.deepcopy(ksdkKdsNew.CDEFINES) self.linkDefines = copy.deepcopy(ksdkKdsNew.LINKDEFINES) else: self.cDefines = copy.deepcopy(ksdkKdsNew.CDEFINES_USB) self.linkDefines = copy.deepcopy(ksdkKdsNew.LINKDEFINES_USB) self.linkLibs = copy.deepcopy(LINKLIBS_USB) self.cIncludes = copy.deepcopy(ksdkKdsNew.CINCLUDES) self.linkOut = copy.deepcopy(ksdkKdsNew.LINKOUT) self.linkLd = copy.deepcopy(ksdkKdsNew.LINKLD) self.asmDefines = copy.deepcopy(ksdkKdsNew.ASMDEFINES) self.asmIncludes = copy.deepcopy(ksdkKdsNew.ASMINCLUDES) TEMPLATES = copy.deepcopy(ksdkKdsNew.TEMPLATES) #add board templates templateNames = self.parentProject.parent.getBoardFilesList() for t in templateNames: TEMPLATES.append({ksdkKdsNew.NAME: ksdkKdsNew.BOARD_FOLDER_NAME + '/' + t, ksdkKdsNew.TYPE:'1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/' + t}) #FIXME Radka load it from manifest PROJ_STARTUP =\ [\ {'name': 'startup', 'type': '2', 'locationURI': 'virtual:/virtual'}, \ {'name': 'startup/startup_xxx.S', 'type': '1', 'locationURI': 'PROJECT_KSDK/' + ksdkKdsNew.KSDK_DIRECTORY_PREFIX + 'gcc/startup_xxx.S'}, \ {'name': 'startup/system_xxx.c', 'type': '1', 'locationURI': 'PROJECT_KSDK/' + ksdkKdsNew.KSDK_DIRECTORY_PREFIX + 'system_xxx.c'}, \ {'name': 'startup/system_xxx.h', 'type': '1', 'locationURI': 'PROJECT_KSDK/' + ksdkKdsNew.KSDK_DIRECTORY_PREFIX + 'system_xxx.h'}, \ {'name': ksdkKdsNew.LINKER_NAME_CONSTANT, 'type': '1', 'locationURI': 'PROJECT_KSDK/' + ksdkKdsNew.KSDK_DIRECTORY_PREFIX + '/gcc/' + ksdkKdsNew.LINKER_NAME_CONSTANT}, \ {'name': Constants.DRIVERS_FOLDER, 'type': '2', 'locationURI': 'virtual:/virtual'}, \ {'name': Constants.UTILITIES_FOLDER, 'type': '2', 'locationURI': 'virtual:/virtual'}, \ {'name': Constants.CMSIS_FOLDER, 'type': '2', 'locationURI': 'virtual:/virtual'}, \ ] #add drivers #PROJ_STARTUP = copy.deepcopy(ksdkKdsNew.PROJ_STARTUP) for d in (self.parentProject.parent.getBoardFilesForBoardProjects(False, True, boardName = self.parentProject.board[1], device = ksdkProj.device[1], rtosType = ksdkProj.rtos) + self.parentProject.parent.getDriversExcludedFromBuild(device = ksdkProj.device[1])): PROJ_STARTUP.append({'name': (Constants.DRIVERS_FOLDER if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.DRIVERS_FOLDER) != -1) else Constants.UTILITIES_FOLDER) + '/' + d[ksdkObj.NAME_KEY], 'type':'1', 'locationURI': 'PROJECT_KSDK/' + d[ksdkObj.LOCATION_URI_KEY]}) #add CMSIS for d in self.parentProject.parent.getCMSISFiles(ksdkProj.device[1]): PROJ_STARTUP.append({'name': 'CMSIS' + os.sep + d[ksdkObj.NAME_KEY] ,'type':'1','locationURI':'PROJECT_KSDK/' + d[ksdkObj.LOCATION_URI_KEY]}) self.projTemplates = TEMPLATES PROJ_SOURCES = [{ksdkKdsNew.NAME: Constants.SOURCES_FOLDER, ksdkKdsNew.TYPE: '2', ksdkKdsNew.LOCATIONURI: 'virtual:/virtual'},{ksdkKdsNew.NAME: Constants.SOURCES_FOLDER + '/main.c', ksdkKdsNew.TYPE: '1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/main.c'}] if self.parentProject.isQuickGenerate: PROJ_SOURCES.append({ksdkKdsNew.NAME: Constants.SOURCES_FOLDER + '/main.h', ksdkKdsNew.TYPE: '1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/main.h'}) self.archType = CortexType.getCortexType(self.device[4]) toolType = ToolchainType.AtollicStudio if ksdkProj.rtos != 'bm': pathList = [] folder_name = '' if ksdkProj.rtos == 'freertos': pathList = self.parentProject.parent.getMapOfFreertosPaths(self.archType, toolType, self.parentProject.board[1]) folder_name = ksdkKdsNew.FREERTOS_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.FreeRTOS): PROJ_SOURCES.append({ksdkKdsNew.NAME: Constants.SOURCES_FOLDER + '/' + name, ksdkKdsNew.TYPE:'1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/' + name}) elif ksdkProj.rtos == 'ucosii': pathList = self.parentProject.parent.getMapOfuCOSIIPaths(self.archType, toolType, self.parentProject.board[1]) folder_name = ksdkKdsNew.UCOSII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSII): PROJ_SOURCES.append({ksdkKdsNew.NAME: Constants.SOURCES_FOLDER + '/' + name, ksdkKdsNew.TYPE:'1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/' + name}) elif ksdkProj.rtos == 'ucosiii': pathList = self.parentProject.parent.getMapOfuCOSIIIPaths(self.archType, toolType, self.parentProject.board[1]) folder_name = ksdkKdsNew.UCOSIII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSIII): PROJ_SOURCES.append({ksdkKdsNew.NAME: Constants.SOURCES_FOLDER + '/' + name, ksdkKdsNew.TYPE:'1', ksdkKdsNew.LOCATIONURI: 'PARENT-1-PROJECT_LOC/' + name}) for dictionary in pathList: dictionary[ksdkObj.LOCATION_URI_KEY] = ksdkKdsNew.PROJECT_KSDK + '/' + dictionary[ksdkObj.LOCATION_URI_KEY] dictionary[ksdkObj.NAME_KEY] = folder_name + '/' + dictionary[ksdkObj.NAME_KEY] dictionary['type'] = '1' pathList.append({'name': folder_name, 'type': '2', 'locationURI': 'virtual:/virtual'}) self.projRtos = copy.deepcopy(pathList) self.projStartup = copy.deepcopy(PROJ_STARTUP) self.projSources = copy.deepcopy(PROJ_SOURCES) return
def __init__(self, ksdkProj): """ Init class :param ksdkProj: Instance of a KSDK project """ self.parent = ksdkProj.workSpace self.userName = ksdkProj.userName self.date = ksdkProj.date self.name = ksdkProj.name self.isLinked = ksdkProj.isLinked self.device = ksdkProj.device self.parentProject = ksdkProj self.projRelPath = '' self.wsRelPath = '' ## Determine if this is a USB or standard project self.projType = 'usb' if ksdkProj.useUSB else 'std' # Create local copies of the tag dictionaries if self.projType == 'std': self.cDefines = copy.deepcopy(CDEFINES) self.linkDefines = copy.deepcopy(LINKDEFINES) else: self.cDefines = copy.deepcopy(CDEFINES_USB) self.linkDefines = copy.deepcopy(LINKDEFINES_USB) self.linkLibs = copy.deepcopy(LINKLIBS_USB) self.cIncludes = copy.deepcopy(CINCLUDES) self.asmDefines = copy.deepcopy(ASMDEFINES) self.asmIncludes = copy.deepcopy(ASMINCLUDES) self.linkOut = copy.deepcopy(LINKOUT) self.linkIcf = copy.deepcopy(LINKICF) #add board templates TEMPLATES['file'] = [PROJECT_DIRS + '/../' + t for t in self.parentProject.parent.getBoardFilesList()] #add drivers allDriversListOfDicts = self.parentProject.parent.getBoardFilesForBoardProjects(False, True, boardName = self.parentProject.board[1], device = ksdkProj.device[1], rtosType = ksdkProj.rtos) + self.parentProject.parent.getDriversExcludedFromBuild(device = ksdkProj.device[1]) allExcludedDriversPaths = [d[ksdkObj.LOCATION_URI_KEY] for d in self.parentProject.parent.getDriversExcludedFromBuild(device = ksdkProj.device[1])] DRIVERS[FILE_KEY_IN_DICT] = [d[ksdkObj.LOCATION_URI_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.DRIVERS_FOLDER) != -1)] DRIVERS[EXCLUDED_LIST] = [(True if f in allExcludedDriversPaths else False) for f in DRIVERS[FILE_KEY_IN_DICT]] UTILITIES[FILE_KEY_IN_DICT] = [d[ksdkObj.LOCATION_URI_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.UTILITIES_FOLDER) != -1)] UTILITIES[EXCLUDED_LIST] = [(True if f in allExcludedDriversPaths else False) for f in UTILITIES[FILE_KEY_IN_DICT]] self.templates = TEMPLATES self.drivers = DRIVERS self.utilities = UTILITIES self.linkerFile = 'devices/' + ksdkProj.device[1] + '/iar/' + ksdkProj.device[0] + '_flash.icf' self.ewpStartup = copy.deepcopy(EWP_STARTUP) EWP_SOURCES = {'name': 'sources', 'file': [PROJECT_DIRS + '/../main.c']} #add main.h only for quick generation if self.parentProject.isQuickGenerate: EWP_SOURCES[FILE_KEY_IN_DICT].append(PROJECT_DIRS + '/../main.h') listOfCMSISDict = self.parentProject.parent.getCMSISFiles(ksdkProj.device[1]) cmsisFilePaths = [d[ksdkObj.LOCATION_URI_KEY] for d in listOfCMSISDict] PROJ_CMSIS =\ {NAME_KEY_IN_DICT: 'CMSIS', 'file': cmsisFilePaths } self.projCMSISFiles = PROJ_CMSIS self.archType = CortexType.getCortexType(self.device[4]) toolType = ToolchainType.IARname if ksdkProj.rtos != 'bm': mapOfFiles = [] folderName = '' if ksdkProj.rtos == 'freertos': mapOfFiles = self.parentProject.parent.getMapOfFreertosPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.FREERTOS_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.FreeRTOS): EWP_SOURCES[FILE_KEY_IN_DICT].append(PROJECT_DIRS + '/../' + name) elif ksdkProj.rtos == 'ucosii': mapOfFiles = self.parentProject.parent.getMapOfuCOSIIPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.UCOSII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSII): EWP_SOURCES[FILE_KEY_IN_DICT].append(PROJECT_DIRS + '/../' + name) elif ksdkProj.rtos == 'ucosiii': mapOfFiles = self.parentProject.parent.getMapOfuCOSIIIPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.UCOSIII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSIII): EWP_SOURCES[FILE_KEY_IN_DICT].append(PROJECT_DIRS + '/../' + name) self.ewpRtos = {NAME_KEY_IN_DICT: folderName, FILE_KEY_IN_DICT: [dictionary[ksdkObj.LOCATION_URI_KEY] for dictionary in mapOfFiles]} self.ewpSources = copy.deepcopy(EWP_SOURCES) # Copy dictionaries for .eww batch buildss self.wsBatchAll = copy.deepcopy(EWW_BATCH_ALL) self.wsBatchDbg = copy.deepcopy(EWW_BATCH_DBG) self.wsBatchRls = copy.deepcopy(EWW_BATCH_RLS) # Copy project path dictionary self.projPaths = copy.deepcopy(EWW_PROJECTS) return
def __init__(self, ksdkProj): """ Init class :param ksdkProj: Instance of a KSDK project """ self.parent = ksdkProj.workSpace self.userName = ksdkProj.userName self.date = ksdkProj.date self.name = ksdkProj.name self.isLinked = ksdkProj.isLinked self.device = ksdkProj.device self.parentProject = ksdkProj self.projRelPath = '' ## Determine if this is a USB or standard project self.projType = 'usb' if ksdkProj.useUSB else 'std' # Create local copies of the tag dictionaries if self.projType == 'std': self.cDefines = copy.deepcopy(CDEFINES) self.linkDefines = copy.deepcopy(LINKDEFINES) else: self.cDefines = copy.deepcopy(CDEFINES_USB) self.linkDefines = copy.deepcopy(LINKDEFINES_USB) #self.linkLibs = copy.deepcopy(LINKLIBS_USB) self.cIncludes = copy.deepcopy(CINCLUDES) self.linkOut = copy.deepcopy(LINKOUT) self.linkScf = copy.deepcopy(LINKSCF) self.asmDefines = copy.deepcopy(ASMDEFINES) self.asmIncludes = copy.deepcopy(ASMINCLUDES) #add board templates TEMPLATES[FILENAME] = [n for n in self.parentProject.parent.getBoardFilesList()] TEMPLATES[FILEPATH] = ['../' + n for n in TEMPLATES[FILENAME]] TEMPLATES[FILETYPE] = [('5' if n.endswith('.h') else '1') for n in TEMPLATES[FILENAME]] self.templates = TEMPLATES #add drivers excludedDriversDicts = self.parentProject.parent.getDriversExcludedFromBuild(device = ksdkProj.device[1]) excludedDriversNameList = [d[ksdkObj.NAME_KEY] for d in excludedDriversDicts] allDriversListOfDicts = self.parentProject.parent.getBoardFilesForBoardProjects(False, True, boardName = self.parentProject.board[1], device = ksdkProj.device[1], rtosType = ksdkProj.rtos) + excludedDriversDicts DRIVERS[FILEPATH] = [d[ksdkObj.LOCATION_URI_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.DRIVERS_FOLDER) != -1)] DRIVERS[FILENAME] = [d[ksdkObj.NAME_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.DRIVERS_FOLDER) != -1)] DRIVERS[FILETYPE] = [('5' if n.endswith('.h') else '1') for n in DRIVERS[FILENAME]] DRIVERS[ksdkIarNew.EXCLUDED_LIST] = [n for n in DRIVERS[FILENAME] if n in excludedDriversNameList] self.drivers = DRIVERS #add utilities UTILITIES[FILEPATH] = [d[ksdkObj.LOCATION_URI_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.UTILITIES_FOLDER) != -1)] UTILITIES[FILENAME] = [d[ksdkObj.NAME_KEY] for d in allDriversListOfDicts if (d[ksdkObj.LOCATION_URI_KEY].find(Constants.UTILITIES_FOLDER) != -1)] UTILITIES[FILETYPE] = [('5' if n.endswith('.h') else '1') for n in UTILITIES[FILENAME]] UTILITIES[ksdkIarNew.EXCLUDED_LIST] = [n for n in UTILITIES[FILENAME] if n in excludedDriversNameList] self.utilities = UTILITIES self.projStartup = copy.deepcopy(PROJ_STARTUP) PROJ_SOURCES = {'GroupName': 'sources','FileName': ['main.c'],'FileType': ['1'],'FilePath': ['../main.c']} if self.parentProject.isQuickGenerate: PROJ_SOURCES[FILENAME].append('main.h') PROJ_SOURCES[FILETYPE].append('5') PROJ_SOURCES[FILEPATH].append('../main.h') listOfCMSISDict = self.parentProject.parent.getCMSISFiles(ksdkProj.device[1]) cmsisFileNames = [d[ksdkObj.NAME_KEY] for d in listOfCMSISDict] cmsisFileTypes = ["1" if f.endswith(".c") else "5" for f in cmsisFileNames] cmsisFilePaths = [d[ksdkObj.LOCATION_URI_KEY] for d in listOfCMSISDict] PROJ_CMSIS =\ {'GroupName': 'CMSIS', 'FileName': cmsisFileNames, 'FileType': cmsisFileTypes, 'FilePath': cmsisFilePaths } self.projCMSISFiles = PROJ_CMSIS fileTypeList = [] listOfDicts = [] folderName = '' #FIXME Radka refactor self.archType = CortexType.getCortexType(self.device[4]) toolType = ToolchainType.KeilMDK if ksdkProj.rtos != 'bm': if ksdkProj.rtos == 'freertos': listOfDicts = self.parentProject.parent.getMapOfFreertosPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.FREERTOS_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.FreeRTOS): PROJ_SOURCES[FILENAME].append(name) PROJ_SOURCES[FILETYPE].append('1' if name.endswith('.c') else '5') PROJ_SOURCES[FILEPATH].append('../' + name) elif ksdkProj.rtos == 'ucosii': listOfDicts = self.parentProject.parent.getMapOfuCOSIIPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.UCOSII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSII): PROJ_SOURCES[FILENAME].append(name) PROJ_SOURCES[FILETYPE].append('1' if name.endswith('.c') else '5') PROJ_SOURCES[FILEPATH].append('../' + name) elif ksdkProj.rtos == 'ucosiii': listOfDicts = self.parentProject.parent.getMapOfuCOSIIIPaths(self.archType, toolType, self.parentProject.board[1]) folderName = ksdkKdsNew.UCOSIII_DIRECTORY_NAME for name in self.parentProject.parent.getRTOSTemplateFilesNames(RTOSType.uCOSIII): PROJ_SOURCES[FILENAME].append(name) PROJ_SOURCES[FILETYPE].append('1' if name.endswith('.c') else '5') PROJ_SOURCES[FILEPATH].append('../' + name) self.projSources = copy.deepcopy(PROJ_SOURCES) filePathList = [dictionary[ksdkObj.LOCATION_URI_KEY] for dictionary in listOfDicts] fileNameList = [dictionary[ksdkObj.NAME_KEY] for dictionary in listOfDicts] for dictionary in listOfDicts: if dictionary[ksdkObj.NAME_KEY].endswith('.c'): fileTypeList.append('1') elif dictionary[ksdkObj.NAME_KEY].endswith('.h'): fileTypeList.append('5') else: fileTypeList.append('2') self.projRtos = {'GroupName': folderName, 'FileName':fileNameList, 'FileType':fileTypeList, 'FilePath':filePathList } #self.wsProjects = copy.deepcopy(WKSPACE_PROJECTS) return