NUTOOL_PIN.g_cfg_chips = [
	//NUC100AN BN
	// { name: "NUC100VD2AN", pkg: "LQFP100" },
	// { name: "NUC100VD3AN", pkg: "LQFP100" },
	// { name: "NUC100VE3AN", pkg: "LQFP100" },
	// { name: "NUC120VD2AN", pkg: "LQFP100" },
	// { name: "NUC120VD3AN", pkg: "LQFP100" },
	// { name: "NUC120VE3AN", pkg: "LQFP100" },
	// { name: "NUC100RD3AN", pkg: "LQFP64" },
	// { name: "NUC100RE3AN", pkg: "LQFP64" },
	// { name: "NUC100RC1BN", pkg: "LQFP64" },
	// { name: "NUC100RD1BN", pkg: "LQFP64" },
	// { name: "NUC100RD2BN", pkg: "LQFP64" },
	// { name: "NUC120RD3AN", pkg: "LQFP64" },
	// { name: "NUC120RE3AN", pkg: "LQFP64" },
	// { name: "NUC120RC1BN", pkg: "LQFP64" },
	// { name: "NUC120RD1BN", pkg: "LQFP64" },
	// { name: "NUC120RD2BN", pkg: "LQFP64" },
	// { name: "NUC100LD3AN", pkg: "LQFP48" },
	// { name: "NUC100LE3AN", pkg: "LQFP48" },
	// { name: "NUC100LC1BN", pkg: "LQFP48" },
	// { name: "NUC100LD1BN", pkg: "LQFP48" },
	// { name: "NUC100LD2BN", pkg: "LQFP48" },
	// { name: "NUC120LD3AN", pkg: "LQFP48" },
	// { name: "NUC120LE3AN", pkg: "LQFP48" },
	// { name: "NUC120LC1BN", pkg: "LQFP48" },
	// { name: "NUC120LD1BN", pkg: "LQFP48" },
	// { name: "NUC120LD2BN", pkg: "LQFP48" },
	//NUC100CN
	{ name: "NUC130VE3CN", pkg: "LQFP100" },
	{ name: "NUC140VE3CN", pkg: "LQFP100" },
	{ name: "NUC130RC1CN", pkg: "LQFP64" },
	{ name: "NUC130RD2CN", pkg: "LQFP64" },
	{ name: "NUC130RE3CN", pkg: "LQFP64" },
	{ name: "NUC140RC1CN", pkg: "LQFP64" },
	{ name: "NUC140RD2CN", pkg: "LQFP64" },
	{ name: "NUC140RE3CN", pkg: "LQFP64" },
	{ name: "NUC130LC1CN", pkg: "LQFP48" },
	{ name: "NUC130LD2CN", pkg: "LQFP48" },
	{ name: "NUC130LE3CN", pkg: "LQFP48" },
	{ name: "NUC140LC1CN", pkg: "LQFP48" },
	{ name: "NUC140LD2CN", pkg: "LQFP48" },
	{ name: "NUC140LE3CN", pkg: "LQFP48" },
	//NUC100DN
	//{ name: "NUC100VD2DN", pkg: "LQFP100" },
	//{ name: "NUC100VD3DN", pkg: "LQFP100" },
	{ name: "NUC100VE3DN", pkg: "LQFP100" },
	{ name: "NUC100RC1DN", pkg: "LQFP64" },
	{ name: "NUC100RD1DN", pkg: "LQFP64" },
	{ name: "NUC100RD2DN", pkg: "LQFP64" },
	//{ name: "NUC100RD3DN", pkg: "LQFP64" },
	{ name: "NUC100RE3DN", pkg: "LQFP64" },
	{ name: "NUC100LC1DN", pkg: "LQFP48" },
	//{ name: "NUC100LD1DN", pkg: "LQFP48" },
	{ name: "NUC100LD2DN", pkg: "LQFP48" },
	//{ name: "NUC100LD3DN", pkg: "LQFP48" },
	{ name: "NUC100LE3DN", pkg: "LQFP48" },
	//{ name: "NUC120VD2DN", pkg: "LQFP100" },
	//{ name: "NUC120VD3DN", pkg: "LQFP100" },
	{ name: "NUC120VE3DN", pkg: "LQFP100" },
	{ name: "NUC120RC1DN", pkg: "LQFP64" },
	//{ name: "NUC120RD1DN", pkg: "LQFP64" },
	{ name: "NUC120RD2DN", pkg: "LQFP64" },
	//{ name: "NUC120RD3DN", pkg: "LQFP64" },
	{ name: "NUC120RE3DN", pkg: "LQFP64" },
	{ name: "NUC120LC1DN", pkg: "LQFP48" },
	//{ name: "NUC120LD1DN", pkg: "LQFP48" },
	{ name: "NUC120LD2DN", pkg: "LQFP48" },
	//{ name: "NUC120LD3DN", pkg: "LQFP48" },
	{ name: "NUC120LE3DN", pkg: "LQFP48" },
	//NUC131
	{ name: "NUC131SC2AE", pkg: "LQFP64" },
	{ name: "NUC131SD2AE", pkg: "LQFP64" },
	{ name: "NUC131LC2AE", pkg: "LQFP48" },
	{ name: "NUC131LD2AE", pkg: "LQFP48" },
	//NUC121AE
	{ name: "NUC121SC2AE", pkg: "LQFP64" },
	{ name: "NUC121LC2AE", pkg: "LQFP48" },
	{ name: "NUC121ZC2AE", pkg: "QFN33" },
	{ name: "NUC125SC2AE", pkg: "LQFP64" },
	{ name: "NUC125LC2AE", pkg: "LQFP48" },
	{ name: "NUC125ZC2AE", pkg: "QFN33" },
	//NUC122AN
	//{ name: "NUC122ZD2AN", pkg: "QFN33" },
	//{ name: "NUC122ZC1AN", pkg: "QFN33" },
	//{ name: "NUC122LD2AN", pkg: "LQFP48" },
	//{ name: "NUC122LC1AN", pkg: "LQFP48" },
	//{ name: "NUC122SD2AN", pkg: "LQFP64" },
	//{ name: "NUC122SC1AN", pkg: "LQFP64" },
	//NUC123AN
	{ name: "NUC123ZD4AN0", pkg: "QFN33" },
	{ name: "NUC123ZC2AN1", pkg: "QFN33" },
	{ name: "NUC123LD4AN0", pkg: "LQFP48" },
	{ name: "NUC123LC2AN1", pkg: "LQFP48" },
	{ name: "NUC123SD4AN0", pkg: "LQFP64" },
	{ name: "NUC123SC2AN1", pkg: "LQFP64" },
	//NUC123AE
	{ name: "NUC123ZD4AE0", pkg: "QFN33" },
	{ name: "NUC123ZC2AE1", pkg: "QFN33" },
	{ name: "NUC123SD4AE0", pkg: "LQFP64" },
	{ name: "NUC123SC2AE1", pkg: "LQFP64" },
	{ name: "NUC123LD4AE0", pkg: "LQFP48" },
	{ name: "NUC123LC2AE1", pkg: "LQFP48" },
	// NUC126
	{ name: "NUC126LE4AE", pkg: "LQFP48" },
	{ name: "NUC126LG4AE", pkg: "LQFP48" },
	{ name: "NUC126SE4AE", pkg: "LQFP64" },
	{ name: "NUC126SG4AE", pkg: "LQFP64" },
	{ name: "NUC126VG4AE", pkg: "LQFP100" },
	// NUC1261
	{ name: "NUC1261LG4AE", pkg: "LQFP48" },
	{ name: "NUC1261LE4AE", pkg: "LQFP48" },
	{ name: "NUC1261NE4AE", pkg: "LQFP48" },
	{ name: "NUC1261SG4AE", pkg: "LQFP64" },
	{ name: "NUC1261SE4AE", pkg: "LQFP64" }
];

