zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)

周五在某小徐处借到了一块Zedboard开发板,平时在公司没有机会做SDK开发的笔记,今天就趁着这块开发板简要记录一些SDK的基本操作。一、功能简介

    通过第三方库创建SDK工程

    在ZYNQ-UCOS中实现TCP echo通讯

二、配置需求

操作系统Windows 10(64位)
开发环境SDK 2018.3

三、操作流程

1、添加资源库。启动SDK软件,选择Xilinx->Repositories弹出Perferences视图,在Local Repositories中添加ucos资源库(ucos资源库下载链接见附件部分)。

b463c1c9849a6d0f2d42516b0e379431.png

bed0cb95308e6730b1bbfdce0916af48.png

2、创建新工程。选择File->New->Application Project弹出New Project视图,输入工程名称ucos_tcp,选择操作系统平台ucos,点击Next>,在弹出的Templates选项中选择Micrium uc/OS-Ⅱ Hello World,点击Finish完成基础示例工程的创建。

b66b4829218923d54a819b85f5900d5e.png

0c001a6640ed6a166c7f0b1ecdba4870.png

91b89e43f3edd4b05b61806fe03dac17.png

3、配置emac。在ucos_tcp_bsp文件夹上单击鼠标右键,选择Board Support Pcakage Settings,在弹出的Board Support Pcakage Settings视图中选择drivers,修改ucos_emacps为emacps,单击OK完成emac的配置。

95a2a5c3a89ce47b7cc9eb1a316a7295.png

4、移植Lwip。将lwip212文件夹及内容拷贝到工程源文件目录下(Lwip资源库下载链接见附件部分)。

e63f423ea5f69d18a858e8520be346a2.png

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视图。

efe6e2a64592813fe7573e9107329d82.png

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文件进行如下修改。
/***********************************************************************************************************                                             uCOS XSDK BSP**                      (c) Copyright 2014-2020; Silicon Laboratories Inc.,*                             400 W. Cesar Chavez, Austin, TX 78701**                All rights reserved. Protected by international copyright laws.**               Your use of this software is subject to your acceptance of the terms*               of a Silicon Labs Micrium software license, which can be obtained by*               contacting info@micrium.com. If you do not agree to the terms of this*               license, you may not use this software.**               Please help us continue to provide the Embedded community with the finest*               software available. Your honesty is greatly appreciated.**                 You can find our product's documentation at: doc.micrium.com**                       For more information visit us at: www.micrium.com**********************************************************************************************************//***********************************************************************************************************                                          SETUP INSTRUCTIONS**   This demonstration project illustrate a basic uC/OS-II project with simple "hello world" output.**   By default some configuration steps are required to compile this example :**   1. Include the require Micrium software components*       In the BSP setting dialog in the "overview" section of the left pane the following libraries*       should be added to the BSP :**           ucos_common*           ucos_osii*           ucos_standalone**   2. Kernel tick source - (Not required on the Zynq-7000 PS)*       If a suitable timer is available in your FPGA design it can be used as the kernel tick source.*       To do so, in the "ucos" section select a timer for the "kernel_tick_src" configuration option.**   3. STDOUT configuration*       Output from the print() and UCOS_Print() functions can be redirected to a supported UART. In*       the "ucos_standalone" section the stdout configuration will list the available UARTs.**   Troubleshooting :*       By default the Xilinx SDK may not have selected the Micrium drivers for the timer and UART.*       If that is the case they must be manually selected in the drivers configuration section.**       Finally make sure the FPGA is programmed before debugging.***   Remember that this example is provided for evaluation purposes only. Commercial development requires*   a valid license from Micrium.**********************************************************************************************************//***********************************************************************************************************                                            INCLUDE FILES**********************************************************************************************************/#include  #include  #include  #include "ucos_ii.h"#include "LwipEnter.h"/***********************************************************************************************************                                      LOCAL FUNCTION PROTOTYPES**********************************************************************************************************/OS_STK  Polling_thread_Stk[256u];OS_STK  LwipEnter_thread_Stk[512u];void  MainTask (void *p_arg);void  PollingTask (void *p_arg);/***********************************************************************************************************                                               main()** Description : Entry point for C code.***********************************************************************************************************/int main(){    UCOSStartup(MainTask);    return 0;}/***********************************************************************************************************                                             MainTask()** Description : Startup task example code.** Returns     : none.** Created by  : main().**********************************************************************************************************/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);}/***********************************************************************************************************                                             PollingTask()** Description : Polling task example code.** Returns     : none.** Created by  : MainTask().**********************************************************************************************************/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、调试配置。调试配置如下图所示。

