Merge pull request #1080 from TanekLiang/imxrt

[bsp] update i.mx rt bsp
This commit is contained in:
Bernard Xiong 2017-12-07 18:32:55 +08:00 committed by GitHub
commit 749fa2b73a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 1179 additions and 3924 deletions

View File

@ -8,12 +8,15 @@
# #
CONFIG_RT_NAME_MAX=8 CONFIG_RT_NAME_MAX=8
CONFIG_RT_ALIGN_SIZE=4 CONFIG_RT_ALIGN_SIZE=4
# CONFIG_RT_THREAD_PRIORITY_8 is not set
CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32 CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=100 CONFIG_RT_TICK_PER_SECOND=100
CONFIG_RT_DEBUG=y CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y CONFIG_RT_USING_OVERFLOW_CHECK=y
CONFIG_RT_DEBUG_INIT=0 CONFIG_RT_DEBUG_INIT=0
# CONFIG_RT_DEBUG_THREAD is not set CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y CONFIG_RT_USING_HOOK=y
CONFIG_IDLE_THREAD_STACK_SIZE=256 CONFIG_IDLE_THREAD_STACK_SIZE=256
# CONFIG_RT_USING_TIMER_SOFT is not set # CONFIG_RT_USING_TIMER_SOFT is not set
@ -32,15 +35,18 @@ CONFIG_RT_USING_MESSAGEQUEUE=y
# Memory Management # Memory Management
# #
# CONFIG_RT_USING_MEMPOOL is not set # CONFIG_RT_USING_MEMPOOL is not set
# CONFIG_RT_USING_MEMHEAP is not set CONFIG_RT_USING_MEMHEAP=y
CONFIG_RT_USING_HEAP=y # CONFIG_RT_USING_NOHEAP is not set
CONFIG_RT_USING_SMALL_MEM=y # CONFIG_RT_USING_SMALL_MEM is not set
# CONFIG_RT_USING_SLAB is not set # CONFIG_RT_USING_SLAB is not set
CONFIG_RT_USING_MEMHEAP_AS_HEAP=y
CONFIG_RT_USING_HEAP=y
# #
# Kernel Device Object # Kernel Device Object
# #
CONFIG_RT_USING_DEVICE=y CONFIG_RT_USING_DEVICE=y
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128 CONFIG_RT_CONSOLEBUF_SIZE=128
CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" CONFIG_RT_CONSOLE_DEVICE_NAME="uart1"
@ -78,8 +84,13 @@ CONFIG_FINSH_USING_MSH_DEFAULT=y
CONFIG_RT_USING_DFS=y CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_WORKDIR=y CONFIG_DFS_USING_WORKDIR=y
CONFIG_DFS_FILESYSTEMS_MAX=2 CONFIG_DFS_FILESYSTEMS_MAX=2
CONFIG_DFS_FILESYSTEM_TYPES_MAX=2
CONFIG_DFS_FD_MAX=4 CONFIG_DFS_FD_MAX=4
CONFIG_RT_USING_DFS_ELMFAT=y CONFIG_RT_USING_DFS_ELMFAT=y
#
# elm-chan's FatFs, Generic FAT Filesystem Module
#
CONFIG_RT_DFS_ELM_CODE_PAGE=437 CONFIG_RT_DFS_ELM_CODE_PAGE=437
CONFIG_RT_DFS_ELM_WORD_ACCESS=y CONFIG_RT_DFS_ELM_WORD_ACCESS=y
CONFIG_RT_DFS_ELM_USE_LFN_0=y CONFIG_RT_DFS_ELM_USE_LFN_0=y
@ -94,6 +105,9 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
CONFIG_RT_DFS_ELM_REENTRANT=y CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y CONFIG_RT_USING_DFS_DEVFS=y
# CONFIG_RT_USING_DFS_NET is not set # CONFIG_RT_USING_DFS_NET is not set
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
# CONFIG_RT_USING_DFS_NFS is not set # CONFIG_RT_USING_DFS_NFS is not set
# #
@ -111,6 +125,11 @@ CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_SDIO=y CONFIG_RT_USING_SDIO=y
# CONFIG_RT_USING_SPI is not set # CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set # CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_WIFI is not set
#
# Using USB
#
# CONFIG_RT_USING_USB_HOST is not set # CONFIG_RT_USING_USB_HOST is not set
# CONFIG_RT_USING_USB_DEVICE is not set # CONFIG_RT_USING_USB_DEVICE is not set
@ -118,10 +137,8 @@ CONFIG_RT_USING_SDIO=y
# POSIX layer and C standard library # POSIX layer and C standard library
# #
CONFIG_RT_USING_LIBC=y CONFIG_RT_USING_LIBC=y
CONFIG_RT_USING_PTHREADS=y # CONFIG_RT_USING_PTHREADS is not set
CONFIG_RT_USING_POSIX=y # CONFIG_RT_USING_POSIX is not set
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# #
# Network stack # Network stack
@ -141,6 +158,13 @@ CONFIG_RT_LWIP_DHCP=y
CONFIG_IP_SOF_BROADCAST=1 CONFIG_IP_SOF_BROADCAST=1
CONFIG_IP_SOF_BROADCAST_RECV=1 CONFIG_IP_SOF_BROADCAST_RECV=1
# CONFIG_LWIP_USING_DHCPD is not set # CONFIG_LWIP_USING_DHCPD is not set
#
# Static IPv4 Address
#
CONFIG_RT_LWIP_IPADDR="192.168.1.30"
CONFIG_RT_LWIP_GWADDR="192.168.1.1"
CONFIG_RT_LWIP_MSKADDR="255.255.255.0"
CONFIG_RT_LWIP_UDP=y CONFIG_RT_LWIP_UDP=y
CONFIG_RT_LWIP_TCP=y CONFIG_RT_LWIP_TCP=y
# CONFIG_RT_LWIP_RAW is not set # CONFIG_RT_LWIP_RAW is not set
@ -178,6 +202,17 @@ CONFIG_LWIP_SO_RCVBUF=1
# #
# CONFIG_RT_USING_GUIENGINE is not set # CONFIG_RT_USING_GUIENGINE is not set
#
# VBUS(Virtual Software BUS)
#
# CONFIG_RT_USING_VBUS is not set
#
# Utilities
#
# CONFIG_RT_USING_LOGTRACE is not set
# CONFIG_RT_USING_RYM is not set
# #
# RT-Thread online packages # RT-Thread online packages
# #
@ -187,24 +222,30 @@ CONFIG_LWIP_SO_RCVBUF=1
# #
# CONFIG_PKG_USING_PARTITION is not set # CONFIG_PKG_USING_PARTITION is not set
# CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_SQLITE is not set
# CONFIG_PKG_USING_RTI is not set
# #
# IoT - internet of things # IoT - internet of things
# #
# CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_PAHOMQTT is not set # CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set # CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_MONGOOSE is not set # CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEB_TERMINAL is not set # CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
# #
# security packages # security packages
# #
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_libsodium is not set
# #
# language packages # language packages
# #
# CONFIG_PKG_USING_JERRYSCRIPT is not set # CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
# #
# multimedia packages # multimedia packages
@ -214,15 +255,18 @@ CONFIG_LWIP_SO_RCVBUF=1
# tools packages # tools packages
# #
# CONFIG_PKG_USING_CMBACKTRACE is not set # CONFIG_PKG_USING_CMBACKTRACE is not set
# CONFIG_PKG_USING_ELOG is not set # CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
# #
# miscellaneous packages # miscellaneous packages
# #
# CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# #
# BSP_SPECIAL CONFIG # example package: hello
# #
# CONFIG_PKG_USING_HELLO is not set
CONFIG_RT_USING_UART=y CONFIG_RT_USING_UART=y
CONFIG_RT_USING_UART1=y CONFIG_RT_USING_UART1=y

View File

@ -45,20 +45,20 @@
** ################################################################### ** ###################################################################
*/ */
#define m_interrupts_start 0x60002000 #define m_text_start 0x60002000
#define m_interrupts_size 0x00000400 #define m_text_size 0x1F7FE000
#define m_text_start 0x60002400
#define m_text_size 0x1F7FDC00
#define m_data_start 0x20000000 #define m_data_start 0x20000000
#define m_data_size 0x00020000 #define m_data_size 0x00020000
#define m_ncache_start 0x81E00000
#define m_ncache_size 0x00200000
/* Sizes */ /* Sizes */
#if (defined(__stack_size__)) #if (defined(__stack_size__))
#define Stack_Size __stack_size__ #define Stack_Size __stack_size__
#else #else
#define Stack_Size 0x0400 #define Stack_Size 0x1000
#endif #endif
#if (defined(__heap_size__)) #if (defined(__heap_size__))
@ -69,23 +69,22 @@
LR_m_text m_text_start m_text_size { ; load region size_region LR_m_text m_text_start m_text_size { ; load region size_region
ER_m_text m_text_start m_text_size { ; load address = execution address ER_m_text m_text_start m_text_size { ; load address = execution address
* (RESET,+FIRST)
* (InRoot$$Sections) * (InRoot$$Sections)
.ANY (+RO) .ANY (+RO)
} }
RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
* (NonCacheable.init)
* (NonCacheable)
} }
ARM_LIB_HEAP +0 EMPTY Heap_Size { ; Heap region growing up ARM_LIB_HEAP +0 EMPTY Heap_Size { ; Heap region growing up
} }
ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down ARM_LIB_STACK +0 EMPTY Stack_Size { ; Stack region growing down
} }
}
LR_m_interrupts m_interrupts_start m_interrupts_size { RW_m_ncache m_ncache_start m_ncache_size { ; ncache RW data
VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address * (NonCacheable.init)
* (RESET,+FIRST) * (NonCacheable)
} }
} }

View File

@ -0,0 +1,45 @@
/*
* Copyright 2017 NXP
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* o Redistributions of source code must retain the above copyright notice, this list
* of conditions and the following disclaimer.
*
* o Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* o Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
FUNC void Setup (void) {
SP = _RDWORD(0x60002000); // Setup Stack Pointer
PC = _RDWORD(0x60002004); // Setup Program Counter
_WDWORD(0xE000ED08, 0x60002000); // Setup Vector Table Offset Register
}
FUNC void OnResetExec (void) { // executes upon software RESET
Setup(); // Setup for Running
}
LOAD %L INCREMENTAL // Download
Setup(); // Setup for Running
// g, main

View File

@ -53,14 +53,33 @@ STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;
/* Specify the memory areas */ /* Specify the memory areas */
MEMORY MEMORY
{ {
m_boot_data (RX) : ORIGIN = 0x60000000, LENGTH = 0x00000400
m_image_vertor_table (RX) : ORIGIN = 0x60001000, LENGTH = 0x00000400
m_interrupts (RX) : ORIGIN = 0x60002000, LENGTH = 0x00000400 m_interrupts (RX) : ORIGIN = 0x60002000, LENGTH = 0x00000400
m_text (RX) : ORIGIN = 0x60002400, LENGTH = 0x1F7FDC00 m_text (RX) : ORIGIN = 0x60002400, LENGTH = 0x1F7FDC00
m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00020000
m_itcm (RW) : ORIGIN = 0x00000000, LENGTH = 0x00020000
m_dtcm (RW) : ORIGIN = 0x20000000, LENGTH = 0x00020000
m_ocram (RW) : ORIGIN = 0x20200000, LENGTH = 0x00040000
m_sdram (RW) : ORIGIN = 0x80000000, LENGTH = 0x01E00000
m_nocache (RW) : ORIGIN = 0x81E00000, LENGTH = 0x00200000
} }
/* Define output sections */ /* Define output sections */
SECTIONS SECTIONS
{ {
.boot_data :
{
KEEP(*(.bootdata))
} > m_boot_data
.image_vertor_table :
{
KEEP(*(.ivt))
} > m_image_vertor_table
/* The startup code goes first into internal RAM */ /* The startup code goes first into internal RAM */
.interrupts : .interrupts :
{ {
@ -87,6 +106,23 @@ SECTIONS
KEEP (*(.init)) KEEP (*(.init))
KEEP (*(.fini)) KEEP (*(.fini))
. = ALIGN(4); . = ALIGN(4);
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
/* section information for initial. */
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
} > m_text } > m_text
.ARM.extab : .ARM.extab :
@ -173,7 +209,7 @@ SECTIONS
KEEP(*(.jcr*)) KEEP(*(.jcr*))
. = ALIGN(4); . = ALIGN(4);
__data_end__ = .; /* define a global symbol at data end */ __data_end__ = .; /* define a global symbol at data end */
} > m_data } > m_dtcm
__NDATA_ROM = __DATA_ROM + (__data_end__ - __data_start__); __NDATA_ROM = __DATA_ROM + (__data_end__ - __data_start__);
.ncache.init : AT(__NDATA_ROM) .ncache.init : AT(__NDATA_ROM)
@ -182,14 +218,14 @@ SECTIONS
*(NonCacheable.init) *(NonCacheable.init)
. = ALIGN(4); . = ALIGN(4);
__noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */ __noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */
} > m_data } > m_dtcm
. = __noncachedata_init_end__; . = __noncachedata_init_end__;
.ncache : .ncache :
{ {
*(NonCacheable) *(NonCacheable)
. = ALIGN(4); . = ALIGN(4);
__noncachedata_end__ = .; /* define a global symbol at ncache data end */ __noncachedata_end__ = .; /* define a global symbol at ncache data end */
} > m_data } > m_dtcm
__DATA_END = __NDATA_ROM + (__noncachedata_init_end__ - __noncachedata_start__); __DATA_END = __NDATA_ROM + (__noncachedata_init_end__ - __noncachedata_start__);
text_end = ORIGIN(m_text) + LENGTH(m_text); text_end = ORIGIN(m_text) + LENGTH(m_text);
@ -209,32 +245,22 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__bss_end__ = .; __bss_end__ = .;
__END_BSS = .; __END_BSS = .;
} > m_data } > m_dtcm
.heap :
{
. = ALIGN(8);
__end__ = .;
PROVIDE(end = .);
__HeapBase = .;
. += HEAP_SIZE;
__HeapLimit = .;
__heap_limit = .; /* Add for _sbrk */
} > m_data
.stack : .stack :
{ {
. = ALIGN(8); . = ALIGN(8);
stack_start = .;
. += STACK_SIZE; . += STACK_SIZE;
} > m_data stack_end = .;
heap_start = .;
} > m_dtcm
/* Initializes stack on the end of block */ /* Initializes stack on the end of block */
__StackTop = ORIGIN(m_data) + LENGTH(m_data); __StackTop = stack_end;
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop); PROVIDE(__stack = __StackTop);
.ARM.attributes 0 : { *(.ARM.attributes) } .ARM.attributes 0 : { *(.ARM.attributes) }
ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
} }

