ZYNQ移植uCOSIII

3 篇文章 1 订阅

  我参考B站上的视频《FPGA(ZYNQ)上运行UC/OS的实例-TCP通讯》,在自己的ZYNQ开发板上移植uCOSIII操作系统,配置BSP,这里记录部分步骤。
软件:Vivado 2017.4
芯片:xc7z010clg400-1

硬件设计

第一步:新建Vivado工程,创建Block Design,在Block Design中添加ZYNQ7 Processing System IP核。
第二步:配置ZYNQ7 Processing System IP核。
  配置PS的UART,点击Peripheral I/O Pins页面,选择UART1,我的板子引出的是MIO48和MIO49,波特率设置为115200。
在这里插入图片描述  配置PS的Ethernet,点击Peripheral I/O Pins页面,选择Ethernet0,我的板子用的PHY芯片是RTL8211E,Ethernet0引出的是MIO16~MIO27,MDC和MDIO分配到MIO52、MIO53。
在这里插入图片描述  MIO Configuration页面的设置如下图所示。
在这里插入图片描述  最后把剩下的所有GPIO MIO选中,留作他用(点灯)。DDR3、PS时钟、中断等配置按自己的需求来,这里不记录了。配置好的Block Design如下图所示。
在这里插入图片描述第三步:验证当前设计,生成顶层HDL模块,导出硬件,启动SDK。

软件设计

第一步:下载uCOSIII代码。
  可以到开头视频给的网站上下载。网址:https://github.com/suisuisi/zynq_guide/tree/main/ucos。这是开发操作系统的公司针对ZYNQ的Cortex-A9 CPU移植好的代码,我们不需要做任何修改,只需在SDK中配置一下可以。
在这里插入图片描述第二步:在SDK中导入uCOSIII代码。
  解压下载后的压缩包,将uCOSIII代码文件夹放到自己的工程目录下。
在这里插入图片描述  点击SDK软件上方的Xilinx->Repositories,在Local Repositories栏中导入uCOSIII代码文件夹的路径,点击“OK”。
在这里插入图片描述第三步:新建应用。
  OS Platform选择ucos,点击“Next”。下一页选择Micrium uc/OS-III Hello World模板。(其他模板也可试一试)。
在这里插入图片描述在这里插入图片描述第四步:配置BSP。
  右击左侧的ucos_base_bsp,点击Board Support Package Settings,打开配置BSP的界面。
在这里插入图片描述  Ovrview中按下图勾选模块,我选了必须要的三个模块,其他模块按需勾选。其中ucos_standalone模块允许我们在代码中使用Xilinx提供的外设驱动代码。
在这里插入图片描述  在ucos_standalone中,将stdin和stdout设置为ps7_uart_1,也就是前面我们在硬件设计中选中的UART1。
在这里插入图片描述  在drivers中,将ps7_ethernet_0的驱动选为ucos_emacps,留着后面做网络实验用(本文未涉及)。在这里插入图片描述第五步:写代码。
  ucos_base->src->app.c里有自动生成的代码,可以直接编译下载到板子上实验。

#include  <stdio.h>
#include  <Source/os.h>
#include  <ucos_bsp.h>
void  MainTask (void *p_arg);
int main()
{
    UCOSStartup(MainTask);
    return 0;
}
void  MainTask (void *p_arg)
{
    OS_ERR       os_err;
    UCOS_Print ("Hello world from the main task\r\n");
    while (DEF_TRUE) {
        OSTimeDlyHMSM(0, 0, 10, 0, OS_OPT_TIME_HMSM_STRICT, &os_err);
        UCOS_Print("Periodic output every 10 seconds from the main task\r\n");
    }
}

