接牛刀小试章节,今天我们主要测试下OK153-S开发板系统实时性以及是否可以跑codesys底层runtime。
因OK153-S开发板只有一个网口,后面跑codesys测试EtherCAT要使用开发板自带的RGMII网口;还需要通过usb扩展一路网卡,用于程序的下载调试。
通过./build.sh menuconfig命令配置kernel,勾选瑞昱的RTL8152/RTL8153 USB网卡驱动;退出内核配置界面,输入./build.sh saveconfig命令保存配置。
运行./build.sh && ./build.sh config重新生成img镜像,烧录到开发板中,具体步骤可参考飞凌官网在线文档。
一:使用cyclictest命令和stress-ng命令对系统实时性进行测试,
cyclictest命令可以用于测试周期任务延迟性能,具体如下所示,
-t:创建4个SCHED_FIFO实时线程
-p:线程的优先级80
-a:绑定线程到指定的cpu,0,1...n
stress-ng命令可以用于给CPU、DDR、Flash加压。
4个cpu空闲状态下,cyclictest命令测试实时性如下所示,
4个cpu加压,实时性测试如下,
DDR加压情况下,实时性测试如下,
Nand flash加压情况下,实时性测试,
Nand flash加压,会导致核心板上心跳灯不再闪烁,开发板宕机。怀疑是256MB空间太小导致。
二:对开发板跑codesys runtime进行测试。
将codesys 底层所需的三个文件(codesyscontrol、CODESYSControl.cfg、3S.dat)拷贝到开发板上,并运行codesyscontrol可执行文件。
用开发板自带的千兆网口跑EtherCAT主站,把EtherCAT主站所在的任务绑定到CPU3上运行,带一个伺服电机长时间运行,测试结果
结论:RGMII网卡作为EtherCAT主站长时间运行没有出现丢包,4ms周期任务抖动<±45u,T153实时性能满足作为PLC、运动控制器的要求。
更多回帖