NUTOOL_PIN.g_cfg_pkgs = {
	"LQFP64": [
		'PB.14', 'PB.13', 'PB.12', 'PA.11', 'PA.10', 'PD.8', 'PD.9', 'PD.10', 'PD.11', 'PB.4',
		'PB.5', 'PB.6', 'PB.7', 'LDO_CAP', 'VDD', 'VSS',
		'USB_VBUS', 'USB_VDD33_CAP', 'USB_D-', 'USB_D+', 'PB.0', 'PB.1', 'PB.2', 'PB.3', 'PC.5', 'PC.4',
		'PC.3', 'PC.2', 'PC.1', 'PC.0', 'PB.10', 'PB.9',
		'VSS', 'PC.13', 'PC.12', 'PC.11', 'PC.10', 'VDD', 'PC.9', 'PC.8', 'PA.15', 'VSS',
		'PA.14', 'PA.13', 'PA.12', 'ICE_DAT', 'ICE_CK', 'AVDD',
		'PD.0', 'PD.1', 'PD.2', 'PD.3', 'PD.4', 'PD.5', 'PB.15', 'XT1_OUT/PF.0', 'XT1_IN/PF.1', 'nRESET',
		'VSS', 'VDD', 'PF.2', 'PF.3', 'PVSS', 'PB.8'
	],
	"LQFP48": [
		'PVSS', 'PB.8', 'PB.14', 'PA.11', 'PA.10', 'PB.4', 'PB.5', 'PB.6', 'PB.7', 'LDO_CAP',
		'VDD', 'VSS',
		'USB_VBUS', 'USB_VDD33_CAP', 'USB_D-', 'USB_D+', 'PC.5', 'PC.4', 'PC.3', 'PC.2', 'PC.1', 'PC.0',
		'PB.10', 'PB.9',
		'PC.13', 'PC.12', 'PC.11', 'PC.10', 'PC.9', 'PC.8', 'PA.15', 'PA.14', 'PA.13', 'PA.12',
		'ICE_DAT', 'ICE_CK',
		'AVDD', 'PD.0', 'PD.1', 'PD.2', 'PD.3', 'PD.4', 'PD.5', 'XT1_OUT/PF.0', 'XT1_IN/PF.1', 'nRESET',
		'PF.2', 'PF.3'
	],
	"QFN33": [
		'PB.14', 'PA.11', 'PA.10', 'PB.4', 'PB.5', 'LDO_CAP', 'VDD', 'VSS',
		'USB_VBUS', 'USB_VDD33_CAP', 'USB_D-', 'USB_D+', 'PC.3', 'PC.2', 'PC.1', 'PC.0',
		'PC.13', 'PC.12', 'PC.11', 'PC.10', 'PC.9', 'PC.8', 'ICE_DAT', 'ICE_CK',
		'AVDD', 'PD.1', 'PD.2', 'PD.3', 'XT1_OUT/PF.0', 'XT1_IN/PF.1', 'nRESET', 'PVSS'
	]
};

