Browse Source

[bsp] add enet and lwip for i.mx rt 1052

tanek liang 7 years ago
parent
commit
bb07f393b2
5 changed files with 300 additions and 27 deletions
  1. 4 0
      bsp/imxrt/drivers/SConscript
  2. 161 19
      bsp/imxrt/project.ewp
  3. 126 0
      bsp/imxrt/project.ewt
  4. 8 7
      bsp/imxrt/rtconfig.h
  5. 1 1
      bsp/imxrt/template.uvprojx

+ 4 - 0
bsp/imxrt/drivers/SConscript

@@ -13,6 +13,10 @@ usart.c
 CPPPATH = [cwd]
 CPPDEFINES = []
 
+if GetDepend('RT_USING_LWIP'):
+    src += ['drv_eth.c', 'fsl_phy.c']
+    CPPDEFINES += ['FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE']
+    
 if GetDepend('RT_USING_SDIO'):
     src += ['drv_sdio.c']
 

+ 161 - 19
bsp/imxrt/project.ewp

@@ -198,7 +198,7 @@
                 </option>
                 <option>
                     <name>DSPExtension</name>
-                    <state>1</state>
+                    <state>0</state>
                 </option>
             </data>
         </settings>
@@ -216,6 +216,7 @@
                 <option>
                     <name>CCDefines</name>
                     <state>_TIMESPEC_DEFINED</state>
+                    <state>FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE</state>
                     <state>CPU_MIMXRT1052DVL6A</state>
                     <state>SKIP_SYSCLK_INIT</state>
                     <state>EVK_MCIMXRM</state>
@@ -347,22 +348,29 @@
                 </option>
                 <option>
                     <name>CCIncludePath2</name>
-                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
+                    <state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</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\dfs\filesystems\devfs</state>
+                    <state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src</state>
                     <state>$PROJ_DIR$\drivers</state>
-                    <state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</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\net\lwip-2.0.2\src\include</state>
                     <state>$PROJ_DIR$\Libraries\utilities</state>
-                    <state>$PROJ_DIR$\.</state>
-                    <state>$PROJ_DIR$\Libraries</state>
                     <state>$PROJ_DIR$\applications</state>
-                    <state>$PROJ_DIR$\..\..\components\dfs\include</state>
-                    <state>$PROJ_DIR$\..\..\components\drivers\include</state>
-                    <state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
                     <state>$PROJ_DIR$\..\..\components\finsh</state>
-                    <state>$PROJ_DIR$\Libraries\drivers</state>
+                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
+                    <state>$PROJ_DIR$\Libraries\CMSIS\include</state>
                     <state>$PROJ_DIR$\..\..\components\libc\pthreads</state>
-                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
+                    <state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\include</state>
                 </option>
                 <option>
                     <name>CCStdIncCheck</name>
@@ -1253,6 +1261,7 @@
                     <name>CCDefines</name>
                     <state>NDEBUG</state>
                     <state>_TIMESPEC_DEFINED</state>
+                    <state>FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE</state>
                     <state>CPU_MIMXRT1052DVL6A</state>
                     <state>SKIP_SYSCLK_INIT</state>
                     <state>EVK_MCIMXRM</state>
@@ -1384,22 +1393,29 @@
                 </option>
                 <option>
                     <name>CCIncludePath2</name>
-                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
+                    <state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</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\dfs\filesystems\devfs</state>
+                    <state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src</state>
                     <state>$PROJ_DIR$\drivers</state>
-                    <state>$PROJ_DIR$\..\..\components\libc\compilers\dlib</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\net\lwip-2.0.2\src\include</state>
                     <state>$PROJ_DIR$\Libraries\utilities</state>
-                    <state>$PROJ_DIR$\.</state>
-                    <state>$PROJ_DIR$\Libraries</state>
                     <state>$PROJ_DIR$\applications</state>
-                    <state>$PROJ_DIR$\..\..\components\dfs\include</state>
-                    <state>$PROJ_DIR$\..\..\components\drivers\include</state>
-                    <state>$PROJ_DIR$\..\..\libcpu\arm\common</state>
                     <state>$PROJ_DIR$\..\..\components\finsh</state>
-                    <state>$PROJ_DIR$\Libraries\drivers</state>
+                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat</state>
+                    <state>$PROJ_DIR$\Libraries\CMSIS\include</state>
                     <state>$PROJ_DIR$\..\..\components\libc\pthreads</state>
-                    <state>$PROJ_DIR$\..\..\components\dfs\filesystems\devfs</state>
+                    <state>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\include</state>
                 </option>
                 <option>
                     <name>CCStdIncCheck</name>
@@ -2187,9 +2203,15 @@
         <file>
             <name>$PROJ_DIR$\drivers\board.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\drivers\drv_eth.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\drivers\drv_sdio.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\drivers\fsl_phy.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\drivers\usart.c</name>
         </file>
