diff options
| author | Fabien Poussin <fabien.poussin@gmail.com> | 2018-03-15 12:51:14 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-15 12:51:14 +0100 | 
| commit | 3add406135c78d44ebc38d810b22af5da19cd296 (patch) | |
| tree | fd42297388ca04dc8ff202e40d491b73ff4c21d6 /tools | |
| parent | 345e218afd4f8009729dddc6eb541d8ec6a91565 (diff) | |
| parent | dabdfca04e5f470d1eb83f72f18269bd294031b6 (diff) | |
| download | ChibiOS-Contrib-3add406135c78d44ebc38d810b22af5da19cd296.tar.gz ChibiOS-Contrib-3add406135c78d44ebc38d810b22af5da19cd296.tar.bz2 ChibiOS-Contrib-3add406135c78d44ebc38d810b22af5da19cd296.zip | |
Merge branch 'master' into update_tests
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/mx2board.py | 2 | ||||
| -rw-r--r-- | tools/templates/board_gpio.tpl (renamed from tools/board_gpio.tpl) | 0 | ||||
| -rw-r--r-- | tools/templates/halconf_community.h | 173 | ||||
| -rw-r--r-- | tools/templates/mcuconf_community.h | 155 | ||||
| -rw-r--r-- | tools/travis/script.sh | 11 | ||||
| -rw-r--r-- | tools/update_configs.py | 104 | 
6 files changed, 440 insertions, 5 deletions
| diff --git a/tools/mx2board.py b/tools/mx2board.py index ea0b010..642a934 100644 --- a/tools/mx2board.py +++ b/tools/mx2board.py @@ -332,7 +332,7 @@ if __name__ == '__main__':      defines = gen_defines(proj)      ports = gen_ports(gpio, proj) -    with open(cur_path + '/board_gpio.tpl', 'r') as tpl_file: +    with open(cur_path + '/templates/board_gpio.tpl', 'r') as tpl_file:          tpl = tpl_file.read()      template = Template(tpl) diff --git a/tools/board_gpio.tpl b/tools/templates/board_gpio.tpl index 07a316d..07a316d 100644 --- a/tools/board_gpio.tpl +++ b/tools/templates/board_gpio.tpl diff --git a/tools/templates/halconf_community.h b/tools/templates/halconf_community.h new file mode 100644 index 0000000..631bb9f --- /dev/null +++ b/tools/templates/halconf_community.h @@ -0,0 +1,173 @@ +/*
 +    ChibiOS - Copyright (C) 2014 Uladzimir Pylinsky aka barthess
 +
 +    Licensed under the Apache License, Version 2.0 (the "License");
 +    you may not use this file except in compliance with the License.
 +    You may obtain a copy of the License at
 +
 +        http://www.apache.org/licenses/LICENSE-2.0
 +
 +    Unless required by applicable law or agreed to in writing, software
 +    distributed under the License is distributed on an "AS IS" BASIS,
 +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +    See the License for the specific language governing permissions and
 +    limitations under the License.
 +*/
 +
 +#ifndef HALCONF_COMMUNITY_H
 +#define HALCONF_COMMUNITY_H
 +
 +/**
 + * @brief   Enables the community overlay.
 + */
 +#if !defined(HAL_USE_COMMUNITY) || defined(__DOXYGEN__)
 +#define HAL_USE_COMMUNITY           TRUE
 +#endif
 +
 +/**
 + * @brief   Enables the FSMC subsystem.
 + */
 +#if !defined(HAL_USE_FSMC) || defined(__DOXYGEN__)
 +#define HAL_USE_FSMC                FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the NAND subsystem.
 + */
 +#if !defined(HAL_USE_NAND) || defined(__DOXYGEN__)
 +#define HAL_USE_NAND                FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the 1-wire subsystem.
 + */
 +#if !defined(HAL_USE_ONEWIRE) || defined(__DOXYGEN__)
 +#define HAL_USE_ONEWIRE             FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the EICU subsystem.
 + */
 +#if !defined(HAL_USE_EICU) || defined(__DOXYGEN__)
 +#define HAL_USE_EICU                FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the CRC subsystem.
 + */
 +#if !defined(HAL_USE_CRC) || defined(__DOXYGEN__)
 +#define HAL_USE_CRC                 FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the RNG subsystem.
 + */
 +#if !defined(HAL_USE_RNG) || defined(__DOXYGEN__)
 +#define HAL_USE_RNG                 FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the EEPROM subsystem.
 + */
 +#if !defined(HAL_USE_EEPROM) || defined(__DOXYGEN__)
 +#define HAL_USE_EEPROM              FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the TIMCAP subsystem.
 + */
 +#if !defined(HAL_USE_TIMCAP) || defined(__DOXYGEN__)
 +#define HAL_USE_TIMCAP              FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the TIMCAP subsystem.
 + */
 +#if !defined(HAL_USE_COMP) || defined(__DOXYGEN__)
 +#define HAL_USE_COMP                FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the QEI subsystem.
 + */
 +#if !defined(HAL_USE_QEI) || defined(__DOXYGEN__)
 +#define HAL_USE_QEI                 FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the USBH subsystem.
 + */
 +#if !defined(HAL_USE_USBH) || defined(__DOXYGEN__)
 +#define HAL_USE_USBH                FALSE
 +#endif
 +
 +/**
 + * @brief   Enables the USB_MSD subsystem.
 + */
 +#if !defined(HAL_USE_USB_MSD) || defined(__DOXYGEN__)
 +#define HAL_USE_USB_MSD             FALSE
 +#endif
 +
 +/*===========================================================================*/
 +/* FSMCNAND driver related settings.                                         */
 +/*===========================================================================*/
 +
 +/**
 + * @brief   Enables the @p nandAcquireBus() and @p nanReleaseBus() APIs.
 + * @note    Disabling this option saves both code and data space.
 + */
 +#if !defined(NAND_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
 +#define NAND_USE_MUTUAL_EXCLUSION   TRUE
 +#endif
 +
 +/*===========================================================================*/
 +/* 1-wire driver related settings.                                           */
 +/*===========================================================================*/
 +/**
 + * @brief   Enables strong pull up feature.
 + * @note    Disabling this option saves both code and data space.
 + */
 +#define ONEWIRE_USE_STRONG_PULLUP   FALSE
 +
 +/**
 + * @brief   Enables search ROM feature.
 + * @note    Disabling this option saves both code and data space.
 + */
 +#define ONEWIRE_USE_SEARCH_ROM      TRUE
 +
 +/*===========================================================================*/
 +/* QEI driver related settings.                                              */
 +/*===========================================================================*/
 +
 +/**
 + * @brief   Enables discard of overlow
 + */
 +#if !defined(QEI_USE_OVERFLOW_DISCARD) || defined(__DOXYGEN__)
 +#define QEI_USE_OVERFLOW_DISCARD    FALSE
 +#endif
 +
 +/**
 + * @brief   Enables min max of overlow
 + */
 +#if !defined(QEI_USE_OVERFLOW_MINMAX) || defined(__DOXYGEN__)
 +#define QEI_USE_OVERFLOW_MINMAX     FALSE
 +#endif
 +
 +/*===========================================================================*/
 +/* EEProm driver related settings.                                           */
 +/*===========================================================================*/
 +
 +/**
 + * @brief   Enables 24xx series I2C eeprom device driver.
 + * @note    Disabling this option saves both code and data space.
 + */
 +#define EEPROM_USE_EE24XX FALSE
 + /**
 + * @brief   Enables 25xx series SPI eeprom device driver.
 + * @note    Disabling this option saves both code and data space.
 + */
 +#define EEPROM_USE_EE25XX FALSE
 +
 +#endif /* HALCONF_COMMUNITY_H */
 +
 +/** @} */
 diff --git a/tools/templates/mcuconf_community.h b/tools/templates/mcuconf_community.h new file mode 100644 index 0000000..cf6a1ce --- /dev/null +++ b/tools/templates/mcuconf_community.h @@ -0,0 +1,155 @@ +/* +    ChibiOS/RT - Copyright (C) 2014 Uladzimir Pylinsky aka barthess + +    Licensed under the Apache License, Version 2.0 (the "License"); +    you may not use this file except in compliance with the License. +    You may obtain a copy of the License at + +        http://www.apache.org/licenses/LICENSE-2.0 + +    Unless required by applicable law or agreed to in writing, software +    distributed under the License is distributed on an "AS IS" BASIS, +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +    See the License for the specific language governing permissions and +    limitations under the License. +*/ + +/* + * FSMC driver system settings. + */ +#define STM32_FSMC_USE_FSMC1                FALSE +#define STM32_FSMC_FSMC1_IRQ_PRIORITY       10 + +/* + * FSMC NAND driver system settings. + */ +#define STM32_NAND_USE_FSMC_NAND1           FALSE +#define STM32_NAND_USE_FSMC_NAND2           FALSE +#define STM32_NAND_USE_EXT_INT              FALSE +#define STM32_NAND_DMA_STREAM               STM32_DMA_STREAM_ID(2, 7) +#define STM32_NAND_DMA_PRIORITY             0 +#define STM32_NAND_DMA_ERROR_HOOK(nandp)    osalSysHalt("DMA failure") + +/* + * FSMC SRAM driver system settings. + */ +#define STM32_USE_FSMC_SRAM                 FALSE +#define STM32_SRAM_USE_FSMC_SRAM1           FALSE +#define STM32_SRAM_USE_FSMC_SRAM2           FALSE +#define STM32_SRAM_USE_FSMC_SRAM3           FALSE +#define STM32_SRAM_USE_FSMC_SRAM4           FALSE + +/* + * FSMC SDRAM driver system settings. + */ +#define STM32_USE_FSMC_SDRAM                FALSE + +/* + * TIMCAP driver system settings. + */ +#define STM32_TIMCAP_USE_TIM1                  TRUE +#define STM32_TIMCAP_USE_TIM2                  FALSE +#define STM32_TIMCAP_USE_TIM3                  TRUE +#define STM32_TIMCAP_USE_TIM4                  TRUE +#define STM32_TIMCAP_USE_TIM5                  TRUE +#define STM32_TIMCAP_USE_TIM8                  TRUE +#define STM32_TIMCAP_USE_TIM9                  TRUE +#define STM32_TIMCAP_TIM1_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM2_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM3_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM4_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM5_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM8_IRQ_PRIORITY         3 +#define STM32_TIMCAP_TIM9_IRQ_PRIORITY         3 + +/* + * COMP driver system settings. + */ +#define STM32_COMP_USE_COMP1                  TRUE +#define STM32_COMP_USE_COMP2                  TRUE +#define STM32_COMP_USE_COMP3                  TRUE +#define STM32_COMP_USE_COMP4                  TRUE +#define STM32_COMP_USE_COMP5                  TRUE +#define STM32_COMP_USE_COMP6                  TRUE +#define STM32_COMP_USE_COMP7                  TRUE + +#define STM32_COMP_USE_INTERRUPTS             TRUE +#define STM32_COMP_1_2_3_IRQ_PRIORITY         5 +#define STM32_COMP_4_5_6_IRQ_PRIORITY         5 +#define STM32_COMP_7_IRQ_PRIORITY             5 + +#if STM32_COMP_USE_INTERRUPTS +#define STM32_DISABLE_EXTI21_22_29_HANDLER +#define STM32_DISABLE_EXTI30_32_HANDLER +#define STM32_DISABLE_EXTI33_HANDLER +#endif + +/* + * USBH driver system settings. + */ +#define STM32_OTG1_CHANNELS_NUMBER          8 +#define STM32_OTG2_CHANNELS_NUMBER          12 + +#define STM32_USBH_USE_OTG1                 1 +#define STM32_OTG1_RXFIFO_SIZE              1024 +#define STM32_OTG1_PTXFIFO_SIZE             128 +#define STM32_OTG1_NPTXFIFO_SIZE            128 + +#define STM32_USBH_USE_OTG2                 0 +#define STM32_OTG2_RXFIFO_SIZE              2048 +#define STM32_OTG2_PTXFIFO_SIZE             1024 +#define STM32_OTG2_NPTXFIFO_SIZE            1024 + +#define STM32_USBH_MIN_QSPACE               4 +#define STM32_USBH_CHANNELS_NP              4 + +/* + * CRC driver system settings. + */ +#define STM32_CRC_USE_CRC1                  TRUE +#define STM32_CRC_CRC1_DMA_IRQ_PRIORITY     1 +#define STM32_CRC_CRC1_DMA_PRIORITY         2 +#define STM32_CRC_CRC1_DMA_STREAM           STM32_DMA1_STREAM2 + +#define CRCSW_USE_CRC1                      FALSE +#define CRCSW_CRC32_TABLE                   TRUE +#define CRCSW_CRC16_TABLE                   TRUE +#define CRCSW_PROGRAMMABLE                  TRUE + +/* + * EICU driver system settings. + */ +#define STM32_EICU_USE_TIM1                 TRUE +#define STM32_EICU_USE_TIM2                 FALSE +#define STM32_EICU_USE_TIM3                 TRUE +#define STM32_EICU_USE_TIM4                 TRUE +#define STM32_EICU_USE_TIM5                 TRUE +#define STM32_EICU_USE_TIM8                 TRUE +#define STM32_EICU_USE_TIM9                 TRUE +#define STM32_EICU_USE_TIM10                TRUE +#define STM32_EICU_USE_TIM11                TRUE +#define STM32_EICU_USE_TIM12                TRUE +#define STM32_EICU_USE_TIM13                TRUE +#define STM32_EICU_USE_TIM14                TRUE +#define STM32_EICU_TIM1_IRQ_PRIORITY        7 +#define STM32_EICU_TIM2_IRQ_PRIORITY        7 +#define STM32_EICU_TIM3_IRQ_PRIORITY        7 +#define STM32_EICU_TIM4_IRQ_PRIORITY        7 +#define STM32_EICU_TIM5_IRQ_PRIORITY        7 +#define STM32_EICU_TIM8_IRQ_PRIORITY        7 +#define STM32_EICU_TIM9_IRQ_PRIORITY        7 +#define STM32_EICU_TIM10_IRQ_PRIORITY       7 +#define STM32_EICU_TIM11_IRQ_PRIORITY       7 +#define STM32_EICU_TIM12_IRQ_PRIORITY       7 +#define STM32_EICU_TIM13_IRQ_PRIORITY       7 +#define STM32_EICU_TIM14_IRQ_PRIORITY       7 + +/* + * QEI driver system settings. + */ +#define STM32_QEI_USE_TIM1                TRUE +#define STM32_QEI_USE_TIM2                FALSE +#define STM32_QEI_USE_TIM3                TRUE +#define STM32_QEI_TIM1_IRQ_PRIORITY         3 +#define STM32_QEI_TIM2_IRQ_PRIORITY         3 +#define STM32_QEI_TIM3_IRQ_PRIORITY         3 diff --git a/tools/travis/script.sh b/tools/travis/script.sh index 103ccc1..e70b114 100644 --- a/tools/travis/script.sh +++ b/tools/travis/script.sh @@ -4,6 +4,10 @@ set -ex  export PATH=/tmp/gcc-arm-none-eabi-4_9-2015q3/bin:$PATH +cd ../ChibiOS-RT/ext +7z x lwip-2.0.3-patched.7z +cd - +  git checkout -- .  git clean -xfd  make -C demos/TIVA/RT-TM4C123G-LAUNCHPAD @@ -12,10 +16,9 @@ git checkout -- .  git clean -xfd  make -C demos/TIVA/RT-TM4C1294-LAUNCHPAD -# This demo needs LWIP, it is disabled for now. -# git checkout -- . -# git clean -xfd -# make -C demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP +git checkout -- . +git clean -xfd +make -C demos/TIVA/RT-TM4C1294-LAUNCHPAD-LWIP  git checkout -- .  git clean -xfd diff --git a/tools/update_configs.py b/tools/update_configs.py new file mode 100644 index 0000000..6bc69b9 --- /dev/null +++ b/tools/update_configs.py @@ -0,0 +1,104 @@ +#!/usr/bin/python3
 +# -*- coding: utf-8 -*-
 +__author__ = 'Fabien Poussin'
 +__version__ = '0.1'
 +
 +import os
 +import re
 +from argparse import ArgumentParser
 +from traceback import print_exc
 +from shutil import copy
 +
 +parser = ArgumentParser(description='Generate ChibiOS-Contrib config and make files from ChibiOS')
 +parser.add_argument('-s', '--src', default='../../ChibiOS-RT', type=str, help="ChibiOS folder")
 +parser.add_argument('-d', '--dst', default='..', type=str, help='ChibiOS-Contrib folder')
 +
 +
 +def makefile(lines):
 +
 +    for l in range(len(lines)):
 +
 +        if 'CHIBIOS =' in lines[l]:
 +            lines[l] = lines[l][:-1] + '/../ChibiOS-RT\n'
 +            lines.insert(l + 1, 'CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib\n')
 +
 +        if '$(CHIBIOS)/os/hal/hal.mk' in lines[l] \
 +                or '$(CHIBIOS)/os/hal/ports/' in lines[l] \
 +                or '$(CHIBIOS)/os/various' in lines[l]            :
 +            lines[l] = lines[l].replace('CHIBIOS', 'CHIBIOS_CONTRIB')
 +
 +    return "".join(lines)
 +
 +
 +def halconf(lines):
 +
 +    idx_end = lines.index('#endif /* HALCONF_H */\n')
 +    lines.insert(idx_end - 1, '\n')
 +    lines.insert(idx_end - 1, '#include "halconf_community.h"')
 +    lines.insert(idx_end - 1, '\n')
 +
 +    return "".join(lines)
 +
 +
 +def mcuconf(lines):
 +
 +    idx_end = lines.index('#endif /* MCUCONF_H */\n')
 +    lines.insert(idx_end - 1, '\n')
 +    lines.insert(idx_end - 1, '#include "mcuconf_community.h"')
 +    lines.insert(idx_end - 1, '\n')
 +
 +    return "".join(lines)
 +
 +
 +if __name__ == '__main__':
 +
 +    args = parser.parse_args()
 +    sources = {}
 +
 +    for folder in ['testhal']:
 +
 +        for family in os.scandir(args.src + '/{}/STM32/'.format(folder)):
 +            if not family.name[0].isupper() or not family.is_dir():
 +                continue
 +
 +            for test in os.scandir(family.path):
 +                try:
 +                    sources[family.name] = {'makefile': None, 'halconf': None, 'mcuconf': None}
 +
 +                    with open(test.path + '/Makefile', 'r') as file:
 +                        sources[family.name]['makefile'] = makefile(file.readlines())
 +
 +                    with open(test.path + '/halconf.h', 'r') as file:
 +                        sources[family.name]['halconf'] = halconf(file.readlines())
 +
 +                    with open(test.path + '/mcuconf.h', 'r') as file:
 +                        sources[family.name]['mcuconf'] = mcuconf(file.readlines())
 +
 +                except Exception as e:
 +                    print(test.path, e)
 +                    del sources[family.name]
 +                    continue
 +
 +                break
 +
 +        for family in os.scandir(args.dst + '/{}/STM32/'.format(folder)):
 +            if not family.name[0].isupper() or not family.is_dir():
 +                continue
 +
 +            for test in os.scandir(family.path):
 +                copy('templates/halconf_community.h', test.path)
 +                copy('templates/mcuconf_community.h', test.path)
 +
 +                try:
 +                    with open(test.path + '/Makefile', 'w') as file:
 +                        file.write(sources[family.name]['makefile'])
 +
 +                    with open(test.path + '/halconf.h', 'w') as file:
 +                        file.write(sources[family.name]['halconf'])
 +
 +                    with open(test.path + '/mcuconf.h', 'w') as file:
 +                        file.write(sources[family.name]['mcuconf'])
 +
 +                    print('updated', test.path)
 +                except KeyError as e:
 +                    print('Missing family data', e)
 | 
