FreeRTOS-Plus-TCP 和 FreeRTOS-Plus-FAT 示例
在 Atmel SAM4E ARM Cortex-M4 微控制器上运行
[可构建的 TCP/IP 和 FAT FS 示例]
简介
没有任何硬件? 您现在仍然可以尝试运行 RTOS TCP 和 FAT 示例
(使用 Win32 演示
,此演示使用免费工具并在 Windows 环境中运行)。
Atmel SAM4E ARM CORTEX-M4 TCP/IP 和 FAT 演示包括以下标准示例:
FreeRTOS-Plus-FAT 用于安装 FAT 格式的 SD 卡。 之后,挂载的文件
系统为 HTTP 和 FTP 服务器示例提供存储。
该项目使用免费的 Atmel Studio 构建
GCC 的开发工具构建,针对
Atmel SAM4E Xplained Pro
评估套件。
说明
不需要特定的硬件设置。
定位项目
构建此页面上所描述演示的 Atmel Studio 项目
位于
/FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_and_FAT_ATSAM4E
FreeRTOS Labs 下载目录中。
软件设置 #1: 设置静态或动态 IP 地址
中的网络地址设置FreeRTOSConfig.h
FreeRTOSIPConfig.h
和
FreeRTOSConfig.h 头文件分别用作
FreeRTOS-Plus-TCP 和 FreeRTOS 配置文件。 两者都可以从
从 Atmel Studio IDE 中打开。
如果 Zynq 所连接的网络存在 DHCP
则
ipconfigUSE_DHCP 设置
FreeRTOSIPConfig.h 中的 ipconfigUSE_DHCP 设置为 1,并且不需要进一步配置与 IP 相关的网络地址
。 如果配置了主机名,
则不需要知道 DHCP 服务器分配给 SAM4E 的 IP 地址,
因为 SAM4E 可以直接通过其主机名寻址。
不过您也可以查看 IP 地址,
因为它是由 UDP 日志记录工具打印出来的。
如果没有 DHCP 服务器连接到网络,则
在 FreeRTOS IPConfig.h 中将 ipconfigUSE_DHCP 设置为 0,然后手动配置 IP 地址和
网络掩码
使用的常量为 FreeRTOSConfig.h 中的 configIP_ADDR0/3 和 configNET_MASK0/3 常量。
请注意,IP 地址常量位于 FreeRTOSConfig.h,而不是
FreeRTOSIPConfig.h 中,因为它们与
应用程序相关,而不是与 TCP/IP 堆栈直接相关。
必须确保手动配置的 IP 地址与
网络掩码兼容。 在大多数情况下,兼容的 IP 地址将使用
与主计算机相同的前三个八位字节。 例如,如果
主机 IP 地址为 172.25.218.100,则
任何 172.25.218.nnn 地址(除非 nnn 为 0、255 或
已存在于网络上的数字)都是兼容的。
此外,还需要设置网关
地址,该地址对于 SAM4E 连接的网络是正确的,
或如果不存在网关则至少与网络掩码兼容
。 此步骤是必需的,以防止内部健全性检查触发
configASSERT()
失败。 网关地址是使用
FreeRTOSConfig.h 中的 configGATEWAY_ADDR0/3 常量设置。
软件设置 #2: 设置 MAC 地址
MAC 地址使用
FreeRTOSConfig.h 中的 configMAC_ADDR0/5 常量设置。
如果只有一个运行 FreeRTOS-Plus-TCP 示例的目标连接到网络,
则无需修改 MAC 地址。
如果多个运行 FreeRTOS-Plus-TCP 示例的目标连接到
同一网络,则必须确保每个目标有
唯一的 MAC 地址。
使用
文本名称而不是 IP 地址来标识网络上的节点通常更方便。 当
IP 地址由 DHCP 分配时尤其如此,因此它是未知的。 例如,
ping 请求
可以发送到主机名,
如 "ping MyHostName"(其中 "MyHostName" 是分配给
网络节点的名称),而不是发送到 IP 地址,如 "ping 172.25.218.200"。
如果只有一个运行 FreeRTOS-Plus-TCP 示例的目标连接到
网络,则无需修改默认主机名,
该主机名设置为 "RTOSDemo"。 如果多个运行
FreeRTOS-Plus-TCP 示例的目标连接到同一网络,则
需要为每个目标分配不同的主机名。
主机名由 mainHOST_NAME 常量设置,该常量位于
main.c 源文件顶部的 mainHOST_NAME 常量设置。
根据网络拓扑,也可使用由
mainDEVICE_NICK_NAME 常量设置的第二个主机名,
该常量也定义在 main.c 顶部。
软件设置 #4: 设置回显服务器地址
如果使用 TCP 回显客户端示例,则将常量
configECHO_SERVER_ADDR0 到
configECHO_SERVER_ADDR3 常量
(位于 FreeRTOSConfig.h)设置为
对应回显服务器的 IP 地址。 然后,FreeRTOS-Plus-TCP 将发送回显请求至
配置的回显服务器,并从服务器接收回显回复。
提供 FreeRTOSConfig.h
在 FreeRTOSIPConfig.h 中,
FreeRTOS_debug_printf()
已禁用,
FreeRTOS_printf()
设置为通过 UDP
发送 TCP/IP 堆栈和应用程序日志记录消息。
接收发送的
UDP 日志记录消息的 IP 地址和端口号,以及一些其他
日志记录相关参数都使用 FreeRTOSConfig.h 中的常量设置,
如右图所示。
对日志消息进行缓冲,以便由低优先级后台
RTOS 任务传输。
日志输出可在许多不同的终端程序中查看,包括
Cinetix 的 UDPTerm(是一款便捷的独立实用程序)
。
软件设置 #6: 硬件特定设置
该项目交付经过预先配置,可在 SAM4E Xplained Pro
评估板上执行。 可能需要更新 IO 配置以
在不同硬件上使用演示,或者如果使用不同的 PHY,则需要更新网络驱动程序
。
运行示例
以下说明描述了如何
在 SAM4E Xplained Pro 评估板上构建、下载并执行应用:
-
按照上面详述的软件配置步骤操作。
-
如果可用,将一张空的 FAT 格式的 SD 卡插入
SAM4E Xplained Pro 的 SD 卡插槽。
-
检查 main.c 顶部的注释,并设置
在演示中和演示外构建单个示例的常量。
注: 如果未使用 SD 卡,则不包括
HTTP 或 FTP 服务器示例。
-
确保 SAM4E Xpalained Pro 硬件已使用目标的调试 USB 端口连接到主
计算机(运行 Atmel Studio 的计算机),
并使用以太网电缆连接到合适的网络。
-
首先按 F7 生成项目,然后按 F5
编程目标闪存,然后启动应用程序
执行
当应用程序执行时,LED0 每半秒切换一次。
基本连接性测试
建议在对以下链接的示例进行实验之前测试基本连接性
。 这可以通过 ping 目标来完成。
如果收到 ping 回复,则说明应用程序正在运行
且已正确连接到网络。
若要 ping 设备,请打开命令提示符并键入 "ping ",
其中 是分配给目标的名称,在默认情况下
为 "RTOSDemo"。
如果未收到 ping 回复,则关闭 DHCP,为目标分配一个
IP 地址,然后使用分配的 IP
地址代替主机名重试。
本页的设置说明描述了如何设置静态 IP 地址以及如何设置
主机名。
对目标执行 ping 操作并接收 ping 响应
包含的示例
该项目包含以下示例:
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.