@@ -2211,12 +2233,21 @@
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\dfs_fs.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\dfs\filesystems\net\dfs_net.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\dfs_posix.c</name>
         </file>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\ff.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>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\poll.c</name>
         </file>
@@ -2503,6 +2534,117 @@
             <name>$PROJ_DIR$\Libraries\system_MIMXRT1052.c</name>
         </file>
     </group>
+    <group>
+        <name>lwIP</name>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_lib.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_msg.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\def.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\dns.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\err.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\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\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\inet_chksum.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\init.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ip.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>
+            <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\memp.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netbuf.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netdb.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\netif.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netifapi.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\pbuf.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\raw.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\sockets.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\stats.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\sys.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_in.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_out.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\tcpip.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\timeouts.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\udp.c</name>
+        </file>
+    </group>
     <group>
         <name>pthreads</name>
         <file>

+ 126 - 0
bsp/imxrt/project.ewt

@@ -2426,9 +2426,15 @@
         <file>
             <name>$PROJ_DIR$\drivers\board.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\drivers\drv_eth.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\drivers\drv_sdio.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\drivers\fsl_phy.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\drivers\usart.c</name>
         </file>
@@ -2450,12 +2456,21 @@
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\dfs_fs.c</name>
         </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\dfs\filesystems\net\dfs_net.c</name>
+        </file>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\dfs_posix.c</name>
         </file>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\ff.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>
         <file>
             <name>$PROJ_DIR$\..\..\components\dfs\src\poll.c</name>
         </file>
@@ -2742,6 +2757,117 @@
             <name>$PROJ_DIR$\Libraries\system_MIMXRT1052.c</name>
         </file>
     </group>
+    <group>
+        <name>lwIP</name>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_lib.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_msg.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\def.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\dns.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\err.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\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\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\inet_chksum.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\init.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ip.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>
+            <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\memp.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netbuf.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netdb.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\netif.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netifapi.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\pbuf.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\raw.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\sockets.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\stats.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\sys.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_in.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_out.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\tcpip.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\timeouts.c</name>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\udp.c</name>
+        </file>
+    </group>
     <group>
         <name>pthreads</name>
         <file>

+ 8 - 7
bsp/imxrt/rtconfig.h

@@ -12,7 +12,7 @@
 #define RT_TICK_PER_SECOND 100
 #define RT_DEBUG
 #define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 0
+#define RT_DEBUG_INIT 1
 /* RT_DEBUG_THREAD is not set */
 #define RT_USING_HOOK
 #define IDLE_THREAD_STACK_SIZE 256
@@ -63,7 +63,7 @@
 #define FINSH_CMD_SIZE 80
 /* FINSH_USING_AUTH is not set */
 #define FINSH_USING_MSH
-#define FINSH_USING_MSH_DEFAULT
+//#define FINSH_USING_MSH_DEFAULT
 //#define FINSH_USING_MSH_ONLY
 
 /* Device virtual file system */
@@ -86,7 +86,7 @@
 /* RT_DFS_ELM_USE_ERASE is not set */
 #define RT_DFS_ELM_REENTRANT
 #define RT_USING_DFS_DEVFS
-//#define RT_USING_DFS_NET
+#define RT_USING_DFS_NET
 /* RT_USING_DFS_NFS is not set */
 
 /* Device Drivers */
@@ -119,8 +119,9 @@
 
 /* light weight TCP/IP stack */
 
-//#define RT_USING_LWIP
-#define RT_USING_LWIP141
+#define RT_USING_LWIP
+#define RT_USING_LWIP202
+//#define RT_LWIP_DEBUG
 /* RT_USING_LWIP202 is not set */
 /* RT_LWIP_IGMP is not set */
 #define RT_LWIP_ICMP
@@ -157,11 +158,11 @@
 #define LWIP_SO_RCVBUF 1
 #define RT_LWIP_IPADDR0 192
 #define RT_LWIP_IPADDR1 168
-#define RT_LWIP_IPADDR2 1
+#define RT_LWIP_IPADDR2 10
 #define RT_LWIP_IPADDR3 30
 #define RT_LWIP_GWADDR0 192
 #define RT_LWIP_GWADDR1 168
-#define RT_LWIP_GWADDR2 1
+#define RT_LWIP_GWADDR2 10
 #define RT_LWIP_GWADDR3 1
 #define RT_LWIP_MSKADDR0 255
 #define RT_LWIP_MSKADDR1 255

+ 1 - 1
bsp/imxrt/template.uvprojx

@@ -365,7 +365,7 @@
             <TextAddressRange>0x00000000</TextAddressRange>
             <DataAddressRange>0x10000000</DataAddressRange>
             <pXoBase></pXoBase>
-            <ScatterFile>F:\git\rt-thread\bsp\imxrt\imxrt1052_sdram.sct</ScatterFile>
+            <ScatterFile>.\imxrt1052_sdram.sct</ScatterFile>
             <IncludeLibs></IncludeLibs>
             <IncludeLibsPath></IncludeLibsPath>
             <Misc></Misc>