SylixOS

SylixOS PCIe控制器驱动开发(六)

SylixOS读写PCIe设备配置空间 在上一节中,我们知道注册控制器驱动后,SylixOS会遍历所有总线上的设备信息,这是通过读取设备的配置空间信息实现的。SylixOS中配置空间的读写都是通过调用...
阅读全文
SylixOS

SylixOS PCIe控制器驱动开发(五)

SylixOS注册PCIe控制器驱动 PCIe驱动主要分为两大类,PCIe控制器驱动和PCIe设备驱动。PCIe控制器驱动主要负责配置空间读写方法的实现、中断号获取和BAR地址自动配置功能,设备驱动根...
阅读全文
SylixOS

SylixOS PCIe控制器驱动开发(九)

SylixOS PCIe控制器驱动使用自动配置功能 1. 地址空间简单回顾 自动配置主要就是配置各个设备BAR空间的PCIe地址,所以我们简单回顾下PCIe地址和CPU物理地址的概念。 PCIe控制器...
阅读全文
SylixOS

SylixOS PCIe控制器驱动开发(七)

SylixOS申请PCIe设备中断 本来这篇文章是想和读写配置空间放一起讲的,但是梳理了下发现PCIe的中断方面的知识还是比较重要的,因为现在一般的PCIe设备都需要配合中断来进行工作,而PCIe中断...
阅读全文
SylixOS

SylixOS PCIe开发(四)

1. 动态映射ECAM空间 我们在《SylixOS PCIe开发(二)》文章中介绍了使用ECAM方式来访问PCI设备的配置空间,这种方式的缺点就是如果想访问所有总线上的设备,一共需要256MB的地址空...
阅读全文
SylixOS

SylixOS PCIe开发(二)

1. 概述 本篇文章主要介绍不同平台下pci设备配置空间的访问方法,总的来说,pci设备的配置空间有两种访问方式: 配置寄存器访问 ECAM访问 2. 配置空间寄存器 pci配置空间寄存器大小为256...
阅读全文
SylixOS

SylixOS PCIe开发(三)

1. SylixOS主控驱动支持多个控制器 SylixOS中的pci框架目前只支持单个控制器,如果需要在主控驱动中支持多个控制器,就需要将多个控制器虚拟成一个控制器给SylixOS。 在vx下用户的p...
阅读全文
SylixOS

SylixOS PCIe开发(一)

本文章致力于对PCI相关知识做一个普及。 另外推荐一个PCIe讲解的不错的系列博客:http://blog.chinaaet.com/justlxy/p/5100061871 1. x86处理器系统初...
阅读全文
SylixOS

SylixOS BSP开发(四)

修改内核入口文件 SylixOS内核入口文件是startup.S,这个文件是用汇编写的,在这个文件中会做一些必要的初始化工作,然后跳转到C语言编写的代码中继续执行。创建BSP工程时会自动生成start...
阅读全文
SylixOS

SylixOS BSP开发(十四)

实现BSP中断系统处理接口 这些接口都定义在bspLib.c中,需要BSP开发者根据实际平台去实现这些接口。全志R16使用的arm官方的GICv2版本中断控制器,关于这个控制器硬件上如何使用我们不会在...
阅读全文
SylixOS

SylixOS BSP开发(十六)

实现串口中断接收 通过前面的学习我们已经调试好了串口SIO驱动发送功能、中断系统和系统TICK功能,现在最小系统已经被我们完成了90%了,就剩最后一步我们需要实现串口使用中断接收数据的功能,这样我们才...
阅读全文