4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-02-01 21:50:29 +08:00

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
BernardXiong 2015-05-18 18:16:59 +08:00
commit 7d73fb8bdb
59 changed files with 19088 additions and 5261 deletions

View File

@ -1,12 +1,12 @@
/****************************************************************************************************//**
* @file CMEM7.h
* @file cmem7.h
*
* @brief CMSIS Cortex-M3 Peripheral Access Layer Header File for
* CMEM7 from <unknown Vendor>.
* cmem7 from <unknown Vendor>.
*
* @version V1.0
* @date 5. June 2014
* @date 5. January 2015
*
* @note Generated with SVDConv V2.75
* from CMSIS SVD File 'SVDConv_CME_M7.svd' Version 1.0,
@ -18,7 +18,7 @@
* @{
*/
/** @addtogroup CMEM7
/** @addtogroup cmem7
* @{
*/
@ -46,7 +46,7 @@ typedef enum {
DebugMonitor_IRQn = -4, /*!< 12 Debug Monitor */
PendSV_IRQn = -2, /*!< 14 Pendable request for system service */
SysTick_IRQn = -1, /*!< 15 System Tick Timer */
/* ---------------------- CMEM7 Specific Interrupt Numbers ---------------------- */
/* ---------------------- cmem7 Specific Interrupt Numbers ---------------------- */
ETH_INT_IRQn = 0, /*!< 0 ETH_INT */
USB_INT_IRQn = 1, /*!< 1 USB_INT */
DMA_INT_IRQn = 2, /*!< 2 DMA_INT */
@ -105,7 +105,7 @@ typedef enum {
/** @} */ /* End of group Configuration_of_CMSIS */
#include <core_cm3.h> /*!< Cortex-M3 processor and core peripherals */
#include "system_cmem7.h" /*!< CMEM7 System */
#include "system_cmem7.h" /*!< cmem7 System */
/* ================================================================================ */
@ -789,17 +789,17 @@ typedef struct { /*!< RTC Structure
struct {
__IO uint32_t SECOND : 1; /*!< 1s interrupt, write 1 clear 0 */
__IO uint32_t MICROSECOND: 1; /*!< 1ms interrupt, write 1 clear 0 */
__IO uint32_t MILLSECOND : 1; /*!< 1ms interrupt, write 1 clear 0 */
} INT_STATUS_b; /*!< BitSize */
};
__IO uint32_t SECOND; /*!< current seconds of system time */
union {
__IO uint16_t MICROSECOND; /*!< current micro seconds of system time */
__IO uint16_t MILLSECOND; /*!< current millseconds of system time */
struct {
__IO uint16_t MS : 10; /*!< micro seconds */
} MICROSECOND_b; /*!< BitSize */
} MILLSECOND_b; /*!< BitSize */
};
} RTC_Type;
@ -2884,9 +2884,35 @@ typedef struct { /*!< ETH Structure
are used to index the content */
} VLAN_TAG_b; /*!< BitSize */
};
__I uint32_t RESERVED0[8];
__I uint32_t RESERVED0[2];
__IO uint32_t RWUFFR; /*!< Remote Wake-Up Frame Filter Register */
union {
__IO uint32_t PMTCSR; /*!< PMT Control and Status Register */
struct {
__IO uint32_t PWRDWN : 1; /*!< Power Down */
__IO uint32_t MGKPKTEN : 1; /*!< Magic Packet Enable */
__IO uint32_t RWKPKTEN : 1; /*!< Remote Wake-Up Frame Enable */
uint32_t : 2;
__IO uint32_t MGKPRCVD : 1; /*!< the power management event is generated because of the reception
of a magic packet */
__IO uint32_t RWKPRCVD : 1; /*!< When set, this bit indicates the power management event is generated
because of the reception of a remote wake-up frame */
uint32_t : 2;
__IO uint32_t GLBLUCAST : 1; /*!< When set, enables any unicast packet filtered by the MAC (DAF)address
recognition to be a remote wake-up frame. */
uint32_t : 14;
__IO uint32_t RWKPTR : 3; /*!< Remote Wake-up FIFO Pointer */
uint32_t : 4;
__IO uint32_t RWKFILTRST : 1; /*!< Remote Wake-Up Frame Filter Register Pointer Reset. */
} PMTCSR_b; /*!< BitSize */
};
__I uint32_t RESERVED1[2];
__IO uint32_t MACISR; /*!< Interrupt Status Register */
__IO uint32_t MACIMR; /*!< Interrupt Mask Register */
__IO uint16_t ADDR0_HIGH; /*!< MAC Address0 High Register */
__I uint16_t RESERVED1;
__I uint16_t RESERVED2;
__IO uint32_t ADDR0_LOW; /*!< MAC Address0 LOW Register */
union {
@ -2901,10 +2927,51 @@ typedef struct { /*!< ETH Structure
} ADDR1_HIGH_b; /*!< BitSize */
};
__IO uint32_t ADDR1_LOW; /*!< MAC Address1 LOW Register */
__I uint32_t RESERVED2[47];
__IO uint32_t MMC_RX_MASK; /*!< MMC Receive interrupt mask */
__IO uint32_t MMC_TX_MASK; /*!< MMC Transmit Interrupt Mask */
__I uint32_t RESERVED3[955];
__I uint32_t RESERVED3[44];
union {
__IO uint32_t MMCCR; /*!< MMC Control Register */
struct {
__IO uint32_t CNTRST : 1; /*!< Counters Reset */
__IO uint32_t CNTSTOPRO : 1; /*!< Counter Stop Rollover */
__IO uint32_t RSTONRD : 1; /*!< Reset on Read */
__IO uint32_t CNTFREEZ : 1; /*!< MMC Counter Freeze */
__IO uint32_t CNTPRST : 1; /*!< Counters Preset */
__IO uint32_t CNTPRSTLVL : 1; /*!< Counters Preset */
uint32_t : 2;
__IO uint32_t UCDBC : 1; /*!< Update MMC Counters for Dropped Broadcast Frames */
} MMCCR_b; /*!< BitSize */
};
__IO uint32_t MMCRIR; /*!< MMC Receive Interrupt Register */
__IO uint32_t MMCTIR; /*!< MMC Transmit Interrupt Register */
__IO uint32_t MMCRIMR; /*!< MMC Receive interrupt mask */
__IO uint32_t MMCTIMR; /*!< MMC Transmit Interrupt Mask */
__I uint32_t RESERVED4[59];
__IO uint32_t MMCIRCOIM; /*!< MMC IPC Receive Checksum Offload Interrupt Mask */
__I uint32_t RESERVED5[319];
union {
__IO uint32_t PTPTSCR; /*!< Timestamp Control Register */
struct {
__IO uint32_t TSENA : 1; /*!< Timestamp Enable */
__IO uint32_t TSCFUPDT : 1; /*!< Timestamp Fine or Coarse Update */
__IO uint32_t TSINIT : 1; /*!< Timestamp Initialize */
__IO uint32_t TSUPDT : 1; /*!< Timestamp Update */
__IO uint32_t TSTRIG : 1; /*!< Timestamp Interrupt Trigger Enable */
__IO uint32_t TSADDREG : 1; /*!< Addend Reg Update */
} PTPTSCR_b; /*!< BitSize */
};
__IO uint32_t PTPSSIR; /*!< Sub-Second Increment Register */
__IO uint32_t PTPTSHR; /*!< System Time Seconds Register */
__IO uint32_t PTPTSLR; /*!< System Time Nanoseconds Register */
__IO uint32_t PTPTSHUR; /*!< System Time Seconds Update Register */
__IO uint32_t PTPTSLUR; /*!< System Time Nanoseconds Update Register */
__IO uint32_t PTPTSAR; /*!< Timestamp Addend Register */
__IO uint32_t PTPTTHR; /*!< Target Time Seconds Register */
__IO uint32_t PTPTTLR; /*!< Target Time Nanoseconds Register */
__I uint32_t RESERVED6[567];
union {
__IO uint32_t BUS_MODE; /*!< Flow Control Register */
@ -3019,7 +3086,7 @@ typedef struct { /*!< ETH Structure
__IO uint32_t NIE : 1; /*!< Normal Interrupt Summary Enable */
} INT_EN_b; /*!< BitSize */
};
__I uint32_t RESERVED4[3];
__I uint32_t RESERVED7[3];
union {
__IO uint32_t AHB_STATUS; /*!< AHB Status Register */
@ -3029,7 +3096,7 @@ typedef struct { /*!< ETH Structure
in the non-idle state */
} AHB_STATUS_b; /*!< BitSize */
};
__I uint32_t RESERVED5[6];
__I uint32_t RESERVED8[6];
__I uint32_t CURTDESAPTR; /*!< Current Host Transmit Descriptor Register */
__I uint32_t CURRDESAPTR; /*!< Current Host Receive Descriptor Register */
__I uint32_t CURTBUFAPTR; /*!< Current Host Transmit Buffer Address Register */
@ -7227,7 +7294,7 @@ typedef struct { /*!< GLOBAL_CTRL Structure
struct {
__IO uint32_t SECOND : 1; /*!< 1s interrupt enable */
__IO uint32_t MICROSECOND: 1; /*!< 1ms interrupt enable */
__IO uint32_t MILLSECOND : 1; /*!< 1ms interrupt enable */
} RTC_INT_EN_b; /*!< BitSize */
};
__I uint32_t RESERVED1;
@ -7315,7 +7382,9 @@ typedef struct { /*!< DDRC Structure
__IO uint32_t MODE : 6; /*!< DDRC Mode */
uint32_t : 2;
__IO uint32_t LANE : 1; /*!< LANE synchronization logic bypass */
uint32_t : 7;
uint32_t : 3;
__IO uint32_t ADEC : 1; /*!< address decoder mapping */
uint32_t : 3;
__IO uint32_t B16 : 2; /*!< Active 16 bit DQ position when the unmber of DQ IO is 16 */
uint32_t : 6;
__IO uint32_t CLKPOL : 2; /*!< DQS clkpol set by user on the PHY */
@ -7933,7 +8002,7 @@ typedef struct { /*!< SOFT_RESET Structure
/** @} */ /* End of group Device_Peripheral_Registers */
/** @} */ /* End of group CMEM7 */
/** @} */ /* End of group cmem7 */
/** @} */ /* End of group (null) */
#ifdef __cplusplus
@ -7941,5 +8010,5 @@ typedef struct { /*!< SOFT_RESET Structure
#endif
#endif /* CMEM7_H */
#endif /* cmem7_H */

View File

@ -45,6 +45,11 @@
#define _USB
#define _WDG
//#define _MARVELL
//#define _IP1826D
#define _M7NORFLASH
#define _ME_6095_F
#define USE_FULL_ASSERT 1
#ifdef USE_FULL_ASSERT
@ -71,7 +76,9 @@ typedef enum _BOOL {FALSE = 0, TRUE = 1} BOOL;
/**
* System clock frequency, unit is Hz.
*/
#define SYSTEM_CLOCK_FREQ 200000000
#define SYSTEM_CLOCK_FREQ 300000000
//250000000
//300000000
/**
* @brief usecond delay

View File

@ -86,7 +86,6 @@
/**
* @}
*/
/**
* @brief EFUSE receive filter structure
*/
@ -105,15 +104,15 @@ typedef struct
*/
typedef struct
{
BOOL ETH_LinkUp; /*!< If ETH is linked up and it can be retrieved from PHY */
BOOL ETH_LinkUp; /*!< If ETH is linked up and it can be retrieved from PHY */
uint8_t ETH_Speed; /*!< speed of ETH, refer as @ref ETH_SPEED */
uint8_t ETH_Duplex; /*!< duplex mode of ETH, refer as @ref ETH_DUPLEX */
uint8_t ETH_Duplex; /*!< duplex mode of ETH, refer as @ref ETH_DUPLEX */
BOOL ETH_RxEn; /*!< Rx enable */
BOOL ETH_TxEn; /*!< Tx enable */
BOOL ETH_ChecksumOffload; /*!< Checksum offload enable */
BOOL ETH_JumboFrame; /*!< Jumbo Frame Enable */
uint8_t ETH_MacAddr[6]; /*!< MAC address */
ETH_FrameFilter *ETH_Filter; /*!< Received frame address filter, receive all if null */
ETH_FrameFilter *ETH_Filter; /*!< Received frame address filter, receive all if null */
} ETH_InitTypeDef;
/**
@ -173,14 +172,14 @@ typedef struct {
uint32_t CRC_ERR : 1; /*!< [OUT] CRC error while last segment */
uint32_t : 5;
uint32_t TTSE : 1; /*!< timestamp available while last segment */
uint32_t LS : 1; /*!< last segment flag */
uint32_t FS : 1; /*!< first segment flag */
uint32_t LS : 1; /*!< [OUT] last segment flag */
uint32_t FS : 1; /*!< [OUT] first segment flag */
uint32_t : 1;
uint32_t OVERFLOW_ERR : 1; /*!< [OUT] FIFO overflow while last segment */
uint32_t LENGTH_ERR : 1; /*!< [OUT] length error while last segment */
uint32_t : 2;
uint32_t ERR_SUM : 1; /*!< [OUT] Error summary while last segment */
uint32_t FL : 14; /*!< frame length while last segment */
uint32_t FL : 14; /*!< [OUT] frame length while last segment */
uint32_t : 2;
} RX0_b;
} RX_0;
@ -216,7 +215,13 @@ uint32_t ETH_PhyRead(uint32_t phyAddr, uint32_t phyReg);
* @retval None
*/
void ETH_PhyWrite(uint32_t phyAddr, uint32_t phyReg, uint32_t data);
/**
* @brief Fills each ETH_InitStruct member with its default value.
* @param ETH_InitStruct: pointer to a ETH_InitTypeDef structure
* which will be initialized.
* @retval : None
*/
void ETH_StructInit(ETH_InitTypeDef* init);
/**
* @brief Ethernet initialization
* @note This function should be called at first before any other interfaces.
@ -231,21 +236,21 @@ BOOL ETH_Init(ETH_InitTypeDef *init);
* @param[in] Enable The bit indicates if specific interrupts are enable or not
* @retval None
*/
void ETH_EnableInt(uint32_t Int, BOOL enable);
void ETH_ITConfig(uint32_t Int, BOOL enable);
/**
* @brief Check specific interrupts are set or not
* @param[in] Int interrupt mask bits, which can be the combination of @ref ETH_INT
* @retval BOOL The bit indicates if specific interrupts are set or not
*/
BOOL ETH_GetIntStatus(uint32_t Int);
BOOL ETH_GetITStatus(uint32_t Int);
/**
* @brief Clear specific interrupts
* @param[in] Int interrupt mask bits, which can be the combination of @ref ETH_INT
* @retval None
*/
void ETH_ClearInt(uint32_t Int);
void ETH_ClearITPendingBit(uint32_t Int);
/**
* @brief Get ethernte MAC address
@ -299,7 +304,7 @@ ETH_TX_DESC *ETH_AcquireFreeTxDesc(void);
/**
* @brief Check if a transmission descriptor is free or not
* @param desc A pointer of a transmission descriptor
* @param[in] desc A pointer of a transmission descriptor
* @retval BOOL True if the transmission descriptor is free, or flase.
*/
BOOL ETH_IsFreeTxDesc(ETH_TX_DESC *desc);
@ -309,11 +314,26 @@ BOOL ETH_IsFreeTxDesc(ETH_TX_DESC *desc);
* After users prepared data in the buffer of a free descriptor,
* They must call this function to change ownership of the
* descriptor to hardware.
* @param desc A pointer of a transmission descriptor
* @param[in] desc A pointer of a transmission descriptor
* @retval None
*/
void ETH_ReleaseTxDesc(ETH_TX_DESC *desc);
/**
* @brief Set buffer address of the specific TX descriptor
* @param[in] desc A pointer of a transmission descriptor
* @param[in] bufAddr buffer address to be sent
* @retval None
*/
void ETH_SetTxDescBufAddr(ETH_TX_DESC *desc, uint32_t bufAddr);
/**
* @brief Get buffer address of the specific TX descriptor
* @param[in] desc A pointer of a transmission descriptor
* @retval uint32_t buffer address to be gotten
*/
uint32_t ETH_GetTxDescBufAddr(ETH_TX_DESC *desc);
/**
* @brief Set ethernet receive descriptor ring
* @note Make sure that memory occupied by descriptors should be in physical
@ -359,7 +379,7 @@ ETH_RX_DESC *ETH_AcquireFreeRxDesc(void);
/**
* @brief Check if a receive descriptor is free or not
* @param desc A pointer of a receive descriptor
* @param[in] desc A pointer of a receive descriptor
* @retval BOOL True if the receive descriptor is free, or flase.
*/
BOOL ETH_IsFreeRxDesc(ETH_RX_DESC *desc);
@ -369,11 +389,26 @@ BOOL ETH_IsFreeRxDesc(ETH_RX_DESC *desc);
* After users handled data in the buffer of a free descriptor,
* They must call this function to change ownership of the
* descriptor to hardware.
* @param desc A pointer of a transmission descriptor
* @param[in] desc A pointer of a transmission descriptor
* @retval None
*/
void ETH_ReleaseRxDesc(ETH_RX_DESC *desc);
/**
* @brief Set buffer address of the specific RX descriptor
* @param[in] desc A pointer of a receive descriptor
* @param[in] bufAddr buffer address to be received
* @retval None
*/
void ETH_SetRxDescBufAddr(ETH_RX_DESC *desc, uint32_t bufAddr);
/**
* @brief Get buffer address of the specific RX descriptor
* @param[in] desc A pointer of a receive descriptor
* @retval uint32_t buffer address to be gotten
*/
uint32_t ETH_GetRxDescBufAddr(ETH_RX_DESC *desc);
#ifdef __cplusplus
}
#endif

View File

@ -202,6 +202,14 @@ void FLASH_Read(uint8_t ReadMode, uint32_t addr, uint16_t size, uint8_t* data);
*/
void FLASH_Write(uint32_t addr, uint16_t size, uint8_t* data);
void flash_WaitInWritting(void) ;
void flash_WaitReadFifoNotEmpty(void);
uint16_t flash_ReadFifo(uint16_t size, uint8_t* data) ;
#ifdef __cplusplus
}
#endif

View File

@ -140,6 +140,17 @@ void GPIO_InitPwm(uint8_t Channel, uint32_t HighLevelNanoSecond, uint32_t LowLev
*/
void GPIO_EnablePwm(uint8_t Channel, BOOL Enable);
/**
xjf 20150324
**/
void GPIO_SetBits(uint32_t mask);
void GPIO_clrBits(uint32_t mask);
uint32_t GPIO_getBits(uint32_t mask);
#ifdef __cplusplus
}
#endif

View File

@ -102,6 +102,16 @@
#include "cmem7_wdg.h"
#endif
#ifdef _MARVELL
#include <marvel_98dx242.h>
#include <s24g_i2c.h>
#endif
#ifdef _IP1826D
#include <ip1826d_v00.h>
#endif
#ifdef __cplusplus
}
#endif

View File

@ -87,9 +87,11 @@ typedef struct
* @{
*/
#define NVIC_VectTab_CME_CODE ((uint32_t)0x00000000)
#define NVIC_VectTab_RAM ((uint32_t)0x20000000)
#define NVIC_VectTab_FLASH ((uint32_t)0x08000000)
#define IS_NVIC_VECTTAB(VECTTAB) (((VECTTAB) == NVIC_VectTab_RAM) || \
#define IS_NVIC_VECTTAB(VECTTAB) (((VECTTAB) == NVIC_VectTab_CME_CODE) || \
((VECTTAB) == NVIC_VectTab_RAM) || \
((VECTTAB) == NVIC_VectTab_FLASH))
/**
* @}
@ -197,6 +199,20 @@ void NVIC_SystemLPConfig(uint8_t LowPowerMode, BOOL NewState);
*/
void GLB_MMAP(uint32_t from, uint32_t to, BOOL isIcacheOn);
/**
* @brief Convert the mapping destination address to source address
* @param[in] to address to be mapped to
* @retval uint32_t address to be mapped from
*/
uint32_t GLB_ConvertToMappingFromAddr(uint32_t to);
/**
* @brief Convert the mapping source address to destination address
* @param[in] from address to be mapped from
* @retval uint32_t address to be mapped to
*/
uint32_t GLB_ConvertToMappingToAddr(uint32_t from);
/**
* @brief Set NMI irq number, it should be one of @ref IRQn_Type.
* @Note You can assign any valid IRQn_Type to NMI. After that, you will enter NMI
@ -228,6 +244,30 @@ void GLB_SetNmiIrqNum(uint32_t irq);
*/
void GLB_SelectSysClkSource(uint8_t source);
/**
* @brief Simulate instruction 'STRB' or 'STRH' with 'BFI'
* @Note In M7, you have to write a register in 32-bit alignment,
* not in 8-bit or 16-bit.
* @param[in] addr register address to be written
* @param[in] value value to be written
* @param[in] lsb LSB in register to be written
* @param[in] len bit length to be written
* @retval None
*/
//#define aaaa(len) __asm("LDR len, 11")
#define CMEM7_BFI(addr, value, lsb, len) \
do { \
unsigned long tmp; \
unsigned long tmp1 = (unsigned long)addr; \
\
__asm("LDR tmp, [tmp1]\n" \
"BFI tmp, "#value", "#lsb", "#len" \n" \
"STR tmp, [tmp1]\n"); \
} while (0)
#ifdef __cplusplus
}
#endif

View File

@ -38,34 +38,34 @@
* @{
*/
#define RTC_Int_Second ((uint32_t)0x00000001)
#define RTC_Int_Microsecond ((uint32_t)0x00000002)
#define RTC_Int_Millsecond ((uint32_t)0x00000002)
#define RTC_Int_All ((uint32_t)0x00000003)
#define IS_RTC_INT(INT) (((INT) != 0) && (((INT) & ~RTC_Int_All) == 0))
/**
* @}
*/
/**
* @brief Enable or disable RTC interrupt.
* @param[in] Int interrupt mask bits, which can be the combination of @ref RTC_Int
* @param[in] Enable The bit indicates if specific interrupts are enable or not
* @retval None
*/
void RTC_EnableInt(uint32_t Int, BOOL Enable);
void RTC_ITConfig(uint32_t Int, BOOL Enable);
/**
* @brief Check specific interrupts are set or not
* @param[in] Int interrupt mask bits, which can be the combination of @ref RTC_Int
* @retval BOOL The bit indicates if specific interrupts are set or not
*/
BOOL RTC_GetIntStatus(uint32_t Int);
BOOL RTC_GetITStatus(uint32_t Int);
/**
* @brief Clear specific interrupts
* @param[in] Int interrupt mask bits, which can be the combination of @ref RTC_Int
* @retval None
*/
void RTC_ClearInt(uint32_t Int);
void RTC_ClearITPendingBit(uint32_t Int);
/**
* @brief Get seconds since power up
@ -75,11 +75,11 @@ void RTC_ClearInt(uint32_t Int);
uint32_t RTC_GetSecond(void);
/**
* @brief Get current micro-seconds
* @brief Get current millseconds
* @param None
* @retval uint32_t Current micro-seconds
* @retval uint32_t Current millseconds
*/
uint16_t RTC_GetMicroSecond(void);
uint16_t RTC_GetMillSecond(void);
#ifdef __cplusplus
}

View File

@ -56,14 +56,21 @@
* @}
*/
/**
* @brief Deinitializes the Watchdog peripheral registers to their default reset values.
* @param[in] None
* @retval None
*/
void WDG_DeInit(void);
/**
* @brief Watchdog initialization
* @note This function should be called at first before any other interfaces.
* @param[in] trigger Watchdog interrupt trigger mode, which is a value of @ref WDG_TRIGGER_MODE
* @param[in] ResetMicroSecond MicroSeconds lasts before global reset
* @param[in] ResetMillSecond MillSeconds lasts before global reset
* @retval None
*/
void WDG_Init(uint8_t trigger, uint16_t ResetMicroSecond);
void WDG_Init(uint8_t trigger, uint16_t ResetMillSecond);
/**
* @brief Enable or disable watchdog interrupt.
@ -71,28 +78,28 @@ void WDG_Init(uint8_t trigger, uint16_t ResetMicroSecond);
* @param[in] Enable The bit indicates if the specific interrupt are enable or not
* @retval None
*/
void WDG_EnableInt(uint8_t Int, BOOL Enable);
void WDG_ITConfig(uint8_t Int, BOOL Enable);
/**
* @brief Check the specific interrupt are set or not
* @param None
* @retval BOOL The bit indicates if the specific interrupt are set or not
*/
BOOL WDG_GetIntStatus(void);
BOOL WDG_GetITStatus(void);
/**
* @brief Clear the specific interrupt
* @param None
* @retval None
*/
void WDG_ClearInt(void);
void WDG_ClearITPendingBit(void);
/**
* @brief Enable or disable watchdog.
* @param[in] Enable The bit indicates if watchdog is enable or not
* @retval None
*/
void WDG_Enable(BOOL Enable);
void WDG_Cmd(BOOL Enable);
#ifdef __cplusplus

View File

