我在Linux驱动程序开发方面只有2周的经验,但在嵌入式c编程方面有很好的经验。我只在linux中尝试过字符设备驱动程序。现在我想为一组连接到GPIO的LED尝试设备驱动程序。我正在使用BeagleBone Black。我希望从寄存器级别访问它,而不是只调用任何驱动程序。 (我这样做是为了学习基础知识)
我希望我的驱动程序GPIO访问代码有点像下面
void SetLED(unsigned char LED,unsigned char Status){
//Read the port register
//BitWise Operation according to function parameters
//Write back to the register
}
但我需要一些关于如何直接在linux中访问寄存器的帮助。我从数据表中得到了端口OUT寄存器的实际地址为0x4804C13C
请原谅我,如果我打破了我的问题中的任何基础知识。我是linux的新手。
答案 0 :(得分:0)
您的司机必须致电
struct resource *request_mem_region(unsigned long start, unsigned long len, char *name);
注册对该内存区域的独占访问。
然后必须使用ioread8()
,ioread16()
等,iowrite8()
,iowrite16()
等。