c++ - EthernetInterface 实例中断程序
问题描述
我正在STM32F746G发现板上测试以太网连接。然而,仅仅有一个未连接的EthernetInterface实例,偶尔获取两个时间戳之间的持续时间要长得多。
在下面的示例中,使用 100K 次时间戳并测量自上一个时间戳以来的持续时间。如果没有以太网接口,这需要持续1 到 2 us。存在以太网实例。有时最多需要20 我们。
所以看起来我的程序被打断了。有人有想法吗,这里到底发生了什么?
#include "mbed.h"
#include "EthernetInterface.h"
Serial pc(SERIAL_TX, SERIAL_RX); // serial for printf
//EthernetInterface ethIf; // <= INFLUENCES TIMING
int main()
{
uint32_t durationMax = 0; // statistics
Timer timer; // a timer
timer.start(); // start it
uint32_t timeStampLast = timer.read_us(); // sampling timestamp
for (int i = 0; i < 100000; ++i)
{
const uint32_t timeStampNowUs = timer.read_us();
const uint32_t durationUs = timeStampNowUs - timeStampLast;
timeStampLast = timeStampNowUs;
durationMax = std::max(durationMax, durationUs);
}
pc.printf("Duration max: %u us\n", durationMax); // either 3 or 20 ?!
}
解决方案
推荐阅读
- java - Java Stream 根据值从地图中收集数据
- asp.net - vb.net 如何在列表框中显示数据库值?
- jqassistant - 通过命令行使用 jQAssistant-Maven-Plugin 时传递参数“ruleParameters”
- api - 找不到数据源:org.apache.dsext.spark.datasource.rest.RestDataSource
- data-visualization - How to make a dynamic tableau x-axis that gets changed when a different dimension is selected as a filter?
- algorithm - 从堆中弹出所有 n 个元素的复杂性是多少?
- spring-boot - Helm,在 values.yaml 中评估 linux 环境变量
- java - Java对新数组中的索引进行排序
- npm - 我的 webpack babel 加载器没有编译我的 javascript 代码
- jsonschema - 如何验证包含 MIXED 类型对象的 json 模式数组?