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)
。。。后续补充吧。