NUTOOL_PIN.g_cfg_gpios = [
	{ f: ['PA.0:0'] },
	{ f: ['PA.1:0'] },
	{ f: ['PA.2:0'] },
	{ f: ['PA.3:0'] },
	{ f: ['PA.4:0'] },
	{ f: ['PA.5:0'] },
	{ f: ['PA.6:0'] },
	{ f: ['PA.7:0'] },
	{ f: ['PA.8:0'] },
	{ f: ['PA.9:0'] },
	{ f: ['PA.10:0', 'I2C1_SDA:1', 'SPI1_MISO0:2', 'SPI2_MISO0:3'] },
	{ f: ['PA.11:0', 'I2C1_SCL:1', 'SPI1_CLK:2', 'SPI2_MOSI0:3'] },
	{ f: ['PA.12:0', 'PWM0:1'] },
	{ f: ['PA.13:0', 'PWM1:1'] },
	{ f: ['PA.14:0', 'PWM2:1'] },
	{ f: ['PA.15:0', 'PWM3:1', 'CLKO:2', 'I2S_MCLK:3'] },

	{ f: ['PB.0:0', 'UART0_RXD:1'] },
	{ f: ['PB.1:0', 'UART0_TXD:1'] },
	{ f: ['PB.2:0', 'UART0_nRTS:1', 'TM2_EXT:2'] },
	{ f: ['PB.3:0', 'UART0_nCTS:1', 'TM3_EXT:2'] },
	{ f: ['PB.4:0', 'UART1_RXD:1', 'SPI2_SS0:2', 'SPI1_SS1:3'] },
	{ f: ['PB.5:0', 'UART1_TXD:1', 'SPI2_CLK:2'] },
	{ f: ['PB.6:0', 'UART1_nRTS:1', 'SPI2_MOSI0:2'] },
	{ f: ['PB.7:0', 'UART1_nCTS:1', 'SPI2_MISO0:2'] },
	{ f: ['PB.8:0', 'TM0:1'] },
	{ f: ['PB.9:0', 'TM1:1', 'SPI1_SS1:2', 'PWM1:3'] },
	{ f: ['PB.10:0', 'TM2:1', 'SPI0_SS1:2'] },
	{ f: ['PB.11:0'] },
	{ f: ['PB.12:0', 'SPI1_SS0:1', 'CLKO:2'] },
	{ f: ['PB.13:0'] },
	{ f: ['PB.14:0', 'INT0:1'] },
	{ f: ['PB.15:0', 'INT1:1', 'TM0_EXT:2'] },

	{ f: ['PC.0:0', 'SPI0_SS0:1', 'I2S_LRCLK:2'] },
	{ f: ['PC.1:0', 'SPI0_CLK:1', 'I2S_BCLK:2'] },
	{ f: ['PC.2:0', 'SPI0_MISO0:1', 'I2S_DI:2'] },
	{ f: ['PC.3:0', 'SPI0_MOSI0:1', 'I2S_DO:2'] },
	{ f: ['PC.4:0', 'SPI0_MISO1:1', 'UART0_RXD:2'] },
	{ f: ['PC.5:0', 'SPI0_MOSI1:1', 'UART0_TXD:2'] },
	{ f: ['PC.6:0'] },
	{ f: ['PC.7:0'] },
	{ f: ['PC.8:0', 'SPI1_SS0:1', 'PWM0:2'] },
	{ f: ['PC.9:0', 'SPI1_CLK:1'] },
	{ f: ['PC.10:0', 'SPI1_MISO0:1'] },
	{ f: ['PC.11:0', 'SPI1_MOSI0:1'] },
	{ f: ['PC.12:0', 'SPI1_MISO1:1', 'I2S_MCLK:2', 'PWM2:3'] },
	{ f: ['PC.13:0', 'SPI1_MOSI1:1', 'CLKO:2', 'PWM3:3'] },
	{ f: ['PC.14:0'] },
	{ f: ['PC.15:0'] },

	{ f: ['PD.0:0', 'SPI2_SS0:1', 'ADC0:2'] },
	{ f: ['PD.1:0', 'SPI0_SS1:1', 'SPI2_CLK:2', 'ADC1:3'] },
	{ f: ['PD.2:0', 'SPI0_MISO1:1', 'SPI2_MISO0:2', 'ADC2:3'] },
	{ f: ['PD.3:0', 'SPI0_MOSI1:1', 'SPI2_MOSI0:2', 'ADC3:3'] },
	{ f: ['PD.4:0', 'SPI2_MISO1:1', 'ADC4:2'] },
	{ f: ['PD.5:0', 'SPI2_MOSI1:1', 'ADC5:2'] },
	{ f: ['PD.6:0'] },
	{ f: ['PD.7:0'] },
	{ f: ['PD.8:0', 'SPI1_MOSI0:1'] },
	{ f: ['PD.9:0'] },
	{ f: ['PD.10:0', 'CLKO:1'] },
	{ f: ['PD.11:0', 'INT1:1'] },
	{ f: ['PD.12:0'] },
	{ f: ['PD.13:0'] },
	{ f: ['PD.14:0'] },
	{ f: ['PD.15:0'] },

	{ f: ['PE.0:0'] },
	{ f: ['PE.1:0'] },
	{ f: ['PE.2:0'] },
	{ f: ['PE.3:0'] },
	{ f: ['PE.4:0'] },
	{ f: ['PE.5:0'] },
	{ f: ['PE.6:0'] },
	{ f: ['PE.7:0'] },
	{ f: ['PE.8:0'] },
	{ f: ['PE.9:0'] },
	{ f: ['PE.10:0'] },
	{ f: ['PE.11:0'] },
	{ f: ['PE.12:0'] },
	{ f: ['PE.13:0'] },
	{ f: ['PE.14:0'] },
	{ f: ['PE.15:0'] },

	{ f: ['PF.0:0'] },
	{ f: ['PF.1:0'] },
	{ f: ['PF.2:0', 'PS2_DAT:1', 'I2C0_SDA:2', 'ADC6:3'] },
	{ f: ['PF.3:0', 'PS2_CLK:1', 'I2C0_SCL:2', 'ADC7:3'] }
];

