基于ZYNQ 的UART中断实验之串口写数据到DDR3中

该实验介绍了如何在ZYNQ平台上利用UART中断将接收到的串口数据写入DDR3内存。通过设置中断触发条件,当接收到特定字节数时,Zynq会响应中断并将数据存入DDR3指定地址。实验在Microphase ZUS zynq7020开发板上进行,使用了Vivado和SDK进行工程构建和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、参考

UG585
网络笔记

2、理论知识

参见上一次实验:基于ZYNQ 的UART中断实验

3、实验目的

练习使用UART的中断实验,并将接收到的数据写入到DDR3中。

4、实验过程

建立工程,设置并初始化串口中断,在运行程序之后,如果串口接收到N(1-63)个字节数据,则产生串口中断,Zynq响应中断,将数据从RXFIFO读出之后写入到DDR3预定的地址中。

5、实验平台

Microphase ZUS zynq7020 开发板。 串口使用 uart1[48,49]. DDR选择 MT41J256M16 RE-125,32bit. BANK1 = 1.8v.

6、Vivado 建立工程

block design 如下:
在这里插入图片描述

7、SDK的工程程序

main.c

/*
 * main.c
 *
 *  Created on: 2019年8月27日
 *      Author: admin
 */

#include "sys_intr.h"
#include "user_uart.h"

XScuGic Intc;       //GIC
XUartPs Uart_Ps;	//UART

void System_Init(void)
{
	Init_Intr_System(&Intc);
	Setup_Intr_Exception(&Intc);
	Uart_Intr_System(&Intc, &Uart_Ps, UART_INT_TRQ_ID);
}

int main(void)
{
	int Status;

	/* 串口初始化 */
	Status = Uart_Init(&Uart_Ps, UART_DEVICE_ID);
	if (Status == XST_FAILURE) {
		xil_printf("Uartps Failed\r\n");
		return XST_FAILURE;
	}
	System_Init();   //中断初始化
	while (1){
		sleep(1);
		xil_printf("Hello World!\r\n");
	}
	return Status;
}

sys_intr.h

/*
 * sys_intr.h
 *
 *  Created on: 2019年8月27日
 *      Author: admin
 */

#ifndef SRC_SYS_INTR_H_
#define SRC_SYS_INTR_H_

#include "xparameters.h"
#include "xil_exception.
### Spring Boot 中 JARWAR 的区别及适用场景 #### 1. 基础概念对比 JAR 文件是一种标准的 Java 归档文件格式,通常用于封装独立运行的应用程序。而 WAR(Web Application Archive)文件则专门设计用来部署 Web 应用到传统的 Servlet 容器中,比如 Tomcat 或 Jetty[^1]。 #### 2. 打方式的不同 当将 Spring Boot 项目JAR 文件时,默认情况下会嵌入一个轻量级的服务器(如内置的 Tomcat),这使得该应用可以作为独立进程直接运行。相比之下,WAR 文件并不自带任何服务器组件,它依赖外部的 Servlet 容器来加载并执行其中的内容[^2]。 #### 3. 启动机制差异 对于基于 JAR 的 Spring Boot 应用而言,在命令行下只需简单地输入 `java -jar your-application.jar` 即可完成启动操作。然而如果采用的是 WAR 格式的分发,则需要先将其放置于目标 Servlet 容器内的指定目录之后再由后者负责初始化整个流程[^4]。 #### 4. 结构上的区别 从内部结构上看,WAR 文件除了含 class 文件外还会额外增加 WEB-INF/lib 目录存储第三方库以及 META-INF/MANIFEST.MF 记录元数据信息等内容;此同时,所有的前端资源也会被保留下来以便能够正常访问页面等功能模块。相反地,JAR 类型仅保存必要的字节码及相关配置项即可满足需求。 #### 5. 性能考量维护成本分析 由于 JAR 方案无需考虑兼容性问题并且更容易实现自动化运维管理(例如借助 Docker 进行容器化),所以在现代微服务架构体系当中更受青睐。不过需要注意的一点是,尽管如此仍然存在某些特殊场合可能更适合选用 WAR 模式——特别是那些已经长期稳定运作的传统 IT 系统环境中[^3]。 综上所述,Spring Boot 提供了灵活多样的发布选项让用户可以根据实际业务特点做出明智决策: - 如果追求高效便捷且倾向于利用最新技术趋势构建现代化解决方案的话,那么毫无疑问应该优先选择 JAR; - 而针对一些受限于历史遗留因素或者特定法规约束无法轻易改变现有基础设施布局的情况来说,WAR 则不失为一种折衷办法. ```bash # 启动 JAR 的方式 java -jar my-spring-boot-app.jar # 将 WAR 放到 Tomcat webapps 下自动解压部署 cp my-spring-boot-app.war /path/to/tomcat/webapps/ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值