当前位置: 首页 > news >正文

可以做编程题的网站阿里巴巴国际站做2个网站有用

可以做编程题的网站,阿里巴巴国际站做2个网站有用,推广公司,开发网页游戏目录 1. 简介 2. 工程与代码解析 2.1 Vivado 工程 2.2 Vitis 裸机代码 2.3 关键代码解析 3. 总结 1. 简介 Zynq 中的中断可以分为以下几种类型#xff1a; 软件中断#xff08;Software Generated Interrupt, SGI#xff09;#xff1a;由软件触发#xff0c;通常…目录 1. 简介 2. 工程与代码解析 2.1 Vivado 工程 2.2 Vitis 裸机代码 2.3 关键代码解析 3. 总结 1. 简介 Zynq 中的中断可以分为以下几种类型 软件中断Software Generated Interrupt, SGI由软件触发通常用于CPU之间的通信。私有外设中断Private Peripheral Interrupt, PPI与每个CPU相关的中断如定时器和看门狗。共享外设中断Shared Peripheral Interrupt, SPI由多个设备共享可以被路由到任何一个CPU。 中断控制器GIC是Zynq中管理中断的核心组件负责中断的使能、屏蔽、优先级设置以及将中断信号发送到CPU1。 本文展示是一个中断处理示例记录如何在PS处理系统和PL可编程逻辑之间使用GPIO通用输入输出和中断。 2. 工程与代码解析 2.1 Vivado 工程 系统中断由多个系统元素生成并通过GIC代理GICPx_IRQ 寄存器广播到GICs、PMU以及PL中的输出信号。 我们重点关注PL中的输出信号 UG1085: System Interrupts Datasheet 中的描述的两组中断寄存器对于到 Zynq 配置页面示意图如下 如果查看 xparameters.h 文件可以看到 IRQ 对应的中断号 //AXI GPIO 中断号 121 #define AXI_GPIO_INTERRUPT_ID  XPAR_FABRIC_AXI_GPIO_0_IP2INTC_IRPT_INTR 2.2 Vitis 裸机代码 代码的主要功能包括 初始化配置PS端和PL端的GPIO设备包括设置方向和输出使能。中断系统设置初始化GIC通用中断控制器注册中断处理函数并设置中断优先级和触发类型。中断处理定义了一个中断处理函数IntrHandler当检测到AXI GPIO中断时会打印一条消息。 #include stdio.h #include xparameters.h #include xgpiops.h #include xgpio.h #include sleep.h #include xil_exception.h #include xscugic.h#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID #define INTC_DEVICE_ID XPAR_SCUGIC_SINGLE_DEVICE_ID #define AXI_GPIO_DEVICE_ID XPAR_GPIO_0_DEVICE_ID//AXI GPIO 中断号 121 #define AXI_GPIO_INTERRUPT_ID XPAR_FABRIC_AXI_GPIO_0_IP2INTC_IRPT_INTR //AXI GPIO 通道 #define GPIO_CHANNEL1 1#define MIO7_LED 7 #define MIO36_KEY 36static void SetupInterruptSystem(XScuGic *GicInstancePtr, XGpio *AXI_Gpio,u16 AXI_GpioIntrId); static void IntrHandler();XGpioPs Gpio; /* The driver instance for GPIO Device. */ XScuGic Intc; /* The Instance of the Interrupt Controller Driver */ XGpio AXI_Gpio; /* The Instance of the GPIO Driver */static XGpioPs_Config *ConfigPtr; static XScuGic_Config *IntcConfig; /* Instance of the interrupt controller */int main() {u32 keyval;printf(AXI GPIO INTERRUPT TEST!\n\r);//由 ID 查找 PS 端器件并初始化ConfigPtr XGpioPs_LookupConfig(GPIO_DEVICE_ID);XGpioPs_CfgInitialize(Gpio, ConfigPtr, ConfigPtr-BaseAddr);//PS 端 GPIO 方向设置, 0 - Input, 1 - OutputXGpioPs_SetDirectionPin(Gpio, MIO7_LED, 1);XGpioPs_SetDirectionPin(Gpio, MIO36_KEY, 0);//PS 端设置输出使能0 - Disable, 1 - EnableXGpioPs_SetOutputEnablePin(Gpio, MIO7_LED, 1);//由 ID 查找 PL 端器件并初始化XGpio_Initialize(AXI_Gpio, AXI_GPIO_DEVICE_ID);//PL 端 GPIO 方向设置, 0 - Output, 1 - InputXGpio_SetDataDirection(AXI_Gpio, GPIO_CHANNEL1, 0x00000001);//设置中断系统SetupInterruptSystem(Intc, AXI_Gpio, AXI_GPIO_INTERRUPT_ID);while(1){keyval XGpioPs_ReadPin(Gpio, MIO36_KEY);XGpioPs_WritePin(Gpio, MIO7_LED, ~keyval);}return 0; }static void SetupInterruptSystem(XScuGic *GicInstancePtr, XGpio *AXI_Gpio,u16 AXI_GpioIntrId) {//根据GIC器件ID查找器件的配置信息并初始化IntcConfig XScuGic_LookupConfig(INTC_DEVICE_ID);XScuGic_CfgInitialize(GicInstancePtr, IntcConfig, IntcConfig-CpuBaseAddress);//初始化ARM处理器异常句柄Xil_ExceptionInit();//注册IRQ异常处理程序Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,GicInstancePtr);//使能处理器中断Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);//关联中断处理函数XScuGic_Connect(GicInstancePtr, AXI_GpioIntrId,(Xil_ExceptionHandler)IntrHandler,(void *)AXI_Gpio);//使能GIC器件中断XScuGic_Enable(GicInstancePtr, AXI_GpioIntrId);//0xA0:中断源的优先级, 0x01中断类型为高电平有效电平敏感类型XScuGic_SetPriorityTriggerType(GicInstancePtr, AXI_GpioIntrId, 0xA0, 0x01);//全局中断使能XGpio_InterruptGlobalEnable(AXI_Gpio);//通道中的信号对应的中断使能XGpio_InterruptEnable(AXI_Gpio, 0x00000001); }void IntrHandler() {if (XGpio_DiscreteRead(AXI_Gpio, GPIO_CHANNEL1) 0x00000000){printf(AXI interrupt detected!\n\r);}XGpio_InterruptClear(AXI_Gpio, 0x00000001); }2.3 关键代码解析 为了直观地理解代码的结构和功能参照图片进行理解 步骤划分和流程图图片将代码分为几个关键步骤并以流程图形式展示每个步骤的调用顺序和逻辑关系帮助读者更好地理解代码的整体流程和各个部分之间的关系。关键代码高亮图片中标注了关键代码行例如初始化、GPIO方向设置和中断处理帮助读者快速定位和理解代码中的重要部分。代码与注释结合图片将代码与相应的注释结合展示详细解释了每一行代码的作用和意义帮助读者更深入地理解代码的实现细节。 3. 总结 在本文中我们探讨了Zynq平台上中断的概念和分类包括软件中断、私有外设中断和共享外设中断。我们还介绍了中断控制器GIC的作用它是中断管理的核心。通过一个实际的示例我们展示了如何在处理系统PS和可编程逻辑PL之间使用通用输入输出GPIO来处理中断。示例代码包括初始化GPIO设备、设置中断系统和定义中断处理函数。
http://www.dnsts.com.cn/news/10376.html