NUTOOL_PIN.g_cfg_gpiosDefines = [
	{ f: ['PA.0'] },
	{ f: ['PA.1'] },
	{ f: ['PA.2'] },
	{ f: ['PA.3'] },
	{ f: ['PA.4'] },
	{ f: ['PA.5'] },
	{ f: ['PA.6'] },
	{ f: ['PA.7'] },
	{ f: ['PA.8'] },
	{ f: ['PA.9'] },
	{ f: ['PA.10', 'I2C1_SDA:SYS_GPA_MFPH_GPA10_MFP_I2C1_SDA@GPA_MFPH', 'SPI1_MISO0:SYS_GPA_MFPH_GPA10_MFP_SPI1_MISO0@GPA_MFPH', 'SPI2_MISO0:SYS_GPA_MFPH_GPA10_MFP_SPI2_MISO0@GPA_MFPH'] },
	{ f: ['PA.11', 'I2C1_SCL:SYS_GPA_MFPH_GPA11_MFP_I2C1_SCL@GPA_MFPH', 'SPI1_CLK:SYS_GPA_MFPH_GPA11_MFP_SPI1_CLK@GPA_MFPH', 'SPI2_MOSI0:SYS_GPA_MFPH_GPA11_MFP_SPI2_MOSI0@GPA_MFPH'] },
	{ f: ['PA.12', 'PWM0:SYS_GPA_MFPH_GPA12_MFP_PWM0@GPA_MFPH'] },
	{ f: ['PA.13', 'PWM1:SYS_GPA_MFPH_GPA13_MFP_PWM1@GPA_MFPH'] },
	{ f: ['PA.14', 'PWM2:SYS_GPA_MFPH_GPA14_MFP_PWM2@GPA_MFPH'] },
	{ f: ['PA.15', 'PWM3:SYS_GPA_MFPH_GPA15_MFP_PWM3@GPA_MFPH', 'CLKO:SYS_GPA_MFPH_GPA15_MFP_CLKO@GPA_MFPH', 'I2S_MCLK:SYS_GPA_MFPH_GPA15_MFP_I2S_MCLK@GPA_MFPH'] },

	{ f: ['PB.0', 'UART0_RXD:SYS_GPB_MFPL_GPB0_MFP_UART0_RXD@GPB_MFPL'] },
	{ f: ['PB.1', 'UART0_TXD:SYS_GPB_MFPL_GPB1_MFP_UART0_TXD@GPB_MFPL'] },
	{ f: ['PB.2', 'UART0_nRTS:SYS_GPB_MFPL_GPB2_MFP_UART0_nRTS@GPB_MFPL', 'TM2_EXT:SYS_GPB_MFPL_GPB2_MFP_TM2_EXT@GPB_MFPL'] },
	{ f: ['PB.3', 'UART0_nCTS:SYS_GPB_MFPL_GPB3_MFP_UART0_nCTS@GPB_MFPL', 'TM3_EXT:SYS_GPB_MFPL_GPB3_MFP_TM3_EXT@GPB_MFPL'] },
	{ f: ['PB.4', 'UART1_RXD:SYS_GPB_MFPL_GPB4_MFP_UART1_RXD@GPB_MFPL', 'SPI2_SS0:SYS_GPB_MFPL_GPB4_MFP_SPI2_SS0@GPB_MFPL', 'SPI1_SS1:SYS_GPB_MFPL_GPB4_MFP_SPI1_SS1@GPB_MFPL'] },
	{ f: ['PB.5', 'UART1_TXD:SYS_GPB_MFPL_GPB5_MFP_UART1_TXD@GPB_MFPL', 'SPI2_CLK:SYS_GPB_MFPL_GPB5_MFP_SPI2_CLK@GPB_MFPL'] },
	{ f: ['PB.6', 'UART1_nRTS:SYS_GPB_MFPL_GPB6_MFP_UART1_nRTS@GPB_MFPL', 'SPI2_MOSI0:SYS_GPB_MFPL_GPB6_MFP_SPI2_MOSI0@GPB_MFPL'] },
	{ f: ['PB.7', 'UART1_nCTS:SYS_GPB_MFPL_GPB7_MFP_UART1_nCTS@GPB_MFPL', 'SPI2_MISO0:SYS_GPB_MFPL_GPB7_MFP_SPI2_MISO0@GPB_MFPL'] },
	{ f: ['PB.8', 'TM0:SYS_GPB_MFPH_GPB8_MFP_TM0@GPB_MFPH'] },
	{ f: ['PB.9', 'TM1:SYS_GPB_MFPH_GPB9_MFP_TM1@GPB_MFPH', 'SPI1_SS1:SYS_GPB_MFPH_GPB9_MFP_SPI1_SS1@GPB_MFPH', 'PWM1:SYS_GPB_MFPH_GPB9_MFP_PWM1@GPB_MFPH'] },
	{ f: ['PB.10', 'TM2:SYS_GPB_MFPH_GPB10_MFP_TM2@GPB_MFPH', 'SPI0_SS1:SYS_GPB_MFPH_GPB10_MFP_SPI0_SS1@GPB_MFPH'] },
	{ f: ['PB.11'] },
	{ f: ['PB.12', 'SPI1_SS0:SYS_GPB_MFPH_GPB12_MFP_SPI1_SS0@GPB_MFPH', 'CLKO:SYS_GPB_MFPH_GPB12_MFP_CLKO@GPB_MFPH'] },
	{ f: ['PB.13'] },
	{ f: ['PB.14', 'INT0:SYS_GPB_MFPH_GPB14_MFP_INT0@GPB_MFPH'] },
	{ f: ['PB.15', 'INT1:SYS_GPB_MFPH_GPB15_MFP_INT1@GPB_MFPH', 'TM0_EXT:SYS_GPB_MFPH_GPB15_MFP_TM0_EXT@GPB_MFPH'] },

	{ f: ['PC.0', 'SPI0_SS0:SYS_GPC_MFPL_GPC0_MFP_SPI0_SS0@GPC_MFPL', 'I2S_LRCLK:SYS_GPC_MFPL_GPC0_MFP_I2S_LRCLK@GPC_MFPL'] },
	{ f: ['PC.1', 'SPI0_CLK:SYS_GPC_MFPL_GPC1_MFP_SPI0_CLK@GPC_MFPL', 'I2S_BCLK:SYS_GPC_MFPL_GPC1_MFP_I2S_BCLK@GPC_MFPL'] },
	{ f: ['PC.2', 'SPI0_MISO0:SYS_GPC_MFPL_GPC2_MFP_SPI0_MISO0@GPC_MFPL', 'I2S_DI:SYS_GPC_MFPL_GPC2_MFP_I2S_DI@GPC_MFPL'] },
	{ f: ['PC.3', 'SPI0_MOSI0:SYS_GPC_MFPL_GPC3_MFP_SPI0_MOSI0@GPC_MFPL', 'I2S_DO:SYS_GPC_MFPL_GPC3_MFP_I2S_DO@GPC_MFPL'] },
	{ f: ['PC.4', 'SPI0_MISO1:SYS_GPC_MFPL_GPC4_MFP_SPI0_MISO1@GPC_MFPL', 'UART0_RXD:SYS_GPC_MFPL_GPC4_MFP_UART0_RXD@GPC_MFPL'] },
	{ f: ['PC.5', 'SPI0_MOSI1:SYS_GPC_MFPL_GPC5_MFP_SPI0_MOSI1@GPC_MFPL', 'UART0_TXD:SYS_GPC_MFPL_GPC5_MFP_UART0_TXD@GPC_MFPL'] },
	{ f: ['PC.6'] },
	{ f: ['PC.7'] },
	{ f: ['PC.8', 'SPI1_SS0:SYS_GPC_MFPH_GPC8_MFP_SPI1_SS0@GPC_MFPH', 'PWM0:SYS_GPC_MFPH_GPC8_MFP_PWM0@GPC_MFPH'] },
	{ f: ['PC.9', 'SPI1_CLK:SYS_GPC_MFPH_GPC9_MFP_SPI1_CLK@GPC_MFPH'] },
	{ f: ['PC.10', 'SPI1_MISO0:SYS_GPC_MFPH_GPC10_MFP_SPI1_MISO0@GPC_MFPH'] },
	{ f: ['PC.11', 'SPI1_MOSI0:SYS_GPC_MFPH_GPC11_MFP_SPI1_MOSI0@GPC_MFPH'] },
	{ f: ['PC.12', 'SPI1_MISO1:SYS_GPC_MFPH_GPC12_MFP_SPI1_MISO1@GPC_MFPH', 'I2S_MCLK:SYS_GPC_MFPH_GPC12_MFP_I2S_MCLK@GPC_MFPH', 'PWM2:SYS_GPC_MFPH_GPC12_MFP_PWM2@GPC_MFPH'] },
	{ f: ['PC.13', 'SPI1_MOSI1:SYS_GPC_MFPH_GPC13_MFP_SPI1_MOSI1@GPC_MFPH', 'CLKO:SYS_GPC_MFPH_GPC13_MFP_CLKO@GPC_MFPH', 'PWM3:SYS_GPC_MFPH_GPC13_MFP_PWM3@GPC_MFPH'] },
	{ f: ['PC.14'] },
	{ f: ['PC.15'] },

	{ f: ['PD.0', 'SPI2_SS0:SYS_GPD_MFPL_GPD0_MFP_SPI2_SS0@GPD_MFPL', 'ADC0:SYS_GPD_MFPL_GPD0_MFP_ADC0@GPD_MFPL'] },
	{ f: ['PD.1', 'SPI0_SS1:SYS_GPD_MFPL_GPD1_MFP_SPI0_SS1@GPD_MFPL', 'SPI2_CLK:SYS_GPD_MFPL_GPD1_MFP_SPI2_CLK@GPD_MFPL', 'ADC1:SYS_GPD_MFPL_GPD1_MFP_ADC1@GPD_MFPL'] },
	{ f: ['PD.2', 'SPI0_MISO1:SYS_GPD_MFPL_GPD2_MFP_SPI0_MISO1@GPD_MFPL', 'SPI2_MISO0:SYS_GPD_MFPL_GPD2_MFP_SPI2_MISO0@GPD_MFPL', 'ADC2:SYS_GPD_MFPL_GPD2_MFP_ADC2@GPD_MFPL'] },
	{ f: ['PD.3', 'SPI0_MOSI1:SYS_GPD_MFPL_GPD3_MFP_SPI0_MOSI1@GPD_MFPL', 'SPI2_MOSI0:SYS_GPD_MFPL_GPD3_MFP_SPI2_MOSI0@GPD_MFPL', 'ADC3:SYS_GPD_MFPL_GPD3_MFP_ADC3@GPD_MFPL'] },
	{ f: ['PD.4', 'SPI2_MISO1:SYS_GPD_MFPL_GPD4_MFP_SPI2_MISO1@GPD_MFPL', 'ADC4:SYS_GPD_MFPL_GPD4_MFP_ADC4@GPD_MFPL'] },
	{ f: ['PD.5', 'SPI2_MOSI1:SYS_GPD_MFPL_GPD5_MFP_SPI2_MOSI1@GPD_MFPL', 'ADC5:SYS_GPD_MFPL_GPD5_MFP_ADC5@GPD_MFPL'] },
	{ f: ['PD.6'] },
	{ f: ['PD.7'] },
	{ f: ['PD.8', 'SPI1_MOSI0:SYS_GPD_MFPH_GPD8_MFP_SPI1_MOSI0@GPD_MFPH'] },
	{ f: ['PD.9'] },
	{ f: ['PD.10', 'CLKO:SYS_GPD_MFPH_GPD10_MFP_CLKO@GPD_MFPH'] },
	{ f: ['PD.11', 'INT1:SYS_GPD_MFPH_GPD11_MFP_INT1@GPD_MFPH'] },
	{ f: ['PD.12'] },
	{ f: ['PD.13'] },
	{ f: ['PD.14'] },
	{ f: ['PD.15'] },

	{ f: ['PE.0'] },
	{ f: ['PE.1'] },
	{ f: ['PE.2'] },
	{ f: ['PE.3'] },
	{ f: ['PE.4'] },
	{ f: ['PE.5'] },
	{ f: ['PE.6'] },
	{ f: ['PE.7'] },
	{ f: ['PE.8'] },
	{ f: ['PE.9'] },
	{ f: ['PE.10'] },
	{ f: ['PE.11'] },
	{ f: ['PE.12'] },
	{ f: ['PE.13'] },
	{ f: ['PE.14'] },
	{ f: ['PE.15'] },

	{ f: ['PF.0', 'XT1_OUT:SYS_GPF_MFPL_GPF0_MFP_XT1_OUT@GPF_MFPL'] },
	{ f: ['PF.1', 'XT1_IN:SYS_GPF_MFPL_GPF1_MFP_XT1_IN@GPF_MFPL'] },
	{ f: ['PF.2', 'PS2_DAT:SYS_GPF_MFPL_GPF2_MFP_PS2_DAT@GPF_MFPL', 'I2C0_SDA:SYS_GPF_MFPL_GPF2_MFP_I2C0_SDA@GPF_MFPL', 'ADC6:SYS_GPF_MFPL_GPF2_MFP_ADC6@GPF_MFPL'] },
	{ f: ['PF.3', 'PS2_CLK:SYS_GPF_MFPL_GPF3_MFP_PS2_CLK@GPF_MFPL', 'I2C0_SCL:SYS_GPF_MFPL_GPF3_MFP_I2C0_SCL@GPF_MFPL', 'ADC7:SYS_GPF_MFPL_GPF3_MFP_ADC7@GPF_MFPL'] }
];