e410907d7bbc157745bda6894d07c300.png

0415c96ba88fceb775b47578fc24e020.png

9、启动调试。将测试PC机IP设置为192.168.1.99(与Zedboard处于同一网段),子网掩码为255.255.255.0。此时即可通过网口调试助手测试TCP的通讯功能。

f2aca6b38ee45490d0ee49bfe82683e5.png

四、资源链接

链接:https://pan.baidu.com/s/1iVkFfXC964F7cCZVK8URCA

提取码:s5p1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法描述怎么写_管件材料描述怎么写

通过以上及其我们了解到了管道上不同的管道元件,包括:弯头、三通、异径管、管帽等。但在材料等级表中如何清楚的描述它们的特性,至关重要,因为这涉及材料采购是否正确。以下主要介绍管件材料描述的写法:①弯头 ②DN15~…

linux复制文件通信方式,Linux分布式文件拷贝

在开发过程中总会遇到这种情况,就是需要将一个文件从一个机器拷贝到其他的很多台机器中,最简单的方法是用U盘拷出来再一个一个机器的插进去拷贝,另一张方法则是利用飞鸽传书或者QQ等工具传输,但是都不是很方便,因为每次…

安装linux修复系统文件夹,误删除 Linux 系统文件了?这个方法教你解决

误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的…

linux tmux 详细教程,Linux下的神器介绍之Tmux分屏器

前言我们为什么需要分屏器呢?对于这个问题,我想大家肯定都有自己的看法。主流的观点是这样的,对于生活在Linux下的人(开发人员、运维人员、普通爱好者)都不可避免的使用终端模拟器(比如,gnome-terminal)去执行一些命令或者脚本。但…

laravel created_at 时间戳_使用 HTTP 测试测试 Laravel 中间件

文章转发自专业的Laravel开发者社区,原始链接:https://learnku.com/laravel/t/34002在本文中,我将展示一个使用 HTTP 测试中间件的实例。HTTP 级测试更能适应变化,可读性更强。在最近与 Adam Wathan 和 Taylor Otwell 合拍的《全栈…

动物识别专家系统python_Python有哪些作用?

Python是什么呢?Python是一种全栈的开发语言,如果能学好Python,前端、后端、测试、大数据分析、爬虫等这些工作你都能胜任。那Python有哪些作用呢?Python主要有以下四大主要应用:网络爬虫网站开发人工智能自动化运维接…

linux mint图标大小,Cinnamon:LinuxMint 15桌面设置小技巧

touchwiz自身也在做不断的革新,例如7屏分页,桌面切换3d效果,增强型的下拉菜单设置等。win10多桌面最多可以支持7个桌面开启,而且win10切换多桌面是有快捷键的,可以帮助用户迅速切换或创建以及关闭多桌面。切换方法一&a…

操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...

微软的Windows操作系统是目前使用人数最多、覆盖最广的桌面操作系统,从安全角度来看,其系统源代码对于公众而言可以说是绝密。不过......现在......,黑客在4Chan平台上以BT种子文件的形式在线泄漏了多个旧Windows版本的源代码,包括…

linux设置多语言环境,怎么为Linux系统配置多语言环境?

这篇文章主要讲述了怎么为Linux系统配置多语言环境的基本方法,其中还包括编码的修改方法,我们就拿用户使用最多的Ubuntu和CentOS这两个为例子吧。需要的朋友可以参考下。修改 /etc/sysconfig/i18n 文件,如LANG“en_US.UTF-8”,xwi…

轴承新旧型号对照表_精密机床主轴轴承,高端轴承进口清关报关流程