相关文章:

  • 子网站建设经验汇报网页设计作业答案
  • 响应式网站一般做几个版本注册公司注册资金多少为好
  • 建设电影推荐网站的项目背景wordpress网站统计
  • 网站主页和子页怎么做delphi7网站开发
  • 律所网站建设庆阳网站设计 贝壳下拉
  • 优化网站价格微信小程序api接口
  • 需要做网站建设和推广wordpress获取当前分类的子分类
  • 南昌网站设计专业wordpress 您的主题支持1个菜单
  • 创网站永久免费建站php企业网站开发pdf
  • 个人flash网站源码电商网站是什么意思
  • 威联通nas 做网站wordpress php.ini
  • 怎样给网站做推广重庆网站制作特点优势
  • 中国邮政做特产得网站wordpress系列文章
  • 刷网站跳出率济宁网站建设流程
  • 有什么网站可以做宣传mdx wordpress
  • 凡科建站添加文章做黑枸杞的公司网站
  • 网站设关键字湖南星大建设集团有限公司网站
  • 怎样给网站做图标网站开发电脑内存要多少
  • 亳州市建设工程质量监督站网站新建的网站怎么登录
  • 做早餐的网站wordpress写了文章打不开
  • 公司搭建网站模板wordpress 更新慢
  • 用网站的源代码怎么做网站六安网
  • nginx 网站建设沈阳空间选址服务平台上线
  • 济南seo外贸网站建设博达站群网站建设教程
  • 网站被墙什么意思17网站一起做网店 睡衣
  • 网页优化与网站优百度免费注册
  • 北京手机网站建设新闻发布会是一种
  • 阳泉企业网站建设公司社交网站平台怎么做
  • 付费设计网站wordpress noren
  • 低价郑州网站建设dw怎样做网站切换