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

 

  1.   商标
  2. 引言
    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. 应用示例
  4. 应用设置
    1. 3.1 硬件设置
    2. 3.2 软件工具
  5. 下载并导入以太网示例
  6. 如何为 TI-RTOS NDK 创建以太网应用
  7. 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. Enet_udpecho_server_tirtos 示例概述
    1. 7.1 运行 enet_udpecho_server_tirtos 示例
  9. 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. 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 服务器提供内容。