sdk包里面集成了rtos怎么操作_Zynq中使用FreeRTOS的空闲钩子函数时在SDK中的设置...

本文介绍了在Zynq中使用FreeRTOS时遇到空闲钩子函数不工作的问题,以及如何在SDK中正确设置。问题在于configUSE_IDLE_HOOK未生效,尝试直接修改源文件、SDK BSP源文件以及自定义BSP均未成功。最终解决方案是在BSP设置中启用use_idle_hook选项,从而轻松解决问题。同时提到了在使用FreeRTOS相关功能时需要包含对应的头文件。
摘要由CSDN通过智能技术生成

本文介绍zynq中使用FreeRTOS的空闲钩子函数时在SDK中的设置和一些说明

初玩zynq发现,在zynq中可以运行FreeRTOS,果断试了下;测试了几个例子,一切正常,但是在使用空闲钩子函数时导致无法正常执行。

要使用空闲钩子函数必须将FreeRTOSConfig.h文件中的configUSE_IDLE_HOOK定义为1,当然编译前已手动将其定义改为1,但是空闲钩子函数仍然没有运行。

查看源文件没发现错误,无意间再次确认configUSE_IDLE_HOOK是否改为1时,查看FreeRTOSConfig.h文件中configUSE_IDLE_HOOK定义为0了,再次修改,重新编译运行,不行,再看,configUSE_IDLE_HOOK又定义为0了,嗯,应该是编译工程时BSP也重新生成了,而默认configUSE_IDLE_HOOK定义为0,所以configUSE_IDLE_HOOK又回到了0。

找到原因,进入以下处理过程

不成功的处理

直接在源文件(包含main的实现文件)头加上#define configUSE\_IDLE\_HOOK 1

这样当然不行,在编译FreeRTOS时configUSE_IDLE_HOOK任为0,这里定义的configUSE_IDLE_HOOK只有在编译源文件时有用,而源文件中也没使用这个宏,所以这样改是不行的。

当然将#define configUSE\_IDLE\_HOOK 1放到包含FreeRTOSConfig.h文件的FreeRTOS.h文件包含#include "FreeRTOS.h"之前也是同样道理,同样不行。

修改SDK自带BSP中源文件

有关如何以操作系统感知的方式调试在Avnet MiniZed板上运行的Embedded FreeRTOS应用程序的指南。 介绍在操作系统之上编写嵌入式软件应用程序,通常很难检测某些序问题或解释某些奇怪的行为。到底出了什么问题?另一件事是,在研究嵌入式操作系统,以可视方式呈现系统的运行行为会很有用。了解任务优先级,调度程序设置,队列管理,... 我发现Percepio Tracealyzer是解决这类问题的理想工具。Tracealyzer可以通过两种方式工作:在快照模式下(这是本教程的内容)或在流模式下。 对于本指南,您需要一个Avnet MiniZed开发板(基于Xilinx Zynq),Xilinx vivado工具和Percepio tracealyzer 4(其网站上的评估版)。 让我们开始开发本指南的硬件部分(FPGA设计)。如果您不熟悉FPGA设计,则可以打开我的硬件设计。否则,从下面开始构建基于ZYNQ7的设计: 基于zynq7的设计 在程序框图上放置以下组件: ZYNQ7 P rocessing 小号ystem 具有2个通道的AXI GPIO 连接到pl_led_g 和pl_led_r 1个通道的AXI GPIO 连接到pl_sw_1bit 您可以对ZYNQ7处理系统使用自动配置(使用预设),但是随后必须手动添加M_AXI_GP0_ACLK 端口以连接AXI从设备外围设备。 使用“自动连接”功能将AXI_GPIO模块连接到AXI总线。 不要忘记在“模块设计”的顶部添加HDL装器。生成比特流,并将您的硬件设计导出到Vivado SDK括比特流)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值