NUTOOL_PIN.g_cfg_gpiosDescriptions = [
	'ADC0:ADC channel 0 analog input pin',
	'ADC1:ADC channel 1 analog input pin',
	'ADC2:ADC channel 2 analog input pin',
	'ADC3:ADC channel 3 analog input pin',
	'ADC4:ADC channel 4 analog input pin',
	'ADC5:ADC channel 5 analog input pin',
	'ADC6:ADC channel 6 analog input pin',
	'ADC7:ADC channel 7 analog input pin',

	'AVDD:Power supply for internal analog circuit',
	'CLKO:Frequency Divider output pin',

	'I2C0_SCL:I2C0 clock pin',
	'I2C0_SDA:I2C0 data input/output pin',
	'I2C1_SCL:I2C1 clock pin',
	'I2C1_SDA:I2C1 data input/output pin',

	'I2S_BCLK:I2S bit clock pin',
	'I2S_DI:I2S data input pin',
	'I2S_DO:I2S data output pin',
	'I2S_LRCLK:I2S left/right channel clock pin',
	'I2S_MCLK:I2S master clock output pin',

	'ICE_CLK:Serial wired debugger clock input pin',
	'ICE_DAT:Serial wired debugger data pin',

	'INT0:External interrupt 0 input pin',
	'INT1:External interrupt 1 input pin',

	'LDO_CAP:LDO output pin',

	'nRESET:External reset input: Low active, set this pin low reset chip to initial state. With internal pull-up',
	'PS2_CLK:PS/2 clock pin',
	'PS2_DAT:PS/2 data pin',
	'PVSS:PLL ground',

	'PWM0:PWM0 PWM output / capture input pin',
	'PWM1:PWM1 PWM output / capture input pin',
	'PWM2:PWM2 PWM output / capture input pin',
	'PWM3:PWM3 PWM output / capture input pin',

	'SPI0_CLK:SPI0 serial clock pin',
	'SPI0_MISO0:SPI0 1st MISO (Master In, Slave Out) pin',
	'SPI0_MISO1:SPI0 2nd MISO (Master In, Slave Out) pin',
	'SPI0_MOSI0:SPI0 1st MOSI (Master Out, Slave In) pin',
	'SPI0_MOSI1:SPI0 2nd MOSI (Master Out, Slave In) pin',
	'SPI0_SS0:SPI0 1st slave select pin',
	'SPI0_SS1:SPI0 2nd slave select pin',
	'SPI1_CLK:SPI1 serial clock pin',
	'SPI1_MISO0:SPI1 1st MISO (Master In, Slave Out) pin',
	'SPI1_MISO1:SPI1 2nd MISO (Master In, Slave Out) pin',
	'SPI1_MOSI0:SPI1 1st MOSI (Master Out, Slave In) pin',
	'SPI1_MOSI1:SPI1 2nd MOSI (Master Out, Slave In) pin',
	'SPI1_SS0:SPI1 1st slave select pin',
	'SPI1_SS1:SPI1 2nd slave select pin',
	'SPI2_CLK:SPI2 serial clock pin',
	'SPI2_MISO0:SPI2 1st MISO (Master In, Slave Out) pin',
	'SPI2_MOSI0:SPI2 1st MOSI (Master Out, Slave In) pin',
	'SPI2_MISO1:SPI2 2nd MISO (Master In, Slave Out) pin',
	'SPI2_MOSI1:SPI2 2nd MOSI (Master Out, Slave In) pin',
	'SPI2_SS0:SPI2 1st slave select pin',

	'TM0:Timer0 event counter input / toggle output pin',
	'TM0_EXT:Timer0 external capture input pin',
	'TM1:Timer1 event counter input / toggle output pin',
	'TM2:Timer2 event counter input / toggle output pin',
	'TM2_EXT:Timer2 external capture input pin',
	'TM3_EXT:Timer3 external capture input pin',

	'UART0_nCTS:UART0 clear to send input pin',
	'UART0_nRTS:UART0 request to send output pin',
	'UART0_RXD:UART0 data receiver input pin',
	'UART0_TXD:UART0 data transmitter output pin',
	'UART1_nCTS:UART1 clear to send input pin',
	'UART1_nRTS:UART1 request to send output pin',
	'UART1_RXD:UART1 data receiver input pin',
	'UART1_TXD:UART1 data transmitter output pin',
	'USB_D-:USB differential signal D-',
	'USB_D+:USB differential signal D+',
	'USB_VBUS:Power supply from USB host or hub',
	'USB_VDD33_CAP:Internal power regulator output 3.3V decoupling pin',

	'VDD:Power supply for I/O ports and LDO source for internal PLL and digital circuit. Voltage range is 2.5 V ~ 5V',
	'VSS:Ground',

	'XT1_IN:External 4~24 MHz high speed crystal input pin',
	'XT1_OUT:External 4~24 MHz high speed crystal output pin'
];