精密机床的主轴对轴承精度的要求非常高,我国目前在这一技术上仍然处于一片空白,那么高精度的轴承要怎么进口呢?高精度轴承进口这块其他国家管控得比较严格,高精度轴承的进口又会遇到哪些问题呢?在我们的生活中轴承几乎…

开机自启动程序关闭方法_电脑非常卡,总有软件偷偷自启动?学会这1招,永久关闭它们!...

小编有一个朋友,前段子发微信问我,说他的电脑非常卡,重装电脑后,会好转许多,非常流畅,但是过了几天又卡了。我问了他的电脑配置,首先电脑的配置是绝对ok。当前一流水平,后来我远程操…

蒙特卡洛模拟_蒙特卡洛模拟法求期权价值

今年跟朋友讨论了一个期权问题。“Earn Out”方式并购下的金融工具确认。大致条款如下(非真实情况):收购一家标的企业估值15000万元。盈利预测情况如下:收购协议中约定了第一期支付对价50%。同时第二期对价于2021年支付50%。同时若低于2021年净利润低于9…

双亲委派机制_面试官:双亲委派机制的原理和作用是什么?

说到双亲委派机制,就必须要先要弄清楚Java的类加载器什么是类加载器Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内存空间。类加载器有哪些主要有三个:引导类加载器(Bootstrap ClassLoader…

无广告的pdf阅读器_奥利给!免费无广告!功能超齐全!这样的良心国产软件,真的不多了!...

日常生活工作中,我们会碰到各种各样的PDF文档,它是一种全球通用的格式,由Adobe公司开发。PDF有通用性好、格式不会乱变、保真性高等优点。但同时,PDF也是让我们感到困惑最多的格式之一,因为与Word文档等其他常见办公软…

android自定义游戏闯关图,Android自定义View(四) -- Canvas

本文计划根据HenCoder系列文章进行学习,所以代码风格及博文素材可能会摘自其中。1 范围裁切范围裁切有两个方法: clipRect() 和 clipPath()。裁切方法之后的绘制代码,都会被限制在裁切范围内。1.1 clipRect()使用很简单,直接应用&…

iPhone记步和Android计步,手机中运动步数是如何计算的?

微信运动每天都记录着你走路的步数,他会形成榜单,走的多收到很多赞,走的少则无人关注,如果你走到第一,你的照片将霸占排行榜封面。所以一段时间,每个人为了霸占封面疯狂走路、刷步,然而有时我们…

智能机器人建房子后房价走势_明后年日照房价走势如何?究竟是“上涨”还是下降...

想要在偌大的城市中拥有一个属于自己的家,那就必须要先有自己的一套房子,因为房子和自己以后的幸福生活密切相关。但是面对着如今格外高昂的房价,让很多人对房子产生了一种遥不可及的感觉。那么明后年日照房价走势如何呢?究竟是会…

dota迷你盒子Android5,DOTA:第一批TI7的迷你Aegis复制品已经到货

原标题:DOTA:第一批TI7的迷你Aegis复制品已经到货各地华丽的工艺。节日期间,一些Dota 2粉丝的完美礼物被封顶,他们本周开始收到令人垂涎的“宙斯盾”(Aegis of Champions)的缩影复制品。今年5月4日至10月1日举行的国际7战斗通行证…

鸿蒙系统下拉菜单,鸿蒙的js开发部模式17:鸿蒙的系统能力的应用模块

1. 鸿蒙的系统能力主要涉及通知消息模块,在模拟器中也可以实践和获取初始界面:点击发送通知,顶部出现通知消息的图标下拉通知菜单栏,出现通知信息:js的业务逻辑代码:import notification from system.notification;no…

华为 原生android 6.0,安卓6.0原生桌面轻体验,我的手机从未如此流畅过

本帖最后由 啷个里格弄 于 2016-12-30 13:05 编辑1.png (188.33 KB, 下载次数: 65)2016-4-29 18:21 上传▏写在开头P8的EMUI系统或者称之为桌面在功能性和流畅度上都给我留下不错的印象。但是成天盯着一款桌面难免“七年之痒”,楼主这边就来给大家的P8换换口味&…