somehow could not get printf work with IAR both SWD & uart on NGX4330
This commit is contained in:
@@ -132,6 +132,10 @@ uint8_t board_uart_getchar(void)
|
|||||||
{
|
{
|
||||||
return UART_ReceiveByte(BOARD_UART_PORT);
|
return UART_ReceiveByte(BOARD_UART_PORT);
|
||||||
}
|
}
|
||||||
|
void board_uart_putchar(uint8_t c)
|
||||||
|
{
|
||||||
|
UART_Send(BOARD_UART_PORT, &c, 1, BLOCKING);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,128 +1,128 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/*!
|
/*!
|
||||||
@file board_ngx4330.c
|
@file board_ngx4330.c
|
||||||
@author hathach (tinyusb.org)
|
@author hathach (tinyusb.org)
|
||||||
|
|
||||||
@section LICENSE
|
@section LICENSE
|
||||||
|
|
||||||
Software License Agreement (BSD License)
|
Software License Agreement (BSD License)
|
||||||
|
|
||||||
Copyright (c) 2013, hathach (tinyusb.org)
|
Copyright (c) 2013, hathach (tinyusb.org)
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions are met:
|
modification, are permitted provided that the following conditions are met:
|
||||||
1. Redistributions of source code must retain the above copyright
|
1. Redistributions of source code must retain the above copyright
|
||||||
notice, this list of conditions and the following disclaimer.
|
notice, this list of conditions and the following disclaimer.
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
notice, this list of conditions and the following disclaimer in the
|
notice, this list of conditions and the following disclaimer in the
|
||||||
documentation and/or other materials provided with the distribution.
|
documentation and/or other materials provided with the distribution.
|
||||||
3. Neither the name of the copyright holders nor the
|
3. Neither the name of the copyright holders nor the
|
||||||
names of its contributors may be used to endorse or promote products
|
names of its contributors may be used to endorse or promote products
|
||||||
derived from this software without specific prior written permission.
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
|
||||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
|
INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
This file is part of the tinyusb stack.
|
This file is part of the tinyusb stack.
|
||||||
*/
|
*/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#include "../board.h"
|
#include "../board.h"
|
||||||
|
|
||||||
#if BOARD == BOARD_NGX4330
|
#if BOARD == BOARD_NGX4330
|
||||||
|
|
||||||
#define BOARD_UART_PORT LPC_USART0
|
#define BOARD_UART_PORT LPC_USART0
|
||||||
|
|
||||||
#define BOARD_MAX_LEDS 2
|
#define BOARD_MAX_LEDS 2
|
||||||
const static struct {
|
const static struct {
|
||||||
uint8_t mux_port;
|
uint8_t mux_port;
|
||||||
uint8_t mux_pin;
|
uint8_t mux_pin;
|
||||||
|
|
||||||
uint8_t gpio_port;
|
uint8_t gpio_port;
|
||||||
uint8_t gpio_pin;
|
uint8_t gpio_pin;
|
||||||
}leds[BOARD_MAX_LEDS] = { {2, 11, 1, 11}, {2, 12, 1,12} };
|
}leds[BOARD_MAX_LEDS] = { {2, 11, 1, 11}, {2, 12, 1,12} };
|
||||||
|
|
||||||
void board_init(void)
|
void board_init(void)
|
||||||
{
|
{
|
||||||
CGU_Init();
|
CGU_Init();
|
||||||
SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/CFG_TICKS_PER_SECOND ); /* 1 ms Timer */
|
SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/CFG_TICKS_PER_SECOND ); /* 1 ms Timer */
|
||||||
|
|
||||||
//------------- USB Bus power HOST ONLY-------------//
|
//------------- USB Bus power HOST ONLY-------------//
|
||||||
scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer
|
scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer
|
||||||
|
|
||||||
scu_pinmux(0x2, 6, MD_PUP | MD_EZI, FUNC4); // P2_6 is configured as GPIO5[6] for USB1_PWR_EN
|
scu_pinmux(0x2, 6, MD_PUP | MD_EZI, FUNC4); // P2_6 is configured as GPIO5[6] for USB1_PWR_EN
|
||||||
GPIO_SetDir (5, BIT_(6), 1); // GPIO5[6] is output
|
GPIO_SetDir (5, BIT_(6), 1); // GPIO5[6] is output
|
||||||
GPIO_SetValue (5, BIT_(6)); // GPIO5[6] output high
|
GPIO_SetValue (5, BIT_(6)); // GPIO5[6] output high
|
||||||
|
|
||||||
//------------- LED -------------//
|
//------------- LED -------------//
|
||||||
for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
|
for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
|
||||||
{
|
{
|
||||||
scu_pinmux(leds[i].mux_port, leds[i].mux_pin, MD_PUP|MD_EZI|MD_ZI, FUNC0);
|
scu_pinmux(leds[i].mux_port, leds[i].mux_pin, MD_PUP|MD_EZI|MD_ZI, FUNC0);
|
||||||
GPIO_SetDir(leds[i].gpio_port, BIT_(leds[i].gpio_pin), 1); // output
|
GPIO_SetDir(leds[i].gpio_port, BIT_(leds[i].gpio_pin), 1); // output
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CFG_UART_ENABLE
|
#if CFG_UART_ENABLE
|
||||||
//------------- UART init -------------//
|
//------------- UART init -------------//
|
||||||
UART_CFG_Type UARTConfigStruct;
|
UART_CFG_Type UARTConfigStruct;
|
||||||
|
|
||||||
scu_pinmux(0x6 ,4, MD_PDN|MD_EZI, FUNC2); // UART0_TXD
|
scu_pinmux(0x6 ,4, MD_PDN|MD_EZI, FUNC2); // UART0_TXD
|
||||||
scu_pinmux(0x6 ,5, MD_PDN|MD_EZI, FUNC2); // UART0_RXD
|
scu_pinmux(0x6 ,5, MD_PDN|MD_EZI, FUNC2); // UART0_RXD
|
||||||
|
|
||||||
UART_ConfigStructInit(&UARTConfigStruct); // default: baud = 9600, 8 bit data, 1 stop bit, no parity
|
UART_ConfigStructInit(&UARTConfigStruct); // default: baud = 9600, 8 bit data, 1 stop bit, no parity
|
||||||
UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE; // Re-configure baudrate
|
UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE; // Re-configure baudrate
|
||||||
|
|
||||||
UART_Init((LPC_USARTn_Type*) LPC_USART0, &UARTConfigStruct); // Initialize UART port
|
UART_Init((LPC_USARTn_Type*) LPC_USART0, &UARTConfigStruct); // Initialize UART port
|
||||||
UART_TxCmd((LPC_USARTn_Type*) LPC_USART0, ENABLE); // Enable UART
|
UART_TxCmd((LPC_USARTn_Type*) LPC_USART0, ENABLE); // Enable UART
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// LEDS
|
// LEDS
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
void board_leds(uint32_t on_mask, uint32_t off_mask)
|
void board_leds(uint32_t on_mask, uint32_t off_mask)
|
||||||
{
|
{
|
||||||
for (uint32_t i=0; i<BOARD_MAX_LEDS; i++)
|
for (uint32_t i=0; i<BOARD_MAX_LEDS; i++)
|
||||||
{
|
{
|
||||||
if ( on_mask & BIT_(i))
|
if ( on_mask & BIT_(i))
|
||||||
{
|
{
|
||||||
GPIO_SetValue(leds[i].gpio_port, BIT_(leds[i].gpio_pin));
|
GPIO_SetValue(leds[i].gpio_port, BIT_(leds[i].gpio_pin));
|
||||||
}else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask
|
}else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask
|
||||||
{
|
{
|
||||||
GPIO_ClearValue(leds[i].gpio_port, BIT_(leds[i].gpio_pin));
|
GPIO_ClearValue(leds[i].gpio_port, BIT_(leds[i].gpio_pin));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// UART
|
// UART
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
uint32_t board_uart_send(uint8_t *p_buffer, uint32_t length)
|
uint32_t board_uart_send(uint8_t *p_buffer, uint32_t length)
|
||||||
{
|
{
|
||||||
return UART_Send(BOARD_UART_PORT, p_buffer, length, BLOCKING);
|
return UART_Send(BOARD_UART_PORT, p_buffer, length, BLOCKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t board_uart_recv(uint8_t *p_buffer, uint32_t length)
|
uint32_t board_uart_recv(uint8_t *p_buffer, uint32_t length)
|
||||||
{
|
{
|
||||||
return UART_Receive(BOARD_UART_PORT, p_buffer, length, BLOCKING);
|
return UART_Receive(BOARD_UART_PORT, p_buffer, length, BLOCKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t board_uart_getchar(void)
|
uint8_t board_uart_getchar(void)
|
||||||
{
|
{
|
||||||
return UART_ReceiveByte(BOARD_UART_PORT);
|
return UART_ReceiveByte(BOARD_UART_PORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
//void board_uart_putchar(uint8_t c)
|
void board_uart_putchar(uint8_t c)
|
||||||
//{
|
{
|
||||||
//
|
UART_Send(BOARD_UART_PORT, &c, 1, BLOCKING);
|
||||||
//}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,190 +1,187 @@
|
|||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
/*!
|
/*!
|
||||||
@file printf_retarget.c
|
@file printf_retarget.c
|
||||||
@author hathach (tinyusb.org)
|
@author hathach (tinyusb.org)
|
||||||
|
|
||||||
@section LICENSE
|
@section LICENSE
|
||||||
|
|
||||||
Software License Agreement (BSD License)
|
Software License Agreement (BSD License)
|
||||||
|
|
||||||
Copyright (c) 2013, hathach (tinyusb.org)
|
Copyright (c) 2013, hathach (tinyusb.org)
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions are met:
|
modification, are permitted provided that the following conditions are met:
|
||||||
1. Redistributions of source code must retain the above copyright
|
1. Redistributions of source code must retain the above copyright
|
||||||
notice, this list of conditions and the following disclaimer.
|
notice, this list of conditions and the following disclaimer.
|
||||||
2. Redistributions in binary form must reproduce the above copyright
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
notice, this list of conditions and the following disclaimer in the
|
notice, this list of conditions and the following disclaimer in the
|
||||||
documentation and/or other materials provided with the distribution.
|
documentation and/or other materials provided with the distribution.
|
||||||
3. Neither the name of the copyright holders nor the
|
3. Neither the name of the copyright holders nor the
|
||||||
names of its contributors may be used to endorse or promote products
|
names of its contributors may be used to endorse or promote products
|
||||||
derived from this software without specific prior written permission.
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
|
||||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
|
INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
This file is part of the tinyusb stack.
|
This file is part of the tinyusb stack.
|
||||||
*/
|
*/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
|
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
|
|
||||||
#if CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
|
#if CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
|
||||||
|
|
||||||
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
||||||
#define retarget_getchar() board_uart_getchar()
|
#define retarget_getchar() board_uart_getchar()
|
||||||
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
||||||
#define retarget_getchar() ITM_ReceiveChar()
|
#define retarget_getchar() ITM_ReceiveChar()
|
||||||
#else
|
#else
|
||||||
#error Target is not implemented yet
|
#error Target is not implemented yet
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// LPCXPRESSO / RED SUITE
|
// LPCXPRESSO / RED SUITE
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
#if defined __CODE_RED
|
#if defined __CODE_RED
|
||||||
// Called by bottom level of printf routine within RedLib C library to write
|
// Called by bottom level of printf routine within RedLib C library to write
|
||||||
// a character. With the default semihosting stub, this would write the character
|
// a character. With the default semihosting stub, this would write the character
|
||||||
// to the debugger console window . But this version writes
|
// to the debugger console window . But this version writes
|
||||||
// the character to the UART.
|
// the character to the UART.
|
||||||
int __sys_write (int iFileHandle, char *pcBuffer, int iLength)
|
int __sys_write (int iFileHandle, char *buf, int length)
|
||||||
{
|
{
|
||||||
(void) iFileHandle;
|
(void) iFileHandle;
|
||||||
|
|
||||||
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
||||||
// following code to make \n --> \r\n
|
int ret = length;
|
||||||
int length = iLength;
|
for (int i=0; i<length; i++)
|
||||||
char* p_newline_pos = memchr(pcBuffer, '\n', length);
|
{
|
||||||
|
if (buf[i] == '\n')
|
||||||
while(p_newline_pos != NULL)
|
{
|
||||||
{
|
board_uart_putchar('\r');
|
||||||
uint32_t chunk_len = p_newline_pos - pcBuffer;
|
ret++;
|
||||||
|
}
|
||||||
board_uart_send((uint8_t*)pcBuffer, chunk_len);
|
board_uart_putchar( buf[i] );
|
||||||
board_uart_send(&"\r\n", 2);
|
}
|
||||||
|
return ret;
|
||||||
pcBuffer += (chunk_len + 1);
|
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
||||||
length -= (chunk_len + 1);
|
#error author does not know how to retarget SWO with lpcxpresso/red-suite
|
||||||
p_newline_pos = memchr(pcBuffer, '\n', length);
|
#endif
|
||||||
}
|
|
||||||
|
}
|
||||||
board_uart_send((uint8_t*)pcBuffer, length);
|
|
||||||
|
// Called by bottom level of scanf routine within RedLib C library to read
|
||||||
return iLength;
|
// a character. With the default semihosting stub, this would read the character
|
||||||
|
// from the debugger console window (which acts as stdin). But this version reads
|
||||||
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
// the character from the UART.
|
||||||
#error author does not know how to retarget SWO with lpcxpresso/red-suite
|
int __sys_readc (void)
|
||||||
#endif
|
{
|
||||||
|
return (int) retarget_getchar();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by bottom level of scanf routine within RedLib C library to read
|
//--------------------------------------------------------------------+
|
||||||
// a character. With the default semihosting stub, this would read the character
|
// KEIL
|
||||||
// from the debugger console window (which acts as stdin). But this version reads
|
//--------------------------------------------------------------------+
|
||||||
// the character from the UART.
|
#elif defined __CC_ARM // keil
|
||||||
int __sys_readc (void)
|
|
||||||
{
|
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
||||||
return (int) retarget_getchar();
|
#define retarget_putc(c) board_uart_send( (uint8_t*) &c, 1);
|
||||||
}
|
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
||||||
|
volatile int32_t ITM_RxBuffer;
|
||||||
//--------------------------------------------------------------------+
|
#define retarget_putc(c) ITM_SendChar(c)
|
||||||
// KEIL
|
#endif
|
||||||
//--------------------------------------------------------------------+
|
|
||||||
#elif defined __CC_ARM // keil
|
struct __FILE {
|
||||||
|
uint32_t handle;
|
||||||
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
};
|
||||||
#define retarget_putc(c) board_uart_send( (uint8_t*) &c, 1);
|
|
||||||
#elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
|
int fgetc(FILE *f)
|
||||||
volatile int32_t ITM_RxBuffer;
|
{
|
||||||
#define retarget_putc(c) ITM_SendChar(c)
|
return retarget_getchar();
|
||||||
#endif
|
}
|
||||||
|
|
||||||
struct __FILE {
|
int fputc(int ch, FILE *f)
|
||||||
uint32_t handle;
|
{
|
||||||
};
|
if (ch == '\n')
|
||||||
|
{
|
||||||
int fgetc(FILE *f)
|
uint8_t carry = '\r';
|
||||||
{
|
retarget_putc(carry);
|
||||||
return retarget_getchar();
|
}
|
||||||
}
|
|
||||||
|
retarget_putc(ch);
|
||||||
int fputc(int ch, FILE *f)
|
|
||||||
{
|
return ch;
|
||||||
if (ch == '\n')
|
}
|
||||||
{
|
|
||||||
uint8_t carry = '\r';
|
void _ttywrch(int ch)
|
||||||
retarget_putc(carry);
|
{
|
||||||
}
|
if ( ch == '\n' )
|
||||||
|
{
|
||||||
retarget_putc(ch);
|
uint8_t carry = '\r';
|
||||||
|
retarget_putc(carry);
|
||||||
return ch;
|
}
|
||||||
}
|
|
||||||
|
retarget_putc(ch);
|
||||||
void _ttywrch(int ch)
|
}
|
||||||
{
|
|
||||||
if ( ch == '\n' )
|
|
||||||
{
|
//--------------------------------------------------------------------+
|
||||||
uint8_t carry = '\r';
|
// IAR
|
||||||
retarget_putc(carry);
|
//--------------------------------------------------------------------+
|
||||||
}
|
#elif 0 // defined __ICCARM__ TODO could not able to retarget to UART with IAR
|
||||||
|
|
||||||
retarget_putc(ch);
|
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
||||||
}
|
#include <stddef.h>
|
||||||
|
|
||||||
|
size_t __write(int handle, const unsigned char *buf, size_t length)
|
||||||
//--------------------------------------------------------------------+
|
{
|
||||||
// IAR
|
/* Check for the command to flush all handles */
|
||||||
//--------------------------------------------------------------------+
|
if (handle == -1) return 0;
|
||||||
#elif defined __ICCARM__
|
|
||||||
|
/* Check for stdout and stderr (only necessary if FILE descriptors are enabled.) */
|
||||||
#if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
|
if (handle != 1 && handle != 2) return -1;
|
||||||
#include <stddef.h>
|
|
||||||
|
size_t ret = length;
|
||||||
size_t __write(int handle, const unsigned char *buf, size_t bufSize)
|
for (size_t i=0; i<length; i++)
|
||||||
{
|
{
|
||||||
/* Check for the command to flush all handles */
|
if (buf[i] == '\n')
|
||||||
if (handle == -1) return 0;
|
{
|
||||||
|
board_uart_putchar('\r');
|
||||||
/* Check for stdout and stderr (only necessary if FILE descriptors are enabled.) */
|
ret++;
|
||||||
if (handle != 1 && handle != 2) return -1;
|
}
|
||||||
|
board_uart_putchar( buf[i] );
|
||||||
for (size_t i=0; i<bufSize; i++)
|
}
|
||||||
{
|
|
||||||
if (buf[i] == '\n') board_uart_putchar('\r');
|
return ret;
|
||||||
board_uart_putchar( buf[i] );
|
}
|
||||||
}
|
|
||||||
|
size_t __read(int handle, unsigned char *buf, size_t bufSize)
|
||||||
return bufSize;
|
{
|
||||||
}
|
/* Check for stdin (only necessary if FILE descriptors are enabled) */
|
||||||
|
if (handle != 0) return -1;
|
||||||
size_t __read(int handle, unsigned char *buf, size_t bufSize)
|
|
||||||
{
|
/*size_t i;
|
||||||
/* Check for stdin (only necessary if FILE descriptors are enabled) */
|
for (i=0; i<bufSize; i++)
|
||||||
if (handle != 0) return -1;
|
{
|
||||||
|
uint8_t ch = board_uart_getchar();
|
||||||
size_t i;
|
if (ch == 0) break;
|
||||||
for (i=0; i<bufSize; i++)
|
buf[i] = ch;
|
||||||
{
|
}
|
||||||
uint8_t ch = board_uart_getchar();
|
|
||||||
if (ch == 0) break;
|
return i; */
|
||||||
buf[i] = ch;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return i;
|
#endif
|
||||||
}
|
|
||||||
|
#endif
|
||||||
#endif
|
|
||||||
|
#endif // CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1848,6 +1848,929 @@
|
|||||||
<data/>
|
<data/>
|
||||||
</settings>
|
</settings>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration>
|
||||||
|
<name>Board NGX4330</name>
|
||||||
|
<toolchain>
|
||||||
|
<name>ARM</name>
|
||||||
|
</toolchain>
|
||||||
|
<debug>1</debug>
|
||||||
|
<settings>
|
||||||
|
<name>General</name>
|
||||||
|
<archiveVersion>3</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>21</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>ExePath</name>
|
||||||
|
<state>Board NGX4330\Exe</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ObjPath</name>
|
||||||
|
<state>Board NGX4330\Obj</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ListPath</name>
|
||||||
|
<state>Board NGX4330\List</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Variant</name>
|
||||||
|
<version>20</version>
|
||||||
|
<state>39</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GEndianMode</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Input variant</name>
|
||||||
|
<version>3</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Input description</name>
|
||||||
|
<state>Automatic choice of formatter.</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Output variant</name>
|
||||||
|
<version>2</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Output description</name>
|
||||||
|
<state>Automatic choice of formatter.</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GOutputBinary</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>FPU</name>
|
||||||
|
<version>2</version>
|
||||||
|
<state>5</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGCoreOrChip</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GRuntimeLibSelect</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GRuntimeLibSelectSlave</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>RTDescription</name>
|
||||||
|
<state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGProductVersion</name>
|
||||||
|
<state>6.50.5.4846</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGLastSavedByProductVersion</name>
|
||||||
|
<state>6.50.5.4846</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GeneralEnableMisra</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GeneralMisraVerbose</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGChipSelectEditMenu</name>
|
||||||
|
<state>LPC4330_M4 NXP LPC4330_M4</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GenLowLevelInterface</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GEndianModeBE</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGBufferedTerminalOutput</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GenStdoutInterface</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GeneralMisraRules98</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GeneralMisraVer</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GeneralMisraRules04</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>111101010010111111111000110011111101111111111111110110010111101111010101111111111111111111111111101111111011110001111011111011111111111111111</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>RTConfigPath2</name>
|
||||||
|
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GFPUCoreSlave</name>
|
||||||
|
<version>20</version>
|
||||||
|
<state>39</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>GBECoreSlave</name>
|
||||||
|
<version>20</version>
|
||||||
|
<state>39</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGUseCmsis</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OGUseCmsisDspLib</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>ICCARM</name>
|
||||||
|
<archiveVersion>2</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>28</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>CCDefines</name>
|
||||||
|
<state>CORE_M4</state>
|
||||||
|
<state>TUSB_CFG_MCU=MCU_LPC43XX</state>
|
||||||
|
<state>BOARD=BOARD_NGX4330</state>
|
||||||
|
<state>TUSB_CFG_OS=TUSB_OS_NONE</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPreprocFile</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPreprocComments</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPreprocLine</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCListCFile</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCListCMnemonics</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCListCMessages</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCListAssFile</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCListAssSource</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCEnableRemarks</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDiagSuppress</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDiagRemark</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDiagWarning</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDiagError</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCObjPrefix</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCAllowList</name>
|
||||||
|
<version>1</version>
|
||||||
|
<state>0000000</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDebugInfo</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IEndianMode</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IProcessor</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IExtraOptionsCheck</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IExtraOptions</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCLangConformance</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCSignedPlainChar</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCRequirePrototypes</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCMultibyteSupport</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCDiagWarnAreErr</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCCompilerRuntimeInfo</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IFpuProcessor</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OutputFile</name>
|
||||||
|
<state>$FILE_BNAME$.o</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCLibConfigHeader</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>PreInclude</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CompilerMisraOverride</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCIncludePath2</name>
|
||||||
|
<state>$PROJ_DIR$\..\src</state>
|
||||||
|
<state>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\inc</state>
|
||||||
|
<state>$PROJ_DIR$\..\..\bsp</state>
|
||||||
|
<state>$PROJ_DIR$\..\..\..\tinyusb</state>
|
||||||
|
<state>$PROJ_DIR$\..\..\..\vendor\fatfs</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCStdIncCheck</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCCodeSection</name>
|
||||||
|
<state>.text</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IInterwork2</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IProcessorMode2</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCOptLevel</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCOptStrategy</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCOptLevelSlave</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CompilerMisraRules98</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CompilerMisraRules04</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPosIndRopi</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPosIndRwpi</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCPosIndNoDynInit</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccLang</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccCDialect</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccAllowVLA</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccCppDialect</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccExceptions</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccRTTI</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccStaticDestr</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccCppInlineSemantics</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccCmsis</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IccFloatSemantics</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CCOptimizationNoSizeConstraints</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>AARM</name>
|
||||||
|
<archiveVersion>2</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>8</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>AObjPrefix</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AEndian</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ACaseSensitivity</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>MacroChars</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AWarnEnable</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AWarnWhat</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AWarnOne</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AWarnRange1</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AWarnRange2</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ADebug</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AltRegisterNames</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ADefines</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AList</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AListHeader</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AListing</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>Includes</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>MacDefs</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>MacExps</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>MacExec</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OnlyAssed</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>MultiLine</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>PageLengthCheck</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>PageLength</name>
|
||||||
|
<state>80</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>TabSpacing</name>
|
||||||
|
<state>8</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AXRef</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AXRefDefines</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AXRefInternal</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AXRefDual</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AProcessor</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AFpuProcessor</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AOutputFile</name>
|
||||||
|
<state>$FILE_BNAME$.o</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AMultibyteSupport</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ALimitErrorsCheck</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>ALimitErrorsEdit</name>
|
||||||
|
<state>100</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AIgnoreStdInclude</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AUserIncludes</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AExtraOptionsCheckV2</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>AExtraOptionsV2</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>OBJCOPY</name>
|
||||||
|
<archiveVersion>0</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>1</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>OOCOutputFormat</name>
|
||||||
|
<version>2</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OCOutputOverride</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OOCOutputFile</name>
|
||||||
|
<state>host_os_none.srec</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OOCCommandLineProducer</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>OOCObjCopyEnable</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>CUSTOM</name>
|
||||||
|
<archiveVersion>3</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<extensions></extensions>
|
||||||
|
<cmdline></cmdline>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>BICOMP</name>
|
||||||
|
<archiveVersion>0</archiveVersion>
|
||||||
|
<data/>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>BUILDACTION</name>
|
||||||
|
<archiveVersion>1</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<prebuild></prebuild>
|
||||||
|
<postbuild></postbuild>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>ILINK</name>
|
||||||
|
<archiveVersion>0</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>15</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLibIOConfig</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>XLinkMisraHandler</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkInputFileSlave</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOutputFile</name>
|
||||||
|
<state>host_os_none.out</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkDebugInfoEnable</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkKeepSymbols</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkRawBinaryFile</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkRawBinarySymbol</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkRawBinarySegment</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkRawBinaryAlign</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkDefines</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkConfigDefines</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkMapFile</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogFile</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogInitialization</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogModule</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogSection</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogVeneer</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkIcfOverride</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkIcfFile</name>
|
||||||
|
<state>$TOOLKIT_DIR$\config\linker\NXP\lpc4330_m4.icf</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkIcfFileSlave</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkEnableRemarks</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkSuppressDiags</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkTreatAsRem</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkTreatAsWarn</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkTreatAsErr</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkWarningsAreErrors</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkUseExtraOptions</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkExtraOptions</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLowLevelInterfaceSlave</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkAutoLibEnable</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkAdditionalLibs</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOverrideProgramEntryLabel</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkProgramEntryLabelSelect</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkProgramEntryLabel</name>
|
||||||
|
<state>__iar_program_start</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>DoFill</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>FillerByte</name>
|
||||||
|
<state>0xFF</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>FillerStart</name>
|
||||||
|
<state>0x0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>FillerEnd</name>
|
||||||
|
<state>0x0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcSize</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcAlign</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcPoly</name>
|
||||||
|
<state>0x11021</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcCompl</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcBitOrder</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcInitialValue</name>
|
||||||
|
<state>0x0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>DoCrc</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkBE8Slave</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkBufferedTerminalOutput</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkStdoutInterfaceSlave</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcFullSize</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkIElfToolPostProcess</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogAutoLibSelect</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogRedirSymbols</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkLogUnusedFragments</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkCrcReverseByteOrder</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkCrcUseAsInput</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptInline</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptExceptionsAllow</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptExceptionsForce</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkCmsis</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptMergeDuplSections</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptUseVfe</name>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkOptForceVfe</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkStackAnalysisEnable</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkStackControlFile</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IlinkStackCallGraphFile</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcAlgorithm</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>1</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>CrcUnitSize</name>
|
||||||
|
<version>0</version>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>IARCHIVE</name>
|
||||||
|
<archiveVersion>0</archiveVersion>
|
||||||
|
<data>
|
||||||
|
<version>0</version>
|
||||||
|
<wantNonLocal>1</wantNonLocal>
|
||||||
|
<debug>1</debug>
|
||||||
|
<option>
|
||||||
|
<name>IarchiveInputs</name>
|
||||||
|
<state></state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IarchiveOverride</name>
|
||||||
|
<state>0</state>
|
||||||
|
</option>
|
||||||
|
<option>
|
||||||
|
<name>IarchiveOutput</name>
|
||||||
|
<state>###Unitialized###</state>
|
||||||
|
</option>
|
||||||
|
</data>
|
||||||
|
</settings>
|
||||||
|
<settings>
|
||||||
|
<name>BILINK</name>
|
||||||
|
<archiveVersion>0</archiveVersion>
|
||||||
|
<data/>
|
||||||
|
</settings>
|
||||||
|
</configuration>
|
||||||
<group>
|
<group>
|
||||||
<name>app</name>
|
<name>app</name>
|
||||||
<file>
|
<file>
|
||||||
@@ -1899,6 +2822,7 @@
|
|||||||
<name>lpc175x_6x</name>
|
<name>lpc175x_6x</name>
|
||||||
<excluded>
|
<excluded>
|
||||||
<configuration>Board EA4357</configuration>
|
<configuration>Board EA4357</configuration>
|
||||||
|
<configuration>Board NGX4330</configuration>
|
||||||
</excluded>
|
</excluded>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\..\..\bsp\lpc175x_6x\CMSISv2p00_LPC17xx\src\core_cm3.c</name>
|
<name>$PROJ_DIR$\..\..\bsp\lpc175x_6x\CMSISv2p00_LPC17xx\src\core_cm3.c</name>
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ int main(void)
|
|||||||
OSAL_TASK_FUNCTION( led_blinking_task ) (void* p_task_para)
|
OSAL_TASK_FUNCTION( led_blinking_task ) (void* p_task_para)
|
||||||
{
|
{
|
||||||
static uint32_t led_on_mask = 0;
|
static uint32_t led_on_mask = 0;
|
||||||
|
|
||||||
OSAL_TASK_LOOP_BEGIN
|
OSAL_TASK_LOOP_BEGIN
|
||||||
|
|
||||||
osal_task_delay(1000);
|
osal_task_delay(1000);
|
||||||
@@ -174,7 +174,7 @@ OSAL_TASK_FUNCTION( led_blinking_task ) (void* p_task_para)
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
void print_greeting(void)
|
void print_greeting(void)
|
||||||
{
|
{
|
||||||
printf("\n\
|
puts("\n\
|
||||||
--------------------------------------------------------------------\n\
|
--------------------------------------------------------------------\n\
|
||||||
- Host Demo (a tinyusb example)\n\
|
- Host Demo (a tinyusb example)\n\
|
||||||
- if you find any bugs or get any questions, feel free to file an\n\
|
- if you find any bugs or get any questions, feel free to file an\n\
|
||||||
@@ -188,5 +188,4 @@ void print_greeting(void)
|
|||||||
if (TUSB_CFG_HOST_HID_KEYBOARD ) puts(" - HID Keyboard");
|
if (TUSB_CFG_HOST_HID_KEYBOARD ) puts(" - HID Keyboard");
|
||||||
if (TUSB_CFG_HOST_MSC ) puts(" - Mass Storage");
|
if (TUSB_CFG_HOST_MSC ) puts(" - Mass Storage");
|
||||||
if (TUSB_CFG_HOST_CDC ) puts(" - Communication Device Class");
|
if (TUSB_CFG_HOST_CDC ) puts(" - Communication Device Class");
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user