DSP HPI 的设备驱动
TI 公司的一些DSP 提供了一个典型的主机并行接口(HPI)供外部CPU 通过存储总线读取和写入DSP
的内存。通过HPI 接口,DSP 可以与外部CPU 通信,甚至包括DSP 所用的程序也可以直接由CPU 通过
HPI 下载到DSP 的内存中。
HPI 接口设备驱动中数据结构
1 typedef struct
2 {
3 struct semaphore sem; //信号量
4 char *HpiBaseBufRead; //读缓冲区指针
5 char *HpiBaseBufWrite; //写缓冲区指针
6 struct cdev cdev;
7 } HPI_DEVICE;
HPI 接口设备驱动的读写函数
读和写都涉及公共的寄存器(HPI 的控制寄存器、地址寄存器和数据寄存器)及HPI 接口提供给host
端读写的内存的操作,所以一定要用信号量等互斥机制加以保护,否则,会出现读写错乱的现象。
DSP 通过HPI 接口可以中断host,具体的中断处理程序受到系统中host 和DSP 软件通信协议的约束。