我还尝试了TCP和DNS的模板,开发板连接路由器,可以成功获得IP地址。
完整的工程下载地址:ZYNQ7010的uCOSIII模板

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文档共60页。主要向初学者提供了Zynq开发的技术方向,针对不同应用给出了基本的参考文档;同时对Zynq双核AMP加载方式做了详细描述,对Zynq的fsbl启动流程做了简单介绍。章节如下: Zynq User Guide 1 介绍 4 2 快速上手指南 4 3 多核开发教程 4 3.1 AMP开发说明 6 3.1.1 快速生成amp工程 6 3.1.2 Generating Boot File 8 3.1.3 烧写程序 9 3.1.4 启动 10 3.1.5 调试 10 3.1.6 总结 11 3.2 SMP开发说明 11 4 ZC706启动代码分析 11 4.1 启动代码 12 4.2 FSBL流程(FOR AMP) 13 4.3 CPU0启动CPU1流程 14 5 程序在线烧写方案及流程 14 5.1 程序烧写需求 14 5.2 提出该需求的原因 14 5.3 程序烧写方案 14 5.3.1 BOOT.BIN组成 14 5.3.2 BOOT.BIN生成方法 15 5.4 FSBL.BIN和APP.BIN等的生成 15 5.5 制作*BIN及烧写的具体步骤 15 5.5.1 制作*bin流程 15 5.5.2 BOOT.bin制作过程 15 5.5.3 FSBL.bin和APP.bin等的生成过程 22 5.6 烧写BOOT.BIN步骤 26 5.6.1 通过SDK工具烧写步骤 26 5.6.2 通过上位机烧写软件的烧写步骤 29 5.6.3 通过串口调试助手烧写步骤 29 6 Zynq Qspi控制器 30 6.1 基本特性 30 6.2 I/O接口 31 6.3 QSPI控制器模式 33 6.3.1 I/O模式 33 6.3.2 线性地址(linear address)模式 33 6.3.3 传统(legacy)SPI模式 34 6.4 QSPI 例程 34 6.5 QSPI控制器支持访问32MB方法 35 6.5.1 Bank地址寄存器(Bank address register) 35 6.5.2 扩展地址模式(Extended address mode) 35 6.5.3 使用新写命令(New commands) 35 6.6 QSPI FLASH选择 35 6.7 作为BOOT器件考虑 35 7 µC/OS系统启动指南 36 7.1 INTRODUCTION 36 7.1.1 Software Requirements 36 7.1.2 Hardware Requirements 36 7.2 HARDWARE DESIGN 37 7.2.1 Step 1. Invoke the Vivado IDE and Create a project 37 7.2.2 Step 2. Create an IP Integrator Design 39 7.2.3 Step 3. Add and setup the Zynq processor system IP block 39 7.2.4 Step 4. Customize the Zynq block for our design 41 7.2.5 Step 5. Add the soft peripherals 45 7.2.6 Step 6. Generate HDL Design Files 47 7.2.7 Step 7. Synthesis, Implement and Generate Bitstream 48 7.3 SOFTWARE DESIGN 49 7.3.1 Step 1. Installation of the µC/OS Repository 49 7.3.2 Step 2. Generate the µC/OS BSP 50 7.3.3 Step 3. Build and Debug the Demonstration Project 54 7.3.4 Step 4. Program the AXI Timer 0 with the ucos_axitimer Driver 55 7.3.5 Step 5. Program the AXI Timer 1 with the Xilinx tmrctr Driver 58 7.4 CONCLUSION 59 8 Linux系统启动指南 59
### 回答1: Zynq开发板是一种集成了ARM Cortex-A9处理器和可编程逻辑的嵌入式开发板。UCOSIII是一种实时操作系统,具有轻量级、低功耗和高可靠性的特点。移植UCOSIII到Zynq开发板上,可以为嵌入式应用提供强大的实时任务调度和资源管理功能。 移植UCOSIII到Zynq开发板的主要步骤如下: 1. 硬件配置:确保Zynq开发板的硬件资源满足UCOSIII的要求。包括处理器核心、外设、存储器等。 2. 编译交叉工具链:为Zynq开发板配置适当的交叉编译工具链,以便可以将UCOSIII源代码编译生成适配Zynq的可执行代码。 3. 移植UCOSIII源代码:将UCOSIII源代码通过交叉编译工具链编译成适配Zynq的可执行代码。 4. 配置系统初始化:在Zynq开发板上配置UCOSIII系统的初始化,包括任务创建、任务堆栈分配、中断初始化等。 5. 配置硬件驱动:根据Zynq开发板的硬件资源情况,实现相应的硬件驱动程序,以便UCOSIII能够使用硬件资源。 6. 运行UCOSIII:将编译生成的可执行代码下载到Zynq开发板上,并运行UCOSIII。通过任务调度,UCOSIII可以管理嵌入式应用的任务、中断和资源。 移植UCOSIII到Zynq开发板需要对硬件和软件进行深入的了解和配置。在移植过程中可能会遇到一些问题,需要通过调试和测试进行解决。最终,在Zynq开发板上成功移植UCOSIII后,可以为嵌入式开发提供更强大的实时操作系统支持。 ### 回答2: Zynq开发板是一款由Xilinx公司推出的面向嵌入式系统开发的SoC(片上系统)平台,它结合了FPGA(可编程逻辑门)和ARM Cortex-A9双核处理器。而UCOSIII是Micrium公司开发的一款专为嵌入式实时操作系统(RTOS)的软件,它提供了多任务管理、任务优先级调度、中断和通信服务等功能。 要将UCOSIII移植Zynq开发板上,首先需要下载UCOSIII的源代码。然后,根据Zynq开发板的硬件平台和操作系统环境来进行适配和配置。 首先,需要创建一个UCOSIII的工程目录,并将UCOSIII源代码添加到工程中。然后,根据Zynq开发板上的硬件资源分配,配置UCOSIII的任务堆栈、任务堆栈大小、任务优先级和任务数量等参数。 接下来,需要对Zynq开发板的硬件资源进行驱动开发和配置。通过使用Xilinx提供的软件开发工具(如Xilinx SDK),可以编写相应的设备驱动程序,并将其集成到UCOSIII中。此外,还需要根据Zynq开发板上的外设(如GPIO、SPI、UART等)来适配和配置UCOSIII的通信和中断服务。 在完成驱动程序开发和配置后,还需要对UCOSIII的配置文件进行相应的修改。这些配置文件包括任务优先级、系统定时器频率、内存管理等系统参数。根据Zynq开发板的需求,进行必要的配置和调整。 最后,进行编译和烧写。使用Xilinx SDK工具进行编译和构建UCOSIII的镜像文件,然后将其通过调试器或SD卡等方式烧写到Zynq开发板上。 总之,将UCOSIII移植Zynq开发板是一个相对复杂的过程,需要对硬件和软件进行深入理解和配置。通过按照上述步骤进行适配和配置,可以使得UCOSIII在Zynq开发板上正常运行,并能够充分利用Zynq开发板上的硬件资源。 ### 回答3: Zynq是一款强大的嵌入式系统芯片,具有双核Arm Cortex-A9处理器和FPGA资源,可用于各种应用开发。而µC/OS-III是一款实时操作系统,可用于实现多任务调度和资源管理。 在将µC/OS-III移植Zynq开发板上时,需要完成以下几个步骤: 首先,需要了解Zynq开发板的硬件资源和引脚分配情况。µC/OS-III需要占用一部分存储器和中断资源,因此需要根据开发板的具体情况进行硬件资源的配置和映射。 其次,需要通过板载的JTAG或者串口来连接开发板与计算机进行调试和下载代码。通过工具链将µC/OS-III的源代码编译生成可执行的二进制文件,并将其下载到Zynq开发板中。 然后,根据µC/OS-III的文档,进行初始化配置。这包括设置任务的优先级、栈空间的大小、时钟频率等参数的调整。同时,还需要根据Zynq的特性进行一些特殊的配置,比如中断向量表的设置、硬件定时器的使用等。 最后,可以编写测试程序来验证µC/OS-III在Zynq开发板上的正常运行。可以通过创建和删除任务、设置任务的优先级、进行资源共享和通信等方式来测试操作系统的功能和性能。 在移植过程中,需要注意处理器架构的兼容性、资源冲突的解决、中断处理的配置,以及与外部设备的交互等问题。通过认真的移植工作和测试验证,可以实现µC/OS-III在Zynq开发板上的成功移植和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值