View File

@ -54,8 +54,14 @@ STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;
MEMORY MEMORY
{ {
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400 m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_text (RX) : ORIGIN = 0x00000400, LENGTH = 0x0001FC00 m_text (RX) : ORIGIN = 0x00000400, LENGTH = 0x00020000
m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00020000
/* m_itcm (RW) : ORIGIN = 0x00000000, LENGTH = 0x00020000 */
m_dtcm (RW) : ORIGIN = 0x20000000, LENGTH = 0x00020000
/* m_ocram (RW) : ORIGIN = 0x20200000, LENGTH = 0x00040000 */
/* m_sdram (RW) : ORIGIN = 0x80000000, LENGTH = 0x01E00000 */
/* m_nocache (RW) : ORIGIN = 0x81E00000, LENGTH = 0x00200000 */
} }
/* Define output sections */ /* Define output sections */
@ -87,6 +93,23 @@ SECTIONS
KEEP (*(.init)) KEEP (*(.init))
KEEP (*(.fini)) KEEP (*(.fini))
. = ALIGN(4); . = ALIGN(4);
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
/* section information for initial. */
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
} > m_text } > m_text
.ARM.extab : .ARM.extab :
@ -173,7 +196,7 @@ SECTIONS
KEEP(*(.jcr*)) KEEP(*(.jcr*))
. = ALIGN(4); . = ALIGN(4);
__data_end__ = .; /* define a global symbol at data end */ __data_end__ = .; /* define a global symbol at data end */
} > m_data } > m_dtcm
__NDATA_ROM = __DATA_ROM + (__data_end__ - __data_start__); __NDATA_ROM = __DATA_ROM + (__data_end__ - __data_start__);
.ncache.init : AT(__NDATA_ROM) .ncache.init : AT(__NDATA_ROM)
@ -182,14 +205,14 @@ SECTIONS
*(NonCacheable.init) *(NonCacheable.init)
. = ALIGN(4); . = ALIGN(4);
__noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */ __noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */
} > m_data } > m_dtcm
. = __noncachedata_init_end__; . = __noncachedata_init_end__;
.ncache : .ncache :
{ {
*(NonCacheable) *(NonCacheable)
. = ALIGN(4); . = ALIGN(4);
__noncachedata_end__ = .; /* define a global symbol at ncache data end */ __noncachedata_end__ = .; /* define a global symbol at ncache data end */
} > m_data } > m_dtcm
__DATA_END = __NDATA_ROM + (__noncachedata_init_end__ - __noncachedata_start__); __DATA_END = __NDATA_ROM + (__noncachedata_init_end__ - __noncachedata_start__);
text_end = ORIGIN(m_text) + LENGTH(m_text); text_end = ORIGIN(m_text) + LENGTH(m_text);
@ -209,32 +232,21 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__bss_end__ = .; __bss_end__ = .;
__END_BSS = .; __END_BSS = .;
} > m_data } > m_dtcm
.heap :
{
. = ALIGN(8);
__end__ = .;
PROVIDE(end = .);
__HeapBase = .;
. += HEAP_SIZE;
__HeapLimit = .;
__heap_limit = .; /* Add for _sbrk */
} > m_data
.stack : .stack :
{ {
. = ALIGN(8); . = ALIGN(8);
stack_start = .;
. += STACK_SIZE; . += STACK_SIZE;
} > m_data stack_end = .;
heap_start = .;
} > m_dtcm
/* Initializes stack on the end of block */ /* Initializes stack on the end of block */
__StackTop = ORIGIN(m_data) + LENGTH(m_data); __StackTop = stack_end;
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop); PROVIDE(__stack = __StackTop);
.ARM.attributes 0 : { *(.ARM.attributes) } .ARM.attributes 0 : { *(.ARM.attributes) }
ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
} }

View File

@ -36,6 +36,10 @@
/*****************************************************************************/ /*****************************************************************************/
/* Version: GCC for ARM Embedded Processors */ /* Version: GCC for ARM Embedded Processors */
/*****************************************************************************/ /*****************************************************************************/
#define __STARTUP_INITIALIZE_NONCACHEDATA
#define __STARTUP_CLEAR_BSS
.syntax unified .syntax unified
.arch armv7-m .arch armv7-m

View File

@ -47,14 +47,23 @@
define symbol m_interrupts_start = 0x60002000; define symbol m_interrupts_start = 0x60002000;
define symbol m_interrupts_end = 0x600023FF; define symbol m_interrupts_end = 0x600023FF;
define symbol m_text_start = 0x60002400; define symbol m_itcm_start = 0x00000000;
define symbol m_text_end = 0x7F7FFFFF; define symbol m_itcm_end = 0x0001FFFF;
define symbol m_data_start = 0x20000000; define symbol m_spiflash_start = 0x60002400;
define symbol m_data_end = 0x2001FFFF; define symbol m_spiflash_end = 0x7F7FFFFF;
define symbol m_data2_start = 0x20200000; define symbol m_dtcm_start = 0x20000000;
define symbol m_data2_end = 0x2023FFFF; define symbol m_dtcm_end = 0x2001FFFF;
define symbol m_ocram_start = 0x20200000;
define symbol m_ocram_end = 0x2023FFFF;
define symbol m_sdram_start = 0x80000000;
define symbol m_sdram_end = 0x81DFFFFF;
define symbol m_ncache_start = 0x81E00000;
define symbol m_ncache_end = 0x81FFFFFF;
/* Sizes */ /* Sizes */
if (isdefinedsymbol(__stack_size__)) { if (isdefinedsymbol(__stack_size__)) {
@ -75,11 +84,13 @@ define exported symbol __RAM_VECTOR_TABLE_SIZE = 0x0;
define memory mem with size = 4G; define memory mem with size = 4G;
define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end] define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end]
| mem:[from m_text_start to m_text_end]; | mem:[from m_spiflash_start to m_spiflash_end];
define region DATA_region = mem:[from m_data_start to m_data_end-__size_cstack__]; define region ITCM_region = mem:[from m_itcm_start to m_itcm_end];
define region DATA2_region = mem:[from m_data2_start to m_data2_end]; define region DTCM_region = mem:[from m_dtcm_start to m_dtcm_end];
define region CSTACK_region = mem:[from m_data_end-__size_cstack__+1 to m_data_end]; define region OCRAM_region = mem:[from m_ocram_start to m_ocram_end];
define region NCACHE_region = mem:[from m_ncache_start to m_ncache_end];
define region SDRAM_region = mem:[from m_sdram_start to m_sdram_end];
define block CSTACK with alignment = 8, size = __size_cstack__ { }; define block CSTACK with alignment = 8, size = __size_cstack__ { };
define block HEAP with alignment = 8, size = __size_heap__ { }; define block HEAP with alignment = 8, size = __size_heap__ { };
@ -92,10 +103,14 @@ do not initialize { section .noinit };
place at address mem: m_interrupts_start { readonly section .intvec }; place at address mem: m_interrupts_start { readonly section .intvec };
place in TEXT_region { readonly }; keep { section FSymTab };
place in DATA_region { block RW }; keep { section VSymTab };
place in DATA_region { block ZI }; keep { section .rti_fn* };
place in DATA_region { last block HEAP };
place in DATA_region { block NCACHE_VAR }; place in TEXT_region { readonly };
place in CSTACK_region { block CSTACK }; place in DTCM_region { block RW };
place in DTCM_region { block ZI };
place in DTCM_region { last block HEAP };
place in DTCM_region { block CSTACK };
place in NCACHE_region { block NCACHE_VAR };

View File

