ZHCAB52 April   2021 TM4C1292NCPDT , TM4C1292NCZAD , TM4C1294KCPDT , TM4C1294NCPDT , TM4C1294NCZAD , TM4C1299KCZAD , TM4C1299NCZAD , TM4C129DNCPDT , TM4C129DNCZAD , TM4C129EKCPDT , TM4C129ENCPDT , TM4C129ENCZAD , TM4C129LNCZAD , TM4C129XKCZAD , TM4C129XNCZAD

 

  1.   商标
  2. 1 引言
    1. 1.1 TI-RTOS 下载
    2. 1.2 许可
    3. 1.3 XDCtools
    4. 1.4 版本
    5. 1.5 配置 NDK 模块
    6. 1.6 基于套接字的 API
      1. 1.6.1 BSD 套接字 API
  3. 2 应用示例
  4. 3 应用设置
    1. 3.1 硬件设置
    2. 3.2 软件工具
  5. 4 下载并导入以太网示例
  6. 5 如何为 TI-RTOS NDK 创建以太网应用
  7. 6 Enet_tcpecho_server_tirtos 示例概述
    1. 6.1 构建和刷写程序
    2. 6.2 对 MAC 地址进行检查和编程
      1. 6.2.1 使用 LM Flash Programmer(闪存编程器)
      2. 6.2.2 使用 CCS
      3. 6.2.3 使用 UniFlash
    3. 6.3 运行 enet_tcpecho_server_tirtos 示例
  8. 7 Enet_udpecho_server_tirtos 示例概述
    1. 7.1 运行 enet_udpecho_server_tirtos 示例
  9. 8 Enet_httpServer_tirtos 示例概述
    1. 8.1 为 HTTP 应用配置 NDK
    2. 8.2 嵌入式文件系统 (EFS) 操作
    3. 8.3 添加 HTTP 服务器内容
    4. 8.4 向 EFS 声明 HTML 文件
    5. 8.5 编写 CGI 函数
    6. 8.6 运行 enet_httpServer_tirtos 示例
  10. 9 Enet_dns_tirtos 示例概述
    1. 9.1 如何为 DNS 配置 NDK
    2. 9.2 如何在 Wireshark 上查看 DNS 流量
    3. 9.3 运行 enet_dns_tirtos 示例
  11. 10Enet_sntp_tirtos 示例概述
    1. 10.1 运行 enet_dns_tirtos 示例
  12. 11Enet_tcpecho_client_tirtos 示例概述
    1. 11.1 配置服务器 IP 地址
    2. 11.2 配置 SocketTest 服务器
    3. 11.3 运行 enet_tcpecho_client_tirtos 示例
  13. 12Enet_udpecho_client_tirtos 示例概述
    1. 12.1 运行 enet_udpecho_client_tirtos 示例
  14. 13Enet_httpget_tirtos 示例概述
    1. 13.1 如何为 HTTP GET 配置 NDK 示例
    2. 13.2 运行 enet_httpget_tirtos 示例
  15. 14参考文献

向 EFS 声明 HTML 文件

只要 HTML 文件转换为内存映像,就会通过调用函数 efs_createfile() 将该文件声明到 EFS 文件系统。在初始化期间,在实际调用 HTTP 服务器之前,通常会同时创建所有 HTML 文件。在 enet_httpServer_tirtos 示例代码中,使用了 AddWebFiles() 和 RemoveWebFiles() 两个函数,这两个函数包含初始化和清理 EFS 文件环境所需的所有代码。

下面是向 EFS 声明 HTML 文件的示例代码片段。

/* 文件系统头文件 */
#include "fs/index.h"
#include "fs/about.h"
#include "fs/overview.h"
Snip…

Int getTime(SOCKET s, int length)
{
    Char buf[200];
    static UInt scalar = 0;
Snip…

Void AddWebFiles(Void)
{
    efs_createfile("index.html", INDEX_SIZE, (UINT8 *)INDEX);
    efs_createfile("overview.htm", OVERVIEW_SIZE, (UINT8 *)OVERVIEW);
    efs_createfile("about.htm", ABOUT_SIZE, (UINT8 *)ABOUT);
Snip…
    efs_createfile("getTime.cgi", 0, (UINT8 *)&getTime);
Snip…Void RemoveWebFiles(Void)
{
    efs_destroyfile("index.html");
    efs_destroyfile("overview.htm");
    efs_destroyfile("about.htm");
Snip…
    efs_destroyfile("getTime.cgi");
Snip…

图 8-6 显示了在 NDK 配置中对两个挂钩函数 AddWebFiles() 和 RemoveWebFiles() 进行声明的位置。

GUID-20210329-CA0I-HNTL-HM1P-B55WB9RBDKPL-low.jpg图 8-6 HTTP 挂钩声明

只要运行上述代码,EFS 系统就准备好让 HTTP 服务器提供内容。