【SDK驱动开发1】中断的使用(以一个dma为例)

来源:互联网 发布:淘宝开店要交钱吗 编辑:程序博客网 时间:2024/06/12 00:09



sdk中hw和bsp建立好后,以一个跑freertos的hello world模块开始开发,以下按照截止到20170922的经验来记录。


1.首先要安排好目录结构

初步想的话,本次代码大致可分为:1)一些ps侧低速接口(i2c,uart,sd)的驱动;2)交互界面的驱动;3)dma的驱动;

所以app/src下,建了三个目录,分别是drivers(用于放ps侧低速接口的驱动),console(用于放交互界面驱动),fpga(用于放pl侧dma的驱动,以及其他pl侧模块的驱动)。


2. drivers目录

如果默认用ps侧uart0,那么这一步可以忽略。


3.console目录

后面会单独写一个章节介绍交互界面的代码。


3.src目录

将ps侧irq的一些函数(例如scugic的初始化和配置,irq的connect函数(通用函数,其他中断都可以通过此函数连接至scugic),irq的配置函数(触发方式),irq的使能等)放在这个目录(可能还需要调整位置,暂时先放这里),文件名为ps_irq.c和ps_irq.h。

ps_irq.c中主要定义了如下几个函数:

    1)int32_t ps_irq_init_gic(),主要用于scugic的初始化,大致结构如下

    2)int32_t ps_irq_connect_irq(uint32_t Int_Id, xil_InterruptHandler Handler, void *CallBackRef)


。。。后续补充吧。