@ -116,6 +116,8 @@ void SystemInit (void) {
SCB_EnableDCache(); SCB_EnableDCache();
#endif #endif
extern void rt_lowlevel_init(void);
rt_lowlevel_init();
} }
/* ---------------------------------------------------------------------------- /* ----------------------------------------------------------------------------

View File

@ -30,13 +30,13 @@
#include <dfs_file.h> #include <dfs_file.h>
#endif #endif
#ifdef RT_USING_DEVICE
#include <rtdevice.h>
#endif
#include <board.h> #include <board.h>
RT_USED MPU_Type *mpu = MPU; void dump_clock(void)
RT_USED IOMUXC_GPR_Type *iomuxc_gpr = IOMUXC_GPR;
static void dump_clock(void)
{ {
rt_kprintf("CPU clock: %d\n", CLOCK_GetFreq(kCLOCK_CpuClk)); rt_kprintf("CPU clock: %d\n", CLOCK_GetFreq(kCLOCK_CpuClk));
rt_kprintf("AHB clock : %d\n", CLOCK_GetFreq(kCLOCK_AhbClk)); rt_kprintf("AHB clock : %d\n", CLOCK_GetFreq(kCLOCK_AhbClk));
@ -63,29 +63,82 @@ static void dump_clock(void)
rt_kprintf("Video PLLCLK : %d\n", CLOCK_GetFreq(kCLOCK_VideoPllClk)); rt_kprintf("Video PLLCLK : %d\n", CLOCK_GetFreq(kCLOCK_VideoPllClk));
} }
void dump_tcm(void) void dump_cc_info(void)
{ {
#define DUMP_REG(__REG) \ #if defined(__CC_ARM)
rt_kprintf("%s(%08p): %08x\n", #__REG, &(__REG), __REG) rt_kprintf("using armcc, version: %d\n", __ARMCC_VERSION);
#elif defined(__ICCARM__)
rt_kprintf("using iccarm, version: %d\n", __VER__);
#elif defined(__GNUC__)
rt_kprintf("using gcc, version: %d.%d\n", __GNUC__, __GNUC_MINOR__);
#endif
}
DUMP_REG(IOMUXC_GPR->GPR14); void dump_link_info(void)
DUMP_REG(IOMUXC_GPR->GPR16); {
DUMP_REG(IOMUXC_GPR->GPR17); #if defined(__CC_ARM)
#elif defined(__ICCARM__)
#elif defined(__GNUC__)
#define DUMP_SYMBOL(__SYM) \
extern int __SYM; \
rt_kprintf("%s: %p\n", #__SYM, &__SYM)
DUMP_SYMBOL(__fsymtab_start);
DUMP_SYMBOL(__fsymtab_end);
DUMP_SYMBOL(__vsymtab_start);
DUMP_SYMBOL(__vsymtab_end);
DUMP_SYMBOL(__rt_init_start);
DUMP_SYMBOL(__rt_init_end);
DUMP_SYMBOL(__exidx_start);
DUMP_SYMBOL(__exidx_end);
DUMP_SYMBOL(__etext);
DUMP_SYMBOL(__data_start__);
DUMP_SYMBOL(__data_end__);
DUMP_SYMBOL(__noncachedata_start__);
DUMP_SYMBOL(__noncachedata_init_end__);
DUMP_SYMBOL(__noncachedata_end__);
DUMP_SYMBOL(__bss_start__);
DUMP_SYMBOL(__bss_end__);
DUMP_SYMBOL(stack_start);
DUMP_SYMBOL(stack_end);
DUMP_SYMBOL(heap_start);
#endif
} }
int main(void) int main(void)
{ {
rt_uint32_t result;
//dump_clock(); //dump_clock();
//dump_tcm(); dump_cc_info();
dump_link_info();
rt_thread_delay(RT_TICK_PER_SECOND * 2); rt_kprintf("build time: %s %s\n", __DATE__, __TIME__);
#if defined(RT_USING_DFS) && defined(RT_USING_SDIO)
result = mmcsd_wait_cd_changed(RT_TICK_PER_SECOND);
if (result == MMCSD_HOST_PLUGED)
{
/* mount sd card fat partition 1 as root directory */ /* mount sd card fat partition 1 as root directory */
if (dfs_mount("sd0", "/", "elm", 0, 0) == 0) if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
rt_kprintf("File System initialized!\n"); rt_kprintf("File System initialized!\n");
else else
rt_kprintf("File System init failed!\n"); rt_kprintf("File System init failed!\n");
}
else
{
rt_kprintf("sdcard init fail or timeout: %d!\n", result);
}
#endif
while (1) while (1)
{ {

View File

@ -0,0 +1,50 @@
/*
* File : clock.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2017-12-05 Tanek first version
*/
#include <rtthread.h>
static void mem_dump(uint32_t buffer, uint32_t length)
{
uint32_t *buf = (uint32_t *)buffer;
int i;
for (i = 0; i < length / 4; i++)
{
rt_kprintf("0x%08X,", buf[i]);
if (i % 8 == 7)
{
rt_kprintf("\n");
}
else
{
rt_kprintf(" ");
}
}
}
#ifdef RT_USING_FINSH
#include <finsh.h>
FINSH_FUNCTION_EXPORT(mem_dump, dump memory);
#endif

View File

@ -1,95 +0,0 @@
/*
** ###################################################################
** Processor: MIMXRT1052DVL6A
** Compiler: IAR ANSI C/C++ Compiler for ARM
** Reference manual: i.MX 6RT for ROM
** Version: rev. 0.1, 2017-01-10
** Build: b170608
**
** Abstract:
** Linker file for the IAR ANSI C/C++ Compiler for ARM
**
** Copyright 2016 Freescale Semiconductor, Inc.
** Copyright 2016-2017 NXP
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
**
** 1. Redistributions of source code must retain the above copyright notice, this list
** of conditions and the following disclaimer.
**
** 2. Redistributions in binary form must reproduce the above copyright notice, this
** list of conditions and the following disclaimer in the documentation and/or
** other materials provided with the distribution.
**
** 3. Neither the name of the copyright holder nor the names of its
** contributors may be used to endorse or promote products derived from this
** software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** http: www.nxp.com
** mail: support@nxp.com
**
** ###################################################################
*/
define symbol m_interrupts_start = 0x00000000;
define symbol m_interrupts_end = 0x000003FF;
define symbol m_text_start = 0x00000400;
define symbol m_text_end = 0x0001FFFF;
define symbol m_data_start = 0x80020000;
define symbol m_data_end = 0x800FFFFF;
/* Sizes */
if (isdefinedsymbol(__stack_size__)) {
define symbol __size_cstack__ = __stack_size__;
} else {
define symbol __size_cstack__ = 0x0400;
}
if (isdefinedsymbol(__heap_size__)) {
define symbol __size_heap__ = __heap_size__;
} else {
define symbol __size_heap__ = 0x0400;
}
define exported symbol __VECTOR_TABLE = m_interrupts_start;
define exported symbol __VECTOR_RAM = m_interrupts_start;
define exported symbol __RAM_VECTOR_TABLE_SIZE = 0x0;
define memory mem with size = 4G;
define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end]
| mem:[from m_text_start to m_text_end];
define region DATA_region = mem:[from m_data_start to m_data_end-__size_cstack__];
define region CSTACK_region = mem:[from m_data_end-__size_cstack__+1 to m_data_end];
define block CSTACK with alignment = 8, size = __size_cstack__ { };
define block HEAP with alignment = 8, size = __size_heap__ { };
define block RW { readwrite };
define block ZI { zi };
define block RTT_INIT_FUNC with fixed order { readonly section .rti_fn* };
initialize by copy { readwrite, section .textrw };
do not initialize { section .noinit };
keep { section FSymTab };
keep { section VSymTab };
keep { section .rti_fn* };
place at address mem: m_interrupts_start { readonly section .intvec };
place in TEXT_region { readonly, block RTT_INIT_FUNC };
place in DATA_region { block RW };
place in DATA_region { block ZI };
place in DATA_region { last block HEAP };
place in CSTACK_region { block CSTACK };

View File

@ -8,6 +8,8 @@ cwd = os.path.join(str(Dir('#')), 'drivers')
src = Split(""" src = Split("""
board.c board.c
usart.c usart.c
hyper_flash_boot.c
drv_sdram.c
""") """)
CPPPATH = [cwd] CPPPATH = [cwd]

View File

@ -18,6 +18,8 @@
#include "board.h" #include "board.h"
#include "usart.h" #include "usart.h"
static struct rt_memheap system_heap;
/* ARM PLL configuration for RUN mode */ /* ARM PLL configuration for RUN mode */
const clock_arm_pll_config_t armPllConfig = { .loopDivider = 100U }; const clock_arm_pll_config_t armPllConfig = { .loopDivider = 100U };
@ -29,14 +31,14 @@ const clock_usb_pll_config_t usb1PllConfig = { .loopDivider = 0U };
static void BOARD_BootClockGate(void) static void BOARD_BootClockGate(void)
{ {
/* Disable all unused peripheral clock */ // /* Disable all unused peripheral clock */
CCM->CCGR0 = 0x00C0000FU; // CCM->CCGR0 = 0x00C0000FU;
CCM->CCGR1 = 0x30000000U; // CCM->CCGR1 = 0x30000000U;
CCM->CCGR2 = 0x003F0030U; // CCM->CCGR2 = 0x003F0030U;
CCM->CCGR3 = 0xF0000330U; // CCM->CCGR3 = 0xF0000330U;
CCM->CCGR4 = 0x0000FF3CU; // CCM->CCGR4 = 0x0000FF3CU;
CCM->CCGR5 = 0xF000330FU; // CCM->CCGR5 = 0xF000330FU;
CCM->CCGR6 = 0x00FC0300U; // CCM->CCGR6 = 0x00FC0300U;
} }
static void BOARD_BootClockRUN(void) static void BOARD_BootClockRUN(void)
@ -83,6 +85,64 @@ static void BOARD_BootClockRUN(void)
} }
/* MPU configuration. */
static void BOARD_ConfigMPU(void)
{
/* Disable I cache and D cache */
SCB_DisableICache();
SCB_DisableDCache();
/* Disable MPU */
ARM_MPU_Disable();
/* Region 0 setting */
MPU->RBAR = ARM_MPU_RBAR(0, 0xC0000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_512MB);
/* Region 1 setting */
MPU->RBAR = ARM_MPU_RBAR(1, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
/* Region 2 setting */
// spi flash: normal type, cacheable, no bufferable, no shareable
MPU->RBAR = ARM_MPU_RBAR(2, 0x60000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 0, 0, ARM_MPU_REGION_SIZE_512MB);
/* Region 3 setting */
MPU->RBAR = ARM_MPU_RBAR(3, 0x00000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_1GB);
/* Region 4 setting */
MPU->RBAR = ARM_MPU_RBAR(4, 0x00000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
/* Region 5 setting */
MPU->RBAR = ARM_MPU_RBAR(5, 0x20000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);
/* Region 6 setting */
MPU->RBAR = ARM_MPU_RBAR(6, 0x20200000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB);
#if defined(SDRAM_MPU_INIT)
/* Region 7 setting */
MPU->RBAR = ARM_MPU_RBAR(7, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);
/* Region 8 setting */
MPU->RBAR = ARM_MPU_RBAR(8, 0x81E00000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_2MB);
#endif
/* Enable MPU */
ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);
/* Enable I cache and D cache */
SCB_EnableDCache();
SCB_EnableICache();
}
/** /**
* This is the timer interrupt service routine. * This is the timer interrupt service routine.
* *
@ -98,6 +158,14 @@ void SysTick_Handler(void)
rt_interrupt_leave(); rt_interrupt_leave();
} }
void rt_lowlevel_init(void)
{
BOARD_ConfigMPU();
extern int imxrt_sdram_init(void);
imxrt_sdram_init();
}
/** /**
* This function will initial LPC8XX board. * This function will initial LPC8XX board.
*/ */
@ -105,10 +173,8 @@ void rt_hw_board_init()
{ {
BOARD_BootClockRUN(); BOARD_BootClockRUN();
SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
extern int imxrt_hw_usart_init(void); SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
imxrt_hw_usart_init();
#ifdef RT_USING_COMPONENTS_INIT #ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init(); rt_components_board_init();
@ -119,7 +185,11 @@ void rt_hw_board_init()
#endif #endif
#ifdef RT_USING_HEAP #ifdef RT_USING_HEAP
rt_system_heap_init((void*)HEAP_BEGIN, (void*)HEAP_END); rt_kprintf("sdram heap, begin: 0x%p, end: 0x%p\n", SDRAM_BEGIN, SDRAM_END);
rt_system_heap_init((void*)SDRAM_BEGIN, (void*)SDRAM_END);
rt_kprintf("sram heap, begin: 0x%p, end: 0x%p\n", HEAP_BEGIN, HEAP_END);
rt_memheap_init(&system_heap, "system", (void *)HEAP_BEGIN, HEAP_SIZE);
#endif #endif
} }

View File

@ -21,18 +21,26 @@
#include <fsl_iomuxc.h> #include <fsl_iomuxc.h>
#ifdef __CC_ARM #ifdef __CC_ARM
extern int Image$$RW_m_data$$ZI$$Limit; extern int Image$$ARM_LIB_STACK$$ZI$$Limit;
#define HEAP_BEGIN (&Image$$RW_m_data$$ZI$$Limit) #define HEAP_BEGIN (&Image$$ARM_LIB_STACK$$ZI$$Limit)
#define HEAP_END (0x2001FFFFu)
#elif __ICCARM__ #elif __ICCARM__
#pragma section="HEAP" #pragma section="HEAP"
#define HEAP_BEGIN (__segment_end("HEAP")) #define HEAP_BEGIN (__segment_end("HEAP"))
#define HEAP_END (0x2001FFFFu)
#else #else
extern int __data_end__; extern int heap_start;
#define HEAP_BEGIN (&__data_end__) #define HEAP_BEGIN (&heap_start)
#define HEAP_END (0x2001FFFFu)
#endif #endif
#define HEAP_END 0x81DFFFFF #define HEAP_SIZE ((uint32_t)HEAP_END - (uint32_t)HEAP_BEGIN)
//#define HEAP_END 0x2001FFFF
#define SDRAM_MPU_INIT
#define SDRAM_BEGIN (0x80000000u)
#define SDRAM_END (0x81E00000u)
void rt_hw_board_init(void); void rt_hw_board_init(void);

View File

@ -36,16 +36,17 @@
#define PHY_ADDRESS 0x02u #define PHY_ADDRESS 0x02u
/* debug option */ /* debug option */
//#define DEBUG
//#define ETH_RX_DUMP //#define ETH_RX_DUMP
//#define ETH_TX_DUMP //#define ETH_TX_DUMP
#ifdef DEBUG #define DBG_ENABLE
#define ETH_PRINTF rt_kprintf #define DBG_SECTION_NAME "[ETH]"
#else #define DBG_COLOR
#define ETH_PRINTF(...) #define DBG_LEVEL DBG_INFO
#endif #include <rtdbg.h>
#define MAX_ADDR_LEN 6 #define MAX_ADDR_LEN 6
@ -380,13 +381,11 @@ static void _enet_config(void)
/* Set SMI to get PHY link status. */ /* Set SMI to get PHY link status. */
sysClock = CLOCK_GetFreq(kCLOCK_AhbClk); sysClock = CLOCK_GetFreq(kCLOCK_AhbClk);
status = PHY_Init(imxrt_eth_device.enet_base, PHY_ADDRESS, sysClock);
while (status != kStatus_Success)
{
ETH_PRINTF("\r\nPHY Auto-negotiation failed. Please check the cable connection and link partner setting.\r\n");
status = PHY_Init(imxrt_eth_device.enet_base, PHY_ADDRESS, sysClock);
}
status = PHY_Init(imxrt_eth_device.enet_base, PHY_ADDRESS, sysClock);
if (status == kStatus_Success)
{
PHY_GetLinkStatus(imxrt_eth_device.enet_base, PHY_ADDRESS, &link); PHY_GetLinkStatus(imxrt_eth_device.enet_base, PHY_ADDRESS, &link);
if (link) if (link)
{ {
@ -397,6 +396,18 @@ static void _enet_config(void)
config.miiDuplex = (enet_mii_duplex_t)duplex; config.miiDuplex = (enet_mii_duplex_t)duplex;
} }
dbg_log(DBG_LOG, "PHY Auto-negotiation success.\n");
eth_device_linkchange(&imxrt_eth_device.parent, RT_TRUE);
}
else
{
config.miiSpeed = kENET_MiiSpeed10M;
config.miiDuplex = kENET_MiiHalfDuplex;
dbg_log(DBG_WARNING, "PHY Auto-negotiation failed. Please check the cable connection and link partner setting.\n");
eth_device_linkchange(&imxrt_eth_device.parent, RT_FALSE);
}
ENET_Init(imxrt_eth_device.enet_base, &imxrt_eth_device.enet_handle, &config, &buffConfig, &imxrt_eth_device.dev_addr[0], sysClock); ENET_Init(imxrt_eth_device.enet_base, &imxrt_eth_device.enet_handle, &config, &buffConfig, &imxrt_eth_device.dev_addr[0], sysClock);
ENET_SetCallback(&imxrt_eth_device.enet_handle, _enet_callback, &imxrt_eth_device); ENET_SetCallback(&imxrt_eth_device.enet_handle, _enet_callback, &imxrt_eth_device);
ENET_ActiveRead(imxrt_eth_device.enet_base); ENET_ActiveRead(imxrt_eth_device.enet_base);
@ -416,33 +427,33 @@ static rt_err_t rt_imxrt_eth_init(rt_device_t dev)
static rt_err_t rt_imxrt_eth_open(rt_device_t dev, rt_uint16_t oflag) static rt_err_t rt_imxrt_eth_open(rt_device_t dev, rt_uint16_t oflag)
{ {
ETH_PRINTF("rt_imxrt_eth_open...\n"); dbg_log(DBG_LOG, "rt_imxrt_eth_open...\n");
return RT_EOK; return RT_EOK;
} }
static rt_err_t rt_imxrt_eth_close(rt_device_t dev) static rt_err_t rt_imxrt_eth_close(rt_device_t dev)
{ {
ETH_PRINTF("rt_imxrt_eth_close...\n"); dbg_log(DBG_LOG, "rt_imxrt_eth_close...\n");
return RT_EOK; return RT_EOK;
} }
static rt_size_t rt_imxrt_eth_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size) static rt_size_t rt_imxrt_eth_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size)
{ {
ETH_PRINTF("rt_imxrt_eth_read...\n"); dbg_log(DBG_LOG, "rt_imxrt_eth_read...\n");
rt_set_errno(-RT_ENOSYS); rt_set_errno(-RT_ENOSYS);
return 0; return 0;
} }
static rt_size_t rt_imxrt_eth_write (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size) static rt_size_t rt_imxrt_eth_write (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size)
{ {
ETH_PRINTF("rt_imxrt_eth_write...\n"); dbg_log(DBG_LOG, "rt_imxrt_eth_write...\n");
rt_set_errno(-RT_ENOSYS); rt_set_errno(-RT_ENOSYS);
return 0; return 0;
} }
static rt_err_t rt_imxrt_eth_control(rt_device_t dev, int cmd, void *args) static rt_err_t rt_imxrt_eth_control(rt_device_t dev, int cmd, void *args)
{ {
ETH_PRINTF("rt_imxrt_eth_control...\n"); dbg_log(DBG_LOG, "rt_imxrt_eth_control...\n");
switch(cmd) switch(cmd)
{ {
case NIOCTL_GADDR: case NIOCTL_GADDR:
@ -468,7 +479,7 @@ rt_err_t rt_imxrt_eth_tx( rt_device_t dev, struct pbuf* p)
RT_ASSERT(p != NULL); RT_ASSERT(p != NULL);
RT_ASSERT(enet_handle != RT_NULL); RT_ASSERT(enet_handle != RT_NULL);
ETH_PRINTF("rt_imxrt_eth_tx: %d\n", p->len); dbg_log(DBG_LOG, "rt_imxrt_eth_tx: %d\n", p->len);
#ifdef ETH_TX_DUMP #ifdef ETH_TX_DUMP
{ {
@ -477,11 +488,11 @@ rt_err_t rt_imxrt_eth_tx( rt_device_t dev, struct pbuf* p)
buf = (uint8_t *)p->payload; buf = (uint8_t *)p->payload;
for (i = 0; i < p->len; i++) for (i = 0; i < p->len; i++)
{ {
ETH_PRINTF("%02X ", buf[i]); dbg_log(DBG_LOG, "%02X ", buf[i]);
if (i % 16 == 15) if (i % 16 == 15)
ETH_PRINTF("\n"); dbg_log(DBG_LOG, "\n");
} }
ETH_PRINTF("\n"); dbg_log(DBG_LOG, "\n");
} }
#endif #endif
@ -532,28 +543,28 @@ struct pbuf *rt_imxrt_eth_rx(rt_device_t dev)
buf = (uint8_t *)p->payload; buf = (uint8_t *)p->payload;
for (i = 0; i < p->len; i++) for (i = 0; i < p->len; i++)
{ {
ETH_PRINTF("%02X ", buf[i]); dbg_log(DBG_LOG, "%02X ", buf[i]);
if (i % 16 == 15) if (i % 16 == 15)
ETH_PRINTF("\n"); dbg_log(DBG_LOG, "\n");
} }
ETH_PRINTF("\n"); dbg_log(DBG_LOG, "\n");
#endif #endif
return p; return p;
} }
else else
{ {
ETH_PRINTF(" A frame read failed\n"); dbg_log(DBG_LOG, " A frame read failed\n");
pbuf_free(p); pbuf_free(p);
} }
} }
else else
{ {
ETH_PRINTF(" pbuf_alloc faild\n"); dbg_log(DBG_LOG, " pbuf_alloc faild\n");
} }
} }
else if (status == kStatus_ENET_RxFrameError) else if (status == kStatus_ENET_RxFrameError)
{ {
ETH_PRINTF("ENET_GetRxFrameSize: kStatus_ENET_RxFrameError\n"); dbg_log(DBG_WARNING, "ENET_GetRxFrameSize: kStatus_ENET_RxFrameError\n");
/* Update the received buffer when error happened. */ /* Update the received buffer when error happened. */
/* Get the error information of the received g_frame. */ /* Get the error information of the received g_frame. */
ENET_GetRxErrBeforeReadFrame(enet_handle, error_statistic); ENET_GetRxErrBeforeReadFrame(enet_handle, error_statistic);
@ -591,20 +602,20 @@ static int rt_hw_imxrt_eth_init(void)
imxrt_eth_device.parent.eth_rx = rt_imxrt_eth_rx; imxrt_eth_device.parent.eth_rx = rt_imxrt_eth_rx;
imxrt_eth_device.parent.eth_tx = rt_imxrt_eth_tx; imxrt_eth_device.parent.eth_tx = rt_imxrt_eth_tx;
ETH_PRINTF("sem init: tx_wait\r\n"); dbg_log(DBG_LOG, "sem init: tx_wait\r\n");
/* init tx semaphore */ /* init tx semaphore */
rt_sem_init(&imxrt_eth_device.tx_wait, "tx_wait", 0, RT_IPC_FLAG_FIFO); rt_sem_init(&imxrt_eth_device.tx_wait, "tx_wait", 0, RT_IPC_FLAG_FIFO);
/* register eth device */ /* register eth device */
ETH_PRINTF("eth_device_init start\r\n"); dbg_log(DBG_LOG, "eth_device_init start\r\n");
state = eth_device_init(&(imxrt_eth_device.parent), "e0"); state = eth_device_init(&(imxrt_eth_device.parent), "e0");
if (RT_EOK == state) if (RT_EOK == state)
{ {
ETH_PRINTF("eth_device_init success\r\n"); dbg_log(DBG_LOG, "eth_device_init success\r\n");
} }
else else
{ {
ETH_PRINTF("eth_device_init faild: %d\r\n", state); dbg_log(DBG_LOG, "eth_device_init faild: %d\r\n", state);
} }
return state; return state;
} }