@ -5,8 +5,8 @@
* @brief CMEM7 ethernet source file
*
*
* @version V1.0
* @date 3. September 2013
* @version V2.0
* @date 3. September 2014
*
* @note
*
@ -25,7 +25,7 @@
*/
#include "cmem7_eth.h"
#include "cmem7_misc.h"
typedef struct {
union {
@ -49,7 +49,7 @@ typedef struct {
uint32_t TCH : 1; /*!< Second Address Chained */
uint32_t : 4;
uint32_t TTSE : 1; /*!< enables IEEE1588 hardware timestamping in first segment */
uint32_t : 2;
uint32_t : 2;
uint32_t FS : 1; /*!< first segment flag */
uint32_t LS : 1; /*!< last segment flag */
uint32_t IC : 1; /*!< Interrupt on Completion */
@ -190,8 +190,9 @@ static void mac_SetConfig(ETH_InitTypeDef *init) {
ETH->CONFIG_b.IPC = init->ETH_ChecksumOffload;
ETH->CONFIG_b.DM = init->ETH_Duplex;
ETH->CONFIG_b.LM = FALSE;
ETH->MMC_RX_MASK = 0xFFFFFFFF;
ETH->MMC_TX_MASK = 0xFFFFFFFF;
ETH->MMCRIMR = 0xFFFFFFFF;
ETH->MMCTIMR = 0xFFFFFFFF;
ETH->MMCIRCOIM = 0xFFFFFFFF;
if (init->ETH_Speed == ETH_SPEED_10M) {
ETH->CONFIG_b.FES = ETH_EXACT_SPEED_10M_BPS;
@ -209,7 +210,7 @@ static void mac_SetConfig(ETH_InitTypeDef *init) {
ETH->CONFIG_b.JD = TRUE;
ETH->CONFIG_b.WD = TRUE;
ETH->CONFIG_b.TC = FALSE;
ETH->CONFIG_b.CST = FALSE;
ETH->CONFIG_b.CST = TRUE;
ETH->CONFIG_b.TWOKPE = FALSE;
ETH->CONFIG_b.SARC = ETH_SOURCE_ADDR_REPLACE;
}
@ -318,7 +319,7 @@ static void mac_SetFrameFilter(ETH_FrameFilter *filter) {
ETH->FF_b.VTFE = FALSE;
ETH->FF_b.IPFE = FALSE;
ETH->FF_b.DNTU = FALSE;
ETH->FF_b.RA = TRUE;
ETH->FF_b.RA = FALSE;//TRUE
// receive all
if (!filter) {
@ -339,14 +340,20 @@ static void mac_SetFrameFilter(ETH_FrameFilter *filter) {
// SA
if (filter->ETH_SourceFilterEnable) {
ETH->FF_b.RA = FALSE;
uint32_t value;
ETH->FF_b.RA = FALSE;
ETH->FF_b.SAF = TRUE;
ETH->FF_b.SAIF = filter->ETH_SourceDrop;
ETH->ADDR1_HIGH_b.AE = TRUE;
ETH->ADDR1_HIGH_b.SA = TRUE;
ETH->ADDR1_HIGH_b.ADDR =
ETH->ADDR1_HIGH_b.SA = TRUE;
ETH->ADDR1_HIGH_b.ADDR =
(filter->ETH_SourceMacAddr[5] << 8) | filter->ETH_SourceMacAddr[4];
ETH->ADDR1_LOW = (filter->ETH_SourceMacAddr[3] << 24) |
// value = (filter->ETH_SourceMacAddr[5] << 8) | filter->ETH_SourceMacAddr[4];
// CMEM7_BFI(&(ETH->ADDR1_HIGH), value, 0, 16);
ETH->ADDR1_LOW = (filter->ETH_SourceMacAddr[3] << 24) |
(filter->ETH_SourceMacAddr[2] << 16) |
(filter->ETH_SourceMacAddr[1] << 8) |
filter->ETH_SourceMacAddr[0];
@ -355,9 +362,9 @@ static void mac_SetFrameFilter(ETH_FrameFilter *filter) {
static void mac_setFlowControl(void) {
ETH->FC_b.FCB = FALSE;
ETH->FC_b.TFE = TRUE;
ETH->FC_b.RFE = TRUE;
ETH->FC_b.UP = TRUE;
ETH->FC_b.TFE = FALSE;//TRUE
ETH->FC_b.RFE = FALSE;//TRUE
ETH->FC_b.UP = FALSE;//TRUE
}
uint32_t ETH_PhyRead(uint32_t phyAddr, uint32_t phyReg) {
@ -381,27 +388,44 @@ void ETH_PhyWrite(uint32_t phyAddr, uint32_t phyReg, uint32_t data) {
while (ETH->GMII_ADDR_b.BUSY) ;
}
void ETH_StructInit(ETH_InitTypeDef* init)
{
init->ETH_Speed = ETH_SPEED_10M;
init->ETH_Duplex = ETH_DUPLEX_FULL;
init->ETH_JumboFrame = FALSE;
init->ETH_LinkUp = FALSE;
init->ETH_RxEn = TRUE;
init->ETH_TxEn = TRUE;
init->ETH_ChecksumOffload = FALSE;
init->ETH_Filter = 0;
init->ETH_MacAddr[0] = 0;
init->ETH_MacAddr[1] = 0;
init->ETH_MacAddr[2] = 0;
init->ETH_MacAddr[3] = 0;
init->ETH_MacAddr[4] = 0;
init->ETH_MacAddr[5] = 0;
}
BOOL ETH_Init(ETH_InitTypeDef *init) {
assert_param(init);
assert_param(IS_ETH_SPEED(init->ETH_Speed));
assert_param(IS_ETH_DUPLEX(init->ETH_Duplex));
assert_param(init);
assert_param(IS_ETH_SPEED(init->ETH_Speed));
assert_param(IS_ETH_DUPLEX(init->ETH_Duplex));
mac_SwReset();
mac_SetConfig(init);
mac_SetMacAddr(init->ETH_MacAddr);
mac_SwReset();
mac_SetConfig(init);
mac_SetMacAddr(init->ETH_MacAddr);
mac_SetBurst(ETH_BURST_MODE_MIXED, 3, 4);
mac_SetPriority(TRUE, 0);
mac_SetDescMode(TRUE, 0);
mac_SetOpertionMode();
mac_SetFrameFilter(init->ETH_Filter);
mac_setFlowControl();
mac_SetBurst(ETH_BURST_MODE_MIXED, 3, 4);
mac_SetPriority(TRUE, 0);
mac_SetDescMode(TRUE, 0);
mac_SetOpertionMode();
mac_SetFrameFilter(init->ETH_Filter);
mac_setFlowControl();
return TRUE;
return TRUE;
}
void ETH_EnableInt(uint32_t Int, BOOL enable) {
void ETH_ITConfig(uint32_t Int, BOOL enable) {
assert_param(IS_ETH_INT(Int));
if (enable) {
@ -426,7 +450,7 @@ void ETH_EnableInt(uint32_t Int, BOOL enable) {
}
}
}
BOOL ETH_GetIntStatus(uint32_t Int) {
BOOL ETH_GetITStatus(uint32_t Int) {
assert_param(IS_ETH_INT(Int));
Int &= ETH->INT_EN;
@ -436,8 +460,7 @@ BOOL ETH_GetIntStatus(uint32_t Int) {
return FALSE;
}
void ETH_ClearInt(uint32_t Int) {
void ETH_ClearITPendingBit(uint32_t Int) {
uint32_t sta;
assert_param(IS_ETH_INT(Int));
@ -450,15 +473,15 @@ void ETH_ClearInt(uint32_t Int) {
if (IS_ETH_INT_NORMAL(Int)) {
if (!IS_ETH_INT_NORMAL(sta)) {
// write 1 clear
ETH->STATUS_b.NIS = 1;
// write 1 clear NIS
ETH->STATUS = ETH_INT_NORMAL_SUMMARY;
}
}
if (IS_ETH_INT_ABNORMAL(Int)) {
if (!IS_ETH_INT_ABNORMAL(sta)) {
// write 1 clear
ETH->STATUS_b.AIS = 1;
// write 1 clear AIS
ETH->STATUS = ETH_INT_ABNORMAL_SUMMARY;
}
}
}
@ -491,12 +514,25 @@ BOOL ETH_SetTxDescRing(ETH_TX_DESC *ring) {
return FALSE;
}
/* If code mapping */
ring = (ETH_TX_DESC *)GLB_ConvertToMappingFromAddr((uint32_t)ring);
buf = ring;
do {
INNER_ETH_TX_DESC *desc = (INNER_ETH_TX_DESC *)buf;
uint8_t first = desc->TX_0.TX0_b.FS;
uint8_t last = desc->TX_0.TX0_b.LS;
// clear all bits
desc->TX_0.TX0 = 0;
desc->TX_0.TX0_b.FS = first;
desc->TX_0.TX0_b.LS = last;
desc->TX_0.TX0_b.TCH = TRUE;
desc->TX_0.TX0_b.IC = TRUE;
desc->TX_0.TX0_b.OWN = ETH_DESC_OWN_BY_SELF;
buf->bufAddr = GLB_ConvertToMappingFromAddr(buf->bufAddr);
buf->nextDescAddr = GLB_ConvertToMappingFromAddr(buf->nextDescAddr);
buf = (ETH_TX_DESC *)buf->nextDescAddr;
} while (buf != ring);
@ -553,6 +589,16 @@ void ETH_ReleaseTxDesc(ETH_TX_DESC *desc) {
inner->TX_0.TX0_b.OWN = ETH_DESC_OWN_BY_HW;
}
void ETH_SetTxDescBufAddr(ETH_TX_DESC *desc, uint32_t bufAddr) {
if (desc) {
desc->bufAddr = GLB_ConvertToMappingFromAddr(bufAddr);;
}
}
uint32_t ETH_GetTxDescBufAddr(ETH_TX_DESC *desc) {
return (desc ? GLB_ConvertToMappingToAddr(desc->bufAddr) : 0);
}
BOOL ETH_SetRxDescRing(ETH_RX_DESC *ring) {
ETH_RX_DESC *buf = ring;
@ -564,12 +610,17 @@ BOOL ETH_SetRxDescRing(ETH_RX_DESC *ring) {
return FALSE;
}
/* If code mapping */
ring = (ETH_RX_DESC *)GLB_ConvertToMappingFromAddr((uint32_t)ring);
buf = ring;
do {
INNER_ETH_RX_DESC *desc = (INNER_ETH_RX_DESC *)buf;
desc->RX_1.RX1_b.RCH = TRUE;
desc->RX_1.RX1_b.DIC = FALSE;
desc->RX_0.RX0_b.OWN = ETH_DESC_OWN_BY_HW;
buf->bufAddr = GLB_ConvertToMappingFromAddr(buf->bufAddr);
buf->nextDescAddr = GLB_ConvertToMappingFromAddr(buf->nextDescAddr);
buf = (ETH_RX_DESC *)buf->nextDescAddr;
} while (buf != ring);
@ -627,3 +678,15 @@ void ETH_ReleaseRxDesc(ETH_RX_DESC *desc) {
}
void ETH_SetRxDescBufAddr(ETH_RX_DESC *desc, uint32_t bufAddr) {
if (desc) {
desc->bufAddr = GLB_ConvertToMappingFromAddr(bufAddr);;
}
}
uint32_t ETH_GetRxDescBufAddr(ETH_RX_DESC *desc) {
return (desc ? GLB_ConvertToMappingToAddr(desc->bufAddr) : 0);
}

View File

@ -108,7 +108,8 @@ static uint8_t flash_ReadInnerStatusHigh() {
return (uint8_t)NOR_FLASH->DATA;
}
static void flash_WaitInWritting() {
//static void flash_WaitInWritting() {
void flash_WaitInWritting(void) {
FLASH_INNER_STATUS s;
while (NOR_FLASH->STATUS_b.BUSY);
@ -173,7 +174,8 @@ static void flash_RwReq(uint8_t cmd, uint32_t addr, uint16_t size) {
NOR_FLASH->TRIGGER_b.OP_START = TRUE;
}
static void flash_WaitReadFifoNotEmpty() {
//static void flash_WaitReadFifoNotEmpty() {
void flash_WaitReadFifoNotEmpty(void) {
while (NOR_FLASH->STATUS_b.RD_FIFO_EMPTY) {
if (wait) {
(*wait)();
@ -181,7 +183,8 @@ static void flash_WaitReadFifoNotEmpty() {
}
}
static uint16_t flash_ReadFifo(uint16_t size, uint8_t* data) {
//static uint16_t flash_ReadFifo(uint16_t size, uint8_t* data) {
uint16_t flash_ReadFifo(uint16_t size, uint8_t* data) {
uint16_t count = 0;
while (!NOR_FLASH->STATUS_b.RD_FIFO_EMPTY && size != 0) {

View File

@ -179,3 +179,78 @@ void GPIO_EnablePwm(uint8_t Channel, BOOL Enable) {
}
}
/**
xjf 20150324
**/
void GPIO_SetBits(uint32_t mask)
{
static uint32_t g_GPIO_OUT_UNMASK;
static uint32_t g_GPIO_OUT_DATA;
static uint32_t g_GPIO_OE;
g_GPIO_OUT_UNMASK = GPIO->GPIO_OUT_UNMASK ;
g_GPIO_OUT_DATA = GPIO->GPIO_OUT_DATA ;
g_GPIO_OE = GPIO->GPIO_OE ;
g_GPIO_OUT_UNMASK |=mask;
g_GPIO_OE |=mask;
g_GPIO_OUT_DATA |=mask;
GPIO->GPIO_OUT_UNMASK =g_GPIO_OUT_UNMASK ;
GPIO->GPIO_OUT_DATA =g_GPIO_OUT_DATA ;
GPIO->GPIO_OE =g_GPIO_OE ;
}
void GPIO_clrBits(uint32_t mask)
{
static uint32_t g_GPIO_OUT_UNMASK;
static uint32_t g_GPIO_OUT_DATA;
static uint32_t g_GPIO_OE;
g_GPIO_OUT_UNMASK = GPIO->GPIO_OUT_UNMASK ;
g_GPIO_OUT_DATA = GPIO->GPIO_OUT_DATA ;
g_GPIO_OE = GPIO->GPIO_OE ;
g_GPIO_OUT_UNMASK |=mask;
g_GPIO_OE |=mask;
g_GPIO_OUT_DATA &=(~ mask);
GPIO->GPIO_OUT_UNMASK =g_GPIO_OUT_UNMASK ;
GPIO->GPIO_OUT_DATA =g_GPIO_OUT_DATA ;
GPIO->GPIO_OE =g_GPIO_OE ;
}
uint32_t GPIO_getBits(uint32_t mask)
{
static uint32_t g_GPIO_OUT_UNMASK;
//static uint32_t g_GPIO_OUT_DATA;
static uint32_t g_GPIO_OE;
uint32_t get_delay = 0;
uint32_t saved_mask;
saved_mask=mask;
g_GPIO_OUT_UNMASK = GPIO->GPIO_OUT_UNMASK ;
g_GPIO_OE = GPIO->GPIO_OE ;
g_GPIO_OUT_UNMASK &=(~mask);
g_GPIO_OE &=(~mask);
GPIO->GPIO_OUT_UNMASK =g_GPIO_OUT_UNMASK ;
GPIO->GPIO_OE =g_GPIO_OE ;
for(get_delay=0;get_delay<100;get_delay++)
{
}
//get_delay=(GPIO->GPIO_IN)&saved_mask;
if(((GPIO->GPIO_IN)&saved_mask)==saved_mask)
{
return(1);
}
else
{
return(0);
}
}
/**
xjf 20150324
**/

View File

@ -92,8 +92,20 @@ void NVIC_SystemLPConfig(uint8_t LowPowerMode, BOOL NewState)
}
}
#define DEF_IBUS_OFFSET 0x1FFE0000
#define DEF_EXT_ADDR 0x08020000
static BOOL isMappingOn() {
/* If default values aren't changed */
if ((GLOBAL_CTRL->IBUSOFF == DEF_IBUS_OFFSET) &&
(GLOBAL_CTRL->EXTADDR == DEF_EXT_ADDR)) {
return FALSE;
}
return TRUE;
}
void GLB_MMAP(uint32_t from, uint32_t to, BOOL isIcacheOn) {
int n;
volatile int n;
GLOBAL_CTRL->IBUSOFF = GLOBAL_CTRL->DBUSOFF = (from - to);
GLOBAL_CTRL->EXTADDR = to;
@ -104,6 +116,38 @@ void GLB_MMAP(uint32_t from, uint32_t to, BOOL isIcacheOn) {
for (n = 0; n < 100; n++);
}
/*
* ------------------------------------------------------------------
* | 0 - 0x20000 | --> 0x20000000 | -> 0x40000000 | -> 0xFFFFFFFF |
* | code SRAM | map to region | data SRAM | map from region |
* ------------------------------------------------------------------
*/
#define MAPPING_FROM_REGION_START 0x40000000
#define MAPPING_TO_REGION_END 0x20000000
uint32_t GLB_ConvertToMappingFromAddr(uint32_t to) {
if (!isMappingOn()) {
return to;
}
if ((to > MAPPING_TO_REGION_END) || (to < GLOBAL_CTRL->EXTADDR)) {
return to;
}
return (to + GLOBAL_CTRL->IBUSOFF);
}
uint32_t GLB_ConvertToMappingToAddr(uint32_t from) {
if (!isMappingOn()) {
return from;
}
if (from < MAPPING_FROM_REGION_START) {
return from;
}
return (from - GLOBAL_CTRL->IBUSOFF);
}
void GLB_SetNmiIrqNum(uint32_t irq) {
GLOBAL_CTRL->NMI_SEL_b.NMI = irq;
}

View File

@ -28,7 +28,7 @@
#define SECONDS_IN_A_DAY (86400)
void RTC_EnableInt(uint32_t Int, BOOL Enable) {
void RTC_ITConfig(uint32_t Int, BOOL Enable) {
assert_param(IS_RTC_INT(Int));
if (Enable) {
@ -38,7 +38,7 @@ void RTC_EnableInt(uint32_t Int, BOOL Enable) {
}
}
BOOL RTC_GetIntStatus(uint32_t Int) {
BOOL RTC_GetITStatus(uint32_t Int) {
assert_param(IS_RTC_INT(Int));
if (0 != (RTC->INT_STATUS & Int)) {
@ -48,7 +48,7 @@ BOOL RTC_GetIntStatus(uint32_t Int) {
return FALSE;
}
void RTC_ClearInt(uint32_t Int) {
void RTC_ClearITPendingBit(uint32_t Int) {
assert_param(IS_RTC_INT(Int));
RTC->INT_STATUS = Int;
@ -58,6 +58,6 @@ uint32_t RTC_GetSecond() {
return RTC->SECOND;
}
uint16_t RTC_GetMicroSecond() {
return RTC->MICROSECOND_b.MS;
uint16_t RTC_GetMillSecond() {
return RTC->MILLSECOND_b.MS;
}

View File

@ -30,29 +30,34 @@ static uint32_t wdg_GetClock() {
return SYSTEM_CLOCK_FREQ / (1 << (GLOBAL_CTRL->CLK_SEL_0_b.WDG_CLK + 1));
}
void WDG_Init(uint8_t trigger, uint16_t ResetMicroSecond) {
void WDG_DeInit(void){
SOFT_RESET->SOFTRST_b.WDT_n = 0;
SOFT_RESET->SOFTRST_b.WDT_n = 1;
}
void WDG_Init(uint8_t trigger, uint16_t ResetMillSecond) {
assert_param(IS_WDG_TRIGGER_MODE(trigger));
WDG->INT_CTRL_b.TRIGGER_MODE = trigger;
WDG->LEN = ((uint64_t)wdg_GetClock()) * ResetMicroSecond / 1000;
WDG->LEN = ((uint64_t)wdg_GetClock()) * ResetMillSecond / 1000;
}
void WDG_EnableInt(uint8_t Int, BOOL Enable) {
void WDG_ITConfig(uint8_t Int, BOOL Enable) {
assert_param(IS_WDG_INT(Int));
WDG->CTRL_b.INT_LEN = Int;
WDG->INT_CTRL_b.MASK = !Enable;
}
BOOL WDG_GetIntStatus() {
BOOL WDG_GetITStatus() {
return (WDG->INT_STA_b.STA == 1) ? TRUE : FALSE;
}
void WDG_ClearInt() {
void WDG_ClearITPendingBit() {
WDG->INT_STA_b.STA = 1;
}
void WDG_Enable(BOOL Enable) {
void WDG_Cmd(BOOL Enable) {
WDG->CTRL_b.EN = Enable;
}

View File

@ -205,14 +205,14 @@ static rt_err_t rt_cme_eth_init(rt_device_t dev)
RxDescChainInit();
TxDescChainInit();
ETH_EnableInt(ETH_INT_BUS_FATAL_ERROR, TRUE);
ETH_ITConfig(ETH_INT_BUS_FATAL_ERROR, TRUE);
ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, TRUE);
ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, TRUE);
ETH_EnableInt(ETH_INT_RX_STOP, TRUE);
ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, TRUE);
ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, TRUE);
ETH_ITConfig(ETH_INT_RX_STOP, TRUE);
ETH_StartRx();
ETH_EnableInt(ETH_INT_TX_COMPLETE_FRAME, TRUE);
ETH_ITConfig(ETH_INT_TX_COMPLETE_FRAME, TRUE);
ETH_StartTx();
return RT_EOK;
@ -318,8 +318,8 @@ struct pbuf *rt_cme_eth_rx(rt_device_t dev)
desc = ETH_AcquireFreeRxDesc();
if(desc == RT_NULL)
{
ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, TRUE);
ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, TRUE);
ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, TRUE);
ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, TRUE);
ETH_ResumeRx();
goto _exit;
}
@ -414,28 +414,28 @@ void ETH_IRQHandler(void)
/* enter interrupt */
rt_interrupt_enter();
if (ETH_GetIntStatus(ETH_INT_TX_COMPLETE_FRAME))
if (ETH_GetITStatus(ETH_INT_TX_COMPLETE_FRAME))
{
rt_sem_release(&cme_eth_device.tx_buf_free);
ETH_ClearInt(ETH_INT_TX_COMPLETE_FRAME);
ETH_ClearITPendingBit(ETH_INT_TX_COMPLETE_FRAME);
}
if (ETH_GetIntStatus(ETH_INT_RX_STOP))
if (ETH_GetITStatus(ETH_INT_RX_STOP))
{
CME_ETH_PRINTF("ETH_INT_RX_STOP\n");
ETH_ClearInt(ETH_INT_RX_STOP);
ETH_ClearITPendingBit(ETH_INT_RX_STOP);
}
if ((ETH_GetIntStatus(ETH_INT_RX_BUF_UNAVAI)) ||
(ETH_GetIntStatus(ETH_INT_RX_COMPLETE_FRAME)))
if ((ETH_GetITStatus(ETH_INT_RX_BUF_UNAVAI)) ||
(ETH_GetITStatus(ETH_INT_RX_COMPLETE_FRAME)))
{
/* a frame has been received */
eth_device_ready(&(cme_eth_device.parent));
ETH_EnableInt(ETH_INT_RX_COMPLETE_FRAME, FALSE);
ETH_EnableInt(ETH_INT_RX_BUF_UNAVAI, FALSE);
ETH_ClearInt(ETH_INT_RX_BUF_UNAVAI);
ETH_ClearInt(ETH_INT_RX_COMPLETE_FRAME);
ETH_ITConfig(ETH_INT_RX_COMPLETE_FRAME, FALSE);
ETH_ITConfig(ETH_INT_RX_BUF_UNAVAI, FALSE);
ETH_ClearITPendingBit(ETH_INT_RX_BUF_UNAVAI);
ETH_ClearITPendingBit(ETH_INT_RX_COMPLETE_FRAME);
}
/* leave interrupt */

File diff suppressed because it is too large Load Diff

View File

@ -136,10 +136,9 @@
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>-1</TargetSelection>
<TargetSelection>15</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
@ -165,7 +164,6 @@
<Capability>1</Capability>
<DriverSelection>4097</DriverSelection>
</Flash1>
<bUseTDR>0</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
@ -351,7 +349,7 @@
<MiscControls></MiscControls>
<Define>RT_USING_ARM_LIBC</Define>
<Undefine></Undefine>
<IncludePath>applications;.;CMSIS\CME_M7;..\..\components\CMSIS\Include;drivers;StdPeriph_Driver\inc;..\..\include;..\..\libcpu\arm\cortex-m3;..\..\libcpu\arm\common;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\init;..\..\components\libc\armlibc;..\..\components\net\lwip-1.4.1\src;..\..\components\net\lwip-1.4.1\src\include;..\..\components\net\lwip-1.4.1\src\include\ipv4;..\..\components\net\lwip-1.4.1\src\arch\include;..\..\components\net\lwip-1.4.1\src\include\netif</IncludePath>
<IncludePath>StdPeriph_Driver/inc;applications;.;drivers;CMSIS/CME_M7;../../components/CMSIS/Include;../../include;../../libcpu/arm/cortex-m3;../../libcpu/arm/common;../../components/libc/armlibc;../../components/drivers/include;../../components/drivers/include;../../components/finsh;../../components/net/lwip-1.4.1/src;../../components/net/lwip-1.4.1/src/include;../../components/net/lwip-1.4.1/src/include/ipv4;../../components/net/lwip-1.4.1/src/arch/include;../../components/net/lwip-1.4.1/src/include/netif</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -382,45 +380,120 @@
<ScatterFile>CME_M7.sct</ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* --keep __rt_init* </Misc>
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>StdPeriph_Driver</GroupName>
<Files>
<File>
<FileName>cmem7_adc.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_adc.c</FilePath>
</File>
<File>
<FileName>cmem7_aes.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_aes.c</FilePath>
</File>
<File>
<FileName>cmem7_can.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_can.c</FilePath>
</File>
<File>
<FileName>cmem7_ddr.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_ddr.c</FilePath>
</File>
<File>
<FileName>cmem7_dma.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_dma.c</FilePath>
</File>
<File>
<FileName>cmem7_efuse.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_efuse.c</FilePath>
</File>
<File>
<FileName>cmem7_eth.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_eth.c</FilePath>
</File>
<File>
<FileName>cmem7_flash.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_flash.c</FilePath>
</File>
<File>
<FileName>cmem7_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_gpio.c</FilePath>
</File>
<File>
<FileName>cmem7_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_i2c.c</FilePath>
</File>
<File>
<FileName>cmem7_misc.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_misc.c</FilePath>
</File>
<File>
<FileName>cmem7_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_rtc.c</FilePath>
</File>
<File>
<FileName>cmem7_spi.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_spi.c</FilePath>
</File>
<File>
<FileName>cmem7_tim.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_tim.c</FilePath>
</File>
<File>
<FileName>cmem7_uart.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_uart.c</FilePath>
</File>
<File>
<FileName>cmem7_usb.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_usb.c</FilePath>
</File>
<File>
<FileName>cmem7_wdg.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver/src/cmem7_wdg.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>applications\led.c</FilePath>
<FilePath>applications/led.c</FilePath>
</File>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_cmem7.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS\CME_M7\system_cmem7.c</FilePath>
</File>
<File>
<FileName>startup_cmem7.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS\CME_M7\startup\arm\startup_cmem7.s</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -430,112 +503,37 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\uart.c</FilePath>
<FilePath>drivers/uart.c</FilePath>
</File>
<File>
<FileName>emac.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\emac.c</FilePath>
<FilePath>drivers/emac.c</FilePath>
</File>
<File>
<FileName>app_phy.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\app_phy.c</FilePath>
<FilePath>drivers/app_phy.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>StdPeriph_Driver</GroupName>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>cmem7_adc.c</FileName>
<FileName>system_cmem7.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_adc.c</FilePath>
<FilePath>CMSIS/CME_M7/system_cmem7.c</FilePath>
</File>
<File>
<FileName>cmem7_aes.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_aes.c</FilePath>
</File>
<File>
<FileName>cmem7_can.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_can.c</FilePath>
</File>
<File>
<FileName>cmem7_ddr.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_ddr.c</FilePath>
</File>
<File>
<FileName>cmem7_dma.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_dma.c</FilePath>
</File>
<File>
<FileName>cmem7_efuse.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_efuse.c</FilePath>
</File>
<File>
<FileName>cmem7_eth.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_eth.c</FilePath>
</File>
<File>
<FileName>cmem7_flash.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_flash.c</FilePath>
</File>
<File>
<FileName>cmem7_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_gpio.c</FilePath>
</File>
<File>
<FileName>cmem7_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_i2c.c</FilePath>
</File>
<File>
<FileName>cmem7_misc.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_misc.c</FilePath>
</File>
<File>
<FileName>cmem7_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_rtc.c</FilePath>
</File>
<File>
<FileName>cmem7_spi.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_spi.c</FilePath>
</File>
<File>
<FileName>cmem7_tim.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_tim.c</FilePath>
</File>
<File>
<FileName>cmem7_uart.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_uart.c</FilePath>
</File>
<File>
<FileName>cmem7_usb.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_usb.c</FilePath>
</File>
<File>
<FileName>cmem7_wdg.c</FileName>
<FileType>1</FileType>
<FilePath>StdPeriph_Driver\src\cmem7_wdg.c</FilePath>
<FileName>startup_cmem7.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS/CME_M7/startup/arm/startup_cmem7.s</FilePath>
</File>
</Files>
</Group>
@ -545,62 +543,67 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -610,157 +613,27 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/cpuport.c</FilePath>
</File>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/context_rvds.S</FilePath>
</File>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\serial\serial.c</FilePath>
</File>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\completion.c</FilePath>
</File>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\dataqueue.c</FilePath>
</File>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\pipe.c</FilePath>
</File>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\portal.c</FilePath>
</File>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\ringbuffer.c</FilePath>
</File>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
</File>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
</File>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>msh_cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\msh_cmd.c</FilePath>
</File>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\msh.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Components</GroupName>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\init\components.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
@ -770,12 +643,132 @@
<File>
<FileName>mem_std.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\armlibc\mem_std.c</FilePath>
<FilePath>../../components/libc/armlibc/mem_std.c</FilePath>
</File>
<File>
<FileName>stubs.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\armlibc\stubs.c</FilePath>
<FilePath>../../components/libc/armlibc/stubs.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
<File>
<FileName>msh_cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/msh_cmd.c</FilePath>
</File>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/msh.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
@ -785,177 +778,177 @@
<File>
<FileName>api_lib.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\api_lib.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_lib.c</FilePath>
</File>
<File>
<FileName>api_msg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\api_msg.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_msg.c</FilePath>
</File>
<File>
<FileName>err.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\err.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/err.c</FilePath>
</File>
<File>
<FileName>netbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\netbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netbuf.c</FilePath>
</File>
<File>
<FileName>netdb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\netdb.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netdb.c</FilePath>
</File>
<File>
<FileName>netifapi.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\netifapi.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netifapi.c</FilePath>
</File>
<File>
<FileName>sockets.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\sockets.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/sockets.c</FilePath>
</File>
<File>
<FileName>tcpip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\api\tcpip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/tcpip.c</FilePath>
</File>
<File>
<FileName>sys_arch.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\arch\sys_arch.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/arch/sys_arch.c</FilePath>
</File>
<File>
<FileName>def.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\def.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/def.c</FilePath>
</File>
<File>
<FileName>dhcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\dhcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dhcp.c</FilePath>
</File>
<File>
<FileName>dns.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\dns.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dns.c</FilePath>
</File>
<File>
<FileName>init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\init.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/init.c</FilePath>
</File>
<File>
<FileName>memp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\memp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/memp.c</FilePath>
</File>
<File>
<FileName>netif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\netif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/netif.c</FilePath>
</File>
<File>
<FileName>pbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\pbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/pbuf.c</FilePath>
</File>
<File>
<FileName>raw.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\raw.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/raw.c</FilePath>
</File>
<File>
<FileName>stats.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\stats.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/stats.c</FilePath>
</File>
<File>
<FileName>sys.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\sys.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/sys.c</FilePath>
</File>
<File>
<FileName>tcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\tcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp.c</FilePath>
</File>
<File>
<FileName>tcp_in.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\tcp_in.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_in.c</FilePath>
</File>
<File>
<FileName>tcp_out.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\tcp_out.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_out.c</FilePath>
</File>
<File>
<FileName>timers.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\timers.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/timers.c</FilePath>
</File>
<File>
<FileName>udp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\udp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/udp.c</FilePath>
</File>
<File>
<FileName>autoip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\autoip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/autoip.c</FilePath>
</File>
<File>
<FileName>icmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\icmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/icmp.c</FilePath>
</File>
<File>
<FileName>igmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\igmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/igmp.c</FilePath>
</File>
<File>
<FileName>inet.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\inet.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet.c</FilePath>
</File>
<File>
<FileName>inet_chksum.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\inet_chksum.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet_chksum.c</FilePath>
</File>
<File>
<FileName>ip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\ip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip.c</FilePath>
</File>
<File>
<FileName>ip_addr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_addr.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_addr.c</FilePath>
</File>
<File>
<FileName>ip_frag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_frag.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_frag.c</FilePath>
</File>
<File>
<FileName>etharp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\netif\etharp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/etharp.c</FilePath>
</File>
<File>
<FileName>ethernetif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\netif\ethernetif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/ethernetif.c</FilePath>
</File>
<File>
<FileName>slipif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-1.4.1\src\netif\slipif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/slipif.c</FilePath>
</File>
</Files>
</Group>

View File

@ -24,7 +24,7 @@ if os.getenv('RTT_EXEC_PATH'):
if os.getenv('RTT_ROOT'):
RTT_ROOT = os.getenv('RTT_ROOT')
else:
RTT_ROOT = os.path.normpath(os.getcwd())
RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
BUILD = 'debug'

930
bsp/asm9260t/project.uvproj Normal file
View File

@ -0,0 +1,930 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>rtthread</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<TargetCommonOption>
<Device>AT91SAM9260</Device>
<Vendor>Atmel</Vendor>
<Cpu>IRAM(0x200000-0x200FFF) IRAM2(0x300000-0x300FFF) IROM(0x100000-0x107FFF) CLOCK(18432000) CPUTYPE(ARM926EJ-S)</Cpu>
<FlashUtilSpec />
<StartupFile>"STARTUP\Atmel\SAM9260.s" ("Atmel AT91SAM9260 Startup Code")</StartupFile>
<FlashDriverDll>UL2ARM(-UV2077N9E -O47 -S0 -C0 -N00("ARM926EJ-S Core") -D00(0792603F) -L00(4) -FO7 -FD300000 -FC1000 -FN1 -FF0AT91SAM9_DF_P1056_CS1 -FS020000000 -FL083BE00)</FlashDriverDll>
<DeviceId>4210</DeviceId>
<RegisterFile>AT91SAM9260.H</RegisterFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>Atmel\SAM9260\</RegisterFilePath>
<DBRegisterFilePath>Atmel\SAM9260\</DBRegisterFilePath>
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\Objects\</OutputDirectory>
<OutputName>template</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\Listings\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument />
<IncludeLibraryModules />
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARM.DLL</SimDllName>
<SimDllArguments>-cAT91SAM9260</SimDllArguments>
<SimDlgDll>DARMATS9.DLL</SimDlgDll>
<SimDlgDllArguments>-p91SAM9260</SimDlgDllArguments>
<TargetDllName>SARM.DLL</TargetDllName>
<TargetDllArguments />
<TargetDlgDll>TARMATS9.DLL</TargetDlgDll>
<TargetDlgDllArguments>-p91SAM9260</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
<RestoreSysVw>1</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>0</LoadApplicationAtStartup>
<RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>5</TargetSelection>
<SimDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile>.\jlink\at91sam9260.ini</InitializationFile>
<Driver>Segger\JLTAgdi.dll</Driver>
</TargetDlls>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4096</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2ARM.DLL</Flash2>
<Flash3>"" ()</Flash3>
<Flash4>.\jlink\at91sam9260.ini</Flash4>
<pFcarmOut />
<pFcarmGrp />
<pFcArmRoot />
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>ARM926EJ-S</AdsCpuType>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
<hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<RoSelD>3</RoSelD>
<RwSelD>3</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>1</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>0</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>1</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>0</Im1Chk>
<Im2Chk>0</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x200000</StartAddress>
<Size>0x1000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x100000</StartAddress>
<Size>0x8000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x800000</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x100000</StartAddress>
<Size>0x8000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x20800000</StartAddress>
<Size>0x1800000</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x200000</StartAddress>
<Size>0x1000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x300000</StartAddress>
<Size>0x1000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>0</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>2</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls>
<MiscControls />
<Define>RT_USING_ARM_LIBC</Define>
<Undefine />
<IncludePath>applications;.;drivers;platform;../../include;../../libcpu/arm/arm926;../../libcpu/arm/common;../../components/pthreads;../../components/libc/armlibc;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
<umfTarg>0</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x20000000</TextAddressRange>
<DataAddressRange>0x20800000</DataAddressRange>
<pXoBase />
<ScatterFile>.\at91sam9260_ram.scat</ScatterFile>
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/led.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>platform</GroupName>
<Files>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>platform/gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>interrupt.c</FileName>
<FileType>1</FileType>
<FilePath>platform/interrupt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>reset.c</FileName>
<FileType>1</FileType>
<FilePath>platform/reset.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>rt_low_level_init.c</FileName>
<FileType>1</FileType>
<FilePath>platform/rt_low_level_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_clock.c</FileName>
<FileType>1</FileType>
<FilePath>platform/system_clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer0.c</FileName>
<FileType>1</FileType>
<FilePath>platform/timer0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>platform/uart.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Kernel</GroupName>
<Files>
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>slab.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/slab.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>ARM926</GroupName>
<Files>
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/arm926/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mmu.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/arm926/mmu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stack.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/arm926/stack.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>trap.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/arm926/trap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>../../libcpu/arm/arm926/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>start_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>../../libcpu/arm/arm926/start_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>pthreads</GroupName>
<Files>
<File>
<FileName>clock_time.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/clock_time.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/mqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_attr.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_attr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_barrier.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_barrier.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_cond.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_cond.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_mutex.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_mutex.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_rwlock.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_rwlock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_spin.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_spin.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pthread_tls.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/pthread_tls.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sched.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/sched.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>semaphore.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/pthreads/semaphore.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>libc</GroupName>
<Files>
<File>
<FileName>mem_std.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/libc/armlibc/mem_std.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stubs.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/libc/armlibc/stubs.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c_core.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/i2c/i2c_core.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c_dev.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/i2c/i2c_dev.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c-bit-ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/i2c/i2c-bit-ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -354,7 +354,7 @@
<MiscControls />
<Define />
<Undefine />
<IncludePath>.;..\..\components\drivers\include;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;applications;board;device;device\MK64F12</IncludePath>
<IncludePath>board;applications;.;device;device/MK64F12;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -385,51 +385,51 @@
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Board</GroupName>
<Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>board\board.c</FilePath>
<FilePath>board/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_uart.c</FileName>
<FileType>1</FileType>
<FilePath>board\drv_uart.c</FilePath>
<FilePath>board/drv_uart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>board\led.c</FilePath>
<FilePath>board/led.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -439,14 +439,14 @@
<File>
<FileName>system_MK64F12.c</FileName>
<FileType>1</FileType>
<FilePath>device\MK64F12\system_MK64F12.c</FilePath>
<FilePath>device/MK64F12/system_MK64F12.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_MK64F12.s</FileName>
<FileType>2</FileType>
<FilePath>device\TOOLCHAIN_ARM_STD\startup_MK64F12.s</FilePath>
<FilePath>device/TOOLCHAIN_ARM_STD/startup_MK64F12.s</FilePath>
</File>
</Files>
</Group>
@ -456,84 +456,91 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -543,35 +550,35 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m4/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m4/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
@ -581,42 +588,49 @@
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\serial\serial.c</FilePath>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\completion.c</FilePath>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\dataqueue.c</FilePath>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\pipe.c</FilePath>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\portal.c</FilePath>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\ringbuffer.c</FilePath>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
@ -626,91 +640,91 @@
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>

View File

@ -343,7 +343,7 @@
<MiscControls />
<Define>PART_LM4F232H5QD</Define>
<Undefine />
<IncludePath>.;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;Libraries;applications;drivers</IncludePath>
<IncludePath>Libraries;applications;.;drivers;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -373,27 +373,240 @@
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Libraries</GroupName>
<Files>
<File>
<FileName>adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>can.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>comp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/comp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/cpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>eeprom.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/eeprom.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>epi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/epi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ethernet.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/ethernet.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>fan.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/fan.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>fpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/fpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>hibernate.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/hibernate.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2s.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/i2s.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>interrupt.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/interrupt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/lpc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/mpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>peci.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/peci.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pwm.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/pwm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>qei.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/qei.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ssi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/ssi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sysctl.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/sysctl.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sysexc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/sysexc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>systick.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/systick.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/timer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/uart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>udma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/udma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>usb.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>watchdog.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/driverlib/watchdog.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>start_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>Libraries/startup/arm/start_rvds.S</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -403,227 +616,14 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\serial.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Libraries</GroupName>
<Files>
<File>
<FileName>adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>can.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>comp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\comp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\cpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>eeprom.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\eeprom.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>epi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\epi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ethernet.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\ethernet.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>fan.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\fan.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>fpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\fpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>hibernate.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\hibernate.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2s.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\i2s.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>interrupt.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\interrupt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\lpc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mpu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\mpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>peci.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\peci.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pwm.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\pwm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>qei.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\qei.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ssi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\ssi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sysctl.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\sysctl.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sysexc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\sysexc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>systick.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\systick.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\timer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\uart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>udma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\udma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>usb.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\usb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>watchdog.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\driverlib\watchdog.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>start_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>Libraries\startup\arm\start_rvds.S</FilePath>
<FilePath>drivers/serial.c</FilePath>
</File>
</Files>
</Group>
@ -633,91 +633,91 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memheap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\memheap.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>src_timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -727,129 +727,129 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m4\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m4/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m4\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m4/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>RT-Thread LPC17xx</TargetName>
@ -15,25 +12,25 @@
<Device>LPC1768</Device>
<Vendor>NXP (founded by Philips)</Vendor>
<Cpu>IRAM(0x10000000-0x10007FFF) IRAM2(0x20000000-0x20007FFF) IROM(0-0x7FFFF) CLOCK(12000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec />
<StartupFile>"STARTUP\NXP\startup_LPC17xx.s" ("NXP LPC17xx Startup Code")</StartupFile>
<FlashDriverDll>UL2CM3(-O463 -S0 -C0 -FO7 -FD10000000 -FC800 -FN1 -FF0LPC_IAP_256 -FS00 -FL040000)</FlashDriverDll>
<DeviceId>4868</DeviceId>
<RegisterFile>LPC17xx.H</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile></SFDFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>NXP\</RegisterFilePath>
<DBRegisterFilePath>NXP\</DBRegisterFilePath>
<TargetStatus>
@ -57,31 +54,29 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -95,8 +90,8 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
@ -117,7 +112,7 @@
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<UseSimulator>1</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
@ -128,9 +123,9 @@
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<UseTarget>0</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
@ -138,20 +133,20 @@
<RestoreToolbox>1</RestoreToolbox>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>7</TargetSelection>
<TargetSelection>5</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption>
@ -166,7 +161,7 @@
</Flash1>
<Flash2>Segger\JL2CM3.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -198,7 +193,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -329,7 +324,7 @@
<Size>0x8000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -345,10 +340,10 @@
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\CMSIS\Include;..\..\components\finsh;..\..\components\init;..\..\components\net\lwip\src;..\..\components\net\lwip\src\arch\include;..\..\components\net\lwip\src\include;..\..\components\net\lwip\src\include\ipv4;..\..\components\net\lwip\src\include\netif;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;CMSIS\CM3\DeviceSupport\NXP\LPC17xx;applications;drivers</IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath>applications;.;drivers;CMSIS/CM3/DeviceSupport/NXP/LPC17xx;../../components/CMSIS/Include;../../include;../../libcpu/arm/cortex-m3;../../libcpu/arm/common;../../components/finsh;../../components/net/lwip-1.4.1/src;../../components/net/lwip-1.4.1/src/include;../../components/net/lwip-1.4.1/src/include/ipv4;../../components/net/lwip-1.4.1/src/arch/include;../../components/net/lwip-1.4.1/src/include/netif</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -360,10 +355,10 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -375,12 +370,12 @@
<useFile>0</useFile>
<TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x10000000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
@ -391,32 +386,21 @@
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>platform.c</FileName>
<FileType>1</FileType>
<FilePath>applications\platform.c</FilePath>
<FilePath>applications/platform.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_LPC17xx.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS\CM3\DeviceSupport\NXP\LPC17xx\system_LPC17xx.c</FilePath>
</File>
<File>
<FileName>startup_LPC17xx.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS\CM3\DeviceSupport\NXP\LPC17xx\startup\arm\startup_LPC17xx.s</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -426,27 +410,52 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>emac.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\emac.c</FilePath>
<FilePath>drivers/emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\led.c</FilePath>
<FilePath>drivers/led.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>spi.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\spi.c</FilePath>
<FilePath>drivers/spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\uart.c</FilePath>
<FilePath>drivers/uart.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_LPC17xx.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS/CM3/DeviceSupport/NXP/LPC17xx/system_LPC17xx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_LPC17xx.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS/CM3/DeviceSupport/NXP/LPC17xx/startup/arm/startup_LPC17xx.s</FilePath>
</File>
</Files>
</Group>
@ -456,67 +465,98 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memheap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\memheap.c</FilePath>
<FilePath>../../src/memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -526,107 +566,129 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Components</GroupName>
<Files>
<File>
<FileName>components.c</FileName>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\init\components.c</FilePath>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
@ -636,182 +698,249 @@
<File>
<FileName>api_lib.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\api_lib.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_lib.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>api_msg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\api_msg.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_msg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>err.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\err.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/err.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netbuf.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netdb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netdb.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netdb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netifapi.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netifapi.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netifapi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sockets.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\sockets.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/sockets.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcpip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\tcpip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/tcpip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sys_arch.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\arch\sys_arch.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/arch/sys_arch.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>def.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\def.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/def.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dhcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\dhcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dhcp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dns.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\dns.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dns.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\init.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\memp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/memp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\netif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/netif.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\pbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/pbuf.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>raw.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\raw.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/raw.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stats.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\stats.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/stats.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sys.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\sys.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/sys.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp_in.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp_in.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_in.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp_out.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp_out.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_out.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timers.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\timers.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/timers.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>udp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\udp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/udp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>autoip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\autoip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/autoip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>icmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\icmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/icmp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>igmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\igmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/igmp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>inet.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\inet.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>inet_chksum.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\inet_chksum.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet_chksum.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip_addr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip_addr.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_addr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip_frag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip_frag.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_frag.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>etharp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\etharp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/etharp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ethernetif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\ethernetif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/ethernetif.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>slipif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\slipif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/slipif.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>RT-Thread LPC17xx</TargetName>
@ -15,25 +12,25 @@
<Device>LPC1788</Device>
<Vendor>NXP (founded by Philips)</Vendor>
<Cpu>IRAM(0x10000000-0x1000FFFF) IRAM2(0x20000000-0x20007FFF) IROM(0-0x7FFFF) CLOCK(12000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec />
<StartupFile>"STARTUP\NXP\LPC177x_8x\startup_LPC177x_8x.s" ("NXP LPC177x_8x Startup Code")</StartupFile>
<FlashDriverDll>UL2CM3(-O463 -S0 -C0 -FO7 -FD10000000 -FC800 -FN1 -FF0LPC_IAP_512 -FS00 -FL080000)</FlashDriverDll>
<DeviceId>5325</DeviceId>
<RegisterFile>LPC177x_8x.H</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile></SFDFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>NXP\LPC177x_8x\</RegisterFilePath>
<DBRegisterFilePath>NXP\LPC177x_8x\</DBRegisterFilePath>
<TargetStatus>
@ -57,31 +54,29 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -95,8 +90,8 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
@ -136,23 +131,22 @@
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>7</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption>
@ -167,7 +161,7 @@
</Flash1>
<Flash2>Segger\JL2CM3.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -199,7 +193,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -330,7 +324,7 @@
<Size>0x8000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -345,12 +339,11 @@
<Rwpi>0</Rwpi>
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;CMSIS\CM3\CoreSupport;CMSIS\CM3\DeviceSupport\NXP\LPC177x_8x;applications;drivers</IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath>applications;.;drivers;CMSIS/CM3/CoreSupport;CMSIS/CM3/DeviceSupport/NXP/LPC177x_8x;../../include;../../libcpu/arm/cortex-m3;../../libcpu/arm/common;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -361,12 +354,11 @@
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -378,12 +370,12 @@
<useFile>0</useFile>
<TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x10000000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
@ -394,32 +386,14 @@
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>core_cm3.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS\CM3\CoreSupport\core_cm3.c</FilePath>
</File>
<File>
<FileName>system_LPC177x_8x.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS\CM3\DeviceSupport\NXP\LPC177x_8x\system_LPC177x_8x.c</FilePath>
</File>
<File>
<FileName>startup_LPC177x_8x.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS\CM3\DeviceSupport\NXP\LPC177x_8x\startup\arm\startup_LPC177x_8x.s</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -429,47 +403,87 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>drv_glcd.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\drv_glcd.c</FilePath>
<FilePath>drivers/drv_glcd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc177x_8x_clkpwr.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\lpc177x_8x_clkpwr.c</FilePath>
<FilePath>drivers/lpc177x_8x_clkpwr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc177x_8x_emc.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\lpc177x_8x_emc.c</FilePath>
<FilePath>drivers/lpc177x_8x_emc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc177x_8x_pinsel.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\lpc177x_8x_pinsel.c</FilePath>
<FilePath>drivers/lpc177x_8x_pinsel.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc177x_8x_uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\lpc177x_8x_uart.c</FilePath>
<FilePath>drivers/lpc177x_8x_uart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>lpc17xx_lcd.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\lpc17xx_lcd.c</FilePath>
<FilePath>drivers/lpc17xx_lcd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sdram.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\sdram.c</FilePath>
<FilePath>drivers/sdram.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\uart.c</FilePath>
<FilePath>drivers/uart.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>core_cm3.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS/CM3/CoreSupport/core_cm3.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>system_LPC177x_8x.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS/CM3/DeviceSupport/NXP/LPC177x_8x/system_LPC177x_8x.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_LPC177x_8x.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS/CM3/DeviceSupport/NXP/LPC177x_8x/startup/arm/startup_LPC177x_8x.s</FilePath>
</File>
</Files>
</Group>
@ -479,67 +493,98 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memheap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\memheap.c</FilePath>
<FilePath>../../src/memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -549,112 +594,133 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\msh.c</FilePath>
</File>
<File>
<FileName>msh_cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\msh_cmd.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>RT-Thread LPC2478</TargetName>
@ -20,20 +17,21 @@
<FlashDriverDll>UL2ARM(-U268761108 -O7 -S0 -C0 -FO15 -FD40000000 -FC800 -FN1 -FF0LPC_IAP2_512 -FS00 -FL07E000)</FlashDriverDll>
<DeviceId>4307</DeviceId>
<RegisterFile>LPC23xx.H</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile></SFDFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>Philips\</RegisterFilePath>
<DBRegisterFilePath>Philips\</DBRegisterFilePath>
<TargetStatus>
@ -43,43 +41,45 @@
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\obj\</OutputDirectory>
<OutputDirectory>.\build\</OutputDirectory>
<OutputName>rtthread-lpc</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\obj\</ListingPath>
<ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -93,8 +93,9 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARM.DLL</SimDllName>
@ -102,7 +103,7 @@
<SimDlgDll>DARMP.DLL</SimDlgDll>
<SimDlgDllArguments>-pLPC2478</SimDlgDllArguments>
<TargetDllName>SARM.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDllArguments />
<TargetDlgDll>TARMP.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pLPC2478</TargetDlgDllArguments>
</DllOption>
@ -128,28 +129,29 @@
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>0</RunToMain>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>7</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption>
@ -162,9 +164,14 @@
<Capability>1</Capability>
<DriverSelection>4096</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2ARM.DLL</Flash2>
<Flash3>"LPC210x_ISP.EXE" ("#H" ^X $D COM1: 38400 1)</Flash3>
<Flash4></Flash4>
<Flash4 />
<pFcarmOut />
<pFcarmGrp />
<pFcArmRoot />
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -196,7 +203,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>ARM7TDMI</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -327,7 +334,7 @@
<Size>0x4000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -342,11 +349,12 @@
<Rwpi>0</Rwpi>
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\lpc24xx;applications;drivers</IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath>applications;.;drivers;../../include;../../libcpu/arm/lpc24xx;../../libcpu/arm/common;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -357,11 +365,12 @@
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -373,12 +382,12 @@
<useFile>0</useFile>
<TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x10000000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
@ -389,12 +398,14 @@
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -404,12 +415,14 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\serial.c</FilePath>
<FilePath>drivers/serial.c</FilePath>
</File>
</Files>
</Group>
@ -419,67 +432,91 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
</File>
<File>
<FileName>memheap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\memheap.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -489,122 +526,161 @@
<File>
<FileName>cpu.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\cpu.c</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/cpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>interrupt.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\interrupt.c</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/interrupt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stack.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\stack.c</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/stack.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>trap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\trap.c</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/trap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>start_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\lpc24xx\start_rvds.S</FilePath>
<FilePath>../../libcpu/arm/lpc24xx/start_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

1031
bsp/lpc408x/project.uvproj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>rtthread-fm3</TargetName>
@ -15,25 +12,25 @@
<Device>MB9BF506R</Device>
<Vendor>Fujitsu Semiconductors</Vendor>
<Cpu>IRAM(0x20000000-0x20007FFF) IRAM2(0x1FFF8000-0x1FFFFFFF) IROM(0x00000000-0x0007FFFF) CLOCK(4000000) CPUTYPE("Cortex-M3")</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec />
<StartupFile>"Startup\Fujitsu\MB9B500\startup_MB9BF50x.s" ("Fujitsu MB9BF50x Startup Code")</StartupFile>
<FlashDriverDll>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0MB9BFx06_512 -FS00 -FL080000)</FlashDriverDll>
<DeviceId>5216</DeviceId>
<RegisterFile>MB9BF506R.h</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile>SFD\Fujitsu\MB9B500\MB9BF506R.SFR</SFDFile>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>Fujitsu\MB9B500\</RegisterFilePath>
<DBRegisterFilePath>Fujitsu\MB9B500\</DBRegisterFilePath>
<TargetStatus>
@ -57,31 +54,29 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -95,8 +90,8 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
@ -130,29 +125,28 @@
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RunToMain>0</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>7</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption>
@ -167,7 +161,7 @@
</Flash1>
<Flash2>Segger\JL2CM3.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -199,7 +193,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -330,7 +324,7 @@
<Size>0x8000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -345,12 +339,11 @@
<Rwpi>0</Rwpi>
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\CMSIS\Include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\init;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;applications;drivers;libraries\Device\FUJISTU\MB9BF50x\Include</IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath>libraries/Device/FUJISTU/MB9BF50x/Include;../../components/CMSIS/Include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m3;../../libcpu/arm/common;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -361,12 +354,11 @@
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -378,28 +370,47 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_mb9bf50x.c</FileName>
<FileType>1</FileType>
<FilePath>libraries/Device/FUJISTU/MB9BF50x/Source/system_mb9bf50x.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_mb9bf50x.S</FileName>
<FileType>2</FileType>
<FilePath>libraries/Device/FUJISTU/MB9BF50x/Source/ARM/startup_mb9bf50x.S</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -409,37 +420,28 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>fm3_uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\fm3_uart.c</FilePath>
<FilePath>drivers/fm3_uart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\led.c</FilePath>
<FilePath>drivers/led.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>nand.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\nand.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_mb9bf50x.c</FileName>
<FileType>1</FileType>
<FilePath>libraries\Device\FUJISTU\MB9BF50x\Source\system_mb9bf50x.c</FilePath>
</File>
<File>
<FileName>startup_mb9bf50x.S</FileName>
<FileType>2</FileType>
<FilePath>libraries\Device\FUJISTU\MB9BF50x\Source\ARM\startup_mb9bf50x.S</FilePath>
<FilePath>drivers/nand.c</FilePath>
</File>
</Files>
</Group>
@ -449,67 +451,98 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memheap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\memheap.c</FilePath>
<FilePath>../../src/memheap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -519,27 +552,35 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
@ -549,112 +590,147 @@
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\serial\serial.c</FilePath>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\completion.c</FilePath>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\dataqueue.c</FilePath>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\pipe.c</FilePath>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\ringbuffer.c</FilePath>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Components</GroupName>
<Files>
<File>
<FileName>components.c</FileName>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\init\components.c</FilePath>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -0,0 +1,682 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>rtthread-fm4</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<TargetCommonOption>
<Device>Cortex-M4 FPU</Device>
<Vendor>ARM</Vendor>
<Cpu>CLOCK(12000000) CPUTYPE("Cortex-M4") ESEL ELITTLE FPU2</Cpu>
<FlashUtilSpec />
<StartupFile />
<FlashDriverDll />
<DeviceId>5237</DeviceId>
<RegisterFile />
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<UseEnv>0</UseEnv>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath />
<DBRegisterFilePath />
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\build\</OutputDirectory>
<OutputName>template_mb9b56xx</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments />
<SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM4</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments />
<TargetDlgDll>TCM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>14</TargetSelection>
<SimDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>BIN\CMSIS_AGDI.dll</Driver>
</TargetDlls>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4105</DriverSelection>
</Flash1>
<Flash2>BIN\CMSIS_AGDI.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>0</AdsALst>
<AdsACrf>0</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>0</AdsLcgr>
<AdsLsym>0</AdsLsym>
<AdsLszi>0</AdsLszi>
<AdsLtoi>0</AdsLtoi>
<AdsLsun>0</AdsLsun>
<AdsLven>0</AdsLven>
<AdsLsxf>0</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M4"</AdsCpuType>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>0</hadIROM>
<hadIRAM>0</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>1</EndSel>
<uLtcg>0</uLtcg>
<RoSelD>0</RoSelD>
<RwSelD>5</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>1</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>1</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</IRAM>
<IROM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x100000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x200c0000</StartAddress>
<Size>0x8000</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x1fff0000</StartAddress>
<Size>0x10000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x20038000</StartAddress>
<Size>0x10000</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>0</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls />
<Define />
<Undefine />
<IncludePath>applications;.;drivers;CMSIS/Include;CMSIS/DeviceSupport;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<VariousControls>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
<umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x00000000</DataAddressRange>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>demo.c</FileName>
<FileType>1</FileType>
<FilePath>applications/demo.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/led.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/serial.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CMSIS</GroupName>
<Files>
<File>
<FileName>system_mb9abxxx.c</FileName>
<FileType>1</FileType>
<FilePath>CMSIS/DeviceSupport/system_mb9abxxx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_mb9bf56xr.s</FileName>
<FileType>2</FileType>
<FilePath>CMSIS/DeviceSupport/arm/startup_mb9bf56xr.s</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Kernel</GroupName>
<Files>
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CORTEX-M4</GroupName>
<Files>
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/cortex-m4/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>../../libcpu/arm/cortex-m4/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

431
bsp/mini2440/project.Uv2 Normal file
View File

@ -0,0 +1,431 @@
### uVision2 Project, (C) Keil Software
### Do not modify !
Target (RT-Thread Mini2440), 0x0004 // Tools: 'ARM-ADS'
Group (Startup)
Group (Kernel)
Group (S3C24X0)
Group (pthreads)
Group (libc)
Group (libz)
Group (jpeg)
Group (libpng)
Group (libdl)
Group (finsh)
Group (LwIP)
Group (Filesystem)
File 1,1,<./application.c><application.c>
File 1,1,<./startup.c><startup.c>
File 1,1,<./board.c><board.c>
File 1,1,<./console.c><console.c>
File 1,1,<./led.c><led.c>
File 1,1,<./sdcard.c><sdcard.c>
File 1,1,<./dm9000.c><dm9000.c>
File 1,1,<../../src/clock.c><clock.c>
File 1,1,<../../src/components.c><components.c>
File 1,1,<../../src/device.c><device.c>
File 1,1,<../../src/idle.c><idle.c>
File 1,1,<../../src/ipc.c><ipc.c>
File 1,1,<../../src/irq.c><irq.c>
File 1,1,<../../src/kservice.c><kservice.c>
File 1,1,<../../src/mem.c><mem.c>
File 1,1,<../../src/mempool.c><mempool.c>
File 1,1,<../../src/module.c><module.c>
File 1,1,<../../src/object.c><object.c>
File 1,1,<../../src/scheduler.c><scheduler.c>
File 1,1,<../../src/thread.c><thread.c>
File 1,1,<../../src/timer.c><timer.c>
File 1,1,<../../libcpu/arm/s3c24x0/cpu.c><cpu.c>
File 1,1,<../../libcpu/arm/s3c24x0/interrupt.c><interrupt.c>
File 1,1,<../../libcpu/arm/s3c24x0/mmu.c><mmu.c>
File 1,1,<../../libcpu/arm/s3c24x0/rtc.c><rtc.c>
File 1,1,<../../libcpu/arm/s3c24x0/serial.c><serial.c>
File 1,1,<../../libcpu/arm/s3c24x0/stack.c><stack.c>
File 1,1,<../../libcpu/arm/s3c24x0/system_clock.c><system_clock.c>
File 1,1,<../../libcpu/arm/s3c24x0/trap.c><trap.c>
File 1,2,<../../libcpu/arm/s3c24x0/context_rvds.S><context_rvds.S>
File 1,2,<../../libcpu/arm/s3c24x0/start_rvds.S><start_rvds.S>
File 1,1,<../../libcpu/arm/common/backtrace.c><backtrace.c>
File 1,1,<../../libcpu/arm/common/div0.c><div0.c>
File 1,1,<../../libcpu/arm/common/showmem.c><showmem.c>
File 1,1,<../../components/pthreads/clock_time.c><clock_time.c>
File 1,1,<../../components/pthreads/mqueue.c><mqueue.c>
File 1,1,<../../components/pthreads/pthread.c><pthread.c>
File 1,1,<../../components/pthreads/pthread_attr.c><pthread_attr.c>
File 1,1,<../../components/pthreads/pthread_barrier.c><pthread_barrier.c>
File 1,1,<../../components/pthreads/pthread_cond.c><pthread_cond.c>
File 1,1,<../../components/pthreads/pthread_mutex.c><pthread_mutex.c>
File 1,1,<../../components/pthreads/pthread_rwlock.c><pthread_rwlock.c>
File 1,1,<../../components/pthreads/pthread_spin.c><pthread_spin.c>
File 1,1,<../../components/pthreads/pthread_tls.c><pthread_tls.c>
File 1,1,<../../components/pthreads/sched.c><sched.c>
File 1,1,<../../components/pthreads/semaphore.c><semaphore.c>
File 1,1,<../../components/libc/armlibc/mem_std.c><mem_std.c>
File 1,1,<../../components/libc/armlibc/stubs.c><stubs.c>
File 1,1,<../../components/external/libz/adler32.c><adler32.c>
File 1,1,<../../components/external/libz/compress.c><compress.c>
File 1,1,<../../components/external/libz/crc32.c><crc32.c>
File 1,1,<../../components/external/libz/deflate.c><deflate.c>
File 1,1,<../../components/external/libz/infback.c><infback.c>
File 1,1,<../../components/external/libz/inffast.c><inffast.c>
File 1,1,<../../components/external/libz/inflate.c><inflate.c>
File 1,1,<../../components/external/libz/inftrees.c><inftrees.c>
File 1,1,<../../components/external/libz/trees.c><trees.c>
File 1,1,<../../components/external/libz/uncompr.c><uncompr.c>
File 1,1,<../../components/external/libz/zutil.c><zutil.c>
File 1,1,<../../components/external/jpeg/jaricom.c><jaricom.c>
File 1,1,<../../components/external/jpeg/jcomapi.c><jcomapi.c>
File 1,1,<../../components/external/jpeg/jutils.c><jutils.c>
File 1,1,<../../components/external/jpeg/jerror.c><jerror.c>
File 1,1,<../../components/external/jpeg/jmemmgr.c><jmemmgr.c>
File 1,1,<../../components/external/jpeg/jdapimin.c><jdapimin.c>
File 1,1,<../../components/external/jpeg/jdapistd.c><jdapistd.c>
File 1,1,<../../components/external/jpeg/jdarith.c><jdarith.c>
File 1,1,<../../components/external/jpeg/jdtrans.c><jdtrans.c>
File 1,1,<../../components/external/jpeg/jdmaster.c><jdmaster.c>
File 1,1,<../../components/external/jpeg/jdinput.c><jdinput.c>
File 1,1,<../../components/external/jpeg/jdmarker.c><jdmarker.c>
File 1,1,<../../components/external/jpeg/jdhuff.c><jdhuff.c>
File 1,1,<../../components/external/jpeg/jdmainct.c><jdmainct.c>
File 1,1,<../../components/external/jpeg/jdcoefct.c><jdcoefct.c>
File 1,1,<../../components/external/jpeg/jdpostct.c><jdpostct.c>
File 1,1,<../../components/external/jpeg/jddctmgr.c><jddctmgr.c>
File 1,1,<../../components/external/jpeg/jidctfst.c><jidctfst.c>
File 1,1,<../../components/external/jpeg/jidctflt.c><jidctflt.c>
File 1,1,<../../components/external/jpeg/jidctint.c><jidctint.c>
File 1,1,<../../components/external/jpeg/jdsample.c><jdsample.c>
File 1,1,<../../components/external/jpeg/jdcolor.c><jdcolor.c>
File 1,1,<../../components/external/jpeg/jquant1.c><jquant1.c>
File 1,1,<../../components/external/jpeg/jquant2.c><jquant2.c>
File 1,1,<../../components/external/jpeg/jdmerge.c><jdmerge.c>
File 1,1,<../../components/external/jpeg/jmemnobs.c><jmemnobs.c>
File 1,1,<../../components/external/libpng/png.c><png.c>
File 1,1,<../../components/external/libpng/pngerror.c><pngerror.c>
File 1,1,<../../components/external/libpng/pnggccrd.c><pnggccrd.c>
File 1,1,<../../components/external/libpng/pngget.c><pngget.c>
File 1,1,<../../components/external/libpng/pngmem.c><pngmem.c>
File 1,1,<../../components/external/libpng/pngpread.c><pngpread.c>
File 1,1,<../../components/external/libpng/pngread.c><pngread.c>
File 1,1,<../../components/external/libpng/pngrio.c><pngrio.c>
File 1,1,<../../components/external/libpng/pngrtran.c><pngrtran.c>
File 1,1,<../../components/external/libpng/pngrutil.c><pngrutil.c>
File 1,1,<../../components/external/libpng/pngset.c><pngset.c>
File 1,1,<../../components/external/libpng/pngtrans.c><pngtrans.c>
File 1,1,<../../components/external/libpng/pngvcrd.c><pngvcrd.c>
File 1,1,<../../components/external/libpng/pngwio.c><pngwio.c>
File 1,1,<../../components/external/libpng/pngwrite.c><pngwrite.c>
File 1,1,<../../components/external/libpng/pngwtran.c><pngwtran.c>
File 1,1,<../../components/external/libpng/pngwutil.c><pngwutil.c>
File 1,1,<../../components/libdl/dlclose.c><dlclose.c>
File 1,1,<../../components/libdl/dlerror.c><dlerror.c>
File 1,1,<../../components/libdl/dlopen.c><dlopen.c>
File 1,1,<../../components/libdl/dlsym.c><dlsym.c>
File 1,1,<../../components/finsh/shell.c><shell.c>
File 1,1,<../../components/finsh/symbol.c><symbol.c>
File 1,1,<../../components/finsh/cmd.c><cmd.c>
File 1,1,<../../components/finsh/finsh_compiler.c><finsh_compiler.c>
File 1,1,<../../components/finsh/finsh_error.c><finsh_error.c>
File 1,1,<../../components/finsh/finsh_heap.c><finsh_heap.c>
File 1,1,<../../components/finsh/finsh_init.c><finsh_init.c>
File 1,1,<../../components/finsh/finsh_node.c><finsh_node.c>
File 1,1,<../../components/finsh/finsh_ops.c><finsh_ops.c>
File 1,1,<../../components/finsh/finsh_parser.c><finsh_parser.c>
File 1,1,<../../components/finsh/finsh_var.c><finsh_var.c>
File 1,1,<../../components/finsh/finsh_vm.c><finsh_vm.c>
File 1,1,<../../components/finsh/finsh_token.c><finsh_token.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/api_lib.c><api_lib.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/api_msg.c><api_msg.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/err.c><err.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/netbuf.c><netbuf.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/netdb.c><netdb.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/netifapi.c><netifapi.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/sockets.c><sockets.c>
File 1,1,<../../components/net/lwip-1.4.1/src/api/tcpip.c><tcpip.c>
File 1,1,<../../components/net/lwip-1.4.1/src/arch/sys_arch.c><sys_arch.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/def.c><def.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/dhcp.c><dhcp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/dns.c><dns.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/init.c><init.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/memp.c><memp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/netif.c><netif.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/pbuf.c><pbuf.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/raw.c><raw.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/stats.c><stats.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/sys.c><sys.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/tcp.c><tcp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/tcp_in.c><tcp_in.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/tcp_out.c><tcp_out.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/timers.c><timers.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/udp.c><udp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/autoip.c><autoip.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/icmp.c><icmp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/igmp.c><igmp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/inet.c><inet.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/inet_chksum.c><inet_chksum.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip.c><ip.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip_addr.c><ip_addr.c>
File 1,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip_frag.c><ip_frag.c>
File 1,1,<../../components/net/lwip-1.4.1/src/netif/etharp.c><etharp.c>
File 1,1,<../../components/net/lwip-1.4.1/src/netif/ethernetif.c><ethernetif.c>
File 1,1,<../../components/net/lwip-1.4.1/src/netif/slipif.c><slipif.c>
File 1,1,<../../components/dfs/src/dfs.c><dfs.c>
File 1,1,<../../components/dfs/src/dfs_file.c><dfs_file.c>
File 1,1,<../../components/dfs/src/dfs_fs.c><dfs_fs.c>
File 1,1,<../../components/dfs/src/dfs_posix.c><dfs_posix.c>
File 1,1,<../../components/dfs/filesystems/elmfat/dfs_elm.c><dfs_elm.c>
File 1,1,<../../components/dfs/filesystems/elmfat/ff.c><ff.c>
File 1,1,<../../components/dfs/filesystems/elmfat/option/cc936.c><cc936.c>
File 1,1,<../../components/dfs/filesystems/devfs/console.c><devfs_console.c>
File 1,1,<../../components/dfs/filesystems/devfs/devfs.c><devfs.c>
File 2,1,<../../src/clock.c><src_clock.c>
File 2,1,<../../src/components.c><src_components.c>
File 2,1,<../../src/device.c><src_device.c>
File 2,1,<../../src/idle.c><src_idle.c>
File 2,1,<../../src/ipc.c><src_ipc.c>
File 2,1,<../../src/irq.c><src_irq.c>
File 2,1,<../../src/kservice.c><src_kservice.c>
File 2,1,<../../src/mem.c><src_mem.c>
File 2,1,<../../src/mempool.c><src_mempool.c>
File 2,1,<../../src/module.c><src_module.c>
File 2,1,<../../src/object.c><src_object.c>
File 2,1,<../../src/scheduler.c><src_scheduler.c>
File 2,1,<../../src/thread.c><src_thread.c>
File 2,1,<../../src/timer.c><src_timer.c>
File 3,1,<../../libcpu/arm/s3c24x0/cpu.c><s3c24x0_cpu.c>
File 3,1,<../../libcpu/arm/s3c24x0/interrupt.c><s3c24x0_interrupt.c>
File 3,1,<../../libcpu/arm/s3c24x0/mmu.c><s3c24x0_mmu.c>
File 3,1,<../../libcpu/arm/s3c24x0/rtc.c><s3c24x0_rtc.c>
File 3,1,<../../libcpu/arm/s3c24x0/serial.c><s3c24x0_serial.c>
File 3,1,<../../libcpu/arm/s3c24x0/stack.c><s3c24x0_stack.c>
File 3,1,<../../libcpu/arm/s3c24x0/system_clock.c><s3c24x0_system_clock.c>
File 3,1,<../../libcpu/arm/s3c24x0/trap.c><s3c24x0_trap.c>
File 3,2,<../../libcpu/arm/s3c24x0/context_rvds.S><s3c24x0_context_rvds.S>
File 3,2,<../../libcpu/arm/s3c24x0/start_rvds.S><s3c24x0_start_rvds.S>
File 3,1,<../../libcpu/arm/common/backtrace.c><common_backtrace.c>
File 3,1,<../../libcpu/arm/common/div0.c><common_div0.c>
File 3,1,<../../libcpu/arm/common/showmem.c><common_showmem.c>
File 4,1,<../../components/pthreads/clock_time.c><pthreads_clock_time.c>
File 4,1,<../../components/pthreads/mqueue.c><pthreads_mqueue.c>
File 4,1,<../../components/pthreads/pthread.c><pthreads_pthread.c>
File 4,1,<../../components/pthreads/pthread_attr.c><pthreads_pthread_attr.c>
File 4,1,<../../components/pthreads/pthread_barrier.c><pthreads_pthread_barrier.c>
File 4,1,<../../components/pthreads/pthread_cond.c><pthreads_pthread_cond.c>
File 4,1,<../../components/pthreads/pthread_mutex.c><pthreads_pthread_mutex.c>
File 4,1,<../../components/pthreads/pthread_rwlock.c><pthreads_pthread_rwlock.c>
File 4,1,<../../components/pthreads/pthread_spin.c><pthreads_pthread_spin.c>
File 4,1,<../../components/pthreads/pthread_tls.c><pthreads_pthread_tls.c>
File 4,1,<../../components/pthreads/sched.c><pthreads_sched.c>
File 4,1,<../../components/pthreads/semaphore.c><pthreads_semaphore.c>
File 5,1,<../../components/libc/armlibc/mem_std.c><armlibc_mem_std.c>
File 5,1,<../../components/libc/armlibc/stubs.c><armlibc_stubs.c>
File 6,1,<../../components/external/libz/adler32.c><libz_adler32.c>
File 6,1,<../../components/external/libz/compress.c><libz_compress.c>
File 6,1,<../../components/external/libz/crc32.c><libz_crc32.c>
File 6,1,<../../components/external/libz/deflate.c><libz_deflate.c>
File 6,1,<../../components/external/libz/infback.c><libz_infback.c>
File 6,1,<../../components/external/libz/inffast.c><libz_inffast.c>
File 6,1,<../../components/external/libz/inflate.c><libz_inflate.c>
File 6,1,<../../components/external/libz/inftrees.c><libz_inftrees.c>
File 6,1,<../../components/external/libz/trees.c><libz_trees.c>
File 6,1,<../../components/external/libz/uncompr.c><libz_uncompr.c>
File 6,1,<../../components/external/libz/zutil.c><libz_zutil.c>
File 7,1,<../../components/external/jpeg/jaricom.c><jpeg_jaricom.c>
File 7,1,<../../components/external/jpeg/jcomapi.c><jpeg_jcomapi.c>
File 7,1,<../../components/external/jpeg/jutils.c><jpeg_jutils.c>
File 7,1,<../../components/external/jpeg/jerror.c><jpeg_jerror.c>
File 7,1,<../../components/external/jpeg/jmemmgr.c><jpeg_jmemmgr.c>
File 7,1,<../../components/external/jpeg/jdapimin.c><jpeg_jdapimin.c>
File 7,1,<../../components/external/jpeg/jdapistd.c><jpeg_jdapistd.c>
File 7,1,<../../components/external/jpeg/jdarith.c><jpeg_jdarith.c>
File 7,1,<../../components/external/jpeg/jdtrans.c><jpeg_jdtrans.c>
File 7,1,<../../components/external/jpeg/jdmaster.c><jpeg_jdmaster.c>
File 7,1,<../../components/external/jpeg/jdinput.c><jpeg_jdinput.c>
File 7,1,<../../components/external/jpeg/jdmarker.c><jpeg_jdmarker.c>
File 7,1,<../../components/external/jpeg/jdhuff.c><jpeg_jdhuff.c>
File 7,1,<../../components/external/jpeg/jdmainct.c><jpeg_jdmainct.c>
File 7,1,<../../components/external/jpeg/jdcoefct.c><jpeg_jdcoefct.c>
File 7,1,<../../components/external/jpeg/jdpostct.c><jpeg_jdpostct.c>
File 7,1,<../../components/external/jpeg/jddctmgr.c><jpeg_jddctmgr.c>
File 7,1,<../../components/external/jpeg/jidctfst.c><jpeg_jidctfst.c>
File 7,1,<../../components/external/jpeg/jidctflt.c><jpeg_jidctflt.c>
File 7,1,<../../components/external/jpeg/jidctint.c><jpeg_jidctint.c>
File 7,1,<../../components/external/jpeg/jdsample.c><jpeg_jdsample.c>
File 7,1,<../../components/external/jpeg/jdcolor.c><jpeg_jdcolor.c>
File 7,1,<../../components/external/jpeg/jquant1.c><jpeg_jquant1.c>
File 7,1,<../../components/external/jpeg/jquant2.c><jpeg_jquant2.c>
File 7,1,<../../components/external/jpeg/jdmerge.c><jpeg_jdmerge.c>
File 7,1,<../../components/external/jpeg/jmemnobs.c><jpeg_jmemnobs.c>
File 8,1,<../../components/external/libpng/png.c><libpng_png.c>
File 8,1,<../../components/external/libpng/pngerror.c><libpng_pngerror.c>
File 8,1,<../../components/external/libpng/pnggccrd.c><libpng_pnggccrd.c>
File 8,1,<../../components/external/libpng/pngget.c><libpng_pngget.c>
File 8,1,<../../components/external/libpng/pngmem.c><libpng_pngmem.c>
File 8,1,<../../components/external/libpng/pngpread.c><libpng_pngpread.c>
File 8,1,<../../components/external/libpng/pngread.c><libpng_pngread.c>
File 8,1,<../../components/external/libpng/pngrio.c><libpng_pngrio.c>
File 8,1,<../../components/external/libpng/pngrtran.c><libpng_pngrtran.c>
File 8,1,<../../components/external/libpng/pngrutil.c><libpng_pngrutil.c>
File 8,1,<../../components/external/libpng/pngset.c><libpng_pngset.c>
File 8,1,<../../components/external/libpng/pngtrans.c><libpng_pngtrans.c>
File 8,1,<../../components/external/libpng/pngvcrd.c><libpng_pngvcrd.c>
File 8,1,<../../components/external/libpng/pngwio.c><libpng_pngwio.c>
File 8,1,<../../components/external/libpng/pngwrite.c><libpng_pngwrite.c>
File 8,1,<../../components/external/libpng/pngwtran.c><libpng_pngwtran.c>
File 8,1,<../../components/external/libpng/pngwutil.c><libpng_pngwutil.c>
File 9,1,<../../components/libdl/dlclose.c><libdl_dlclose.c>
File 9,1,<../../components/libdl/dlerror.c><libdl_dlerror.c>
File 9,1,<../../components/libdl/dlopen.c><libdl_dlopen.c>
File 9,1,<../../components/libdl/dlsym.c><libdl_dlsym.c>
File 10,1,<../../components/finsh/shell.c><finsh_shell.c>
File 10,1,<../../components/finsh/symbol.c><finsh_symbol.c>
File 10,1,<../../components/finsh/cmd.c><finsh_cmd.c>
File 10,1,<../../components/finsh/finsh_compiler.c><finsh_finsh_compiler.c>
File 10,1,<../../components/finsh/finsh_error.c><finsh_finsh_error.c>
File 10,1,<../../components/finsh/finsh_heap.c><finsh_finsh_heap.c>
File 10,1,<../../components/finsh/finsh_init.c><finsh_finsh_init.c>
File 10,1,<../../components/finsh/finsh_node.c><finsh_finsh_node.c>
File 10,1,<../../components/finsh/finsh_ops.c><finsh_finsh_ops.c>
File 10,1,<../../components/finsh/finsh_parser.c><finsh_finsh_parser.c>
File 10,1,<../../components/finsh/finsh_var.c><finsh_finsh_var.c>
File 10,1,<../../components/finsh/finsh_vm.c><finsh_finsh_vm.c>
File 10,1,<../../components/finsh/finsh_token.c><finsh_finsh_token.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/api_lib.c><api_api_lib.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/api_msg.c><api_api_msg.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/err.c><api_err.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/netbuf.c><api_netbuf.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/netdb.c><api_netdb.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/netifapi.c><api_netifapi.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/sockets.c><api_sockets.c>
File 11,1,<../../components/net/lwip-1.4.1/src/api/tcpip.c><api_tcpip.c>
File 11,1,<../../components/net/lwip-1.4.1/src/arch/sys_arch.c><arch_sys_arch.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/def.c><core_def.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/dhcp.c><core_dhcp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/dns.c><core_dns.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/init.c><core_init.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/memp.c><core_memp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/netif.c><core_netif.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/pbuf.c><core_pbuf.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/raw.c><core_raw.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/stats.c><core_stats.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/sys.c><core_sys.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/tcp.c><core_tcp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/tcp_in.c><core_tcp_in.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/tcp_out.c><core_tcp_out.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/timers.c><core_timers.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/udp.c><core_udp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/autoip.c><ipv4_autoip.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/icmp.c><ipv4_icmp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/igmp.c><ipv4_igmp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/inet.c><ipv4_inet.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/inet_chksum.c><ipv4_inet_chksum.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip.c><ipv4_ip.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip_addr.c><ipv4_ip_addr.c>
File 11,1,<../../components/net/lwip-1.4.1/src/core/ipv4/ip_frag.c><ipv4_ip_frag.c>
File 11,1,<../../components/net/lwip-1.4.1/src/netif/etharp.c><netif_etharp.c>
File 11,1,<../../components/net/lwip-1.4.1/src/netif/ethernetif.c><netif_ethernetif.c>
File 11,1,<../../components/net/lwip-1.4.1/src/netif/slipif.c><netif_slipif.c>
File 12,1,<../../components/dfs/src/dfs.c><src_dfs.c>
File 12,1,<../../components/dfs/src/dfs_file.c><src_dfs_file.c>
File 12,1,<../../components/dfs/src/dfs_fs.c><src_dfs_fs.c>
File 12,1,<../../components/dfs/src/dfs_posix.c><src_dfs_posix.c>
File 12,1,<../../components/dfs/filesystems/elmfat/dfs_elm.c><elmfat_dfs_elm.c>
File 12,1,<../../components/dfs/filesystems/elmfat/ff.c><elmfat_ff.c>
File 12,1,<../../components/dfs/filesystems/elmfat/option/cc936.c><option_cc936.c>
File 12,1,<../../components/dfs/filesystems/devfs/console.c><devfs_console.c>
File 12,1,<../../components/dfs/filesystems/devfs/devfs.c><devfs_devfs.c>
Options 1,0,0 // Target 'RT-Thread Mini2440'
Device (S3C2440A)
Vendor (Samsung)
Cpu (IRAM(0x40000000-0x40000FFF) CLOCK(12000000) CPUTYPE(ARM920T))
FlashUt ()
StupF ("STARTUP\Samsung\S3C2440.s" ("Samsung S3C2440 Startup Code"))
FlashDR (UL2ARM(-UV2077N9E -O40 -S0 -C0 -N00("ARM920T Core") -D00(0032409D) -L00(4) -FO7 -FD40000000 -FC1000 -FN1 -FF0S3C2440_NAND_SP -FS030000000 -FL07FFC000))
DevID (4277)
Rgf (S3C2440.H)
Mem ()
C ()
A ()
RL ()
OH ()
DBC_IFX ()
DBC_CMS ()
DBC_AMS ()
DBC_LMS ()
UseEnv=0
EnvBin ()
EnvInc ()
EnvLib ()
EnvReg (ÿSamsung\)
OrgReg (ÿSamsung\)
TgStat=16
OutDir (.\obj\)
OutName (rtthread-mini2440)
GenApp=1
GenLib=0
GenHex=0
Debug=1
Browse=0
LstDir (.\obj)
HexSel=1
MG32K=0
TGMORE=0
RunUsr 0 0 <>
RunUsr 1 0 <>
BrunUsr 0 0 <>
BrunUsr 1 0 <>
CrunUsr 0 0 <>
CrunUsr 1 0 <>
SVCSID <>
GLFLAGS=1790
ADSFLGA { 242,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
ACPUTYP (ARM920T)
RVDEV ()
ADSTFLGA { 0,8,64,0,96,0,64,64,0,0,0,0,0,0,0,0,0,0,0,0 }
OCMADSOCM { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
OCMADSIRAM { 0,0,0,0,64,0,16,0,0 }
OCMADSIROM { 0,0,0,0,0,0,0,0,0 }
OCMADSXRAM { 0,0,0,0,0,0,0,0,0 }
OCR_RVCT { 1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,16,0,0,0,0,0,0,0,0,0,0,0 }
RV_STAVEC ()
ADSCCFLG { 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
ADSCMISC (--diag_suppress=870)
ADSCDEFN (RT_USING_ARM_LIBC)
ADSCUDEF ()
ADSCINCD (../../components/libdl;../../components/external/libpng;../../libcpu/arm/s3c24x0;../../components/finsh;../../components/net/lwip-1.4.1/src;../../components/pthreads;../../components/dfs/filesystems/elmfat;../../libcpu/arm/common;../../components/dfs/filesystems/devfs;.;../../components/external/libz;../../components/net/lwip-1.4.1/src/include/netif;../../include;../../components/dfs/include;../../components/net/lwip-1.4.1/src/include;../../components/external/jpeg;../../components/libc/armlibc;../../components/net/lwip-1.4.1/src/arch/include;../../components/net/lwip-1.4.1/src/include/ipv4)
ADSASFLG { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
ADSAMISC ()
ADSADEFN ()
ADSAUDEF ()
ADSAINCD ()
PropFld { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
IncBld=1
AlwaysBuild=0
GenAsm=0
AsmAsm=0
PublicsOnly=0
StopCode=3
CustArgs ()
LibMods ()
ADSLDFG { 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
ADSLDTA (0x30000000)
ADSLDDA (0x40000000)
ADSLDSC (rtthread-mini2440.sct)
ADSLDIB ()
ADSLDIC ()
ADSLDMC ( --keep *.o(RTMSymTab) --keep *.o(FSymTab) --keep *.o(VSymTab) )
ADSLDIF ()
ADSLDDW ()
OPTDL (SARM.DLL)()(DARMSS9.DLL)(-pS3C2440A)(SARM.DLL)()(TARMSS9.DLL)(-pS3C2440A)
OPTDBG 47614,6,()()()()()()()()()(.\Ext_RAM.ini) (Segger\JLTAgdi.dll)()()()
FLASH1 { 1,0,0,0,1,0,0,0,4,16,0,0,0,0,0,0,0,0,0,0 }
FLASH2 (Segger\JLTAgdi.dll)
FLASH3 ("" ())
FLASH4 ()
EndOpt

646
bsp/nrf51822/project.uvproj Normal file
View File

@ -0,0 +1,646 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
<SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>rt-thread</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<TargetCommonOption>
<Device>nRF51822_xxAA</Device>
<Vendor>Nordic Semiconductor</Vendor>
<PackID>NordicSemiconductor.nRF_DeviceFamilyPack.1.1.4</PackID>
<PackURL>http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/</PackURL>
<Cpu>IROM(0x00000000,0x40000) IRAM(0x20000000,0x4000) CPUTYPE("Cortex-M0") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec />
<StartupFile />
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0nrf51xxx -FS00 -FL0200000 -FP0($$Device:nRF51822_xxAA$Flash\nrf51xxx.flm))</FlashDriverDll>
<DeviceId>0</DeviceId>
<RegisterFile>$$Device:nRF51822_xxAA$Device\Include\nrf.h</RegisterFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile>$$Device:nRF51822_xxAA$SVD\nrf51.xml</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath />
<DBRegisterFilePath />
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\build\</OutputDirectory>
<OutputName>template</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation>
<ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument />
<IncludeLibraryModules />
<ComprImg>1</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments> </SimDllArguments>
<SimDlgDll>DARMCM1.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM0</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments> </TargetDllArguments>
<TargetDlgDll>TARMCM1.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM0</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
<Simulator>
<UseSimulator>0</UseSimulator>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>1</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
<RestoreSysVw>1</RestoreSysVw>
</Simulator>
<Target>
<UseTarget>1</UseTarget>
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
<RunToMain>1</RunToMain>
<RestoreBreakpoints>1</RestoreBreakpoints>
<RestoreWatchpoints>1</RestoreWatchpoints>
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
<RestoreFunctions>0</RestoreFunctions>
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>0</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>6</TargetSelection>
<SimDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JL2CM3.dll</Driver>
</TargetDlls>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4096</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3>"" ()</Flash3>
<Flash4 />
<pFcarmOut />
<pFcarmGrp />
<pFcArmRoot />
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M0"</AdsCpuType>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<RoSelD>3</RoSelD>
<RwSelD>3</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>0</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x4000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x40000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x40000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0x4000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
<VariousControls>
<MiscControls>--c99</MiscControls>
<Define>NRF51, USE_STDPERIPH_DRIVER</Define>
<Undefine />
<IncludePath>Libraries/CMSIS/Include;Libraries/nrf51822/Include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m0;../../libcpu/arm/common;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<VariousControls>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
<umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<pXoBase />
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(FSymTab)</Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Startup Code</GroupName>
<Files>
<File>
<FileName>system_nrf51.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/nrf51822/Source/templates/system_nrf51.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>arm_startup_nrf51.s</FileName>
<FileType>2</FileType>
<FilePath>Libraries/nrf51822/Source/templates/arm/arm_startup_nrf51.s</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>uart.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/uart.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Kernel</GroupName>
<Files>
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>CORTEX-M0</GroupName>
<Files>
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/cortex-m0/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>../../libcpu/arm/cortex-m0/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>msh_cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/msh_cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>msh.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/msh.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>RT-Thread/AT91SAM7X256</TargetName>
@ -15,25 +12,25 @@
<Device>AT91SAM7X256</Device>
<Vendor>Atmel</Vendor>
<Cpu>IRAM(0x200000-0x20FFFF) IROM(0x100000-0x13FFFF) CLOCK(18432000) CPUTYPE(ARM7TDMI)</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec />
<StartupFile>"STARTUP\Atmel\SAM7.s" ("Atmel AT91SAM7 Startup Code")</StartupFile>
<FlashDriverDll>UL2ARM(-U56240812 -O15 -S0 -C0 -FO7 -FD200000 -FC800 -FN1 -FF0AT91SAM7_256 -FS0100000 -FL040000)</FlashDriverDll>
<DeviceId>4081</DeviceId>
<RegisterFile>AT91SAM7X256.H</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile></SFDFile>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile />
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>Atmel\SAM7X\</RegisterFilePath>
<DBRegisterFilePath>Atmel\SAM7X\</DBRegisterFilePath>
<TargetStatus>
@ -57,31 +54,29 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -95,8 +90,8 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARM.DLL</SimDllName>
@ -104,7 +99,7 @@
<SimDlgDll>DARMATS.DLL</SimDlgDll>
<SimDlgDllArguments>-p91SAM7X256</SimDlgDllArguments>
<TargetDllName>SARM.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDllArguments />
<TargetDlgDll>TARMATS.DLL</TargetDlgDll>
<TargetDlgDllArguments>-p91SAM7X256</TargetDlgDllArguments>
</DllOption>
@ -140,18 +135,18 @@
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>6</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>Segger\JLTAgdi.dll</Driver>
</TargetDlls>
</DebugOption>
@ -166,7 +161,7 @@
</Flash1>
<Flash2>Segger\JLTAgdi.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -198,7 +193,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>ARM7TDMI</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -329,7 +324,7 @@
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -345,10 +340,10 @@
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\finsh;..\..\components\net\lwip\src;..\..\components\net\lwip\src\arch\include;..\..\components\net\lwip\src\include;..\..\components\net\lwip\src\include\ipv4;..\..\components\net\lwip\src\include\netif;..\..\include;..\..\libcpu\arm\AT91SAM7X;..\..\libcpu\arm\common;applications;drivers</IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath>applications;.;drivers;../../include;../../libcpu/arm/AT91SAM7X;../../libcpu/arm/common;../../components/finsh;../../components/net/lwip-1.4.1/src;../../components/net/lwip-1.4.1/src/include;../../components/net/lwip-1.4.1/src/include/ipv4;../../components/net/lwip-1.4.1/src/arch/include;../../components/net/lwip-1.4.1/src/include/netif</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -360,10 +355,10 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -375,12 +370,12 @@
<useFile>0</useFile>
<TextAddressRange>0x00100000</TextAddressRange>
<DataAddressRange>0x00200000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
@ -391,12 +386,14 @@
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -406,17 +403,21 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sam7x_emac.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\sam7x_emac.c</FilePath>
<FilePath>drivers/sam7x_emac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\serial.c</FilePath>
<FilePath>drivers/serial.c</FilePath>
</File>
</Files>
</Group>
@ -426,62 +427,91 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -491,117 +521,157 @@
<File>
<FileName>cpu.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\cpu.c</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/cpu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>interrupt.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\interrupt.c</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/interrupt.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stack.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\stack.c</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/stack.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>trap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\trap.c</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/trap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>start_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\AT91SAM7X\start_rvds.S</FilePath>
<FilePath>../../libcpu/arm/AT91SAM7X/start_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
@ -611,182 +681,249 @@
<File>
<FileName>api_lib.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\api_lib.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_lib.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>api_msg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\api_msg.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/api_msg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>err.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\err.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/err.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netbuf.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netdb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netdb.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netdb.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netifapi.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\netifapi.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/netifapi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sockets.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\sockets.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/sockets.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcpip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\api\tcpip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/api/tcpip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sys_arch.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\arch\sys_arch.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/arch/sys_arch.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>def.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\def.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/def.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dhcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\dhcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dhcp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dns.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\dns.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/dns.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\init.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>memp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\memp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/memp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>netif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\netif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/netif.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\pbuf.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/pbuf.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>raw.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\raw.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/raw.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stats.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\stats.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/stats.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>sys.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\sys.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/sys.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp_in.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp_in.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_in.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>tcp_out.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\tcp_out.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/tcp_out.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timers.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\timers.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/timers.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>udp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\udp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/udp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>autoip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\autoip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/autoip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>icmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\icmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/icmp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>igmp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\igmp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/igmp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>inet.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\inet.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>inet_chksum.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\inet_chksum.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/inet_chksum.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip_addr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip_addr.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_addr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ip_frag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\core\ipv4\ip_frag.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/core/ipv4/ip_frag.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>etharp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\etharp.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/etharp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ethernetif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\ethernetif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/ethernetif.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>slipif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip\src\netif\slipif.c</FilePath>
<FilePath>../../components/net/lwip-1.4.1/src/netif/slipif.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
<SchemaVersion>1.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>rt-thread</TargetName>
@ -15,25 +12,25 @@
<Device>STM32F051R8</Device>
<Vendor>STMicroelectronics</Vendor>
<Cpu>IRAM(0x20000000-0x20001FFF) IROM(0x8000000-0x800FFFF) CLOCK(8000000) CPUTYPE("Cortex-M0")</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<FlashUtilSpec />
<StartupFile>"Startup\ST\STM32F0xx\startup_stm32f0xx.s" ("STM32F0xx Startup Code")</StartupFile>
<FlashDriverDll>UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F05x_64 -FS08000000 -FL010000)</FlashDriverDll>
<DeviceId>6188</DeviceId>
<RegisterFile>stm32f0xx.h</RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<MemoryEnv />
<Cmp />
<Asm />
<Linker />
<OHString />
<InfinionOptionDll />
<SLE66CMisc />
<SLE66AMisc />
<SLE66LinkerMisc />
<SFDFile>SFD\ST\STM32F0xx\STM32F051xx.sfr</SFDFile>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<BinPath />
<IncludePath />
<LibPath />
<RegisterFilePath>ST\STM32F0xx\</RegisterFilePath>
<DBRegisterFilePath>ST\STM32F0xx\</DBRegisterFilePath>
<TargetStatus>
@ -57,8 +54,8 @@
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
@ -67,21 +64,21 @@
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Name />
<UserProg2Name />
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
<SVCSIdString />
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
@ -95,16 +92,16 @@
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<CustomArgument />
<IncludeLibraryModules />
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments></SimDllArguments>
<SimDllArguments />
<SimDlgDll>DARMCM1.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM0</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDllArguments />
<TargetDlgDll>TARMCM1.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM0</TargetDlgDllArguments>
</DllOption>
@ -140,18 +137,18 @@
<RunDebugAfterBuild>0</RunDebugAfterBuild>
<TargetSelection>13</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
</SimDlls>
<TargetDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
<PeripheralDll></PeripheralDll>
<PeripheralDllArguments></PeripheralDllArguments>
<InitializationFile></InitializationFile>
<CpuDll />
<CpuDllArguments />
<PeripheralDll />
<PeripheralDllArguments />
<InitializationFile />
<Driver>STLink\ST-LINKIII-KEIL_SWO.dll</Driver>
</TargetDlls>
</DebugOption>
@ -166,7 +163,7 @@
</Flash1>
<Flash2>STLink\ST-LINKIII-KEIL_SWO.dll</Flash2>
<Flash3>"" ()</Flash3>
<Flash4></Flash4>
<Flash4 />
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
@ -198,7 +195,7 @@
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M0"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<RvctDeviceName />
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
@ -329,7 +326,7 @@
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
<RvctStartVector />
</ArmAdsMisc>
<Cads>
<interw>1</interw>
@ -345,10 +342,10 @@
<wLevel>0</wLevel>
<uThumb>0</uThumb>
<VariousControls>
<MiscControls></MiscControls>
<Define>USE_STDPERIPH_DRIVER</Define>
<Undefine></Undefine>
<IncludePath>.;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m0;Libraries\CMSIS\Include;Libraries\CMSIS\ST\STM32F0xx\Include;Libraries\STM32F0xx_StdPeriph_Driver\inc;applications;drivers</IncludePath>
<MiscControls />
<Define>RT_USING_ARM_LIBC, USE_STDPERIPH_DRIVER</Define>
<Undefine />
<IncludePath>Libraries/STM32F0xx_StdPeriph_Driver/inc;Libraries/CMSIS/ST/STM32F0xx/Include;Libraries/CMSIS/Include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m0;../../libcpu/arm/common;../../components/libc/armlibc;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -360,10 +357,10 @@
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
<MiscControls />
<Define />
<Undefine />
<IncludePath />
</VariousControls>
</Aads>
<LDads>
@ -375,28 +372,194 @@
<useFile>0</useFile>
<TextAddressRange>0x08000000</TextAddressRange>
<DataAddressRange>0x20000000</DataAddressRange>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc></Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>STM32_StdPeriph</GroupName>
<Files>
<File>
<FileName>system_stm32f0xx.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/CMSIS/ST/STM32F0xx/Source/Templates/system_stm32f0xx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_cec.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_cec.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_comp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_comp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_crc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_dac.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_dbgmcu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dbgmcu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_dma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_exti.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_exti.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_iwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_misc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_pwr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rcc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_spi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_syscfg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_syscfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_tim.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_tim.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_usart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_wwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F0xx_StdPeriph_Driver/src/stm32f0xx_wwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_stm32f0xx.s</FileName>
<FileType>2</FileType>
<FilePath>Libraries/CMSIS/ST/STM32F0xx/Source/Templates/arm/startup_stm32f0xx.s</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -406,132 +569,28 @@
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>led.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/led.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f0xx_it.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\stm32f0xx_it.c</FilePath>
<FilePath>drivers/stm32f0xx_it.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>STM32_StdPeriph</GroupName>
<Files>
<File>
<FileName>system_stm32f0xx.c</FileName>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\CMSIS\ST\STM32F0xx\Source\Templates\system_stm32f0xx.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_adc.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_cec.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_cec.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_comp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_comp.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_crc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_crc.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_dac.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_dac.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_dbgmcu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_dbgmcu.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_dma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_dma.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_exti.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_exti.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_flash.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_gpio.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_i2c.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_iwdg.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_misc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_misc.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_pwr.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_rcc.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_rtc.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_spi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_spi.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_syscfg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_syscfg.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_tim.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_tim.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_usart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_usart.c</FilePath>
</File>
<File>
<FileName>stm32f0xx_wwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F0xx_StdPeriph_Driver\src\stm32f0xx_wwdg.c</FilePath>
</File>
<File>
<FileName>startup_stm32f0xx.s</FileName>
<FileType>2</FileType>
<FilePath>Libraries\CMSIS\ST\STM32F0xx\Source\Templates\arm\startup_stm32f0xx.s</FilePath>
<FilePath>drivers/usart.c</FilePath>
</File>
</Files>
</Group>
@ -541,47 +600,84 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -591,32 +687,202 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m0\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m0/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m0\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m0/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>libc</GroupName>
<Files>
<File>
<FileName>mem_std.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/libc/armlibc/mem_std.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stubs.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/libc/armlibc/stubs.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>
</Project>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,145 @@
/*
* File : canapp.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
*
* Change Logs:
* Date Author Notes
* 2015-05-14 aubrcool@qq.com first version
*/
#ifdef RT_USING_CAN
#include <board.h>
#include <rtthread.h>
#include <rtdevice.h>
struct can_app_struct
{
const char* name;
struct rt_event event;
struct rt_can_filter_config * filter;
rt_uint8_t eventopt;
};
static struct can_app_struct can_data[2];
static rt_err_t can1ind(rt_device_t dev, void* args, rt_int32_t hdr, rt_size_t size)
{
rt_event_t pevent = (rt_event_t)args;
rt_event_send(pevent, 1 << (hdr));
return RT_EOK;
}
static rt_err_t can2ind(rt_device_t dev, void* args, rt_int32_t hdr, rt_size_t size)
{
rt_event_t pevent = (rt_event_t)args;
rt_event_send(pevent, 1 << (hdr));
return RT_EOK;
}
struct rt_can_filter_item filter1item[4] =
{
RT_CAN_FILTER_STD_INIT(1,can1ind,&can_data[0].event),
RT_CAN_FILTER_STD_INIT(2,can1ind,&can_data[0].event),
RT_CAN_STD_RMT_FILTER_INIT(3,can1ind,&can_data[0].event),
RT_CAN_STD_RMT_DATA_FILTER_INIT(4,can1ind,&can_data[0].event),
};
struct rt_can_filter_item filter2item[4] =
{
RT_CAN_FILTER_STD_INIT(1,can2ind,&can_data[1].event),
RT_CAN_FILTER_STD_INIT(2,can2ind,&can_data[1].event),
RT_CAN_STD_RMT_FILTER_INIT(3,can2ind,&can_data[1].event),
RT_CAN_STD_RMT_DATA_FILTER_INIT(4,can2ind,&can_data[1].event),
};
struct rt_can_filter_config filter1 =
{
.count = 4,
.actived = 1,
.items = filter1item,
};
struct rt_can_filter_config filter2 =
{
.count = 4,
.actived = 1,
.items = filter2item,
};
static struct can_app_struct can_data[2] = {
{
.name = "bxcan1",
.filter = &filter1,
.eventopt = RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
},
{
.name = "bxcan2",
.filter = &filter2,
.eventopt = RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR,
},
};
void rt_can_thread_entry(void* parameter)
{
struct rt_can_msg msg;
struct can_app_struct* canpara = (struct can_app_struct*) parameter;
rt_device_t candev;
rt_uint32_t e;
candev = rt_device_find(canpara->name);
RT_ASSERT(candev);
rt_event_init(&canpara->event, canpara->name, RT_IPC_FLAG_FIFO);
rt_device_open(candev, (RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX));
rt_device_control(candev,RT_CAN_CMD_SET_FILTER,canpara->filter);
while(1) {
if (
rt_event_recv(&canpara->event,
((1 << canpara->filter->items[0].hdr) |
(1 << canpara->filter->items[1].hdr) |
(1 << canpara->filter->items[2].hdr) |
(1 << canpara->filter->items[3].hdr)),
canpara->eventopt,
RT_WAITING_FOREVER, &e) != RT_EOK
) {
continue;
}
if(e & (1 << canpara->filter->items[0].hdr)) {
msg.hdr = canpara->filter->items[0].hdr;
while (rt_device_read(candev, 0, &msg, sizeof(msg)) == sizeof(msg)) {
rt_device_write(candev, 0, &msg, sizeof(msg));
}
}
if(e & (1 << canpara->filter->items[1].hdr)) {
msg.hdr = canpara->filter->items[1].hdr;
while (rt_device_read(candev, 0, &msg, sizeof(msg)) == sizeof(msg)) {
rt_device_write(candev, 0, &msg, sizeof(msg));
}
}
if(e & (1 << canpara->filter->items[2].hdr)) {
msg.hdr = canpara->filter->items[2].hdr;
while (rt_device_read(candev, 0, &msg, sizeof(msg)) == sizeof(msg)) {
rt_device_write(candev, 0, &msg, sizeof(msg));
}
}
if(e & (1 << canpara->filter->items[3].hdr)) {
msg.hdr = canpara->filter->items[3].hdr;
while (rt_device_read(candev, 0, &msg, sizeof(msg)) == sizeof(msg)) {
rt_device_write(candev, 0, &msg, sizeof(msg));
}
}
}
}
int rt_can_app_init(void)
{
rt_thread_t tid;
tid = rt_thread_create("canapp1",
rt_can_thread_entry, &can_data[0],
512, RT_THREAD_PRIORITY_MAX /3 - 1, 20);
if (tid != RT_NULL) rt_thread_startup(tid);
tid = rt_thread_create("canapp2",
rt_can_thread_entry, &can_data[1],
512, RT_THREAD_PRIORITY_MAX /3 - 1, 20);
if (tid != RT_NULL) rt_thread_startup(tid);
return 0;
}
INIT_APP_EXPORT(rt_can_app_init);
#endif /*RT_USING_CAN*/

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
/*
* File : bxcan.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2015, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
*
* Change Logs:
* Date Author Notes
* 2015-05-14 aubrcool@qq.com first version
*/
#ifndef BXCAN_H_
#define BXCAN_H_
#endif /*BXCAN_H_*/

View File

@ -3,84 +3,83 @@
Target (RT-Thread STM32), 0x0004 // Tools: 'ARM-ADS'
Group (STM32_StdPeriph)
Group (Applications)
Group (Drivers)
Group (STM32_StdPeriph)
Group (Kernel)
Group (CORTEX-M3)
Group (DeviceDrivers)
Group (finsh)
Group (Components)
File 1,1,<applications\application.c><application.c>
File 1,1,<applications\startup.c><startup.c>
File 2,1,<drivers\board.c><board.c>
File 2,1,<drivers\stm32f10x_it.c><stm32f10x_it.c>
File 2,1,<drivers\led.c><led.c>
File 2,1,<drivers\usart.c><usart.c>
File 3,1,<Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c><system_stm32f10x.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c><stm32f10x_crc.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c><stm32f10x_rcc.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c><stm32f10x_wwdg.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c><stm32f10x_pwr.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c><stm32f10x_exti.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c><stm32f10x_bkp.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c><stm32f10x_i2c.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c><stm32f10x_adc.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c><stm32f10x_dac.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c><stm32f10x_rtc.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c><stm32f10x_fsmc.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c><stm32f10x_tim.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c><stm32f10x_iwdg.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c><stm32f10x_spi.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c><stm32f10x_flash.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c><stm32f10x_sdio.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c><stm32f10x_gpio.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c><stm32f10x_usart.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c><stm32f10x_dbgmcu.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c><stm32f10x_dma.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c><stm32f10x_can.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c><stm32f10x_cec.c>
File 3,1,<Libraries\STM32F10x_StdPeriph_Driver\src\misc.c><misc.c>
File 3,2,<Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s><startup_stm32f10x_hd.s>
File 4,1,<..\..\src\clock.c><clock.c>
File 4,1,<..\..\src\device.c><device.c>
File 4,1,<..\..\src\idle.c><idle.c>
File 4,1,<..\..\src\ipc.c><ipc.c>
File 4,1,<..\..\src\irq.c><irq.c>
File 4,1,<..\..\src\kservice.c><kservice.c>
File 4,1,<..\..\src\mem.c><mem.c>
File 4,1,<..\..\src\mempool.c><mempool.c>
File 4,1,<..\..\src\object.c><object.c>
File 4,1,<..\..\src\scheduler.c><scheduler.c>
File 4,1,<..\..\src\thread.c><thread.c>
File 4,1,<..\..\src\timer.c><timer.c>
File 5,1,<..\..\libcpu\arm\cortex-m3\cpuport.c><cpuport.c>
File 5,2,<..\..\libcpu\arm\cortex-m3\context_rvds.S><context_rvds.S>
File 5,1,<..\..\libcpu\arm\common\backtrace.c><backtrace.c>
File 5,1,<..\..\libcpu\arm\common\div0.c><div0.c>
File 5,1,<..\..\libcpu\arm\common\showmem.c><showmem.c>
File 6,1,<..\..\components\drivers\serial\serial.c><serial.c>
File 6,1,<..\..\components\drivers\src\completion.c><completion.c>
File 6,1,<..\..\components\drivers\src\dataqueue.c><dataqueue.c>
File 6,1,<..\..\components\drivers\src\pipe.c><pipe.c>
File 6,1,<..\..\components\drivers\src\ringbuffer.c><ringbuffer.c>
File 7,1,<..\..\components\finsh\cmd.c><cmd.c>
File 7,1,<..\..\components\finsh\finsh_compiler.c><finsh_compiler.c>
File 7,1,<..\..\components\finsh\finsh_error.c><finsh_error.c>
File 7,1,<..\..\components\finsh\finsh_heap.c><finsh_heap.c>
File 7,1,<..\..\components\finsh\finsh_init.c><finsh_init.c>
File 7,1,<..\..\components\finsh\finsh_node.c><finsh_node.c>
File 7,1,<..\..\components\finsh\finsh_ops.c><finsh_ops.c>
File 7,1,<..\..\components\finsh\finsh_parser.c><finsh_parser.c>
File 7,1,<..\..\components\finsh\finsh_token.c><finsh_token.c>
File 7,1,<..\..\components\finsh\finsh_var.c><finsh_var.c>
File 7,1,<..\..\components\finsh\finsh_vm.c><finsh_vm.c>
File 7,1,<..\..\components\finsh\msh.c><msh.c>
File 7,1,<..\..\components\finsh\msh_cmd.c><msh_cmd.c>
File 7,1,<..\..\components\finsh\shell.c><shell.c>
File 7,1,<..\..\components\finsh\symbol.c><symbol.c>
File 8,1,<..\..\components\init\components.c><components.c>
File 1,1,<Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/system_stm32f10x.c><system_stm32f10x.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_crc.c><stm32f10x_crc.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rcc.c><stm32f10x_rcc.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_wwdg.c><stm32f10x_wwdg.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_pwr.c><stm32f10x_pwr.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_exti.c><stm32f10x_exti.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_bkp.c><stm32f10x_bkp.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_i2c.c><stm32f10x_i2c.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_adc.c><stm32f10x_adc.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dac.c><stm32f10x_dac.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_rtc.c><stm32f10x_rtc.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_fsmc.c><stm32f10x_fsmc.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c><stm32f10x_tim.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_iwdg.c><stm32f10x_iwdg.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_spi.c><stm32f10x_spi.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_flash.c><stm32f10x_flash.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_sdio.c><stm32f10x_sdio.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_gpio.c><stm32f10x_gpio.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_usart.c><stm32f10x_usart.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dbgmcu.c><stm32f10x_dbgmcu.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_dma.c><stm32f10x_dma.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_can.c><stm32f10x_can.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/stm32f10x_cec.c><stm32f10x_cec.c>
File 1,1,<Libraries/STM32F10x_StdPeriph_Driver/src/misc.c><misc.c>
File 1,2,<Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x/startup/arm/startup_stm32f10x_hd.s><startup_stm32f10x_hd.s>
File 2,1,<applications/application.c><application.c>
File 2,1,<applications/startup.c><startup.c>
File 3,1,<drivers/board.c><board.c>
File 3,1,<drivers/stm32f10x_it.c><stm32f10x_it.c>
File 3,1,<drivers/led.c><led.c>
File 3,1,<drivers/usart.c><usart.c>
File 4,1,<../../src/clock.c><clock.c>
File 4,1,<../../src/components.c><components.c>
File 4,1,<../../src/device.c><device.c>
File 4,1,<../../src/idle.c><idle.c>
File 4,1,<../../src/ipc.c><ipc.c>
File 4,1,<../../src/irq.c><irq.c>
File 4,1,<../../src/kservice.c><kservice.c>
File 4,1,<../../src/mem.c><mem.c>
File 4,1,<../../src/mempool.c><mempool.c>
File 4,1,<../../src/object.c><object.c>
File 4,1,<../../src/scheduler.c><scheduler.c>
File 4,1,<../../src/thread.c><thread.c>
File 4,1,<../../src/timer.c><timer.c>
File 5,1,<../../libcpu/arm/cortex-m3/cpuport.c><cpuport.c>
File 5,2,<../../libcpu/arm/cortex-m3/context_rvds.S><context_rvds.S>
File 5,1,<../../libcpu/arm/common/backtrace.c><backtrace.c>
File 5,1,<../../libcpu/arm/common/div0.c><div0.c>
File 5,1,<../../libcpu/arm/common/showmem.c><showmem.c>
File 6,1,<../../components/drivers/serial/serial.c><serial.c>
File 6,1,<../../components/drivers/src/completion.c><completion.c>
File 6,1,<../../components/drivers/src/dataqueue.c><dataqueue.c>
File 6,1,<../../components/drivers/src/pipe.c><pipe.c>
File 6,1,<../../components/drivers/src/portal.c><portal.c>
File 6,1,<../../components/drivers/src/ringbuffer.c><ringbuffer.c>
File 6,1,<../../components/drivers/src/workqueue.c><workqueue.c>
File 7,1,<../../components/finsh/shell.c><shell.c>
File 7,1,<../../components/finsh/symbol.c><symbol.c>
File 7,1,<../../components/finsh/cmd.c><cmd.c>
File 7,1,<../../components/finsh/finsh_compiler.c><finsh_compiler.c>
File 7,1,<../../components/finsh/finsh_error.c><finsh_error.c>
File 7,1,<../../components/finsh/finsh_heap.c><finsh_heap.c>
File 7,1,<../../components/finsh/finsh_init.c><finsh_init.c>
File 7,1,<../../components/finsh/finsh_node.c><finsh_node.c>
File 7,1,<../../components/finsh/finsh_ops.c><finsh_ops.c>
File 7,1,<../../components/finsh/finsh_parser.c><finsh_parser.c>
File 7,1,<../../components/finsh/finsh_var.c><finsh_var.c>
File 7,1,<../../components/finsh/finsh_vm.c><finsh_vm.c>
File 7,1,<../../components/finsh/finsh_token.c><finsh_token.c>
@ -143,7 +142,7 @@ Options 1,0,0 // Target 'RT-Thread STM32'
ADSCMISC ()
ADSCDEFN (STM32F10X_HD, USE_STDPERIPH_DRIVER)
ADSCUDEF ()
ADSCINCD (Libraries\STM32F10x_StdPeriph_Driver\inc;..\..\include;drivers;..\..\components\CMSIS\Include;.;applications;..\..\libcpu\arm\cortex-m3;..\..\components\drivers\include;..\..\libcpu\arm\common;..\..\components\init;..\..\components\finsh;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x)
ADSCINCD (../../libcpu/arm/cortex-m3;../../components/drivers/include;Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x;../../libcpu/arm/common;.;applications;../../include;../../components/finsh;../../components/CMSIS/Include;drivers;Libraries/STM32F10x_StdPeriph_Driver/inc)
ADSASFLG { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
ADSAMISC ()
ADSADEFN ()
@ -164,7 +163,7 @@ Options 1,0,0 // Target 'RT-Thread STM32'
ADSLDSC ()
ADSLDIB ()
ADSLDIC ()
ADSLDMC ( --keep __fsym_* --keep __vsym_* --keep __rt_init* )
ADSLDMC ( --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) )
ADSLDIF ()
ADSLDDW ()
OPTDL (SARMCM3.DLL)()(DARMSTM.DLL)(-pSTM32F103ZE)(SARMCM3.DLL)()(TARMSTM.DLL)(-pSTM32F103ZE)

View File

@ -343,7 +343,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER</Define>
<Undefine />
<IncludePath>.;..\..\components\CMSIS\Include;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m3;Drivers;Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx;Libraries\STM32F2xx_StdPeriph_Driver\inc;applications</IncludePath>
<IncludePath>Libraries/STM32F2xx_StdPeriph_Driver/inc;Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F2xx;../../components/CMSIS/Include;applications;.;Drivers;../../include;../../libcpu/arm/cortex-m3;../../libcpu/arm/common;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -373,27 +373,261 @@
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>STM32_StdPeriph</GroupName>
<Files>
<File>
<FileName>system_stm32f2xx.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F2xx/system_stm32f2xx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>misc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_can.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_crc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_cryp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_aes.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_cryp_aes.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_des.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_cryp_des.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_tdes.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_cryp_tdes.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dac.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dbgmcu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_dbgmcu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dcmi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_dcmi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_exti.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_exti.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_fsmc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_fsmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_hash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash_md5.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_hash_md5.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash_sha1.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_hash_sha1.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_iwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_pwr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_rcc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rng.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_rng.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_sdio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_spi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_syscfg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_syscfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_tim.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_tim.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_usart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_wwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries/STM32F2xx_StdPeriph_Driver/src/stm32f2xx_wwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_stm32f2xx.s</FileName>
<FileType>2</FileType>
<FilePath>Libraries/CMSIS/CM3/DeviceSupport/ST/STM32F2xx/startup/arm/startup_stm32f2xx.s</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications\application.c</FilePath>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications\startup.c</FilePath>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
@ -403,290 +637,56 @@
<File>
<FileName>24LCxx.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\24LCxx.c</FilePath>
<FilePath>Drivers/24LCxx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>FM25Lx.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\FM25Lx.c</FilePath>
<FilePath>Drivers/FM25Lx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>board.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\board.c</FilePath>
<FilePath>Drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\i2c.c</FilePath>
<FilePath>Drivers/i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>rtc.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\rtc.c</FilePath>
<FilePath>Drivers/rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\serial.c</FilePath>
<FilePath>Drivers/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_it.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\stm32f2xx_it.c</FilePath>
<FilePath>Drivers/stm32f2xx_it.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>Drivers\usart.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>STM32_StdPeriph</GroupName>
<Files>
<File>
<FileName>system_stm32f2xx.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\system_stm32f2xx.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>misc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\misc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_adc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_adc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_can.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_can.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_crc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_crc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_cryp.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_aes.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_cryp_aes.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_des.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_cryp_des.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_cryp_tdes.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_cryp_tdes.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dac.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_dac.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dbgmcu.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_dbgmcu.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dcmi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_dcmi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_dma.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_dma.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_exti.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_exti.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_flash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_flash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_fsmc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_fsmc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_hash.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash_md5.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_hash_md5.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_hash_sha1.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_hash_sha1.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_i2c.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_i2c.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_iwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_pwr.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_rcc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rng.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_rng.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_rtc.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_rtc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_sdio.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_sdio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_spi.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_spi.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_syscfg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_syscfg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_tim.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_tim.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_usart.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f2xx_wwdg.c</FileName>
<FileType>1</FileType>
<FilePath>Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_wwdg.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup_stm32f2xx.s</FileName>
<FileType>2</FileType>
<FilePath>Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup\arm\startup_stm32f2xx.s</FilePath>
<FilePath>Drivers/usart.c</FilePath>
</File>
</Files>
</Group>
@ -696,84 +696,91 @@
<File>
<FileName>clock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\device.c</FilePath>
<FilePath>../../src/device.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>idle.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\idle.c</FilePath>
<FilePath>../../src/idle.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ipc.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\ipc.c</FilePath>
<FilePath>../../src/ipc.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>irq.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\irq.c</FilePath>
<FilePath>../../src/irq.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>kservice.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\kservice.c</FilePath>
<FilePath>../../src/kservice.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath>
<FilePath>../../src/mem.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>mempool.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\mempool.c</FilePath>
<FilePath>../../src/mempool.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>object.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\object.c</FilePath>
<FilePath>../../src/object.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>scheduler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\scheduler.c</FilePath>
<FilePath>../../src/scheduler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>thread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\thread.c</FilePath>
<FilePath>../../src/thread.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\timer.c</FilePath>
<FilePath>../../src/timer.c</FilePath>
</File>
</Files>
</Group>
@ -783,129 +790,129 @@
<File>
<FileName>cpuport.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\cpuport.c</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/cpuport.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>context_rvds.S</FileName>
<FileType>2</FileType>
<FilePath>..\..\libcpu\arm\cortex-m3\context_rvds.S</FilePath>
<FilePath>../../libcpu/arm/cortex-m3/context_rvds.S</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>backtrace.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\backtrace.c</FilePath>
<FilePath>../../libcpu/arm/common/backtrace.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>div0.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\div0.c</FilePath>
<FilePath>../../libcpu/arm/common/div0.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>showmem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\libcpu\arm\common\showmem.c</FilePath>
<FilePath>../../libcpu/arm/common/showmem.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_token.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>shell.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\shell.c</FilePath>
<FilePath>../../components/finsh/shell.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>symbol.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\finsh\symbol.c</FilePath>
<FilePath>../../components/finsh/symbol.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>cmd.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/cmd.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_compiler.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_compiler.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_error.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_error.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_heap.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_heap.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_init.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_init.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_node.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_node.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_ops.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_ops.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_parser.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_parser.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_var.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_var.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_vm.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_vm.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>finsh_token.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/finsh/finsh_token.c</FilePath>
</File>
</Files>
</Group>

View File

@ -20,7 +20,7 @@
#include <lwip/sys.h>
#include <lwip/api.h>
#include <netif/ethernetif.h>
#include "stm32_eth.h"
#include "stm32f4xx_eth.h"
#endif
#ifdef RT_USING_GDB

View File

@ -3,9 +3,25 @@ Import('rtconfig')
from building import *
cwd = os.path.join(str(Dir('#')), 'drivers')
src = Glob('*.c')
# add the general drivers.
src = Split("""
board.c
stm32f4xx_it.c
usart.c
""")
# add Ethernet drivers.
if GetDepend('RT_USING_LWIP'):
src += ['stm32f4xx_eth.c']
# add gpio drivers.
if GetDepend('RT_USING_PIN'):
src += ['gpio.c']
CPPPATH = [cwd]
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
Return('group')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -343,7 +343,7 @@
<MiscControls />
<Define>USE_STDPERIPH_DRIVER</Define>
<Undefine />
<IncludePath>applications;.;Libraries/STM32F4xx_StdPeriph_Driver/inc;Libraries/CMSIS/ST/STM32F4xx/Include;Libraries/CMSIS/Include;drivers;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/finsh;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include</IncludePath>
<IncludePath>Libraries/STM32F4xx_StdPeriph_Driver/inc;Libraries/CMSIS/ST/STM32F4xx/Include;Libraries/CMSIS/Include;applications;.;drivers;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/finsh</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -373,30 +373,13 @@
<ScatterFile />
<IncludeLibs />
<IncludeLibsPath />
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile />
<DisabledWarnings />
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>STM32_StdPeriph</GroupName>
<Files>
@ -631,6 +614,23 @@
</File>
</Files>
</Group>
<Group>
<GroupName>Applications</GroupName>
<Files>
<File>
<FileName>application.c</FileName>
<FileType>1</FileType>
<FilePath>applications/application.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>startup.c</FileName>
<FileType>1</FileType>
<FilePath>applications/startup.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers</GroupName>
<Files>
@ -640,13 +640,6 @@
<FilePath>drivers/board.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/gpio.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>stm32f4xx_it.c</FileName>
@ -661,6 +654,13 @@
<FilePath>drivers/usart.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>drivers/gpio.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Kernel</GroupName>
@ -671,6 +671,13 @@
<FilePath>../../src/clock.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>../../src/components.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>device.c</FileName>
@ -787,6 +794,65 @@
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/misc/pin.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>
@ -881,65 +947,6 @@
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/serial/serial.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/misc/pin.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/completion.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/dataqueue.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/pipe.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/portal.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/ringbuffer.c</FilePath>
</File>
</Files>
<Files>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>../../components/drivers/src/workqueue.c</FilePath>
</File>
</Files>
</Group>
</Groups>
</Target>
</Targets>

View File

@ -365,7 +365,7 @@
<MiscControls></MiscControls>
<Define>USE_STDPERIPH_DRIVER</Define>
<Undefine></Undefine>
<IncludePath>.;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;Libraries\CMSIS\Include;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\STM32F4xx_StdPeriph_Driver\inc;applications;drivers</IncludePath>
<IncludePath>.;..\..\components\drivers\include;..\..\components\finsh;..\..\include;..\..\libcpu\arm\common;..\..\libcpu\arm\cortex-m4;Libraries\CMSIS\Include;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\STM32F4xx_StdPeriph_Driver\inc;applications;drivers</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -398,7 +398,7 @@
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc> --keep __fsym_* --keep __vsym_* </Misc>
<Misc> --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
@ -428,11 +428,6 @@
<FileType>1</FileType>
<FilePath>drivers\board.c</FilePath>
</File>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\serial.c</FilePath>
</File>
<File>
<FileName>stm32f4xx_it.c</FileName>
<FileType>1</FileType>
@ -443,6 +438,11 @@
<FileType>1</FileType>
<FilePath>drivers\usart.c</FilePath>
</File>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\gpio.c</FilePath>
</File>
</Files>
</Group>
<Group>
@ -623,6 +623,11 @@
<FileType>1</FileType>
<FilePath>..\..\src\clock.c</FilePath>
</File>
<File>
<FileName>components.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\src\components.c</FilePath>
</File>
<File>
<FileName>device.c</FileName>
<FileType>1</FileType>
@ -710,6 +715,51 @@
</File>
</Files>
</Group>
<Group>
<GroupName>DeviceDrivers</GroupName>
<Files>
<File>
<FileName>pin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\misc\pin.c</FilePath>
</File>
<File>
<FileName>serial.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\serial\serial.c</FilePath>
</File>
<File>
<FileName>completion.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\completion.c</FilePath>
</File>
<File>
<FileName>dataqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\dataqueue.c</FilePath>
</File>
<File>
<FileName>pipe.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\pipe.c</FilePath>
</File>
<File>
<FileName>portal.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\portal.c</FilePath>
</File>
<File>
<FileName>ringbuffer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\ringbuffer.c</FilePath>
</File>
<File>
<FileName>workqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\drivers\src\workqueue.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>finsh</GroupName>
<Files>

1210
bsp/tm4c129x/project.uvproj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
from building import *
cwd = GetCurrentDir()
src = Glob('*.c')
CPPPATH = [cwd + '/../include']
group = DefineGroup('DeviceDrivers', src, depend = ['RT_USING_CAN'], CPPPATH = CPPPATH)
Return('group')

View File

@ -0,0 +1,907 @@
/*
* File : can.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2015, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
*
* Change Logs:
* Date Author Notes
* 2015-05-14 aubrcool@qq.com first version
*/
#include <rthw.h>
#include <rtthread.h>
#include <rtdevice.h>
static rt_err_t rt_can_init(struct rt_device *dev)
{
rt_err_t result = RT_EOK;
struct rt_can_device *can;
RT_ASSERT(dev != RT_NULL);
can = (struct rt_can_device *)dev;
/* initialize rx/tx */
can->can_rx = RT_NULL;
can->can_tx = RT_NULL;
/* apply configuration */
if (can->ops->configure)
result = can->ops->configure(can, &can->config);
return result;
}
/*
* can interrupt routines
*/
rt_inline int _can_int_rx(struct rt_can_device *can, struct rt_can_msg *data, int msgs)
{
int size;
struct rt_can_rx_fifo* rx_fifo;
RT_ASSERT(can != RT_NULL);
size = msgs;
rx_fifo = (struct rt_can_rx_fifo*) can->can_rx;
RT_ASSERT(rx_fifo != RT_NULL);
/* read from software FIFO */
while (msgs)
{
rt_base_t level;
struct rt_can_msg_list *listmsg=RT_NULL;
/* disable interrupt */
level = rt_hw_interrupt_disable();
#ifdef RT_CAN_USING_HDR
rt_int32_t hdr = data->hdr;
if (hdr >=0 && can->hdr && hdr < can->config.maxhdr && !rt_list_isempty(&can->hdr[hdr].list))
{
listmsg=rt_list_entry(can->hdr[hdr].list.next, struct rt_can_msg_list, hdrlist);
rt_list_remove(&listmsg->list);
rt_list_remove(&listmsg->hdrlist);
if(can->hdr[hdr].msgs) {
can->hdr[hdr].msgs--;
}
listmsg->owner = RT_NULL;
} else
#endif /*RT_CAN_USING_HDR*/
if (!rt_list_isempty(&rx_fifo->uselist))
{
listmsg=rt_list_entry(rx_fifo->uselist.next, struct rt_can_msg_list, list);
rt_list_remove(&listmsg->list);
#ifdef RT_CAN_USING_HDR
rt_list_remove(&listmsg->hdrlist);
if(listmsg->owner != RT_NULL && listmsg->owner->msgs) {
listmsg->owner->msgs--;
}
listmsg->owner = RT_NULL;
#endif
}
else
{
/* no data, enable interrupt and break out */
rt_hw_interrupt_enable(level);
break;
}
/* enable interrupt */
rt_hw_interrupt_enable(level);
if(listmsg!=RT_NULL)
{
rt_memcpy(data,&listmsg->data,sizeof(struct rt_can_msg));
level = rt_hw_interrupt_disable();
rt_list_insert_before(&rx_fifo->freelist,&listmsg->list);
rx_fifo->freenumbers++;
RT_ASSERT(rx_fifo->freenumbers <= can->config.msgboxsz);
rt_hw_interrupt_enable(level);
listmsg = RT_NULL;
}
data ++; msgs -= sizeof(struct rt_can_msg);
}
return (size - msgs);
}
rt_inline int _can_int_tx(struct rt_can_device *can, const struct rt_can_msg *data, int msgs)
{
int size;
struct rt_can_tx_fifo *tx_fifo;
RT_ASSERT(can != RT_NULL);
size = msgs;
tx_fifo = (struct rt_can_tx_fifo*) can->can_tx;
RT_ASSERT(tx_fifo != RT_NULL);
while (msgs)
{
rt_base_t level;
rt_uint32_t no;
struct rt_can_sndbxinx_list* tx_tosnd = RT_NULL;
level = rt_hw_interrupt_disable();
if(!rt_list_isempty(&tx_fifo->freelist))
{
tx_tosnd = rt_list_entry(tx_fifo->freelist.next, struct rt_can_sndbxinx_list, list);
RT_ASSERT(tx_tosnd != RT_NULL);
rt_list_remove(&tx_tosnd->list);
} else {
rt_hw_interrupt_enable(level);
rt_completion_wait(&(tx_fifo->completion), RT_WAITING_FOREVER);
continue;
}
rt_hw_interrupt_enable(level);
no=((rt_uint32_t)tx_tosnd-(rt_uint32_t)tx_fifo->buffer)/sizeof(struct rt_can_sndbxinx_list);
tx_tosnd->result = RT_CAN__SND_RESUTL_WAIT;
if (can->ops->sendmsg(can, data ,no))
{
level = rt_hw_interrupt_disable();
rt_list_insert_after(&tx_fifo->freelist,&tx_tosnd->list);
rt_hw_interrupt_enable(level);
continue;
}
can->status.sndchange = 1;
rt_completion_wait(&(tx_tosnd->completion), RT_WAITING_FOREVER);
level = rt_hw_interrupt_disable();
rt_uint32_t result = tx_tosnd->result;
if(!rt_list_isempty(&tx_tosnd->list)) {
rt_list_remove(&tx_tosnd->list);
}
rt_list_insert_before(&tx_fifo->freelist,&tx_tosnd->list);
rt_hw_interrupt_enable(level);
if(result == RT_CAN__SND_RESUTL_OK)
{
level = rt_hw_interrupt_disable();
can->status.sndpkg++;
rt_hw_interrupt_enable(level);
data ++; msgs -= sizeof(struct rt_can_msg);
if(!msgs) break;
}
else
{
level = rt_hw_interrupt_disable();
can->status.dropedsndpkg++;
rt_hw_interrupt_enable(level);
break;
}
level = rt_hw_interrupt_disable();
if(rt_list_isempty(&tx_fifo->freelist))
{
rt_hw_interrupt_enable(level);
rt_completion_done(&(tx_fifo->completion));
}
else
{
rt_hw_interrupt_enable(level);
}
}
return (size - msgs);
}
rt_inline int _can_int_tx_priv(struct rt_can_device *can, const struct rt_can_msg *data, int msgs)
{
int size;
struct rt_can_tx_fifo *tx_fifo;
RT_ASSERT(can != RT_NULL);
size = msgs;
tx_fifo = (struct rt_can_tx_fifo*) can->can_tx;
RT_ASSERT(tx_fifo != RT_NULL);
rt_base_t level;
rt_uint32_t no;
rt_uint32_t result;
while (msgs)
{
no = data->priv;
if(no >= can->config.sndboxnumber) {
break;
}
level = rt_hw_interrupt_disable();
if((tx_fifo->buffer[no].result != RT_CAN__SND_RESUTL_OK)) {
rt_hw_interrupt_enable(level);
rt_completion_wait(&(tx_fifo->buffer[no].completion), RT_WAITING_FOREVER);
continue;
}
tx_fifo->buffer[no].result = RT_CAN__SND_RESUTL_WAIT;
rt_hw_interrupt_enable(level);
if (can->ops->sendmsg(can, data ,no) != RT_EOK)
{
continue;
}
can->status.sndchange = 1;
rt_completion_wait(&(tx_fifo->buffer[no].completion), RT_WAITING_FOREVER);
result = tx_fifo->buffer[no].result;
if(result == RT_CAN__SND_RESUTL_OK)
{
level = rt_hw_interrupt_disable();
can->status.sndpkg++;
rt_hw_interrupt_enable(level);
data ++; msgs -= sizeof(struct rt_can_msg);
if(!msgs) break;
}
else
{
level = rt_hw_interrupt_disable();
can->status.dropedsndpkg++;
rt_hw_interrupt_enable(level);
break;
}
}
return (size - msgs);
}
static rt_err_t rt_can_open(struct rt_device *dev, rt_uint16_t oflag)
{
struct rt_can_device *can;
RT_ASSERT(dev != RT_NULL);
can = (struct rt_can_device *)dev;
/* get open flags */
dev->open_flag = oflag & 0xff;
rt_enter_critical();
if (can->can_rx == RT_NULL)
{
if (oflag & RT_DEVICE_FLAG_INT_RX)
{
struct rt_can_rx_fifo* rx_fifo;
rx_fifo = (struct rt_can_rx_fifo*) rt_malloc (sizeof(struct rt_can_rx_fifo) +
can->config.msgboxsz * sizeof(struct rt_can_msg_list));
RT_ASSERT(rx_fifo != RT_NULL);
rx_fifo->buffer = (struct rt_can_msg_list*) (rx_fifo + 1);
rt_memset(rx_fifo->buffer, 0, can->config.msgboxsz * sizeof(struct rt_can_msg_list));
rt_list_init(&rx_fifo->freelist);
rt_list_init(&rx_fifo->uselist);
rx_fifo->freenumbers=can->config.msgboxsz;
int i = 0;
for(i = 0; i< can->config.msgboxsz; i++)
{
rt_list_insert_before(&rx_fifo->freelist,&rx_fifo->buffer[i].list);
#ifdef RT_CAN_USING_HDR
rt_list_init(&rx_fifo->buffer[i].hdrlist);
rx_fifo->buffer[i].owner = RT_NULL;
#endif
}
can->can_rx = rx_fifo;
rt_exit_critical();
dev->open_flag |= RT_DEVICE_FLAG_INT_RX;
/* configure low level device */
can->ops->control(can, RT_DEVICE_CTRL_SET_INT, (void *)RT_DEVICE_FLAG_INT_RX);
}
else
{
can->can_rx = RT_NULL;
rt_exit_critical();
}
} else {
rt_exit_critical();
}
rt_enter_critical();
if (can->can_tx == RT_NULL)
{
if (oflag & RT_DEVICE_FLAG_INT_TX)
{
struct rt_can_tx_fifo *tx_fifo;
tx_fifo = (struct rt_can_tx_fifo*) rt_malloc(sizeof(struct rt_can_tx_fifo)+
can->config.sndboxnumber*sizeof(struct rt_can_sndbxinx_list));
RT_ASSERT(tx_fifo != RT_NULL);
tx_fifo->buffer = (struct rt_can_sndbxinx_list *) (tx_fifo + 1);
rt_memset(tx_fifo->buffer, 0,
can->config.sndboxnumber*sizeof(struct rt_can_sndbxinx_list));
rt_list_init(&tx_fifo->freelist);
int i = 0;
for(i = 0; i< can->config.sndboxnumber; i++)
{
rt_list_insert_before(&tx_fifo->freelist,&tx_fifo->buffer[i].list);
rt_completion_init(&(tx_fifo->buffer[i].completion));
tx_fifo->buffer[i].result = RT_CAN__SND_RESUTL_OK;
}
rt_completion_init(&(tx_fifo->completion));
can->can_tx = tx_fifo;
rt_exit_critical();
dev->open_flag |= RT_DEVICE_FLAG_INT_TX;
/* configure low level device */
can->ops->control(can, RT_DEVICE_CTRL_SET_INT, (void *)RT_DEVICE_FLAG_INT_TX);
}
else
{
can->can_tx = RT_NULL;
rt_exit_critical();
}
} else {
rt_exit_critical();
}
can->ops->control(can, RT_DEVICE_CTRL_SET_INT, (void *)RT_DEVICE_CAN_INT_ERR);
#ifdef RT_CAN_USING_HDR
rt_enter_critical();
if(can->hdr == RT_NULL) {
struct rt_can_hdr * phdr;
phdr = (struct rt_can_hdr *) rt_malloc(can->config.maxhdr*sizeof(struct rt_can_hdr));
RT_ASSERT(phdr != RT_NULL);
rt_memset(phdr, 0,can->config.maxhdr*sizeof(struct rt_can_hdr));
int i = 0;
for(i = 0; i< can->config.maxhdr; i++)
{
rt_list_init(&phdr[i].list);
}
can->hdr = phdr;
rt_exit_critical();
} else {
rt_exit_critical();
}
#endif
rt_enter_critical();
if(!can->timerinitflag) {
can->timerinitflag = 1;
rt_exit_critical();
#ifdef RT_CAN_USING_LED
if(can->config.rcvled != RT_NULL) {
rt_pin_mode(can->config.rcvled->pin,can->config.rcvled->mode);
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init);
}
if(can->config.sndled != RT_NULL) {
rt_pin_mode(can->config.sndled->pin,can->config.sndled->mode);
rt_pin_write(can->config.sndled->pin,can->config.sndled->init);
}
if(can->config.errled != RT_NULL) {
rt_pin_mode(can->config.errled->pin,can->config.errled->mode);
rt_pin_write(can->config.errled->pin,can->config.errled->init);
}
#endif
rt_timer_start(&can->timer);
} else {
rt_exit_critical();
}
return RT_EOK;
}
static rt_err_t rt_can_close(struct rt_device *dev)
{
struct rt_can_device *can;
RT_ASSERT(dev != RT_NULL);
can = (struct rt_can_device *)dev;
/* this device has more reference count */
if (dev->ref_count > 1) return RT_EOK;
rt_enter_critical();
if(can->timerinitflag) {
can->timerinitflag = 0;
rt_exit_critical();
rt_timer_stop(&can->timer);
#ifdef RT_CAN_USING_LED
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init);
rt_pin_write(can->config.rcvled->pin,can->config.sndled->init);
rt_pin_write(can->config.rcvled->pin,can->config.errled->init);
#endif
} else {
rt_exit_critical();
}
rt_enter_critical();
can->status_indicate.ind = RT_NULL;
can->status_indicate.args = RT_NULL;
rt_exit_critical();
#ifdef RT_CAN_USING_HDR
rt_enter_critical();
if(can->hdr != RT_NULL) {
rt_free(can->hdr);
can->hdr = RT_NULL;
rt_exit_critical();
} else {
rt_exit_critical();
}
#endif
if (dev->open_flag & RT_DEVICE_FLAG_INT_RX)
{
struct rt_can_rx_fifo* rx_fifo;
rx_fifo = (struct rt_can_rx_fifo*)can->can_rx;
RT_ASSERT(rx_fifo != RT_NULL);
rt_free(rx_fifo);
dev->open_flag &= ~RT_DEVICE_FLAG_INT_RX;
/* configure low level device */
can->ops->control(can, RT_DEVICE_CTRL_CLR_INT, (void*)RT_DEVICE_FLAG_INT_TX);
}
if (dev->open_flag & RT_DEVICE_FLAG_INT_TX)
{
struct rt_can_tx_fifo* tx_fifo;
tx_fifo = (struct rt_can_tx_fifo*)can->can_rx;
RT_ASSERT(tx_fifo != RT_NULL);
rt_free(tx_fifo);
dev->open_flag &= ~RT_DEVICE_FLAG_INT_TX;
/* configure low level device */
can->ops->control(can, RT_DEVICE_CTRL_CLR_INT, (void*)RT_DEVICE_FLAG_INT_TX);
}
can->ops->control(can, RT_DEVICE_CTRL_CLR_INT, (void *)RT_DEVICE_CAN_INT_ERR);
return RT_EOK;
}
static rt_size_t rt_can_read(struct rt_device *dev,
rt_off_t pos,
void *buffer,
rt_size_t size)
{
struct rt_can_device *can;
RT_ASSERT(dev != RT_NULL);
if (size == 0) return 0;
can = (struct rt_can_device *)dev;
if (dev->open_flag & RT_DEVICE_FLAG_INT_RX)
{
return _can_int_rx(can, buffer, size);
}
return 0;
}
static rt_size_t rt_can_write(struct rt_device *dev,
rt_off_t pos,
const void *buffer,
rt_size_t size)
{
struct rt_can_device *can;
RT_ASSERT(dev != RT_NULL);
if (size == 0) return 0;
can = (struct rt_can_device *)dev;
if (dev->open_flag & RT_DEVICE_FLAG_INT_TX)
{
if(can->config.privmode) {
return _can_int_tx_priv(can, buffer, size);
} else {
return _can_int_tx(can, buffer, size);
}
}
return 0;
}
static rt_err_t rt_can_control(struct rt_device *dev,
rt_uint8_t cmd,
void *args)
{
struct rt_can_device *can;
rt_err_t res;
RT_ASSERT(dev != RT_NULL);
can = (struct rt_can_device *)dev;
switch (cmd)
{
case RT_DEVICE_CTRL_SUSPEND:
/* suspend device */
dev->flag |= RT_DEVICE_FLAG_SUSPENDED;
break;
case RT_DEVICE_CTRL_RESUME:
/* resume device */
dev->flag &= ~RT_DEVICE_FLAG_SUSPENDED;
break;
case RT_DEVICE_CTRL_CONFIG:
/* configure device */
can->ops->configure(can, (struct can_configure *)args);
break;
case RT_CAN_CMD_SET_PRIV:
/* configure device */
if((rt_uint32_t)args != can->config.privmode) {
if(res = can->ops->control(can, cmd, args) != RT_EOK) {
return res;
}
struct rt_can_tx_fifo* tx_fifo;
tx_fifo = (struct rt_can_tx_fifo*) can->can_tx;
int i;
rt_base_t level;
if(can->config.privmode) {
rt_completion_done(&(tx_fifo->completion));
level = rt_hw_interrupt_disable();
for(i = 0; i< can->config.sndboxnumber; i++)
{
rt_list_remove(&tx_fifo->buffer[i].list);
}
rt_hw_interrupt_enable(level);
} else {
for(i = 0; i< can->config.sndboxnumber; i++)
{
rt_base_t level;
level = rt_hw_interrupt_disable();
if(tx_fifo->buffer[i].result == RT_CAN__SND_RESUTL_OK) {
rt_list_insert_before(&tx_fifo->freelist,&tx_fifo->buffer[i].list);
}
rt_hw_interrupt_enable(level);
}
}
return RT_EOK;
}
break;
case RT_CAN_CMD_SET_STATUS_IND:
can->status_indicate.ind = ((rt_can_status_ind_type_t)args)->ind;
can->status_indicate.args = ((rt_can_status_ind_type_t)args)->args;
break;
#ifdef RT_CAN_USING_HDR
case RT_CAN_CMD_SET_FILTER:
res = can->ops->control(can, cmd, args);
if(res != RT_EOK || can->hdr == RT_NULL) {
return res;
}
{
struct rt_can_filter_config* pfilter;
struct rt_can_filter_item* pitem;
rt_uint32_t count;
rt_base_t level;
pfilter = (struct rt_can_filter_config*)args;
count = pfilter->count;
pitem = pfilter->items;
if(pfilter->actived) {
while(count) {
if(pitem->hdr >= can->config.maxhdr || pitem->hdr < 0) {
count--;
pitem++;
continue;
}
level = rt_hw_interrupt_disable();
if(!can->hdr[pitem->hdr].connected) {
rt_memcpy(&can->hdr[pitem->hdr].filter,pitem,
sizeof(struct rt_can_filter_item));
can->hdr[pitem->hdr].connected = 1;
can->hdr[pitem->hdr].msgs = 0;
rt_list_init(&can->hdr[pitem->hdr].list);
}
rt_hw_interrupt_enable(level);
count--;
pitem++;
}
} else {
while(count) {
if(pitem->hdr >= can->config.maxhdr || pitem->hdr < 0) {
count--;
pitem++;
continue;
}
level = rt_hw_interrupt_disable();
if(can->hdr[pitem->hdr].connected) {
rt_memset(&can->hdr[pitem->hdr].filter,0,
sizeof(struct rt_can_filter_item));
can->hdr[pitem->hdr].connected = 0;
can->hdr[pitem->hdr].msgs = 0;
if(!rt_list_isempty(&can->hdr[pitem->hdr].list))
{
rt_list_remove(can->hdr[pitem->hdr].list.next);
}
}
rt_hw_interrupt_enable(level);
count--;
pitem++;
}
}
}
break;
#endif /*RT_CAN_USING_HDR*/
default :
/* control device */
if(can->ops->control != RT_NULL)
{
can->ops->control(can, cmd, args);
}
break;
}
return RT_EOK;
}
/*
* can timer
*/
static void cantimeout(void* arg)
{
rt_uint32_t ledonflag = 0;
rt_can_t can = (rt_can_t)arg;
rt_device_control((rt_device_t)can,RT_CAN_CMD_GET_STATUS,(void* )&can->status);
if(can->timerinitflag == 1) {
ledonflag = 1;
can->timerinitflag = 0xFF;
}
#ifdef RT_CAN_USING_LED
if(can->config.rcvled != RT_NULL && can->config.sndled == RT_NULL) {
if(ledonflag == 1) {
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init?0:1);
} else {
if(can->status.rcvchange == 1 || can->status.sndchange == 1)
{
can->status.rcvchange = 0;
can->status.sndchange = 0;
rt_pin_write(can->config.rcvled->pin,rt_pin_read(can->config.rcvled->pin)?0:1);
} else {
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init);
}
}
} else if(can->config.rcvled != RT_NULL && can->config.sndled != RT_NULL) {
if(ledonflag == 1) {
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init?0:1);
rt_pin_write(can->config.sndled->pin,can->config.sndled->init?0:1);
} else {
if(can->status.rcvchange == 1)
{
can->status.rcvchange = 0;
rt_pin_write(can->config.rcvled->pin,rt_pin_read(can->config.rcvled->pin)?0:1);
} else {
rt_pin_write(can->config.rcvled->pin,can->config.rcvled->init);
}
if(can->status.sndchange == 1)
{
can->status.sndchange = 0;
rt_pin_write(can->config.sndled->pin,rt_pin_read(can->config.sndled->pin)?0:1);
} else {
rt_pin_write(can->config.sndled->pin,can->config.sndled->init);
}
}
} else if(can->config.rcvled == RT_NULL && can->config.sndled != RT_NULL) {
if(ledonflag == 1) {
rt_pin_write(can->config.sndled->pin,can->config.sndled->init?0:1);
} else {
if(can->status.rcvchange == 1 || can->status.sndchange == 1)
{
can->status.rcvchange = 0;
can->status.sndchange = 0;
rt_pin_write(can->config.sndled->pin,rt_pin_read(can->config.sndled->pin)?0:1);
} else {
rt_pin_write(can->config.sndled->pin,can->config.sndled->init);
}
}
}
if(ledonflag == 1) {
rt_pin_write(can->config.errled->pin,can->config.errled->init?0:1);
} else {
if(can->status.errcode) {
rt_pin_write(can->config.errled->pin,can->config.errled->init?0:1);
} else {
rt_pin_write(can->config.errled->pin,can->config.errled->init);
}
}
#endif
if(can->status_indicate.ind != RT_NULL)
{
can->status_indicate.ind(can,can->status_indicate.args);
}
}
/*
* can register
*/
rt_err_t rt_hw_can_register(struct rt_can_device *can,
const char *name,
const struct rt_can_ops *ops,
void *data)
{
struct rt_device *device;
RT_ASSERT(can != RT_NULL);
device = &(can->parent);
device->type = RT_Device_Class_CAN;
device->rx_indicate = RT_NULL;
device->tx_complete = RT_NULL;
#ifdef RT_CAN_USING_HDR
can->hdr = RT_NULL;
#endif
can->can_rx = RT_NULL;
can->can_tx = RT_NULL;
device->init = rt_can_init;
device->open = rt_can_open;
device->close = rt_can_close;
device->read = rt_can_read;
device->write = rt_can_write;
device->control = rt_can_control;
can->ops = ops;
can->status_indicate.ind = RT_NULL;
can->status_indicate.args = RT_NULL;
rt_memset(&can->status,0,sizeof(can->status));
device->user_data = data;
can->timerinitflag = 0;
if(can->config.rcvled != RT_NULL ||
can->config.sndled != RT_NULL ||
can->config.errled != RT_NULL)
{
rt_timer_init(&can->timer,
name,
cantimeout,
(void*)can,
can->config.ticks,
RT_TIMER_FLAG_PERIODIC);
}
/* register a character device */
return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR);
}
/* ISR for can interrupt */
void rt_hw_can_isr(struct rt_can_device *can, int event)
{
switch (event & 0xff)
{
case RT_CAN_EVENT_RXOF_IND:
{
rt_base_t level;
level = rt_hw_interrupt_disable();
can->status.dropedrcvpkg++;
rt_hw_interrupt_enable(level);
}
case RT_CAN_EVENT_RX_IND:
{
struct rt_can_msg tmpmsg;
struct rt_can_rx_fifo* rx_fifo;
struct rt_can_msg_list* listmsg=RT_NULL;
#ifdef RT_CAN_USING_HDR
rt_int32_t hdr;
#endif
int ch = -1;
rt_base_t level;
rx_fifo = (struct rt_can_rx_fifo*)can->can_rx;
RT_ASSERT(rx_fifo != RT_NULL);
/* interrupt mode receive */
RT_ASSERT(can->parent.open_flag & RT_DEVICE_FLAG_INT_RX);
rt_uint32_t no;
no = event >> 8;
ch = can->ops->recvmsg(can,&tmpmsg,no);
if (ch == -1) break;
/* disable interrupt */
level = rt_hw_interrupt_disable();
can->status.rcvpkg++;
can->status.rcvchange = 1;
if(!rt_list_isempty(&rx_fifo->freelist))
{
listmsg = rt_list_entry(rx_fifo->freelist.next, struct rt_can_msg_list, list);
rt_list_remove(&listmsg->list);
#ifdef RT_CAN_USING_HDR
rt_list_remove(&listmsg->hdrlist);
if(listmsg->owner != RT_NULL && listmsg->owner->msgs) {
listmsg->owner->msgs--;
}
listmsg->owner = RT_NULL;
#endif /*RT_CAN_USING_HDR*/
RT_ASSERT(rx_fifo->freenumbers >0);
rx_fifo->freenumbers--;
} else if(!rt_list_isempty(&rx_fifo->uselist)) {
listmsg = rt_list_entry(rx_fifo->uselist.next, struct rt_can_msg_list, list);
can->status.dropedrcvpkg++;
rt_list_remove(&listmsg->list);
#ifdef RT_CAN_USING_HDR
rt_list_remove(&listmsg->hdrlist);
if(listmsg->owner != RT_NULL && listmsg->owner->msgs) {
listmsg->owner->msgs--;
}
listmsg->owner = RT_NULL;
#endif
}
/* enable interrupt */
rt_hw_interrupt_enable(level);
if(listmsg != RT_NULL) {
rt_memcpy(&listmsg->data,&tmpmsg,sizeof(struct rt_can_msg));
level = rt_hw_interrupt_disable();
rt_list_insert_before(&rx_fifo->uselist,&listmsg->list);
#ifdef RT_CAN_USING_HDR
hdr = tmpmsg.hdr;
if(can->hdr != RT_NULL) {
RT_ASSERT(hdr < can->config.maxhdr && hdr >= 0);
if(can->hdr[hdr].connected) {
rt_list_insert_before(&can->hdr[hdr].list,&listmsg->hdrlist);
listmsg->owner = &can->hdr[hdr];
can->hdr[hdr].msgs++;
}
}
#endif
rt_hw_interrupt_enable(level);
}
/* invoke callback */
#ifdef RT_CAN_USING_HDR
if(can->hdr != RT_NULL && can->hdr[hdr].connected && can->hdr[hdr].filter.ind) {
RT_ASSERT(hdr < can->config.maxhdr && hdr >= 0);
rt_size_t rx_length;
level = rt_hw_interrupt_disable();
rx_length = can->hdr[hdr].msgs * sizeof(struct rt_can_msg);
rt_hw_interrupt_enable(level);
can->hdr[hdr].filter.ind(&can->parent, can->hdr[hdr].filter.args, hdr, rx_length);
} else
#endif
if (can->parent.rx_indicate != RT_NULL) {
rt_size_t rx_length;
/* get rx length */
level = rt_hw_interrupt_disable();
rx_length = rx_fifo->freenumbers*sizeof(struct rt_can_msg);
rt_hw_interrupt_enable(level);
can->parent.rx_indicate(&can->parent, rx_length);
}
break;
}
case RT_CAN_EVENT_TX_DONE:
case RT_CAN_EVENT_TX_FAIL:
{
struct rt_can_tx_fifo* tx_fifo;
rt_uint32_t no;
no = event >> 8;
tx_fifo = (struct rt_can_tx_fifo*) can->can_tx;
RT_ASSERT(tx_fifo != RT_NULL);
if((event & 0xff) == RT_CAN_EVENT_TX_DONE) {
tx_fifo->buffer[no].result = RT_CAN__SND_RESUTL_OK;
} else {
tx_fifo->buffer[no].result = RT_CAN__SND_RESUTL_ERR;
}
rt_completion_done(&(tx_fifo->buffer[no].completion));
break;
}
}
}
#ifdef RT_USING_FINSH
#include <finsh.h>
int cmd_canstat(int argc,void** argv)
{
static const char* ErrCode[] = {
"No Error!",
"Warning !",
"Passive !",
"Bus Off !"
};
if(argc >= 2) {
rt_device_t candev = rt_device_find(argv[1]);
if(!candev) {
rt_kprintf(" Can't find can device %s\n",argv[1]);
return -1;
}
rt_kprintf(" Finded can device: %s...",argv[1]);
struct rt_can_status status;
rt_device_control(candev,RT_CAN_CMD_GET_STATUS,&status);
rt_kprintf("\n Receive...error..count: %010ld. Send.....error....count: %010ld.",
status.rcverrcnt,status.snderrcnt);
rt_kprintf("\n Bit..pad..error..count: %010ld. Format...error....count: %010ld",
status.bitpaderrcnt,status.formaterrcnt);
rt_kprintf("\n Ack.......error..count: %010ld. Bit......error....count: %010ld.",
status.ackerrcnt,status.biterrcnt);
rt_kprintf("\n CRC.......error..count: %010ld. Error.code.[%010ld]: ",
status.crcerrcnt,status.errcode);
switch(status.errcode) {
case 0:
rt_kprintf("%s.",ErrCode[0]);
break;
case 1:
rt_kprintf("%s.",ErrCode[1]);
break;
case 2:
case 3:
rt_kprintf("%s.",ErrCode[2]);
break;
case 4:
case 5:
case 6:
case 7:
rt_kprintf("%s.",ErrCode[3]);
break;
}
rt_kprintf("\n Total.receive.packages: %010ld. Droped.receive.packages: %010ld.",
status.rcvpkg,status.dropedrcvpkg);
rt_kprintf("\n Total..send...packages: %010ld. Droped...send..packages: %010ld.\n",
status.sndpkg + status.dropedsndpkg,status.dropedsndpkg);
} else {
rt_kprintf(" Invalid Call %s\n",argv[0]);
rt_kprintf(" Please using %s cannamex .Here canname is driver name and x is candrive number.\n",argv[0]);
}
return 0;
}
FINSH_FUNCTION_EXPORT_ALIAS(cmd_canstat, __cmd_canstat, Stat Can Device Status.);
#endif

View File

@ -0,0 +1,132 @@
说明:
本驱动完成了can控制器硬件抽象
一 CAN Driver 注册
Can driver注册需要填充以下几个数据结构
1、struct can_configure
{
rt_uint32_t baud_rate;
rt_uint32_t msgboxsz;
rt_uint32_t sndboxnumber;
rt_uint32_t mode :8;
rt_uint32_t privmode :8;
rt_uint32_t reserved :16;
#ifdef RT_CAN_USING_LED
const struct rt_can_led* rcvled;
const struct rt_can_led* sndled;
const struct rt_can_led* errled;
#endif /*RT_CAN_USING_LED*/
rt_uint32_t ticks;
#ifdef RT_CAN_USING_HDR
rt_uint32_t maxhdr;
#endif
};
struct can_configure 为can驱动的基本配置信息:
baud_rate :
enum CANBAUD
{
CAN1MBaud=0, // 1 MBit/sec
CAN800kBaud, // 800 kBit/sec
CAN500kBaud, // 500 kBit/sec
CAN250kBaud, // 250 kBit/sec
CAN125kBaud, // 125 kBit/sec
CAN100kBaud, // 100 kBit/sec
CAN50kBaud, // 50 kBit/sec
CAN20kBaud, // 20 kBit/sec
CAN10kBaud // 10 kBit/sec
};
配置Can的波特率。
msgboxsz : Can接收邮箱缓冲数量本驱动在软件层开辟msgboxsz个接收邮箱。
sndboxnumber : can 发送通道数量该配置为Can控制器实际的发送通道数量。
mode
#define RT_CAN_MODE_NORMAL 0 正常模式
#define RT_CAN_MODE_LISEN 1 只听模式
#define RT_CAN_MODE_LOOPBACK 2 自发自收模式
#define RT_CAN_MODE_LOOPBACKANLISEN 3 自发自收只听模式
配置Can 的工作状态。
privmode :
#define RT_CAN_MODE_PRIV 0x01 处于优先级模式,高优先级的消息优先发送。
#define RT_CAN_MODE_NOPRIV 0x00
配置Can driver的优先级模式。
#ifdef RT_CAN_USING_LED
const struct rt_can_led* rcvled;
const struct rt_can_led* sndled;
const struct rt_can_led* errled;
#endif /*RT_CAN_USING_LED*/
配置can led信息, 当前can驱动的led使用了 pin驱动
开启RT_CAN_USING_LED时要确保当前系统已实现pin驱动。
rt_uint32_t ticks : 配置Can driver timer周期。
#ifdef RT_CAN_USING_HDR
rt_uint32_t maxhdr;
#endif
如果使用硬件过滤则开启RT_CAN_USING_HDR, maxhdr 为Can控制器过滤表的数量。
2、struct rt_can_ops
{
rt_err_t (*configure)(struct rt_can_device *can, struct can_configure *cfg);
rt_err_t (*control)(struct rt_can_device *can, int cmd, void *arg);
int (*sendmsg)(struct rt_can_device *can, const void* buf, rt_uint32_t boxno);
int (*recvmsg)(struct rt_can_device *can,void* buf, rt_uint32_t boxno);
};
struct rt_can_ops 为要实现的特定的can控制器操作。
rt_err_t (*configure)(struct rt_can_device *can, struct can_configure *cfg);
configure根据配置信息初始化Can控制器工作模式。
rt_err_t (*control)(struct rt_can_device *can, int cmd, void *arg);
control 当前接受以下cmd参数
#define RT_CAN_CMD_SET_FILTER 0x13
#define RT_CAN_CMD_SET_BAUD 0x14
#define RT_CAN_CMD_SET_MODE 0x15
#define RT_CAN_CMD_SET_PRIV 0x16
#define RT_CAN_CMD_GET_STATUS 0x17
#define RT_CAN_CMD_SET_STATUS_IND 0x18
int (*sendmsg)(struct rt_can_device *can, const void* buf, rt_uint32_t boxno);
sendmsg向Can控制器发送数boxno为发送通道号。
int (*recvmsg)(struct rt_can_device *can,void* buf, rt_uint32_t boxno);
recvmsg从Can控制器接收数据boxno为接收通道号。
struct rt_can_device
{
struct rt_device parent;
const struct rt_can_ops *ops;
struct can_configure config;
struct rt_can_status status;
rt_uint32_t timerinitflag;
struct rt_timer timer;
struct rt_can_status_ind_type status_indicate;
#ifdef RT_CAN_USING_HDR
struct rt_can_hdr* hdr;
#endif
void *can_rx;
void *can_tx;
};
填充完成后便可调用rt_hw_can_register完成can驱动的注册。
二、 CAN Driver 的添加:
要添加一个新的Can驱动至少要完成以下接口。
1、struct rt_can_ops
{
rt_err_t (*configure)(struct rt_can_device *can, struct can_configure *cfg);
rt_err_t (*control)(struct rt_can_device *can, int cmd, void *arg);
int (*sendmsg)(struct rt_can_device *can, const void* buf, rt_uint32_t boxno);
int (*recvmsg)(struct rt_can_device *can,void* buf, rt_uint32_t boxno);
};
2、 rt_err_t (*control)(struct rt_can_device *can, int cmd, void *arg);
接口的
#define RT_CAN_CMD_SET_FILTER 0x13
#define RT_CAN_CMD_SET_BAUD 0x14
#define RT_CAN_CMD_SET_MODE 0x15
#define RT_CAN_CMD_SET_PRIV 0x16
#define RT_CAN_CMD_GET_STATUS 0x17
#define RT_CAN_CMD_SET_STATUS_IND 0x18
若干命令。
3、can口中断要完接收发送结束以及错误中断。
#define RT_CAN_EVENT_RX_IND 0x01 /* Rx indication */
#define RT_CAN_EVENT_TX_DONE 0x02 /* Tx complete */
#define RT_CAN_EVENT_TX_FAIL 0x03 /* Tx complete */
#define RT_CAN_EVENT_RX_TIMEOUT 0x05 /* Rx timeout */
#define RT_CAN_EVENT_RXOF_IND 0x06 /* Rx overflow */
中断产生后调用rt_hw_can_isr(struct rt_can_device *can, int event)
进入相应的操作其中接收发送中断的event最低8位为上面的事件16到24位为通信通道号。
一个作为一个例子参见bsp/stm32f10x/driver下的bxcan.c 。
三、CAN Driver的使用
一个使用的例子参数bsp/stm32f10x/applications下的canapp.c
四、当前Can驱动没有实现轮模式采用中断模式bxcan驱动工作在loopback模式下的时候不能读数据。
五、当前Can驱动在stm32f105上测试暂无问题。

View File

@ -0,0 +1,293 @@
/*
* File : can.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2015, RT-Thread Development Team
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rt-thread.org/license/LICENSE
*
* Change Logs:
* Date Author Notes
* 2015-05-14 aubrcool@qq.com first version
*/
#ifndef CAN_H_
#define CAN_H_
#ifndef RT_CANMSG_BOX_SZ
#define RT_CANMSG_BOX_SZ 16
#endif
#ifndef RT_CANSND_BOX_NUM
#define RT_CANSND_BOX_NUM 1
#endif
enum CANBAUD
{
CAN1MBaud=0, // 1 MBit/sec
CAN800kBaud, // 800 kBit/sec
CAN500kBaud, // 500 kBit/sec
CAN250kBaud, // 250 kBit/sec
CAN125kBaud, // 125 kBit/sec
CAN100kBaud, // 100 kBit/sec
CAN50kBaud, // 50 kBit/sec
CAN20kBaud, // 20 kBit/sec
CAN10kBaud // 10 kBit/sec
};
#define RT_CAN_MODE_NORMAL 0
#define RT_CAN_MODE_LISEN 1
#define RT_CAN_MODE_LOOPBACK 2
#define RT_CAN_MODE_LOOPBACKANLISEN 3
#define RT_CAN_MODE_PRIV 0x01
#define RT_CAN_MODE_NOPRIV 0x00
#ifdef RT_CAN_USING_LED
struct rt_can_led
{
rt_uint32_t pin,mode,init;
struct rt_timer* timer;
const char* timer_name;
};
#endif /*RT_CAN_USING_LED*/
struct rt_can_filter_item
{
rt_uint32_t id :29;
rt_uint32_t ide :1;
rt_uint32_t rtr :1;
rt_uint32_t mode :1;
rt_uint32_t mask;
rt_int32_t hdr;
rt_err_t (*ind)(rt_device_t dev, void* args ,rt_int32_t hdr, rt_size_t size);
void* args;
};
#ifdef RT_CAN_USING_HDR
#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,ind,args) \
{\
id,\
ide,\
rtr,\
mode,\
mask,\
-1,\
ind,\
args,\
}
#define RT_CAN_FILTER_STD_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF,ind,args)
#define RT_CAN_FILTER_EXT_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF,ind,args)
#define RT_CAN_STD_RMT_FILTER_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF,ind,args)
#define RT_CAN_EXT_RMT_FILTER_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF,ind,args)
#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF,ind,args)
#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,ind,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,ind,args)
#else
#define RT_CAN_FILTER_ITEM_INIT(id,ide,rtr,mode,mask,args) \
{\
id,\
ide,\
rtr,\
mode,\
mask,\
-1,\
args,\
}
#define RT_CAN_FILTER_STD_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,0,0,0xFFFFFFFF,args)
#define RT_CAN_FILTER_EXT_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,0,0,0xFFFFFFFF,args)
#define RT_CAN_STD_RMT_FILTER_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,1,0,0xFFFFFFFF,args)
#define RT_CAN_EXT_RMT_FILTER_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,1,0,0xFFFFFFFF,args)
#define RT_CAN_STD_RMT_DATA_FILTER_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,0,0,1,0xFFFFFFFF,args)
#define RT_CAN_EXT_RMT_DATA_FILTER_INIT(id,args) \
RT_CAN_FILTER_ITEM_INIT(id,1,0,1,0xFFFFFFFF,args)
#endif
struct rt_can_filter_config
{
rt_uint32_t count;
rt_uint32_t actived;
struct rt_can_filter_item* items;
};
struct can_configure
{
rt_uint32_t baud_rate;
rt_uint32_t msgboxsz;
rt_uint32_t sndboxnumber;
rt_uint32_t mode :8;
rt_uint32_t privmode :8;
rt_uint32_t reserved :16;
#ifdef RT_CAN_USING_LED
const struct rt_can_led* rcvled;
const struct rt_can_led* sndled;
const struct rt_can_led* errled;
#endif /*RT_CAN_USING_LED*/
rt_uint32_t ticks;
#ifdef RT_CAN_USING_HDR
rt_uint32_t maxhdr;
#endif
};
#define CANDEFAULTCONFIG \
{\
CAN1MBaud,\
RT_CANMSG_BOX_SZ,\
RT_CANSND_BOX_NUM,\
RT_CAN_MODE_NORMAL,\
};
struct rt_can_ops;
#define RT_CAN_CMD_SET_FILTER 0x13
#define RT_CAN_CMD_SET_BAUD 0x14
#define RT_CAN_CMD_SET_MODE 0x15
#define RT_CAN_CMD_SET_PRIV 0x16
#define RT_CAN_CMD_GET_STATUS 0x17
#define RT_CAN_CMD_SET_STATUS_IND 0x18
#define RT_DEVICE_CAN_INT_ERR 0x1000
enum RT_CAN_STATUS_MODE
{
NORMAL = 0,
ERRWARNING = 1,
ERRPASSIVE = 2,
BUSOFF = 4,
};
enum RT_CAN_BUS_ERR
{
RT_CAN_BUS_NO_ERR = 0,
RT_CAN_BUS_BIT_PAD_ERR = 1,
RT_CAN_BUS_FORMAT_ERR = 2,
RT_CAN_BUS_ACK_ERR = 3,
RT_CAN_BUS_IMPLICIT_BIT_ERR = 4,
RT_CAN_BUS_EXPLICIT_BIT_ERR = 5,
RT_CAN_BUS_CRC_ERR = 6,
};
struct rt_can_status
{
rt_uint32_t rcverrcnt;
rt_uint32_t snderrcnt;
rt_uint32_t errcode;
rt_uint32_t rcvpkg;
rt_uint32_t dropedrcvpkg;
rt_uint32_t sndpkg;
rt_uint32_t dropedsndpkg;
rt_uint32_t bitpaderrcnt;
rt_uint32_t formaterrcnt;
rt_uint32_t ackerrcnt;
rt_uint32_t biterrcnt;
rt_uint32_t crcerrcnt;
rt_uint32_t rcvchange;
rt_uint32_t sndchange;
rt_uint32_t lasterrtype;
};
#ifdef RT_CAN_USING_HDR
struct rt_can_hdr {
rt_uint32_t connected;
rt_uint32_t msgs;
struct rt_can_filter_item filter;
struct rt_list_node list;
};
#endif
struct rt_can_device;
typedef rt_err_t (*rt_canstatus_ind)(struct rt_can_device*, void*);
typedef struct rt_can_status_ind_type
{
rt_canstatus_ind ind;
void* args;
} *rt_can_status_ind_type_t;
struct rt_can_device
{
struct rt_device parent;
const struct rt_can_ops *ops;
struct can_configure config;
struct rt_can_status status;
rt_uint32_t timerinitflag;
struct rt_timer timer;
struct rt_can_status_ind_type status_indicate;
#ifdef RT_CAN_USING_HDR
struct rt_can_hdr* hdr;
#endif
void *can_rx;
void *can_tx;
};
typedef struct rt_can_device *rt_can_t;
#define RT_CAN_STDID 0
#define RT_CAN_EXTID 1
#define RT_CAN_DTR 0
#define RT_CAN_RTR 1
typedef struct rt_can_status * rt_can_status_t;
struct rt_can_msg
{
rt_uint32_t id :29;
rt_uint32_t ide :1;
rt_uint32_t rtr :1;
rt_uint32_t rsv :1;
rt_uint32_t len :8;
rt_uint32_t priv :8;
rt_uint32_t hdr :8;
rt_uint32_t reserved :8;
rt_uint8_t data[8];
};
typedef struct rt_can_msg* rt_can_msg_t;
struct rt_can_msg_list {
struct rt_list_node list;
#ifdef RT_CAN_USING_HDR
struct rt_list_node hdrlist;
struct rt_can_hdr* owner;
#endif
struct rt_can_msg data;
};
struct rt_can_rx_fifo
{
/* software fifo */
struct rt_can_msg_list *buffer;
rt_uint32_t freenumbers;
struct rt_list_node freelist;
struct rt_list_node uselist;
};
#define RT_CAN__SND_RESUTL_OK 0
#define RT_CAN__SND_RESUTL_ERR 1
#define RT_CAN__SND_RESUTL_WAIT 2
#define RT_CAN_EVENT_RX_IND 0x01 /* Rx indication */
#define RT_CAN_EVENT_TX_DONE 0x02 /* Tx complete */
#define RT_CAN_EVENT_TX_FAIL 0x03 /* Tx complete */
#define RT_CAN_EVENT_RX_TIMEOUT 0x05 /* Rx timeout */
#define RT_CAN_EVENT_RXOF_IND 0x06 /* Rx overflow */
struct rt_can_sndbxinx_list {
struct rt_list_node list;
struct rt_completion completion;
rt_uint32_t result;
};
struct rt_can_tx_fifo
{
struct rt_can_sndbxinx_list *buffer;
struct rt_completion completion;
struct rt_list_node freelist;
};
struct rt_can_ops
{
rt_err_t (*configure)(struct rt_can_device *can, struct can_configure *cfg);
rt_err_t (*control)(struct rt_can_device *can, int cmd, void *arg);
int (*sendmsg)(struct rt_can_device *can, const void* buf, rt_uint32_t boxno);
int (*recvmsg)(struct rt_can_device *can,void* buf, rt_uint32_t boxno);
};
rt_err_t rt_hw_can_register(struct rt_can_device *can,
const char *name,
const struct rt_can_ops *ops,
void *data);
void rt_hw_can_isr(struct rt_can_device *can, int event);
#endif /*_CAN_H*/

View File

@ -366,6 +366,10 @@ rt_inline void rt_work_init(struct rt_work* work, void (*work_func)(struct rt_wo
#include "drivers/pin.h"
#endif
#ifdef RT_USING_CAN
#include "drivers/can.h"
#endif
#ifdef __cplusplus
}
#endif

View File

@ -13,6 +13,7 @@
* 2012-05-06 aozima can page write.
* 2012-08-23 aozima add flash lock.
* 2012-08-24 aozima fixed write status register BUG.
* 2015-05-13 bernard add GD25Q flash ID.
*/
#include <stdint.h>
@ -28,8 +29,10 @@
#define PAGE_SIZE 4096
/* JEDEC Manufacturer¡¯s ID */
/* JEDEC Manufacturer<EFBFBD><EFBFBD>s ID */
#define MF_ID (0xEF)
#define GD_ID (0xC8)
/* JEDEC Device ID: Memory type and Capacity */
#define MTC_W25Q16_BV_CL_CV (0x4015) /* W25Q16BV W25Q16CL W25Q16CV */
#define MTC_W25Q16_DW (0x6015) /* W25Q16DW */
@ -297,7 +300,7 @@ rt_err_t w25qxx_init(const char * flash_device_name, const char * spi_device_nam
flash_unlock(&spi_flash_device);
if(id_recv[0] != MF_ID)
if(id_recv[0] != MF_ID && id_recv[0] != GD_ID)
{
FLASH_TRACE("Manufacturers ID error!\r\n");
FLASH_TRACE("JEDEC Read-ID Data : %02X %02X %02X\r\n", id_recv[0], id_recv[1], id_recv[2]);

View File

@ -11,17 +11,24 @@
#define FTP_MAX_CONNECTION 2
#define FTP_USER "rtt"
#define FTP_PASSWORD "demo"
#define FTP_WELCOME_MSG "220-= welcome on RT-Thread FTP server =-\r\n220 \r\n"
#define FTP_WELCOME_MSG "220 welcome on RT-Thread FTP server.\r\n"
#define FTP_BUFFER_SIZE 1024
#define INET_ADDRSTRLEN 16
struct ftp_session
{
rt_bool_t is_anonymous;
int sockfd;
struct sockaddr_in remote;
struct sockaddr_in server;
char serveraddr[INET_ADDRSTRLEN];
/* pasv data */
int pasv_listen_sockfd;
char pasv_active;
int pasv_sockfd;
@ -43,6 +50,7 @@ struct ftp_session* ftp_new_session()
struct ftp_session* session;
session = (struct ftp_session*)rt_malloc(sizeof(struct ftp_session));
rt_memset((void *)session, 0, sizeof(struct ftp_session));
session->next = session_list;
session_list = session;
@ -71,6 +79,83 @@ void ftp_close_session(struct ftp_session* session)
rt_free(session);
}
static int open_data_connection(struct ftp_session* session)
{
socklen_t len = sizeof(struct sockaddr);
struct sockaddr_in sin;
#if 0
/* Previous PORT command from client */
if (ctrl->data_address[0]) {
ctrl->data_sd = socket(AF_INET, SOCK_STREAM, 0);
if (-1 == ctrl->data_sd) {
printf("Failed creating data socket");
return -1;
}
memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = htons(ctrl->data_port);
inet_aton(ctrl->data_address, &(sin.sin_addr));
if (connect(ctrl->data_sd, (struct sockaddr *)&sin, len) == -1) {
printf("Failed connecting data socket to client");
close(ctrl->data_sd);
ctrl->data_sd = -1;
return -1;
}
DBG("Connected successfully to client's previously requested address:PORT %s:%d", ctrl->data_address, ctrl->data_port);
return 0;
}
#endif
/* Previous PASV command, accept connect from client */
if (session->pasv_listen_sockfd > 0) {
char client_ip[100];
session->pasv_sockfd = accept(session->pasv_listen_sockfd, (struct sockaddr *)&sin, &len);
if (-1 == session->pasv_sockfd) {
printf("Failed accepting connection from client");
return -1;
}
len = sizeof(struct sockaddr);
if (-1 == getpeername(session->pasv_sockfd, (struct sockaddr *)&sin, &len)) {
printf("Cannot determine client address");
closesocket(session->pasv_sockfd);
session->pasv_sockfd = -1;
return -1;
}
printf("Client PASV data connection from %s\n", inet_ntoa(sin.sin_addr));
}
return 0;
}
static void close_data_connection(struct ftp_session* session)
{
/* PASV server listening socket */
if (session->pasv_listen_sockfd > 0) {
closesocket(session->pasv_listen_sockfd);
session->pasv_listen_sockfd = -1;
}
/* PASV client socket */
if (session->pasv_sockfd > 0) {
closesocket(session->pasv_sockfd);
session->pasv_sockfd = -1;
}
#if 0
/* PORT */
if (ctrl->data_address[0]) {
ctrl->data_address[0] = 0;
ctrl->data_port = 0;
}
#endif
}
int ftp_get_filesize(char * filename)
{
int pos;
@ -179,6 +264,10 @@ void ftpd_thread_entry(void* parameter)
session = ftp_new_session();
if (session != NULL)
{
if (-1 == getsockname(com_socket, (struct sockaddr *)&session->server, &addr_len)) {
printf("Cannot determine our address, need it if client should connect to us\n");
}
ipaddr_ntoa_r(&(session->server.sin_addr), session->serveraddr, sizeof(session->serveraddr));
strcpy(session->currentdir, FTP_SRV_ROOT);
session->sockfd = com_socket;
session->remote = remote;
@ -201,6 +290,7 @@ void ftpd_thread_entry(void* parameter)
rt_kprintf("Client %s disconnected\n", inet_ntoa(session->remote.sin_addr));
FD_CLR(session->sockfd, &readfds);
closesocket(session->sockfd);
session->sockfd = -1;
ftp_close_session(session);
}
else
@ -210,6 +300,7 @@ void ftpd_thread_entry(void* parameter)
{
rt_kprintf("Client %s disconnected\r\n", inet_ntoa(session->remote.sin_addr));
closesocket(session->sockfd);
session->sockfd = -1;
ftp_close_session(session);
}
}
@ -359,7 +450,7 @@ int ftp_process_request(struct ftp_session* session, char *buf)
}
else if (strcmp(parameter_ptr, FTP_USER) == 0)
{
session->is_anonymous = RT_FALSE;
session->is_anonymous = RT_FALSE;
rt_sprintf(sbuf, "331 Password required for %s\r\n", parameter_ptr);
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
@ -380,25 +471,26 @@ int ftp_process_request(struct ftp_session* session, char *buf)
session->is_anonymous == RT_TRUE)
{
// password correct
rt_sprintf(sbuf, "230 User logged in\r\n");
rt_sprintf(sbuf, "230 User logged in.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
// incorrect password
rt_sprintf(sbuf, "530 Login or Password incorrect. Bye!\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(sbuf);
return -1;
}
else if(str_begin_with(buf, "LIST")==0 )
{
memset(sbuf,0,FTP_BUFFER_SIZE);
open_data_connection(session);
rt_sprintf(sbuf, "150 Opening Binary mode connection for file list.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
do_list(session->currentdir, session->pasv_sockfd);
closesocket(session->pasv_sockfd);
close_data_connection(session);
session->pasv_active = 0;
rt_sprintf(sbuf, "226 Transfert Complete.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
@ -408,8 +500,9 @@ int ftp_process_request(struct ftp_session* session, char *buf)
memset(sbuf, 0, FTP_BUFFER_SIZE);
rt_sprintf(sbuf, "150 Opening Binary mode connection for file list.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
open_data_connection(session);
do_simple_list(session->currentdir, session->pasv_sockfd);
closesocket(session->pasv_sockfd);
close_data_connection(session);
session->pasv_active = 0;
rt_sprintf(sbuf, "226 Transfert Complete.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
@ -436,8 +529,20 @@ int ftp_process_request(struct ftp_session* session, char *buf)
else if(str_begin_with(buf, "PASV")==0)
{
int dig1, dig2;
int sockfd;
char optval='1';
//int sockfd;
int optval=1;
int port;
struct sockaddr_in data;
socklen_t len = sizeof(struct sockaddr);
char *msg, *p;
if (session->pasv_sockfd > 0) {
closesocket(session->pasv_sockfd);
session->pasv_sockfd = -1;
}
if (session->pasv_listen_sockfd > 0)
closesocket(session->pasv_listen_sockfd);
session->pasv_port = 10000;
session->pasv_active = 1;
@ -448,40 +553,63 @@ int ftp_process_request(struct ftp_session* session, char *buf)
dig2 = session->pasv_port % 256;
FD_ZERO(&readfds);
if((sockfd=socket(PF_INET, SOCK_STREAM, 0))==-1)
if((session->pasv_listen_sockfd=socket(PF_INET, SOCK_STREAM, 0))==-1)
{
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
rt_sprintf(sbuf, "425 Can't open data connection0.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
if(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval))==-1)
if(setsockopt(session->pasv_listen_sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval))==-1)
{
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
rt_sprintf(sbuf, "425 Can't open data connection1.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
if(bind(sockfd, (struct sockaddr *)&local, addr_len)==-1)
if(bind(session->pasv_listen_sockfd, (struct sockaddr *)&local, addr_len)==-1)
{
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
rt_sprintf(sbuf, "425 Can't open data connection2.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
if(listen(sockfd, 1)==-1)
if(listen(session->pasv_listen_sockfd, 1)==-1)
{
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
rt_sprintf(sbuf, "425 Can't open data connection3.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
if (-1 == getsockname(session->pasv_listen_sockfd, (struct sockaddr *)&data, &len)) {
rt_kprintf("Cannot determine our address, need it if client should connect to us\n");
goto err1;
}
port = ntohs(data.sin_port);
rt_kprintf("Port %d\n", port);
/* Convert server IP address and port to comma separated list */
msg = strdup(session->serveraddr);
if (!msg) {
rt_sprintf(sbuf, "426 Internal server error.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
p = msg;
while ((p = strchr(p, '.')))
*p++ = ',';
rt_kprintf("Listening %d seconds @ port %d\n", tv.tv_sec, session->pasv_port);
rt_sprintf(sbuf, "227 Entering passive mode (%d,%d,%d,%d,%d,%d)\r\n", 127, 0, 0, 1, dig1, dig2);
rt_sprintf(sbuf, "227 Entering passive mode (%s,%d,%d)\r\n", msg, port / 256, port % 256);
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(msg);
return 0;
#if 0
FD_SET(sockfd, &readfds);
select(0, &readfds, 0, 0, &tv);
if(FD_ISSET(sockfd, &readfds))
{
if((session->pasv_sockfd = accept(sockfd, (struct sockaddr*)&pasvremote, &addr_len))==-1)
{
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
rt_sprintf(sbuf, "425 Can't open data connection4.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
goto err1;
}
@ -500,11 +628,21 @@ err1:
rt_free(sbuf);
return 0;
}
#endif
err1:
close_data_connection(session);
session->pasv_active = 0;
rt_free(sbuf);
rt_free(msg);
return 0;
}
else if (str_begin_with(buf, "RETR")==0)
{
int file_size;
open_data_connection(session);
strcpy(filename, buf + 5);
build_full_path(session, parameter_ptr, filename, 256);
@ -514,13 +652,15 @@ err1:
rt_sprintf(sbuf, "550 \"%s\" : not a regular file\r\n", filename);
send(session->sockfd, sbuf, strlen(sbuf), 0);
session->offset=0;
rt_free(sbuf);
close_data_connection(session);
rt_free(sbuf);
return 0;
}
fd = open(filename, O_RDONLY, 0);
if (fd < 0)
{
close_data_connection(session);
rt_free(sbuf);
return 0;
}
@ -543,14 +683,16 @@ err1:
rt_sprintf(sbuf, "226 Finished.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
close(fd);
closesocket(session->pasv_sockfd);
close_data_connection(session);
}
else if (str_begin_with(buf, "STOR")==0)
{
open_data_connection(session);
if(session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "550 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
close_data_connection(session);
rt_free(sbuf);
return 0;
}
@ -562,6 +704,7 @@ err1:
{
rt_sprintf(sbuf, "550 Cannot open \"%s\" for writing.\r\n", filename);
send(session->sockfd, sbuf, strlen(sbuf), 0);
close_data_connection(session);
rt_free(sbuf);
return 0;
}
@ -579,7 +722,7 @@ err1:
else if(numbytes==0)
{
close(fd);
closesocket(session->pasv_sockfd);
close_data_connection(session);
rt_sprintf(sbuf, "226 Finished.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
break;
@ -587,12 +730,12 @@ err1:
else if(numbytes==-1)
{
close(fd);
closesocket(session->pasv_sockfd);
close_data_connection(session);
rt_free(sbuf);
return -1;
}
}
closesocket(session->pasv_sockfd);
close_data_connection(session);
}
else if(str_begin_with(buf, "SIZE")==0)
{
@ -659,7 +802,7 @@ err1:
send(session->sockfd, sbuf, strlen(sbuf), 0);
closesocket(session->pasv_sockfd);
session->pasv_active = 0;
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
pasvremote.sin_addr.s_addr=inet_addr(tmpip);
@ -674,7 +817,7 @@ err1:
rt_sprintf(sbuf, "425 Can't open data connection.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
closesocket(session->pasv_sockfd);
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
}
@ -697,9 +840,9 @@ err1:
{
if (session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "550 Permission denied.\r\n");
rt_sprintf(sbuf, "530 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
@ -720,7 +863,7 @@ err1:
{
if (session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "550 Permission denied.\r\n");
rt_sprintf(sbuf, "530 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
return 0;
@ -740,9 +883,9 @@ err1:
{
if (session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "550 Permission denied.\r\n");
rt_sprintf(sbuf, "530 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
build_full_path(session, parameter_ptr, filename, 256);
@ -758,12 +901,53 @@ err1:
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
}
else if(str_begin_with(buf, "RNFR")==0)
{
if (session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "530 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
return 0;
}
build_full_path(session, parameter_ptr, filename, 256);
rt_sprintf(sbuf, "350 Successfully rececive old file \"%s\".\r\n", filename);
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
else if(str_begin_with(buf, "RNTO")==0)
{
char new_filename[256];
if (session->is_anonymous == RT_TRUE)
{
rt_sprintf(sbuf, "530 Permission denied.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
return 0;
}
build_full_path(session, parameter_ptr, new_filename, 256);
if(rename(filename, new_filename) == -1)
{
rt_sprintf(sbuf, "553 rename file \"%s\" error.\r\n", filename);
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
else
{
rt_sprintf(sbuf, "250 Successfully rename to new file \"%s\".\r\n", filename);
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
}
else if((str_begin_with(buf, "NOOP")==0) || str_begin_with(buf, "noop")==0)
{
rt_sprintf(sbuf, "200 noop!\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
else if(str_begin_with(buf, "QUIT")==0)
{
rt_sprintf(sbuf, "221 Bye!\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
rt_free(sbuf);
rt_free(sbuf);
return -1;
}
else
@ -771,7 +955,7 @@ err1:
rt_sprintf(sbuf, "502 Not Implemented.\r\n");
send(session->sockfd, sbuf, strlen(sbuf), 0);
}
rt_free(sbuf);
rt_free(sbuf);
return 0;
}
@ -787,5 +971,15 @@ void ftpd_start()
#ifdef RT_USING_FINSH
#include <finsh.h>
FINSH_FUNCTION_EXPORT(ftpd_start, start ftp server)
FINSH_FUNCTION_EXPORT(ftpd_start, start ftp server);
#ifdef FINSH_USING_MSH
int cmd_ftpd_start(int argc, char** argv)
{
ftpd_start();
return 0;
}
FINSH_FUNCTION_EXPORT_ALIAS(cmd_ftpd_start, __cmd_ftpd_start, start ftp server.);
#endif
#endif

View File

@ -376,13 +376,24 @@ static void dhcpd_thread_entry(void *parameter)
void dhcpd_start(char* netif_name)
{
rt_thread_t thread;
struct netif *netif = RT_NULL;
struct netif *netif = netif_list;
/* find ethernet interface. */
netif = netif_find(netif_name);
if (netif == RT_NULL)
if(strlen(netif_name) > sizeof(netif->name))
{
DEBUG_PRINTF("Not found network interface:%s\n", netif_name);
rt_kprintf("network interface name too long!\r\n");
return;
}
while(netif != RT_NULL)
{
if(strncmp(netif_name, netif->name, sizeof(netif->name)) == 0)
break;
netif = netif->next;
if( netif == RT_NULL )
{
rt_kprintf("network interface: %s not found!\r\n", netif_name);
return;
}
}
thread = rt_thread_create("dhcpd",

View File

@ -15,7 +15,7 @@
#include <rtthread.h>
#include "am33xx.h"
#define DESC_SEC (0x2|(1<<4))
#define DESC_SEC (0x2)
#define CB (3<<2) //cache_on, write_back
#define CNB (2<<2) //cache_on, write_through
#define NCB (1<<2) //cache_off,WR_BUF on

View File

@ -183,13 +183,11 @@ rt_hw_context_switch_to PROC
LDR r0, =NVIC_INT_CTRL
LDR r1, =NVIC_PENDSVSET
STR r1, [r0]
NOP
; restore MSP
LDR r0, =SCB_VTOR
LDR r0, [r0]
LDR r0, [r0]
NOP
MSR msp, r0
; enable interrupts at processor level
@ -216,4 +214,6 @@ HardFault_Handler PROC
POP {pc}
ENDP
ALIGN 4
END

View File

@ -177,7 +177,6 @@ rt_hw_context_switch_to PROC
rt_hw_interrupt_thread_switch PROC
EXPORT rt_hw_interrupt_thread_switch
BX lr
NOP
ENDP
IMPORT rt_hw_hard_fault_exception
@ -203,5 +202,6 @@ HardFault_Handler PROC
BX lr
ENDP
NOP
END
ALIGN 4
END

View File

@ -218,7 +218,6 @@ rt_hw_context_switch_to PROC
rt_hw_interrupt_thread_switch PROC
EXPORT rt_hw_interrupt_thread_switch
BX lr
NOP
ENDP
IMPORT rt_hw_hard_fault_exception
@ -235,4 +234,6 @@ HardFault_Handler PROC
BX lr
ENDP
ALIGN 4
END

View File

@ -19,6 +19,17 @@ elif sys.argv[1] == 'clean':
command = ' -c'
elif sys.argv[1] == 'project':
command = ' --target=mdk -s'
projects = os.listdir(BSP_ROOT)
for item in projects:
project_dir = os.path.join(BSP_ROOT, item)
if os.path.isfile(os.path.join(project_dir, 'template.uvproj')):
print ('prepare MDK project file on ' + project_dir)
os.system('scons --directory=' + project_dir + command)
sys.exit(0)
else:
usage()
sys.exit(0)