cycyy
Dependencies: MCP23017 WattBob_TextLCD
Revision 0:a9b4ee4ed395, committed 2019-05-08
- Comitter:
- mihaidd
- Date:
- Wed May 08 03:58:47 2019 +0000
- Commit message:
- ccc
Changed in this revision
diff -r 000000000000 -r a9b4ee4ed395 MCP23017.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MCP23017.cpp Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,242 @@ +/* MCP23017 library for Arduino + Copyright (C) 2009 David Pye <davidmpye@gmail.com + Modified for use on the MBED ARM platform + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "MCP23017.h" +#include "mbed.h" + +union { + uint8_t value8[2]; + uint16_t value16; +} tmp_data; + +/*----------------------------------------------------------------------------- + * + */ +MCP23017::MCP23017(PinName sda, PinName scl, int i2cAddress) : _i2c(sda, scl) { + MCP23017_i2cAddress = i2cAddress; + reset(); // initialise chip to power-on condition +} + +/*----------------------------------------------------------------------------- + * reset + * Set configuration (IOCON) and direction(IODIR) registers to initial state + */ +void MCP23017::reset() { +// +// First make sure that the device is in BANK=0 mode +// + writeRegister(0x05, (unsigned char)0x00); +// +// set direction registers to inputs +// + writeRegister(IODIR, (unsigned short)0xFFFF); +// +// set all other registers to zero (last of 10 registers is OLAT) +// + for (int reg_addr = 2 ; reg_addr <= OLAT ; reg_addr+=2) { + writeRegister(reg_addr, (unsigned short)0x0000); + } +// +// Set the shadow registers to power-on state +// + shadow_IODIR = 0xFFFF; + shadow_GPIO = 0; + shadow_GPPU = 0; + shadow_IPOL = 0; +} + +/*----------------------------------------------------------------------------- + * write_bit + * Write a 1/0 to a single bit of the 16-bit port + */ +void MCP23017::write_bit(int value, int bit_number) { + if (value == 0) { + shadow_GPIO &= ~(1 << bit_number); + } else { + shadow_GPIO |= 1 << bit_number; + } + writeRegister(GPIO, (unsigned short)shadow_GPIO); +} + +/*----------------------------------------------------------------------------- + * Write a combination of bits to the 16-bit port + */ +void MCP23017::write_mask(unsigned short data, unsigned short mask) { + shadow_GPIO = (shadow_GPIO & ~mask) | data; + writeRegister(GPIO, (unsigned short)shadow_GPIO); +} + +/*----------------------------------------------------------------------------- + * read_bit + * Read a single bit from the 16-bit port + */ +int MCP23017::read_bit(int bit_number) { + shadow_GPIO = readRegister(GPIO); + return ((shadow_GPIO >> bit_number) & 0x0001); +} + +/*----------------------------------------------------------------------------- + * read_mask + */ +int MCP23017::read_mask(unsigned short mask) { + shadow_GPIO = readRegister(GPIO); + return (shadow_GPIO & mask); +} + +/*----------------------------------------------------------------------------- + * Config + * set direction and pull-up registers + */ +void MCP23017::config(unsigned short dir_config, unsigned short pullup_config, unsigned short polarity_config) { + shadow_IODIR = dir_config; + writeRegister(IODIR, (unsigned short)shadow_IODIR); + shadow_GPPU = pullup_config; + writeRegister(GPPU, (unsigned short)shadow_GPPU); + shadow_IPOL = polarity_config; + writeRegister(IPOL, (unsigned short)shadow_IPOL); +} + +/*----------------------------------------------------------------------------- + * writeRegister + * write a byte + */ +void MCP23017::writeRegister(int regAddress, unsigned char data) { + char buffer[2]; + + buffer[0] = regAddress; + buffer[1] = data; + _i2c.write(MCP23017_i2cAddress, buffer, 2); +} + +/*---------------------------------------------------------------------------- + * write Register + * write two bytes + */ +void MCP23017::writeRegister(int regAddress, unsigned short data) { + char buffer[3]; + + buffer[0] = regAddress; + tmp_data.value16 = data; + buffer[1] = tmp_data.value8[0]; + buffer[2] = tmp_data.value8[1]; + + _i2c.write(MCP23017_i2cAddress, buffer, 3); +} + +/*----------------------------------------------------------------------------- + * readRegister + */ +int MCP23017::readRegister(int regAddress) { + char buffer[2]; + + buffer[0] = regAddress; + _i2c.write(MCP23017_i2cAddress, buffer, 1); + _i2c.read(MCP23017_i2cAddress, buffer, 2); + + return ((int)(buffer[0] + (buffer[1]<<8))); +} + +/*----------------------------------------------------------------------------- + * pinMode + */ +void MCP23017::pinMode(int pin, int mode) { + if (DIR_INPUT) { + shadow_IODIR |= 1 << pin; + } else { + shadow_IODIR &= ~(1 << pin); + } + writeRegister(IODIR, (unsigned short)shadow_IODIR); +} + +/*----------------------------------------------------------------------------- + * digitalRead + */ +int MCP23017::digitalRead(int pin) { + shadow_GPIO = readRegister(GPIO); + if ( shadow_GPIO & (1 << pin)) { + return 1; + } else { + return 0; + } +} + +/*----------------------------------------------------------------------------- + * digitalWrite + */ +void MCP23017::digitalWrite(int pin, int val) { + //If this pin is an INPUT pin, a write here will + //enable the internal pullup + //otherwise, it will set the OUTPUT voltage + //as appropriate. + bool isOutput = !(shadow_IODIR & 1<<pin); + + if (isOutput) { + //This is an output pin so just write the value + if (val) shadow_GPIO |= 1 << pin; + else shadow_GPIO &= ~(1 << pin); + writeRegister(GPIO, (unsigned short)shadow_GPIO); + } else { + //This is an input pin, so we need to enable the pullup + if (val) { + shadow_GPPU |= 1 << pin; + } else { + shadow_GPPU &= ~(1 << pin); + } + writeRegister(GPPU, (unsigned short)shadow_GPPU); + } +} + +/*----------------------------------------------------------------------------- + * digitalWordRead + */ +unsigned short MCP23017::digitalWordRead() { + shadow_GPIO = readRegister(GPIO); + return shadow_GPIO; +} + +/*----------------------------------------------------------------------------- + * digitalWordWrite + */ +void MCP23017::digitalWordWrite(unsigned short w) { + shadow_GPIO = w; + writeRegister(GPIO, (unsigned short)shadow_GPIO); +} + +/*----------------------------------------------------------------------------- + * inputPolarityMask + */ +void MCP23017::inputPolarityMask(unsigned short mask) { + writeRegister(IPOL, mask); +} + +/*----------------------------------------------------------------------------- + * inputoutputMask + */ +void MCP23017::inputOutputMask(unsigned short mask) { + shadow_IODIR = mask; + writeRegister(IODIR, (unsigned short)shadow_IODIR); +} + +/*----------------------------------------------------------------------------- + * internalPullupMask + */ +void MCP23017::internalPullupMask(unsigned short mask) { + shadow_GPPU = mask; + writeRegister(GPPU, (unsigned short)shadow_GPPU); +} +
diff -r 000000000000 -r a9b4ee4ed395 MCP23017.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MCP23017.h Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,143 @@ +/* MCP23017 library for Arduino + Copyright (C) 2009 David Pye <davidmpye@gmail.com + Modified for use on the MBED ARM platform + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef MBED_MCP23017_H +#define MBED_MCP23017_H + +#include "mbed.h" + +// +// Register defines from data sheet - we set IOCON.BANK to 0 +// as it is easier to manage the registers sequentially. +// +#define IODIR 0x00 +#define IPOL 0x02 +#define GPINTEN 0x04 +#define DEFVAL 0x06 +#define INTCON 0x08 +#define IOCON 0x0A +#define GPPU 0x0C +#define INTF 0x0E +#define INTCAP 0x10 +#define GPIO 0x12 +#define OLAT 0x14 + +#define I2C_BASE_ADDRESS 0x40 + +#define DIR_OUTPUT 0 +#define DIR_INPUT 1 + +/** MCP23017 class + * + * Allow access to an I2C connected MCP23017 16-bit I/O extender chip + * Example: + * @code + * MCP23017 *par_port; + * @endcode + * + */ +class MCP23017 { +public: + /** Constructor for the MCP23017 connected to specified I2C pins at a specific address + * + * 16-bit I/O expander with I2C interface + * + * @param sda I2C data pin + * @param scl I2C clock pin + * @param i2cAddress I2C address + */ + MCP23017(PinName sda, PinName scl, int i2cAddress); + + /** Reset MCP23017 device to its power-on state + */ + void reset(void); + + /** Write a 0/1 value to an output bit + * + * @param value 0 or 1 + * @param bit_number bit number range 0 --> 15 + */ + void write_bit(int value, int bit_number); + + /** Write a masked 16-bit value to the device + * + * @param data 16-bit data value + * @param mask 16-bit mask value + */ + void write_mask(unsigned short data, unsigned short mask); + + /** Read a 0/1 value from an input bit + * + * @param bit_number bit number range 0 --> 15 + * @return 0/1 value read + */ + int read_bit(int bit_number); + + /** Read a 16-bit value from the device and apply mask + * + * @param mask 16-bit mask value + * @return 16-bit data with mask applied + */ + int read_mask(unsigned short mask); + + /** Configure an MCP23017 device + * + * @param dir_config data direction value (1 = input, 0 = output) + * @param pullup_config 100k pullup value (1 = enabled, 0 = disabled) + * @param polarity_config polarity value (1 = flip, 0 = normal) + */ + void config(unsigned short dir_config, unsigned short pullup_config, unsigned short polarity_config); + + void writeRegister(int regAddress, unsigned char val); + void writeRegister(int regAddress, unsigned short val); + int readRegister(int regAddress); + +/*----------------------------------------------------------------------------- + * pinmode + * Set units to sequential, bank0 mode + */ + void pinMode(int pin, int mode); + void digitalWrite(int pin, int val); + int digitalRead(int pin); + +// These provide a more advanced mapping of the chip functionality +// See the data sheet for more information on what they do + +//Returns a word with the current pin states (ie contents of the GPIO register) + unsigned short digitalWordRead(); +// Allows you to write a word to the GPIO register + void digitalWordWrite(unsigned short w); +// Sets up the polarity mask that the MCP23017 supports +// if set to 1, it will flip the actual pin value. + void inputPolarityMask(unsigned short mask); +//Sets which pins are inputs or outputs (1 = input, 0 = output) NB Opposite to arduino's +//definition for these + void inputOutputMask(unsigned short mask); +// Allows enabling of the internal 100k pullup resisters (1 = enabled, 0 = disabled) + void internalPullupMask(unsigned short mask); + int read(void); + void write(int data); + +protected: + I2C _i2c; + int MCP23017_i2cAddress; // physical I2C address + unsigned short shadow_GPIO, shadow_IODIR, shadow_GPPU, shadow_IPOL; // Cached copies of the register values + +}; + +#endif \ No newline at end of file
diff -r 000000000000 -r a9b4ee4ed395 MCP23017.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MCP23017.lib Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/jimherd/code/MCP23017/#d57de266cf19
diff -r 000000000000 -r a9b4ee4ed395 VL6180.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VL6180.cpp Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,281 @@ +/****************************************************************************** + * SFE_VL6180.cpp + * Library for VL6180 time of flight range finder. + * Casey Kuhns @ SparkFun Electronics + * 10/29/2014 + * https://github.com/sparkfun/ + * + * The VL6180 by ST micro is a time of flight range finder that + * uses pulsed IR light to determine distances from object at close + * range. The average range of a sensor is between 0-200mm + * + * In this file are the functions in the VL6180 class + * + * Resources: + * This library uses the Arduino Wire.h to complete I2C transactions. + * + * Development environment specifics: + * IDE: Arduino 1.0.5 + * Hardware Platform: Arduino Pro 3.3V/8MHz + * VL6180 Breakout Version: 1.0 + * + * + * This code is beerware. If you see me (or any other SparkFun employee) at the + * local pub, and you've found our code helpful, please buy us a round! + * + * Distributed as-is; no warranty is given. + ******************************************************************************/ + +#include "VL6180.h" + +// +// Constructors +// +VL6180::VL6180(PinName sda, PinName scl) : i2c(sda, scl) +{ + VL6180_i2cAddress = VL6180_DEF_ADDR; +} + +VL6180::VL6180(PinName sda, PinName scl, int i2cAddress) : i2c(sda, scl) +{ + VL6180_i2cAddress = i2cAddress; + VL6180_error_no = 0; +} +// +// destructor +// +VL6180::~VL6180() +{ +} + +int8_t VL6180::VL6180_Init(void) +{ + uint8_t data; //for temp data storage + + data = VL6180_getRegister(VL6180_SYSTEM_FRESH_OUT_OF_RESET); + + if(data != 1) return VL6180_FAILURE_RESET; + + //Required by datasheet + //http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00122600.pdf + VL6180_setRegister(0x0207, 0x01); + VL6180_setRegister(0x0208, 0x01); + VL6180_setRegister(0x0096, 0x00); + VL6180_setRegister(0x0097, 0xfd); + VL6180_setRegister(0x00e3, 0x00); + VL6180_setRegister(0x00e4, 0x04); + VL6180_setRegister(0x00e5, 0x02); + VL6180_setRegister(0x00e6, 0x01); + VL6180_setRegister(0x00e7, 0x03); + VL6180_setRegister(0x00f5, 0x02); + VL6180_setRegister(0x00d9, 0x05); + VL6180_setRegister(0x00db, 0xce); + VL6180_setRegister(0x00dc, 0x03); + VL6180_setRegister(0x00dd, 0xf8); + VL6180_setRegister(0x009f, 0x00); + VL6180_setRegister(0x00a3, 0x3c); + VL6180_setRegister(0x00b7, 0x00); + VL6180_setRegister(0x00bb, 0x3c); + VL6180_setRegister(0x00b2, 0x09); + VL6180_setRegister(0x00ca, 0x09); + VL6180_setRegister(0x0198, 0x01); + VL6180_setRegister(0x01b0, 0x17); + VL6180_setRegister(0x01ad, 0x00); + VL6180_setRegister(0x00ff, 0x05); + VL6180_setRegister(0x0100, 0x05); + VL6180_setRegister(0x0199, 0x05); + VL6180_setRegister(0x01a6, 0x1b); + VL6180_setRegister(0x01ac, 0x3e); + VL6180_setRegister(0x01a7, 0x1f); + VL6180_setRegister(0x0030, 0x00); + + VL6180_setRegister(VL6180_SYSTEM_FRESH_OUT_OF_RESET, 0x00); + return 0; +} + +void VL6180::VL6180_DefautSettings(void) +{ + //Recommended settings from datasheet + //http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00122600.pdf + + //Enable Interrupts on Conversion Complete (any source) + VL6180_setRegister(VL6180_SYSTEM_INTERRUPT_CONFIG_GPIO, (4 << 3)|(4) ); // Set GPIO1 high when sample complete + + + VL6180_setRegister(VL6180_SYSTEM_MODE_GPIO1, 0x10); // Set GPIO1 high when sample complete + VL6180_setRegister(VL6180_READOUT_AVERAGING_SAMPLE_PERIOD, 0x30); //Set Avg sample period + VL6180_setRegister(VL6180_SYSALS_ANALOGUE_GAIN, 0x46); // Set the ALS gain + VL6180_setRegister(VL6180_SYSRANGE_VHV_REPEAT_RATE, 0xFF); // Set auto calibration period (Max = 255)/(OFF = 0) + VL6180_setRegister(VL6180_SYSALS_INTEGRATION_PERIOD, 0x63); // Set ALS integration time to 100ms + VL6180_setRegister(VL6180_SYSRANGE_VHV_RECALIBRATE, 0x01); // perform a single temperature calibration + //Optional settings from datasheet + //http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00122600.pdf + VL6180_setRegister(VL6180_SYSRANGE_INTERMEASUREMENT_PERIOD, 0x09); // Set default ranging inter-measurement period to 100ms + VL6180_setRegister(VL6180_SYSALS_INTERMEASUREMENT_PERIOD, 0x0A); // Set default ALS inter-measurement period to 100ms + VL6180_setRegister(VL6180_SYSTEM_INTERRUPT_CONFIG_GPIO, 0x24); // Configures interrupt on 鈥楴ew Sample Ready threshold event鈥? + //Additional settings defaults from community + VL6180_setRegister(VL6180_SYSRANGE_MAX_CONVERGENCE_TIME, 0x32); + VL6180_setRegister(VL6180_SYSRANGE_RANGE_CHECK_ENABLES, 0x10 | 0x01); + VL6180_setRegister16bit(VL6180_SYSRANGE_EARLY_CONVERGENCE_ESTIMATE, 0x7B ); + VL6180_setRegister16bit(VL6180_SYSALS_INTEGRATION_PERIOD, 0x64); + + VL6180_setRegister(VL6180_READOUT_AVERAGING_SAMPLE_PERIOD,0x30); + VL6180_setRegister(VL6180_SYSALS_ANALOGUE_GAIN,0x40); + VL6180_setRegister(VL6180_FIRMWARE_RESULT_SCALER,0x01); +} +void VL6180::getIdentification(struct VL6180Identification *temp) +{ + + temp->idModel = VL6180_getRegister(VL6180_IDENTIFICATION_MODEL_ID); + temp->idModelRevMajor = VL6180_getRegister(VL6180_IDENTIFICATION_MODEL_REV_MAJOR); + temp->idModelRevMinor = VL6180_getRegister(VL6180_IDENTIFICATION_MODEL_REV_MINOR); + temp->idModuleRevMajor = VL6180_getRegister(VL6180_IDENTIFICATION_MODULE_REV_MAJOR); + temp->idModuleRevMinor = VL6180_getRegister(VL6180_IDENTIFICATION_MODULE_REV_MINOR); + + temp->idDate = VL6180_getRegister16bit(VL6180_IDENTIFICATION_DATE); + temp->idTime = VL6180_getRegister16bit(VL6180_IDENTIFICATION_TIME); +} + + +uint8_t VL6180::changeAddress(uint8_t old_address, uint8_t new_address) +{ + + //NOTICE: IT APPEARS THAT CHANGING THE ADDRESS IS NOT STORED IN NON-VOLATILE MEMORY + // POWER CYCLING THE DEVICE REVERTS ADDRESS BACK TO 0X29 + + if( old_address == new_address) return old_address; + if( new_address > 127) return old_address; + + VL6180_setRegister(VL6180_I2C_SLAVE_DEVICE_ADDRESS, new_address); + + return VL6180_getRegister(VL6180_I2C_SLAVE_DEVICE_ADDRESS); +} + + + +uint8_t VL6180::getDistance() +{ + VL6180_setRegister(VL6180_SYSRANGE_START, 0x01); //Start Single shot mode + wait(0.01); // 10mS + return VL6180_getRegister(VL6180_RESULT_RANGE_VAL); +// VL6180_setRegister(VL6180_SYSTEM_INTERRUPT_CLEAR, 0x07); +// return distance; +} + +float VL6180::getAmbientLight(VL6180_als_gain VL6180_ALS_GAIN) +{ + //First load in Gain we are using, do it everytime incase someone changes it on us. + //Note: Upper nibble shoudl be set to 0x4 i.e. for ALS gain of 1.0 write 0x46 + VL6180_setRegister(VL6180_SYSALS_ANALOGUE_GAIN, (0x40 | VL6180_ALS_GAIN)); // Set the ALS gain + + //Start ALS Measurement + VL6180_setRegister(VL6180_SYSALS_START, 0x01); + + wait(0.1); //100Ms + + VL6180_setRegister(VL6180_SYSTEM_INTERRUPT_CLEAR, 0x07); + + //Retrieve the Raw ALS value from the sensoe + unsigned int alsRaw = VL6180_getRegister16bit(VL6180_RESULT_ALS_VAL); + + //Get Integration Period for calculation, we do this everytime incase someone changes it on us. + unsigned int alsIntegrationPeriodRaw = VL6180_getRegister16bit(VL6180_SYSALS_INTEGRATION_PERIOD); + + float alsIntegrationPeriod = 100.0 / alsIntegrationPeriodRaw ; + + //Calculate actual LUX from Appnotes + + float alsGain = 0.0; + + switch (VL6180_ALS_GAIN) { + case GAIN_20: + alsGain = 20.0; + break; + case GAIN_10: + alsGain = 10.32; + break; + case GAIN_5: + alsGain = 5.21; + break; + case GAIN_2_5: + alsGain = 2.60; + break; + case GAIN_1_67: + alsGain = 1.72; + break; + case GAIN_1_25: + alsGain = 1.28; + break; + case GAIN_1: + alsGain = 1.01; + break; + case GAIN_40: + alsGain = 40.0; + break; + } + +//Calculate LUX from formula in AppNotes + + float alsCalculated = (float)0.32 * ((float)alsRaw / alsGain) * alsIntegrationPeriod; + + return alsCalculated; +} + +// --- Private Functions --- // + +uint8_t VL6180::VL6180_getRegister(uint16_t reg_address) +{ + char data[2]; + + data[0] = (reg_address >> 8) & 0xFF; //MSB of register address + data[1] = reg_address & 0xFF; //LSB of register address + VL6180_error_no = i2c.write(VL6180_i2cAddress, data, 2); + VL6180_error_no = i2c.read(VL6180_i2cAddress, data, 1, false); + return data[0]; +} + +uint16_t VL6180::VL6180_getRegister16bit(uint16_t reg_address) +{ + char data[2]; + + data[0] = (reg_address >> 8) & 0xFF; //MSB of register address + data[1] = reg_address & 0xFF; //LSB of register address + VL6180_error_no = i2c.write(VL6180_i2cAddress, data, 2); + VL6180_error_no = i2c.read(VL6180_i2cAddress, data, 2, false); + return (data[0] + ((data[1] << 8) & 0xFF00)); +} + +void VL6180::VL6180_setRegister(uint16_t reg_address, uint8_t value) +{ + char data[3]; + + data[0] = (reg_address >> 8) & 0xFF; //MSB of register address + data[1] = reg_address & 0xFF; //LSB of register address + data[2] = value; + VL6180_error_no = VL6180_error_no = i2c.write(VL6180_i2cAddress, data, 3); +} + +void VL6180::VL6180_setRegister16bit(uint16_t reg_address, uint16_t value) +{ + char data[4]; + + data[0] = (reg_address >> 8) & 0xFF; //MSB of register address + data[1] = reg_address & 0xFF; //LSB of register address + data[2] = value & 0xFF; + data[3] = ((value >> 8) & 0xFF); + VL6180_error_no = VL6180_error_no = i2c.write(VL6180_i2cAddress, data, 4); +} + +int VL6180::writeSingleRegister( uint16_t reg_address, uint8_t data ) +{ + + char data_write[3]; + data_write[0] = (reg_address >> 8) & 0xFF; //MSB of register address + data_write[1] = reg_address & 0xFF; //LSB of register address + data_write[2] = data & 0xFF; + return i2c.write(VL6180_DEF_ADDR, data_write, 3); + +// char tx[2] = { address | 160, data }; //0d160 = 0b10100000 +// int ack = i2c.write( SLAVE_ADDRESS << 1, tx, 2 ); +// return ack; +}
diff -r 000000000000 -r a9b4ee4ed395 VL6180.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/VL6180.h Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,202 @@ +/****************************************************************************** + * SFE_VL6180.h + * Library for VL6180 time of flight range finder. + * Casey Kuhns @ SparkFun Electronics + * 10/29/2014 + * https://github.com/sparkfun/ + * + * The VL6180 by ST micro is a time of flight range finder that + * uses pulsed IR light to determine distances from object at close + * range. The average range of a sensor is between 0-200mm + * + * In this file are the function prototypes in the VL6180 class + * + * Resources: + * This library uses the Arduino Wire.h to complete I2C transactions. + * + * Development environment specifics: + * IDE: Arduino 1.0.5 + * Hardware Platform: Arduino Pro 3.3V/8MHz + * VL6180 Breakout Version: 1.0 + * + * Some settings and initial values come from code written by Kris Winer + * VL6180_t3 Basic Example Code + * by: Kris Winer + * date: September 1, 2014 + * license: Beerware - Use this code however you'd like. If you + * find it useful you can buy me a beer some time. + * + * This code is beerware. If you see me (or any other SparkFun employee) at the + * local pub, and you've found our code helpful, please buy us a round! + * + * Distributed as-is; no warranty is given. + ******************************************************************************/ + +#ifndef SFE_VL6180_h +#define SFE_VL6180_h + +#include "mbed.h" +#include "stdint.h" + +#define VL6180_DEF_ADDR 0x52 + +#define VL6180_FAILURE_RESET -1 + +#define VL6180_IDENTIFICATION_MODEL_ID 0x0000 +#define VL6180_IDENTIFICATION_MODEL_REV_MAJOR 0x0001 +#define VL6180_IDENTIFICATION_MODEL_REV_MINOR 0x0002 +#define VL6180_IDENTIFICATION_MODULE_REV_MAJOR 0x0003 +#define VL6180_IDENTIFICATION_MODULE_REV_MINOR 0x0004 +#define VL6180_IDENTIFICATION_DATE 0x0006 //16bit value +#define VL6180_IDENTIFICATION_TIME 0x0008 //16bit value + +#define VL6180_SYSTEM_MODE_GPIO0 0x0010 +#define VL6180_SYSTEM_MODE_GPIO1 0x0011 +#define VL6180_SYSTEM_HISTORY_CTRL 0x0012 +#define VL6180_SYSTEM_INTERRUPT_CONFIG_GPIO 0x0014 +#define VL6180_SYSTEM_INTERRUPT_CLEAR 0x0015 +#define VL6180_SYSTEM_FRESH_OUT_OF_RESET 0x0016 +#define VL6180_SYSTEM_GROUPED_PARAMETER_HOLD 0x0017 + +#define VL6180_SYSRANGE_START 0x0018 +#define VL6180_SYSRANGE_THRESH_HIGH 0x0019 +#define VL6180_SYSRANGE_THRESH_LOW 0x001A +#define VL6180_SYSRANGE_INTERMEASUREMENT_PERIOD 0x001B +#define VL6180_SYSRANGE_MAX_CONVERGENCE_TIME 0x001C +#define VL6180_SYSRANGE_CROSSTALK_COMPENSATION_RATE 0x001E +#define VL6180_SYSRANGE_CROSSTALK_VALID_HEIGHT 0x0021 +#define VL6180_SYSRANGE_EARLY_CONVERGENCE_ESTIMATE 0x0022 +#define VL6180_SYSRANGE_PART_TO_PART_RANGE_OFFSET 0x0024 +#define VL6180_SYSRANGE_RANGE_IGNORE_VALID_HEIGHT 0x0025 +#define VL6180_SYSRANGE_RANGE_IGNORE_THRESHOLD 0x0026 +#define VL6180_SYSRANGE_MAX_AMBIENT_LEVEL_MULT 0x002C +#define VL6180_SYSRANGE_RANGE_CHECK_ENABLES 0x002D +#define VL6180_SYSRANGE_VHV_RECALIBRATE 0x002E +#define VL6180_SYSRANGE_VHV_REPEAT_RATE 0x0031 + +#define VL6180_SYSALS_START 0x0038 +#define VL6180_SYSALS_THRESH_HIGH 0x003A +#define VL6180_SYSALS_THRESH_LOW 0x003C +#define VL6180_SYSALS_INTERMEASUREMENT_PERIOD 0x003E +#define VL6180_SYSALS_ANALOGUE_GAIN 0x003F +#define VL6180_SYSALS_INTEGRATION_PERIOD 0x0040 + +#define VL6180_RESULT_RANGE_STATUS 0x004D +#define VL6180_RESULT_ALS_STATUS 0x004E +#define VL6180_RESULT_INTERRUPT_STATUS_GPIO 0x004F +#define VL6180_RESULT_ALS_VAL 0x0050 +#define VL6180_RESULT_HISTORY_BUFFER 0x0052 +#define VL6180_RESULT_RANGE_VAL 0x0062 +#define VL6180_RESULT_RANGE_RAW 0x0064 +#define VL6180_RESULT_RANGE_RETURN_RATE 0x0066 +#define VL6180_RESULT_RANGE_REFERENCE_RATE 0x0068 +#define VL6180_RESULT_RANGE_RETURN_SIGNAL_COUNT 0x006C +#define VL6180_RESULT_RANGE_REFERENCE_SIGNAL_COUNT 0x0070 +#define VL6180_RESULT_RANGE_RETURN_AMB_COUNT 0x0074 +#define VL6180_RESULT_RANGE_REFERENCE_AMB_COUNT 0x0078 +#define VL6180_RESULT_RANGE_RETURN_CONV_TIME 0x007C +#define VL6180_RESULT_RANGE_REFERENCE_CONV_TIME 0x0080 + +#define VL6180_READOUT_AVERAGING_SAMPLE_PERIOD 0x010A +#define VL6180_FIRMWARE_BOOTUP 0x0119 +#define VL6180_FIRMWARE_RESULT_SCALER 0x0120 +#define VL6180_I2C_SLAVE_DEVICE_ADDRESS 0x0212 +#define VL6180_INTERLEAVED_MODE_ENABLE 0x02A3 + + +enum VL6180_als_gain { //Data sheet shows gain values as binary list + + GAIN_20 = 0, // Actual ALS Gain of 20 + GAIN_10, // Actual ALS Gain of 10.32 + GAIN_5, // Actual ALS Gain of 5.21 + GAIN_2_5, // Actual ALS Gain of 2.60 + GAIN_1_67, // Actual ALS Gain of 1.72 + GAIN_1_25, // Actual ALS Gain of 1.28 + GAIN_1 , // Actual ALS Gain of 1.01 + GAIN_40, // Actual ALS Gain of 40 + +}; + +struct VL6180Identification { + uint8_t idModel; + uint8_t idModelRevMajor; + uint8_t idModelRevMinor; + uint8_t idModuleRevMajor; + uint8_t idModuleRevMinor; + uint16_t idDate; + uint16_t idTime; +}; + + +class VL6180 +{ +public: + /** Create VL6180 instance + * + * @param sda sda pin for I2C + * @param scl scl pin for I2C + */ + VL6180( PinName sda, PinName scl ); + VL6180( PinName sda, PinName scl , int i2c_address); + + /** Destructor + */ + ~VL6180(); + + /** Read red, green, blue and clear values into array + * + * @param readings Array of four integers to store the read data + */ + //Initalize library with default address +// VL6180(uint8_t address); + //Send manditory settings as stated in ST datasheet. + // http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00122600.pdf (Section 1.3) + int8_t VL6180_Init(void); + // Use default settings from ST data sheet section 9. + // http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00122600.pdf + void VL6180_DefautSettings(void); + + // Get Range distance in (mm) + uint8_t getDistance(); + // Get ALS level in Lux + float getAmbientLight(VL6180_als_gain VL6180_ALS_GAIN); + + //Load structure provided by the user with identification info + //Structure example: + // struct VL6180Identification + // { + // uint8_t idModel; + // uint8_t idModelRevMajor; + // uint8_t idModelRevMinor; + // uint8_t idModuleRevMajor; + // uint8_t idModuleRevMinor; + // uint16_t idDate; + // uint16_t idTime; + // }; + void getIdentification(struct VL6180Identification *temp); + + //Change the default address of the device to allow multiple + //sensors on the bus. Can use up to 127 sensors. New address + //is saved in non-volatile device memory. + uint8_t changeAddress(uint8_t old_address, uint8_t new_address); + + int writeSingleRegister( uint16_t reg_address, uint8_t data ); + + +private: + //Store address given when the class is initialized. + //This value can be changed by the changeAddress() function + I2C i2c; + int VL6180_i2cAddress; + uint8_t VL6180_error_no; + + uint8_t VL6180_getRegister(uint16_t registerAddr); + uint16_t VL6180_getRegister16bit(uint16_t registerAddr); + + void VL6180_setRegister(uint16_t registerAddr, uint8_t value); + void VL6180_setRegister16bit(uint16_t registerAddr, uint16_t value); + + +}; + +#endif \ No newline at end of file
diff -r 000000000000 -r a9b4ee4ed395 WattBob_TextLCD.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WattBob_TextLCD.cpp Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,178 @@ +/* draft mbed TextLCD + * (c) 2007/8, sford + * Modified jherd + */ + +#include "WattBob_TextLCD.h" +#include "MCP23017.h" + +#include "mbed.h" + +/* + * Initialisation + * ============== + * + * After attaching the supply voltage/after a reset, the display needs to be brought in to a defined state + * + * - wait approximately 15 ms so the display is ready to execute commands + * - Execute the command 0x30 ("Display Settings") three times (wait 1,64ms after each command, the busy flag cannot be queried now). + * - The display is in 8 bit mode, so if you have only connected 4 data pins you should only transmit the higher nibble of each command. + * - If you want to use the 4 bit mode, now you can execute the command to switch over to this mode now. + * - Execute the "clear display" command + * + * Timing + * ====== + * + * Nearly all commands transmitted to the display need 40us for execution. + * Exceptions are the commands "Clear Display and Reset" and "Set Cursor to Start Position" + * These commands need 1.64ms for execution. These timings are valid for all displays working with an + * internal clock of 250kHz. But I do not know any displays that use other frequencies. Any time you + * can use the busy flag to test if the display is ready to accept the next command. + * + * _e is kept high apart from calling clock + * _rw is kept 0 (write) apart from actions that uses it differently + * _rs is set by the data/command writes + * + * RS = 7 + * RW = 6 + * E = 5 + * Back light = 4 + * D4 = 0 + * D5 = 1 + * D6 = 2 + * D7 = 3 + */ + +WattBob_TextLCD::WattBob_TextLCD(MCP23017 *port) { +// +// Initialise pointer to MCP23017 object +// + par_port = port; + par_port->config(0x0F00, 0x0F00, 0x0F00); + + _rows = 2; + _columns = 16; + + // + // Time to allow unit to initialise + // + wait(DISPLAY_INIT_DELAY_SECS); + + _rw(0); + _e(0); + _rs(0); // command mode + + // + // interface defaults to an 8-bit interface. However, we need to ensure that we + // are in 8-bit mode + // + for(int i=0; i<3; i++) { + writeNibble(CMD4_SET_8_BIT_INTERFACE); + wait(0.00164); // this command takes 1.64ms, so wait for it + } + + writeNibble(CMD4_SET_4_BIT_INTERFACE); // now force into 4-bit mode + +// writeCommand(CMD_NULL); +// writeCommand(CMD_NULL); +// writeCommand(CMD_NULL); +// writeCommand(CMD_NULL); +// writeCommand(CMD_NULL); + + writeCommand(CMD_FUNCTION_SET | INTERFACE_4_BIT | TWO_LINE_DISPLAY | FONT_5x8 | ENGL_JAPAN_FONT_SET); // 0x28 + writeCommand(CMD_DISPLAY_CONTROL | DISPLAY_ON | CURSOR_OFF | CURSOR_CHAR_BLINK_OFF); // 0xC0 + cls(); + writeCommand(CMD_RETURN_HOME); + writeCommand(CMD_ENTRY_MODE | CURSOR_STEP_RIGHT | DISPLAY_SHIFT_OFF ); // 0x06 +} + +int WattBob_TextLCD::_putc(int value) { + if(value == '\n') { + newline(); + } else { + writeData(value); + } + return value; +} + +int WattBob_TextLCD::_getc() { + return 0; +} + +void WattBob_TextLCD::newline() { + _column = 0; + _row++; + if(_row >= _rows) { + _row = 0; + } + locate(_column, _row); +} + +void WattBob_TextLCD::locate(int row, int column) { + if(column < 0 || column >= _columns || row < 0 || row >= _rows) { + // error("locate(%d,%d) out of range on %dx%d display", column, row, _columns, _rows); + return; + } + + _row = row; + _column = column; + int address = 0x80 + (_row * 0x40) + _column; // memory starts at 0x80, and internally it is 40 chars per row (only first 16 used) + writeCommand(address); +} + +void WattBob_TextLCD::cls() { + writeCommand(CMD_CLEAR_DISPLAY); // 0x01 + wait(DISPLAY_CLEAR_DELAY); // + locate(0, 0); +} + +void WattBob_TextLCD::reset() { + cls(); +} + +void WattBob_TextLCD::clock() { + wait(0.000040f); + _e(1); + wait(0.000040f); // most instructions take 40us + _e(0); +} + +void WattBob_TextLCD::writeNibble(int value) { + _d(value); + clock(); +} + +void WattBob_TextLCD::writeByte(int value) { + writeNibble((value >> 4) & 0x000F); + writeNibble((value >> 0) & 0x000F); +} + +void WattBob_TextLCD::writeCommand(int command) { + _rs(0); + writeByte(command); +} + +void WattBob_TextLCD::writeData(int data) { + _rs(1); + writeByte(data); + _column++; + if(_column >= _columns) { + newline(); + } +} + +void WattBob_TextLCD::_rs(int data) { + par_port->write_bit(data, RS_BIT); +} + +void WattBob_TextLCD::_rw(int data) { + par_port->write_bit(data, RW_BIT); +} + +void WattBob_TextLCD::_e(int data) { + par_port->write_bit(data, E_BIT); +} + +void WattBob_TextLCD::_d(int data) { + par_port->write_mask((unsigned short)data, (unsigned short)0x000F); +}
diff -r 000000000000 -r a9b4ee4ed395 WattBob_TextLCD.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WattBob_TextLCD.h Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,157 @@ +/* draft mbed TextLCD + * (c) 2007/8, sford + */ + +#ifndef WATTBOB_TEXTLCD_H +#define WATTBOB_TEXTLCD_H + +#include "mbed.h" +#include "Stream.h" +#include "MCP23017.h" + +#define RS_BIT 7 +#define RW_BIT 6 +#define E_BIT 5 +#define BL_BIT 4 + +// +// Registers and bit definitions for 2*16 character display chip +// +#define CMD_NULL 0x00 + +#define CMD_CLEAR_DISPLAY 0x01 + +#define CMD_RETURN_HOME 0x02 + +#define CMD_ENTRY_MODE 0x04 +#define CURSOR_STEP_LEFT 0x00 +#define CURSOR_STEP_RIGHT 0x02 +#define DISPLAY_SHIFT_OFF 0x00 +#define DISPLAY_SHIFT_ON 0x01 + +#define CMD_DISPLAY_CONTROL 0x08 +#define DISPLAY_OFF 0x00 +#define DISPLAY_ON 0x04 +#define CURSOR_OFF 0x00 +#define CURSOR_ON 0x02 +#define CURSOR_CHAR_BLINK_OFF 0x00 +#define CURSOR_CHAR_BLINK_ON 0x01 + +#define CMD_CURSOR_SHIFT 0x10 +#define SHIFT_CURSOR_LEFT 0x00 +#define SHIFT_CURSOR_RIGHT 0x04 +#define SHIFT_DISPLAY_LEFT 0x08 +#define SHIFT_DISPLAY_RIGHT 0x0C + +#define CMD_MODE_POWER 0x13 +#define CHARACTER_MODE 0x00 +#define GRAPHICS_MODE 0x08 +#define INTERNAL_POWER_OFF 0x00 +#define INTERNAL_POWER_ON 0x04 + +#define CMD_FUNCTION_SET 0x20 +#define ENGL_JAPAN_FONT_SET 0x00 +#define EUROPE_FONT_SET 0x01 +#define ENGL_RUSSIAN_FONT_SET 0x20 +#define FONT_5x8 0x00 +#define FONT_5x10 0x04 +#define ONE_LINE_DISPLAY 0x00 +#define TWO_LINE_DISPLAY 0x08 +#define INTERFACE_4_BIT 0x00 +#define INTERFACE_8_BIT 0x10 + +#define CMD_SET_CGRAM_ADDRESS 0x40 + +#define CMD_SET_DDRAM_ADDRESS 0x80 +// +// nibble commands +// +#define CMD4_SET_4_BIT_INTERFACE 0x2 +#define CMD4_SET_8_BIT_INTERFACE 0x3 +// +// Misc 2*16 character display constants +// +#define DISPLAY_INIT_DELAY_SECS 0.5f // 500mS +#define DISPLAY_CLEAR_DELAY 0.01f // 10 mS (spec is 6.2mS) + +/** Class to access 16*2 LCD display connected to an MCP23017 I/O extender chip + * + * Derived from the "stream" class to be able to use methods such as "printf" + * + * Example : + * @code + * ..... + * #include "MCP23017.h" + * #include "WattBob_TextLCD.h" + * ..... + * MCP23017 *par_port; + * WattBob_TextLCD *lcd; + * ..... + * int main() + * par_port = new MCP23017(p9, p10, 0x40); + * par_port->config(0x0F00, 0x0F00, 0x0F00); // configure MCP23017 chip on WattBob + * lcd = new WattBob_TextLCD(par_port); + * + * par_port->write_bit(1,BL_BIT); // turn LCD backlight ON + * lcd->cls(); lcd->locate(0,0); + * lcd->printf("%s", message); + * lcd->locate(1,0);lcd->printf("press 1 to cont"); + * @endcode + */ +class WattBob_TextLCD : public Stream { + +public: + /** Create TextLCD object connected to a MCP23017 device + * + * @param port pointer to MCP23017 object + */ + WattBob_TextLCD(MCP23017 *port); + + /** Set cursor to a known point + * + * Virtual function for stream class + * + * @param row integer row number (0 or 1) + * @param col integer column number (0 or 15) + */ + virtual void locate(int row, int column); + + /** clear display + * + * Virtual function for stream class + */ + virtual void cls(); + + /** reset the display + * + * Virtual function for stream class + */ + virtual void reset(); + +protected: + + virtual int _putc(int c); + virtual int _getc(); + virtual void newline(); + + void clock(); + void writeData(int data); + void writeCommand(int command); + void writeByte(int value); + void writeNibble(int value); + + void _rs (int data); + void _rw (int data); + void _e (int data); + void _d (int data); + + int _rows; + int _columns; + int _row; + int _column; + +private: + MCP23017 *par_port; +}; + +#endif
diff -r 000000000000 -r a9b4ee4ed395 WattBob_TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WattBob_TextLCD.lib Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/jimherd/code/WattBob_TextLCD/#3b26cd028e85
diff -r 000000000000 -r a9b4ee4ed395 mbed_config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed_config.h Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,30 @@ +/* + * mbed SDK + * Copyright (c) 2017 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 + * + * 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. + */ + +// Automatically generated configuration file. +// DO NOT EDIT, content will be overwritten. + +#ifndef __MBED_CONFIG_DATA__ +#define __MBED_CONFIG_DATA__ + +// Configuration parameters +#define MBED_CONF_PLATFORM_STDIO_BAUD_RATE 9600 // set by library:platform +#define MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE 9600 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_FLUSH_AT_EXIT 1 // set by library:platform +#define MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES 0 // set by library:platform + +#endif
diff -r 000000000000 -r a9b4ee4ed395 targets.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/targets.json Wed May 08 03:58:47 2019 +0000 @@ -0,0 +1,2813 @@ +{ + "Target": { + "core": null, + "default_toolchain": "ARM", + "supported_toolchains": null, + "extra_labels": [], + "is_disk_virtual": false, + "macros": [], + "device_has": [], + "features": [], + "detect_code": [], + "public": false, + "default_lib": "std", + "bootloader_supported": false + }, + "Super_Target": { + "inherits": ["Target"], + "core": "Cortex-M4", + "features_add": ["UVISOR", "BLE", "CLIENT", "IPV4", "IPV6"], + "supported_toolchains": ["ARM"] + }, + "CM4_UARM": { + "inherits": ["Target"], + "core": "Cortex-M4", + "default_toolchain": "uARM", + "public": false, + "supported_toolchains": ["uARM"], + "default_lib": "small" + }, + "CM4_ARM": { + "inherits": ["Target"], + "core": "Cortex-M4", + "public": false, + "supported_toolchains": ["ARM"] + }, + "CM4F_UARM": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "uARM", + "public": false, + "supported_toolchains": ["uARM"], + "default_lib": "small" + }, + "CM4F_ARM": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "public": false, + "supported_toolchains": ["ARM"] + }, + "LPCTarget": { + "inherits": ["Target"], + "post_binary_hook": {"function": "LPCTargetCode.lpc_patch"}, + "public": false + }, + "LPC11C24": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11CXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "device_name": "LPC11C24FBD48/301" + }, + "LPC1114": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11XX_11CXX", "LPC11XX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC1114FN28/102" + }, + "LPC11U24": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX", "LPC11U24_401"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "detect_code": ["1040"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U24FBD48/401" + }, + "OC_MBUINO": { + "inherits": ["LPC11U24"], + "macros": ["TARGET_LPC11U24"], + "extra_labels": ["NXP", "LPC11UXX"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"] + }, + "LPC11U24_301": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "extra_labels": ["NXP", "LPC11UXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "device_name": "LPC11U24FHI33/301" + }, + "LPC11U34_421": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "device_name": "LPC11U34FBD48/311" + }, + "MICRONFCBOARD": { + "inherits": ["LPC11U34_421"], + "macros": ["LPC11U34_421", "APPNEARME_MICRONFCBOARD"], + "extra_labels_add": ["APPNEARME_MICRONFCBOARD"], + "release_versions": ["2"], + "device_name": "LPC11U34FBD48/311" + }, + "LPC11U35_401": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U35FBD48/401" + }, + "LPC11U35_501": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U35FHI33/501" + }, + "LPC11U35_501_IBDAP": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "device_name": "LPC11U35FHI33/501" + }, + "XADOW_M0": { + "inherits": ["LPC11U35_501"] + }, + "LPC11U35_Y5_MBUG": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX", "MCU_LPC11U35_501"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "device_name": "LPC11U35FHI33/501" + }, + "LPC11U37_501": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "default_lib": "small", + "device_name": "LPC11U37FBD64/501" + }, + "LPCCAPPUCCINO": { + "inherits": ["LPC11U37_501"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "device_name": "LPC11U37FBD64/501" + }, + "ARCH_GPRS": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX", "LPC11U37_501"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "inherits": ["LPCTarget"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U37FBD64/501" + }, + "LPC11U68": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11U6X"], + "supported_toolchains": ["ARM", "uARM", "GCC_CR", "GCC_ARM", "IAR"], + "inherits": ["LPCTarget"], + "detect_code": ["1168"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U68JBD100" + }, + "LPC1347": { + "inherits": ["LPCTarget"], + "core": "Cortex-M3", + "extra_labels": ["NXP", "LPC13XX"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "LPC1347FBD48" + }, + "LPC1549": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M3", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC15XX"], + "supported_toolchains": ["uARM", "GCC_CR", "GCC_ARM", "IAR"], + "inherits": ["LPCTarget"], + "detect_code": ["1549"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "INTERRUPTIN", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC1549JBD64" + }, + "LPC1768": { + "inherits": ["LPCTarget"], + "core": "Cortex-M3", + "extra_labels": ["NXP", "LPC176X", "MBED_LPC1768"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "detect_code": ["1010"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "features": ["LWIP"], + "device_name": "LPC1768" + }, + "ARCH_PRO": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "extra_labels": ["NXP", "LPC176X"], + "macros": ["TARGET_LPC1768"], + "inherits": ["LPCTarget"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "features": ["LWIP"], + "device_name": "LPC1768" + }, + "UBLOX_C027": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "extra_labels": ["NXP", "LPC176X"], + "macros": ["TARGET_LPC1768"], + "inherits": ["LPCTarget"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_RED", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "features": ["LWIP"], + "device_name": "LPC1768" + }, + "XBED_LPC1768": { + "inherits": ["LPCTarget"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR", "IAR"], + "extra_labels": ["NXP", "LPC176X", "XBED_LPC1768"], + "macros": ["TARGET_LPC1768"], + "detect_code": ["1010"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "device_name": "LPC1768" + }, + "LPC2368": { + "inherits": ["LPCTarget"], + "core": "ARM7TDMI-S", + "extra_labels": ["NXP", "LPC23XX"], + "supported_toolchains": ["GCC_ARM", "GCC_CR"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOCALFILESYSTEM", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"] + }, + "LPC2460": { + "inherits": ["LPCTarget"], + "core": "ARM7TDMI-S", + "extra_labels": ["NXP", "LPC2460"], + "supported_toolchains": ["GCC_ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"] + }, + "LPC810": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC81X"], + "is_disk_virtual": true, + "supported_toolchains": ["uARM", "IAR", "GCC_ARM"], + "device_has": ["ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "device_name": "LPC810M021FN8" + }, + "LPC812": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC81X"], + "is_disk_virtual": true, + "supported_toolchains": ["uARM", "IAR", "GCC_ARM"], + "inherits": ["LPCTarget"], + "detect_code": ["1050"], + "device_has": ["ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC812M101JDH20" + }, + "LPC824": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC82X"], + "is_disk_virtual": true, + "supported_toolchains": ["uARM", "GCC_ARM", "GCC_CR", "IAR"], + "inherits": ["LPCTarget"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC824M201JDH20" + }, + "SSCI824": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC82X"], + "is_disk_virtual": true, + "supported_toolchains": ["uARM", "GCC_ARM"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"] + }, + "MCU_LPC4088": { + "inherits": ["LPCTarget"], + "core": "Cortex-M4F", + "extra_labels": ["NXP", "LPC408X"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "GCC_CR", "GCC_ARM", "IAR"], + "post_binary_hook": { + "function": "LPC4088Code.binary_hook" + }, + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "features": ["LWIP"], + "device_name": "LPC4088FBD144" + }, + "LPC4088": { + "inherits": ["MCU_LPC4088"], + "release_versions": ["2", "5"] + }, + "LPC4088_DM": { + "inherits": ["MCU_LPC4088"], + "release_versions": ["2", "5"] + }, + "LPC4330_M4": { + "inherits": ["LPCTarget"], + "core": "Cortex-M4F", + "extra_labels": ["NXP", "LPC43XX", "LPC4330"], + "supported_toolchains": ["ARM", "GCC_CR", "IAR", "GCC_ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "device_name": "LPC4330" + }, + "LPC4330_M0": { + "inherits": ["LPCTarget"], + "core": "Cortex-M0", + "extra_labels": ["NXP", "LPC43XX", "LPC4330"], + "supported_toolchains": ["ARM", "GCC_CR", "IAR"], + "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"] + }, + "LPC4337": { + "inherits": ["LPCTarget"], + "core": "Cortex-M4F", + "extra_labels": ["NXP", "LPC43XX", "LPC4337"], + "supported_toolchains": ["ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "DEBUG_AWARENESS", "ERROR_RED", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "LPC4337" + }, + "LPC1800": { + "inherits": ["LPCTarget"], + "core": "Cortex-M3", + "extra_labels": ["NXP", "LPC43XX"], + "public": false, + "supported_toolchains": ["ARM", "GCC_CR", "IAR"] + }, + "LPC11U37H_401": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC11UXX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "GCC_CR"], + "inherits": ["LPCTarget"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "LPC11U37HFBD64/401" + }, + "ELEKTOR_COCORICO": { + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["NXP", "LPC81X"], + "supported_toolchains": ["uARM", "GCC_ARM", "IAR"], + "inherits": ["LPCTarget"], + "is_disk_virtual": true, + "detect_code": ["C000"], + "default_lib": "small", + "device_name": "LPC812M101JDH16" + }, + "KL05Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "extra_labels": ["Freescale", "KLXX"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "MKL05Z32xxx4" + }, + "KL25Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "extra_labels": ["Freescale", "KLXX"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0200"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "MKL25Z128xxx4" + }, + "KL26Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "extra_labels": ["Freescale", "KLXX"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "device_name": "MKL26Z128xxx4" + }, + "KL46Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "extra_labels": ["Freescale", "KLXX", "FLASH_CMSIS_ALGO"], + "is_disk_virtual": true, + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0220"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "FLASH"], + "release_versions": ["2", "5"], + "device_name": "MKL46Z256xxx4", + "bootloader_supported": true + }, + "K20D50M": { + "inherits": ["Target"], + "core": "Cortex-M4", + "extra_labels": ["Freescale", "K20XX"], + "is_disk_virtual": true, + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "detect_code": ["0230"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "MK20DX128xxx5" + }, + "TEENSY3_1": { + "inherits": ["Target"], + "core": "Cortex-M4", + "extra_labels": ["Freescale", "K20XX", "K20DX256"], + "OUTPUT_EXT": "hex", + "is_disk_virtual": true, + "supported_toolchains": ["GCC_ARM", "ARM"], + "post_binary_hook": { + "function": "TEENSY3_1Code.binary_hook", + "toolchains": ["ARM_STD", "ARM_MICRO", "GCC_ARM"] + }, + "detect_code": ["0230"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "MK20DX256xxx7" + }, + "MCU_K22F512": { + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "MCU_K22F", "MCU_K22F512", "FRDM", "KPSDK_MCUS", "KPSDK_CODE"], + "is_disk_virtual": true, + "public": false, + "macros": ["CPU_MK22FN512VLH12", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0231"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"], + "device_name": "MK22DN512xxx5" + }, + "K22F": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_K22F512"], + "release_versions": ["2", "5"], + "extra_labels_add": ["FRDM"] + }, + "KL27Z": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "macros": ["CPU_MKL27Z64VLH4", "FSL_RTOS_MBED"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "supported_form_factors": ["ARDUINO"], + "is_disk_virtual": true, + "default_toolchain": "ARM", + "detect_code": ["0261"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "default_lib": "std", + "release_versions": ["2"], + "device_name": "MKL27Z64xxx4" + }, + "KL43Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "macros": ["CPU_MKL43Z256VLH4", "FSL_RTOS_MBED"], + "is_disk_virtual": true, + "inherits": ["Target"], + "detect_code": ["0262"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "MKL43Z256xxx4" + }, + "KL82Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "macros": ["CPU_MKL82Z128VLK7", "FSL_RTOS_MBED"], + "is_disk_virtual": true, + "inherits": ["Target"], + "detect_code": ["0218"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SEMIHOST", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "MKL82Z128xxx7" + }, + "KW24D": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "is_disk_virtual": true, + "macros": ["CPU_MKW24D512VHA5", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0250"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "MKW24D512xxx5" + }, + "KW41Z": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0+", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "is_disk_virtual": true, + "macros": ["CPU_MKW41Z512VHT4", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0201"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "MKW41Z512xxx4" + }, + "K64F": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM", "KPSDK_MCUS", "KPSDK_CODE", "MCU_K64F", "FLASH_CMSIS_ALGO"], + "is_disk_virtual": true, + "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0240"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES", "STORAGE", "TRNG", "FLASH"], + "features": ["LWIP", "STORAGE"], + "release_versions": ["2", "5"], + "device_name": "MK64FN1M0xxx12", + "bootloader_supported": true + }, + "MTS_GAMBIT": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "GCC_ARM"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "KPSDK_MCUS", "KPSDK_CODE", "MCU_K64F", "FLASH_CMSIS_ALGO"], + "is_disk_virtual": true, + "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"], + "device_has": ["I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES", "FLASH"], + "device_name": "MK64FN1M0xxx12" + }, + "HEXIWEAR": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "MCU_K64F", "FLASH_CMSIS_ALGO"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "TARGET_K64F"], + "is_disk_virtual": true, + "default_toolchain": "ARM", + "detect_code": ["0214"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE", "STDIO_MESSAGES", "TRNG", "FLASH"], + "default_lib": "std", + "release_versions": ["2", "5"], + "device_name": "MK64FN1M0xxx12" + }, + "K66F": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "is_disk_virtual": true, + "macros": ["CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0311"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name" : "MK66FN2M0xxx18" + }, + "K82F": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "extra_labels": ["Freescale", "MCUXpresso_MCUS", "KSDK2_MCUS", "FRDM"], + "is_disk_virtual": true, + "macros": ["CPU_MK82FN256VDC15", "FSL_RTOS_MBED"], + "inherits": ["Target"], + "detect_code": ["0217"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name" : "MK82FN256xxx15" + }, + "NUCLEO_F030R8": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F0", "STM32F030R8"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0725"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F030R8" + }, + "NUCLEO_F031K6": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["STM", "STM32F0", "STM32F031K6"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0791"], + "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F031K6" + }, + "NUCLEO_F042K6": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "default_toolchain": "uARM", + "extra_labels": ["STM", "STM32F0", "STM32F042K6"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0785"], + "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F042K6" + }, + "NUCLEO_F070RB": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F0", "STM32F070RB"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0755"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F070RB" + }, + "NUCLEO_F072RB": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F0", "STM32F072RB"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0730"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F072RB" + }, + "NUCLEO_F091RC": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F0", "STM32F091RC"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0750"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F091RC" + }, + "NUCLEO_F103RB": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M3", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F1", "STM32F103RB"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0700"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F103RB" + }, + "NUCLEO_F207ZG": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M3", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F2", "STM32F207ZG"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0835"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name" : "STM32F207ZG" + }, + "NUCLEO_F302R8": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F302x8", "STM32F302R8"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0705"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F302R8" + }, + "NUCLEO_F303K8": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F303x8", "STM32F303K8"], + "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0775"], + "default_lib": "small", + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "STM32F303K8" + }, + "NUCLEO_F303RE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F303xE", "STM32F303RE"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0745"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F303RE" + }, + "NUCLEO_F303ZE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F303xE", "STM32F303ZE"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0747"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "LOWPOWERTIMER"], + "release_versions": ["2", "5"], + "device_name": "STM32F303ZE" + }, + "NUCLEO_F334R8": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F334x8", "STM32F334R8"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0735"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F334R8" + }, + "NUCLEO_F401RE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F401xE", "STM32F401RE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0720"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F401RE" + }, + "NUCLEO_F410RB": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F410RB","STM32F410xB", "STM32F410Rx"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "detect_code": ["0744"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32F410RB" + }, + "NUCLEO_F411RE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F411xE", "STM32F411RE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0740"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F411RE" + }, + "NUCLEO_F412ZG": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F412xG", "STM32F412ZG"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0826"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32F412ZG" + }, + "ELMO_F411RE": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "uARM", + "extra_labels": ["STM", "STM32F4", "STM32F411xE", "STM32F411RE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["----"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F411RE" + }, + "NUCLEO_F429ZI": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F429", "STM32F429ZI", "STM32F429xx", "STM32F429xI", "FLASH_CMSIS_ALGO"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "progen": {"target": "nucleo-f429zi"}, + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG", "FLASH"], + "detect_code": ["0796"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name" : "STM32F429ZI", + "bootloader_supported": true + }, + "NUCLEO_F439ZI": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F439", "STM32F439ZI", "STM32F439xx", "STM32F439xI", "FLASH_CMSIS_ALGO"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "progen": {"target": "nucleo-f439zi"}, + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "MBEDTLS_CONFIG_HW_SUPPORT"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG", "FLASH"], + "detect_code": ["0797"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name" : "STM32F439ZI" + }, + "NUCLEO_F446RE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F446xE", "STM32F446RE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0777"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F446RE" + }, + "NUCLEO_F446ZE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F446xE", "STM32F446ZE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0778"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name" : "STM32F446ZE" + }, + "B96B_F446VE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F446xE", "STM32F446VE"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0840"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name":"STM32F446VE" + }, + "NUCLEO_F746ZG": { + "inherits": ["Target"], + "core": "Cortex-M7F", + "extra_labels": ["STM", "STM32F7", "STM32F746", "STM32F746xG", "STM32F746ZG"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USBHOST_OTHER"], + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0816"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name": "STM32F746ZG" + }, + "NUCLEO_F756ZG": { + "inherits": ["Target"], + "core": "Cortex-M7F", + "extra_labels": ["STM", "STM32F7", "STM32F756", "STM32F756xG", "STM32F756ZG"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0819"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name": "STM32F756ZG" + }, + "NUCLEO_F767ZI": { + "inherits": ["Target"], + "core": "Cortex-M7FD", + "extra_labels": ["STM", "STM32F7", "STM32F767", "STM32F767xI", "STM32F767ZI"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "supported_form_factors": ["ARDUINO"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USBHOST_OTHER"], + "detect_code": ["0818"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name" : "STM32F767ZI" + }, + "NUCLEO_L011K4": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "extra_labels": ["STM", "STM32L0", "STM32L011K4"], + "supported_toolchains": ["uARM"], + "default_toolchain": "uARM", + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0780"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32L011K4" + }, + "NUCLEO_L031K6": { + "inherits": ["Target"], + "core": "Cortex-M0", + "extra_labels": ["STM", "STM32L0", "STM32L031K6"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "default_toolchain": "uARM", + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0790"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32L031K6" + }, + "NUCLEO_L053R8": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0+", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L0", "STM32L053R8"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0715"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32L053R8" + }, + "NUCLEO_L073RZ": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M0+", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L0", "STM32L073RZ", "STM32L073xx"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "detect_code": ["0760"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32L073RZ" + }, + "NUCLEO_L152RE": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M3", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L1", "STM32L152RE"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0710"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32L152RE" + }, + "NUCLEO_L432KC": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L4", "STM32L432xC", "STM32L432KC"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0770"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "CAN", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name" : "STM32L432KC" + }, + "NUCLEO_L476RG": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L4", "STM32L476RG", "STM32L476xG"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0765"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2","USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32L476RG" + }, + "NUCLEO_L486RG": { + "supported_form_factors": ["ARDUINO", "MORPHO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L4", "STM32L486RG", "STM32L486xG"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "detect_code": ["0827"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2","USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32L486RG" + }, + "STM32F3XX": { + "inherits": ["Target"], + "core": "Cortex-M4", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3XX"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"] + }, + "STM32F407": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "extra_labels": ["STM", "STM32F4", "STM32F4XX", "STM32F407xG"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"] + }, + "ARCH_MAX": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"], + "program_cycle_s": 2, + "extra_labels": ["STM", "STM32F4", "STM32F407", "STM32F407xG", "STM32F407VG"], + "macros": ["LSI_VALUE=32000"], + "inherits": ["Target"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "STM32F407VG" + }, + "DISCO_F051R8": { + "inherits": ["Target"], + "core": "Cortex-M0", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F0", "STM32F051", "STM32F051R8"], + "supported_toolchains": ["GCC_ARM"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "device_name": "STM32F051R8" + }, + "DISCO_F100RB": { + "inherits": ["Target"], + "core": "Cortex-M3", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F1", "STM32F100RB"], + "supported_toolchains": ["GCC_ARM"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "device_name": "STM32F100RB" + }, + "DISCO_F303VC": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303xC", "STM32F303VC"], + "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "supported_toolchains": ["GCC_ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "device_name": "STM32F303VC" + }, + "DISCO_F334C8": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F3", "STM32F334x8","STM32F334C8"], + "macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "detect_code": ["0810"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32F334C8" + }, + "DISCO_F407VG": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "extra_labels": ["STM", "STM32F4", "STM32F407", "STM32F407xG", "STM32F407VG"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USB_STM_HAL"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "device_name": "STM32F407VG" + }, + "DISCO_F429ZI": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F429", "STM32F429ZI", "STM32F429xI", "STM32F429xx", "FLASH_CMSIS_ALGO"], + "macros": ["RTC_LSI=1","TRANSACTION_QUEUE_SIZE_SPI=2", "USBHOST_OTHER"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG", "FLASH"], + "release_versions": ["2", "5"], + "device_name": "STM32F429ZI" + }, + "DISCO_F469NI": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32F4", "STM32F469", "STM32F469NI", "STM32F469xI", "STM32F469xx"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "inherits": ["Target"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "detect_code": ["0788"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32F469NI" + }, + "DISCO_L053C8": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L0", "STM32L053C8"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "macros": ["RTC_LSI=1"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32L053C8" + }, + "DISCO_F746NG": { + "inherits": ["Target"], + "core": "Cortex-M7F", + "extra_labels": ["STM", "STM32F7", "STM32F746", "STM32F746xG", "STM32F746NG"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0815"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name": "STM32F746NG" + }, + "DISCO_F769NI": { + "inherits": ["Target"], + "core": "Cortex-M7FD", + "extra_labels": ["STM", "STM32F7", "STM32F769", "STM32F769xI", "STM32F769NI"], + "supported_toolchains": ["uARM", "ARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "supported_form_factors": ["ARDUINO"], + "detect_code": ["0817"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "release_versions": ["2", "5"], + "device_name": "STM32F769NI" + }, + "DISCO_L476VG": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L4", "STM32L476xG", "STM32L476VG"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "detect_code": ["0820"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "USBHOST_OTHER"], + "device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES", "TRNG"], + "release_versions": ["2", "5"], + "device_name": "STM32L476VG" + }, + "MTS_MDOT_F405RG": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "extra_labels": ["STM", "STM32F4", "STM32F405RG"], + "is_disk_virtual": true, + "macros": ["HSE_VALUE=26000000", "TRANSACTION_QUEUE_SIZE_SPI=2"], + "progen": {"target": "mts-mdot-f405rg"}, + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2"], + "device_name": "STM32F405RG" + }, + "MTS_MDOT_F411RE": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "extra_labels": ["STM", "STM32F4", "STM32F411RE"], + "macros": ["HSE_VALUE=26000000", "USE_PLL_HSE_EXTC=0", "VECT_TAB_OFFSET=0x00010000","TRANSACTION_QUEUE_SIZE_SPI=2"], + "post_binary_hook": { + "function": "MTSCode.combine_bins_mts_dot", + "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO"] + }, + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F411RE" + }, + "MTS_DRAGONFLY_F411RE": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "extra_labels": ["STM", "STM32F4", "STM32F411RE"], + "macros": ["HSE_VALUE=26000000", "VECT_TAB_OFFSET=0x08010000","TRANSACTION_QUEUE_SIZE_SPI=2", "RTC_LSI=1"], + "post_binary_hook": { + "function": "MTSCode.combine_bins_mts_dragonfly", + "toolchains": ["GCC_ARM", "ARM_STD", "ARM_MICRO"] + }, + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "release_versions": ["2", "5"], + "device_name": "STM32F411RE" + }, + "XDOT_L151CC": { + "inherits": ["Target"], + "core": "Cortex-M3", + "default_toolchain": "ARM", + "extra_labels": ["STM", "STM32L1", "STM32L151CC"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "std", + "release_versions": ["5"], + "device_name": "STM32L151CC" + }, + "MOTE_L152RC": { + "inherits": ["Target"], + "core": "Cortex-M3", + "default_toolchain": "uARM", + "extra_labels": ["STM", "STM32L1", "STM32L152RC"], + "macros": ["RTC_LSI=1"], + "supported_toolchains": ["ARM", "uARM", "IAR", "GCC_ARM"], + "detect_code": ["4100"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "STM32L152RC" + }, + "DISCO_F401VC": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "default_toolchain": "GCC_ARM", + "extra_labels": ["STM", "STM32F4", "STM32F401", "STM32F401xC", "STM32F401VC"], + "supported_toolchains": ["GCC_ARM"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "device_name": "STM32F401VC" + }, + "UBLOX_EVK_ODIN_W2": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "extra_labels": ["STM", "STM32F4", "STM32F439", "STM32F439ZI","STM32F439xx", "FLASH_CMSIS_ALGO"], + "macros": ["HSE_VALUE=24000000", "HSE_STARTUP_TIMEOUT=5000", "CB_INTERFACE_SDIO","CB_CHIP_WL18XX","SUPPORT_80211D_ALWAYS","WLAN_ENABLED","MBEDTLS_ARC4_C","MBEDTLS_DES_C","MBEDTLS_MD4_C","MBEDTLS_MD5_C","MBEDTLS_SHA1_C"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "CAN", "EMAC", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG", "FLASH"], + "features": ["LWIP"], + "release_versions": ["5"], + "device_name": "STM32F439ZI", + "bootloader_supported": true + }, + "UBLOX_C030": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "extra_labels": ["STM", "STM32F4", "STM32F437", "STM32F437VG", "STM32F437xx", "STM32F437xG"], + "macros": ["TRANSACTION_QUEUE_SIZE_SPI=2", "RTC_LSI=1", "HSE_VALUE=12000000"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "RTC", "SPI", "SPISLAVE", "STDIO_MESSAGES", "TRNG"], + "features": ["LWIP"], + "public": false, + "device_name": "STM32F437VG" + }, + "UBLOX_C030_U201": { + "inherits": ["UBLOX_C030"], + "release_versions": ["5"] + }, + "UBLOX_C030_N211": { + "inherits": ["UBLOX_C030"], + "release_versions": ["5"] + }, + "NZ32_SC151": { + "inherits": ["Target"], + "core": "Cortex-M3", + "default_toolchain": "uARM", + "program_cycle_s": 1.5, + "extra_labels": ["STM", "STM32L1", "STM32L151RC"], + "macros": ["RTC_LSI=1"], + "supported_toolchains": ["ARM", "uARM", "GCC_ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "default_lib": "small", + "device_name": "STM32L151RC" + }, + "MCU_NRF51": { + "inherits": ["Target"], + "core": "Cortex-M0", + "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex", + "macros": ["NRF51", "TARGET_NRF51822"], + "MERGE_BOOTLOADER": false, + "extra_labels": ["NORDIC", "MCU_NRF51", "MCU_NRF51822"], + "OUTPUT_EXT": "hex", + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "GCC_ARM"], + "public": false, + "MERGE_SOFT_DEVICE": true, + "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [ + { + "boot": "s130_nrf51_1.0.0_bootloader.hex", + "name": "s130_nrf51_1.0.0_softdevice.hex", + "offset": 114688 + }, + { + "boot": "s110_nrf51822_8.0.0_bootloader.hex", + "name": "s110_nrf51822_8.0.0_softdevice.hex", + "offset": 98304 + }, + { + "boot": "s110_nrf51822_7.1.0_bootloader.hex", + "name": "s110_nrf51822_7.1.0_softdevice.hex", + "offset": 90112 + }, + { + "boot": "s110_nrf51822_7.0.0_bootloader.hex", + "name": "s110_nrf51822_7.0.0_softdevice.hex", + "offset": 90112 + }, + { + "boot": "s110_nrf51822_6.0.0_bootloader.hex", + "name": "s110_nrf51822_6.0.0_softdevice.hex", + "offset": 81920 + } + ], + "detect_code": ["1070"], + "post_binary_hook": { + "function": "MCU_NRF51Code.binary_hook", + "toolchains": ["ARM_STD", "GCC_ARM"] + }, + "program_cycle_s": 6, + "features": ["BLE"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"] + }, + "MCU_NRF51_16K_BASE": { + "inherits": ["MCU_NRF51"], + "extra_labels_add": ["MCU_NORDIC_16K", "MCU_NRF51_16K"], + "macros_add": ["TARGET_MCU_NORDIC_16K", "TARGET_MCU_NRF51_16K"], + "public": false, + "default_lib": "small" + }, + "MCU_NRF51_16K_BOOT_BASE": { + "inherits": ["MCU_NRF51_16K_BASE"], + "MERGE_BOOTLOADER": true, + "extra_labels_add": ["MCU_NRF51_16K_BOOT"], + "macros_add": ["TARGET_MCU_NRF51_16K_BOOT", "TARGET_OTA_ENABLED"], + "public": false + }, + "MCU_NRF51_16K_OTA_BASE": { + "inherits": ["MCU_NRF51_16K_BASE"], + "public": false, + "extra_labels_add": ["MCU_NRF51_16K_OTA"], + "macros_add": ["TARGET_MCU_NRF51_16K_OTA", "TARGET_OTA_ENABLED"], + "MERGE_SOFT_DEVICE": false + }, + "MCU_NRF51_16K": { + "inherits": ["MCU_NRF51_16K_BASE"], + "extra_labels_add": ["MCU_NRF51_16K_S130"], + "macros_add": ["TARGET_MCU_NRF51_16K_S130"], + "public": false + }, + "MCU_NRF51_S110": { + "extra_labels_add": ["MCU_NRF51_16K_S110"], + "macros_add": ["TARGET_MCU_NRF51_16K_S110"], + "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [ + { + "name": "s110_nrf51822_8.0.0_softdevice.hex", + "boot": "s110_nrf51822_8.0.0_bootloader.hex", + "offset": 98304 + }, + { + "name": "s110_nrf51822_7.1.0_softdevice.hex", + "boot": "s110_nrf51822_7.1.0_bootloader.hex", + "offset": 90112 + } + ], + "public": false + }, + "MCU_NRF51_16K_S110": { + "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BASE"], + "public": false + }, + "MCU_NRF51_16K_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT_BASE"], + "extra_labels_add": ["MCU_NRF51_16K_S130"], + "macros_add": ["TARGET_MCU_NRF51_16K_S130"], + "public": false + }, + "MCU_NRF51_16K_BOOT_S110": { + "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_BOOT_BASE"], + "public": false + }, + "MCU_NRF51_16K_OTA": { + "inherits": ["MCU_NRF51_16K_OTA_BASE"], + "extra_labels_add": ["MCU_NRF51_16K_S130"], + "macros_add": ["TARGET_MCU_NRF51_16K_S130"], + "public": false + }, + "MCU_NRF51_16K_OTA_S110": { + "inherits": ["MCU_NRF51_S110", "MCU_NRF51_16K_OTA_BASE"], + "public": false + }, + "MCU_NRF51_32K": { + "inherits": ["MCU_NRF51"], + "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"], + "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"], + "public": false + }, + "MCU_NRF51_32K_BOOT": { + "inherits": ["MCU_NRF51_32K"], + "MERGE_BOOTLOADER": true, + "extra_labels_add": ["MCU_NRF51_32K_BOOT"], + "macros_add": ["TARGET_MCU_NRF51_32K_BOOT", "TARGET_OTA_ENABLED"], + "public": false + }, + "MCU_NRF51_32K_OTA": { + "inherits": ["MCU_NRF51_32K"], + "public": false, + "extra_labels_add": ["MCU_NRF51_32K_OTA"], + "macros_add": ["TARGET_MCU_NRF51_32K_OTA", "TARGET_OTA_ENABLED"], + "MERGE_SOFT_DEVICE": false + }, + "NRF51822": { + "inherits": ["MCU_NRF51_16K"], + "extra_labels_add": ["NRF51822", "NRF51822_MKIT"], + "macros_add": ["TARGET_NRF51822_MKIT"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "NRF51822_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["NRF51822", "NRF51822_MKIT"], + "macros_add": ["TARGET_NRF51822_MKIT"] + }, + "NRF51822_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["NRF51822", "NRF51822_MKIT"], + "macros_add": ["TARGET_NRF51822_MKIT"] + }, + "ARCH_BLE": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "ARCH_BLE_BOOT": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["ARCH_BLE"], + "macros_add": ["TARGET_ARCH_BLE"] + }, + "ARCH_BLE_OTA": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["ARCH_BLE"], + "macros_add": ["TARGET_ARCH_BLE"] + }, + "ARCH_LINK": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K"], + "extra_labels_add": ["ARCH_BLE"], + "macros_add": ["TARGET_ARCH_BLE"] + }, + "ARCH_LINK_BOOT": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"], + "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"] + }, + "ARCH_LINK_OTA": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["ARCH_BLE", "ARCH_LINK"], + "macros_add": ["TARGET_ARCH_BLE", "TARGET_ARCH_LINK"] + }, + "SEEED_TINY_BLE": { + "inherits": ["MCU_NRF51_16K"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "SEEED_TINY_BLE_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["SEEED_TINY_BLE"], + "macros_add": ["TARGET_SEEED_TINY_BLE"] + }, + "SEEED_TINY_BLE_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["SEEED_TINY_BLE"], + "macros_add": ["TARGET_SEEED_TINY_BLE"] + }, + "HRM1017": { + "inherits": ["MCU_NRF51_16K"], + "macros_add": ["TARGET_NRF_LFCLK_RC"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "HRM1017_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["HRM1017"], + "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"] + }, + "HRM1017_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["HRM1017"], + "macros_add": ["TARGET_HRM1017", "TARGET_NRF_LFCLK_RC"] + }, + "RBLAB_NRF51822": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "RBLAB_NRF51822_BOOT": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["RBLAB_NRF51822"], + "macros_add": ["TARGET_RBLAB_NRF51822"] + }, + "RBLAB_NRF51822_OTA": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["RBLAB_NRF51822"], + "macros_add": ["TARGET_RBLAB_NRF51822"] + }, + "RBLAB_BLENANO": { + "inherits": ["MCU_NRF51_16K"], + "release_versions": ["2"] + }, + "RBLAB_BLENANO_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["RBLAB_BLENANO"], + "macros_add": ["TARGET_RBLAB_BLENANO"] + }, + "RBLAB_BLENANO_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["RBLAB_BLENANO"], + "macros_add": ["TARGET_RBLAB_BLENANO"] + }, + "NRF51822_Y5_MBUG": { + "inherits": ["MCU_NRF51_16K"] + }, + "WALLBOT_BLE": { + "inherits": ["MCU_NRF51_16K"], + "release_versions": ["2"] + }, + "WALLBOT_BLE_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["WALLBOT_BLE"], + "macros_add": ["TARGET_WALLBOT_BLE"] + }, + "WALLBOT_BLE_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["WALLBOT_BLE"], + "macros_add": ["TARGET_WALLBOT_BLE"] + }, + "DELTA_DFCM_NNN40": { + "inherits": ["MCU_NRF51_32K"], + "program_cycle_s": 10, + "macros_add": ["TARGET_NRF_LFCLK_RC"], + "device_has": ["ANALOGIN", "DEBUG_AWARENESS", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SLEEP", "SPI", "SPISLAVE"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "DELTA_DFCM_NNN40_BOOT": { + "inherits": ["MCU_NRF51_32K_BOOT"], + "program_cycle_s": 10, + "extra_labels_add": ["DELTA_DFCM_NNN40"], + "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"] + }, + "DELTA_DFCM_NNN40_OTA": { + "inherits": ["MCU_NRF51_32K_OTA"], + "program_cycle_s": 10, + "extra_labels_add": ["DELTA_DFCM_NNN40"], + "macros_add": ["TARGET_DELTA_DFCM_NNN40", "TARGET_NRF_LFCLK_RC"] + }, + "DELTA_DFCM_NNN50": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_UNIFIED"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "device_name": "nRF51822_xxAC" + }, + "DELTA_DFCM_NNN50_BOOT": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_BOOT"], + "extra_labels_add": ["DELTA_DFCM_NNN50"], + "macros_add": ["TARGET_DELTA_DFCM_NNN50"] + }, + "DELTA_DFCM_NNN50_OTA": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_OTA"], + "extra_labels_add": ["DELTA_DFCM_NNN50"], + "macros_add": ["TARGET_DELTA_DFCM_NNN50"] + }, + "NRF51_DK_LEGACY": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K"], + "extra_labels_add": ["NRF51_DK"] + }, + "NRF51_DK_BOOT": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_BOOT"], + "extra_labels_add": ["NRF51_DK"], + "macros_add": ["TARGET_NRF51_DK"] + }, + "NRF51_DK_OTA": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_OTA"], + "extra_labels_add": ["NRF51_DK"], + "macros_add": ["TARGET_NRF51_DK"] + }, + "NRF51_DONGLE_LEGACY": { + "inherits": ["MCU_NRF51_32K"], + "extra_labels_add": ["NRF51_DONGLE"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "NRF51_DONGLE_BOOT": { + "inherits": ["MCU_NRF51_32K_BOOT"], + "extra_labels_add": ["NRF51_DONGLE"], + "macros_add": ["TARGET_NRF51_DONGLE"] + }, + "NRF51_DONGLE_OTA": { + "inherits": ["MCU_NRF51_32K_OTA"], + "extra_labels_add": ["NRF51_DONGLE"], + "macros_add": ["TARGET_NRF51_DONGLE"] + }, + "NRF51_MICROBIT": { + "inherits": ["MCU_NRF51_16K_S110"], + "macros_add": ["TARGET_NRF_LFCLK_RC"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "NRF51_MICROBIT_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT_S110"], + "extra_labels_add": ["NRF51_MICROBIT"], + "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"] + }, + "NRF51_MICROBIT_OTA": { + "inherits": ["MCU_NRF51_16K_OTA_S110"], + "extra_labels_add": ["NRF51_MICROBIT"], + "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"] + }, + "NRF51_MICROBIT_B": { + "inherits": ["MCU_NRF51_16K"], + "extra_labels_add": ["NRF51_MICROBIT"], + "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"], + "release_versions": ["2"] + }, + "NRF51_MICROBIT_B_BOOT": { + "inherits": ["MCU_NRF51_16K_BOOT"], + "extra_labels_add": ["NRF51_MICROBIT"], + "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"] + }, + "NRF51_MICROBIT_B_OTA": { + "inherits": ["MCU_NRF51_16K_OTA"], + "extra_labels_add": ["NRF51_MICROBIT"], + "macros_add": ["TARGET_NRF51_MICROBIT", "TARGET_NRF_LFCLK_RC"] + }, + "MTM_MTCONNECT04S": { + "inherits": ["MCU_NRF51_32K"], + "release_versions": ["2"], + "device_name": "nRF51822_xxAA" + }, + "MTM_MTCONNECT04S_BOOT": { + "inherits": ["MCU_NRF51_32K_BOOT"], + "extra_labels_add": ["MTM_CONNECT04S"], + "macros_add": ["TARGET_MTM_CONNECT04S"] + }, + "MTM_MTCONNECT04S_OTA": { + "inherits": ["MCU_NRF51_32K_OTA"], + "extra_labels_add": ["MTM_CONNECT04S"], + "macros_add": ["TARGET_MTM_CONNECT04S"] + }, + "TY51822R3": { + "inherits": ["MCU_NRF51_32K_UNIFIED"], + "macros_add": ["TARGET_NRF_32MHZ_XTAL"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "detect_code": ["1019"], + "release_versions": ["2", "5"], + "overrides": {"uart_hwfc": 0}, + "device_name": "nRF51822_xxAA" + }, + "TY51822R3_BOOT": { + "inherits": ["MCU_NRF51_32K_BOOT"], + "extra_labels_add": ["TY51822R3"], + "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"] + }, + "TY51822R3_OTA": { + "inherits": ["MCU_NRF51_32K_OTA"], + "extra_labels_add": ["NRF51_DK"], + "macros_add": ["TARGET_TY51822R3", "TARGET_NRF_32MHZ_XTAL"] + }, + "ARM_MPS2_Target": { + "inherits": ["Target"], + "public": false, + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"] + }, + "ARM_MPS2_M0": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M0", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0"], + "macros": ["CMSDK_CM0"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_MPS2_M0P": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M0+", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M0P"], + "macros": ["CMSDK_CM0plus"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_MPS2_M1": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M1", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M1"], + "macros": ["CMSDK_CM1"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"] + }, + "ARM_MPS2_M3": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M3"], + "macros": ["CMSDK_CM3"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_MPS2_M4": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M4F", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M4"], + "macros": ["CMSDK_CM4"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_MPS2_M7": { + "inherits": ["ARM_MPS2_Target"], + "core": "Cortex-M7", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "MPS2", "MPS2_M7"], + "macros": ["CMSDK_CM7"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_IOTSS_Target": { + "inherits": ["Target"], + "public": false, + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"] + }, + "ARM_IOTSS_BEID": { + "inherits": ["ARM_IOTSS_Target"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM"], + "extra_labels": ["ARM_SSG", "IOTSS", "IOTSS_BEID"], + "macros": ["CMSDK_BEID"], + "device_has": ["AACI", "ANALOGIN", "CLCD", "ETHERNET", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "TSC"], + "release_versions": ["2"] + }, + "ARM_BEETLE_SOC": { + "inherits": ["ARM_IOTSS_Target"], + "core": "Cortex-M3", + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "extra_labels": ["ARM_SSG", "BEETLE"], + "macros": ["CMSDK_BEETLE", "WSF_MS_PER_TICK=20", "WSF_TOKEN_ENABLED=FALSE", "WSF_TRACE_ENABLED=TRUE", "WSF_ASSERT_ENABLED=FALSE", "WSF_PRINTF_MAX_LEN=128", "ASIC", "CONFIG_HOST_REV=0x20", "CONFIG_ALLOW_DEEP_SLEEP=FALSE", "HCI_VS_TARGET", "CONFIG_ALLOW_SETTING_WRITE=TRUE", "WSF_MAX_HANDLERS=20", "NO_LEDS"], + "device_has": ["ANALOGIN", "CLCD", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SLEEP", "SPI"], + "features": ["BLE"], + "release_versions": ["2", "5"] + }, + "RZ_A1H": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-A9", + "program_cycle_s": 2, + "extra_labels": ["RENESAS", "MBRZA1H"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "features": ["LWIP"], + "release_versions": ["2", "5"] + }, + "VK_RZ_A1H": { + "inherits": ["Target"], + "core": "Cortex-A9", + "extra_labels": ["RENESAS", "VKRZA1H"], + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "default_toolchain": "ARM", + "program_cycle_s": 2, + "device_has": ["ANALOGIN", "CAN", "ERROR_PATTERN", "ETHERNET", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "features": ["LWIP"], + "default_lib": "std", + "release_versions": ["2", "5"] + }, + "MAXWSNENV": { + "inherits": ["Target"], + "core": "Cortex-M3", + "macros": ["__SYSTEM_HFX=24000000"], + "extra_labels": ["Maxim", "MAX32610"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"], + "features": ["BLE"], + "release_versions": ["2", "5"] + }, + "MAX32600MBED": { + "inherits": ["Target"], + "core": "Cortex-M3", + "macros": ["__SYSTEM_HFX=24000000"], + "extra_labels": ["Maxim", "MAX32600"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"], + "release_versions": ["2", "5"] + }, + "MAX32620HSP": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "extra_labels": ["Maxim", "MAX32620"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "STDIO_MESSAGES"], + "features": ["BLE"], + "release_versions": ["2", "5"] + }, + "MAX32625MBED": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132"], + "extra_labels": ["Maxim", "MAX32625"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"], + "release_versions": ["2", "5"] + }, + "MAX32625NEXPAQ": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "macros": ["__SYSTEM_HFX=96000000","TARGET=MAX32625","TARGET_REV=0x4132"], + "extra_labels": ["Maxim", "MAX32625"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"], + "release_versions": ["2", "5"] + }, + "MAX32630FTHR": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "macros": ["__SYSTEM_HFX=96000000", "TARGET=MAX32630", "TARGET_REV=0x4132"], + "extra_labels": ["Maxim", "MAX32630"], + "supported_toolchains": ["GCC_ARM", "IAR", "ARM"], + "device_has": ["ANALOGIN", "ERROR_RED", "I2C", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "STDIO_MESSAGES"], + "release_versions": ["2", "5"] + }, + "EFM32": { + "inherits": ["Target"], + "extra_labels": ["Silicon_Labs", "EFM32"], + "public": false + }, + "EFM32GG990F1024": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32GG", "1024K", "SL_AES"], + "core": "Cortex-M3", + "macros": ["EFM32GG990F1024", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "device_name": "EFM32GG990F1024", + "public": false + }, + "EFM32GG_STK3700": { + "inherits": ["EFM32GG990F1024"], + "progen": {"target": "efm32gg-stk"}, + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "48000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "21000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!", + "value": "_CMU_HFRCOCTRL_BAND_21MHZ", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PF7", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFM32LG990F256": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32LG", "256K", "SL_AES"], + "core": "Cortex-M3", + "macros": ["EFM32LG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "device_name": "EFM32LG990F256", + "public": false + }, + "EFM32LG_STK3600": { + "inherits": ["EFM32LG990F256"], + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "device_name": "EFM32LG990F256", + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "48000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "21000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!", + "value": "_CMU_HFRCOCTRL_BAND_21MHZ", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PF7", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFM32WG990F256": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32WG", "256K", "SL_AES"], + "core": "Cortex-M4F", + "macros": ["EFM32WG990F256", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "device_name": "EFM32WG990F256", + "public": false + }, + "EFM32WG_STK3800": { + "inherits": ["EFM32WG990F256"], + "progen": {"target": "efm32wg-stk"}, + "device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "48000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "21000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of _CMU_HFRCOCTRL_BAND_28MHZ, _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!", + "value": "_CMU_HFRCOCTRL_BAND_21MHZ", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PF7", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFM32ZG222F32": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32ZG", "32K", "SL_AES"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "macros": ["EFM32ZG222F32", "TRANSACTION_QUEUE_SIZE_SPI=0"], + "supported_toolchains": ["GCC_ARM", "uARM", "IAR"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "EFM32ZG222F32", + "public": false + }, + "EFM32ZG_STK3200": { + "inherits": ["EFM32ZG222F32"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "24000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "21000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!", + "value": "_CMU_HFRCOCTRL_BAND_21MHZ", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PA9", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFM32HG322F64": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32HG", "64K", "SL_AES"], + "core": "Cortex-M0+", + "default_toolchain": "uARM", + "macros": ["EFM32HG322F64", "TRANSACTION_QUEUE_SIZE_SPI=0"], + "supported_toolchains": ["GCC_ARM", "uARM", "IAR"], + "default_lib": "small", + "release_versions": ["2"], + "device_name": "EFM32HG322F64", + "public": false + }, + "EFM32HG_STK3400": { + "inherits": ["EFM32HG322F64"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "24000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "21000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of _CMU_HFRCOCTRL_BAND_21MHZ, _CMU_HFRCOCTRL_BAND_14MHZ, _CMU_HFRCOCTRL_BAND_11MHZ, _CMU_HFRCOCTRL_BAND_7MHZ, _CMU_HFRCOCTRL_BAND_1MHZ. Be sure to set hfrco_clock_freq accordingly!", + "value": "_CMU_HFRCOCTRL_BAND_21MHZ", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PA9", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFM32PG1B100F256GM32": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32PG", "256K", "SL_CRYPTO"], + "core": "Cortex-M4F", + "macros": ["EFM32PG1B100F256GM32", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "device_name": "EFM32PG1B100F256GM32", + "public": false + }, + "EFM32PG_STK3401": { + "inherits": ["EFM32PG1B100F256GM32"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "40000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "32000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!", + "value": "cmuHFRCOFreq_32M0Hz", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PA5", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFR32MG1P132F256GM48": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFR32MG1", "256K", "SL_RAIL", "SL_CRYPTO"], + "core": "Cortex-M4F", + "macros": ["EFR32MG1P132F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "device_name": "EFR32MG1P132F256GM48", + "public": false + }, + "EFR32MG1P233F256GM48": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFR32MG1", "256K", "SL_RAIL", "SL_CRYPTO"], + "core": "Cortex-M4F", + "macros": ["EFR32MG1P233F256GM48", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "public": false + }, + "EFR32MG1_BRD4150": { + "inherits": ["EFR32MG1P132F256GM48"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "38400000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "32000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!", + "value": "cmuHFRCOFreq_32M0Hz", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PA5", + "macro_name": "EFM_BC_EN" + } + }, + "public": false + }, + "TB_SENSE_1": { + "inherits": ["EFR32MG1P233F256GM48"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 5, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "38400000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "32000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!", + "value": "cmuHFRCOFreq_32M0Hz", + "macro_name": "HFRCO_FREQUENCY_ENUM" + } + } + }, + "EFM32PG12B500F1024GL125": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFM32PG12", "1024K", "SL_CRYPTO"], + "core": "Cortex-M4F", + "macros": ["EFM32PG12B500F1024GL125", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "public": false + }, + "EFM32PG12_STK3402": { + "inherits": ["EFM32PG12B500F1024GL125"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 2, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "40000000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "32000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!", + "value": "cmuHFRCOFreq_32M0Hz", + "macro_name": "HFRCO_FREQUENCY_ENUM" + }, + "board_controller_enable": { + "help": "Pin to pull high for enabling the USB serial port", + "value": "PA5", + "macro_name": "EFM_BC_EN" + } + } + }, + "EFR32MG12P332F1024GL125": { + "inherits": ["EFM32"], + "extra_labels_add": ["EFR32MG12", "1024K", "SL_RAIL", "SL_CRYPTO"], + "core": "Cortex-M4F", + "macros": ["EFR32MG12P332F1024GL125", "TRANSACTION_QUEUE_SIZE_SPI=4"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM", "IAR"], + "release_versions": ["2", "5"], + "public": false + }, + "TB_SENSE_12": { + "inherits": ["EFR32MG12P332F1024GL125"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"], + "forced_reset_timeout": 5, + "config": { + "hf_clock_src": { + "help": "Value: HFXO for external crystal, HFRCO for internal RC oscillator", + "value": "HFXO", + "macro_name": "CORE_CLOCK_SOURCE" + }, + "hfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "38400000", + "macro_name": "HFXO_FREQUENCY" + }, + "lf_clock_src": { + "help": "Value: LFXO for external crystal, LFRCO for internal RC oscillator, ULFRCO for internal 1KHz RC oscillator", + "value": "LFXO", + "macro_name": "LOW_ENERGY_CLOCK_SOURCE" + }, + "lfxo_clock_freq": { + "help": "Value: External crystal frequency in hertz", + "value": "32768", + "macro_name": "LFXO_FREQUENCY" + }, + "hfrco_clock_freq": { + "help": "Value: Frequency in hertz, must correspond to setting of hfrco_band_select", + "value": "32000000", + "macro_name": "HFRCO_FREQUENCY" + }, + "hfrco_band_select": { + "help": "Value: One of cmuHFRCOFreq_1M0Hz, cmuHFRCOFreq_2M0Hz, cmuHFRCOFreq_4M0Hz, cmuHFRCOFreq_7M0Hz, cmuHFRCOFreq_13M0Hz, cmuHFRCOFreq_16M0Hz, cmuHFRCOFreq_19M0Hz, cmuHFRCOFreq_26M0Hz, cmuHFRCOFreq_32M0Hz, cmuHFRCOFreq_38M0Hz. Be sure to set hfrco_clock_freq accordingly!", + "value": "cmuHFRCOFreq_32M0Hz", + "macro_name": "HFRCO_FREQUENCY_ENUM" + } + } + }, + "WIZWIKI_W7500": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500"], + "supported_toolchains": ["uARM", "ARM"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"] + }, + "WIZWIKI_W7500P": { + "supported_form_factors": ["ARDUINO"], + "core": "Cortex-M0", + "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500P"], + "supported_toolchains": ["uARM", "ARM"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"] + }, + "WIZWIKI_W7500ECO": { + "inherits": ["Target"], + "core": "Cortex-M0", + "extra_labels": ["WIZNET", "W7500x", "WIZwiki_W7500ECO"], + "supported_toolchains": ["uARM", "ARM"], + "device_has": ["ANALOGIN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SPI", "SPISLAVE", "STDIO_MESSAGES"], + "release_versions": ["2"] + }, + "SAMR21G18A": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "macros": ["__SAMR21G18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"], + "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMR21"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"], + "release_versions": ["2"], + "device_name": "ATSAMR21G18A" + }, + "SAMD21J18A": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "macros": ["__SAMD21J18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"], + "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"], + "release_versions": ["2"], + "device_name" : "ATSAMD21J18A" + }, + "SAMD21G18A": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "macros": ["__SAMD21G18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"], + "extra_labels": ["Atmel", "SAM_CortexM0P", "SAMD21"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"], + "release_versions": ["2"], + "device_name": "ATSAMD21G18A" + }, + "SAML21J18A": { + "inherits": ["Target"], + "core": "Cortex-M0+", + "macros": ["__SAML21J18A__", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"], + "extra_labels": ["Atmel", "SAM_CortexM0P", "SAML21"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM"], + "device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"], + "device_name": "ATSAML21J18A" + }, + "SAMG55J19": { + "inherits": ["Target"], + "core": "Cortex-M4", + "extra_labels": ["Atmel", "SAM_CortexM4", "SAMG55"], + "macros": ["__SAMG55J19__", "BOARD=75", "I2C_MASTER_CALLBACK_MODE=true", "EXTINT_CALLBACK_MODE=true", "USART_CALLBACK_MODE=true", "TC_ASYNC=true"], + "supported_toolchains": ["GCC_ARM", "ARM", "uARM"], + "default_toolchain": "ARM", + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH"], + "default_lib": "std", + "device_name": "ATSAMG55J19" + }, + "MCU_NRF51_UNIFIED": { + "inherits": ["Target"], + "core": "Cortex-M0", + "OVERRIDE_BOOTLOADER_FILENAME": "nrf51822_bootloader.hex", + "macros": [ + "NRF51", + "TARGET_NRF51822", + "BLE_STACK_SUPPORT_REQD", + "SOFTDEVICE_PRESENT", + "S130", + "TARGET_MCU_NRF51822" + ], + "MERGE_BOOTLOADER": false, + "extra_labels": ["NORDIC", "MCU_NRF51", "MCU_NRF51822_UNIFIED", "NRF5"], + "OUTPUT_EXT": "hex", + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "GCC_ARM", "IAR"], + "public": false, + "MERGE_SOFT_DEVICE": true, + "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [ + { + "boot": "", + "name": "s130_nrf51_2.0.0_softdevice.hex", + "offset": 110592 + } + ], + "detect_code": ["1070"], + "post_binary_hook": { + "function": "MCU_NRF51Code.binary_hook", + "toolchains": ["ARM_STD", "GCC_ARM", "IAR"] + }, + "program_cycle_s": 6, + "features": ["BLE"], + "config": { + "lf_clock_src": { + "value": "NRF_LF_SRC_XTAL", + "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC" + }, + "uart_hwfc": { + "help": "Value: 1 for enable, 0 for disable", + "value": 1, + "macro_name": "MBED_CONF_NORDIC_UART_HWFC" + } + }, + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"] + }, + "MCU_NRF51_32K_UNIFIED": { + "inherits": ["MCU_NRF51_UNIFIED"], + "extra_labels_add": ["MCU_NORDIC_32K", "MCU_NRF51_32K"], + "macros_add": ["TARGET_MCU_NORDIC_32K", "TARGET_MCU_NRF51_32K"], + "public": false + }, + "NRF51_DK": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF51_32K_UNIFIED"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "device_name": "nRF51822_xxAA" + }, + "NRF51_DONGLE": { + "inherits": ["MCU_NRF51_32K_UNIFIED"], + "progen": {"target": "nrf51-dongle"}, + "device_has": ["ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"] + }, + "MCU_NRF52": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "macros": ["NRF52", "TARGET_NRF52832", "BLE_STACK_SUPPORT_REQD", "SOFTDEVICE_PRESENT", "S132"], + "extra_labels": ["NORDIC", "MCU_NRF52", "MCU_NRF52832", "NRF5"], + "OUTPUT_EXT": "hex", + "is_disk_virtual": true, + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "public": false, + "detect_code": ["1101"], + "program_cycle_s": 6, + "MERGE_SOFT_DEVICE": true, + "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [ + { + "boot": "", + "name": "s132_nrf52_2.0.0_softdevice.hex", + "offset": 114688 + } + ], + "post_binary_hook": { + "function": "MCU_NRF51Code.binary_hook", + "toolchains": ["ARM_STD", "GCC_ARM", "IAR"] + }, + "MERGE_BOOTLOADER": false, + "features": ["BLE"], + "config": { + "lf_clock_src": { + "value": "NRF_LF_SRC_XTAL", + "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC" + }, + "uart_hwfc": { + "help": "Value: 1 for enable, 0 for disable", + "value": 1, + "macro_name": "MBED_CONF_NORDIC_UART_HWFC" + } + } + }, + "NRF52_DK": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF52"], + "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "device_name": "nRF52832_xxAA" + }, + "UBLOX_EVA_NINA": { + "inherits": ["MCU_NRF52"], + "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "overrides": {"uart_hwfc": 0}, + "device_name": "nRF52832_xxAA" + }, + "UBLOX_EVK_NINA_B1": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF52"], + "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "device_name": "nRF52832_xxAA" + }, + "DELTA_DFBM_NQ620": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF52"], + "macros_add": ["BOARD_PCA10040", "NRF52_PAN_12", "NRF52_PAN_15", "NRF52_PAN_58", "NRF52_PAN_55", "NRF52_PAN_54", "NRF52_PAN_31", "NRF52_PAN_30", "NRF52_PAN_51", "NRF52_PAN_36", "NRF52_PAN_53", "S132", "CONFIG_GPIO_AS_PINRESET", "BLE_STACK_SUPPORT_REQD", "SWI_DISABLE0", "NRF52_PAN_20", "NRF52_PAN_64", "NRF52_PAN_62", "NRF52_PAN_63"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "overrides": {"lf_clock_src": "NRF_LF_SRC_RC"}, + "config": { + "lf_clock_rc_calib_timer_interval": { + "value": 16, + "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_TIMER_INTERVAL" + }, + "lf_clock_rc_calib_mode_config": { + "value": 0, + "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_CALIB_MODE_CONFIG" + } + }, + "device_name": "nRF52832_xxAA" + }, + "MCU_NRF52840": { + "inherits": ["Target"], + "core": "Cortex-M4F", + "macros": ["TARGET_NRF52840", "BLE_STACK_SUPPORT_REQD", "SOFTDEVICE_PRESENT", "S140", "NRF_SD_BLE_API_VERSION=5", "NRF52840_XXAA", "NRF_DFU_SETTINGS_VERSION=1", "NRF_SD_BLE_API_VERSION=5"], + "extra_labels": ["NORDIC", "MCU_NRF52840", "NRF5_SDK13"], + "OUTPUT_EXT": "hex", + "is_disk_virtual": true, + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "public": false, + "detect_code": ["1101"], + "program_cycle_s": 6, + "MERGE_SOFT_DEVICE": true, + "EXPECTED_SOFTDEVICES_WITH_OFFSETS": [ + { + "boot": "", + "name": "s140_nrf52840_5.0.0-1.alpha_softdevice.hex", + "offset": 135168 + } + ], + "bootloader_select_index": 0, + "post_binary_hook": { + "function": "MCU_NRF51Code.binary_hook", + "toolchains": ["ARM_STD", "GCC_ARM", "IAR"] + }, + "MERGE_BOOTLOADER": false, + "features": ["BLE"], + "config": { + "lf_clock_src": { + "value": "NRF_LF_SRC_XTAL", + "macro_name": "MBED_CONF_NORDIC_NRF_LF_CLOCK_SRC" + }, + "uart_hwfc": { + "help": "Value: 1 for enable, 0 for disable", + "value": 1, + "macro_name": "MBED_CONF_NORDIC_UART_HWFC" + } + } + }, + "NRF52840_DK": { + "supported_form_factors": ["ARDUINO"], + "inherits": ["MCU_NRF52840"], + "macros_add": ["BOARD_PCA10056", "CONFIG_GPIO_AS_PINRESET", "SWI_DISABLE0", "NRF52_ERRATA_20"], + "device_has": ["ANALOGIN", "ERROR_PATTERN", "I2C", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPI_ASYNCH", "SPISLAVE"], + "release_versions": ["2", "5"], + "device_name": "nRF52840_xxAA" + }, + "BLUEPILL_F103C8": { + "core": "Cortex-M3", + "default_toolchain": "GCC_ARM", + "extra_labels": ["STM", "STM32F1", "STM32F103C8"], + "supported_toolchains": ["GCC_ARM"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "SERIAL", "SLEEP", "SPI", "SPISLAVE"] + }, + "NUMAKER_PFM_NUC472": { + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["NUVOTON", "NUC472", "NU_XRAM_SUPPORTED", "FLASH_CMSIS_ALGO"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "STDIO_MESSAGES", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "TRNG", "CAN", "FLASH"], + "features": ["LWIP"], + "release_versions": ["5"], + "device_name": "NUC472HI8AE", + "bootloader_supported": true + }, + "NCS36510": { + "inherits": ["Target"], + "core": "Cortex-M3", + "extra_labels": ["ONSEMI"], + "config": { + "mac-addr-low": { + "help": "Lower 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.", + "value": "0xFFFFFFFF" + }, + "mac-addr-high": { + "help": "Higher 32 bits of the MAC extended address. All FFs indicates that factory programmed MAC address shall be used. In order to override the factory programmed MAC address this value needs to be changed from 0xFFFFFFFF to any chosen value.", + "value": "0xFFFFFFFF" + }, + "32KHz-clk-trim": { + "help": "32KHz clock trim", + "value": "0x39" + }, + "32MHz-clk-trim": { + "help": "32MHz clock trim", + "value": "0x17" + }, + "rssi-trim": { + "help": "RSSI trim", + "value": "0x3D" + }, + "txtune-trim": { + "help": "TX tune trim", + "value": "0xFFFFFFFF" + } + }, + "post_binary_hook": {"function": "NCS36510TargetCode.ncs36510_addfib"}, + "macros": ["CM3", "CPU_NCS36510", "TARGET_NCS36510", "LOAD_ADDRESS=0x3000"], + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "device_has": ["ANALOGIN", "SERIAL", "I2C", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "LOWPOWERTIMER", "TRNG", "SPISLAVE"], + "release_versions": ["2", "5"] + }, + "NUMAKER_PFM_M453": { + "core": "Cortex-M4F", + "default_toolchain": "ARM", + "extra_labels": ["NUVOTON", "M451", "NUMAKER_PFM_M453", "FLASH_CMSIS_ALGO"], + "is_disk_virtual": true, + "supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"], + "inherits": ["Target"], + "progen": {"target": "numaker-pfm-m453"}, + "device_has": ["ANALOGIN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "STDIO_MESSAGES", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "CAN", "FLASH"], + "release_versions": ["2", "5"], + "device_name": "M453VG6AE", + "bootloader_supported": true + }, + "HI2110": { + "inherits": ["Target"], + "core": "Cortex-M0", + "default_toolchain": "GCC_ARM", + "supported_toolchains": ["GCC_ARM", "ARM", "IAR"], + "extra_labels": ["ublox"], + "macros": ["TARGET_PROCESSOR_FAMILY_BOUDICA", "BOUDICA_SARA", "NDEBUG=1"], + "public": false, + "target_overrides": { + "*": { + "core.stdio-flush-at-exit": false + } + }, + "device_has": ["INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "SERIAL", "SLEEP", "STDIO_MESSAGES"], + "default_lib": "std", + "release_versions": ["5"] + }, + "SARA_NBIOT": { + "inherits": ["HI2110"], + "extra_labels": ["ublox", "HI2110"], + "public": false + }, + "SARA_NBIOT_EVK": { + "inherits": ["SARA_NBIOT"], + "extra_labels": ["ublox", "HI2110", "SARA_NBIOT"] + } +}