View File

@ -0,0 +1,195 @@
/*
* File : board.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2009 RT-Thread Develop 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
* 2017-12-04 Tanek first implementation
*/
#include <stdint.h>
#include <rthw.h>
#include <rtthread.h>
static uint32_t _RDWORD(uint32_t address)
{
return *((uint32_t *)address);
}
static void _WDWORD(uint32_t address, uint32_t value)
{
*((uint32_t *)address) = value;
}
static void SDRAM_WaitIpCmdDone(void)
{
unsigned long reg;
do
{
reg = _RDWORD(0x402F003C);
}while((reg & 0x3) == 0);
}
static void _clock_init(void)
{
// Enable all clocks
_WDWORD(0x400FC068,0xffffffff);
_WDWORD(0x400FC06C,0xffffffff);
_WDWORD(0x400FC070,0xffffffff);
_WDWORD(0x400FC074,0xffffffff);
_WDWORD(0x400FC078,0xffffffff);
_WDWORD(0x400FC07C,0xffffffff);
_WDWORD(0x400FC080,0xffffffff);
_WDWORD(0x400D8030,0x00002001);
_WDWORD(0x400D8100,0x001d0000);
_WDWORD(0x400FC014,0x00010D40);
}
static void _sdr_Init(void)
{
// Config IOMUX
_WDWORD(0x401F8014, 0x00000000);
_WDWORD(0x401F8018, 0x00000000);
_WDWORD(0x401F801C, 0x00000000);
_WDWORD(0x401F8020, 0x00000000);
_WDWORD(0x401F8024, 0x00000000);
_WDWORD(0x401F8028, 0x00000000);
_WDWORD(0x401F802C, 0x00000000);
_WDWORD(0x401F8030, 0x00000000);
_WDWORD(0x401F8034, 0x00000000);
_WDWORD(0x401F8038, 0x00000000);
_WDWORD(0x401F803C, 0x00000000);
_WDWORD(0x401F8040, 0x00000000);
_WDWORD(0x401F8044, 0x00000000);
_WDWORD(0x401F8048, 0x00000000);
_WDWORD(0x401F804C, 0x00000000);
_WDWORD(0x401F8050, 0x00000000);
_WDWORD(0x401F8054, 0x00000000);
_WDWORD(0x401F8058, 0x00000000);
_WDWORD(0x401F805C, 0x00000000);
_WDWORD(0x401F8060, 0x00000000);
_WDWORD(0x401F8064, 0x00000000);
_WDWORD(0x401F8068, 0x00000000);
_WDWORD(0x401F806C, 0x00000000);
_WDWORD(0x401F8070, 0x00000000);
_WDWORD(0x401F8074, 0x00000000);
_WDWORD(0x401F8078, 0x00000000);
_WDWORD(0x401F807C, 0x00000000);
_WDWORD(0x401F8080, 0x00000000);
_WDWORD(0x401F8084, 0x00000000);
_WDWORD(0x401F8088, 0x00000000);
_WDWORD(0x401F808C, 0x00000000);
_WDWORD(0x401F8090, 0x00000000);
_WDWORD(0x401F8094, 0x00000000);
_WDWORD(0x401F8098, 0x00000000);
_WDWORD(0x401F809C, 0x00000000);
_WDWORD(0x401F80A0, 0x00000000);
_WDWORD(0x401F80A4, 0x00000000);
_WDWORD(0x401F80A8, 0x00000000);
_WDWORD(0x401F80AC, 0x00000000);
_WDWORD(0x401F80B0, 0x00000010); // EMC_39, DQS PIN, enable SION
_WDWORD(0x401F80B4, 0x00000000);
_WDWORD(0x401F80B8, 0x00000000);
// PAD ctrl
// drive strength = 0x7 to increase drive strength
// otherwise the data7 bit may fail.
_WDWORD(0x401F8204, 0x000110F9);
_WDWORD(0x401F8208, 0x000110F9);
_WDWORD(0x401F820C, 0x000110F9);
_WDWORD(0x401F8210, 0x000110F9);
_WDWORD(0x401F8214, 0x000110F9);
_WDWORD(0x401F8218, 0x000110F9);
_WDWORD(0x401F821C, 0x000110F9);
_WDWORD(0x401F8220, 0x000110F9);
_WDWORD(0x401F8224, 0x000110F9);
_WDWORD(0x401F8228, 0x000110F9);
_WDWORD(0x401F822C, 0x000110F9);
_WDWORD(0x401F8230, 0x000110F9);
_WDWORD(0x401F8234, 0x000110F9);
_WDWORD(0x401F8238, 0x000110F9);
_WDWORD(0x401F823C, 0x000110F9);
_WDWORD(0x401F8240, 0x000110F9);
_WDWORD(0x401F8244, 0x000110F9);
_WDWORD(0x401F8248, 0x000110F9);
_WDWORD(0x401F824C, 0x000110F9);
_WDWORD(0x401F8250, 0x000110F9);
_WDWORD(0x401F8254, 0x000110F9);
_WDWORD(0x401F8258, 0x000110F9);
_WDWORD(0x401F825C, 0x000110F9);
_WDWORD(0x401F8260, 0x000110F9);
_WDWORD(0x401F8264, 0x000110F9);
_WDWORD(0x401F8268, 0x000110F9);
_WDWORD(0x401F826C, 0x000110F9);
_WDWORD(0x401F8270, 0x000110F9);
_WDWORD(0x401F8274, 0x000110F9);
_WDWORD(0x401F8278, 0x000110F9);
_WDWORD(0x401F827C, 0x000110F9);
_WDWORD(0x401F8280, 0x000110F9);
_WDWORD(0x401F8284, 0x000110F9);
_WDWORD(0x401F8288, 0x000110F9);
_WDWORD(0x401F828C, 0x000110F9);
_WDWORD(0x401F8290, 0x000110F9);
_WDWORD(0x401F8294, 0x000110F9);
_WDWORD(0x401F8298, 0x000110F9);
_WDWORD(0x401F829C, 0x000110F9);
_WDWORD(0x401F82A0, 0x000110F9);
_WDWORD(0x401F82A4, 0x000110F9);
_WDWORD(0x401F82A8, 0x000110F9);
// Config SDR Controller Registers/
_WDWORD(0x402F0000,0x10000004); // MCR
_WDWORD(0x402F0008,0x00030524); // BMCR0
_WDWORD(0x402F000C,0x06030524); // BMCR1
_WDWORD(0x402F0010,0x8000001B); // BR0, 32MB
_WDWORD(0x402F0014,0x8200001B); // BR1, 32MB
_WDWORD(0x402F0018,0x8400001B); // BR2, 32MB
_WDWORD(0x402F001C,0x8600001B); // BR3, 32MB
_WDWORD(0x402F0020,0x90000021); // BR4,
_WDWORD(0x402F0024,0xA0000019); // BR5,
_WDWORD(0x402F0028,0xA8000017); // BR6,
_WDWORD(0x402F002C,0xA900001B); // BR7,
_WDWORD(0x402F0030,0x00000021); // BR8,
_WDWORD(0x402F0004,0x000079A8); //IOCR,SEMC_CCSX0 as NOR CE, SEMC_CSX1 as PSRAM CE, SEMC_CSX2 as NAND CE, SEMC_CSX3 as DBI CE.
// _WDWORD(0x402F0004,0x00000008); // IOCR, SEMC_CCSX0 as SDRAM_CS1
_WDWORD(0x402F0040,0x00000F31); // SDRAMCR0
_WDWORD(0x402F0044,0x00652922); // SDRAMCR1
_WDWORD(0x402F0048,0x00010920); // SDRAMCR2
_WDWORD(0x402F004C,0x50210A08); // SDRAMCR3
_WDWORD(0x402F0080,0x00000021); // DBICR0
_WDWORD(0x402F0084,0x00888888); // DBICR1
_WDWORD(0x402F0094,0x00000002); // IPCR1
_WDWORD(0x402F0098,0x00000000); // IPCR2
_WDWORD(0x402F0090,0x80000000); // IPCR0
_WDWORD(0x402F009C,0xA55A000F); // IPCMD, SD_CC_IPREA
SDRAM_WaitIpCmdDone();
_WDWORD(0x402F0090,0x80000000); // IPCR0
_WDWORD(0x402F009C,0xA55A000C); // SD_CC_IAF
SDRAM_WaitIpCmdDone();
_WDWORD(0x402F0090,0x80000000); // IPCR0
_WDWORD(0x402F009C,0xA55A000C); // SD_CC_IAF
SDRAM_WaitIpCmdDone();
_WDWORD(0x402F00A0,0x00000033); // IPTXDAT
_WDWORD(0x402F0090,0x80000000); // IPCR0
_WDWORD(0x402F009C,0xA55A000A); // SD_CC_IMS
SDRAM_WaitIpCmdDone();
_WDWORD(0x402F004C,0x50210A09 ); // enable sdram self refresh again after initialization done.
}
int imxrt_sdram_init(void)
{
_clock_init();
_sdr_Init();
return 0;
}
/*@}*/

