一、功能简介
通过第三方库创建SDK工程
在ZYNQ-UCOS中实现TCP echo通讯
二、配置需求
操作系统 Windows 10(64位)
开发环境 SDK 2018.3
三、操作流程
1、添加资源库。启动SDK软件,选择Xilinx->Repositories弹出Perferences视图,在Local Repositories中添加ucos资源库(ucos 资源库下载链接 见附件部分 )。
2、创建新工程。选择File->New->Application Project弹出New Project视图,输入工程名称ucos_tcp,选择操作系统平台ucos,点击Next>,在弹出的Templates选项中选择Micrium uc/OS- Ⅱ Hello World,点击Finish完成基础示例工程的创建。
3、配置emac。 在ucos_tcp_bsp文件 夹上单击鼠标右键,选择Board Support Pcakage Settings,在弹出的Board Support Pcakage Settings视图中选择drivers,修改ucos_emacps为emacps,单击OK完成emac的配置。
4、移植Lwip。将lwip212文件夹及内容拷贝到工程源文件目录下(Lwip资源库下载链接见附件部分)。
5、设置 头文件路径 ,在src文件夹上单击鼠标右键,选择Properties,在弹出的Properties for src视图中选择C/C++ Build->Settings->Directories,在Include Paths中依次添加lwip212文件下的contrib、contrib/xilinx/include,lwip-2.1.2/include三个文件夹。单击Apply应用配置变更,单击OK退出 Properties for src视图。
6、删除报错的头文件。
注释/ucos_tcp/src/lwip212/contrib/xilinx/include/netif/xemacpsif.h中xuartps.h的引用
注释/ucos_tcp/src/lwip212/contrib/xilinx/netif/xemacpsif.c中xuartps.h的引用
注释/ucos_tcp/src/lwip212/contrib/LwipEnter.h中platform_config.h的引用
7、修改入口函数文件。将app.c文件进行如下修改。
#include "ucos_ii.h"
#include "LwipEnter.h"
OS_STK Polling_thread_Stk[256u];
OS_STK LwipEnter_thread_Stk[512u];
void MainTask (void *p_arg);
void PollingTask (void *p_arg);
int main()
{
UCOSStartup(MainTask);
return 0;
}
void MainTask (void *p_arg)
{
OS_CPU_SR cpu_sr;
OS_ENTER_CRITICAL();
// Create Task
OSTaskCreate(PollingTask, (void*)0, (OS_STK*)&Polling_thread_Stk[255u], 20u);
OSTaskCreate(LwipEnter_thread, (void*)0, (OS_STK*)&LwipEnter_thread_Stk[511u], 50);
OS_EXIT_CRITICAL();
// Suspend this Start Task after initialization
OSTaskSuspend(OS_PRIO_SELF);
}
void PollingTask (void *p_arg)
{
UCOS_Print ("Hello world from the main task\r\n");
while (DEF_TRUE)
{
OSTimeDlyHMSM(0, 0, 3, 0);
UCOS_Print("Periodic output every 3 seconds from the main task\r\n");
}
}
8、调试配置。调试配置如下图所示。
9、启动调试。将测试PC机IP设置为192.168.1.99(与Zedboard处于同一网段),子网掩码为255.255.255.0。此时即可通过网口调试助手测试TCP的通讯功能。
四、资源链接
链接:https://pan.baidu.com/s/1iVkFfXC964F7cCZVK8URCA
提取码:s5p1
原文链接: