Merge pull request #1487 from 0xc0170/dev_progen_addition

Progen boilerplate addition
pull/1496/head
Martin Kojtal 2016-01-08 15:03:44 +00:00
commit 8b10c2ae00
4 changed files with 135 additions and 15 deletions

View File

@ -40,7 +40,7 @@ setup(name='mbed-tools',
url='https://github.com/mbedmicro/mbed',
packages=find_packages(),
license=LICENSE,
install_requires=["PrettyTable>=0.7.2", "PySerial>=2.7", "IntelHex>=1.3", "colorama>=0.3.3", "Jinja2>=2.7.3"])
install_requires=["PrettyTable>=0.7.2", "PySerial>=2.7", "IntelHex>=1.3", "colorama>=0.3.3", "Jinja2>=2.7.3", "project-generator>=0.8.4,<0.9.0"])
# Restore previous private_settings if needed
if backup:

View File

@ -21,7 +21,9 @@ from shutil import copytree, rmtree, copy
from workspace_tools.utils import mkdir
from workspace_tools.export import uvision4, codesourcery, codered, gccarm, ds5_5, iar, emblocks, coide, kds, zip, simplicityv3, atmelstudio
from workspace_tools.export.exporters import zip_working_directory_and_clean_up, OldLibrariesException
from workspace_tools.targets import TARGET_NAMES, EXPORT_MAP
from workspace_tools.targets import TARGET_NAMES, EXPORT_MAP, TARGET_MAP
from project_generator_definitions.definitions import ProGenDef
EXPORTERS = {
'uvision': uvision4.Uvision4,
@ -60,7 +62,7 @@ def export(project_path, project_name, ide, target, destination='/tmp/',
if tempdir is None:
tempdir = tempfile.mkdtemp()
report = {'success': False}
report = {'success': False, 'errormsg':''}
if ide is None or ide == "zip":
# Simple ZIP exporter
try:
@ -73,13 +75,27 @@ def export(project_path, project_name, ide, target, destination='/tmp/',
report['errormsg'] = ERROR_MESSAGE_NOT_EXPORT_LIBS
else:
if ide not in EXPORTERS:
report['errormsg'] = "Unsupported toolchain"
report['errormsg'] = ERROR_MESSAGE_UNSUPPORTED_TOOLCHAIN % (target, ide)
else:
Exporter = EXPORTERS[ide]
target = EXPORT_MAP.get(target, target)
if target not in Exporter.TARGETS:
report['errormsg'] = ERROR_MESSAGE_UNSUPPORTED_TOOLCHAIN % (target, ide)
# use progen targets or mbed exporters targets, check progen attribute
use_progen = False
supported = True
try:
if Exporter.PROGEN_ACTIVE:
use_progen = True
except AttributeError:
pass
if use_progen:
if not ProGenDef(ide).is_supported(TARGET_MAP[target].progen_target):
supported = False
else:
if target not in Exporter.TARGETS:
supported = False
if supported:
# target checked, export
try:
exporter = Exporter(target, tempdir, project_name, build_url_resolver, extra_symbols=extra_symbols)
exporter.scan_and_copy_resources(project_path, tempdir)
@ -87,6 +103,8 @@ def export(project_path, project_name, ide, target, destination='/tmp/',
report['success'] = True
except OldLibrariesException, e:
report['errormsg'] = ERROR_MESSAGE_NOT_EXPORT_LIBS
else:
report['errormsg'] = ERROR_MESSAGE_UNSUPPORTED_TOOLCHAIN % (target, ide)
zip_path = None
if report['success']:

View File

@ -12,9 +12,13 @@ from workspace_tools.utils import mkdir
from workspace_tools.toolchains import TOOLCHAIN_CLASSES
from workspace_tools.targets import TARGET_MAP
from project_generator.generate import Generator
from project_generator.project import Project
from project_generator.settings import ProjectSettings
class OldLibrariesException(Exception): pass
class Exporter():
class Exporter(object):
TEMPLATE_DIR = dirname(__file__)
DOT_IN_RELATIVE_PATH = False
@ -42,6 +46,38 @@ class Exporter():
self.toolchain.copy_files(r, trg_path, rel_path=src_path)
return resources
def progen_get_project_data(self):
""" Get ProGen project data """
# provide default data, some tools don't require any additional
# tool specific settings
sources = []
for r_type in ['c_sources', 'cpp_sources', 's_sources']:
for file in getattr(self.resources, r_type):
sources.append(file)
project_data = {
'common': {
'sources': {
'Source Files': sources + self.resources.hex_files +
self.resources.objects + self.resources.libraries,
},
'includes': {
'Include Files': self.resources.headers,
},
'target': [TARGET_MAP[self.target].progen_target],
'macros': self.get_symbols(),
'export_dir': [self.inputDir],
'linker_file': [self.resources.linker_script],
}
}
return project_data
def progen_gen_file(self, tool_name, project_data):
"""" Generate project using ProGen Project API """
settings = ProjectSettings()
project = Project(self.program_name, [project_data], settings)
project.generate(tool_name, copied=True)
def __scan_all(self, path):
resources = []

View File

@ -123,6 +123,7 @@ class LPC11C24(LPCTarget):
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11XX_11CXX', 'LPC11CXX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.progen_target = 'lpc11c24_301'
class LPC1114(LPCTarget):
def __init__(self):
@ -131,6 +132,7 @@ class LPC1114(LPCTarget):
self.extra_labels = ['NXP', 'LPC11XX_11CXX', 'LPC11XX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
self.progen_target = 'lpc1114_102'
class LPC11U24(LPCTarget):
def __init__(self):
@ -140,6 +142,7 @@ class LPC11U24(LPCTarget):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.detect_code = ["1040"]
self.progen_target = 'lpc11u24_201'
class OC_MBUINO(LPC11U24):
def __init__(self):
@ -149,6 +152,7 @@ class OC_MBUINO(LPC11U24):
self.macros = ['TARGET_LPC11U24']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.progen_target = 'lpc11u24_201'
class LPC11U24_301(LPCTarget):
def __init__(self):
@ -180,6 +184,7 @@ class LPC11U35_401(LPCTarget):
self.extra_labels = ['NXP', 'LPC11UXX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
self.progen_target = 'lpc11u35_401'
class LPC11U35_501(LPCTarget):
def __init__(self):
@ -188,6 +193,7 @@ class LPC11U35_501(LPCTarget):
self.extra_labels = ['NXP', 'LPC11UXX', 'MCU_LPC11U35_501']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR" , "IAR"]
self.default_toolchain = "uARM"
self.progen_target ='lpc11u35_501'
class LPC11U35_501_IBDAP(LPCTarget):
def __init__(self):
@ -243,6 +249,7 @@ class LPC11U68(LPCTarget):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["1168"]
self.progen_target ='lpc11u68'
class LPC1347(LPCTarget):
def __init__(self):
@ -250,6 +257,7 @@ class LPC1347(LPCTarget):
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC13XX']
self.supported_toolchains = ["ARM", "GCC_ARM","IAR"]
self.progen_target = 'lpc1347'
class LPC1549(LPCTarget):
def __init__(self):
@ -260,6 +268,7 @@ class LPC1549(LPCTarget):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["1549"]
self.progen_target ='lpc1549'
class LPC1768(LPCTarget):
def __init__(self):
@ -268,6 +277,7 @@ class LPC1768(LPCTarget):
self.extra_labels = ['NXP', 'LPC176X', 'MBED_LPC1768']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.detect_code = ["1010"]
self.progen_target = 'mbed-lpc1768'
class ARCH_PRO(LPCTarget):
def __init__(self):
@ -277,6 +287,7 @@ class ARCH_PRO(LPCTarget):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.macros = ['TARGET_LPC1768']
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='arch-pro'
class UBLOX_C027(LPCTarget):
def __init__(self):
@ -286,6 +297,7 @@ class UBLOX_C027(LPCTarget):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.macros = ['TARGET_LPC1768']
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='ublox-c027'
class XBED_LPC1768(LPCTarget):
def __init__(self):
@ -329,6 +341,7 @@ class LPC812(LPCTarget):
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["1050"]
self.progen_target = 'lpc812m101'
class LPC824(LPCTarget):
def __init__(self):
@ -339,6 +352,7 @@ class LPC824(LPCTarget):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.progen_target = 'lpc824m201'
class SSCI824(LPCTarget):
def __init__(self):
@ -356,6 +370,7 @@ class LPC4088(LPCTarget):
self.extra_labels = ['NXP', 'LPC408X']
self.supported_toolchains = ["ARM", "GCC_CR", "GCC_ARM", "IAR"]
self.is_disk_virtual = True
self.progen_target = 'lpc4088'
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['ARM_STD', 'ARM_MICRO']:
@ -400,6 +415,7 @@ class LPC4330_M4(LPCTarget):
self.core = "Cortex-M4F"
self.extra_labels = ['NXP', 'LPC43XX', 'LPC4330']
self.supported_toolchains = ["ARM", "GCC_CR", "IAR", "GCC_ARM"]
self.progen_target = 'lpc4330'
class LPC4330_M0(LPCTarget):
def __init__(self):
@ -414,7 +430,7 @@ class LPC4337(LPCTarget):
self.core = "Cortex-M4F"
self.extra_labels = ['NXP', 'LPC43XX', 'LPC4337']
self.supported_toolchains = ["ARM"]
self.progen_target = 'lpc4337'
class LPC1800(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
@ -430,7 +446,7 @@ class LPC11U37H_401(LPCTarget):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='lpc11u37_401'
### Freescale ###
@ -443,6 +459,7 @@ class KL05Z(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.progen_target ='frdm-kl05z'
class KL25Z(Target):
def __init__(self):
@ -453,6 +470,7 @@ class KL25Z(Target):
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["0200"]
self.progen_target ='frdm-kl25z'
class KL26Z(Target):
def __init__(self):
@ -471,6 +489,7 @@ class KL43Z(Target):
self.supported_toolchains = ["GCC_ARM", "ARM"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.progen_target ='frdm-kl43z'
class KL46Z(Target):
def __init__(self):
@ -481,6 +500,7 @@ class KL46Z(Target):
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["0220"]
self.progen_target ='frdm-kl46z'
class K20D50M(Target):
def __init__(self):
@ -490,6 +510,7 @@ class K20D50M(Target):
self.supported_toolchains = ["GCC_ARM", "ARM", "IAR"]
self.is_disk_virtual = True
self.detect_code = ["0230"]
self.progen_target = 'frdm-k20d50m'
class TEENSY3_1(Target):
OUTPUT_EXT = 'hex'
@ -501,7 +522,7 @@ class TEENSY3_1(Target):
self.supported_toolchains = ["GCC_ARM", "ARM"]
self.is_disk_virtual = True
self.detect_code = ["0230"]
self.progen_target ='teensy-31'
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['ARM_STD', 'ARM_MICRO', 'GCC_ARM']:
@ -526,6 +547,7 @@ class K22F(Target):
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["0201"]
self.progen_target = 'frdm-k22f'
class K64F(Target):
def __init__(self):
@ -538,6 +560,7 @@ class K64F(Target):
self.is_disk_virtual = True
self.default_toolchain = "ARM"
self.detect_code = ["0240"]
self.progen_target = 'frdm-k64f'
class MTS_GAMBIT(Target):
def __init__(self):
@ -548,7 +571,7 @@ class MTS_GAMBIT(Target):
self.macros = ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"]
self.is_disk_virtual = True
self.default_toolchain = "ARM"
self.progen_target ='mts-gambit'
### STMicro ###
@ -561,6 +584,7 @@ class NUCLEO_F030R8(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0725"]
self.progen_target ='nucleo-f030r8'
class NUCLEO_F031K6(Target):
def __init__(self):
@ -571,6 +595,7 @@ class NUCLEO_F031K6(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["0791"]
self.progen_target ='nucleo-f031k6'
class NUCLEO_F042K6(Target):
def __init__(self):
@ -581,6 +606,7 @@ class NUCLEO_F042K6(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["0785"]
self.progen_target ='nucleo-f042k6'
class NUCLEO_F070RB(Target):
def __init__(self):
@ -591,6 +617,7 @@ class NUCLEO_F070RB(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0755"]
self.progen_target ='nucleo-f070rb'
class NUCLEO_F072RB(Target):
def __init__(self):
@ -601,6 +628,7 @@ class NUCLEO_F072RB(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0730"]
self.progen_target ='nucleo-f072rb'
class NUCLEO_F091RC(Target):
def __init__(self):
@ -611,6 +639,7 @@ class NUCLEO_F091RC(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0750"]
self.progen_target ='nucleo-f091rc'
class NUCLEO_F103RB(Target):
def __init__(self):
@ -621,6 +650,7 @@ class NUCLEO_F103RB(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0700"]
self.progen_target ='nucleo-f103rb'
class NUCLEO_F302R8(Target):
def __init__(self):
@ -631,6 +661,7 @@ class NUCLEO_F302R8(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0705"]
self.progen_target ='nucleo-f302r8'
class NUCLEO_F303K8(Target):
def __init__(self):
@ -641,7 +672,7 @@ class NUCLEO_F303K8(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["0775"]
self.progen_target ='nucleo-f303k8'
class NUCLEO_F303RE(Target):
def __init__(self):
@ -652,6 +683,7 @@ class NUCLEO_F303RE(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0745"]
self.progen_target ='nucleo-f303re'
class NUCLEO_F334R8(Target):
def __init__(self):
@ -662,6 +694,7 @@ class NUCLEO_F334R8(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0735"]
self.progen_target ='nucleo-f334r8'
class NUCLEO_F401RE(Target):
def __init__(self):
@ -672,6 +705,7 @@ class NUCLEO_F401RE(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0720"]
self.progen_target ='nucleo-f401re'
class NUCLEO_F410RB(Target):
def __init__(self):
@ -682,6 +716,7 @@ class NUCLEO_F410RB(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0740"]
self.progen_target ='nucleo-f410rb'
class NUCLEO_F411RE(Target):
def __init__(self):
@ -692,6 +727,7 @@ class NUCLEO_F411RE(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0740"]
self.progen_target ='nucleo-f411re'
class ELMO_F411RE(Target):
def __init__(self):
@ -712,6 +748,7 @@ class NUCLEO_F446RE(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0777"]
self.progen_target ='nucleo-f446re'
class B96B_F446VE(Target):
def __init__(self):
@ -732,6 +769,7 @@ class NUCLEO_L053R8(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0715"]
self.progen_target ='nucleo-l053r8'
class NUCLEO_L073RZ(Target):
def __init__(self):
@ -742,6 +780,7 @@ class NUCLEO_L073RZ(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0760"]
self.progen_target ='nucleo-l073rz'
class NUCLEO_L152RE(Target):
def __init__(self):
@ -752,6 +791,7 @@ class NUCLEO_L152RE(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0710"]
self.progen_target ='nucleo-l152re'
class NUCLEO_L476RG(Target):
def __init__(self):
@ -762,6 +802,7 @@ class NUCLEO_L476RG(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0765"]
self.progen_target ='nucleo-l476rg'
class STM32F3XX(Target):
def __init__(self):
@ -786,6 +827,7 @@ class ARCH_MAX(Target):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
self.supported_form_factors = ["ARDUINO"]
self.macros = ['LSI_VALUE=32000']
self.progen_target ='lpc1768'
def program_cycle_s(self):
return 2
@ -822,6 +864,7 @@ class DISCO_F334C8(Target):
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.detect_code = ["0810"]
self.progen_target ='disco-f334c8'
class DISCO_F407VG(Target):
def __init__(self):
@ -829,6 +872,7 @@ class DISCO_F407VG(Target):
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F407', 'STM32F407VG']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
self.progen_target ='disco-f407vg'
class DISCO_F429ZI(Target):
def __init__(self):
@ -837,6 +881,7 @@ class DISCO_F429ZI(Target):
self.extra_labels = ['STM', 'STM32F4', 'STM32F429', 'STM32F429ZI']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.progen_target ='disco-f429zi'
class DISCO_F469NI(Target):
def __init__(self):
@ -847,6 +892,7 @@ class DISCO_F469NI(Target):
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["0788"]
self.progen_target ='disco-f469ni'
class DISCO_L053C8(Target):
def __init__(self):
@ -855,6 +901,7 @@ class DISCO_L053C8(Target):
self.extra_labels = ['STM', 'STM32L0', 'STM32L053C8']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.progen_target ='disco-l053c8'
class DISCO_F746NG(Target):
def __init__(self):
@ -864,6 +911,7 @@ class DISCO_F746NG(Target):
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.detect_code = ["0815"]
self.progen_target ='disco-f746ng'
class DISCO_L476VG(Target):
def __init__(self):
@ -873,6 +921,7 @@ class DISCO_L476VG(Target):
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.detect_code = ["0820"]
self.progen_target ='disco-l476vg'
class MTS_MDOT_F405RG(Target):
def __init__(self):
@ -883,6 +932,7 @@ class MTS_MDOT_F405RG(Target):
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.is_disk_virtual = True
self.default_toolchain = "ARM"
self.progen_target ='mts-mdot-f405rg'
class MTS_MDOT_F411RE(Target):
def __init__(self):
@ -892,6 +942,7 @@ class MTS_MDOT_F411RE(Target):
self.macros = ['HSE_VALUE=26000000', 'OS_CLOCK=96000000', 'USE_PLL_HSE_EXTC=0', 'VECT_TAB_OFFSET=0x00010000']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "ARM"
self.progen_target = 'mts-mdot-f411re'
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['GCC_ARM', 'ARM_STD', 'ARM_MICRO']:
@ -933,6 +984,7 @@ class MTS_DRAGONFLY_F411RE(Target):
self.macros = ['HSE_VALUE=26000000', 'VECT_TAB_OFFSET=0x08010000']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "ARM"
self.progen_target = 'mts-dragonfly-f411re'
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['GCC_ARM', 'ARM_STD', 'ARM_MICRO']:
@ -974,6 +1026,7 @@ class MOTE_L152RC(Target):
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.detect_code = ["4100"]
self.progen_target ='stm32l151rc'
class DISCO_F401VC(Target):
def __init__(self):
@ -1000,6 +1053,7 @@ class NZ32SC151(Target):
self.extra_labels = ['STM', 'STM32L1', 'STM32L151RC']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
self.default_toolchain = "uARM"
self.progen_target ='stm32l151rc'
# After flashing device, how long to delay until we assume program is running
def program_cycle_s(self):
return 1.5
@ -1227,6 +1281,7 @@ class NRF51822(MCU_NRF51_16K):
MCU_NRF51_16K.__init__(self)
self.extra_labels += ['NRF51822', 'NRF51822_MKIT']
self.macros += ['TARGET_NRF51822_MKIT']
self.progen_target ='mkit'
class NRF51822_BOOT(MCU_NRF51_16K_BOOT):
def __init__(self):
@ -1244,6 +1299,7 @@ class ARCH_BLE(MCU_NRF51_16K):
def __init__(self):
MCU_NRF51_16K.__init__(self)
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='arch-ble'
class ARCH_BLE_BOOT(MCU_NRF51_16K_BOOT):
def __init__(self):
@ -1283,6 +1339,7 @@ class ARCH_LINK_OTA(MCU_NRF51_16K_OTA):
class SEEED_TINY_BLE(MCU_NRF51_16K):
def __init__(self):
MCU_NRF51_16K.__init__(self)
self.progen_target ='seed-tinyble'
class SEEED_TINY_BLE_BOOT(MCU_NRF51_16K_BOOT):
def __init__(self):
@ -1300,6 +1357,7 @@ class HRM1017(MCU_NRF51_16K):
def __init__(self):
MCU_NRF51_16K.__init__(self)
self.macros += ['TARGET_NRF_LFCLK_RC']
self.progen_target ='hrm1017'
class HRM1017_BOOT(MCU_NRF51_16K_BOOT):
def __init__(self):
@ -1317,6 +1375,7 @@ class RBLAB_NRF51822(MCU_NRF51_16K):
def __init__(self):
MCU_NRF51_16K.__init__(self)
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='rblab-nrf51822'
class RBLAB_NRF51822_BOOT(MCU_NRF51_16K_BOOT):
def __init__(self):
@ -1373,6 +1432,7 @@ class DELTA_DFCM_NNN40(MCU_NRF51_32K):
MCU_NRF51_32K.__init__(self)
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.macros += ['TARGET_NRF_LFCLK_RC']
self.progen_target ='dfcm-nnn40'
def program_cycle_s(self):
return 10
@ -1399,6 +1459,7 @@ class NRF51_DK(MCU_NRF51_32K):
MCU_NRF51_32K.__init__(self)
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.supported_form_factors = ["ARDUINO"]
self.progen_target ='nrf51-dk'
class NRF51_DK_BOOT(MCU_NRF51_32K_BOOT):
def __init__(self):
@ -1419,6 +1480,7 @@ class NRF51_DK_OTA(MCU_NRF51_32K_OTA):
class NRF51_DONGLE(MCU_NRF51_32K):
def __init__(self):
MCU_NRF51_32K.__init__(self)
self.progen_target ='nrf51-dongle'
class NRF51_DONGLE_BOOT(MCU_NRF51_32K_BOOT):
def __init__(self):
@ -1566,6 +1628,7 @@ class MAXWSNENV(Target):
self.macros = ['__SYSTEM_HFX=24000000']
self.supported_toolchains = ["GCC_ARM", "IAR", "ARM"]
self.default_toolchain = "ARM"
self.progen_target ='maxwsnenv'
class MAX32600MBED(Target):
def __init__(self):
@ -1575,7 +1638,7 @@ class MAX32600MBED(Target):
self.macros = ['__SYSTEM_HFX=24000000']
self.supported_toolchains = ["GCC_ARM", "IAR", "ARM"]
self.default_toolchain = "ARM"
self.progen_target ='max32600mbed'
### Silicon Labs ###
@ -1664,6 +1727,7 @@ class SAMR21G18A(Target):
self.macros = ['__SAMR21G18A__', 'I2C_MASTER_CALLBACK_MODE=true', 'EXTINT_CALLBACK_MODE=true', 'USART_CALLBACK_MODE=true', 'TC_ASYNC=true']
self.supported_toolchains = ["GCC_ARM", "ARM", "uARM"]
self.default_toolchain = "ARM"
self.progen_target ='samr21g18a'
class SAMD21J18A(Target):
def __init__(self):
@ -1673,6 +1737,7 @@ class SAMD21J18A(Target):
self.macros = ['__SAMD21J18A__', 'I2C_MASTER_CALLBACK_MODE=true', 'EXTINT_CALLBACK_MODE=true', 'USART_CALLBACK_MODE=true', 'TC_ASYNC=true']
self.supported_toolchains = ["GCC_ARM", "ARM", "uARM"]
self.default_toolchain = "ARM"
self.progen_target ='samd21j18a'
class SAMD21G18A(Target):
def __init__(self):
@ -1682,6 +1747,7 @@ class SAMD21G18A(Target):
self.macros = ['__SAMD21G18A__', 'I2C_MASTER_CALLBACK_MODE=true', 'EXTINT_CALLBACK_MODE=true', 'USART_CALLBACK_MODE=true', 'TC_ASYNC=true']
self.supported_toolchains = ["GCC_ARM", "ARM", "uARM"]
self.default_toolchain = "ARM"
self.progen_target ='samd21g18a'
class SAML21J18A(Target):
def __init__(self):
@ -1691,7 +1757,7 @@ class SAML21J18A(Target):
self.macros = ['__SAML21J18A__', 'I2C_MASTER_CALLBACK_MODE=true', 'EXTINT_CALLBACK_MODE=true', 'USART_CALLBACK_MODE=true', 'TC_ASYNC=true']
self.supported_toolchains = ["GCC_ARM", "ARM", "uARM"]
self.default_toolchain = "ARM"
self.progen_target ='samr21j18a'
# Get a single instance for each target
TARGETS = [