NUTOOL_PIN.g_cfg_regDescriptions = {};
NUTOOL_PIN.g_cfg_regDescriptions.GPA_MFPL = '0x500000130';
NUTOOL_PIN.g_cfg_regDescriptions.GPA_MFPH = '0x500000134';
NUTOOL_PIN.g_cfg_regDescriptions.GPB_MFPL = '0x500000138';
NUTOOL_PIN.g_cfg_regDescriptions.GPB_MFPH = '0x50000013C';
NUTOOL_PIN.g_cfg_regDescriptions.GPC_MFPL = '0x500000140';
NUTOOL_PIN.g_cfg_regDescriptions.GPC_MFPH = '0x500000144';
NUTOOL_PIN.g_cfg_regDescriptions.GPD_MFPL = '0x500000148';
NUTOOL_PIN.g_cfg_regDescriptions.GPD_MFPH = '0x50000014C';
NUTOOL_PIN.g_cfg_regDescriptions.GPF_MFPL = '0x500000158';

NUTOOL_PIN.g_cfg_gpioMatrix = [];
NUTOOL_PIN.g_cfg_shareBits = [];
NUTOOL_PIN.g_cfg_addGPIO = {};
NUTOOL_PIN.g_cfg_unusedGPIO = {};

NUTOOL_PIN.decidepackageNumber = function (given_partNumber_package) {
	var partNumber_package;

	if (typeof given_partNumber_package === 'undefined') {
		partNumber_package = NUTOOL_PIN.getg_partNumber_package();
	}
	else {
		partNumber_package = given_partNumber_package;
	}

	NUTOOL_PIN.g_packageNumber = partNumber_package.substring(partNumber_package.indexOf('(') + 1);
	NUTOOL_PIN.g_packageNumber = NUTOOL_PIN.g_packageNumber.substring(0, NUTOOL_PIN.g_packageNumber.indexOf(')'));
	NUTOOL_PIN.g_packageNumberIndex = NUTOOL_PIN.g_packageNumber;

	partNumber_package = null;
};
