mbed-os/workspace_tools/targets.py

987 lines
32 KiB
Python
Raw Normal View History

2013-08-06 13:38:00 +00:00
"""
mbed SDK
Copyright (c) 2011-2013 ARM Limited
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
2013-08-06 13:38:00 +00:00
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.
"""
CORE_LABELS = {
"ARM7TDMI-S": ["ARM7"],
"Cortex-M0" : ["M0", "CORTEX_M"],
"Cortex-M0+": ["M0P", "CORTEX_M"],
"Cortex-M3" : ["M3", "CORTEX_M"],
"Cortex-M4" : ["M4", "CORTEX_M"],
"Cortex-M4F" : ["M4", "CORTEX_M"],
"Cortex-A9" : ["A9", "CORTEX_A"]
}
import os
import shutil
from workspace_tools.patch import patch
2013-11-25 16:32:46 +00:00
class Target:
def __init__(self):
# ARM Core
self.core = None
# Is the disk provided by the interface chip of this board virtual?
self.is_disk_virtual = False
# list of toolchains that are supported by the mbed SDK for this target
self.supported_toolchains = None
# list of extra specific labels
self.extra_labels = []
Target K64F addition. Squashed commit of the following: commit db3c9f7682083abeb291e01df31e67e4c50845b3 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Apr 2 09:52:00 2014 +0200 K64F - KSDK - Warnings fixes commit a639a5cdff889c13509c954b0a34ebac861c1361 Merge: 67a2c2a f3de345 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Apr 1 12:48:35 2014 +0200 Merge branch latest 'master' into dev_target_k64f Conflicts: libraries/rtos/rtx/RTX_Conf_CM.c workspace_tools/build_api.py commit 67a2c2aeb976f264db52ea10d18fea9de0d7685f Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 30 13:19:51 2014 +0200 K64F - PinName for buttons (SW2, SW3) commit 957573e2cd42d5c73ed99477abb98c8b883695b2 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 25 11:46:57 2014 +0100 K64F - pins addition to mbed HAL, uart - 4 instances, fix i2c instance which was not stored commit 2347a6d03984e297190910a250f2771032ae6327 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 15:20:51 2014 -0500 Added wait to i2c stop commit b7b4a9c72e8724087a44078c41a2cb33e4c8d5e3 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 24 19:28:16 2014 +0100 K64F - I2c - ack flag retreive correction (logic inverted in ksdk hal) commit 46c875251263029e32463c3b48473b10496088d9 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 13:16:18 2014 -0500 Added I2C Pinnames commit b71c7a0dfba7025662f9a9d176494ce4dc86273e Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 17:02:34 2014 +0100 K64F Arduino pinNames update commit d41b0ee493263d1d80fcb72b3f0d4d788359c7c9 Merge: 9c0a982 e2574eb Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 14:57:57 2014 +0100 Merge remote-tracking branch 'upstream/master' into dev_target_k64f. K64F gpio changed according to the latest mbed master. Conflicts: libraries/rtos/rtx/RTX_CM_lib.h workspace_tools/export/uvision4.py commit 9c0a9822ab14263fff5e3b6459b7c2b4a77ce30c Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 17 21:08:17 2014 +0100 K64F - sleep support commit 5edcf3603d2e7b00eedbb377203a054b7a01e51d Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 16 18:19:55 2014 +0100 K64F - pullup/down corrections, LED1 - R, LED2 - G, LED3 - B commit a2b3b53a1474d32779654765cd1ce2ba2c6b2186 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 13 20:55:39 2014 +0100 K64F - SPI - delays are set, pin definition for tests commit 1f3b3abe16f4afaaf1b75cb4bf3e3a9d5b6e50a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 21:26:00 2014 +0100 K64F - DAC update - tested with test a8 - internal reference set to VDDA - PinName DAC0_OUT commit 26d8cf47f8c0786b290ae659beb022901029b313 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 08:31:44 2014 +0100 KSDK - drivers layer removal, mbed HAL using only KSDK HAL - ADC corrections with channels, and clock configuration commit 67ebe14f5c88725033ea0fb135d94b6bf9a00fdb Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:46:08 2014 +0100 K20 copy files removed, targets.py - vertical alignment for K64F definition commit be5c562d513c808e5bd425195a4fb1c71f47a57e Merge: 696a713 fe0aca9 Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:14:55 2014 +0000 Merge branch 'rtos_support' into dev_target_k64f commit 696a713751194b4762f1cdf6c17c0786decd7808 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:05:30 2014 +0100 [FIX] K64F - adc, sgtl driver updates commit fe0aca9940bbdd5ee70a1a7341a0a2ad2abf912b Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:04:16 2014 +0000 Add RTOS support for K64F commit 5c3edcbca6dbcce628c7cde51ac94a6fc6278ba5 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 9 20:43:38 2014 +0100 K64F - uvision templates update - uvision 5.10 supports K64F commit 33f18d11d0eadb9243f1be0ae96c5f82e2913d48 Merge: 26f7587 74e9b2e Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Mar 8 10:34:25 2014 +0100 Update branch from mbed master - merge branch 'master' into dev_target_k64f Conflicts: libraries/USBDevice/USBDevice/USBEndpoints.h libraries/USBDevice/USBDevice/USBHAL_KL25Z.cpp workspace_tools/export/uvision4.py workspace_tools/targets.py commit 26f75872b19a1db2a3abb34c6e773bac56acb32f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 6 22:15:53 2014 +0100 K64F - USBDevice - MPU disable in init commit e54d6bbaa68827bd63058fbf2428e289d15ac1f7 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 21:06:58 2014 +0100 K64F - clock setup 4 (usb clock enable) commit c4165732b9520cb31ae3d649d50c353d09dc9932 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 20:01:47 2014 +0100 K64F - USBDevice addition commit 9fcdbb8562b1415561b04e902fcdbb4724add5af Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 24 19:11:48 2014 +0100 K64F SPI HAL - initial version commit 8093df58fa7d17fcb5ad04872c958d5254ee1d8a Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Feb 22 13:14:44 2014 +0100 K64F - RTC and I2C implementation (using KPSDK HAL) - instance correction in objects and peripherals names headers commit 7ef3fbda605c2bd53a86f37d0676c0393b2e2949 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Feb 14 09:45:27 2014 +0100 mbed RTC HAL for K64F commit e40332fd2db8bf36b3e6cabac5729e013da40c28 Merge: e059f65 6bfcd87 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Feb 13 14:20:20 2014 +0100 Merge branch 'master' into dev_target_k64f Conflicts: workspace_tools/build_api.py workspace_tools/export/uvision4.py workspace_tools/targets.py workspace_tools/toolchains/__init__.py commit e059f65fd09694418f9fa4f38da90954ab9decfe Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 5 21:35:49 2014 +0100 pwm mbed HAL - using jusst ftm hal from KPSDK, not yet functional commit b784278872b1d66ce2940f4988e0479971de8bc0 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 3 18:28:24 2014 +0100 uvision exporters for K64F, uticker - lptmr - lptmr - no hal neiter driver, quick implementation using registers and internal clock - exporters for K64F - using K60 1MB target, because K64F is not available in 4.7 yet commit 7a030693e025c2bd456563f3e6f4456033d3f644 Author: Bogdan Marinescu <bogdan.marinescu@arm.com> Date: Tue Jan 28 16:29:54 2014 +0200 Attempt to keep target's include directory structure commit a2445b383224125abf4ee23bd17f1e685010a4a5 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 27 07:25:16 2014 +0100 Original KPSDK include directory structure for device commit 9c07c58bb9cf5e9d8be4c3bec117ee87a5ea81c0 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 16:51:17 2014 +0000 K64F ADC - initial commit - ADC using KPSDK driver commit 88e03ef8c5855a57887bb36cddfa5ab1491d400c Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 12:18:14 2014 +0000 GPI IRQ - nvic vectors number correction - gpio irq HAL implementation commit e83f1108ae9f779ce240d6cdfe23532bfa00a55e Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 10:06:44 2014 +0000 PORT HAL implementation - using gpio hal port commit 75c21943200c8240d1edaf0a67f84b9f3b43db7f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 16:02:36 2014 +0000 Serial (only 8bit at the moment), using KPSDK HAL commit 296e79def617f005918cd8e2aa574f2908a362ca Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 08:35:50 2014 +0000 Folder structure correction for K64F - KPSDK - scripts reverted, only new macro is available - K64F specific headers are in HAL in device folder commit f236b1ffcb9c8b443ad8483bca8b0e564a63f004 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Jan 22 16:07:30 2014 +0100 update KPSDK to RC1 - the update causes few more dependences which were reported. Will be removed later (usb, boards) - pit timer - hal use , pit driver uses us period commit f02c5353d4920e885f803ad235e5e82001e97b94 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:45:55 2014 +0100 KPSDK In/out declaration removal commit 8c88e098b4dc4901753309f1e6db4adb8aca4384 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:12:41 2014 +0100 gpio_t struct only needs pinName - gpio_init creates init objects on stack commit 6b96d4ea2c5a6a2cb13571d740ffb679a62f8f3d Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 19:59:03 2014 +0100 us ticker - pit implementation (not functional yet) - pit driver in KPSDK - added sdk prefix to needed functions commit 098e60a3846abcd4c9c00bd199b01d4b1899807f Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 13:01:58 2014 +0100 GPIO HAL - gpio_set implementation commit 2bfebbfc75dcd08c20297ba42dc0cc82e5381a40 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Jan 19 20:46:55 2014 +0100 GPIO KPSDK changes - gpio driver - sdk prefix, no lookuptable, input/output declaration, refactoring, set MUX to GPIO - gpio api in mbed implementation, tested on blue led commit d083733c485fbdd79ed9ce87100df9fee82294a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Jan 18 17:14:09 2014 +0100 Update folder structure for KPSDK - drivers addition - usb (needed by drivers - needs to be fixed) - utilities - hal folder - drivers/flash removed (needs to be fixed) - usb host removed (needs to be fixed) commit 9abcf3d94a2cc849cd6e586c1bad650b6a340a0c Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 16 11:06:16 2014 +0100 Initial commit for K64F - KPSDK addition - CMSIS + HAL for K64F - HAL is not yet implemented - scripts - target contain macros, ignore folders, cmsis copy folders
2014-04-02 12:39:01 +00:00
# list of macros (-D)
self.macros = []
# Default online compiler:
self.default_toolchain = "ARM"
self.name = self.__class__.__name__
# Code used to determine devices' platform
# This code is prefix in URL link provided in mbed.htm (in mbed disk)
self.detect_code = []
def program_cycle_s(self):
return 4 if self.is_disk_virtual else 1.5
def get_labels(self):
return [self.name] + CORE_LABELS[self.core] + self.extra_labels
def init_hooks(self, hook, toolchain_name):
pass
2014-11-04 14:11:05 +00:00
### NXP ###
# This class implements the post-link patching step needed by LPC targets
class LPCTarget(Target):
def __init__(self):
Target.__init__(self)
def init_hooks(self, hook, toolchain_name):
hook.hook_add_binary("post", self.lpc_patch)
@staticmethod
def lpc_patch(t_self, resources, elf, binf):
t_self.debug("LPC Patch: %s" % os.path.split(binf)[1])
patch(binf)
class LPC11C24(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11XX_11CXX', 'LPC11CXX']
2014-11-18 14:49:23 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
class LPC1114(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11XX_11CXX', 'LPC11XX']
2014-11-18 14:49:23 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
class LPC11U24(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
2013-08-09 16:18:50 +00:00
self.extra_labels = ['NXP', 'LPC11UXX', 'LPC11U24_401']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.detect_code = ["1040"]
class OC_MBUINO(LPC11U24):
def __init__(self):
LPC11U24.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX']
self.macros = ['TARGET_LPC11U24']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
class LPC11U24_301(LPCTarget):
2013-08-09 16:21:03 +00:00
def __init__(self):
LPCTarget.__init__(self)
2013-08-09 16:21:03 +00:00
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
2013-08-09 16:21:03 +00:00
class LPC11U35_401(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
class LPC11U35_501(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX', 'MCU_LPC11U35_501']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR" , "IAR"]
self.default_toolchain = "uARM"
class LPC11U35_Y5_MBUG(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX', 'MCU_LPC11U35_501']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR" , "IAR"]
self.default_toolchain = "uARM"
class LPC11U37_501(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
class LPCCAPPUCCINO(LPC11U37_501):
def __init__(self):
LPC11U37_501.__init__(self)
class ARCH_GPRS(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX', 'LPC11U37_501']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
class LPC11U68(LPCTarget):
2013-09-24 14:01:06 +00:00
def __init__(self):
LPCTarget.__init__(self)
2013-09-24 14:01:06 +00:00
self.core = "Cortex-M0+"
self.extra_labels = ['NXP', 'LPC11U6X']
2014-11-18 08:51:34 +00:00
self.supported_toolchains = ["uARM", "GCC_CR", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["1168"]
class LPC1347(LPCTarget):
2013-09-24 14:36:04 +00:00
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC13XX']
self.supported_toolchains = ["ARM", "GCC_ARM","IAR"]
class LPC1549(LPCTarget):
Target K64F addition. Squashed commit of the following: commit db3c9f7682083abeb291e01df31e67e4c50845b3 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Apr 2 09:52:00 2014 +0200 K64F - KSDK - Warnings fixes commit a639a5cdff889c13509c954b0a34ebac861c1361 Merge: 67a2c2a f3de345 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Apr 1 12:48:35 2014 +0200 Merge branch latest 'master' into dev_target_k64f Conflicts: libraries/rtos/rtx/RTX_Conf_CM.c workspace_tools/build_api.py commit 67a2c2aeb976f264db52ea10d18fea9de0d7685f Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 30 13:19:51 2014 +0200 K64F - PinName for buttons (SW2, SW3) commit 957573e2cd42d5c73ed99477abb98c8b883695b2 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 25 11:46:57 2014 +0100 K64F - pins addition to mbed HAL, uart - 4 instances, fix i2c instance which was not stored commit 2347a6d03984e297190910a250f2771032ae6327 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 15:20:51 2014 -0500 Added wait to i2c stop commit b7b4a9c72e8724087a44078c41a2cb33e4c8d5e3 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 24 19:28:16 2014 +0100 K64F - I2c - ack flag retreive correction (logic inverted in ksdk hal) commit 46c875251263029e32463c3b48473b10496088d9 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 13:16:18 2014 -0500 Added I2C Pinnames commit b71c7a0dfba7025662f9a9d176494ce4dc86273e Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 17:02:34 2014 +0100 K64F Arduino pinNames update commit d41b0ee493263d1d80fcb72b3f0d4d788359c7c9 Merge: 9c0a982 e2574eb Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 14:57:57 2014 +0100 Merge remote-tracking branch 'upstream/master' into dev_target_k64f. K64F gpio changed according to the latest mbed master. Conflicts: libraries/rtos/rtx/RTX_CM_lib.h workspace_tools/export/uvision4.py commit 9c0a9822ab14263fff5e3b6459b7c2b4a77ce30c Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 17 21:08:17 2014 +0100 K64F - sleep support commit 5edcf3603d2e7b00eedbb377203a054b7a01e51d Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 16 18:19:55 2014 +0100 K64F - pullup/down corrections, LED1 - R, LED2 - G, LED3 - B commit a2b3b53a1474d32779654765cd1ce2ba2c6b2186 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 13 20:55:39 2014 +0100 K64F - SPI - delays are set, pin definition for tests commit 1f3b3abe16f4afaaf1b75cb4bf3e3a9d5b6e50a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 21:26:00 2014 +0100 K64F - DAC update - tested with test a8 - internal reference set to VDDA - PinName DAC0_OUT commit 26d8cf47f8c0786b290ae659beb022901029b313 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 08:31:44 2014 +0100 KSDK - drivers layer removal, mbed HAL using only KSDK HAL - ADC corrections with channels, and clock configuration commit 67ebe14f5c88725033ea0fb135d94b6bf9a00fdb Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:46:08 2014 +0100 K20 copy files removed, targets.py - vertical alignment for K64F definition commit be5c562d513c808e5bd425195a4fb1c71f47a57e Merge: 696a713 fe0aca9 Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:14:55 2014 +0000 Merge branch 'rtos_support' into dev_target_k64f commit 696a713751194b4762f1cdf6c17c0786decd7808 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:05:30 2014 +0100 [FIX] K64F - adc, sgtl driver updates commit fe0aca9940bbdd5ee70a1a7341a0a2ad2abf912b Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:04:16 2014 +0000 Add RTOS support for K64F commit 5c3edcbca6dbcce628c7cde51ac94a6fc6278ba5 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 9 20:43:38 2014 +0100 K64F - uvision templates update - uvision 5.10 supports K64F commit 33f18d11d0eadb9243f1be0ae96c5f82e2913d48 Merge: 26f7587 74e9b2e Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Mar 8 10:34:25 2014 +0100 Update branch from mbed master - merge branch 'master' into dev_target_k64f Conflicts: libraries/USBDevice/USBDevice/USBEndpoints.h libraries/USBDevice/USBDevice/USBHAL_KL25Z.cpp workspace_tools/export/uvision4.py workspace_tools/targets.py commit 26f75872b19a1db2a3abb34c6e773bac56acb32f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 6 22:15:53 2014 +0100 K64F - USBDevice - MPU disable in init commit e54d6bbaa68827bd63058fbf2428e289d15ac1f7 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 21:06:58 2014 +0100 K64F - clock setup 4 (usb clock enable) commit c4165732b9520cb31ae3d649d50c353d09dc9932 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 20:01:47 2014 +0100 K64F - USBDevice addition commit 9fcdbb8562b1415561b04e902fcdbb4724add5af Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 24 19:11:48 2014 +0100 K64F SPI HAL - initial version commit 8093df58fa7d17fcb5ad04872c958d5254ee1d8a Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Feb 22 13:14:44 2014 +0100 K64F - RTC and I2C implementation (using KPSDK HAL) - instance correction in objects and peripherals names headers commit 7ef3fbda605c2bd53a86f37d0676c0393b2e2949 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Feb 14 09:45:27 2014 +0100 mbed RTC HAL for K64F commit e40332fd2db8bf36b3e6cabac5729e013da40c28 Merge: e059f65 6bfcd87 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Feb 13 14:20:20 2014 +0100 Merge branch 'master' into dev_target_k64f Conflicts: workspace_tools/build_api.py workspace_tools/export/uvision4.py workspace_tools/targets.py workspace_tools/toolchains/__init__.py commit e059f65fd09694418f9fa4f38da90954ab9decfe Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 5 21:35:49 2014 +0100 pwm mbed HAL - using jusst ftm hal from KPSDK, not yet functional commit b784278872b1d66ce2940f4988e0479971de8bc0 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 3 18:28:24 2014 +0100 uvision exporters for K64F, uticker - lptmr - lptmr - no hal neiter driver, quick implementation using registers and internal clock - exporters for K64F - using K60 1MB target, because K64F is not available in 4.7 yet commit 7a030693e025c2bd456563f3e6f4456033d3f644 Author: Bogdan Marinescu <bogdan.marinescu@arm.com> Date: Tue Jan 28 16:29:54 2014 +0200 Attempt to keep target's include directory structure commit a2445b383224125abf4ee23bd17f1e685010a4a5 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 27 07:25:16 2014 +0100 Original KPSDK include directory structure for device commit 9c07c58bb9cf5e9d8be4c3bec117ee87a5ea81c0 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 16:51:17 2014 +0000 K64F ADC - initial commit - ADC using KPSDK driver commit 88e03ef8c5855a57887bb36cddfa5ab1491d400c Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 12:18:14 2014 +0000 GPI IRQ - nvic vectors number correction - gpio irq HAL implementation commit e83f1108ae9f779ce240d6cdfe23532bfa00a55e Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 10:06:44 2014 +0000 PORT HAL implementation - using gpio hal port commit 75c21943200c8240d1edaf0a67f84b9f3b43db7f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 16:02:36 2014 +0000 Serial (only 8bit at the moment), using KPSDK HAL commit 296e79def617f005918cd8e2aa574f2908a362ca Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 08:35:50 2014 +0000 Folder structure correction for K64F - KPSDK - scripts reverted, only new macro is available - K64F specific headers are in HAL in device folder commit f236b1ffcb9c8b443ad8483bca8b0e564a63f004 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Jan 22 16:07:30 2014 +0100 update KPSDK to RC1 - the update causes few more dependences which were reported. Will be removed later (usb, boards) - pit timer - hal use , pit driver uses us period commit f02c5353d4920e885f803ad235e5e82001e97b94 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:45:55 2014 +0100 KPSDK In/out declaration removal commit 8c88e098b4dc4901753309f1e6db4adb8aca4384 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:12:41 2014 +0100 gpio_t struct only needs pinName - gpio_init creates init objects on stack commit 6b96d4ea2c5a6a2cb13571d740ffb679a62f8f3d Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 19:59:03 2014 +0100 us ticker - pit implementation (not functional yet) - pit driver in KPSDK - added sdk prefix to needed functions commit 098e60a3846abcd4c9c00bd199b01d4b1899807f Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 13:01:58 2014 +0100 GPIO HAL - gpio_set implementation commit 2bfebbfc75dcd08c20297ba42dc0cc82e5381a40 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Jan 19 20:46:55 2014 +0100 GPIO KPSDK changes - gpio driver - sdk prefix, no lookuptable, input/output declaration, refactoring, set MUX to GPIO - gpio api in mbed implementation, tested on blue led commit d083733c485fbdd79ed9ce87100df9fee82294a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Jan 18 17:14:09 2014 +0100 Update folder structure for KPSDK - drivers addition - usb (needed by drivers - needs to be fixed) - utilities - hal folder - drivers/flash removed (needs to be fixed) - usb host removed (needs to be fixed) commit 9abcf3d94a2cc849cd6e586c1bad650b6a340a0c Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 16 11:06:16 2014 +0100 Initial commit for K64F - KPSDK addition - CMSIS + HAL for K64F - HAL is not yet implemented - scripts - target contain macros, ignore folders, cmsis copy folders
2014-04-02 12:39:01 +00:00
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC15XX']
2014-11-18 15:01:34 +00:00
self.supported_toolchains = ["uARM", "GCC_CR", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.detect_code = ["1549"]
class LPC1768(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC176X', 'MBED_LPC1768']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.detect_code = ["1010"]
Target K64F addition. Squashed commit of the following: commit db3c9f7682083abeb291e01df31e67e4c50845b3 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Apr 2 09:52:00 2014 +0200 K64F - KSDK - Warnings fixes commit a639a5cdff889c13509c954b0a34ebac861c1361 Merge: 67a2c2a f3de345 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Apr 1 12:48:35 2014 +0200 Merge branch latest 'master' into dev_target_k64f Conflicts: libraries/rtos/rtx/RTX_Conf_CM.c workspace_tools/build_api.py commit 67a2c2aeb976f264db52ea10d18fea9de0d7685f Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 30 13:19:51 2014 +0200 K64F - PinName for buttons (SW2, SW3) commit 957573e2cd42d5c73ed99477abb98c8b883695b2 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 25 11:46:57 2014 +0100 K64F - pins addition to mbed HAL, uart - 4 instances, fix i2c instance which was not stored commit 2347a6d03984e297190910a250f2771032ae6327 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 15:20:51 2014 -0500 Added wait to i2c stop commit b7b4a9c72e8724087a44078c41a2cb33e4c8d5e3 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 24 19:28:16 2014 +0100 K64F - I2c - ack flag retreive correction (logic inverted in ksdk hal) commit 46c875251263029e32463c3b48473b10496088d9 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 13:16:18 2014 -0500 Added I2C Pinnames commit b71c7a0dfba7025662f9a9d176494ce4dc86273e Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 17:02:34 2014 +0100 K64F Arduino pinNames update commit d41b0ee493263d1d80fcb72b3f0d4d788359c7c9 Merge: 9c0a982 e2574eb Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 14:57:57 2014 +0100 Merge remote-tracking branch 'upstream/master' into dev_target_k64f. K64F gpio changed according to the latest mbed master. Conflicts: libraries/rtos/rtx/RTX_CM_lib.h workspace_tools/export/uvision4.py commit 9c0a9822ab14263fff5e3b6459b7c2b4a77ce30c Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 17 21:08:17 2014 +0100 K64F - sleep support commit 5edcf3603d2e7b00eedbb377203a054b7a01e51d Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 16 18:19:55 2014 +0100 K64F - pullup/down corrections, LED1 - R, LED2 - G, LED3 - B commit a2b3b53a1474d32779654765cd1ce2ba2c6b2186 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 13 20:55:39 2014 +0100 K64F - SPI - delays are set, pin definition for tests commit 1f3b3abe16f4afaaf1b75cb4bf3e3a9d5b6e50a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 21:26:00 2014 +0100 K64F - DAC update - tested with test a8 - internal reference set to VDDA - PinName DAC0_OUT commit 26d8cf47f8c0786b290ae659beb022901029b313 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 08:31:44 2014 +0100 KSDK - drivers layer removal, mbed HAL using only KSDK HAL - ADC corrections with channels, and clock configuration commit 67ebe14f5c88725033ea0fb135d94b6bf9a00fdb Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:46:08 2014 +0100 K20 copy files removed, targets.py - vertical alignment for K64F definition commit be5c562d513c808e5bd425195a4fb1c71f47a57e Merge: 696a713 fe0aca9 Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:14:55 2014 +0000 Merge branch 'rtos_support' into dev_target_k64f commit 696a713751194b4762f1cdf6c17c0786decd7808 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:05:30 2014 +0100 [FIX] K64F - adc, sgtl driver updates commit fe0aca9940bbdd5ee70a1a7341a0a2ad2abf912b Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:04:16 2014 +0000 Add RTOS support for K64F commit 5c3edcbca6dbcce628c7cde51ac94a6fc6278ba5 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 9 20:43:38 2014 +0100 K64F - uvision templates update - uvision 5.10 supports K64F commit 33f18d11d0eadb9243f1be0ae96c5f82e2913d48 Merge: 26f7587 74e9b2e Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Mar 8 10:34:25 2014 +0100 Update branch from mbed master - merge branch 'master' into dev_target_k64f Conflicts: libraries/USBDevice/USBDevice/USBEndpoints.h libraries/USBDevice/USBDevice/USBHAL_KL25Z.cpp workspace_tools/export/uvision4.py workspace_tools/targets.py commit 26f75872b19a1db2a3abb34c6e773bac56acb32f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 6 22:15:53 2014 +0100 K64F - USBDevice - MPU disable in init commit e54d6bbaa68827bd63058fbf2428e289d15ac1f7 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 21:06:58 2014 +0100 K64F - clock setup 4 (usb clock enable) commit c4165732b9520cb31ae3d649d50c353d09dc9932 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 20:01:47 2014 +0100 K64F - USBDevice addition commit 9fcdbb8562b1415561b04e902fcdbb4724add5af Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 24 19:11:48 2014 +0100 K64F SPI HAL - initial version commit 8093df58fa7d17fcb5ad04872c958d5254ee1d8a Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Feb 22 13:14:44 2014 +0100 K64F - RTC and I2C implementation (using KPSDK HAL) - instance correction in objects and peripherals names headers commit 7ef3fbda605c2bd53a86f37d0676c0393b2e2949 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Feb 14 09:45:27 2014 +0100 mbed RTC HAL for K64F commit e40332fd2db8bf36b3e6cabac5729e013da40c28 Merge: e059f65 6bfcd87 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Feb 13 14:20:20 2014 +0100 Merge branch 'master' into dev_target_k64f Conflicts: workspace_tools/build_api.py workspace_tools/export/uvision4.py workspace_tools/targets.py workspace_tools/toolchains/__init__.py commit e059f65fd09694418f9fa4f38da90954ab9decfe Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 5 21:35:49 2014 +0100 pwm mbed HAL - using jusst ftm hal from KPSDK, not yet functional commit b784278872b1d66ce2940f4988e0479971de8bc0 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 3 18:28:24 2014 +0100 uvision exporters for K64F, uticker - lptmr - lptmr - no hal neiter driver, quick implementation using registers and internal clock - exporters for K64F - using K60 1MB target, because K64F is not available in 4.7 yet commit 7a030693e025c2bd456563f3e6f4456033d3f644 Author: Bogdan Marinescu <bogdan.marinescu@arm.com> Date: Tue Jan 28 16:29:54 2014 +0200 Attempt to keep target's include directory structure commit a2445b383224125abf4ee23bd17f1e685010a4a5 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 27 07:25:16 2014 +0100 Original KPSDK include directory structure for device commit 9c07c58bb9cf5e9d8be4c3bec117ee87a5ea81c0 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 16:51:17 2014 +0000 K64F ADC - initial commit - ADC using KPSDK driver commit 88e03ef8c5855a57887bb36cddfa5ab1491d400c Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 12:18:14 2014 +0000 GPI IRQ - nvic vectors number correction - gpio irq HAL implementation commit e83f1108ae9f779ce240d6cdfe23532bfa00a55e Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 10:06:44 2014 +0000 PORT HAL implementation - using gpio hal port commit 75c21943200c8240d1edaf0a67f84b9f3b43db7f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 16:02:36 2014 +0000 Serial (only 8bit at the moment), using KPSDK HAL commit 296e79def617f005918cd8e2aa574f2908a362ca Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 08:35:50 2014 +0000 Folder structure correction for K64F - KPSDK - scripts reverted, only new macro is available - K64F specific headers are in HAL in device folder commit f236b1ffcb9c8b443ad8483bca8b0e564a63f004 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Jan 22 16:07:30 2014 +0100 update KPSDK to RC1 - the update causes few more dependences which were reported. Will be removed later (usb, boards) - pit timer - hal use , pit driver uses us period commit f02c5353d4920e885f803ad235e5e82001e97b94 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:45:55 2014 +0100 KPSDK In/out declaration removal commit 8c88e098b4dc4901753309f1e6db4adb8aca4384 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:12:41 2014 +0100 gpio_t struct only needs pinName - gpio_init creates init objects on stack commit 6b96d4ea2c5a6a2cb13571d740ffb679a62f8f3d Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 19:59:03 2014 +0100 us ticker - pit implementation (not functional yet) - pit driver in KPSDK - added sdk prefix to needed functions commit 098e60a3846abcd4c9c00bd199b01d4b1899807f Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 13:01:58 2014 +0100 GPIO HAL - gpio_set implementation commit 2bfebbfc75dcd08c20297ba42dc0cc82e5381a40 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Jan 19 20:46:55 2014 +0100 GPIO KPSDK changes - gpio driver - sdk prefix, no lookuptable, input/output declaration, refactoring, set MUX to GPIO - gpio api in mbed implementation, tested on blue led commit d083733c485fbdd79ed9ce87100df9fee82294a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Jan 18 17:14:09 2014 +0100 Update folder structure for KPSDK - drivers addition - usb (needed by drivers - needs to be fixed) - utilities - hal folder - drivers/flash removed (needs to be fixed) - usb host removed (needs to be fixed) commit 9abcf3d94a2cc849cd6e586c1bad650b6a340a0c Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 16 11:06:16 2014 +0100 Initial commit for K64F - KPSDK addition - CMSIS + HAL for K64F - HAL is not yet implemented - scripts - target contain macros, ignore folders, cmsis copy folders
2014-04-02 12:39:01 +00:00
class ARCH_PRO(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC176X']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.macros = ['TARGET_LPC1768']
self.supported_form_factors = ["ARDUINO"]
class UBLOX_C027(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC176X']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CS", "GCC_CR", "IAR"]
self.macros = ['TARGET_LPC1768']
self.supported_form_factors = ["ARDUINO"]
Target K64F addition. Squashed commit of the following: commit db3c9f7682083abeb291e01df31e67e4c50845b3 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Apr 2 09:52:00 2014 +0200 K64F - KSDK - Warnings fixes commit a639a5cdff889c13509c954b0a34ebac861c1361 Merge: 67a2c2a f3de345 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Apr 1 12:48:35 2014 +0200 Merge branch latest 'master' into dev_target_k64f Conflicts: libraries/rtos/rtx/RTX_Conf_CM.c workspace_tools/build_api.py commit 67a2c2aeb976f264db52ea10d18fea9de0d7685f Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 30 13:19:51 2014 +0200 K64F - PinName for buttons (SW2, SW3) commit 957573e2cd42d5c73ed99477abb98c8b883695b2 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 25 11:46:57 2014 +0100 K64F - pins addition to mbed HAL, uart - 4 instances, fix i2c instance which was not stored commit 2347a6d03984e297190910a250f2771032ae6327 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 15:20:51 2014 -0500 Added wait to i2c stop commit b7b4a9c72e8724087a44078c41a2cb33e4c8d5e3 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 24 19:28:16 2014 +0100 K64F - I2c - ack flag retreive correction (logic inverted in ksdk hal) commit 46c875251263029e32463c3b48473b10496088d9 Author: sg- <sam.w.grove@gmail.com> Date: Mon Mar 24 13:16:18 2014 -0500 Added I2C Pinnames commit b71c7a0dfba7025662f9a9d176494ce4dc86273e Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 17:02:34 2014 +0100 K64F Arduino pinNames update commit d41b0ee493263d1d80fcb72b3f0d4d788359c7c9 Merge: 9c0a982 e2574eb Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 18 14:57:57 2014 +0100 Merge remote-tracking branch 'upstream/master' into dev_target_k64f. K64F gpio changed according to the latest mbed master. Conflicts: libraries/rtos/rtx/RTX_CM_lib.h workspace_tools/export/uvision4.py commit 9c0a9822ab14263fff5e3b6459b7c2b4a77ce30c Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 17 21:08:17 2014 +0100 K64F - sleep support commit 5edcf3603d2e7b00eedbb377203a054b7a01e51d Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 16 18:19:55 2014 +0100 K64F - pullup/down corrections, LED1 - R, LED2 - G, LED3 - B commit a2b3b53a1474d32779654765cd1ce2ba2c6b2186 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 13 20:55:39 2014 +0100 K64F - SPI - delays are set, pin definition for tests commit 1f3b3abe16f4afaaf1b75cb4bf3e3a9d5b6e50a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 21:26:00 2014 +0100 K64F - DAC update - tested with test a8 - internal reference set to VDDA - PinName DAC0_OUT commit 26d8cf47f8c0786b290ae659beb022901029b313 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Mar 11 08:31:44 2014 +0100 KSDK - drivers layer removal, mbed HAL using only KSDK HAL - ADC corrections with channels, and clock configuration commit 67ebe14f5c88725033ea0fb135d94b6bf9a00fdb Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:46:08 2014 +0100 K20 copy files removed, targets.py - vertical alignment for K64F definition commit be5c562d513c808e5bd425195a4fb1c71f47a57e Merge: 696a713 fe0aca9 Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:14:55 2014 +0000 Merge branch 'rtos_support' into dev_target_k64f commit 696a713751194b4762f1cdf6c17c0786decd7808 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Mar 10 12:05:30 2014 +0100 [FIX] K64F - adc, sgtl driver updates commit fe0aca9940bbdd5ee70a1a7341a0a2ad2abf912b Author: Emilio Monti <emilmont@gmail.com> Date: Mon Mar 10 11:04:16 2014 +0000 Add RTOS support for K64F commit 5c3edcbca6dbcce628c7cde51ac94a6fc6278ba5 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Mar 9 20:43:38 2014 +0100 K64F - uvision templates update - uvision 5.10 supports K64F commit 33f18d11d0eadb9243f1be0ae96c5f82e2913d48 Merge: 26f7587 74e9b2e Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Mar 8 10:34:25 2014 +0100 Update branch from mbed master - merge branch 'master' into dev_target_k64f Conflicts: libraries/USBDevice/USBDevice/USBEndpoints.h libraries/USBDevice/USBDevice/USBHAL_KL25Z.cpp workspace_tools/export/uvision4.py workspace_tools/targets.py commit 26f75872b19a1db2a3abb34c6e773bac56acb32f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Mar 6 22:15:53 2014 +0100 K64F - USBDevice - MPU disable in init commit e54d6bbaa68827bd63058fbf2428e289d15ac1f7 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 21:06:58 2014 +0100 K64F - clock setup 4 (usb clock enable) commit c4165732b9520cb31ae3d649d50c353d09dc9932 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 26 20:01:47 2014 +0100 K64F - USBDevice addition commit 9fcdbb8562b1415561b04e902fcdbb4724add5af Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 24 19:11:48 2014 +0100 K64F SPI HAL - initial version commit 8093df58fa7d17fcb5ad04872c958d5254ee1d8a Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Feb 22 13:14:44 2014 +0100 K64F - RTC and I2C implementation (using KPSDK HAL) - instance correction in objects and peripherals names headers commit 7ef3fbda605c2bd53a86f37d0676c0393b2e2949 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Feb 14 09:45:27 2014 +0100 mbed RTC HAL for K64F commit e40332fd2db8bf36b3e6cabac5729e013da40c28 Merge: e059f65 6bfcd87 Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Feb 13 14:20:20 2014 +0100 Merge branch 'master' into dev_target_k64f Conflicts: workspace_tools/build_api.py workspace_tools/export/uvision4.py workspace_tools/targets.py workspace_tools/toolchains/__init__.py commit e059f65fd09694418f9fa4f38da90954ab9decfe Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Feb 5 21:35:49 2014 +0100 pwm mbed HAL - using jusst ftm hal from KPSDK, not yet functional commit b784278872b1d66ce2940f4988e0479971de8bc0 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Feb 3 18:28:24 2014 +0100 uvision exporters for K64F, uticker - lptmr - lptmr - no hal neiter driver, quick implementation using registers and internal clock - exporters for K64F - using K60 1MB target, because K64F is not available in 4.7 yet commit 7a030693e025c2bd456563f3e6f4456033d3f644 Author: Bogdan Marinescu <bogdan.marinescu@arm.com> Date: Tue Jan 28 16:29:54 2014 +0200 Attempt to keep target's include directory structure commit a2445b383224125abf4ee23bd17f1e685010a4a5 Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 27 07:25:16 2014 +0100 Original KPSDK include directory structure for device commit 9c07c58bb9cf5e9d8be4c3bec117ee87a5ea81c0 Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 16:51:17 2014 +0000 K64F ADC - initial commit - ADC using KPSDK driver commit 88e03ef8c5855a57887bb36cddfa5ab1491d400c Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 12:18:14 2014 +0000 GPI IRQ - nvic vectors number correction - gpio irq HAL implementation commit e83f1108ae9f779ce240d6cdfe23532bfa00a55e Author: 0xc0170 <c0170@rocketmail.com> Date: Fri Jan 24 10:06:44 2014 +0000 PORT HAL implementation - using gpio hal port commit 75c21943200c8240d1edaf0a67f84b9f3b43db7f Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 16:02:36 2014 +0000 Serial (only 8bit at the moment), using KPSDK HAL commit 296e79def617f005918cd8e2aa574f2908a362ca Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 23 08:35:50 2014 +0000 Folder structure correction for K64F - KPSDK - scripts reverted, only new macro is available - K64F specific headers are in HAL in device folder commit f236b1ffcb9c8b443ad8483bca8b0e564a63f004 Author: 0xc0170 <c0170@rocketmail.com> Date: Wed Jan 22 16:07:30 2014 +0100 update KPSDK to RC1 - the update causes few more dependences which were reported. Will be removed later (usb, boards) - pit timer - hal use , pit driver uses us period commit f02c5353d4920e885f803ad235e5e82001e97b94 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:45:55 2014 +0100 KPSDK In/out declaration removal commit 8c88e098b4dc4901753309f1e6db4adb8aca4384 Author: 0xc0170 <c0170@rocketmail.com> Date: Tue Jan 21 09:12:41 2014 +0100 gpio_t struct only needs pinName - gpio_init creates init objects on stack commit 6b96d4ea2c5a6a2cb13571d740ffb679a62f8f3d Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 19:59:03 2014 +0100 us ticker - pit implementation (not functional yet) - pit driver in KPSDK - added sdk prefix to needed functions commit 098e60a3846abcd4c9c00bd199b01d4b1899807f Author: 0xc0170 <c0170@rocketmail.com> Date: Mon Jan 20 13:01:58 2014 +0100 GPIO HAL - gpio_set implementation commit 2bfebbfc75dcd08c20297ba42dc0cc82e5381a40 Author: 0xc0170 <c0170@rocketmail.com> Date: Sun Jan 19 20:46:55 2014 +0100 GPIO KPSDK changes - gpio driver - sdk prefix, no lookuptable, input/output declaration, refactoring, set MUX to GPIO - gpio api in mbed implementation, tested on blue led commit d083733c485fbdd79ed9ce87100df9fee82294a7 Author: 0xc0170 <c0170@rocketmail.com> Date: Sat Jan 18 17:14:09 2014 +0100 Update folder structure for KPSDK - drivers addition - usb (needed by drivers - needs to be fixed) - utilities - hal folder - drivers/flash removed (needs to be fixed) - usb host removed (needs to be fixed) commit 9abcf3d94a2cc849cd6e586c1bad650b6a340a0c Author: 0xc0170 <c0170@rocketmail.com> Date: Thu Jan 16 11:06:16 2014 +0100 Initial commit for K64F - KPSDK addition - CMSIS + HAL for K64F - HAL is not yet implemented - scripts - target contain macros, ignore folders, cmsis copy folders
2014-04-02 12:39:01 +00:00
class LPC2368(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "ARM7TDMI-S"
self.extra_labels = ['NXP', 'LPC23XX']
self.supported_toolchains = ["ARM", "GCC_ARM", "GCC_CR"]
class LPC810(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['NXP', 'LPC81X']
2014-11-18 15:09:38 +00:00
self.supported_toolchains = ["uARM", "IAR"]
self.default_toolchain = "uARM"
self.is_disk_virtual = True
class LPC812(LPCTarget):
2013-08-24 06:49:16 +00:00
def __init__(self):
LPCTarget.__init__(self)
2013-08-24 06:49:16 +00:00
self.core = "Cortex-M0+"
self.extra_labels = ['NXP', 'LPC81X']
2014-11-18 15:09:38 +00:00
self.supported_toolchains = ["uARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
2013-08-24 06:49:16 +00:00
self.is_disk_virtual = True
self.detect_code = ["1050"]
2013-08-24 06:49:16 +00:00
class LPC824(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['NXP', 'LPC82X']
self.supported_toolchains = ["uARM", "GCC_ARM","GCC_CR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
2014-10-19 13:49:16 +00:00
class SSCI824(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['NXP', 'LPC82X']
self.supported_toolchains = ["uARM"]
self.default_toolchain = "uARM"
self.is_disk_virtual = True
class LPC4088(LPCTarget):
2013-05-16 06:53:02 +00:00
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['NXP', 'LPC408X']
2014-11-18 15:19:26 +00:00
self.supported_toolchains = ["ARM", "GCC_CR", "GCC_ARM", "IAR"]
self.is_disk_virtual = True
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['ARM_STD', 'ARM_MICRO']:
hook.hook_add_binary("post", self.binary_hook)
@staticmethod
def binary_hook(t_self, resources, elf, binf):
if not os.path.isdir(binf):
# Regular binary file, nothing to do
LPCTarget.lpc_patch(t_self, resources, elf, binf)
return
outbin = open(binf + ".temp", "wb")
partf = open(os.path.join(binf, "ER_IROM1"), "rb")
# Pad the fist part (internal flash) with 0xFF to 512k
data = partf.read()
outbin.write(data)
outbin.write('\xFF' * (512*1024 - len(data)))
partf.close()
# Read and append the second part (external flash) in chunks of fixed size
chunksize = 128 * 1024
partf = open(os.path.join(binf, "ER_IROM2"), "rb")
while True:
data = partf.read(chunksize)
outbin.write(data)
if len(data) < chunksize:
break
partf.close()
outbin.close()
# Remove the directory with the binary parts and rename the temporary
# file to 'binf'
shutil.rmtree(binf, True)
os.rename(binf + '.temp', binf)
t_self.debug("Generated custom binary file (internal flash + SPIFI)")
LPCTarget.lpc_patch(t_self, resources, elf, binf)
class LPC4330_M4(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['NXP', 'LPC43XX', 'LPC4330']
self.supported_toolchains = ["ARM", "GCC_CR", "IAR", "GCC_ARM"]
class LPC4330_M0(LPCTarget):
2013-07-08 03:27:11 +00:00
def __init__(self):
LPCTarget.__init__(self)
2013-07-08 03:27:11 +00:00
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC43XX', 'LPC4330']
2013-07-08 03:27:11 +00:00
self.supported_toolchains = ["ARM", "GCC_CR", "IAR"]
class LPC4337(LPCTarget):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['NXP', 'LPC43XX', 'LPC4337']
self.supported_toolchains = ["ARM"]
2013-08-09 16:18:50 +00:00
class LPC1800(LPCTarget):
2013-07-08 03:27:11 +00:00
def __init__(self):
LPCTarget.__init__(self)
2013-07-08 03:27:11 +00:00
self.core = "Cortex-M3"
self.extra_labels = ['NXP', 'LPC43XX']
self.supported_toolchains = ["ARM", "GCC_CR", "IAR"]
2015-01-17 07:59:17 +00:00
class LPC11U37H_401(LPCTarget):
def __init__(self):
LPCTarget.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
2014-11-04 14:11:05 +00:00
### Freescale ###
2013-08-09 16:18:50 +00:00
class KL05Z(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['Freescale', 'KLXX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
class KL25Z(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['Freescale', 'KLXX']
self.supported_toolchains = ["ARM", "GCC_CW_EWL", "GCC_CW_NEWLIB", "GCC_ARM","IAR"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["0200"]
class KL43Z(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['Freescale', 'KLXX']
self.supported_toolchains = ["GCC_ARM", "ARM"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
class KL46Z(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['Freescale', 'KLXX']
self.supported_toolchains = ["GCC_ARM", "ARM", "IAR"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.detect_code = ["0220"]
class K20D50M(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4"
2015-01-15 19:11:40 +00:00
self.extra_labels = ['Freescale', 'K20XX']
self.supported_toolchains = ["GCC_ARM", "ARM", "IAR"]
self.is_disk_virtual = True
self.detect_code = ["0230"]
2015-01-15 19:11:40 +00:00
class TEENSY3_1(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4"
self.extra_labels = ['Freescale', 'K20XX', 'K20DX256']
self.supported_toolchains = ["GCC_ARM", "ARM"]
self.is_disk_virtual = True
self.detect_code = ["0230"]
OUTPUT_EXT = '.hex'
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['ARM_STD', 'ARM_MICRO', 'GCC_ARM']:
hook.hook_add_binary("post", self.binary_hook)
@staticmethod
def binary_hook(t_self, resources, elf, binf):
from intelhex import IntelHex
binh = IntelHex()
binh.loadbin(binf, offset = 0)
with open(binf.replace(".bin", ".hex"), "w") as f:
binh.tofile(f, format='hex')
class K22F(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['Freescale', 'KPSDK_MCUS', 'KPSDK_CODE']
self.macros = ["CPU_MK22FN512VLH12", "FSL_RTOS_MBED"]
self.supported_toolchains = ["ARM", "GCC_ARM", "IAR"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
2014-12-01 10:40:17 +00:00
self.detect_code = ["0201"]
class K64F(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['Freescale', 'KPSDK_MCUS', 'KPSDK_CODE', 'MCU_K64F', 'FRDM']
self.macros = ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED"]
2014-10-27 16:23:06 +00:00
self.supported_toolchains = ["ARM", "GCC_ARM", "IAR"]
self.supported_form_factors = ["ARDUINO"]
self.is_disk_virtual = True
self.default_toolchain = "ARM"
self.detect_code = ["0240"]
class MTS_GAMBIT(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['Freescale', 'KPSDK_MCUS', 'KPSDK_CODE', 'MCU_K64F']
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.macros = ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"]
self.is_disk_virtual = True
self.default_toolchain = "ARM"
2013-05-16 06:53:02 +00:00
2014-11-04 14:11:05 +00:00
### STMicro ###
class NUCLEO_F030R8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['STM', 'STM32F0', 'STM32F030R8']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0725"]
class NUCLEO_F070RB(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['STM', 'STM32F0', 'STM32F070RB']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0755"]
class NUCLEO_F072RB(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['STM', 'STM32F0', 'STM32F072RB']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0730"]
class NUCLEO_F091RC(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['STM', 'STM32F0', 'STM32F091RC']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0731"]
2013-11-14 10:07:01 +00:00
class NUCLEO_F103RB(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['STM', 'STM32F1', 'STM32F103RB']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0700"]
class NUCLEO_F302R8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F3', 'STM32F302R8']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0705"]
class NUCLEO_F303RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F3', 'STM32F303RE']
2015-01-20 12:10:22 +00:00
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0706"]
2014-12-17 03:40:09 +00:00
2014-06-24 09:18:43 +00:00
class NUCLEO_F334R8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F3', 'STM32F334R8']
2014-10-31 12:40:36 +00:00
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
2014-06-24 09:18:43 +00:00
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0735"]
2014-06-24 09:18:43 +00:00
class NUCLEO_F401RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F401RE']
2014-10-27 10:20:08 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0720"]
2014-06-20 12:17:55 +00:00
class NUCLEO_F411RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
2014-06-20 12:17:55 +00:00
self.extra_labels = ['STM', 'STM32F4', 'STM32F411RE']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
2014-06-20 12:17:55 +00:00
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0740"]
2014-06-20 12:17:55 +00:00
class NUCLEO_L053R8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['STM', 'STM32L0', 'STM32L053R8']
2014-11-05 09:42:44 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0715"]
class NUCLEO_L152RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['STM', 'STM32L1', 'STM32L152RE']
self.supported_toolchains = ["ARM", "uARM", "IAR", "GCC_ARM"]
self.default_toolchain = "uARM"
self.supported_form_factors = ["ARDUINO", "MORPHO"]
self.detect_code = ["0710"]
class STM32F3XX(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4"
self.extra_labels = ['STM', 'STM32F3XX']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
self.default_toolchain = "uARM"
class STM32F407(Target):
2013-08-09 16:18:50 +00:00
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F4XX']
self.supported_toolchains = ["ARM", "GCC_ARM", "IAR"]
class ARCH_MAX(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F407', 'STM32F407VG']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
2013-08-09 16:18:50 +00:00
class DISCO_F051R8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['STM', 'STM32F0', 'STM32F051', 'STM32F051R8']
self.supported_toolchains = ["GCC_ARM"]
self.default_toolchain = "uARM"
2013-08-09 16:18:50 +00:00
class DISCO_F100RB(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M3"
self.extra_labels = ['STM', 'STM32F1', 'STM32F100RB']
self.supported_toolchains = ["GCC_ARM"]
self.default_toolchain = "uARM"
class DISCO_F303VC(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F3', 'STM32F303', 'STM32F303VC']
self.supported_toolchains = ["GCC_ARM"]
self.default_toolchain = "uARM"
class DISCO_F334C8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F3', 'STM32F334C8']
self.supported_toolchains = ["GCC_ARM",]
self.default_toolchain = "GCC_ARM"
self.detect_code = ["0735"]
class DISCO_F407VG(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F407', 'STM32F407VG']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
class DISCO_F429ZI(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F429', 'STM32F429ZI']
self.supported_toolchains = ["GCC_ARM", "IAR"]
self.default_toolchain = "GCC_ARM"
class DISCO_L053C8(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0+"
self.extra_labels = ['STM', 'STM32L0', 'STM32L053C8']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM"]
self.default_toolchain = "uARM"
class MTS_MDOT_F405RG(Target):
2014-11-05 17:00:30 +00:00
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F405RG']
2014-11-12 16:59:27 +00:00
self.macros = ['HSE_VALUE=26000000', 'OS_CLOCK=48000000']
2014-11-07 16:58:50 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
2014-11-05 17:00:30 +00:00
self.is_disk_virtual = True
self.default_toolchain = "ARM"
2014-11-05 17:00:30 +00:00
class MTS_MDOT_F411RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F411RE']
self.macros = ['HSE_VALUE=26000000', 'OS_CLOCK=96000000', 'USE_PLL_HSE_EXTC=0']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "uARM"
class MTS_DRAGONFLY_F411RE(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F411RE']
self.macros = ['HSE_VALUE=26000000']
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "IAR"]
self.default_toolchain = "ARM"
class DISCO_F401VC(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.extra_labels = ['STM', 'STM32F4', 'STM32F401', 'STM32F401VC']
self.supported_toolchains = ["GCC_ARM"]
self.default_toolchain = "GCC_ARM"
2014-11-04 14:11:05 +00:00
### Nordic ###
2014-02-03 16:02:28 +00:00
class NRF51822(Target):
# the following is a list of possible Nordic softdevices in decreasing order
# of preference.
EXPECTED_SOFTDEVICES_WITH_OFFSETS = [
{
'name' : 's110_nrf51822_7.1.0_softdevice.hex',
'offset' : 0x16000
},
{
'name' : 's110_nrf51822_7.0.0_softdevice.hex',
'offset' : 0x16000
},
{
'name' : 's110_nrf51822_6.0.0_softdevice.hex',
'offset' : 0x14000
}
]
2014-03-18 10:16:16 +00:00
OUTPUT_EXT = '.hex'
MERGE_SOFT_DEVICE = True
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ["NORDIC", "NRF51822_MKIT", "MCU_NRF51822", "MCU_NORDIC_16K"]
2014-05-31 19:00:11 +00:00
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.is_disk_virtual = True
self.detect_code = ["1070"]
def program_cycle_s(self):
return 6
def init_hooks(self, hook, toolchain_name):
if toolchain_name in ['ARM_STD', 'ARM_MICRO', 'GCC_ARM']:
hook.hook_add_binary("post", self.binary_hook)
@staticmethod
def binary_hook(t_self, resources, elf, binf):
for hexf in resources.hex_files:
found = False
for softdeviceAndOffsetEntry in NRF51822.EXPECTED_SOFTDEVICES_WITH_OFFSETS:
if hexf.find(softdeviceAndOffsetEntry['name']) != -1:
found = True
break
if found:
break
else:
t_self.debug("Hex file not found. Aborting.")
return
2014-02-21 15:05:21 +00:00
# Merge user code with softdevice
t_self.debug("Patching Hex file %s" % softdeviceAndOffsetEntry['name'])
from intelhex import IntelHex
binh = IntelHex()
binh.loadbin(binf, offset=softdeviceAndOffsetEntry['offset'])
if t_self.target.MERGE_SOFT_DEVICE is True:
sdh = IntelHex(hexf)
binh.merge(sdh)
2014-03-18 10:16:16 +00:00
with open(binf.replace(".bin", ".hex"), "w") as f:
binh.tofile(f, format='hex')
2014-03-18 10:16:16 +00:00
class NRF51822_OTA(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ["NORDIC", "NRF51822_MKIT", "MCU_NRF51822", "MCU_NORDIC_16K", "NRF51822"]
self.macros = ['TARGET_NRF51822', 'TARGET_OTA_ENABLED']
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.MERGE_SOFT_DEVICE = False
class NRF51_DK(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_32K']
self.macros = ['TARGET_NRF51822']
self.supported_form_factors = ["ARDUINO"]
class NRF51_DK_OTA(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.core = "Cortex-M0"
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_32K', 'NRF51_DK']
self.macros = ['TARGET_NRF51822', 'TARGET_NRF51_DK', 'TARGET_OTA_ENABLED']
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.MERGE_SOFT_DEVICE = False
2014-10-29 09:05:58 +00:00
class NRF51_DONGLE(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_32K']
self.macros = ['TARGET_NRF51822']
class ARCH_BLE(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
self.supported_form_factors = ["ARDUINO"]
2014-12-17 03:40:09 +00:00
class BLE_SMURFS(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
class BLE_SMURFS_OTA(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822', 'TARGET_BLE_SMURFS', 'TARGET_OTA_ENABLED']
self.MERGE_SOFT_DEVICE = False
class HRM1017(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
class RBLAB_NRF51822(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
self.supported_form_factors = ["ARDUINO"]
class RBLAB_BLENANO(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
class NRF51822_Y5_MBUG(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
class XADOW_M0(LPCTarget):
2014-05-28 14:03:07 +00:00
def __init__(self):
LPCTarget.__init__(self)
2014-08-11 04:37:06 +00:00
self.core = "Cortex-M0"
self.extra_labels = ['NXP', 'LPC11UXX', 'MCU_LPC11U35_501']
2014-11-18 13:54:40 +00:00
self.supported_toolchains = ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"]
self.default_toolchain = "uARM"
2014-06-25 03:44:06 +00:00
class WALLBOT_BLE(NRF51822):
def __init__(self):
NRF51822.__init__(self)
self.extra_labels = ['NORDIC', 'MCU_NRF51822', 'MCU_NORDIC_16K']
self.macros = ['TARGET_NRF51822']
2014-11-04 14:11:05 +00:00
### ARM ###
class ARM_MPS2(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-M4F"
self.macros = ['CMSDK_CM4']
self.supported_toolchains = ["ARM", "GCC_ARM"]
self.default_toolchain = "ARM"
2014-11-10 16:23:09 +00:00
### Renesas ###
class RZ_A1H(Target):
def __init__(self):
Target.__init__(self)
self.core = "Cortex-A9"
self.extra_labels = ['RENESAS', 'MBRZA1H']
self.supported_toolchains = ["ARM"]
self.supported_form_factors = ["ARDUINO"]
self.default_toolchain = "ARM"
2014-12-01 10:40:17 +00:00
def program_cycle_s(self):
return 2
2014-12-01 10:40:17 +00:00
# Get a single instance for each target
TARGETS = [
2014-11-04 14:11:05 +00:00
### NXP ###
LPC11C24(),
LPC11U24(),
OC_MBUINO(), # LPC11U24
2013-08-09 16:18:50 +00:00
LPC11U24_301(),
LPC11U35_401(),
LPC11U35_501(),
2014-12-17 03:40:09 +00:00
XADOW_M0(), # LPC11U35_501
LPC11U35_Y5_MBUG(),
LPC11U37_501(),
LPCCAPPUCCINO(),# LPC11U37_501
ARCH_GPRS(), # LPC11U37_501
LPC11U68(),
LPC1114(),
LPC1347(),
LPC1549(),
LPC1768(),
ARCH_PRO(), # LPC1768
UBLOX_C027(), # LPC1768
LPC2368(),
LPC810(),
LPC812(),
LPC824(),
SSCI824(), # LPC824
LPC4088(),
LPC4330_M4(),
LPC4330_M0(),
LPC4337(),
2015-01-17 07:59:17 +00:00
LPC11U37H_401(),
2014-11-04 14:11:05 +00:00
### Freescale ###
KL05Z(),
KL25Z(),
KL43Z(),
2013-09-24 14:01:06 +00:00
KL46Z(),
K20D50M(),
2015-01-15 19:11:40 +00:00
TEENSY3_1(),
K22F(),
K64F(),
MTS_GAMBIT(), # FRDM K64F
2014-11-04 14:11:05 +00:00
### STMicro ###
NUCLEO_F030R8(),
NUCLEO_F070RB(),
NUCLEO_F072RB(),
NUCLEO_F091RC(),
NUCLEO_F103RB(),
NUCLEO_F302R8(),
NUCLEO_F303RE(),
2014-06-24 09:18:43 +00:00
NUCLEO_F334R8(),
NUCLEO_F401RE(),
2014-06-20 12:17:55 +00:00
NUCLEO_F411RE(),
NUCLEO_L053R8(),
NUCLEO_L152RE(),
STM32F3XX(),
STM32F407(),
DISCO_F051R8(),
DISCO_F100RB(),
DISCO_F303VC(),
DISCO_F334C8(),
DISCO_F407VG(), # STM32F407
ARCH_MAX(), # STM32F407
DISCO_F429ZI(),
DISCO_L053C8(),
MTS_MDOT_F405RG(),
MTS_MDOT_F411RE(),
MTS_DRAGONFLY_F411RE(),
DISCO_F401VC(),
2014-11-04 14:11:05 +00:00
### Nordic ###
NRF51822(),
NRF51822_OTA(), # nRF51822
NRF51_DK(),
NRF51_DK_OTA(), # nRF51822
NRF51_DONGLE(),
ARCH_BLE(), # nRF51822
2014-12-17 03:40:09 +00:00
BLE_SMURFS(),
BLE_SMURFS_OTA(),
HRM1017(), # nRF51822
RBLAB_NRF51822(),# nRF51822
RBLAB_BLENANO(),# nRF51822
2014-12-17 03:40:09 +00:00
NRF51822_Y5_MBUG(),#nRF51822
WALLBOT_BLE(), # nRF51822
2014-11-10 16:23:09 +00:00
2014-11-04 14:11:05 +00:00
### ARM ###
ARM_MPS2(),
2014-11-10 16:23:09 +00:00
### Renesas ###
RZ_A1H(),
]
# Map each target name to its unique instance
TARGET_MAP = {}
for t in TARGETS:
TARGET_MAP[t.name] = t
TARGET_NAMES = TARGET_MAP.keys()
# Some targets with different name have the same exporters
2013-11-25 16:32:46 +00:00
EXPORT_MAP = {}
# Detection APIs
def get_target_detect_codes():
""" Returns dictionary mapping detect_code -> platform_name
"""
result = {}
for target in TARGETS:
for detect_code in target.detect_code:
result[detect_code] = target.name
return result