Beispiel #1
0
    def process_data_for_makefile(self, project_data):
        #Flatten our dictionary, we don't need groups
        for key in SOURCE_KEYS:
            project_data[key] = list(chain(*project_data[key].values()))
        self._get_libs(project_data)
        self._parse_specific_options(project_data)

        project_data['toolchain'] = 'arm-none-eabi-'
        project_data['toolchain_bin_path'] = self.env_settings.get_env_settings('gcc')

        pro_def = ProGenDef()

        if pro_def.get_mcu_core(project_data['target'].lower()):
            project_data['core'] = pro_def.get_mcu_core(project_data['target'].lower())[0]
        else:
            raise RuntimeError(
                "Target: %s not found, Please add the target to https://github.com/project-generator/project_generator_definitions" % project_data['target'].lower())

        # gcc arm is funny about cortex-m4f.
        if project_data['core'] == 'cortex-m4f':
            project_data['core'] = 'cortex-m4'

        # change cortex-m0+ to cortex-m0plus
        if project_data['core'] == 'cortex-m0+':
            project_data['core'] = 'cortex-m0plus'
Beispiel #2
0
    def process_data_for_makefile(self, project_data):
        # Flatten source dictionaries, we don't need groups
        for key in SOURCE_KEYS:
            project_data[key] = list(sorted(
                chain(*project_data[key].values())))
        # flatten also include files
        project_data['include_files'] = list(
            sorted(chain(*project_data['include_files'].values())))

        self._get_libs(project_data)
        self._parse_specific_options(project_data)

        pro_def = ProGenDef()

        if pro_def.get_mcu_core(project_data['target'].lower()):
            project_data['core'] = pro_def.get_mcu_core(
                project_data['target'].lower())[0]
        else:
            raise RuntimeError(
                "Target: %s not found, Please add the target to https://github.com/project-generator/project_generator_definitions"
                % project_data['target'].lower())

        # gcc arm is funny about cortex-m4f.
        if project_data['core'] == 'cortex-m4f':
            project_data['core'] = 'cortex-m4'

        # change cortex-m0+ to cortex-m0plus
        if project_data['core'] == 'cortex-m0+':
            project_data['core'] = 'cortex-m0plus'
Beispiel #3
0
    def process_data_for_makefile(self, project_data):
        #Flatten our dictionary, we don't need groups
        for key in SOURCE_KEYS:
            project_data[key] = list(chain(*project_data[key].values()))
        self._get_libs(project_data)
        self._parse_specific_options(project_data)

        project_data['toolchain'] = 'arm-none-eabi-'
        project_data[
            'toolchain_bin_path'] = self.env_settings.get_env_settings('gcc')

        pro_def = ProGenDef()

        if pro_def.get_mcu_core(project_data['target'].lower()):
            project_data['core'] = pro_def.get_mcu_core(
                project_data['target'].lower())[0]
        else:
            raise RuntimeError(
                "Target: %s not found, Please add the target to https://github.com/project-generator/project_generator_definitions"
                % project_data['target'].lower())

        # gcc arm is funny about cortex-m4f.
        if project_data['core'] == 'cortex-m4f':
            project_data['core'] = 'cortex-m4'

        # change cortex-m0+ to cortex-m0plus
        if project_data['core'] == 'cortex-m0+':
            project_data['core'] = 'cortex-m0plus'
class TestDefinitions(TestCase):

    """test things related to ProjGenDef class"""

    def setUp(self):
        self.definitions = ProGenDef('novalid')

    # def test_get_mcu_def(self):
    #     mcu_def = self.definitions.get_mcu_definition()
    #     # not empty dic return
    #     assert bool(mcu_def)
    #     assert mcu_def['mcu']['vendor']
    #     assert mcu_def['mcu']['name']
    #     assert mcu_def['mcu']['core']

    def test_get_targets(self):
        target = self.definitions.get_targets()
        # it's not empty list as we got some targets
        assert bool(target)

    def test_get_mcu_core(self):
        # valid target
        core = self.definitions.get_mcu_core('frdm-k64f')
        assert core != None
        assert core[0] == 'cortex-m4f'
        core = self.definitions.get_mcu_core('novalid')
        assert core == None

    def test_tool_def(self):
        tool_def = self.definitions.get_tool_definition('novalid')
        assert tool_def == None

    def test_is_supported(self):
        supported = self.definitions.is_supported('novalid')
        supported == False
class TestDefinitions(TestCase):
    """test things related to ProjGenDef class"""
    def setUp(self):
        self.definitions = ProGenDef('novalid')

    # def test_get_mcu_def(self):
    #     mcu_def = self.definitions.get_mcu_definition()
    #     # not empty dic return
    #     assert bool(mcu_def)
    #     assert mcu_def['mcu']['vendor']
    #     assert mcu_def['mcu']['name']
    #     assert mcu_def['mcu']['core']

    def test_get_targets(self):
        target = self.definitions.get_targets()
        # it's not empty list as we got some targets
        assert bool(target)

    def test_get_mcu_core(self):
        # valid target
        core = self.definitions.get_mcu_core('frdm-k64f')
        assert core != None
        assert core[0] == 'cortex-m4f'
        core = self.definitions.get_mcu_core('novalid')
        assert core == None

    def test_tool_def(self):
        tool_def = self.definitions.get_tool_definition('novalid')
        assert tool_def == None

    def test_is_supported(self):
        supported = self.definitions.is_supported('novalid')
        supported == False
Beispiel #6
0
    def process_data_for_makefile(self, data):
        self._fix_paths(data)
        self._list_files(data, 'source_files_c', data['output_dir']['rel_path'])
        self._list_files(data, 'source_files_cpp', data['output_dir']['rel_path'])
        self._list_files(data, 'source_files_s', data['output_dir']['rel_path'])
        self._list_files(data, 'source_files_obj', data['output_dir']['rel_path'])

        self._parse_specific_options(data)
        data['toolchain'] = 'arm-none-eabi-'
        data['toolchain_bin_path'] = self.env_settings.get_env_settings('gcc')

        pro_def = ProGenDef()

        if pro_def.get_mcu_core(data['target'].lower()):
            data['core'] = pro_def.get_mcu_core(data['target'].lower())[0]
        else:
            raise RuntimeError(
                "Target: %s not found, Please add them to https://github.com/project-generator/project_generator_definitions" % data['target'].lower())

        # gcc arm is funny about cortex-m4f.
        if data['core'] == 'cortex-m4f':
            data['core'] = 'cortex-m4'

        # change cortex-m0+ to cortex-m0plus
        if data['core'] == 'cortex-m0+':
            data['core'] = 'cortex-m0plus'

        # set default values
        if 'optimization_level' not in data:
            data['optimization_level'] = self.optimization_options[0]
Beispiel #7
0
    def process_data_for_makefile(self, project_data):
        #Flatten our dictionary, we don't need groups
        for key in SOURCE_KEYS:
            project_data[key] = list(chain(*project_data[key].values()))
        self._get_libs(project_data)
        self._parse_specific_options(project_data)
        def morph_define (define) :
            if '=' in define :
                return define.replace("=", " SETA ")
            else :
                return define + " SETA 1 "

        project_data['toolchain'] = ''
        project_data['preprocess_asm_seperately'] = True
        project_data['morph_define'] = morph_define

        pro_def = ProGenDef()


        if pro_def.get_mcu_core(project_data['target'].lower()):
            project_data['core'] = pro_def.get_mcu_core(project_data['target'].lower())[0]
        else:
            raise RuntimeError(
                "Target: %s not found, Please add the target to https://github.com/project-generator/project_generator_definitions" % project_data['target'].lower())