主题中讨论的其他器件:BOOSTXL-SHARP128、
您好!
我一直在使用"simplelink_msp432e4_sdk_4_20_00_12" SDK 随附的网络服务代码中提供的 HTTPServer 模块来开发 Web 服务器。
我还向 MSP-EXP432E401Y 开发板添加了用于 SD 卡接口的 BOOSTXL-SHARP128 Booster Pack。 目前、我已修改示例项目"httpserver_MSP_EXP432E401Y_tirtos_ccs"、以从 SD 卡读取网页并 使用 HTTP 服务器发送。 我还有一些代码将解析 网页 并在发送动态数据之前插入动态数据。
我注意到,每当我通过 Web 浏览器访问网页时,网页的交付速度有一定的不一致之处。 有时网页将在一秒钟内加载,而其他时间网页加载则需要几秒钟,通常为5-7秒钟。 访问网页时、这是一个非常明显的差异。 这一切都是在本地网络上完成 的、只需在 MSP-EXP432E401Y 和我要测试的 PC 之间进行简单切换即可。
当我添加更多代码时、HTTPServer 的响应速度几乎随机变化。 有时、它会非常快速地加载网页、而有时它会以较慢的速度加载网页。 无论我使用哪种 Web 浏览器、都会发生这种情况。 我可以更改 HTTP 服务器的响应速度、有时只需注释掉或添加几行代码即可。 这是非常可重复的。
例如、如果我对其中一个函数进行小代码更改、HTTP 服务器会减慢速度。
static void writeHourEEPROM(char *value, uint8_t chanNum, log_eeprom_vars_t postVar) { uint8_t hrVal = (uint8_t)atoi(value); /* Check if returned value is an error */ if(hrVal == 0 && value[0] != '0') return; /* Check if a valid Hour Value */ // if(hrVal >= 24) // hrVal += 20; const eepromVar_meta_t *tablePtr; tablePtr = log_EEPROM_Table[chanNum]; // Save Pointer to table for correct channel uint16_t eeWordVal = eepromRead_uint8(tablePtr[postVar]); /* If write is same as value read from EEPROM the exit */ if(hrVal == eeWordVal) return; eepromWrite_uint8(hrVal, tablePtr[postVar]); }
此版本的函数会导致 HTTP 服务器运行缓慢。 如果我按如下方式取消注释函数中的两行、然后重新编译工程、HTTP 服务器将以更快的速率处理页面。
static void writeHourEEPROM(char *value, uint8_t chanNum, log_eeprom_vars_t postVar) { uint8_t hrVal = (uint8_t)atoi(value); /* Check if returned value is an error */ if(hrVal == 0 && value[0] != '0') return; /* Check if a valid Hour Value */ if(hrVal >= 24) hrVal += 20; const eepromVar_meta_t *tablePtr; tablePtr = log_EEPROM_Table[chanNum]; // Save Pointer to table for correct channel uint16_t eeWordVal = eepromRead_uint8(tablePtr[postVar]); /* If write is same as value read from EEPROM the exit */ if(hrVal == eeWordVal) return; eepromWrite_uint8(hrVal, tablePtr[postVar]); }
可以看出、对函数的更改微不足道、不应影响 HTTP 服务器的代码。 这只是我在编码时多次看到它的一个。
有时、只是更改构建选项中的优化也会更改 HTTP 服务器的响应速度、而优化速度不一定会导致 HTTP 服务器更快地响应。 它可能会导致 HTTP 服务器响应速度较慢。
我的本能告诉我、代码的放置中有导致此问题的东西、但我不知道为什么。
如果有人对可能导致此问题的原因提出任何建议、我们将不胜感激。
谢谢、
Josh