This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294KCPDT:加载和读取网页与放大器时出现问题;SD 卡中的内容

Guru**** 2535150 points
Other Parts Discussed in Thread: TM4C1294KCPDT

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/924094/tm4c1294kcpdt-trouble-with-loading-and-reading-web-page-its-content-from-sd-card

器件型号:TM4C1294KCPDT

大家好、

我将 TM4C1294KCPDT 和 TivaWare_C_Series-2.1.2.111用于我的应用。 我正在尝试使用 SD 卡中的 lwip httpd (无 RTOS)实现 Web 服务器应用程序(即所有 html、javascript、jpg 文件都存储在 SD 卡中)。 (我已参考示例代码: C:\ti\TivaWare_C_Series-2.1.2.111\examples\boards\dk-tm4c129x\enet_lwip)。

通过从 Web 浏览器输入器件的 IP 地址、我的器件的"index.html"页面应加载其数据。 我的"index.html"页面大小约为70KB、javascript 文件大小约为40KB。

当我尝试加载网页时、大部分时间它无法加载网页及其内容。 我尝试通过转到网页的'Inspect'选项来调试网页;在那里显示了我错误:javascript 文件中的"invalid or unexpected token"。 它实际上会在从服务器接收数据时生成一些无效的令牌(我的 javascript 文件中不存在)。 每次在不同的文件(html/javascript)中为不同的令牌提供不同的错误时。

我尝试在闪存/ROM 中实现 Web 服务器、它工作正常、但如果是 SD 卡 Web 服务器、它会失败。

请提供任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     没有足够的信息来确定问题的原因。 我建议您使用 Wireshark 来检查以太网上的流量。 这将帮助您调试问题。 您是否有任何理由要将数据存储在 SD 卡而不是片上存储器上? 我假设您将 SD 卡与 SPI 接口配合使用、对吧? 从 SPI 串行读取 html 和 jpeg 图像数据肯定比从片上存储器读取慢得多。 我并不感到惊讶的是、有时会出现一些瓶颈。 您使用的 SPI 频率是多少? 如果您增加 SPI 时钟频率会发生什么情况?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您是否有任何理由要将数据存储在 SD 卡而不是片上存储器上?

    -->因为在将来的应用程序中,Web 服务器(即 html 页面/javascript 文件/图像文件等)的大小会更大,这可能会导致 Flash 存储器出现内存问题。

    我假设您将 SD 卡与 SPI 接口配合使用、对吧?

    -->是的。  

    您使用的 SPI 频率是多少? 如果您增加 SPI 时钟频率会发生什么情况?

    -->我尝试了400KB、1MHz、2MHz 频率。 但所有结果都是相同的。

    我尝试使用 Wireshark 进行检查:结果如下:

    案例1:  

    错误:未捕获语法错误:意外字符串 (索引):1542

    当我检查'index.html'文件中的给定行时,它类似于: document.getElementById (cityName).style.displayt" tabindex="10">启用

    但实际行如下所示: document.getElementById (cityName).style.display ="block";

    案例2:

    错误:未捕获的类型错误:无法设置空 Pscripts.js:139的属性'Value'  

    当我检查'JScript.js'文件中的给定行时、它就像这样: document.getElementById ("tSDCFile").value = spData[index++];

    数据加载时的值在此变量'pData[index++''中为空。

    案例3:

    错误: 未捕获语法错误:无效或意外的令牌 Pscripts.js:28

    当我检查'JScript.js'文件中的给定行时、它就像这样: REQ.open ("get"、"/SETNET_DATA.html"? + document.getElementById ("NWD 端口2.

    实际行类似于: REQ.open ("get"、"/SETNET_DATA.html"?) + document.getElementById ("NW_Mode").value +"?"  

    因此、每次它都会产生一些不同的误差。 在 Wireshark 中、我检查了否 接收到的数据字节数量与预期的数据字节相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     TM4C129 SPI 可在高达60MHz 的频率下运行。 我想知道这是否会对您有所帮助、因为您只能将 SPI 配置为低得多的频率(例如1MHz)。 尽管如此、我不知道也不知道您在客户端(浏览器端)看到的这些错误。 您能否从 Wireshark 了解服务器(MCU)是否正确发送数据? 您说的不是 接收到的数据字节数量与预期的数据字节相同。 我假设服务器运行正常。 这是正确的理解吗? 如果是这种情况、是否是客户端有问题? 您将需要调试客户端、并搜索这些错误的含义、因为我对这些错误真的没有任何想法、尽管我希望我也能提供帮助。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    在'lwipopts.h'文件中、   有一个宏"#define LWIP_HTTPD_SSI 1"在我的项目中定义、正是由于这个原因、我遇到了这个问题。

    我评论了宏"//#define LWIP_HTTPD_SSI  1"、它解决了我的问题...