View File

@ -29,12 +29,13 @@
*/ */
#include "fsl_phy.h" #include "fsl_phy.h"
#include <rtthread.h>
/******************************************************************************* /*******************************************************************************
* Definitions * Definitions
******************************************************************************/ ******************************************************************************/
/*! @brief Defines the timeout macro. */ /*! @brief Defines the timeout macro. */
#define PHY_TIMEOUT_COUNT 0x3FFFFFFU #define PHY_TIMEOUT_COUNT 0xFFFFU
/******************************************************************************* /*******************************************************************************
* Prototypes * Prototypes
@ -90,7 +91,7 @@ status_t PHY_Init(ENET_Type *base, uint32_t phyAddr, uint32_t srcClock_Hz)
} }
/* Reset PHY. */ /* Reset PHY. */
counter = PHY_TIMEOUT_COUNT; counter = 6;
result = PHY_Write(base, phyAddr, PHY_BASICCONTROL_REG, PHY_BCTL_RESET_MASK); result = PHY_Write(base, phyAddr, PHY_BASICCONTROL_REG, PHY_BCTL_RESET_MASK);
if (result == kStatus_Success) if (result == kStatus_Success)
{ {
@ -137,6 +138,9 @@ status_t PHY_Init(ENET_Type *base, uint32_t phyAddr, uint32_t srcClock_Hz)
} }
} }
rt_kprintf("[PHY] wait autonegotiation complete...\n");
rt_thread_delay(RT_TICK_PER_SECOND);
if (!counter) if (!counter)
{ {
return kStatus_PHY_AutoNegotiateFail; return kStatus_PHY_AutoNegotiateFail;

View File

@ -0,0 +1,66 @@
/*
* File : clock.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2017-12-05 Tanek first version
*/
#include <rtthread.h>
// enter serial download mode, and run command:
// finsh /> mem_dump(0x60000000, 512)
#if defined (__ICCARM__ )
RT_USED static const uint32_t boot_data[] @(0x60000000u) =
#elif defined ( __GNUC__ )
RT_USED static const uint32_t boot_data[] __attribute__((section (".bootdata"))) =
#elif defined ( __CC_ARM )
RT_USED static const uint32_t boot_data[] __attribute__((at(0x60000000u))) =
#endif
{
0x42464346, 0x56010400, 0x00000000, 0x03030303, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000059, 0x01080800, 0x00000000, 0x00000000, 0x04000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000F, 0x0001000F,
0x8B1887A0, 0xA7048F10, 0x00000000, 0x00000000, 0x87008700, 0x87AA8700, 0x87058700, 0x87708700,
0x8B1887A0, 0xB70B8F10, 0x0000A704, 0x00000000, 0x87008700, 0x87AA8700, 0x87058700, 0x87AA8700,
0x87008700, 0x87558700, 0x87028700, 0x87558700, 0x87008700, 0x87AA8700, 0x87058700, 0x87808700,
0x87008700, 0x87AA8700, 0x87058700, 0x87AA8700, 0x87008700, 0x87558700, 0x87028700, 0x87558700,
0x8B188700, 0x87008F10, 0x00008730, 0x00000000, 0x87008700, 0x87AA8700, 0x87058700, 0x87A08700,
0x8B188700, 0xA3808F10, 0x00000000, 0x00000000, 0x87008700, 0x87AA8700, 0x87058700, 0x87808700,
0x87008700, 0x87AA8700, 0x87058700, 0x87AA8700, 0x87008700, 0x87558700, 0x87028700, 0x87558700,
0x87008700, 0x87AA8700, 0x87058700, 0x87108700, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000102, 0x00000302, 0x00000504, 0x00000902, 0x00000B04, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000200, 0x00040000, 0x00000008, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
};
// finsh /> mem_dump(0x60001000, 16)
#if defined (__ICCARM__ )
RT_USED static const uint32_t image_vector_table[] @(0x60001000u) =
#elif defined ( __GNUC__ )
RT_USED static const uint32_t image_vector_table[] __attribute__((section (".ivt"))) =
#elif defined ( __CC_ARM )
RT_USED static const uint32_t image_vector_table[] __attribute__((at(0x60001000u))) =
#endif
{
0x412000D1, 0x60002000, 0x00000000, 0x00000000, 0x60001020, 0x60001000, 0x00000000, 0x00000000,
0x60000000, 0x00800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
};

View File

@ -350,7 +350,6 @@ int imxrt_hw_usart_init(void)
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
int i; int i;
for (i = 0; i < sizeof(uarts) / sizeof(uarts[0]); i++) for (i = 0; i < sizeof(uarts) / sizeof(uarts[0]); i++)
{ {
uarts[i].serial->ops = &imxrt_uart_ops; uarts[i].serial->ops = &imxrt_uart_ops;

View File

@ -1,259 +0,0 @@
/*
** ###################################################################
** Processors: MIMXRT1052CVL5A
** MIMXRT1052DVL6A
**
** Compiler: GNU C Compiler
** Reference manual: IMXRT1050RM Rev.C, 08/2017
** Version: rev. 0.1, 2017-01-10
** Build: b170927
**
** Abstract:
** Linker file for the GNU C Compiler
**
** Copyright 2016 Freescale Semiconductor, Inc.
** Copyright 2016-2017 NXP
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
**
** 1. Redistributions of source code must retain the above copyright notice, this list
** of conditions and the following disclaimer.
**
** 2. Redistributions in binary form must reproduce the above copyright notice, this
** list of conditions and the following disclaimer in the documentation and/or
** other materials provided with the distribution.
**
** 3. Neither the name of the copyright holder nor the names of its
** contributors may be used to endorse or promote products derived from this
** software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
** http: www.nxp.com
** mail: support@nxp.com
**
** ###################################################################
*/
/* Entry Point */
ENTRY(Reset_Handler)
HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400;
/* Specify the memory areas */
MEMORY
{
m_interrupts (RX) : ORIGIN = 0x80000000, LENGTH = 0x80000400
m_text (RX) : ORIGIN = 0x80000400, LENGTH = 0x8007FC00
m_data (RW) : ORIGIN = 0x80000000, LENGTH = 0x01600000
m_ncache (RW) : ORIGIN = 0x81E00000, LENGTH = 0x00200000
}
/* Define output sections */
SECTIONS
{
/* The startup code goes first into internal RAM */
.interrupts :
{
__VECTOR_TABLE = .;
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} > m_interrupts
__VECTOR_RAM = __VECTOR_TABLE;
__RAM_VECTOR_TABLE_SIZE_BYTES = 0x0;
/* The program code and other data goes into internal RAM */
.text :
{
. = ALIGN(4);
*(.text) /* .text sections (code) */
*(.text*) /* .text* sections (code) */
*(.rodata) /* .rodata sections (constants, strings, etc.) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
*(.glue_7) /* glue arm to thumb code */
*(.glue_7t) /* glue thumb to arm code */
*(.eh_frame)
KEEP (*(.init))
KEEP (*(.fini))
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
/* section information for initial. */
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
. = ALIGN(4);
} > m_text
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > m_text
.ARM :
{
__exidx_start = .;
*(.ARM.exidx*)
__exidx_end = .;
} > m_text
.ctors :
{
__CTOR_LIST__ = .;
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin.o(.ctors))
KEEP (*crtbegin?.o(.ctors))
/* We don't want to include the .ctor section from
from the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__CTOR_END__ = .;
} > m_text
.dtors :
{
__DTOR_LIST__ = .;
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
__DTOR_END__ = .;
} > m_text
.preinit_array :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array*))
PROVIDE_HIDDEN (__preinit_array_end = .);
} > m_text
.init_array :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array*))
PROVIDE_HIDDEN (__init_array_end = .);
} > m_text
.fini_array :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array*))
PROVIDE_HIDDEN (__fini_array_end = .);
} > m_text
__etext = .; /* define a global symbol at end of code */
__DATA_ROM = .; /* Symbol is used by startup for data initialization */
.data : AT(__DATA_ROM)
{
. = ALIGN(4);
__DATA_RAM = .;
__data_start__ = .; /* create a global symbol at data start */
*(m_usb_dma_init_data)
*(.data) /* .data sections */
*(.data*) /* .data* sections */
KEEP(*(.jcr*))
. = ALIGN(4);
__data_end__ = .; /* define a global symbol at data end */
} > m_data
__NDATA_ROM = __DATA_ROM + (__data_end__ - __data_start__);
.ncache.init : AT(__NDATA_ROM)
{
__noncachedata_start__ = .; /* create a global symbol at ncache data start */
*(NonCacheable.init)
. = ALIGN(4);
__noncachedata_init_end__ = .; /* create a global symbol at initialized ncache data end */
} > m_ncache
. = __noncachedata_init_end__;
.ncache :
{
*(NonCacheable)
. = ALIGN(4);
__noncachedata_end__ = .; /* define a global symbol at ncache data end */
} > m_ncache
__DATA_END = __NDATA_ROM + (__noncachedata_init_end__ - __noncachedata_start__);
text_end = ORIGIN(m_text) + LENGTH(m_text);
ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
/* Uninitialized data section */
.bss :
{
/* This is used by the startup in order to initialize the .bss section */
. = ALIGN(4);
__START_BSS = .;
__bss_start__ = .;
*(m_usb_dma_noninit_data)
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
__bss_end__ = .;
__END_BSS = .;
} > m_data
.heap :
{
. = ALIGN(8);
__end__ = .;
PROVIDE(end = .);
__HeapBase = .;
. += HEAP_SIZE;
__HeapLimit = .;
__heap_limit = .; /* Add for _sbrk */
} > m_data
.stack :
{
. = ALIGN(8);
. += STACK_SIZE;
} > m_data
/* Initializes stack on the end of block */
__StackTop = ORIGIN(m_data) + LENGTH(m_data);
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop);
.ARM.attributes 0 : { *(.ARM.attributes) }
ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
}

View File

@ -11,7 +11,7 @@
<name>C-SPY</name> <name>C-SPY</name>
<archiveVersion>2</archiveVersion> <archiveVersion>2</archiveVersion>
<data> <data>
<version>28</version> <version>29</version>
<wantNonLocal>1</wantNonLocal> <wantNonLocal>1</wantNonLocal>
<debug>1</debug> <debug>1</debug>
<option> <option>
@ -48,7 +48,7 @@
</option> </option>
<option> <option>
<name>RunToEnable</name> <name>RunToEnable</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>RunToName</name> <name>RunToName</name>
@ -76,7 +76,7 @@
</option> </option>
<option> <option>
<name>OCDownloadVerifyAll</name> <name>OCDownloadVerifyAll</name>
<state>0</state> <state>1</state>
</option> </option>
<option> <option>
<name>OCProductVersion</name> <name>OCProductVersion</name>
@ -84,15 +84,15 @@
</option> </option>
<option> <option>
<name>OCDynDriverList</name> <name>OCDynDriverList</name>
<state>ARMSIM_ID</state> <state>JLINK_ID</state>
</option> </option>
<option> <option>
<name>OCLastSavedByProductVersion</name> <name>OCLastSavedByProductVersion</name>
<state>8.11.2.13604</state> <state>8.20.1.14181</state>
</option> </option>
<option> <option>
<name>UseFlashLoader</name> <name>UseFlashLoader</name>
<state>0</state> <state>1</state>
</option> </option>
<option> <option>
<name>CLowLevel</name> <name>CLowLevel</name>
@ -112,7 +112,7 @@
</option> </option>
<option> <option>
<name>FlashLoadersV3</name> <name>FlashLoadersV3</name>
<state>$TOOLKIT_DIR$\config\flashloader\</state> <state>$TOOLKIT_DIR$\config\flashloader\NXP\FlashIMXRT1050_EVK_FlexSPI.board</state>
</option> </option>
<option> <option>
<name>OCImagesSuppressCheck1</name> <name>OCImagesSuppressCheck1</name>
@ -210,6 +210,10 @@
<name>OCAttachSlave</name> <name>OCAttachSlave</name>
<state>0</state> <state>0</state>
</option> </option>
<option>
<name>MassEraseBeforeFlashing</name>
<state>0</state>
</option>
</data> </data>
</settings> </settings>
<settings> <settings>
@ -288,7 +292,7 @@
<option> <option>
<name>CMSISDAPResetList</name> <name>CMSISDAPResetList</name>
<version>1</version> <version>1</version>
<state>10</state> <state>4</state>
</option> </option>
<option> <option>
<name>CMSISDAPHWResetDuration</name> <name>CMSISDAPHWResetDuration</name>
@ -308,7 +312,7 @@
</option> </option>
<option> <option>
<name>CMSISDAPInterfaceRadio</name> <name>CMSISDAPInterfaceRadio</name>
<state>0</state> <state>1</state>
</option> </option>
<option> <option>
<name>CMSISDAPInterfaceCmdLine</name> <name>CMSISDAPInterfaceCmdLine</name>
@ -373,31 +377,31 @@
</option> </option>
<option> <option>
<name>CatchMMERR</name> <name>CatchMMERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchNOCPERR</name> <name>CatchNOCPERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchCHKERR</name> <name>CatchCHKERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchSTATERR</name> <name>CatchSTATERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchBUSERR</name> <name>CatchBUSERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchINTERR</name> <name>CatchINTERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchHARDERR</name> <name>CatchHARDERR</name>
<state>1</state> <state>0</state>
</option> </option>
<option> <option>
<name>CatchDummy</name> <name>CatchDummy</name>
@ -425,7 +429,7 @@
</option> </option>
<option> <option>
<name>CMSISDAPSelectedCPUBehaviour</name> <name>CMSISDAPSelectedCPUBehaviour</name>
<state>0</state> <state></state>
</option> </option>
<option> <option>
<name>ICpuName</name> <name>ICpuName</name>
@ -721,7 +725,7 @@
<debug>1</debug> <debug>1</debug>
<option> <option>
<name>CCCatchSFERR</name> <name>CCCatchSFERR</name>
<state>0</state> <state>1</state>
</option> </option>
<option> <option>
<name>JLinkSpeed</name> <name>JLinkSpeed</name>
@ -822,12 +826,12 @@
</option> </option>
<option> <option>
<name>CCJLinkInterfaceRadio</name> <name>CCJLinkInterfaceRadio</name>
<state>0</state> <state>1</state>
</option> </option>
<option> <option>
<name>CCJLinkResetList</name> <name>CCJLinkResetList</name>
<version>6</version> <version>6</version>
<state>5</state> <state>8</state>
</option> </option>
<option> <option>
<name>CCJLinkInterfaceCmdLine</name> <name>CCJLinkInterfaceCmdLine</name>
@ -1402,6 +1406,10 @@
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file> <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag> <loadFlag>0</loadFlag>
</plugin> </plugin>
<plugin>
<file>$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin> <plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file> <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag> <loadFlag>0</loadFlag>
@ -1418,7 +1426,7 @@
<name>C-SPY</name> <name>C-SPY</name>
<archiveVersion>2</archiveVersion> <archiveVersion>2</archiveVersion>
<data> <data>
<version>28</version> <version>29</version>
<wantNonLocal>1</wantNonLocal> <wantNonLocal>1</wantNonLocal>
<debug>0</debug> <debug>0</debug>
<option> <option>
@ -1617,6 +1625,10 @@
<name>OCAttachSlave</name> <name>OCAttachSlave</name>
<state>0</state> <state>0</state>
</option> </option>
<option>
<name>MassEraseBeforeFlashing</name>
<state>0</state>
</option>
</data> </data>
</settings> </settings>
<settings> <settings>
@ -2809,6 +2821,10 @@
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file> <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
<loadFlag>0</loadFlag> <loadFlag>0</loadFlag>
</plugin> </plugin>
<plugin>
<file>$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin</file>
<loadFlag>0</loadFlag>
</plugin>
<plugin> <plugin>
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file> <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
<loadFlag>0</loadFlag> <loadFlag>0</loadFlag>

View File

@ -171,7 +171,6 @@
<state>FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1</state> <state>FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1</state>
<state>RT_USING_DLIBC</state> <state>RT_USING_DLIBC</state>
<state>_DLIB_FILE_DESCRIPTOR</state> <state>_DLIB_FILE_DESCRIPTOR</state>
<state>_DLIB_THREAD_SUPPORT</state>
</option> </option>
<option> <option>
<name>CCPreprocFile</name> <name>CCPreprocFile</name>
@ -301,31 +300,27 @@
<option> <option>
<name>CCIncludePath2</name> <name>CCIncludePath2</name>
<state /> <state />
<state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src</state>
<state>$PROJ_DIR$\Libraries</state>
<state>$PROJ_DIR$\..\..\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include\netif</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net</state>
<state>$PROJ_DIR$\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\Libraries\drivers</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src</state>
<state>$PROJ_DIR$\drivers</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include\ipv4</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\cortex-m7</state>
<state>$PROJ_DIR$\..\..\components\dfs\include</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net\socket</state>
<state>$PROJ_DIR$\Libraries\CMSIS\Include</state> <state>$PROJ_DIR$\Libraries\CMSIS\Include</state>
<state>$PROJ_DIR$\..\..\include</state>
<state>$PROJ_DIR$\drivers</state>
<state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\netif</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\cortex-m7</state>
<state>$PROJ_DIR$\Libraries\utilities</state> <state>$PROJ_DIR$\Libraries\utilities</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\Libraries</state>
<state>$PROJ_DIR$\applications</state> <state>$PROJ_DIR$\applications</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net\select</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include</state>
<state>$PROJ_DIR$\..\..\components\finsh</state> <state>$PROJ_DIR$\..\..\components\dfs\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\ipv4</state>
<state>$PROJ_DIR$\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state> <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
<state>$PROJ_DIR$\..\..\components\libc\pthreads</state> <state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\include</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\include</state>
<state>$PROJ_DIR$\..\..\components\finsh</state>
<state>$PROJ_DIR$\Libraries\drivers</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
</option> </option>
<option> <option>
<name>CCStdIncCheck</name> <name>CCStdIncCheck</name>
@ -722,7 +717,7 @@
</option> </option>
<option> <option>
<name>IlinkIcfFile</name> <name>IlinkIcfFile</name>
<state>$PROJ_DIR$\imxrt1052_sdram.icf</state> <state>$PROJ_DIR$\Libraries\iar\MIMXRT1052xxxxx_flexspi_nor.icf</state>
</option> </option>
<option> <option>
<name>IlinkIcfFileSlave</name> <name>IlinkIcfFileSlave</name>
@ -1245,31 +1240,27 @@
<option> <option>
<name>CCIncludePath2</name> <name>CCIncludePath2</name>
<state /> <state />
<state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src</state>
<state>$PROJ_DIR$\Libraries</state>
<state>$PROJ_DIR$\..\..\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include\netif</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net</state>
<state>$PROJ_DIR$\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\Libraries\drivers</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src</state>
<state>$PROJ_DIR$\drivers</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\include\ipv4</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\cortex-m7</state>
<state>$PROJ_DIR$\..\..\components\dfs\include</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net\socket</state>
<state>$PROJ_DIR$\Libraries\CMSIS\Include</state> <state>$PROJ_DIR$\Libraries\CMSIS\Include</state>
<state>$PROJ_DIR$\..\..\include</state>
<state>$PROJ_DIR$\drivers</state>
<state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\netif</state>
<state>$PROJ_DIR$\..\..\libcpu\arm\cortex-m7</state>
<state>$PROJ_DIR$\Libraries\utilities</state> <state>$PROJ_DIR$\Libraries\utilities</state>
<state>$PROJ_DIR$\.</state>
<state>$PROJ_DIR$\Libraries</state>
<state>$PROJ_DIR$\applications</state> <state>$PROJ_DIR$\applications</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\net\select</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include</state>
<state>$PROJ_DIR$\..\..\components\finsh</state> <state>$PROJ_DIR$\..\..\components\dfs\include</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\ipv4</state>
<state>$PROJ_DIR$\..\..\components\drivers\include</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state> <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
<state>$PROJ_DIR$\..\..\components\libc\pthreads</state> <state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
<state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\include</state> <state>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\include</state>
<state>$PROJ_DIR$\..\..\components\finsh</state>
<state>$PROJ_DIR$\Libraries\drivers</state>
<state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
</option> </option>
<option> <option>
<name>CCStdIncCheck</name> <name>CCStdIncCheck</name>
@ -1892,6 +1883,9 @@
<file> <file>
<name>$PROJ_DIR$\applications\main.c</name> <name>$PROJ_DIR$\applications\main.c</name>
</file> </file>
<file>
<name>$PROJ_DIR$\applications\mem_dump.c</name>
</file>
<file> <file>
<name>$PROJ_DIR$\applications\mem_test.c</name> <name>$PROJ_DIR$\applications\mem_test.c</name>
</file> </file>
@ -1907,6 +1901,12 @@
<file> <file>
<name>$PROJ_DIR$\drivers\usart.c</name> <name>$PROJ_DIR$\drivers\usart.c</name>
</file> </file>
<file>
<name>$PROJ_DIR$\drivers\hyper_flash_boot.c</name>
</file>
<file>
<name>$PROJ_DIR$\drivers\drv_sdram.c</name>
</file>
<file> <file>
<name>$PROJ_DIR$\drivers\drv_eth.c</name> <name>$PROJ_DIR$\drivers\drv_eth.c</name>
</file> </file>
@ -2127,7 +2127,7 @@
<name>$PROJ_DIR$\..\..\src\kservice.c</name> <name>$PROJ_DIR$\..\..\src\kservice.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\src\mem.c</name> <name>$PROJ_DIR$\..\..\src\memheap.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\src\object.c</name> <name>$PROJ_DIR$\..\..\src\object.c</name>
@ -2177,12 +2177,6 @@
<file> <file>
<name>$PROJ_DIR$\..\..\components\dfs\src\dfs_posix.c</name> <name>$PROJ_DIR$\..\..\components\dfs\src\dfs_posix.c</name>
</file> </file>
<file>
<name>$PROJ_DIR$\..\..\components\dfs\src\poll.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\dfs\src\select.c</name>
</file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs\devfs.c</name> <name>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs\devfs.c</name>
</file> </file>
@ -2192,15 +2186,6 @@
<file> <file>
<name>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\ff.c</name> <name>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\ff.c</name>
</file> </file>
<file>
<name>$PROJ_DIR$\..\..\components\dfs\filesystems\net\dfs_net.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\dfs\filesystems\net\net_netdb.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\dfs\filesystems\net\net_sockets.c</name>
</file>
</group> </group>
<group> <group>
<name>DeviceDrivers</name> <name>DeviceDrivers</name>
@ -2329,153 +2314,111 @@
</file> </file>
</group> </group>
<group> <group>
<name>pthreads</name> <name>LwIP</name>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\clock_time.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_lib.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\mqueue.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\api_msg.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\err.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_attr.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netbuf.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_barrier.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netdb.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_cond.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\netifapi.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_mutex.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\sockets.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_rwlock.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\api\tcpip.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_spin.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\sys_arch.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\pthread_tls.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\def.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\sched.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dhcp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\libc\pthreads\semaphore.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\dns.c</name>
</file>
</group>
<group>
<name>lwIP</name>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_lib.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\init.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_msg.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\memp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\err.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\netif.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netbuf.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\pbuf.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netdb.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\raw.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netifapi.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\stats.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\sockets.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\sys.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\tcpip.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\def.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_in.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\dns.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\tcp_out.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\timers.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\init.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\udp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ip.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\autoip.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\memp.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\icmp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\netif.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\igmp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\pbuf.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\raw.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\inet_chksum.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\stats.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\sys.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_addr.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\core\ipv4\ip_frag.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_in.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\etharp.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_out.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\ethernetif.c</name>
</file> </file>
<file> <file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\timeouts.c</name> <name>$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\netif\slipif.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\udp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernet.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.c</name>
</file> </file>
</group> </group>
</project> </project>

File diff suppressed because it is too large Load Diff

View File

@ -10,13 +10,14 @@
<TargetName>RT-Thread IMXRT1052</TargetName> <TargetName>RT-Thread IMXRT1052</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060528::V5.06 update 5 (build 528)::ARMCC</pCCUsed> <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
<Device>MIMXRT1052:M7</Device> <Device>MIMXRT1052:M7</Device>
<Vendor>NXP</Vendor> <Vendor>NXP</Vendor>
<PackID>NXP.iMXRT_DFP.1.0.1</PackID> <PackID>NXP.iMXRT_DFP.1.0.2</PackID>
<PackURL>http://mcuxpresso.nxp.com/cmsis_pack/repo/</PackURL>
<Cpu>IRAM(0x20000000,0x00060000) IRAM2(0x00000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x00060000) IRAM2(0x00000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
@ -48,12 +49,12 @@
<InvalidFlash>1</InvalidFlash> <InvalidFlash>1</InvalidFlash>
</TargetStatus> </TargetStatus>
<OutputDirectory>.\build\</OutputDirectory> <OutputDirectory>.\build\</OutputDirectory>
<OutputName>rtthread-lpc</OutputName> <OutputName>rtthread-imxrt</OutputName>
<CreateExecutable>1</CreateExecutable> <CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib> <CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile> <CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation> <DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation> <BrowseInformation>0</BrowseInformation>
<ListingPath>.\build\</ListingPath> <ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection> <HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K> <Merge32K>0</Merge32K>
@ -79,9 +80,9 @@
<nStopB2X>0</nStopB2X> <nStopB2X>0</nStopB2X>
</BeforeMake> </BeforeMake>
<AfterMake> <AfterMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name> <UserProg1Name>fromelf --bin !L --output rtthread-mdk.bin</UserProg1Name>
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
@ -332,10 +333,10 @@
<v6WtE>0</v6WtE> <v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti> <v6Rtti>0</v6Rtti>
<VariousControls> <VariousControls>
<MiscControls>--library_interface=armcc --library_type=standardlib --diag_suppress=66,1296,186</MiscControls> <MiscControls>--library_interface=armcc --library_type=standardlib --diag_suppress=66</MiscControls>
<Define>SKIP_SYSCLK_INIT, CPU_MIMXRT1052DVL6A, FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1, EVK_MCIMXRM, FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE, RT_USING_ARM_LIBC</Define> <Define>SKIP_SYSCLK_INIT, CPU_MIMXRT1052DVL6A, FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1, EVK_MCIMXRM, FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE, RT_USING_ARM_LIBC</Define>
<Undefine></Undefine> <Undefine></Undefine>
<IncludePath>applications;.;drivers;Libraries;Libraries\drivers;Libraries\utilities;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m7;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\select;..\..\components\dfs\filesystems\net\socket;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif</IncludePath> <IncludePath>applications;.;drivers;Libraries;Libraries\drivers;Libraries\utilities;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m7;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\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>
</VariousControls> </VariousControls>
</Cads> </Cads>
<Aads> <Aads>
@ -366,10 +367,10 @@
<TextAddressRange>0x00000000</TextAddressRange> <TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x10000000</DataAddressRange> <DataAddressRange>0x10000000</DataAddressRange>
<pXoBase></pXoBase> <pXoBase></pXoBase>
<ScatterFile>.\imxrt1052_sdram.sct</ScatterFile> <ScatterFile>.\Libraries\arm\MIMXRT1052xxxxx_flexspi_nor.scf</ScatterFile>
<IncludeLibs></IncludeLibs> <IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath> <IncludeLibsPath></IncludeLibsPath>
<Misc> --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab) </Misc> <Misc>--keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab)</Misc>
<LinkerInputFile></LinkerInputFile> <LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings> <DisabledWarnings></DisabledWarnings>
</LDads> </LDads>
@ -389,6 +390,11 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>applications\main.c</FilePath> <FilePath>applications\main.c</FilePath>
</File> </File>
<File>
<FileName>mem_dump.c</FileName>
<FileType>1</FileType>
<FilePath>applications\mem_dump.c</FilePath>
</File>
<File> <File>
<FileName>mem_test.c</FileName> <FileName>mem_test.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -414,6 +420,16 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>drivers\usart.c</FilePath> <FilePath>drivers\usart.c</FilePath>
</File> </File>
<File>
<FileName>hyper_flash_boot.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\hyper_flash_boot.c</FilePath>
</File>
<File>
<FileName>drv_sdram.c</FileName>
<FileType>1</FileType>
<FilePath>drivers\drv_sdram.c</FilePath>
</File>
<File> <File>
<FileName>drv_eth.c</FileName> <FileName>drv_eth.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -780,9 +796,9 @@
<FilePath>..\..\src\kservice.c</FilePath> <FilePath>..\..\src\kservice.c</FilePath>
</File> </File>
<File> <File>
<FileName>mem.c</FileName> <FileName>memheap.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\src\mem.c</FilePath> <FilePath>..\..\src\memheap.c</FilePath>
</File> </File>
<File> <File>
<FileName>object.c</FileName> <FileName>object.c</FileName>
@ -864,16 +880,6 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\dfs\src\dfs_posix.c</FilePath> <FilePath>..\..\components\dfs\src\dfs_posix.c</FilePath>
</File> </File>
<File>
<FileName>poll.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\dfs\src\poll.c</FilePath>
</File>
<File>
<FileName>select.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\dfs\src\select.c</FilePath>
</File>
<File> <File>
<FileName>devfs.c</FileName> <FileName>devfs.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -889,21 +895,6 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\dfs\filesystems\elmfat\ff.c</FilePath> <FilePath>..\..\components\dfs\filesystems\elmfat\ff.c</FilePath>
</File> </File>
<File>
<FileName>dfs_net.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\dfs\filesystems\net\dfs_net.c</FilePath>
</File>
<File>
<FileName>net_netdb.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\dfs\filesystems\net\net_netdb.c</FilePath>
</File>
<File>
<FileName>net_sockets.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\dfs\filesystems\net\net_sockets.c</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
@ -1084,255 +1075,190 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\libc\compilers\armlibc\stubs.c</FilePath> <FilePath>..\..\components\libc\compilers\armlibc\stubs.c</FilePath>
</File> </File>
</Files>
</Group>
<Group>
<GroupName>pthreads</GroupName>
<Files>
<File> <File>
<FileName>clock_time.c</FileName> <FileName>time.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\clock_time.c</FilePath> <FilePath>..\..\components\libc\compilers\armlibc\time.c</FilePath>
</File>
<File>
<FileName>mqueue.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\mqueue.c</FilePath>
</File>
<File>
<FileName>pthread.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread.c</FilePath>
</File>
<File>
<FileName>pthread_attr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_attr.c</FilePath>
</File>
<File>
<FileName>pthread_barrier.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_barrier.c</FilePath>
</File>
<File>
<FileName>pthread_cond.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_cond.c</FilePath>
</File>
<File>
<FileName>pthread_mutex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_mutex.c</FilePath>
</File>
<File>
<FileName>pthread_rwlock.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_rwlock.c</FilePath>
</File>
<File>
<FileName>pthread_spin.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_spin.c</FilePath>
</File>
<File>
<FileName>pthread_tls.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\pthread_tls.c</FilePath>
</File>
<File>
<FileName>sched.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\sched.c</FilePath>
</File>
<File>
<FileName>semaphore.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\libc\pthreads\semaphore.c</FilePath>
</File> </File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
<GroupName>lwIP</GroupName> <GroupName>LwIP</GroupName>
<Files> <Files>
<File>
<FileName>sys_arch.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c</FilePath>
</File>
<File> <File>
<FileName>api_lib.c</FileName> <FileName>api_lib.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\api_lib.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\api_lib.c</FilePath>
</File> </File>
<File> <File>
<FileName>api_msg.c</FileName> <FileName>api_msg.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\api_msg.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\api_msg.c</FilePath>
</File> </File>
<File> <File>
<FileName>err.c</FileName> <FileName>err.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\err.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\err.c</FilePath>
</File> </File>
<File> <File>
<FileName>netbuf.c</FileName> <FileName>netbuf.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\netbuf.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\netbuf.c</FilePath>
</File> </File>
<File> <File>
<FileName>netdb.c</FileName> <FileName>netdb.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\netdb.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\netdb.c</FilePath>
</File> </File>
<File> <File>
<FileName>netifapi.c</FileName> <FileName>netifapi.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\netifapi.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\netifapi.c</FilePath>
</File> </File>
<File> <File>
<FileName>sockets.c</FileName> <FileName>sockets.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\api\sockets.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\api\sockets.c</FilePath>
</File> </File>
<File> <File>
<FileName>tcpip.c</FileName> <FileName>tcpip.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\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>
</File> </File>
<File> <File>
<FileName>def.c</FileName> <FileName>def.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\def.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\def.c</FilePath>
</File>
<File>
<FileName>dns.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\dns.c</FilePath>
</File>
<File>
<FileName>inet_chksum.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c</FilePath>
</File>
<File>
<FileName>init.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\init.c</FilePath>
</File>
<File>
<FileName>ip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ip.c</FilePath>
</File>
<File>
<FileName>memp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\memp.c</FilePath>
</File>
<File>
<FileName>netif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\netif.c</FilePath>
</File>
<File>
<FileName>pbuf.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\pbuf.c</FilePath>
</File>
<File>
<FileName>raw.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\raw.c</FilePath>
</File>
<File>
<FileName>stats.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\stats.c</FilePath>
</File>
<File>
<FileName>sys.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\sys.c</FilePath>
</File>
<File>
<FileName>tcp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\tcp.c</FilePath>
</File>
<File>
<FileName>tcp_in.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\tcp_in.c</FilePath>
</File>
<File>
<FileName>tcp_out.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\tcp_out.c</FilePath>
</File>
<File>
<FileName>timeouts.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\timeouts.c</FilePath>
</File>
<File>
<FileName>udp.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\udp.c</FilePath>
</File>
<File>
<FileName>ethernet.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\netif\ethernet.c</FilePath>
</File>
<File>
<FileName>ethernetif.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c</FilePath>
</File>
<File>
<FileName>lowpan6.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c</FilePath>
</File>
<File>
<FileName>autoip.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c</FilePath>
</File> </File>
<File> <File>
<FileName>dhcp.c</FileName> <FileName>dhcp.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\dhcp.c</FilePath>
</File> </File>
<File> <File>
<FileName>etharp.c</FileName> <FileName>dns.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.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>
</File>
<File>
<FileName>memp.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>pbuf.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>stats.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>tcp.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>tcp_out.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>udp.c</FileName>
<FileType>1</FileType>
<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>
</File> </File>
<File> <File>
<FileName>icmp.c</FileName> <FileName>icmp.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\icmp.c</FilePath>
</File> </File>
<File> <File>
<FileName>igmp.c</FileName> <FileName>igmp.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\igmp.c</FilePath>
</File> </File>
<File> <File>
<FileName>ip4.c</FileName> <FileName>inet.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\inet.c</FilePath>
</File> </File>
<File> <File>
<FileName>ip4_addr.c</FileName> <FileName>inet_chksum.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c</FilePath> <FilePath>..\..\components\net\lwip-1.4.1\src\core\ipv4\inet_chksum.c</FilePath>
</File> </File>
<File> <File>
<FileName>ip4_frag.c</FileName> <FileName>ip.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.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>
</File>
<File>
<FileName>ip_frag.c</FileName>
<FileType>1</FileType>
<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>
</File>
<File>
<FileName>ethernetif.c</FileName>
<FileType>1</FileType>
<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>
</File> </File>
</Files> </Files>
</Group> </Group>

View File

@ -8,12 +8,15 @@
#define RT_NAME_MAX 8 #define RT_NAME_MAX 8
#define RT_ALIGN_SIZE 4 #define RT_ALIGN_SIZE 4
/* RT_THREAD_PRIORITY_8 is not set */
#define RT_THREAD_PRIORITY_32
/* RT_THREAD_PRIORITY_256 is not set */
#define RT_THREAD_PRIORITY_MAX 32 #define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 100 #define RT_TICK_PER_SECOND 100
#define RT_DEBUG #define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK #define RT_USING_OVERFLOW_CHECK
#define RT_DEBUG_INIT 1 #define RT_DEBUG_INIT 0
/* RT_DEBUG_THREAD is not set */ #define RT_DEBUG_THREAD 0
#define RT_USING_HOOK #define RT_USING_HOOK
#define IDLE_THREAD_STACK_SIZE 256 #define IDLE_THREAD_STACK_SIZE 256
/* RT_USING_TIMER_SOFT is not set */ /* RT_USING_TIMER_SOFT is not set */
@ -30,14 +33,17 @@
/* Memory Management */ /* Memory Management */
/* RT_USING_MEMPOOL is not set */ /* RT_USING_MEMPOOL is not set */
/* RT_USING_MEMHEAP is not set */ #define RT_USING_MEMHEAP
#define RT_USING_HEAP /* RT_USING_NOHEAP is not set */
#define RT_USING_SMALL_MEM /* RT_USING_SMALL_MEM is not set */
/* RT_USING_SLAB is not set */ /* RT_USING_SLAB is not set */
#define RT_USING_MEMHEAP_AS_HEAP
#define RT_USING_HEAP
/* Kernel Device Object */ /* Kernel Device Object */
#define RT_USING_DEVICE #define RT_USING_DEVICE
/* RT_USING_INTERRUPT_INFO is not set */
#define RT_USING_CONSOLE #define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 128 #define RT_CONSOLEBUF_SIZE 128
#define RT_CONSOLE_DEVICE_NAME "uart1" #define RT_CONSOLE_DEVICE_NAME "uart1"
@ -63,16 +69,20 @@
#define FINSH_CMD_SIZE 80 #define FINSH_CMD_SIZE 80
/* FINSH_USING_AUTH is not set */ /* FINSH_USING_AUTH is not set */
#define FINSH_USING_MSH #define FINSH_USING_MSH
//#define FINSH_USING_MSH_DEFAULT #define FINSH_USING_MSH_DEFAULT
//#define FINSH_USING_MSH_ONLY /* FINSH_USING_MSH_ONLY is not set */
/* Device virtual file system */ /* Device virtual file system */
#define RT_USING_DFS #define RT_USING_DFS
#define DFS_USING_WORKDIR #define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 2 #define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
#define DFS_FD_MAX 4 #define DFS_FD_MAX 4
#define RT_USING_DFS_ELMFAT #define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
#define RT_DFS_ELM_CODE_PAGE 437 #define RT_DFS_ELM_CODE_PAGE 437
#define RT_DFS_ELM_WORD_ACCESS #define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_0 #define RT_DFS_ELM_USE_LFN_0
@ -86,7 +96,10 @@
/* RT_DFS_ELM_USE_ERASE is not set */ /* RT_DFS_ELM_USE_ERASE is not set */
#define RT_DFS_ELM_REENTRANT #define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS #define RT_USING_DFS_DEVFS
#define RT_USING_DFS_NET /* RT_USING_DFS_NET is not set */
/* RT_USING_DFS_ROMFS is not set */
/* RT_USING_DFS_RAMFS is not set */
/* RT_USING_DFS_UFFS is not set */
/* RT_USING_DFS_NFS is not set */ /* RT_USING_DFS_NFS is not set */
/* Device Drivers */ /* Device Drivers */
@ -101,27 +114,27 @@
/* RT_USING_MTD_NAND is not set */ /* RT_USING_MTD_NAND is not set */
/* RT_USING_RTC is not set */ /* RT_USING_RTC is not set */
#define RT_USING_SDIO #define RT_USING_SDIO
//#define RT_MMCSD_DBG
/* RT_USING_SPI is not set */ /* RT_USING_SPI is not set */
/* RT_USING_WDT is not set */ /* RT_USING_WDT is not set */
/* RT_USING_WIFI is not set */
/* Using USB */
/* RT_USING_USB_HOST is not set */ /* RT_USING_USB_HOST is not set */
/* RT_USING_USB_DEVICE is not set */ /* RT_USING_USB_DEVICE is not set */
/* POSIX layer and C standard library */ /* POSIX layer and C standard library */
#define RT_USING_LIBC #define RT_USING_LIBC
#define RT_USING_PTHREADS /* RT_USING_PTHREADS is not set */
#define RT_USING_POSIX /* RT_USING_POSIX is not set */
/* RT_USING_POSIX_MMAP is not set */
/* RT_USING_POSIX_TERMIOS is not set */
/* Network stack */ /* Network stack */
/* light weight TCP/IP stack */ /* light weight TCP/IP stack */
#define RT_USING_LWIP #define RT_USING_LWIP
#define RT_USING_LWIP202 #define RT_USING_LWIP141
//#define RT_LWIP_DEBUG
/* RT_USING_LWIP202 is not set */ /* RT_USING_LWIP202 is not set */
/* RT_LWIP_IGMP is not set */ /* RT_LWIP_IGMP is not set */
#define RT_LWIP_ICMP #define RT_LWIP_ICMP
@ -131,6 +144,12 @@
#define IP_SOF_BROADCAST 1 #define IP_SOF_BROADCAST 1
#define IP_SOF_BROADCAST_RECV 1 #define IP_SOF_BROADCAST_RECV 1
/* LWIP_USING_DHCPD is not set */ /* LWIP_USING_DHCPD is not set */
/* Static IPv4 Address */
#define RT_LWIP_IPADDR "192.168.1.30"
#define RT_LWIP_GWADDR "192.168.1.1"
#define RT_LWIP_MSKADDR "255.255.255.0"
#define RT_LWIP_UDP #define RT_LWIP_UDP
#define RT_LWIP_TCP #define RT_LWIP_TCP
/* RT_LWIP_RAW is not set */ /* RT_LWIP_RAW is not set */
@ -156,18 +175,6 @@
#define LWIP_SO_RCVTIMEO 1 #define LWIP_SO_RCVTIMEO 1
#define LWIP_SO_SNDTIMEO 1 #define LWIP_SO_SNDTIMEO 1
#define LWIP_SO_RCVBUF 1 #define LWIP_SO_RCVBUF 1
#define RT_LWIP_IPADDR0 192
#define RT_LWIP_IPADDR1 168
#define RT_LWIP_IPADDR2 10
#define RT_LWIP_IPADDR3 30
#define RT_LWIP_GWADDR0 192
#define RT_LWIP_GWADDR1 168
#define RT_LWIP_GWADDR2 10
#define RT_LWIP_GWADDR3 1
#define RT_LWIP_MSKADDR0 255
#define RT_LWIP_MSKADDR1 255
#define RT_LWIP_MSKADDR2 255
#define RT_LWIP_MSKADDR3 0
/* Modbus master and slave stack */ /* Modbus master and slave stack */
@ -178,40 +185,59 @@
/* RT_USING_GUIENGINE is not set */ /* RT_USING_GUIENGINE is not set */
/* VBUS(Virtual Software BUS) */
/* RT_USING_VBUS is not set */
/* Utilities */
/* RT_USING_LOGTRACE is not set */
/* RT_USING_RYM is not set */
/* RT-Thread online packages */ /* RT-Thread online packages */
/* system packages */ /* system packages */
/* PKG_USING_PARTITION is not set */ /* PKG_USING_PARTITION is not set */
/* PKG_USING_SQLITE is not set */ /* PKG_USING_SQLITE is not set */
/* PKG_USING_RTI is not set */
/* IoT - internet of things */ /* IoT - internet of things */
/* PKG_USING_CJSON is not set */
/* PKG_USING_PAHOMQTT is not set */ /* PKG_USING_PAHOMQTT is not set */
/* PKG_USING_WEBCLIENT is not set */ /* PKG_USING_WEBCLIENT is not set */
/* PKG_USING_MONGOOSE is not set */ /* PKG_USING_MONGOOSE is not set */
/* PKG_USING_WEB_TERMINAL is not set */ /* PKG_USING_WEBTERMINAL is not set */
/* PKG_USING_CJSON is not set */
/* PKG_USING_EZXML is not set */
/* PKG_USING_NANOPB is not set */
/* security packages */ /* security packages */
/* PKG_USING_MBEDTLS is not set */
/* PKG_USING_libsodium is not set */
/* language packages */ /* language packages */
/* PKG_USING_JERRYSCRIPT is not set */ /* PKG_USING_JERRYSCRIPT is not set */
/* PKG_USING_MICROPYTHON is not set */
/* multimedia packages */ /* multimedia packages */
/* tools packages */ /* tools packages */
/* PKG_USING_CMBACKTRACE is not set */ /* PKG_USING_CMBACKTRACE is not set */
/* PKG_USING_ELOG is not set */ /* PKG_USING_EASYLOGGER is not set */
/* PKG_USING_SYSTEMVIEW is not set */
/* miscellaneous packages */ /* miscellaneous packages */
/* PKG_USING_FASTLZ is not set */
/* PKG_USING_MINILZO is not set */
/* example package: hello */
/* PKG_USING_HELLO is not set */ /* PKG_USING_HELLO is not set */
/* BSP_SPECIAL CONFIG */
#define RT_USING_UART #define RT_USING_UART
#define RT_USING_UART1 #define RT_USING_UART1

View File

@ -41,16 +41,18 @@ if PLATFORM == 'gcc':
STRIP = PREFIX + 'strip' STRIP = PREFIX + 'strip'
DEVICE = ' -std=c99 -mcpu=cortex-m7 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections' DEVICE = ' -std=c99 -mcpu=cortex-m7 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections'
CFLAGS = DEVICE + ' -g -Wall -DUSE_HAL_DRIVER -D__ASSEMBLY__ -D__FPU_USED -eentry' CFLAGS = DEVICE + ' -g -Wall -DUSE_HAL_DRIVER -D__ASSEMBLY__ -D__FPU_PRESENT -eentry'
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' -nostartfiles -Wl,--gc-sections,-Map=imxrt1052_sdram.map,-cref,-u,Reset_Handler -T imxrt1052_sdram.ld' LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' -nostartfiles -Wl,--gc-sections,-Map=imxrt1052_sdram.map,-cref,-u,Reset_Handler -T ./Libraries/gcc/MIMXRT1052xxxxx_flexspi_nor.ld'
CPATH = '' CPATH = ''
LPATH = '' LPATH = ''
if BUILD == 'debug': CFLAGS += ' -gdwarf-2'
CFLAGS += ' -O0 -gdwarf-2'
AFLAGS += ' -gdwarf-2' AFLAGS += ' -gdwarf-2'
if BUILD == 'debug':
CFLAGS += ' -O0'
else: else:
CFLAGS += ' -O2 -Os' CFLAGS += ' -O2 -Os'

View File

@ -690,7 +690,7 @@
</option> </option>
<option> <option>
<name>IlinkIcfFile</name> <name>IlinkIcfFile</name>
<state>$PROJ_DIR$\imxrt1052_sdram.icf</state> <state>$PROJ_DIR$\Libraries\iar\MIMXRT1052xxxxx_flexspi_nor.icf</state>
</option> </option>
<option> <option>
<name>IlinkIcfFileSlave</name> <name>IlinkIcfFileSlave</name>

View File

@ -16,7 +16,8 @@
<TargetCommonOption> <TargetCommonOption>
<Device>MIMXRT1052:M7</Device> <Device>MIMXRT1052:M7</Device>
<Vendor>NXP</Vendor> <Vendor>NXP</Vendor>
<PackID>NXP.iMXRT_DFP.1.0.1</PackID> <PackID>NXP.iMXRT_DFP.1.0.2</PackID>
<PackURL>http://mcuxpresso.nxp.com/cmsis_pack/repo/</PackURL>
<Cpu>IRAM(0x20000000,0x00060000) IRAM2(0x00000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x00060000) IRAM2(0x00000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
@ -48,12 +49,12 @@
<InvalidFlash>1</InvalidFlash> <InvalidFlash>1</InvalidFlash>
</TargetStatus> </TargetStatus>
<OutputDirectory>.\build\</OutputDirectory> <OutputDirectory>.\build\</OutputDirectory>
<OutputName>rtthread-lpc</OutputName> <OutputName>rtthread-imxrt</OutputName>
<CreateExecutable>1</CreateExecutable> <CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib> <CreateLib>0</CreateLib>
<CreateHexFile>0</CreateHexFile> <CreateHexFile>0</CreateHexFile>
<DebugInformation>1</DebugInformation> <DebugInformation>1</DebugInformation>
<BrowseInformation>1</BrowseInformation> <BrowseInformation>0</BrowseInformation>
<ListingPath>.\build\</ListingPath> <ListingPath>.\build\</ListingPath>
<HexFormatSelection>1</HexFormatSelection> <HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K> <Merge32K>0</Merge32K>
@ -79,9 +80,9 @@
<nStopB2X>0</nStopB2X> <nStopB2X>0</nStopB2X>
</BeforeMake> </BeforeMake>
<AfterMake> <AfterMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name> <UserProg1Name>fromelf --bin !L --output rtthread-mdk.bin</UserProg1Name>
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode> <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
@ -366,7 +367,7 @@
<TextAddressRange>0x00000000</TextAddressRange> <TextAddressRange>0x00000000</TextAddressRange>
<DataAddressRange>0x10000000</DataAddressRange> <DataAddressRange>0x10000000</DataAddressRange>
<pXoBase></pXoBase> <pXoBase></pXoBase>
<ScatterFile>.\imxrt1052_sdram.sct</ScatterFile> <ScatterFile>.\Libraries\arm\MIMXRT1052xxxxx_flexspi_nor.scf</ScatterFile>
<IncludeLibs></IncludeLibs> <IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath> <IncludeLibsPath></IncludeLibsPath>
<Misc></Misc> <Misc></Misc>