
Vitis
文章平均质量分 87
披着假发的程序唐
嵌入式软件工程师,擅长linux开发、单片机开发、OTN光通信协议解析、卫星导航相关
展开
-
ZYNQ-Vitis(SDK)裸机开发之(八)PS端QSPI读写flash操作(包括SPI、Dual SPI、Qual SPI的配置使用)
SPI为标准通信协议,不仅可以操作flash,还可以与其他类型器件进行通信,但是由于SPI标准通信协议为全双工,且速度较慢,因此实际读写flash时,一般都使用其扩展协议,即Dual flash和Quad flash。Flash存储数据时,只能将1写为0,不能将0写为1,因此对flash进行擦除操作时,就是将flash对应区域全部置1,写数据时,就将对应bit置0即可。IO2(WP):写保护引脚,低电平时,flash无法被写入数据,在Quad SPI模式下复用为数据引脚。原创 2024-04-19 15:01:52 · 4922 阅读 · 1 评论 -
ZYNQ-Vitis(SDK)裸机开发之(七)PS私有定时器Timer的使用
在 ZYNQ 嵌入式系统中,定时器的资源是非常丰富的,每个 Cortex-A9 处理器都有各自独立的 32 位私有定时器和 32 位看门狗定时器,这两个 CPU 同时共享一个 64 位的全局定时器(Global Timer)。除此之外,PS 中还有一个 24 位的系统看门狗定时器(SWDT)和两个 TTC(Triple Timer Counters)。系统看门狗定时器可以在系统发生灾难性的故障时(如 PS 中的 PLL 工作异常)发出信号,使得系统程序重新启动,保证了系统安全可靠的运行。原创 2024-04-14 09:47:50 · 2085 阅读 · 0 评论 -
ZYNQ-Vitis(SDK)裸机开发之(六)Watchdog看门狗的使用
看门狗主要是实现程序在运行异常、崩溃卡死的状态下,使系统进行重启的功能,ZYNQ看门狗为PS核内置功能,因此无需对PS端进行特殊配置,也不需要增加PL端的任何IP核;测试看门狗是否正常运行时,可将喂狗操作去掉,观察ZYNQ的Done等,是否固定频率亮灭,如果是,则证明ZYNQ由于没有喂狗,在被一直复位重启。函数,在操作时间较长较复杂的位置,进行喂狗操作,防止狗咬系统复位;连接***********************************开发环境:Vivado2020.2,Vitis2020.2。原创 2024-04-14 09:26:39 · 1589 阅读 · 0 评论 -
ZYNQ-Vitis(SDK)裸机开发之(五)PL端AXI GPIO的使用
目前网上对于AXI GPIO的详细使用方法介绍的很少,基本都是一个通道一个IO,或者几个IO,统一进行配置,并没有对不同bit的不同操作进行深入的讲解,因此才写了本篇文章,也是希望大家学习过程中少走一些弯路,坑我都替你们踩过了。* 6.该代码实现AXI GPIO读取按键中断输出,然后打开蜂鸣器,按键一次,打开蜂鸣器,再按键一次,关闭蜂鸣器,蜂鸣器:channel1bit0,按键:channel1bit1。连接************************************原创 2024-04-14 09:19:09 · 2840 阅读 · 1 评论 -
ZYNQ-Vitis(SDK)裸机开发之(四)PS端MIO和EMIO的使用
以ZYNQ7020为例,GPIO总共118个,分为了4个bank(ZU+的GPIO和bank数量有所增加),其中MIO有两个bank,需要注意的是bank1的GPIO数量只有22个,其余三个都有32个。MIO和EMIO均为PS端的GPIO,由PS控制,其中MIO可直接配置复用成PS外设,而EMIO则可以连接到PL端,复用为PL端搭建的外设资源。原创 2024-04-14 09:08:11 · 2008 阅读 · 1 评论 -
ZYNQ-Vitis(SDK)裸机开发之(三)Vivado硬件设计(比特流(.xsa)文件)更新后,Vitis工程更新硬件依赖文件的方法,进行重编译
vitis工程中的板级支持包,都是根据vivado中设计硬件相关的,比如设计了一个PS串口,那么板级支持包中只包含PS串口操作的相关接口,不会包含PL串口操作的接口,因此如果Vivado工程更新后,如果vitis工程中不对xsa文件进行更新,vivado的修改不会生效;原创 2024-04-09 11:23:07 · 2529 阅读 · 0 评论 -
ZYNQ-Vitis(SDK)裸机开发之(二)程序固化方法,程序烧写到SD卡启动以及通过QSPI烧写到Flash中启动方法
然后将SD卡插入板卡的卡槽中,根据硬件原理图,将板卡启动模式开关,拨到SD卡启动模式,等待程序启动,如果zynq的done灯亮,且功能正常,则证明SD卡烧写启动成功。注意事项:建立vitis程序时,要勾选Generate boot components选项,这样会生成启动的引导文件fsbl,没有fsbl没办法进行程序烧写。Vitis工程编译完成后,在如下目录下会生成BOOT.BIN文件,去对应文件加中找到该文件,备用。程序烧写即将程序固化到存储器中,掉电不丢失,重新上电可以自动运行固化好的程序。原创 2024-04-09 10:56:12 · 2946 阅读 · 0 评论 -
ZYNQ-Vitis(SDK)裸机开发之(一)串口收发使用:PS串口+PL串口、多个串口使用方法
一些注意事项:PS和PL串口同时使用时,PL串口配置的中断优先级不能小于等于0xA0(即数值不能大于等于0xA0),目前代码中配置的PL串口中断优先级为0x98,如果数值大于等于0xA0时,单独使用PL串口收发没有问题,一旦使用了一次PS串口的收发,PL串口收发功能就失效了,具体原因我也不太清楚,还没深究,大家知道的话可以评论区说下~实例化PS、PL串口结构体对象,并新建数组,存放实例化后的对象指针,方便后续使用操作,这样后面的串口初始化配置等操作,只需要传入对应串口号即可操作响应的串口结构体;原创 2024-04-09 09:39:01 · 6769 阅读 · 3 评论