MicroZed ucos lwip echo server测试

2016-07-21 14:20 阅读 2,437 次 评论 0 条

接着上一篇zynq ucos下移植lwip,ucos下lwip的echo server测试基于microzed硬件平台,例程使用standalone中echo server代码。将standalone中main函数中的内容,作为一个任务tcptest_task创建,这个任务的优先级必须低于tcpip_thread的优先级,否则创建任务失败。在ucos的void MainTask (void *p_arg)中调用创建。创建任务前需要Xil_DCacheDisable();关闭dcache

为了简化测试程序,并且使ARM private timer不与ucos冲突,没有再定义定时器,只使用ucos中的定时器。

由于本地测试没有DHCP服务器,所以DHCP肯定超时,所以需要在MainTask任务中增加监测dhcp_timoutcntr大于0时,将其置0,从而跳过dhcp配置,后面的tcpip建立服务。

运行echo server程序,显示ucos系统中的cpu使用率为100%,因为在tcptest_task任务中一直查询网络输入状态,占用cpu。

clip_image002

这里只要将tcptest_task的任务优先级设置为最低,就不会影响主任务的运行。但这样还是没有体现出ucos的实时系统特性,相当于还是查询工作模式。加一个OSTimeDlyHMSM(0, 0, 10, 0, OS_OPT_TIME_HMSM_STRICT, &os_err);函数,固定延时的查询,会将cpu使用率降下来,但由于关闭了dcache,似乎运行速度并不快。

测试过程中,使用多个网络助手软件连接echo server,客户端使用不同的端口号,echo测试均能正常工作。

注意:关闭Dcache,ucos初始化配置时,默认开启cache。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:MicroZed ucos lwip echo server测试 | 起点博客
分类:应用笔记 标签:, , ,

发表评论


表情